• MS-DOS runs on Apple IIe

    From D Finnigan@dog_cow@macgui.com to comp.sys.apple2 on Mon Mar 30 19:12:00 2026
    From Newsgroup: comp.sys.apple2

    You need to add an 8088 coprocessor card to your Apple, but the result is
    that MS-DOS and "a lot of off-the-shelf DOS software just works."

    Seth Kushniryk writes:
    Two weeks ago I posted about getting MS-DOS 2.0 to boot on the AD8088 Plus coprocessor card. Since then IrCOve been working on getting it into a publishable state, and today itrCOs ready.

    The source is at git.sr.ht/~sethkush/reboot-camp-83. Everything you need to build and run MS-DOS 2.0 on an Apple II with an AD8088 card is in the repository rCo the full MS-DOS 2.0 kernel source (MIT licensed by Microsoft), the OEM BIOS, the 6502 bridge, build scripts, and a bunch of ported DOS software.

    The first post covered the initial boot. Since then the bridge rCo the 6502 program that mediates between the 8088 and the Apple II rCo was relocated from $0C00 to $0800, freeing up both HGR pages ($2000-$5FFF) for programs that
    want to draw to the Apple IIrCOs hi-res screen. This was harder than it
    sounds. The relocation exposed a cascade of buffer overlap bugs between the staging area, ProDOS I/O buffers, and the ROM copy timing. I also hit an undocumented ProDOS constraint where MLI READ limits the request count to
    the distance between your data buffer and the nearest internal file buffer above it in memory. That one took a while.

    The bridge now handles INT 10h video BIOS, INT 16h keyboard BIOS, and an
    ANSI escape sequence parser in the CON driver. Open Apple acts as Meta/ESC,
    and Closed Apple maps to function and navigation keys (F1-F12, Home, End,
    PgUp, PgDn, Insert, Delete). The cursor blinks in sync with the Apple IIrCOs VBL.


    You need an Apple II with an 80-column card, an AD8088 or AD8088 Plus coprocessor, and a ProDOS-compatible mass storage device (CF card, SD card, SCSI drive). Copy the output image to your storage, boot ProDOS, and select MS-DOS from the startup menu.

    Read the whole article, with screenshots: https://sethkush.com/post/2026/03/22/reboot-camp-83-ms-dos-on-the-apple-iie-is-ready/

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From D Finnigan@dog_cow@macgui.com to comp.sys.apple2 on Mon Mar 30 19:14:16 2026
    From Newsgroup: comp.sys.apple2

    Here's his earlier article with some info on the 8088 card: https://sethkush.com/post/2026/03/12/ms-dos-2.0-on-the-apple-iie/

    IrCOve been porting MS-DOS 2.0 to the Apple IIe using the AD8088 Plus coprocessor card. ItrCOs an 8088 CPU on an expansion card with its own RAM and ROM. The card shipped with CP/M-86, available from nanja.info. The original
    ALF advertising materials suggest there may have been an MS-DOS port at some point (they write about it in future tense, so I donrCOt know if it ever actually happened), but the original OS disks arenrCOt shared to any of the usual places. I decided to start my own port because I like directories and object-oriented Turbo Pascal, neither of which CP/M-86 supports. Today I got
    it to boot.

    [Photo of The AD8088 Plus card]

    The card has 64KB on-board RAM at 00000-0FFFF, another 64KB at 20000-2FFFF, 512KB at 40000-BFFFF, and a 256KB ROM at C0000-FFFFF (only 4KB of which is
    used by the firmware). The Apple IIrCOs main memory is visible to the 8088 at 10000-1FFFF, and the two processors talk through a shared memory protocol:
    the 8088 writes a command byte, signals the Apple II through an I/O port,
    and waits.


    There are some constraints. This will never run CGA/EGA/VGA graphical
    programs, and probably wonrCOt ever run text programs that write directly to VRAM. It does have full access to the 6502 address space though, so it could
    in theory run MS-DOS programs with Apple II graphics. IrCOm pretty sure none exist yet.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Steve Nickolas@usotsuki@buric.co to comp.sys.apple2 on Tue Mar 31 17:08:06 2026
    From Newsgroup: comp.sys.apple2

    On Mon, 30 Mar 2026, D Finnigan wrote:

    You need to add an 8088 coprocessor card to your Apple, but the result is that MS-DOS and "a lot of off-the-shelf DOS software just works."

    <snip>

    You need an Apple II with an 80-column card, an AD8088 or AD8088 Plus coprocessor, and a ProDOS-compatible mass storage device (CF card, SD card, SCSI drive). Copy the output image to your storage, boot ProDOS, and select MS-DOS from the startup menu.

    I'm currently trying to reverse engineer the 8088 version of MBASIC
    because I'd like to be able to hack on it...maybe that would be useful.
    (The Z80 version's source is out there, as is GW-BASIC which is based on
    it.)

    That said - I haven't finished yet and have hit some rough spots.

    -uso.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From D Finnigan@dog_cow@macgui.com to comp.sys.apple2 on Wed Apr 1 12:37:46 2026
    From Newsgroup: comp.sys.apple2

    Steve Nickolas wrote:

    I'm currently trying to reverse engineer the 8088 version of MBASIC
    because I'd like to be able to hack on it...maybe that would be useful.
    (The Z80 version's source is out there, as is GW-BASIC which is based on it.)

    That said - I haven't finished yet and have hit some rough spots.

    What rough spots have you hit?

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Steve Nickolas@usotsuki@buric.co to comp.sys.apple2 on Thu Apr 2 20:03:25 2026
    From Newsgroup: comp.sys.apple2



    On Wed, 1 Apr 2026, D Finnigan wrote:

    Steve Nickolas wrote:

    I'm currently trying to reverse engineer the 8088 version of MBASIC
    because I'd like to be able to hack on it...maybe that would be useful.
    (The Z80 version's source is out there, as is GW-BASIC which is based on
    it.)

    That said - I haven't finished yet and have hit some rough spots.

    What rough spots have you hit?

    The disassembler I use (an old version of IDA) is interpreting everything
    as one segment but it's clearly using two.

    There are some places where the code, or the order of the code, of the
    8088 version does not quite match the Z80 version and I lose
    synchronization.

    I tried another approach - to attempt to hand-convert through search-and-replace the Z80 code - but that hasn't worked either.

    -uso.
    --- Synchronet 3.21f-Linux NewsLink 1.2