|
| |
|
|
|
|
| |
Portions de programmes utiles |
|
| |
|
|
|
|
| |
@100: JMP 10B
@102: DB 'bardosoft',A,D,'$'
@10B: MOV DX, 102
MOV AH, 9
INT 21
|
|
|
Ecrire une chaîne de caractère |
|
|
|
|
|
|
|
MOV AX, 0600h
MOV BH, 23h
XOR CX, CX
MOV DX, 184Fh
INT 10h |
|
|
Effacer l'ecran |
|
|
|
|
|
|
|
MOV AX, 0B800h
MOV ES, AX
MOV DI, 80
MOV AH, 02h
MOV AL, 'I'
MOV ES:[DI], AX |
|
|
Ecrire en utilisant la mémoire vidéo |
|
|
|
|
|
|
|
MOV BX, 80
INC BX
MOV DL, BYTE[BX]
MOV AH, 2
INT 21
CMP DL, D
JNE 103 |
|
|
Voir les paramètres passés au programme |
|
|
|
|
|
|
|
MOV AL, D4
MOV AH, 4C
INT 21 |
|
|
Retourner un code d'erreur à DOS |
|
|
|
|
|
|
|
MOV BX, 40
MOV DS, BX
MOV BX, 1234
MOV [72], BX
JMP FFFF:0000 |
|
|
Rebooter l'ordinateur à chaud: ne marche pas dans une fenêtre DO S |
|
|
|
|
|
|
|
JMP FFFF:0000 |
|
|
Rebooter l'ordinateur à froid: ne marche pas dans une fenêtre DOS |
|
|
|
|
|
|
|
JMP 100 |
|
|
Planter l'ordinateur |
|
|
|
|
|
|
|
MOV DL, 7
MOV AH, 2
INT 21 |
|
|
Emettre un bip |
|
|
|
|
|
|
|
MOV BX, 0202
MOV AX, 34DD
MOV DX, 0012
DIV BX
MOV BX, AX
IN AL, 61
OR AL, 03
OUT 61, AL
MOV AL, B6
OUT 43, AL
MOV AL, BL
OUT 42, AL
MOV AL, BH
OUT 42, AL
MOV AH, 0
INT 16
IN AL ,61
AND AL, FC
OUT 61, AL |
|
|
Emettre une fréquence |
|
|
|
|
|
|
|
MOV AX, 0C00
INT 21 |
|
|
Vider le buffer |
|
|
|
|
|
|
|
MOV AH, 0
INT 16
MOV AH, 8
INT 21
CMP AL,
JNE 100 |
|
|
Attendre l'appui sur une touche |
|
|
|
|
|
|
|
MOV AH, B
INT 21
MOV AH, 6
MOV DL, FF
INT 21 |
|
|
Voir si une touche a été appuyée |
|
|
|
|
|
|
|
MOV AH, 2A
INT 21 |
|
|
Connaître la date |
|
|
|
|
|
|
|
MOV AH, 2C
INT 21 |
|
|
Connaître l'heure |
|
|
|
|
|
|
|
@100: JMP 103
@102: DB 0
@103: MOV AH, 2C
@105: INT 21
@107: ADD DH, A
@10A:CMP DH, 3C
@10D:JL 112
@10F: SUB DH, 3C
@112: MOV [102], DH
@116: INT 21
@118: CMP DH, [102]
@11C: JNE 116 |
|
|
Attendre 10 secondes |
|
|
|
|
|
|
|
MOV AX, 0
INT 1A
ADD BX, DX
@I: INT 1A
CMP BX, DX
JNE @I |
|
|
Attendre BX/18,2 secondes |
|
|
|
|
|
|
|
@100: MOV AX, 2524
@103: MOV DX, 113
@106: INT 21
@108: MOV AH, 1C
@10A:MOV DL, 1
@10C: INT 21
@10E: MOV AX,4C00
@111: INT 21
@113: MOV AX,4C01
@116: INT 21 |
|
|
Voir si un lecteur est prêt |
|
|
|
|
|
|
|
MOV AX, 3305
INT 21 |
|
|
Savoir sur quel disque on a booté |
|
|
|
|
|
|
|
MOV AH, 1B
INT 21
MOV AL, [BX] |
|
|
Connaître le type du disque par défaut |
|
|
|
|
|
|
|
JMP installe
installe:
MOV DX, OFFSET installe
MOV CL, 4
SHR DX, CL
INC DX
MOV AX, 3100h
INT 21h |
|
|
Programme qui reste résident en mémoire (TSR:
Terminate and Stay Resident
) |
|
|
|
|
|
|
|
PRINT PROC NEAR
MOV SI, debut_ou_imprimer
MOV CX, nombre_de_caractères_à_imprimer
MOV AH, 2
XOR DX, DX
INT 17h
TEST AH, 10000000B
JZ PRINT_DONE
TEST AH, 00100000B
JNZ PRINT_DONE
PRINT_LOOP:
LODSB
XOR AH,AH
INT 17h
ROR AH, 1
JC PRINT_DONE
LOOP PRINT_LOOP
PRINT_DONE:
RET
PRINT ENDP |
|
|
Imprimer |
|
|
|
|
|
|
|
masection SEGMENT PUBLIC
ASSUME CS:masection, DS:masection
ORG 100H
pgm:
JMP debut
segbuf DW 0
longfic DW 0
erreur DB "Erreur en ouvrant `ANSI.TXT'$"
fichier DB "ANSI.TXT", 0
debut:
MOV BX, SS
ADD BX, 300h
MOV [segbuf], BX
CALL affiche
MOV AX, 4C00h
INT 21h
affiche PROC NEAR
MOV AX, 3D00h
MOV DX, OFFSET fichier
INT 21h
JC err ; erreur d'ouverture
MOV BX, AX
MOV DS, [segbuf]
MOV DX, 0
MOV AH, 3Fh
MOV CX, 0FFFFh
INT 21h
MOV CS:[longfic], AX
MOV AH, 3EH
INT 21h
CLD
MOV SI, 0
MOV CX, CS:[longfic]
boucle: MOV AH, 2
LODSB
MOV DL, AL
INT 21h
DEC CX
JNE boucle
RET
err:
MOV AH, 9
MOV DX, OFFSET erreur
INT 21h
RET
affiche ENDP
masection ENDS
END pgm |
|
|
Afficher le contenu d'un fichier |
|
|
|
|
|
|
|
@100 JMP 103
@102 DB 0 ;réserve 1 octet
MOV [103], DL ;on sauve DL |
|
|
sauver une variable en mémoire |
|
|
|
|
|
|
|
MOV AX, 0013h
INT 10h |
|
|
Passer en mode VG A |
|
|
|
|
|
|
|
MOV AH, 0Ch
MOV AL, [adrcouleur]
MOV CX, [adrx]
MOV DX, [adry]
MOV BX, 1
INT 10h |
|
|
Ecrire un pixel |
|
|
|
|
|
|
|
PUSH ES
MOV CX, 32000
MOV ES, [A000]
XOR DI, DI
MOV AL, [acouleur]
MOV AH, AL
REP STOSW
POP ES |
|
|
Effacer l'écran |
|
|
|
|
|
|
|
MOV AX, 13
INT 10
MOV AL, 4
MOV CX, 100
MOV DX, 200
MOV AH, 0Ch
INT 10
XOR AX, AX
INT 16
MOV AX, 3
INT 10 |
|
|
Afficher un point |
|
| |
|
|
|
|
| |
|
|
|
[ home ] [ <- précédant ] [ suivant -> ] |
|
|
|
|
|
|
|
|
|