30/05/2014 : some work done on the driver. Since 5220 was improved
patch is not usefull anymore, now exl100 can display its logo (mostly
with the same modifications than in 2010…)
01/03/2010 : communication between 7020 and 7041 begins to work, but
the tms7000 emulation core needs modifications to handle correctly IOCNT
25/02/2010 : the driver stops very early in booting process. 7041 does
not send correct bytes (do not need to swap even if schematics tends to
go this way). After correction, Tms5220 now accepts too fast speech
frames and does not issue correct flags at correct times. So 7041 is
stuck after the first set of frames. => need to patch 7041 rom to go a
bit further (see rom images).
Revive GEMDOS for lisa
was known as atari ST operating system (to be precise, TOS is GEM +
atari port of GEMDOS). This OS was primarily developped on Lisa and
Caldera did buy parts of Digital research Inc and released old sources to public.
This hack aims to run gemdos and gem on lisa hardware.
One interesting archive is oemkit.zip
It’s a kind of patch over gemdos build environment.
The interesting file is bootflop.bat:
REM THIS BATCH FILE CREATES A BOOTABLE 3.5 DISKETTE
REM IT IS ASSUMED THAT YOU HAVE ALREADY FORMATTED THE DISKETTE WITH FORMAT.PRG
REM IF YOU WISH TO ABORT, ENTER APPLE C KEYS
REM IF YOU WISH TO CONTINUE, ENTER THE ENTER KEY
PAUSE COPY C:GEMDOSFI.SYS A:GEMDOSFI.SYS
COPY C:COMMAND.PRG A:COMMAND.PRG
PUTBOOT A: SFBOOT.ABS
REM TO EJECT THE DISKETTE, SIMULTANEOUSLY ENTER APPLE key & numeric pad ENTER KEY
REM THIS OPERATION IS COMPLETED
We clearly see here that a boot floppy is made of 3 “files”
GEMDOSFI.SYS is the OS in a single file.
COMMAND.PRG is a textmode command interpreter in a GEMDOS executable format, this binary run as is on atari ST hardware
SFBOOT.ABS is the boot sector
The creation of boot disc is the following procedure:
format a GEMDOS disc
copy OS file (GEMDOSFI.SYS)
copy command interpreter command.prg
install boot sector
link OS file to bootsector (a bootloader cannot read a filesystem, so
some kind of sector table must be written in the bootsector itself or in
the next sectors)
make the bootsector bootable (ie a special TAG value for apple lisa).
The inline command PUTBOOT (inlined in command.prg) shouldl do the last 3 steps of this procedure…
Find PUTBOOT code…
We find in source new_cmd.c
else if (xncmps(8,s,"PUTBOOT"))
if (*nonStdIn) dspCL (&argv);
drv = *p - 'A';
fd = xopen(argv, 0);
So PUTBOOT is just a raw write of 512 bytes at offset 28 of the file in argument.
That is confirmed in the binary dump of the resulting disc image.
We need to find disk geometry for lisa gemdos discs
Here we are in file main.c of oemkit.zip
We find definitions for Sony drive and 2 profiles (5Mb only).
/* drive C is profile, A and B are 5 1/4 twiggys */
Now the result (in “intergalactic” exclusivity 😉 )
You may now start gemdos in emulators (both IDLE and lisaem). Tested on real hardware (2018)
Now the tool itself
This tool uses a non free FAT12 implementation that is part of miniC by
Dave Dunfield (www.dunfield.com). Since this hack is open source and
non commercial, I suppose it does not hurt the conditions of use…
The most advanced exelvision emulator for now is Daniel’s DCexel
Apple Lisa emulator
I dreamed about this machine as I was a child in the early eigthies. A
french periodic named “micro systeme” made some very interesting posts
about lisa and smalltalk. It became a computer I wanted to had to my
little collection. I saw some on ebay, much too expansive for me…I
tried emulation but mess driver was buggy, and Ray’s emulator (lisaem)
was not published yet, and seemed a bit abandonned.
So I started to code…
IDLE is incomplete draft of a lisa emulator…
The keystone was the 68k emulation core. I first used the Castaway
(Atari ST emulator for dreamcast (derived from FAST)), I replaced this
core with the more common Musashi core (also used in MAME and MESS).
Some weeks later, Macworks booted successfully.
Some weeks later… Ray finaly made public lisaem.
Month later, IDLE booted lisa OS, then the 2 UNIXes made for lisa (XENIX and UNIPLUS).
IDLE needs some work to be complete, the 68k core is not yet perfect
(’cause bus error are not perfectly emulated in special cases).
I also need to write back corrections made in the Musashi core in MAME and MESS.
The normal profile uses an unusual sector size of 532 byte (instead of
512). The Xprofile can define 3 different mapping to achieve the 532
byte size. You may use 2×512 byte or a more compact strategy
(16*512+20*16bytes per 16 sectors), this is referred as the STAR type in
The Xprofile also write a very little FAT12 partition on the beginning
of the CF to avoid accidental formatting when CF are read on a modern
How to use the tool…
Under windows, you may use this great tool (diskimage) to make the raw image:
choose physical drive :
_ write to file : for a CF to emulator transfer.
_ Import from file : when restoring an image (fe with a modified partition).
For now the tool cannot write a whole Xprofile image, so your CF needs
to be already formatted by the Xprofile device. Keep this file as a
refence (keep a copy).
What the tool can do:
_ take a raw profile image from the IDLE emulator and insert it in a CF image.
_ extract a raw profile image from a CF image and run it in the IDLE emulator.