Recovered listing

ASSEMBLY LAB

Back to sortie

The attached disk is a 720 KB MSX2 FAT12 image. Boot is Z80. The Master System is the same CPU at the same clock, so this port is a native rewrite — not a binary translator, and not the original ROM.

Image
Herzog (1988)(Tecno Soft).dsk
Size
737,280 bytes
Media
FAT12 80×2×9×512 (MSX2 720KB)
OEM
HERZOG
Stub
EXTRA 80 version 1.1
Product
HPR-0006
CPU
Zilog Z80 @ 3.58 MHz
Author
YU_ICHI.TOYAMA
Working title
METAL KNIGHTS for MSX2

MSX2 to SMS

MSX2Master SystemNotes
Z80 3.58 MHzZ80 3.58 MHzSame silicon family. Port is a native rewrite, not a binary patch.
V9938 (MSX2 VDP)315-5124 VDP (TMS9918-derived)256×192, 16 on-screen colors from a 6-bit RGB set.
AY-3-8910 + YM2413 OPLLSN76489 + YM2413 (JP Mark III FM Unit)Same Yamaha OPLL as MSX-MUSIC. MML at $9243 plays on the Japanese FM unit; export SMS is 3 square + noise.
64–128 KB RAM + disk8 KB RAM + ROM mapperState packed into a few hundred bytes plus a tilemap.
MSX-DOS BDOS $F37DNo DOS — cartridge vectorBoot loader discarded; game starts in ROM.

Boot loader @ $C000

EXTRA 80 drops the first sector at $C000, sets SP to $DAFF, then talks to MSX-DOS BDOS at $F37D and probes page-1 RAM with BIOS WRSLT/RDSLT.

C01F  31 FF DA   LD SP,$DAFF       ; Stack below boot page
C022  0E 2E      LD C,$2E          ; BDOS: disk info
C024  1E 00      LD E,$00          ; 
C026  CD 7D F3   CALL $F37D        ; MSX-DOS BDOS entry
C029  0E 1A      LD C,$1A          ; BDOS: set DMA address
C02B  11 00 C0   LD DE,$C000       ; DMA = boot page
C02E  CD 7D F3   CALL $F37D        ; 
C031  0E 2F      LD C,$2F          ; BDOS: read logical sector
C033  21 00 01   LD HL,$0100       ; Record / count
C036  11 00 00   LD DE,$0000       ; LBA 0
C039  CD 7D F3   CALL $F37D        ; Pull next boot block
C03C  CD 2B C1   CALL $C12B        ; Hardware probe
C03F  CD C9 C0   CALL $C0C9        ; Init
C042  CD BB C0   CALL $C0BB        ; Slot scan
C058  AF         XOR A             ; 
C059  C3 D0 C1   JP $C1D0          ; Enter loader
C0A0  21 00 40   LD HL,$4000       ; Page-1 RAM test
C0A3  1E 55      LD E,$55          ; Write pattern
C0A5  CD 14 00   CALL $0014        ; BIOS WRSLT
C0AA  CD 0C 00   CALL $000C        ; BIOS RDSLT
C0AD  FE 55      CP $55            ; Did the write stick?
C260  ED B0      LDIR              ; Copy packed game into $C000

Unit cost table @ $2500

2500  01 00 0F 00 0A 00 05 00 14 00 32 00 64 00 02 00
2510  1E 00 14 00 0A 00 28 00 64 00 C8 00 03 00 2D 00
2520  1E 00 0F 00 3C 00 96 00 2C 01 01 00 05 00 0A 00
2530  06 00 08 00 32 00 64 00 01 00 05 00 0A 00 06 00
2540  08 00 32 00 64 00  …  100/200/300 cost ladder (LE words)

Strings

YM2413 MML @ $9243

Japanese Master System / Mark III FM Sound Unit is Yamaha YM2413 OPLL — the same chip as MSX-MUSIC. The disk already speaks that dialect. Export SMS keeps the SN76489 path.

V15S150,255,15,200,18,15O2L64M3W18CRM2W9CW6CW0V13C^R1
V15S0,80,255,255,0,50O5L64W10M1C^D^E^M3A^F^M2V13G+^G^F+^R1
Q8V15O6L64S255,255,255,255,0,6M1CECGCECG>C^<R1
V15S255,255,10,100,5,20O3L64=1*1E^B^>E^B^<U10,1R1

Directory protection

Root directory is obfuscated (every 8.3 name is 11 garbage bytes, size field locked at 11). Classic Japanese disk protection — the volume still mounts as FAT12 (BPB: 512 bps, 2 spc, 2 FATs, 112 root, media F9) but files are not named. Game code lives in packed sectors loaded by the EXTRA 80 stub.

What this port does

Credits recovered at $9DF3: METAL KNIGHTS for MSX2 / GAME DESIGN & PROGRAMED by YU_ICHI.TOYAMA with BACKSTAGE DREAMER / COPYRIGHT 1988 (C) TECNOSOFT / PROGRAMING DAYS '87.10-11 '88.1-3