Răsfoiți Sursa

* i8086 far data model fixes in Save/RestoreStateVGA and Save/RestoreStateVESA

git-svn-id: trunk@27469 -
nickysn 11 ani în urmă
părinte
comite
c0709eef40
2 a modificat fișierele cu 12 adăugiri și 12 ștergeri
  1. 6 6
      packages/graph/src/msdos/graph.pp
  2. 6 6
      packages/graph/src/msdos/vesa.inc

+ 6 - 6
packages/graph/src/msdos/graph.pp

@@ -2882,15 +2882,15 @@ const CrtAddress: word = 0;
         { call the real mode interrupt ... }
         regs.ax := $1C01;      { save the state buffer                   }
         regs.cx := $07;        { Save DAC / Data areas / Hardware states }
-        regs.es := DSeg;
-        regs.bx := Word(SavePtr);
+        regs.es := Seg(SavePtr^);
+        regs.bx := Ofs(SavePtr^);
         Intr($10,regs);
         { restore state, according to Ralph Brown Interrupt list }
         { some BIOS corrupt the hardware after a save...         }
         regs.ax := $1C02;      { restore the state buffer                }
         regs.cx := $07;        { rest DAC / Data areas / Hardware states }
-        regs.es := DSeg;
-        regs.bx := Word(SavePtr);
+        regs.es := Seg(SavePtr^);
+        regs.bx := Ofs(SavePtr^);
         Intr($10,regs);
       end;
   end;
@@ -2908,8 +2908,8 @@ const CrtAddress: word = 0;
       begin
          regs.ax := $1C02;      { restore the state buffer                }
          regs.cx := $07;        { rest DAC / Data areas / Hardware states }
-         regs.es := DSeg;
-         regs.bx := Word(SavePtr);
+         regs.es := Seg(SavePtr^);
+         regs.bx := Ofs(SavePtr^);
          Intr($10,regs);
 
          SavePtrCopy := SavePtr;

+ 6 - 6
packages/graph/src/msdos/vesa.inc

@@ -1835,16 +1835,16 @@ end;
         regs.ax := $4F04;      { save the state buffer                   }
         regs.cx := $0F;        { Save DAC / Data areas / Hardware states }
         regs.dx := $01;        { save state                              }
-        regs.es := DSeg;
-        regs.bx := Word(SavePtr);
+        regs.es := Seg(SavePtr^);
+        regs.bx := Ofs(SavePtr^);
         Intr($10,regs);
         { restore state, according to Ralph Brown Interrupt list }
         { some BIOS corrupt the hardware after a save...         }
         regs.ax := $4F04;      { restore the state buffer                }
         regs.cx := $0F;        { rest DAC / Data areas / Hardware states }
         regs.dx := $02;
-        regs.es := DSeg;
-        regs.bx := Word(SavePtr);
+        regs.es := Seg(SavePtr^);
+        regs.bx := Ofs(SavePtr^);
         Intr($10,regs);
       end;
   end;
@@ -1863,8 +1863,8 @@ end;
          regs.ax := $4F04;      { restore the state buffer                }
          regs.cx := $0F;        { rest DAC / Data areas / Hardware states }
          regs.dx := $02;        { restore state                           }
-         regs.es := DSeg;
-         regs.bx := Word(SavePtr);
+         regs.es := Seg(SavePtr^);
+         regs.bx := Ofs(SavePtr^);
          Intr($10,regs);
 
          SavePtrCopy := SavePtr;