BIOS COM ABI¶
Most games reach the link through these BIOS services, so re-implementing them
bridges the link. A few games (SNK vs Capcom, KOF R-1/R-2) also drive SIO0
(SC0BUF) directly from their own interrupt handler — bridging those needs the
emulated SIO transport as well; see netplay transport.
See also 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.