Skip to content

Instantly share code, notes, and snippets.

@desaster
Created July 24, 2026 14:37
Show Gist options
  • Select an option

  • Save desaster/8f532dc89fde04e882c698b81f73be07 to your computer and use it in GitHub Desktop.

Select an option

Save desaster/8f532dc89fde04e882c698b81f73be07 to your computer and use it in GitHub Desktop.
Create combined GLaBIOS + GLaDISK + XT-IDE + IBM BASIC rom image
#!/bin/sh
#
# Build the combined GLaBIOS + GLaDISK + XT-IDE + IBM BASIC
# Intended for use with the PCXT core on MiSTer or Analogue Pocket
#
set -e
OUT="glabios_combined.rom"
curl -fsSL -o glabios.rom https://github.com/640-KB/GLaBIOS/releases/download/v0.4.2/GLABIOS_0.4.2_8X.ROM
curl -fsSL -o gladisk.rom https://github.com/640-KB/GLaDISK/releases/download/v0.4.8-pre/GLADISK_0.4.8_ADV_5160_FD42.ROM
# xt-ide preconfigured for 300h
curl -fsSL -o xtide.rom https://raw.githubusercontent.com/spark2k06/PCXT_MiSTer/main/SW/ROMs/ide_xtl.rom
# IBM 5160 ROM: U19 (F0000-F7FFF) then U18 (F8000-FFFFF). Cassette BASIC lives
# at F6000-FDFFF, i.e. bytes 0x6000..0xDFFF (32 KiB) of the two joined.
curl -fsSL -o ibm5160.zip http://minuszerodegrees.net/bios/BIOS_5160_08NOV82.zip
unzip -oq ibm5160.zip
cat BIOS_5160_08NOV82_U19_5000027_27256.BIN BIOS_5160_08NOV82_U18_1501512.BIN > ibm5160.bin
dd if=ibm5160.bin of=basic.rom bs=4096 skip=6 count=8 2>/dev/null
# Assemble: start from an erased (0xFF) 64 KiB ROM, then drop each piece at its
# offset in segment F000:
# F0000 XT-IDE F3000 GLaDISK F6000 BASIC FE000 GLaBIOS
tr '\000' '\377' < /dev/zero | head -c 65536 > "$OUT"
dd if=xtide.rom of="$OUT" bs=1 seek=$((0x0000)) conv=notrunc 2>/dev/null
dd if=gladisk.rom of="$OUT" bs=1 seek=$((0x3000)) conv=notrunc 2>/dev/null
dd if=basic.rom of="$OUT" bs=1 seek=$((0x6000)) conv=notrunc 2>/dev/null
dd if=glabios.rom of="$OUT" bs=1 seek=$((0xE000)) conv=notrunc 2>/dev/null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment