souseiki-fammy-dasm/notes.txt

70 lines
2.3 KiB
Plaintext

$00
$01 0000_0001 // written on slow disk, before copy from $F000 to $5700
$04 0000_0100 // written before copy
$14 0001_0100 // written before jmp to ROM
$4C 0100_1100 //
$84 1000_0100 // written before copy loop into $E000
$8C 1000_1100 // written before jump to qd RESET vector (FDS BIOS reset vector)
$9D 1001_1101 // written before jump to rom RESET vector
0011_1011 3B
0001_1101 1D
0011_1011
5432 1098 7654 3210
0000_0000 0000_0000
0100_1100 xxxx_xxxx $4Cxx
0100_1000 xxxx_xxxx $48xx
$0000 $07FF sys ram
$5000 $5FFF SF ram (but only half)
$6000 $DFFF FDS ram
$E000 $FFFF FDS bios *OR* SF ram (all of it this time)
7 bit 0
---------
LRDW ??PM
|||| ||||
|||| |||+- Disk/ROM mode (0 = current Disk/ROM switch, 1 = opposite of Disk/ROM switch)
|||| ||+-- PPU CIRAM /CE, A10, A13 mode (0 = current Disk/ROM switch, 1 = opposite of Disk/ROM switch)
|||| |+--- Fammy PRG-RAM mirroring (0 = $5000-$5FFF only?, 1 = map a mirror at $E000-$FFFF?)
|||| +---- Fammy PRG-RAM $E000 mirror mapping (0 = $E000-$FFFF, 1 = $F000-$FFFF only?)
|||+------ Disk CPU/PPU write control (0 = enable, 1 = disable writes to CHR-RAM and $8000-$FFFF?)
||+------- Disk M2 control (0 = current Disk/ROM switch, 1 = opposite of Disk/ROM switch)
|+-------- ROM M2 control (0 = current Disk/ROM switch, 1 = opposite of Disk/ROM switch)
+--------- On-board LED (0 = off, 1 = on)
## Slow ROM
- Copies patch to $5100 and jumps to it
- eject disk screen
- speed select screen
- copy $F000-$F7FF to $5700-$5EFF
- VINTWait before each outer loop itteration
- write $01 to reg before copy loop
- write $00 to reg after copy loop
- copy $5700-$5EFF to $F000-$F7FF
- VINTWait before each outer loop itteration
- write $04 to reg before copy loop
- write $00 to reg after copy loop
// there's some bullshit happening here to change the NMI vector
- copy $F800-$FFFF to $5700-$5EFF
- VINTWait before each outer loop itteration
- write $01 to reg before copy loop
- write $00 to reg after copy loop
- copy $5700-$5EFF to $F800-$FFFF
- VINTWait before each outer loop itteration
- write $01 to reg before copy loop
- write $00 to reg after copy loop
- write $9D to reg
- jmp ($FFFC)
### NMI handler
- write $0D to reg