feat: passage d'un certain nombre de fonctions vers video.lib
This commit is contained in:
parent
ad3b0fe9e4
commit
1b835928d9
749
noyau/video.asm
749
noyau/video.asm
|
@ -5,7 +5,6 @@ smart
|
||||||
|
|
||||||
org 0h
|
org 0h
|
||||||
|
|
||||||
include ..\include\bmp.h
|
|
||||||
|
|
||||||
start:
|
start:
|
||||||
jmp tsr ;Saute à la routine résidente
|
jmp tsr ;Saute à la routine résidente
|
||||||
|
@ -56,22 +55,22 @@ tables dw setvideomode ;Table qui contient les adresses de toutes les fonctions
|
||||||
dw clearscreen
|
dw clearscreen
|
||||||
dw setfont
|
dw setfont
|
||||||
dw loadfont
|
dw loadfont
|
||||||
dw showspace
|
dw nothings
|
||||||
dw showline
|
dw showline
|
||||||
dw showchar
|
dw showchar
|
||||||
dw showint
|
dw showpixel
|
||||||
dw showsigned
|
dw getpixel
|
||||||
dw showhex
|
dw setxyg
|
||||||
dw showbin
|
dw nothings
|
||||||
dw showstring
|
dw nothings
|
||||||
dw showstring0
|
dw nothings
|
||||||
dw showcharat
|
dw nothings
|
||||||
dw showintat
|
dw nothings
|
||||||
dw showsignedat
|
dw nothings
|
||||||
dw showhexat
|
dw nothings
|
||||||
dw showbinat
|
dw nothings
|
||||||
dw showstringat
|
dw nothings
|
||||||
dw showstring0at
|
dw nothings
|
||||||
dw setcolor
|
dw setcolor
|
||||||
dw getcolor
|
dw getcolor
|
||||||
dw scrolldown
|
dw scrolldown
|
||||||
|
@ -83,23 +82,23 @@ tables dw setvideomode ;Table qui contient les adresses de toutes les fonctions
|
||||||
dw page1to2
|
dw page1to2
|
||||||
dw xchgPages
|
dw xchgPages
|
||||||
dw savepage1
|
dw savepage1
|
||||||
dw changelineattr
|
dw nothings
|
||||||
dw waitretrace
|
dw waitretrace
|
||||||
dw getvgainfos
|
dw getvgainfos
|
||||||
dw loadbmppalet
|
dw nothings
|
||||||
dw showbmp
|
dw nothings
|
||||||
dw viewbmp
|
dw nothings
|
||||||
dw savedac
|
dw savedac
|
||||||
dw restoredac
|
dw restoredac
|
||||||
dw savestate
|
dw savestate
|
||||||
dw restorestate
|
dw restorestate
|
||||||
dw enablescroll
|
dw enablescroll
|
||||||
dw disablescroll
|
dw disablescroll
|
||||||
dw showdate
|
dw nothings
|
||||||
dw showtime
|
dw nothings
|
||||||
dw showname
|
dw nothings
|
||||||
dw showattr
|
dw nothings
|
||||||
dw showsize
|
dw nothings
|
||||||
dw getchar
|
dw getchar
|
||||||
|
|
||||||
;================================Table des modes videos (64 BYTES) ============================================
|
;================================Table des modes videos (64 BYTES) ============================================
|
||||||
|
@ -232,6 +231,24 @@ maxmode equ 9
|
||||||
planesize equ 64000
|
planesize equ 64000
|
||||||
;============================================Fonctions de l'int VIDEO===========================================
|
;============================================Fonctions de l'int VIDEO===========================================
|
||||||
|
|
||||||
|
;message d'erreur specifiant que les interruptions n'existent plus
|
||||||
|
nothings:
|
||||||
|
push cx si
|
||||||
|
mov si,offset msg
|
||||||
|
mov ch,04
|
||||||
|
showit:
|
||||||
|
mov cl,cs:[si]
|
||||||
|
cmp cl,0
|
||||||
|
je endshowit
|
||||||
|
inc si
|
||||||
|
call charout
|
||||||
|
jmp showit
|
||||||
|
endshowit:
|
||||||
|
pop si cx
|
||||||
|
ret
|
||||||
|
|
||||||
|
msg db 'ERREUR: int 47h fonction inexistante !!!',0
|
||||||
|
|
||||||
;=============ENABLESCROLLING (Fonction 02AH)=========
|
;=============ENABLESCROLLING (Fonction 02AH)=========
|
||||||
;Autorise le d‚filement
|
;Autorise le d‚filement
|
||||||
;-> AH=42
|
;-> AH=42
|
||||||
|
@ -250,192 +267,19 @@ DisableScroll:
|
||||||
mov cs:scrolling,0
|
mov cs:scrolling,0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;================SHOWDATE (Fonction 2Ch)==============
|
;==========SHOWCHAR (Fonction 07h)===========
|
||||||
;Affiche la date contenu en DX
|
;met un caractère de code ASCII DL aprés le curseur
|
||||||
;-> AH=44
|
;-> AH=7, DL code ASCII du caractère
|
||||||
;<-
|
;<-
|
||||||
;=====================================================
|
;============================================
|
||||||
ShowDate:
|
showchar:
|
||||||
push ax cx edx
|
push cx
|
||||||
mov ax,dx
|
mov cl,dl
|
||||||
mov cx,2
|
mov ch,cs:colors
|
||||||
xor edx,edx
|
call charout
|
||||||
mov dx,ax
|
pop cx
|
||||||
and dx,11111b
|
|
||||||
call showfixint
|
|
||||||
mov dl,'/'
|
|
||||||
call showchar
|
|
||||||
mov dx,ax
|
|
||||||
shr dx,5
|
|
||||||
and dx,111b
|
|
||||||
call showfixint
|
|
||||||
mov dl,'/'
|
|
||||||
call showchar
|
|
||||||
mov dx,ax
|
|
||||||
shr dx,8
|
|
||||||
and dx,11111111b
|
|
||||||
add dx,1956
|
|
||||||
mov cx,4
|
|
||||||
call showfixint
|
|
||||||
pop edx cx ax
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;================SHOWTIME (Fonction 2Dh)==============
|
|
||||||
;Affiche l'heure contenu en DX
|
|
||||||
;-> AH=45
|
|
||||||
;<-
|
|
||||||
;=====================================================
|
|
||||||
ShowTime:
|
|
||||||
push ax cx edx
|
|
||||||
mov ax,dx
|
|
||||||
mov cx,2
|
|
||||||
xor edx,edx
|
|
||||||
mov dx,ax
|
|
||||||
shr dx,11
|
|
||||||
and dx,11111b
|
|
||||||
call showfixint
|
|
||||||
mov dl,':'
|
|
||||||
call showchar
|
|
||||||
mov dx,ax
|
|
||||||
shr dx,5
|
|
||||||
and dx,111111b
|
|
||||||
call showfixint
|
|
||||||
mov dl,':'
|
|
||||||
call showchar
|
|
||||||
mov dx,ax
|
|
||||||
and dx,11111b
|
|
||||||
shl dx,1
|
|
||||||
call showfixint
|
|
||||||
pop edx cx ax
|
|
||||||
ret
|
|
||||||
db 'ICI'
|
|
||||||
|
|
||||||
;================SHOWNAME (Fonction 2Eh)==============
|
|
||||||
;Affiche le nom pointé par SI
|
|
||||||
;-> AH=46
|
|
||||||
;<-
|
|
||||||
;=====================================================
|
|
||||||
ShowName:
|
|
||||||
push cx dx si
|
|
||||||
xor cx,cx
|
|
||||||
showthename:
|
|
||||||
mov dl,ds:[si]
|
|
||||||
call showchar
|
|
||||||
inc si
|
|
||||||
inc cx
|
|
||||||
cmp cx,8
|
|
||||||
jne suiteaname
|
|
||||||
mov dl,' '
|
|
||||||
call showchar
|
|
||||||
suiteaname:
|
|
||||||
cmp cx,8+3
|
|
||||||
jb showthename
|
|
||||||
pop si dx cx
|
|
||||||
ret
|
|
||||||
|
|
||||||
;================SHOWATTR (Fonction 2Fh)==============
|
|
||||||
;Affiche les attributs spécifié par DL
|
|
||||||
;-> AH=47
|
|
||||||
;<-
|
|
||||||
;=====================================================
|
|
||||||
ShowAttr:
|
|
||||||
push dx
|
|
||||||
mov al,dl
|
|
||||||
|
|
||||||
test al,00000001b
|
|
||||||
je noreadonly
|
|
||||||
mov dl,'L'
|
|
||||||
jmp readonly
|
|
||||||
noreadonly:
|
|
||||||
mov dl,'-'
|
|
||||||
readonly:
|
|
||||||
call showchar
|
|
||||||
|
|
||||||
test al,00000010b
|
|
||||||
je nohidden
|
|
||||||
mov dl,'C'
|
|
||||||
jmp hidden
|
|
||||||
nohidden:
|
|
||||||
mov dl,'-'
|
|
||||||
hidden:
|
|
||||||
call showchar
|
|
||||||
|
|
||||||
test al,00000100b
|
|
||||||
je nosystem
|
|
||||||
mov dl,'S'
|
|
||||||
jmp system
|
|
||||||
nosystem:
|
|
||||||
mov dl,'-'
|
|
||||||
system:
|
|
||||||
call showchar
|
|
||||||
|
|
||||||
test al,00100000b
|
|
||||||
je noarchive
|
|
||||||
mov dl,'A'
|
|
||||||
jmp archive
|
|
||||||
noarchive:
|
|
||||||
mov dl,'-'
|
|
||||||
archive:
|
|
||||||
call showchar
|
|
||||||
|
|
||||||
test al,00010000b
|
|
||||||
je nodirectory
|
|
||||||
mov dl,'R'
|
|
||||||
jmp directory
|
|
||||||
nodirectory:
|
|
||||||
mov dl,'-'
|
|
||||||
directory:
|
|
||||||
call showchar
|
|
||||||
|
|
||||||
pop dx
|
|
||||||
ret
|
|
||||||
|
|
||||||
;================SHOWSIZE (Fonction 30h)==============
|
|
||||||
;Affiche le nom pointé par DI
|
|
||||||
;-> AH=48
|
|
||||||
;<-
|
|
||||||
;=====================================================
|
|
||||||
ShowSize:
|
|
||||||
push cx edx si ds
|
|
||||||
push cs
|
|
||||||
pop ds
|
|
||||||
mov cx,4
|
|
||||||
cmp edx,1073741824
|
|
||||||
ja giga
|
|
||||||
cmp edx,1048576*9
|
|
||||||
ja mega
|
|
||||||
cmp edx,1024*9
|
|
||||||
ja kilo
|
|
||||||
call showintR
|
|
||||||
mov si,offset unit
|
|
||||||
call showstring0
|
|
||||||
jmp finsize
|
|
||||||
kilo:
|
|
||||||
shr edx,10
|
|
||||||
call showintR
|
|
||||||
mov si,offset unitkilo
|
|
||||||
call showstring0
|
|
||||||
jmp finsize
|
|
||||||
mega:
|
|
||||||
shr edx,20
|
|
||||||
call showintR
|
|
||||||
mov si,offset unitmega
|
|
||||||
call showstring0
|
|
||||||
jmp finsize
|
|
||||||
giga:
|
|
||||||
shr edx,30
|
|
||||||
call showintR
|
|
||||||
mov si,offset unitgiga
|
|
||||||
call showstring0
|
|
||||||
finsize:
|
|
||||||
pop ds si edx cx
|
|
||||||
ret
|
|
||||||
|
|
||||||
unit db ' o ',0
|
|
||||||
unitkilo db ' ko',0
|
|
||||||
unitmega db ' mo',0
|
|
||||||
unitgiga db ' go',0
|
|
||||||
|
|
||||||
;=============SetVideoMode (Fonction 00h)=========
|
;=============SetVideoMode (Fonction 00h)=========
|
||||||
;Fixe le mode vidéo courant a AL
|
;Fixe le mode vidéo courant a AL
|
||||||
;-> AH=0, AL mode d'écran
|
;-> AH=0, AL mode d'écran
|
||||||
|
@ -763,20 +607,6 @@ reg2 dw 0100h, 0302h, 0304h, 0300h
|
||||||
reg1 dw 0100h, 0402h, 0704h, 0300h
|
reg1 dw 0100h, 0402h, 0704h, 0300h
|
||||||
dw 0204h, 0005h, 0406h
|
dw 0204h, 0005h, 0406h
|
||||||
|
|
||||||
;==========SHOWSPACE (Fonction 05h)===========
|
|
||||||
;met un espace aprés le curseur
|
|
||||||
;-> AH=5
|
|
||||||
;<-
|
|
||||||
;=============================================
|
|
||||||
showspace:
|
|
||||||
push cx
|
|
||||||
mov cl,' '
|
|
||||||
mov ch,cs:colors
|
|
||||||
call charout
|
|
||||||
clc
|
|
||||||
pop cx
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWLINE (Fonction 06h)===============
|
;==========SHOWLINE (Fonction 06h)===============
|
||||||
;remet le curseur text a la ligne avec un retour chariot
|
;remet le curseur text a la ligne avec un retour chariot
|
||||||
;-> AH=6
|
;-> AH=6
|
||||||
|
@ -803,374 +633,6 @@ scro:
|
||||||
pop cx bx
|
pop cx bx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;==========SHOWCHAR (Fonction 07h)===========
|
|
||||||
;met un caractère de code ASCII DL aprés le curseur
|
|
||||||
;-> AH=7, DL code ASCII du caractère
|
|
||||||
;<-
|
|
||||||
;============================================
|
|
||||||
showchar:
|
|
||||||
push cx
|
|
||||||
mov cl,dl
|
|
||||||
mov ch,cs:colors
|
|
||||||
call charout
|
|
||||||
pop cx
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWINT (Fonction 08h)===========
|
|
||||||
;Affiche un entier EDX aprés le curseur
|
|
||||||
;-> AH=8, EDX un entier
|
|
||||||
;<-
|
|
||||||
;===========================================
|
|
||||||
ShowInt:
|
|
||||||
push eax bx cx edx esi
|
|
||||||
xor cx,cx
|
|
||||||
mov eax,edx
|
|
||||||
mov esi,10
|
|
||||||
mov bx,offset showbuffer+27
|
|
||||||
decint:
|
|
||||||
xor edx,edx
|
|
||||||
div esi
|
|
||||||
add dl,'0'
|
|
||||||
inc cx
|
|
||||||
mov cs:[bx],dl
|
|
||||||
dec bx
|
|
||||||
cmp ax,0
|
|
||||||
jne decint
|
|
||||||
mov ax,cx
|
|
||||||
mov ch,cs:colors
|
|
||||||
showinteger:
|
|
||||||
inc bx
|
|
||||||
mov cl,cs:[bx]
|
|
||||||
call charout
|
|
||||||
dec ax
|
|
||||||
jnz showinteger
|
|
||||||
pop esi edx cx bx eax
|
|
||||||
ret
|
|
||||||
|
|
||||||
showbuffer db 50 dup (0FFh)
|
|
||||||
|
|
||||||
;==========SHOWFIXINT (Fonction h)===========
|
|
||||||
;Affiche un entier EDX aprés le curseur de taille cx
|
|
||||||
;-> AH=8, EDX un entier et al="cara"
|
|
||||||
;<-
|
|
||||||
;===========================================
|
|
||||||
ShowfixInt:
|
|
||||||
push eax bx cx edx esi di
|
|
||||||
mov di,cx
|
|
||||||
xor cx,cx
|
|
||||||
mov eax,edx
|
|
||||||
mov esi,10
|
|
||||||
mov bx,offset showbuffer+27
|
|
||||||
decint2:
|
|
||||||
xor edx,edx
|
|
||||||
div esi
|
|
||||||
add dl,'0'
|
|
||||||
inc cx
|
|
||||||
mov cs:[bx],dl
|
|
||||||
dec bx
|
|
||||||
cmp cx,di
|
|
||||||
jae nomuch
|
|
||||||
cmp ax,0
|
|
||||||
jne decint2
|
|
||||||
mov ax,di
|
|
||||||
xchg cx,di
|
|
||||||
sub cx,di
|
|
||||||
rego:
|
|
||||||
mov byte ptr cs:[bx],'0'
|
|
||||||
dec bx
|
|
||||||
dec cx
|
|
||||||
jnz rego
|
|
||||||
jmp finishim
|
|
||||||
nomuch:
|
|
||||||
mov ax,di
|
|
||||||
finishim:
|
|
||||||
mov ch,cs:colors
|
|
||||||
showinteger2:
|
|
||||||
inc bx
|
|
||||||
mov cl,cs:[bx]
|
|
||||||
call charout
|
|
||||||
dec ax
|
|
||||||
jnz showinteger2
|
|
||||||
pop di esi edx cx bx eax
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWINTR (Fonction h)===========
|
|
||||||
;Affiche un entier EDX aprés le curseur de taille cx
|
|
||||||
;-> AH=8, EDX un entier
|
|
||||||
;<-
|
|
||||||
;===========================================
|
|
||||||
ShowIntR:
|
|
||||||
push eax bx cx edx esi di
|
|
||||||
mov di,cx
|
|
||||||
xor cx,cx
|
|
||||||
mov eax,edx
|
|
||||||
mov esi,10
|
|
||||||
mov bx,offset showbuffer+27
|
|
||||||
decint3:
|
|
||||||
xor edx,edx
|
|
||||||
div esi
|
|
||||||
add dl,'0'
|
|
||||||
inc cx
|
|
||||||
mov cs:[bx],dl
|
|
||||||
dec bx
|
|
||||||
cmp cx,di
|
|
||||||
jae nomuch
|
|
||||||
cmp ax,0
|
|
||||||
jne decint3
|
|
||||||
mov ax,di
|
|
||||||
xchg cx,di
|
|
||||||
sub cx,di
|
|
||||||
rego2:
|
|
||||||
mov byte ptr cs:[bx],' '
|
|
||||||
dec bx
|
|
||||||
dec cx
|
|
||||||
jnz rego2
|
|
||||||
jmp finishim2
|
|
||||||
nomuch2:
|
|
||||||
mov ax,di
|
|
||||||
finishim2:
|
|
||||||
mov ch,cs:colors
|
|
||||||
showinteger3:
|
|
||||||
inc bx
|
|
||||||
mov cl,cs:[bx]
|
|
||||||
call charout
|
|
||||||
dec ax
|
|
||||||
jnz showinteger3
|
|
||||||
pop di esi edx cx bx eax
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWSIGNED (Fonction 09h)===========
|
|
||||||
;Affiche un entier EDX de taille CX aprés le curseur
|
|
||||||
;-> AH=9, EDX un entier, CX la taille
|
|
||||||
;<-
|
|
||||||
;==============================================
|
|
||||||
Showsigned:
|
|
||||||
push ebx edx
|
|
||||||
mov ebx,edx
|
|
||||||
xor edx,edx
|
|
||||||
cmp cx,8
|
|
||||||
ja signed16
|
|
||||||
mov dl,bl
|
|
||||||
cmp dl,7Fh
|
|
||||||
jbe notsigned
|
|
||||||
neg dl
|
|
||||||
jmp showminus
|
|
||||||
signed16:
|
|
||||||
cmp cx,16
|
|
||||||
ja signed32
|
|
||||||
mov dx,bx
|
|
||||||
cmp dx,7FFFh
|
|
||||||
jbe notsigned
|
|
||||||
neg dx
|
|
||||||
jmp showminus
|
|
||||||
signed32:
|
|
||||||
mov edx,ebx
|
|
||||||
cmp edx,7FFFFFFFh
|
|
||||||
jbe notsigned
|
|
||||||
neg edx
|
|
||||||
showminus:
|
|
||||||
push dx
|
|
||||||
mov dl,'-'
|
|
||||||
call showchar
|
|
||||||
pop dx
|
|
||||||
notsigned:
|
|
||||||
call showint
|
|
||||||
pop edx ebx
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWHEX (Fonction 0Ah)===========
|
|
||||||
;Affiche un nombre hexadécimal EDX de taille CX aprés le curseur
|
|
||||||
;-> AH=10, EDX un entier, CX la taille
|
|
||||||
;<-
|
|
||||||
;===========================================
|
|
||||||
ShowHex:
|
|
||||||
push ax bx cx edx
|
|
||||||
mov ax,cx
|
|
||||||
shr ax,2
|
|
||||||
sub cx,32
|
|
||||||
neg cx
|
|
||||||
shl edx,cl
|
|
||||||
mov ch,cs:colors
|
|
||||||
Hexaize:
|
|
||||||
rol edx,4
|
|
||||||
mov bx,dx
|
|
||||||
and bx,0fh
|
|
||||||
mov cl,cs:[bx+offset Tab]
|
|
||||||
call charout
|
|
||||||
dec al
|
|
||||||
jnz Hexaize
|
|
||||||
pop edx cx bx ax
|
|
||||||
ret
|
|
||||||
|
|
||||||
Tab db '0123456789ABCDEF'
|
|
||||||
|
|
||||||
;==========SHOWBIN (Fonction 0Bh)===========
|
|
||||||
;Affiche un nombre binaire EDX de taille CX aprés le curseur
|
|
||||||
;-> AH=11, EDX un entier, CX la taille
|
|
||||||
;<-
|
|
||||||
;===========================================
|
|
||||||
Showbin:
|
|
||||||
push ax cx edx
|
|
||||||
mov ax,cx
|
|
||||||
sub cx,32
|
|
||||||
neg cx
|
|
||||||
shl edx,cl
|
|
||||||
mov ch,cs:colors
|
|
||||||
binaize:
|
|
||||||
rol edx,1
|
|
||||||
mov cl,'0'
|
|
||||||
adc cl,0
|
|
||||||
call charout
|
|
||||||
dec al
|
|
||||||
jnz binaize
|
|
||||||
pop edx cx ax
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWBCD (Fonction 0xh)===========
|
|
||||||
;Affiche un nombre en BCD EDX de taille CX aprés le curseur
|
|
||||||
;-> AH=x, EDX un entier, CX la taille
|
|
||||||
;<-
|
|
||||||
;===========================================
|
|
||||||
ShowBCD:
|
|
||||||
push ax cx edx
|
|
||||||
mov ax,cx
|
|
||||||
shr ax,2
|
|
||||||
sub cx,32
|
|
||||||
neg cx
|
|
||||||
shl edx,cl
|
|
||||||
mov ch,cs:colors
|
|
||||||
BCDaize:
|
|
||||||
rol edx,4
|
|
||||||
mov cl,dl
|
|
||||||
and cl,0fh
|
|
||||||
add cl,'0'
|
|
||||||
call charout
|
|
||||||
dec al
|
|
||||||
jnz BCDaize
|
|
||||||
pop edx cx ax
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWSTRING (Fonction 0Ch)===========
|
|
||||||
;Affiche une chaine de caractère pointée par DS:SI aprés le curseur
|
|
||||||
;-> AH=12, DS:SI pointeur chaine type pascal
|
|
||||||
;<-
|
|
||||||
;==============================================
|
|
||||||
showstring:
|
|
||||||
push bx cx si
|
|
||||||
mov bl,[si]
|
|
||||||
mov ch,cs:colors
|
|
||||||
strinaize:
|
|
||||||
inc si
|
|
||||||
mov cl,[si]
|
|
||||||
call charout
|
|
||||||
dec bl
|
|
||||||
jnz strinaize
|
|
||||||
pop si cx bx
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWSTRING0 (Fonction 0Dh)===========
|
|
||||||
;Affiche une chaine de caractère pointée par DS:SI aprés le curseur
|
|
||||||
;-> AH=13, DS:SI pointeur chaine type zéro terminal
|
|
||||||
;<-
|
|
||||||
;===============================================
|
|
||||||
showstring0:
|
|
||||||
push cx si
|
|
||||||
mov ch,cs:colors
|
|
||||||
strinaize0:
|
|
||||||
mov cl,[si]
|
|
||||||
cmp cl,0
|
|
||||||
je no0
|
|
||||||
call charout
|
|
||||||
inc si
|
|
||||||
jmp strinaize0
|
|
||||||
no0:
|
|
||||||
pop si cx
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWCHARAT (Fonction 0Eh)===========
|
|
||||||
;met un caractère de code ASCII DL en (x;y) (BH;BL)
|
|
||||||
;-> AH=14, DL code ASCII du caractère, BH coordonnées x, BL coordonnées y
|
|
||||||
;<-
|
|
||||||
;==============================================
|
|
||||||
showcharat:
|
|
||||||
push es di
|
|
||||||
call setxy
|
|
||||||
call showchar
|
|
||||||
pop di es
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWINTAT (Fonction 0Fh)===========
|
|
||||||
;Affiche un entier EDX en (x;y) (BH;BL)
|
|
||||||
;-> AH=15, EDX entier, BH coordonnées x, BL coordonnées y
|
|
||||||
;<-
|
|
||||||
;==============================================
|
|
||||||
showintat:
|
|
||||||
push es di
|
|
||||||
call setxy
|
|
||||||
call showint
|
|
||||||
pop di es
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWSIGNEDAT (Fonction 10h)===========
|
|
||||||
;Affiche un entier EDX de taille CX aprés le curseur en (x;y) (BH;BL)
|
|
||||||
;-> AH=16, EDX entier, BH coordonnées x, BL coordonnées y
|
|
||||||
;<-
|
|
||||||
;==============================================
|
|
||||||
showsignedat:
|
|
||||||
push es di
|
|
||||||
call setxy
|
|
||||||
call showsigned
|
|
||||||
pop di es
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWHEXAT (Fonction 11h)===========
|
|
||||||
;Affiche un nombre hexadécimal EDX de taille CX en (x;y) (BH;BL)
|
|
||||||
;-> AH=17, EDX un entier, CX la taille, BH coordonnées x, BL coordonnées y
|
|
||||||
;<-
|
|
||||||
;==============================================
|
|
||||||
showhexat:
|
|
||||||
push es di
|
|
||||||
call setxy
|
|
||||||
call showhex
|
|
||||||
pop di es
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWBINAT (Fonction 012h)===========
|
|
||||||
;Affiche un nombre binaire EDX de taille CX en (x;y) (BH;BL)
|
|
||||||
;-> AH=18, EDX un entier, CX la taille, BH coordonnées x, BL coordonnées y
|
|
||||||
;<-
|
|
||||||
;=============================================
|
|
||||||
showbinat:
|
|
||||||
push es di
|
|
||||||
call setxy
|
|
||||||
call showbin
|
|
||||||
pop di es
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWSTRINGAT (Fonction 13h)===========
|
|
||||||
;Affiche une chaine de caractère pointée par DS:SI en (x;y) (BH;BL)
|
|
||||||
;-> AH=19, DS:SI pointeur chaine type pascal, BH coordonnées x, BL coordonnées y
|
|
||||||
;<-
|
|
||||||
;================================================
|
|
||||||
showstringat:
|
|
||||||
push es di
|
|
||||||
call setxy
|
|
||||||
call showstring
|
|
||||||
pop di es
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWSTRING0AT (Fonction 14h)===========
|
|
||||||
;Affiche une chaine de caractère pointée par DS:SI en (x;y) (BH;BL)
|
|
||||||
;-> AH=20, DS:SI pointeur chaine type zéro terminal, BH coordonnées x, BL coordonnées y
|
|
||||||
;<-
|
|
||||||
;=================================================
|
|
||||||
showstring0at:
|
|
||||||
push es di
|
|
||||||
call setxy
|
|
||||||
call showstring0
|
|
||||||
pop di es
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SETCOLOR (Fonction 15h)=========
|
;==========SETCOLOR (Fonction 15h)=========
|
||||||
;Change les attributs du texte a CL
|
;Change les attributs du texte a CL
|
||||||
;-> AH=21 ,CL couleur
|
;-> AH=21 ,CL couleur
|
||||||
|
@ -1325,7 +787,7 @@ setxy2:
|
||||||
pop di es
|
pop di es
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;==========SETXYG (Fonction 0xh)=========
|
;==========SETXYG (Fonction 0Ah)=========
|
||||||
;Change les coordonnées du curseur graphique a X:BX,Y:CX
|
;Change les coordonnées du curseur graphique a X:BX,Y:CX
|
||||||
;-> AH=x, BX coordonnées x, CX coordonnées y
|
;-> AH=x, BX coordonnées x, CX coordonnées y
|
||||||
;<- ES:DI pointeur sur pixel avec plan de bit ajusté
|
;<- ES:DI pointeur sur pixel avec plan de bit ajusté
|
||||||
|
@ -1353,7 +815,7 @@ setxyg:
|
||||||
pop dx cx bx ax
|
pop dx cx bx ax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;==========SHOWPIXEL (Fonction 0xh)=========
|
;==========SHOWPIXEL (Fonction 08h)=========
|
||||||
;Affiche un pixel de couleur AL en X:BX,Y:CX
|
;Affiche un pixel de couleur AL en X:BX,Y:CX
|
||||||
;-> AH=x, BX coordonnées x, CX coordonnées y, AL couleur
|
;-> AH=x, BX coordonnées x, CX coordonnées y, AL couleur
|
||||||
;<-
|
;<-
|
||||||
|
@ -1381,7 +843,7 @@ showpixel:
|
||||||
pop es bp di dx cx bx ax
|
pop es bp di dx cx bx ax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;==========SHOWPIXEL (Fonction 0xh)=========
|
;==========SHOWPIXEL (Fonction 09h)=========
|
||||||
;Récupère en al la couleur du pixel de coordonnées X:BX,Y:CX
|
;Récupère en al la couleur du pixel de coordonnées X:BX,Y:CX
|
||||||
;-> AH=x, BX coordonnées x, CX coordonnées y, AL couleur
|
;-> AH=x, BX coordonnées x, CX coordonnées y, AL couleur
|
||||||
;<-
|
;<-
|
||||||
|
@ -1409,90 +871,6 @@ getpixel:
|
||||||
pop es bp di dx cx bx ax
|
pop es bp di dx cx bx ax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;==========LOADBMPPALET (Fonction 0xh)=========
|
|
||||||
;Charge la palette du BMP pointée par DS:SI
|
|
||||||
;-> AH=x, DS:SI BMP
|
|
||||||
;<-
|
|
||||||
;=============================================
|
|
||||||
loadbmppalet:
|
|
||||||
push ax bx cx dx
|
|
||||||
mov bx,0400h+36h-4
|
|
||||||
mov cx,100h
|
|
||||||
mov dx, 3c8h
|
|
||||||
paletteload:
|
|
||||||
mov al, cl
|
|
||||||
dec al
|
|
||||||
out dx, al
|
|
||||||
inc dx
|
|
||||||
mov al,[bx+si+2]
|
|
||||||
shr al,2
|
|
||||||
out dx, al
|
|
||||||
mov al,[bx+si+1]
|
|
||||||
shr al,2
|
|
||||||
out dx, al
|
|
||||||
mov al,[bx+si]
|
|
||||||
shr al,2
|
|
||||||
out dx, al
|
|
||||||
sub bx,4
|
|
||||||
dec dx
|
|
||||||
dec cl
|
|
||||||
jnz paletteload
|
|
||||||
pop dx cx bx ax
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========VIEWBMP (Fonction 0xh)=========
|
|
||||||
;Affiche le BMP pointée par DS:SI en X:BX, Y:CX avec la préparation de la palette
|
|
||||||
;<- AH=x, DS:SI BMP, BX coordonnées X, CX coordonnées Y
|
|
||||||
;->
|
|
||||||
;=========================================
|
|
||||||
viewbmp:
|
|
||||||
call loadbmppalet
|
|
||||||
call showbmp
|
|
||||||
ret
|
|
||||||
|
|
||||||
;==========SHOWBMP (Fonction 0xh)=========
|
|
||||||
;Affiche le BMP pointée par DS:SI en X:BX, Y:CX
|
|
||||||
;<- AH=x, DS:SI BMP, BX coordonnées X, CX coordonnées Y
|
|
||||||
;->
|
|
||||||
;=========================================
|
|
||||||
showbmp:
|
|
||||||
push ax bx cx dx
|
|
||||||
cmp word ptr ds:[si+BMP_file.BMP_FileType],"MB"
|
|
||||||
jne errorshowing
|
|
||||||
mov cs:xc,bx
|
|
||||||
mov cs:yc,cx
|
|
||||||
xor cx,cx
|
|
||||||
xor bx,bx
|
|
||||||
xor dx,dx
|
|
||||||
bouclette:
|
|
||||||
mov al,[si+bx+436h]
|
|
||||||
push bx cx
|
|
||||||
sub cx,cs:yc
|
|
||||||
neg cx
|
|
||||||
mov bx,dx
|
|
||||||
add bx,cs:xc
|
|
||||||
call showpixel
|
|
||||||
pop cx bx
|
|
||||||
inc bx
|
|
||||||
inc dx
|
|
||||||
cmp dx,[si+offset BMP_File.BMP_width]
|
|
||||||
jb bouclette
|
|
||||||
xor dx,dx
|
|
||||||
inc cx
|
|
||||||
cmp cx,[si+offset BMP_File.BMP_height]
|
|
||||||
jb bouclette
|
|
||||||
clc
|
|
||||||
pop dx cx bx ax
|
|
||||||
ret
|
|
||||||
|
|
||||||
errorshowing:
|
|
||||||
stc
|
|
||||||
pop dx cx bx ax
|
|
||||||
ret
|
|
||||||
|
|
||||||
xc dw 0
|
|
||||||
yc dw 0
|
|
||||||
|
|
||||||
;==========GETVGAINFO (Fonction 0xh)=========
|
;==========GETVGAINFO (Fonction 0xh)=========
|
||||||
;Renvoie un bloc de donnée en ES:DI sur l'état de la carte graphique
|
;Renvoie un bloc de donnée en ES:DI sur l'état de la carte graphique
|
||||||
;<- AH=x, ES:DI pointeur
|
;<- AH=x, ES:DI pointeur
|
||||||
|
@ -1969,25 +1347,6 @@ jne save2
|
||||||
pop si dx cx ax
|
pop si dx cx ax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;couleur al pour ligne di A SUPPRIMER
|
|
||||||
changelineattr:
|
|
||||||
push ax bx di es
|
|
||||||
mov bx,ax
|
|
||||||
mov ax,0B800h
|
|
||||||
mov es,ax
|
|
||||||
mov ax,di
|
|
||||||
mul cs:columns
|
|
||||||
mov di,ax
|
|
||||||
shl di,1
|
|
||||||
mov al,cs:columns
|
|
||||||
inc di
|
|
||||||
popep:
|
|
||||||
mov es:[di],bl
|
|
||||||
add di,2
|
|
||||||
dec al
|
|
||||||
jnz popep
|
|
||||||
pop es di bx ax
|
|
||||||
ret
|
|
||||||
|
|
||||||
font8x8:
|
font8x8:
|
||||||
include ..\include\pol8x8.inc
|
include ..\include\pol8x8.inc
|
||||||
|
|
Loading…
Reference in New Issue