8088 & ShoOS
Well, my first project I’m going to document online is involving a little 8088 (which actually is a 8086 with an 8 bit bus) machine, a hercules monitor, a floppy disk and some nice 8086 assembly code.
Booting a kernel! (written on 2003-10-10 by Peter Gnodde)
It’s been a while since I’ve worked on ShoOS, but a couple of days ago I once again got the urge to do some assembly coding. So I debugged the ShoOS code, trying to find out why the bootloader wouldn’t read from floppy.
It turned out to be illegal instructions, yes, you may laugh, I did that myself :). I forgot the fact that the 8086 has a really retarded instruction set
; instead of shl bx, 4 ; we must do mov cl, 4 shl bx, cl
and not being allowed to push immediates:
; instead of push 0x8000 pop ds ; we must do mov ax, 0x8000 mov ds, ax
Now I can go on to code the floppydrive driver (probably something with logical sectors) and the filesystem driver, woohoo!
By the way, I’ve ripped out the processor check, since it’s all 8086 code anyhow :).
About
Okay, I’ll tell a bit more about the setup: It is a model named ‘Carry 1′, there is not much info to be found about this machine, I got one good hit at google, and the picture on that site seems like my machine, but mine only has a 8088 processor, 640K RAM and no harddrive. So that’s probably not the same model.
As you can see on the pictures, it has 2 floppydrives, that’s the only way to get the machine booted. These drives are actually 720K drives :). It has a monochrome hercules video controler (luckily I had a hercules monitor lying around, since my old hack-on-MSDOS days, debugging graphical programs is so much easier using a hercules screen as debug console :). Furthermore, it has 1 parallel port, a serial port and even a game port.
This is all build in a nice casing, which is just a bit wider than two floppydrives (about 8 inch wide) and just a bit longer than standard PC floppydrives, so it’s really compact.
Releases
License information (BSD License)
shoos-0.0.3.tar.gz (size: 3K; date: 2003-10-10)
shoos-0.0.2.tar.gz (size: 2K; date: 2003-03-07)
shoos-0.0.1.tar.gz (size: 1K; date: 2003-03-05)
Fotos
Here are some pictures of the machine and the code I have currently running on the machine: