Update of /server/cvs/freexp In directory m6s15:/tmp/cvs-serv32161 Modified Files: overxms.asm overxms.obj overxms.pas xpx.pas Log Message: MW: - Uebernahme von Fehlerkorrekturen aus Overxms 1.2
--- /server/cvs/freexp/overxms.asm 2008/12/26 18:37:14 1.8 +++ /server/cvs/freexp/overxms.asm 2009/05/17 07:30:44 1.9 @@ -1,9 +1,21 @@ ; --------------------------------------------------------------- ; Dieser Quelltext ist urheberrechtlich geschuetzt. ; (c) 2003-2009 FreeXP, http://www.freexp.de ; --------------------------------------------------------------- -; $Id: overxms.asm,v 1.8 2008/12/26 18:37:14 mw Exp $ +; $Id: overxms.asm,v 1.9 2009/05/17 07:30:44 mw Exp $ TITLE Turbo Pascal XMS support for loading overlays - By Wilbert van Leijen +; OVERXMS 1.1 +; Bug fix by Arnold Bailey [72020,136] BIX abailey 1/03/93 +; +; XMS uses BX to return error codes. Most version will preserve the value +; of BX if there is no error. +; +; DRDOS 6 EMM386.SYS and HIDOS.SYS (equivalent to HIMEM.SYS) change +; BX to zero if there is no error. The procedure UnitToXMS uses BX as an +; offset counter. With DRDOS 6 it gets reset causing major crash. +; +; Added PUSH BX and POP BX to preserve value. ; modifyed by FreeXP in 2004 + PAGE 65, 132 LOCALS @@ @@ -109,7 +121,15 @@ @@1: ADD BX, [PrefixSeg] ADD BX, 10h MOV ES, BX - ADD AX, ES:[OvrHeader.CodeSize] + +;** Ver 1.2 BugFix + MOV CX, ES:[OvrHeader.CodeSize] + TEST CX,1 ; Test for odd number of bytes + JZ @@2 + INC CX ; Make sure it's even number of bytes +@@2: ADD AX, CX +;** Ver 1.2 Bug Fix + ADC DX, 0 MOV BX, ES:[OvrHeader.CodeListNext] OR BX, BX @@ -128,9 +148,9 @@ MOV [ovrmemsize], DX CALL [XmsDriver] OR AX, AX - JZ @@2 + JZ @@3 MOV [OvrXmsHandle], DX -@@2: RETN +@@3: RETN AllocateXms ENDP ; Function XmsReadFunc(OvrSeg : Word) : Integer; Far; @@ -200,8 +220,12 @@ MOV Word Ptr [XmsMove.DestOffset+2], BX MOV AH, 11 LEA SI, XmsMove + +; BUG Fix. Need to preserve BX PUSH BX CALL [XmsDriver] + +; BUG Fix. Restore BX POP BX ; Bump code size @@ -354,6 +378,8 @@ END ;~~~~~~~~~~~~~~~~~~~ +; 17.05.09 MW Uebernahme von Korrekturen aus OVERXMS 1.2 +; ; 04.10.04 MW Groesse des Overlays wird jetzt hier berechnet. ; ; 16.03.03 MW Neue Variable ovrmemsize zeigt die Groesse des Overlay Binary files /server/cvs/freexp/overxms.obj 2004/10/04 11:25:22 1.3 and /server/cvs/freexp/overxms.obj 2009/05/17 07:30:44 1.4 differ --- /server/cvs/freexp/overxms.pas 2008/12/26 18:37:14 1.7 +++ /server/cvs/freexp/overxms.pas 2009/05/17 07:30:44 1.8 @@ -1,10 +1,13 @@ { --------------------------------------------------------------- } { Dieser Quelltext ist urheberrechtlich geschuetzt. } { (c) 2003-2009 FreeXP, http://www.freexp.de } -{ OVERXMS - Loads overlays in XMS. Written by Wilbert van Leijen } -{ modifyed by FreeXP in 2004 } +{ OVERXMS 1.2 - Loads overlays in XMS. } +{ Written by Wilbert van Leijen } +{ modifyed by FreeXP in 2004 } { --------------------------------------------------------------- } -{ $Id: overxms.pas,v 1.7 2008/12/26 18:37:14 mw Exp $ } +{ $Id: overxms.pas,v 1.8 2009/05/17 07:30:44 mw Exp $ } + +{ BUG Fix in OVERXMS.ASM by Arnold Bailey [72020,136] BIX abailey 1/03/93 } Unit OverXMS; @@ -32,7 +35,10 @@ end. { OverXMS } { $Log: overxms.pas,v $ - Revision 1.7 2008/12/26 18:37:14 mw + Revision 1.8 2009/05/17 07:30:44 mw + MW: - Uebernahme von Fehlerkorrekturen aus Overxms 1.2 + + Revision 1.7 2008-12-26 18:37:14 mw - Aktualisierung auf Version 3.45 Revision 1.6 2008-01-01 20:59:24 mw --- /server/cvs/freexp/xpx.pas 2009/05/16 11:28:30 1.44 +++ /server/cvs/freexp/xpx.pas 2009/05/17 07:30:44 1.45 @@ -8,7 +8,7 @@ { Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der } { Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html. } { --------------------------------------------------------------- } -{ $Id: xpx.pas,v 1.44 2009/05/16 11:28:30 mw Exp $ } +{ $Id: xpx.pas,v 1.45 2009/05/17 07:30:44 mw Exp $ } { CrossPoint - First Unit } @@ -352,7 +352,7 @@ end else if ((XmsTest) and (not noovrbuf) and (XmsAvail>(Size_OVR+xpswapspace+700))) then begin - { OvrInitXMS; } + OvrInitXMS; xmsovrbuf:=true; emsovrbuf:=false; ovrstr:=' (XMS)'; @@ -387,7 +387,10 @@ { $Log: xpx.pas,v $ - Revision 1.44 2009/05/16 11:28:30 mw + Revision 1.45 2009/05/17 07:30:44 mw + MW: - Uebernahme von Fehlerkorrekturen aus Overxms 1.2 + + Revision 1.44 2009-05-16 11:28:30 mw MW: - Overlay im XMS funktioniert derzeit nicht und führt zum Absturz. Daher wird es jetzt erst einmal deaktiviert.
------------------------------------------------------------------------ FreeXP CVS-Mailingliste CVS-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/cvs-list