feat: préparation au remagnage de la librairie video
This commit is contained in:
parent
9465b99c3f
commit
6be56b4cce
|
@ -100,6 +100,7 @@ tables dw setvideomode ;Table qui contient les adresses de toutes les fonctions
|
||||||
dw showname
|
dw showname
|
||||||
dw showattr
|
dw showattr
|
||||||
dw showsize
|
dw showsize
|
||||||
|
dw getchar
|
||||||
|
|
||||||
;================================Table des modes videos (64 BYTES) ============================================
|
;================================Table des modes videos (64 BYTES) ============================================
|
||||||
;40*25 16 couleurs
|
;40*25 16 couleurs
|
||||||
|
@ -226,7 +227,7 @@ Attribs equ 03C0h
|
||||||
graphics equ 03CEh
|
graphics equ 03CEh
|
||||||
statut equ 03DAh
|
statut equ 03DAh
|
||||||
|
|
||||||
maxfunc equ 48
|
maxfunc equ 39h
|
||||||
maxmode equ 9
|
maxmode equ 9
|
||||||
planesize equ 64000
|
planesize equ 64000
|
||||||
;============================================Fonctions de l'int VIDEO===========================================
|
;============================================Fonctions de l'int VIDEO===========================================
|
||||||
|
@ -1274,6 +1275,20 @@ getxy:
|
||||||
;=====================================
|
;=====================================
|
||||||
setxy:
|
setxy:
|
||||||
push ax bx cx dx
|
push ax bx cx dx
|
||||||
|
; xor ax,ax
|
||||||
|
; int 16h
|
||||||
|
; mov cl,cs:lines
|
||||||
|
; dec cl
|
||||||
|
; sub cl,bl
|
||||||
|
; neg cl
|
||||||
|
; js zero
|
||||||
|
; xor ch,ch
|
||||||
|
; inc cl
|
||||||
|
; jmp nozero
|
||||||
|
;zero:
|
||||||
|
; mov cx,0
|
||||||
|
;nozero:
|
||||||
|
; call scrolldown
|
||||||
mov cs:x,bh
|
mov cs:x,bh
|
||||||
mov cs:y,bl
|
mov cs:y,bl
|
||||||
mov al,bl
|
mov al,bl
|
||||||
|
@ -1298,6 +1313,7 @@ setxy:
|
||||||
oktext:
|
oktext:
|
||||||
mov ax,0B800h
|
mov ax,0B800h
|
||||||
mov es,ax
|
mov es,ax
|
||||||
|
call setcursor
|
||||||
endofsetxy:
|
endofsetxy:
|
||||||
pop dx cx bx ax
|
pop dx cx bx ax
|
||||||
ret
|
ret
|
||||||
|
@ -1507,12 +1523,59 @@ waitr:
|
||||||
pop dx ax
|
pop dx ax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
;Renvoie le caractère sur le curseur en dl
|
||||||
|
getchar:
|
||||||
|
push ax di es
|
||||||
|
mov ax,0B800h
|
||||||
|
mov es,ax
|
||||||
|
mov di,cs:xy
|
||||||
|
mov dl,es:[di]
|
||||||
|
pop es di ax
|
||||||
|
ret
|
||||||
|
|
||||||
;Ecrit le caractère ASCII CL attribut CH aprés le curseur, en le mettant à jours
|
;Ecrit le caractère ASCII CL attribut CH aprés le curseur, en le mettant à jours
|
||||||
charout:
|
charout:
|
||||||
push ax bx cx dx di es
|
push ax bx cx dx di es
|
||||||
cmp byte ptr cs:graphics,1
|
cmp byte ptr cs:graphics,1
|
||||||
jne textaccess
|
jne textaccess
|
||||||
mov dx,cx
|
call emulatechar
|
||||||
|
jmp adjusttext
|
||||||
|
textaccess:
|
||||||
|
mov ax,0B800h
|
||||||
|
mov es,ax
|
||||||
|
mov di,cs:xy
|
||||||
|
mov es:[di],cx
|
||||||
|
add cs:xy,2
|
||||||
|
adjusttext:
|
||||||
|
inc cs:x
|
||||||
|
mov cl,cs:columns
|
||||||
|
cmp cs:x,cl
|
||||||
|
jb noadjusted
|
||||||
|
call showline
|
||||||
|
noadjusted:
|
||||||
|
call setcursor
|
||||||
|
pop es di dx cx bx ax
|
||||||
|
ret
|
||||||
|
|
||||||
|
setcursor:
|
||||||
|
push ax cx dx
|
||||||
|
mov dx,CCRT
|
||||||
|
mov al,0Eh
|
||||||
|
mov cx,cs:xy
|
||||||
|
shr cx,1
|
||||||
|
mov ah,ch
|
||||||
|
out dx,ax
|
||||||
|
mov ah,cl
|
||||||
|
inc al
|
||||||
|
out dx,ax
|
||||||
|
pop dx cx ax
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
;Ecrit le caractère ASCII CL attribut CH aprés le curseur graphique, en le mettant à jours en mode graphique
|
||||||
|
emulatechar:
|
||||||
|
push ax bx cx dx di
|
||||||
|
mov dx,cx
|
||||||
mov di,dx
|
mov di,dx
|
||||||
and di,11111111b
|
and di,11111111b
|
||||||
shl di,3
|
shl di,3
|
||||||
|
@ -1548,33 +1611,12 @@ transparent:
|
||||||
mov cx,cs:linesize
|
mov cx,cs:linesize
|
||||||
shl cx,2
|
shl cx,2
|
||||||
cmp cs:xg,cx
|
cmp cs:xg,cx
|
||||||
jb adjusttext
|
jb ended
|
||||||
mov cs:xg,0
|
mov cs:xg,0
|
||||||
add cs:yg,8
|
add cs:yg,8
|
||||||
jmp adjusttext
|
ended:
|
||||||
textaccess:
|
pop di dx cx bx ax
|
||||||
mov ax,0B800h
|
ret
|
||||||
mov es,ax
|
|
||||||
mov di,cs:xy
|
|
||||||
mov es:[di],cx
|
|
||||||
add cs:xy,2
|
|
||||||
adjusttext:
|
|
||||||
inc cs:x
|
|
||||||
mov cl,cs:columns
|
|
||||||
cmp cs:x,cl
|
|
||||||
jb noadjusted
|
|
||||||
call showline
|
|
||||||
noadjusted:
|
|
||||||
;mov dx,3D4h
|
|
||||||
;mov al,0Eh
|
|
||||||
;mov di,offset xy
|
|
||||||
;mov ah,cs:[di]
|
|
||||||
;out dx,ax
|
|
||||||
;mov ah,cs:[di+1]
|
|
||||||
;dec al
|
|
||||||
;out dx,ax
|
|
||||||
pop es di dx cx bx ax
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue