Hi!

8-Авг-2006 05:11 [EMAIL PROTECTED] (Michael Devore) wrote to
freedos-devel@lists.sourceforge.net:

>>If you wish, I extract for you from Japhet' work fix for "sti/ret 2" bug
>>(in new15 proc)
MD> I already revectored that to the new IRET handling routine when you
MD> mentioned it earlier on list.

     Fine. Hope, this will not be lost in next release.

>>and modifying BL at XMS/3-6 functions (at disen_share).
MD> No, doesn't look right. A20 handling was turned off,

     Japhet not tun off A20 handling, he just comment out call to INT67/3F.
Because this call not documented anywhere anyway, so for me calling or not
calling INT67/3F is out of my opinions.

MD> plus not modifying BL
MD> on A20 enable/disable is against my XMS version 3.0 spec.

RBIL:

"
(Table 02753)
Call the XMS driver "Global enable A20, for using the HMA" function with:
        AH = 03h
Return: AX = status
            0001h success
            0000h failure
                BL = error code (80h,81h,82h) (see #02775)
"

Spec:

"
  Global Enable A20 (Function 03h):

ARGS: AH = 03h
RETS: AX = 0001h if the A20 line is enabled, 0000h otherwise
ERRS: BL = 80h if the function is not implemented
      BL = 81h if a VDISK device is detected
      BL = 82h if an A20 error occurs
"

So, BL should be modified only in case of error. Not a big deal, I suggest
(I doubt, than someone will rely on untouched BL in case of success), but
worth of fixing (remove one line in source).

MD> I put A20
MD> handling in there to work with EXEPACK so it's not going away without a
MD> good reason.  And BL must be set to known non-error value or else it can
MD> inadvertently fail the function.

     Non-error already indicated by AX=1 (and only by it). And I similarly
doubt, that (good) programmer will expect specific values in BL in case of
success (because specifications don't say about BL in case of AX=1).

     Well, let test with MS-HIMEM:

-a
11CA:0100 mov ax,4310
11CA:0103 int 2f
11CA:0105 mov [100],bx
11CA:0109 mov [102],es
11CA:010D mov bx,8080
11CA:0110 mov ah,5
11CA:0112 call far [100]
11CA:0116 int3
11CA:0117
-g=100
AX=0001  BX=8000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
--------------^^

Hm, it clears BL.

MD> The A20 emulation remapping always succeeds.

>>BTW, what you mean by "build subdirectory"? Do you mean, that I should
>>move batch and make files from SOURCE\EMM386 directory to somewhere else
>>(and, consequently, change batch files to work _from other_ directory)?
MD> I mean your changes get their own subdirectory, as was offered.  You can
MD> branch it off of SOURCE\EMM386 or whatever you want, but you cannot
MD> commingle with existing source, binaries, etc. other than a DOC.

     Ok. I move batch and make files into deeper subdirectory (BUILD) and
add into build.bat copying all .ASM/.C/.H files from parent directory (as
temporary solution, until you reintegrate build subsystem back into main
source directory) and removing after. Watch archive in next letter.

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to