BIOS COM ABI¶
Games reach the link only through these BIOS services (never the SIO registers) — so re-implementing them is enough to bridge the link. See implement it.
Call mechanism¶
Wrapper at 0x2304cd: service id in W, ×4, index the BIOS table at 0xFFFE00, call.
Params in RB3, buffer ptr in XHL3, counts in RWA3, status in RA3.
Services¶
| ID | Name | Inputs → result |
|---|---|---|
10 |
COMINIT |
initialize; RA3=0 ok |
11 |
COMSENDSTART |
flush queued TX |
12 |
COMRECIVESTART |
enable RX |
13 |
COMCREATEDATA |
queue TX byte from RB3 |
14 |
COMGETDATA |
RX byte → RB3; RA3=0 ok / 1 empty |
15 / 16 |
COMONRTS / COMOFFRTS |
assert / deassert /RTS |
17 |
COMSENDSTATUS |
pending TX count → RWA3 |
18 |
COMRECIVESTATUS |
RX byte count → RWA3 |
19 |
COMCREATEBUFDATA |
send RB3 bytes from XHL3 |
1a |
COMGETBUFDATA |
receive ≤ RB3 bytes into XHL3 |
Legacy NeoPop/Mednafen HLE: TX byte queue, HDMA/int ch 11 after writes / ch 12 after
reads, /RTS via I/O 0xB2.
Example — identity frame¶
Whole-ROM audit: all 32 COMCREATEDATA literals are 00 01 F8 F9 FC FD FE, in the link routines only.