#412 int 15h AH=89h not implemented !

closed
nobody
ROM BIOS (28)
5
2012-10-15
2009-02-23
Czerno Bill
No

Surprisingly int 15 AH=89h is unimplemented in both 'legacy' and 'latest' Bochs main BIOSes.

Surely implementing this and other basic functions of the good old IBM AT BIOS should be a priority over newer fancy things like ACPI and deity knows what...

Are the coders possibly too young and not familiar with ISA-architecture ? I don't run Bochs often, and done nothing like systematic testing; yet oftentimes while firing an old program of mine or some 3rd party one, I will stumble upon problems casued by poor conformance. IMO it should be a priority to review the BIOS basics before adding those fancy extensions. This holds true of the video BIOS also - see other bug report.

Regards

--
Czerno

Discussion

1 2 > >> (Page 1 of 2)
  • Volker Ruppert
    Volker Ruppert
    2009-02-24

    First of all I changed the type to "feature request", since this is not a bug. I know that there are still some unimplemented BIOS functions, but nobody has requested this feature before you did it. I hope there will a BIOS expert with protected mode knowledge who can help us implementing it.

     
  • Czerno Bill
    Czerno Bill
    2009-02-24

    I changed the type to "feature request", since this is not a bug.
    nobody has requested this feature before you did it.

    Thank you, VRuppert. Sure, you're right an unimplemented feature cannot
    be buggy <G>. I do think however the reasonable expectation from a user PoV
    is that the virtual 'platform' as provided by Bochs should emulate an IBM
    PC-AT (AT3). Which is to say features such as the one being discussed are
    requested /implicitly/, IMVHO ;=)

    Admittedly int15/89 never was /necessary/ nor even convenient for entering (16-bit) protected mode, but the fact is, it's part of the ISA "legacy" and programs exist that rely on such BIOS functions.

    I hope there will a
    BIOS expert with protected mode knowledge who can help us implementing it.

    I too hope so; the particular feature is well documented (IBM's docs or,
    as always, Ralf Brown's interrupt list; there is even, or was, self documenting
    BIOS source code floating on the web.)

    Regards

    --
    Czerno

     
  • Please supply a test program to verify INT 15h AH=89h functionality.

    • Sebastian
     
  • Czerno Bill
    Czerno Bill
    2009-03-23

    See attached. Run the exe from good old DOS (real mode, NO EMM386 or suchlike); it will enter 16-bit protected mode, do (basic) interrupt processing, display a clock (not too accurate). Press the Escape key to return to DOS (assumes an extra 'DMS' register exists at port 0084h. BOCHS has it OK, some modern (in)compatibles do not! in which case, it is SAFE to RESET or switch machine off).

    Code snipped from a very old project (ca 1986!). HTH
    File Added: INT1589.ZIP

     
  • Czerno Bill
    Czerno Bill
    2009-03-23

    int15/89 demo, EXE file + source ASM

     
    Attachments
  • Czerno Bill
    Czerno Bill
    2009-03-23

    typo correction (aka slipped finger) : read 'DMA' page register, not 'DMS' - of course.

     
  • Czerno Bill
    Czerno Bill
    2009-03-23

    typo correction (aka slipped finger) : read 'DMA' page register, not 'DMS' - of course.

     
  • I ported changeset 5196 from vbox (http://www.virtualbox.org/changeset/5196) which does implement INT 15h AH=89h.
    Your program does enter protected mode, but bochs does spit errors while returning back to real mode.

    00361007864e[CPU0 ] read_virtual_word_32(): segment limit violation
    00361007864e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x0d)
    00361007864e[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x08)
    ...
    00361007864e[CPU0 ] exception(): 3rd (13) exception with no resolution, shutdown status is 05h, resetting

    On VMware Server 1.0.7 i get:

    Mar 27 22:00:38: vcpu-0| Triple fault.
    Mar 27 22:00:38: vcpu-0| MONITOR PANIC: vcpu-0:ASSERT vmcore/vmm/cpu/segment.h:444 bugNr=19580

    • Sebastian
     
  • Czerno Bill
    Czerno Bill
    2009-03-28

    I ported changeset 5196 from vbox
    Your program does enter protected mode,

    = Fine !

    but bochs does spit errors while returning back to real mode.

    The 3-ple fault is intentional (remember, that was written to work on a i80286 !), shutdown type 05 is indeed awaited and shoud get us back to business in real mode through the branch vector at 40:67h. If it doesn't then there is a distinct artifact in Bochs.

    Regards

     
  • I did trace the shutdown code 5 handling and it does work. Your program does continue in real mode, displays the message and exits. FreeDOS doesn't seem to continue correctly tho.
    I will send the INT 15h AH=89h patch to the mailing list.

    • Sebastian
     
1 2 > >> (Page 1 of 2)