fix: correction d'un bogue ne permettant plus d'identifier le père du bloc mémoire dans toutes les fonctions de restauration et de sauvegarde

This commit is contained in:
Nicolas Hordé 2007-03-27 10:25:12 +00:00
parent 3942d63f1e
commit fa8dcc4442
1 changed files with 22 additions and 14 deletions

View File

@ -1002,12 +1002,13 @@ ended:
;sauve l'ecran dans un bloc de mémoire ;sauve l'ecran dans un bloc de mémoire
PROC savescreen FAR PROC savescreen FAR
USES ax,ds USES ax,ds,bp
mov bp,sp
push cs push cs
pop ds pop ds
call [cs:mbcreate],offset data3,[cs:datablock.pagesize] call [cs:mbcreate],offset data3,[cs:datablock.pagesize]
jc @@error jc @@error
call [cs:mbchown],ax,[word ptr ss:bp+4] call [cs:mbchown],ax,[word ptr ss:bp+8]
jc @@error jc @@error
push ax push ax
pop ds pop ds
@ -1080,10 +1081,11 @@ endp restoreparamfrom
;restaure l'ecran dans un bloc de mémoire ;restaure l'ecran dans un bloc de mémoire
PROC restorescreen FAR PROC restorescreen FAR
USES ax,ds USES ax,ds,bp
mov bp,sp
push cs push cs
pop ds pop ds
call [cs:mbfindsb],offset data3,[word ptr ss:bp+4] call [cs:mbfindsb],offset data3,[word ptr ss:bp+8]
jc @@error jc @@error
push ax push ax
pop ds pop ds
@ -1149,12 +1151,13 @@ PROC page1to2 FAR
endp page1to2 endp page1to2
;===============================xchgPages============================ ;===============================xchgPages============================
PROC xchgpages FAR PROC xchgpages FAR
USES ax,ecx,si,di,ds,es USES ax,ecx,si,di,ds,es,bp
mov bp,sp
push cs push cs
pop ds pop ds
call [cs:mbcreate],offset data4,[cs:datablock.pagesize] call [cs:mbcreate],offset data4,[cs:datablock.pagesize]
jc @@error jc @@error
call [cs:mbchown],ax,[word ptr ss:bp+4] call [cs:mbchown],ax,[word ptr ss:bp+18]
jc @@error jc @@error
push ax push ax
pop ds pop ds
@ -1169,6 +1172,7 @@ mov cx,[cs:datablock.pagesize]
shr cx,2 shr cx,2
cld cld
rep movsd rep movsd
call [cs:mbfree],ax
clc clc
ret ret
@@error: @@error:
@ -1184,7 +1188,8 @@ data4 db '/vgatemp',0
;Sauve l'tat de la carte dans un bloc mémoire ;Sauve l'tat de la carte dans un bloc mémoire
PROC savestate FAR PROC savestate FAR
USES ax,cx,di,ds USES ax,cx,di,ds,bp
mov bp,sp
mov cx,size datablock mov cx,size datablock
add cx,[cs:datablock.pagesize] add cx,[cs:datablock.pagesize]
add cx,3*256 add cx,3*256
@ -1192,7 +1197,7 @@ push cs
pop ds pop ds
call [cs:mbcreate],offset data,cx call [cs:mbcreate],offset data,cx
jc @@error jc @@error
call [cs:mbchown],ax,[word ptr ss:bp+4] call [cs:mbchown],ax,[word ptr ss:bp+12]
jc @@error jc @@error
push ax push ax
pop ds pop ds
@ -1216,10 +1221,11 @@ data db '/vga',0
;RcupŠre l'tat de la carte depuis son bloc mémoire ;RcupŠre l'tat de la carte depuis son bloc mémoire
PROC restorestate FAR PROC restorestate FAR
USES ax,cx,di,ds USES ax,cx,di,ds,bp
mov bp,sp
push cs push cs
pop ds pop ds
call [cs:mbfindsb],offset data,[word ptr ss:bp+4] call [cs:mbfindsb],offset data,[word ptr ss:bp+12]
jc @@error jc @@error
push ax push ax
pop ds pop ds
@ -1239,12 +1245,13 @@ endp restorestate
;sauve le DAC dans un bloc de mémoire ;sauve le DAC dans un bloc de mémoire
PROC savedac FAR PROC savedac FAR
USES ax,ds USES ax,ds,bp
mov bp,sp
push cs push cs
pop ds pop ds
call [cs:mbcreate],offset data3,3*256 call [cs:mbcreate],offset data3,3*256
jc @@error jc @@error
call [cs:mbchown],ax,[word ptr ss:bp+4] call [cs:mbchown],ax,[word ptr ss:bp+8]
jc @@error jc @@error
push ax push ax
pop ds pop ds
@ -1262,8 +1269,9 @@ data2 db '/vgadac',0
;RcupŠre le dac depuis son bloc mémoire ;RcupŠre le dac depuis son bloc mémoire
PROC restoredac FAR PROC restoredac FAR
USES ax,ds USES ax,ds,bp
call [cs:mbfindsb],offset data2,[word ptr ss:bp+4] mov bp,sp
call [cs:mbfindsb],offset data2,[word ptr ss:bp+8]
jc @@error jc @@error
push ax push ax
pop ds pop ds