From fa8dcc4442780371ffa254113394798ce9e71c41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Hord=C3=A9?= Date: Tue, 27 Mar 2007 10:25:12 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20correction=20d'un=20bogue=20ne=20permett?= =?UTF-8?q?ant=20plus=20d'identifier=20le=20p=C3=A8re=20du=20bloc=20m?= =?UTF-8?q?=C3=A9moire=20dans=20toutes=20les=20fonctions=20de=20restaurati?= =?UTF-8?q?on=20et=20de=20sauvegarde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- noyau/video.asm | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/noyau/video.asm b/noyau/video.asm index 11c34ee..e8b6f68 100644 --- a/noyau/video.asm +++ b/noyau/video.asm @@ -1002,12 +1002,13 @@ ended: ;sauve l'ecran dans un bloc de mémoire PROC savescreen FAR -USES ax,ds +USES ax,ds,bp +mov bp,sp push cs pop ds call [cs:mbcreate],offset data3,[cs:datablock.pagesize] jc @@error -call [cs:mbchown],ax,[word ptr ss:bp+4] +call [cs:mbchown],ax,[word ptr ss:bp+8] jc @@error push ax pop ds @@ -1080,10 +1081,11 @@ endp restoreparamfrom ;restaure l'ecran dans un bloc de mémoire PROC restorescreen FAR -USES ax,ds +USES ax,ds,bp +mov bp,sp push cs pop ds -call [cs:mbfindsb],offset data3,[word ptr ss:bp+4] +call [cs:mbfindsb],offset data3,[word ptr ss:bp+8] jc @@error push ax pop ds @@ -1149,12 +1151,13 @@ PROC page1to2 FAR endp page1to2 ;===============================xchgPages============================ PROC xchgpages FAR - USES ax,ecx,si,di,ds,es + USES ax,ecx,si,di,ds,es,bp +mov bp,sp push cs pop ds call [cs:mbcreate],offset data4,[cs:datablock.pagesize] jc @@error -call [cs:mbchown],ax,[word ptr ss:bp+4] +call [cs:mbchown],ax,[word ptr ss:bp+18] jc @@error push ax pop ds @@ -1169,6 +1172,7 @@ mov cx,[cs:datablock.pagesize] shr cx,2 cld rep movsd +call [cs:mbfree],ax clc ret @@error: @@ -1184,7 +1188,8 @@ data4 db '/vgatemp',0 ;Sauve l'‚tat de la carte dans un bloc mémoire PROC savestate FAR -USES ax,cx,di,ds +USES ax,cx,di,ds,bp +mov bp,sp mov cx,size datablock add cx,[cs:datablock.pagesize] add cx,3*256 @@ -1192,7 +1197,7 @@ push cs pop ds call [cs:mbcreate],offset data,cx jc @@error -call [cs:mbchown],ax,[word ptr ss:bp+4] +call [cs:mbchown],ax,[word ptr ss:bp+12] jc @@error push ax pop ds @@ -1216,10 +1221,11 @@ data db '/vga',0 ;R‚cupŠre l'‚tat de la carte depuis son bloc mémoire PROC restorestate FAR -USES ax,cx,di,ds +USES ax,cx,di,ds,bp +mov bp,sp push cs pop ds -call [cs:mbfindsb],offset data,[word ptr ss:bp+4] +call [cs:mbfindsb],offset data,[word ptr ss:bp+12] jc @@error push ax pop ds @@ -1239,12 +1245,13 @@ endp restorestate ;sauve le DAC dans un bloc de mémoire PROC savedac FAR -USES ax,ds +USES ax,ds,bp +mov bp,sp push cs pop ds call [cs:mbcreate],offset data3,3*256 jc @@error -call [cs:mbchown],ax,[word ptr ss:bp+4] +call [cs:mbchown],ax,[word ptr ss:bp+8] jc @@error push ax pop ds @@ -1262,8 +1269,9 @@ data2 db '/vgadac',0 ;R‚cupŠre le dac depuis son bloc mémoire PROC restoredac FAR -USES ax,ds -call [cs:mbfindsb],offset data2,[word ptr ss:bp+4] +USES ax,ds,bp +mov bp,sp +call [cs:mbfindsb],offset data2,[word ptr ss:bp+8] jc @@error push ax pop ds