Skip to content

Commit

Permalink
Merge pull request #37 from skiselev/book8088
Browse files Browse the repository at this point in the history
Book8088
  • Loading branch information
skiselev committed Jun 27, 2023
2 parents 3e329a6 + bb6194c commit ebcc587
Show file tree
Hide file tree
Showing 30 changed files with 43,473 additions and 81 deletions.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +0,0 @@
bios*.bin
bios.lst
115 changes: 58 additions & 57 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,76 +16,77 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

# Target machine type is defined below
# Xi 8088 Board
#MACHINE=MACHINE_XI8088
# Micro 8088 Board
MACHINE=MACHINE_FE2010A
# IBM PC/XT or highly compatible board (FIXME: not implemented yet)
#MACHINE=MACHINE_XT

# Flash ROM IC type (as supported by minipro programmer)
FLASH_ROM=SST39SF010A
#FLASH_ROM=SST29EE010
#FLASH_ROM=AT29C010A
#FLASH_ROM=W29EE011
#FLASH_ROM="AM29F010 @DIP32"

XTIDE=ide_xt_r624.bin
XTIDE_300=xtide_r625/ide_xt-cf-lite_300h.bin
XTIDE_320=xtide_r625/ide_xt-cf-lite_320h.bin

SOURCES=bios.asm macro.inc at_kbc.inc config.inc errno.inc flash.inc floppy1.inc floppy2.inc keyboard.inc misc.inc printer1.inc printer2.inc ps2aux.inc scancode.inc serial1.inc serial2.inc setup.inc sound.inc time1.inc time2.inc video.inc cpu.inc messages.inc inttrace.inc rtc.inc fnt00-7F.inc fnt80-FF.inc

ifeq "$(MACHINE)" "MACHINE_XI8088"
IMAGES=bios-sergey-xt.bin bios-sergey-xt-xtide.bin bios-xi8088.bin bios-xi8088-xtide.bin
FLASH_IMAGE=bios-xi8088.bin
else
ifeq "$(MACHINE)" "MACHINE_FE2010A"
IMAGES=bios-micro8088.bin bios-micro8088-xtide.bin
FLASH_IMAGE=bios-micro8088.bin
else
IMAGES=bios.bin
endif
endif
IMAGES=bios-micro8088-noide.rom bios-micro8088-xtide.rom bios-sergey-xt-noide.rom bios-sergey-xt-xtide.rom bios-xi8088-noide.rom bios-xi8088-xtide.rom bios-book8088-xtide.rom bios-xt.bin
FLASH_IMAGE=bios-micro8088-xtide.rom

all: Makefile $(SOURCES) $(IMAGES)

bios.bin: $(SOURCES)
nasm -D$(MACHINE) -O9 -f bin -o bios.bin -l bios.lst bios.asm

bios-micro8088.bin: bios.bin
dd if=/dev/zero ibs=1k count=40 | LANG=C tr "\000" "\377" > bios-micro8088.bin
cat bios.bin >> bios-micro8088.bin
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" >> bios-micro8088.bin

bios-micro8088-xtide.bin: bios.bin $(XTIDE)
cat $(XTIDE) > bios-micro8088-xtide.bin
dd if=/dev/zero ibs=1k count=32 | LANG=C tr "\000" "\377" >> bios-micro8088-xtide.bin
cat bios.bin >> bios-micro8088-xtide.bin
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" >> bios-micro8088-xtide.bin

bios-sergey-xt.bin: bios.bin
dd if=/dev/zero ibs=1k count=96 | LANG=C tr "\000" "\377" > bios-sergey-xt.bin
cat bios.bin >> bios-sergey-xt.bin

bios-sergey-xt-xtide.bin: bios.bin $(XTIDE)
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" > bios-sergey-xt-xtide.bin
cat $(XTIDE) >> bios-sergey-xt-xtide.bin
dd if=/dev/zero ibs=1k count=24 | LANG=C tr "\000" "\377" >> bios-sergey-xt-xtide.bin
cat bios.bin >> bios-sergey-xt-xtide.bin

bios-xi8088.bin: bios.bin
dd if=/dev/zero ibs=1k count=32 | LANG=C tr "\000" "\377" > bios-xi8088.bin
cat bios.bin >> bios-xi8088.bin
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" >> bios-xi8088.bin

bios-xi8088-xtide.bin: bios.bin $(XTIDE)
cat $(XTIDE) > bios-xi8088-xtide.bin
dd if=/dev/zero ibs=1k count=24 | LANG=C tr "\000" "\377" >> bios-xi8088-xtide.bin
cat bios.bin >> bios-xi8088-xtide.bin
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" >> bios-xi8088-xtide.bin
bios-micro8088.bin: $(SOURCES)
nasm -DMACHINE_FE2010A -O9 -f bin -o bios-micro8088.bin -l bios-micro8088.lst bios.asm

bios-xi8088.bin: $(SOURCES)
nasm -DMACHINE_XI8088 -O9 -f bin -o bios-xi8088.bin -l bios-xi8088.lst bios.asm

bios-book8088.bin: $(SOURCES)
nasm -DMACHINE_BOOK8088 -O9 -f bin -o bios-book8088.bin -l bios-book8088.lst bios.asm

bios-xt.bin: $(SOURCES)
nasm -DMACHINE_XT -O9 -f bin -o bios-xt.bin -l bios-xt.lst bios.asm

bios-micro8088-noide.rom: bios-micro8088.bin
dd if=/dev/zero ibs=1k count=40 | LANG=C tr "\000" "\377" > bios-micro8088-noide.rom
cat bios-micro8088.bin >> bios-micro8088-noide.rom
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" >> bios-micro8088-noide.rom

bios-micro8088-xtide.rom: bios-micro8088.bin $(XTIDE_320)
cat $(XTIDE_320) > bios-micro8088-xtide.rom
dd if=/dev/zero ibs=1k count=32 | LANG=C tr "\000" "\377" >> bios-micro8088-xtide.rom
cat bios-micro8088.bin >> bios-micro8088-xtide.rom
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" >> bios-micro8088-xtide.rom

bios-sergey-xt-noide.rom: bios-xi8088.bin
dd if=/dev/zero ibs=1k count=96 | LANG=C tr "\000" "\377" > bios-sergey-xt-noide.rom
cat bios-xi8088.bin >> bios-sergey-xt-noide.rom

bios-sergey-xt-xtide.rom: bios-xi8088.bin $(XTIDE_320)
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" > bios-sergey-xt-xtide.rom
cat $(XTIDE_320) >> bios-sergey-xt-xtide.rom
dd if=/dev/zero ibs=1k count=24 | LANG=C tr "\000" "\377" >> bios-sergey-xt-xtide.rom
cat bios-xi8088.bin >> bios-sergey-xt-xtide.rom

bios-xi8088-noide.rom: bios-xi8088.bin
dd if=/dev/zero ibs=1k count=32 | LANG=C tr "\000" "\377" > bios-xi8088-noide.rom
cat bios-xi8088.bin >> bios-xi8088-noide.rom
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" >> bios-xi8088-noide.rom

bios-xi8088-xtide.rom: bios-xi8088.bin $(XTIDE_320)
cat $(XTIDE_320) > bios-xi8088-xtide.rom
dd if=/dev/zero ibs=1k count=24 | LANG=C tr "\000" "\377" >> bios-xi8088-xtide.rom
cat bios-xi8088.bin >> bios-xi8088-xtide.rom
dd if=/dev/zero ibs=1k count=64 | LANG=C tr "\000" "\377" >> bios-xi8088-xtide.rom

bios-book8088-xtide.rom: bios-book8088.bin $(XTIDE_300)
cat $(XTIDE_300) > bios-book8088-xtide.rom
dd if=/dev/zero ibs=1k count=40 | LANG=C tr "\000" "\377" >> bios-book8088-xtide.rom
cat bios-book8088.bin >> bios-book8088-xtide.rom

clean:
rm -f bios.lst bios.bin bios-micro8088.bin bios-micro8088-xtide.bin bios-sergey-xt.bin bios-sergey-xt-xtide.bin bios-xi8088.bin bios-xi8088-xtide.bin
rm -f bios-micro8088.lst bios-xi8088.lst bios-book8088.lst bios-xt.lst bios-micro8088.bin bios-xi8088.bin bios-book8088.bin bios-xt.bin $(IMAGES)

flash-micro8088:
minipro -p $(FLASH_ROM) -w bios-micro8088-xtide.rom

flash:
minipro -p $(FLASH_ROM) -w $(FLASH_IMAGE)
flash-xi8088:
minipro -p $(FLASH_ROM) -w bios-xi8088-xtide.rom
26 changes: 17 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,18 @@ and [Xi 8088] systems

## BIOS Images

|File name | Description |
|-------------------------|----------------------------------------------------|
|bios.bin | BIOS image for use with xiflash utility |
|bios-micro8088.bin | BIOS image for Micro 8088 Version 1.1 |
|bios-micro8088-xtide.bin | BIOS image for Micro 8088 Version 1.1 with XT-IDE |
|bios-xi8088.bin | BIOS image for Xi 8088 Version 2.0 |
|bios-xi8088-xtide.bin | BIOS image for Xi 8088 Version 2.0 with XT-IDE |
|bios-sergey-xt.bin | BIOS image for Sergey's XT Version 1.0 |
|bios-sergey-xt-xtide.bin | BIOS image for Sergey's XT Version 1.0 with XT-IDE |
|File name | Description |
|-------------------------|-------------------------------------------------------------------|
|bios-micro8088.bin | BIOS image for Micro 8088 Version 1.1 to use with xiflash utility |
|bios-micro8088-noide.rom | BIOS image for Micro 8088 Version 1.1 |
|bios-micro8088-xtide.rom | BIOS image for Micro 8088 Version 1.1 with XT-IDE |
|bios-xi8088.bin | BIOS image for Xi 8088 Version 2.0 to use with xiflash utility |
|bios-xi8088-noide.rom | BIOS image for Xi 8088 Version 2.0 |
|bios-xi8088-xtide.rom | BIOS image for Xi 8088 Version 2.0 with XT-IDE |
|bios-sergey-xt-noide.rom | BIOS image for Sergey's XT Version 1.0 |
|bios-sergey-xt-xtide.rom | BIOS image for Sergey's XT Version 1.0 with XT-IDE |
|bios-book8088-xtide.rom | BIOS image for Book8088 with XT-IDE |
|bios-xt.bin | BIOS image for IBM XT (not tested, 16 KiB ROM) |

## Build Instructions

Expand All @@ -29,6 +32,11 @@ and [Xi 8088] systems

### Changes

* Version 1.0.0
* Add support for Book8088
* Implement several fixes for IBM XT
* Makefile: Build ROM images for all supported machines and configurations

* Version 0.9.9
* Port floppy BIOS from [Multi-Floppy BIOS extension](https://github.com/skiselev/floppy_bios)
* Add chipset detection for Faraday FE2010A and Proton PT8010AF chipsets. Disable memory refresh on these chipsets
Expand Down
Binary file added bios-book8088-xtide.rom
Binary file not shown.
Binary file added bios-book8088.bin
Binary file not shown.

0 comments on commit ebcc587

Please sign in to comment.