fix: correction d'un bogue dans le passage de parametre avec \ dans print Ajout des fonction d'affichage d'entier dans print Ajout de gestion de pointeur long pour les chaines
This commit is contained in:
parent
5a26295438
commit
ccf990b896
128
lib/video.asm
128
lib/video.asm
|
@ -78,9 +78,13 @@ print PROC FAR
|
||||||
mov cl,byte ptr [si+1]
|
mov cl,byte ptr [si+1]
|
||||||
cmp cl,'c'
|
cmp cl,'c'
|
||||||
je @@showchar
|
je @@showchar
|
||||||
cmp cl,'i'
|
cmp cl,'u'
|
||||||
je @@showint
|
je @@showint
|
||||||
cmp cl,'j'
|
cmp cl,'v'
|
||||||
|
je @@showfixint
|
||||||
|
cmp cl,'w'
|
||||||
|
je @@showintr
|
||||||
|
cmp cl,'i'
|
||||||
je @@showsigned
|
je @@showsigned
|
||||||
cmp cl,'h'
|
cmp cl,'h'
|
||||||
je @@showhex
|
je @@showhex
|
||||||
|
@ -119,6 +123,24 @@ print PROC FAR
|
||||||
add di,4
|
add di,4
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@showfixint:
|
||||||
|
push dword ptr [offset pointer+di+2]
|
||||||
|
add di,4
|
||||||
|
push word ptr [offset pointer+di+2]
|
||||||
|
add di,2
|
||||||
|
call showfixint
|
||||||
|
add si,2
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@showintr:
|
||||||
|
push dword ptr [offset pointer+di+2]
|
||||||
|
add di,4
|
||||||
|
push word ptr [offset pointer+di+2]
|
||||||
|
add di,2
|
||||||
|
call showintr
|
||||||
|
add si,2
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@showsigned:
|
@@showsigned:
|
||||||
call @@Chosesize
|
call @@Chosesize
|
||||||
call showsigned
|
call showsigned
|
||||||
|
@ -135,18 +157,40 @@ print PROC FAR
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@showstring:
|
@@showstring:
|
||||||
|
cmp byte ptr [si+2],'P'
|
||||||
|
je @@showstringpointer
|
||||||
push word ptr [offset pointer+di+2]
|
push word ptr [offset pointer+di+2]
|
||||||
call showstring
|
call showstring
|
||||||
add si,2
|
add si,2
|
||||||
add di,2
|
add di,2
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
@@showstringpointer:
|
||||||
|
push ds
|
||||||
|
mov ds,[offset pointer+di+2+2]
|
||||||
|
push word ptr [offset pointer+di+2]
|
||||||
|
call showstring
|
||||||
|
add si,3
|
||||||
|
add di,4
|
||||||
|
pop ds
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@showstring0:
|
@@showstring0:
|
||||||
|
cmp byte ptr [si+2],'P'
|
||||||
|
je @@showstring0pointer
|
||||||
push word ptr [offset pointer+di+2]
|
push word ptr [offset pointer+di+2]
|
||||||
call showstring0
|
call showstring0
|
||||||
add si,2
|
add si,2
|
||||||
add di,2
|
add di,2
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
@@showstring0pointer:
|
||||||
|
push ds
|
||||||
|
mov ds,[offset pointer+di+2+2]
|
||||||
|
push word ptr [offset pointer+di+2]
|
||||||
|
call showstring0
|
||||||
|
add si,3
|
||||||
|
add di,4
|
||||||
|
pop ds
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@showbcd:
|
@@showbcd:
|
||||||
call @@Chosesize
|
call @@Chosesize
|
||||||
|
@ -217,7 +261,7 @@ print PROC FAR
|
||||||
add si,3
|
add si,3
|
||||||
push cx
|
push cx
|
||||||
retn
|
retn
|
||||||
|
|
||||||
@@special2:
|
@@special2:
|
||||||
cmp byte ptr [si+1],'\'
|
cmp byte ptr [si+1],'\'
|
||||||
jne @@notshowit2
|
jne @@notshowit2
|
||||||
|
@ -229,6 +273,8 @@ print PROC FAR
|
||||||
je @@showline
|
je @@showline
|
||||||
cmp cl,'g'
|
cmp cl,'g'
|
||||||
je @@goto
|
je @@goto
|
||||||
|
cmp cl,'h'
|
||||||
|
je @@gotox
|
||||||
cmp cl,'c'
|
cmp cl,'c'
|
||||||
je @@color
|
je @@color
|
||||||
cmp cl,'m'
|
cmp cl,'m'
|
||||||
|
@ -247,61 +293,89 @@ print PROC FAR
|
||||||
je @@setfont
|
je @@setfont
|
||||||
clc
|
clc
|
||||||
jmp @@no0
|
jmp @@no0
|
||||||
|
|
||||||
@@color:
|
@@color:
|
||||||
mov cl,[si+2]
|
mov ah,[si+2]
|
||||||
|
sub ah,'0'
|
||||||
|
mov cl,ah
|
||||||
|
shl cl,3
|
||||||
|
add cl,ah
|
||||||
|
add cl,ah
|
||||||
add cl,[si+3]
|
add cl,[si+3]
|
||||||
sub cl,'0'
|
sub cl,'0'
|
||||||
sub cl,'0'
|
|
||||||
mov ah,21
|
mov ah,21
|
||||||
int 47h
|
int 47h
|
||||||
add si,4
|
add si,4
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
|
@@gotox:
|
||||||
|
mov ah,24
|
||||||
|
int 47h
|
||||||
|
mov ah,[si+2]
|
||||||
|
sub ah,'0'
|
||||||
|
mov bh,ah
|
||||||
|
shl bh,3
|
||||||
|
add bh,ah
|
||||||
|
add bh,ah
|
||||||
|
add bh,[si+3]
|
||||||
|
sub bh,'0'
|
||||||
|
mov ah,25
|
||||||
|
int 47h
|
||||||
|
add si,4
|
||||||
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@setvideomode:
|
@@setvideomode:
|
||||||
mov al,[si+2]
|
mov ah,[si+2]
|
||||||
|
sub ah,'0'
|
||||||
|
mov al,ah
|
||||||
|
shl al,3
|
||||||
|
add al,ah
|
||||||
|
add al,ah
|
||||||
add al,[si+3]
|
add al,[si+3]
|
||||||
sub al,'0'
|
sub al,'0'
|
||||||
sub al,'0'
|
|
||||||
mov ah,0
|
mov ah,0
|
||||||
int 47h
|
int 47h
|
||||||
add si,4
|
add si,4
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@setfont:
|
@@setfont:
|
||||||
mov cl,[si+2]
|
mov ah,[si+2]
|
||||||
|
sub ah,'0'
|
||||||
|
mov cl,ah
|
||||||
|
shl cl,3
|
||||||
|
add cl,ah
|
||||||
|
add cl,ah
|
||||||
add cl,[si+3]
|
add cl,[si+3]
|
||||||
sub cl,'0'
|
sub cl,'0'
|
||||||
sub cl,'0'
|
|
||||||
mov ah,3
|
mov ah,3
|
||||||
int 47h
|
int 47h
|
||||||
add si,4
|
add si,4
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@showline:
|
@@showline:
|
||||||
mov ah,6
|
mov ah,6
|
||||||
int 47h
|
int 47h
|
||||||
add si,2
|
add si,2
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@clearscreen:
|
@@clearscreen:
|
||||||
mov ah,2
|
mov ah,2
|
||||||
int 47h
|
int 47h
|
||||||
add si,2
|
add si,2
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@savestate:
|
@@savestate:
|
||||||
mov ah,40
|
mov ah,40
|
||||||
int 47h
|
int 47h
|
||||||
add si,2
|
add si,2
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@restorestate:
|
@@restorestate:
|
||||||
mov ah,41
|
mov ah,41
|
||||||
int 47h
|
int 47h
|
||||||
add si,2
|
add si,2
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@enablescroll:
|
@@enablescroll:
|
||||||
mov ah,42
|
mov ah,42
|
||||||
int 47h
|
int 47h
|
||||||
|
@ -313,16 +387,24 @@ print PROC FAR
|
||||||
int 47h
|
int 47h
|
||||||
add si,2
|
add si,2
|
||||||
jmp @@strinaize0
|
jmp @@strinaize0
|
||||||
|
|
||||||
@@goto:
|
@@goto:
|
||||||
mov bh,[si+2]
|
mov ah,[si+2]
|
||||||
|
sub ah,'0'
|
||||||
|
mov bh,ah
|
||||||
|
shl bh,3
|
||||||
|
add bh,ah
|
||||||
|
add bh,ah
|
||||||
add bh,[si+3]
|
add bh,[si+3]
|
||||||
sub bh,'0'
|
|
||||||
sub bh,'0'
|
sub bh,'0'
|
||||||
;
|
;
|
||||||
mov bl,[si+5]
|
mov ah,[si+2]
|
||||||
add bl,[si+6]
|
sub ah,'0'
|
||||||
sub bl,'0'
|
mov bl,ah
|
||||||
|
shl bl,3
|
||||||
|
add bl,ah
|
||||||
|
add bl,ah
|
||||||
|
add bl,[si+3]
|
||||||
sub bl,'0'
|
sub bl,'0'
|
||||||
mov ah,25
|
mov ah,25
|
||||||
int 47h
|
int 47h
|
||||||
|
|
Loading…
Reference in New Issue