$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