fix: rajout du commutateur \ dans la fonction print et correction d'un bogue lors du passage d'un unique parametre a cette fonction
This commit is contained in:
parent
309de1fa7b
commit
5a26295438
146
lib/video.asm
146
lib/video.asm
|
@ -54,7 +54,7 @@ print PROC FAR
|
||||||
ARG pointer:word=taille
|
ARG pointer:word=taille
|
||||||
push bp
|
push bp
|
||||||
mov bp,sp
|
mov bp,sp
|
||||||
push cx si di
|
push ax bx cx si di
|
||||||
xor di,di
|
xor di,di
|
||||||
mov si,[pointer]
|
mov si,[pointer]
|
||||||
@@strinaize0:
|
@@strinaize0:
|
||||||
|
@ -63,6 +63,8 @@ print PROC FAR
|
||||||
je @@no0
|
je @@no0
|
||||||
cmp cl,'%'
|
cmp cl,'%'
|
||||||
je @@special
|
je @@special
|
||||||
|
cmp cl,'\'
|
||||||
|
je @@special2
|
||||||
@@showit:
|
@@showit:
|
||||||
call charout
|
call charout
|
||||||
inc si
|
inc si
|
||||||
|
@ -215,19 +217,129 @@ print PROC FAR
|
||||||
add si,3
|
add si,3
|
||||||
push cx
|
push cx
|
||||||
retn
|
retn
|
||||||
|
|
||||||
|
@@special2:
|
||||||
|
cmp byte ptr [si+1],'\'
|
||||||
|
jne @@notshowit2
|
||||||
|
inc si
|
||||||
|
jmp @@showit
|
||||||
|
@@notshowit2:
|
||||||
|
mov cl,byte ptr [si+1]
|
||||||
|
cmp cl,'l'
|
||||||
|
je @@showline
|
||||||
|
cmp cl,'g'
|
||||||
|
je @@goto
|
||||||
|
cmp cl,'c'
|
||||||
|
je @@color
|
||||||
|
cmp cl,'m'
|
||||||
|
je @@setvideomode
|
||||||
|
cmp cl,'e'
|
||||||
|
je @@clearscreen
|
||||||
|
cmp cl,'s'
|
||||||
|
je @@savestate
|
||||||
|
cmp cl,'r'
|
||||||
|
je @@restorestate
|
||||||
|
cmp cl,'i'
|
||||||
|
je @@enablescroll
|
||||||
|
cmp cl,'j'
|
||||||
|
je @@disablescroll
|
||||||
|
cmp cl,'f'
|
||||||
|
je @@setfont
|
||||||
|
clc
|
||||||
|
jmp @@no0
|
||||||
|
|
||||||
|
@@color:
|
||||||
|
mov cl,[si+2]
|
||||||
|
add cl,[si+3]
|
||||||
|
sub cl,'0'
|
||||||
|
sub cl,'0'
|
||||||
|
mov ah,21
|
||||||
|
int 47h
|
||||||
|
add si,4
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@setvideomode:
|
||||||
|
mov al,[si+2]
|
||||||
|
add al,[si+3]
|
||||||
|
sub al,'0'
|
||||||
|
sub al,'0'
|
||||||
|
mov ah,0
|
||||||
|
int 47h
|
||||||
|
add si,4
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@setfont:
|
||||||
|
mov cl,[si+2]
|
||||||
|
add cl,[si+3]
|
||||||
|
sub cl,'0'
|
||||||
|
sub cl,'0'
|
||||||
|
mov ah,3
|
||||||
|
int 47h
|
||||||
|
add si,4
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@showline:
|
||||||
|
mov ah,6
|
||||||
|
int 47h
|
||||||
|
add si,2
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@clearscreen:
|
||||||
|
mov ah,2
|
||||||
|
int 47h
|
||||||
|
add si,2
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@savestate:
|
||||||
|
mov ah,40
|
||||||
|
int 47h
|
||||||
|
add si,2
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@restorestate:
|
||||||
|
mov ah,41
|
||||||
|
int 47h
|
||||||
|
add si,2
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@enablescroll:
|
||||||
|
mov ah,42
|
||||||
|
int 47h
|
||||||
|
add si,2
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@disablescroll:
|
||||||
|
mov ah,43
|
||||||
|
int 47h
|
||||||
|
add si,2
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@goto:
|
||||||
|
mov bh,[si+2]
|
||||||
|
add bh,[si+3]
|
||||||
|
sub bh,'0'
|
||||||
|
sub bh,'0'
|
||||||
|
;
|
||||||
|
mov bl,[si+5]
|
||||||
|
add bl,[si+6]
|
||||||
|
sub bl,'0'
|
||||||
|
sub bl,'0'
|
||||||
|
mov ah,25
|
||||||
|
int 47h
|
||||||
|
add si,7
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@no0:
|
@@no0:
|
||||||
add di,bp
|
add di,bp
|
||||||
add di,2
|
add di,2
|
||||||
mov cx,ss:[bp+2]
|
mov ax,ss:[bp] ;BP
|
||||||
mov ss:[di+2],cx
|
mov bx,ss:[bp+2] ;IP
|
||||||
mov cx,ss:[bp+4]
|
mov cx,ss:[bp+4] ;CS
|
||||||
|
mov ss:[di],ax
|
||||||
|
mov ss:[di+2],bx
|
||||||
mov ss:[di+4],cx
|
mov ss:[di+4],cx
|
||||||
mov cx,ss:[bp]
|
|
||||||
mov ss:[di],cx
|
|
||||||
mov bp,di
|
mov bp,di
|
||||||
pop di si cx
|
pop di si cx bx ax
|
||||||
mov sp,bp
|
mov sp,bp
|
||||||
pop bp
|
pop bp
|
||||||
retf
|
retf
|
||||||
|
@ -831,20 +943,12 @@ showstring0 ENDP
|
||||||
|
|
||||||
;Envoie le caractère CL vers l'ecran
|
;Envoie le caractère CL vers l'ecran
|
||||||
charout PROC NEAR
|
charout PROC NEAR
|
||||||
push ax bx cx
|
push ax dx
|
||||||
mov ah,0Eh
|
mov ah,7
|
||||||
mov bl,7
|
mov dl,cl
|
||||||
mov al,cl
|
int 47h
|
||||||
int 10h
|
pop dx ax
|
||||||
pop cx bx ax
|
ret
|
||||||
ret
|
|
||||||
|
|
||||||
;push ax dx
|
|
||||||
;mov ah,7
|
|
||||||
;mov dl,cl
|
|
||||||
;int 47h
|
|
||||||
;pop dx ax
|
|
||||||
;ret
|
|
||||||
charout ENDP
|
charout ENDP
|
||||||
|
|
||||||
end start
|
end start
|
||||||
|
|
Loading…
Reference in New Issue