Compare commits
3 Commits
3753b2efbb
...
293266d4e3
| Author | SHA1 | Date |
|---|---|---|
|
|
293266d4e3 | |
|
|
4a278981fe | |
|
|
3244b50e1e |
|
|
@ -7,3 +7,7 @@ labels/
|
|||
roms/Souseiki*
|
||||
roms/souseiki*
|
||||
roms/disksys.rom
|
||||
roms/dk3.prg
|
||||
roms/dk3_mirrored.prg
|
||||
roms/sf_bb-ram_save.fds
|
||||
roms/sf_bb-ram_save.ips
|
||||
|
|
|
|||
50
Makefile
50
Makefile
|
|
@ -2,13 +2,17 @@
|
|||
|
||||
export PATH := $(PATH):/home/nick/code/nes/go-fds/bin
|
||||
|
||||
LBL=../../go-dasm-labels/bin/dasm2mlb
|
||||
DA=../../cc65/bin/da65
|
||||
|
||||
all: dasm/ bins/ labels/ \
|
||||
dasm/disksys.asm \
|
||||
dasm/dk3_file4.asm \
|
||||
dasm/dk3_rom.asm \
|
||||
dasm/dk3.asm \
|
||||
dasm/dk3_file3.asm \
|
||||
dasm/dk3_file4-post-copy.asm \
|
||||
dasm/sf_bb-ram_precopy.asm \
|
||||
dasm/sf_bb-ram_postcopy.asm \
|
||||
dasm/sf_bb-ram_save_precopy.asm \
|
||||
dasm/sf_bb-ram_save_postcopy.asm \
|
||||
dasm/sf_rom-qd_file1_precopy.asm \
|
||||
dasm/sf_rom-qd_file1_postcopy.asm \
|
||||
dasm/sf_slow_rom-qd_file1_precopy.asm \
|
||||
|
|
@ -17,11 +21,14 @@ all: dasm/ bins/ labels/ \
|
|||
dasm/sf_slow_rom_file1_postcopy.asm \
|
||||
dasm/sf_slow_qd_file1_precopy.asm \
|
||||
dasm/sf_slow_qd_file1_postcopy.asm \
|
||||
dasm/sf_slow_rom-qd_postromcopy.asm \
|
||||
labels/sf_slow_rom_file1_postcopy.mlb \
|
||||
labels/sf_slow_qd_file1_postcopy.mlb \
|
||||
labels/sf_slow_rom-qd_file1_postcopy.mlb \
|
||||
labels/sf_rom-qd_file1_postcopy.mlb
|
||||
labels/sf_rom-qd_file1_postcopy.mlb \
|
||||
labels/dk3_file4-post-copy.mlb
|
||||
|
||||
dasm/dk3_file3.asm: bins/dk3_file3.bin
|
||||
dasm/dk3_file4.asm: bins/dk3_file4.bin
|
||||
dasm/dk3_file4-post-copy.asm: bins/dk3_file4.bin
|
||||
dasm/sf_rom-qd_file1_precopy.asm: bins/sf_rom-qd_file1.bin
|
||||
|
|
@ -32,6 +39,10 @@ dasm/sf_slow_rom_file1_precopy.asm: bins/sf_slow_rom_file1.bin
|
|||
dasm/sf_slow_rom_file1_postcopy.asm: bins/sf_slow_rom_file1.bin
|
||||
dasm/sf_slow_qd_file1_precopy.asm: bins/sf_slow_qd_file1.bin
|
||||
dasm/sf_slow_qd_file1_postcopy.asm: bins/sf_slow_qd_file1.bin
|
||||
dasm/sf_slow_rom-qd_postromcopy.asm: bins/sf_slow_rom-qd_file1.bin
|
||||
dasm/sf_bb-ram_precopy.asm: bins/sf_bb-ram_file1.bin
|
||||
dasm/sf_bb-ram_postcopy.asm: bins/sf_bb-ram_file1.bin
|
||||
dasm/sf_bb-ram_save_precopy.asm: bins/sf_bb-ram_save_file1.bin
|
||||
|
||||
clean:
|
||||
-rm dasm/* bins/* labels/*
|
||||
|
|
@ -39,14 +50,41 @@ clean:
|
|||
%/:
|
||||
-mkdir $@
|
||||
|
||||
roms/sf_bb-ram_save.fds: roms/sf_bb-ram_save.ips roms/sf_bb-ram.fds
|
||||
flips --apply $^ $@
|
||||
|
||||
dasm/dk3_rom.asm: bins/dk3_file2.bin bins/dk3_file3.bin dk3_rom.cfg
|
||||
tail -c 6144 bins/dk3_file2.bin > bins/dk3_rom.bin
|
||||
cat bins/dk3_file3.bin >> bins/dk3_rom.bin
|
||||
head -c 10240 bins/dk3_file2.bin >> bins/dk3_rom.bin
|
||||
da65 -i dk3_rom.cfg -o $@
|
||||
|
||||
dasm/dk3.asm: dk3.cfg
|
||||
da65 -i $< -o $@
|
||||
|
||||
dasm/%.asm: %.cfg.tmp
|
||||
$(DA) -i $< -o $@
|
||||
da65 -i $< -o $@
|
||||
|
||||
sf_slow_rom-qd_postromcopy.cfg.tmp: sf_slow_rom-qd_postromcopy.cfg rom-qd.cfg labels.cfg
|
||||
cat $^ > $@
|
||||
|
||||
dk3_file4-post-copy.cfg.tmp: dk3_file4-post-copy.cfg rom-qd.cfg labels.cfg
|
||||
cat $^ > $@
|
||||
|
||||
%.cfg.tmp: %.cfg labels.cfg
|
||||
cat $^ > $@
|
||||
|
||||
labels/%.mlb: %.cfg.tmp
|
||||
$(LBL) $^ $@ --rom-start 0xE000 --ram-start 0x5000
|
||||
dasm2mlb $^ $@ --rom-start 0xE000 --ram-start 0x5000
|
||||
|
||||
bins/sf_bb-ram_file1.bin: roms/sf_bb-ram.fds
|
||||
fdsextract --side 0 --file-num 1 --output $@ $^
|
||||
|
||||
bins/dk3_file2.bin: roms/sf_dk3.fds
|
||||
fdsextract --side 0 --file-num 2 --output $@ $^
|
||||
|
||||
bins/dk3_file3.bin: roms/sf_dk3.fds
|
||||
fdsextract --side 0 --file-num 3 --output $@ $^
|
||||
|
||||
bins/dk3_file4.bin: roms/sf_dk3.fds
|
||||
fdsextract --side 0 --file-num 4 --output $@ $^
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
global {
|
||||
cpu "6502";
|
||||
inputname "roms/dk3_mirrored.prg";
|
||||
startaddr $8000;
|
||||
commentcolumn 50;
|
||||
comments 3;
|
||||
};
|
||||
|
|
@ -4,39 +4,66 @@ global {
|
|||
startaddr $7C00;
|
||||
commentcolumn 50;
|
||||
comments 3;
|
||||
|
||||
newlineafterjmp true;
|
||||
newlineafterrts true;
|
||||
};
|
||||
|
||||
label { addr $7C47; name "L7C47"; paramsize 3; };
|
||||
label { addr $7C5F; name "L7C5F_loop"; };
|
||||
label { addr $7D83; name "L7D83_loop"; };
|
||||
label { addr $7DCA; name "SF_disable_fds_io"; };
|
||||
label { addr $7C00; name "PostCopy_Entry"; };
|
||||
label { addr $7C3B; name "doXfer"; };
|
||||
|
||||
label { addr $7C47; name "SF_Xfer"; paramsize 3; comment "Transfer data. Expects two inline parameters\n; (3 bytes): Xfer count, struct pointer."; };
|
||||
label { addr $7CBD; name "SF_CPU_Xfer"; };
|
||||
|
||||
label { addr $7D43; name "SF_PPU_ReadXfer"; };
|
||||
label { addr $7D74; name "readPPU"; comment "Read 256 bytes from the PPU.\n; Destination address must be written to $7D88 and\n; PPU address high byte must be written to $7D75 before calling."; };
|
||||
|
||||
label { addr $7CFB; name "SF_PPU_WriteXfer"; };
|
||||
label { addr $7D2D; name "writePPU"; comment "Read 256 bytes from the PPU.\n; Source data address must be written to $7D3B and\n; PPU address high byte must be written to $7D2E before calling."; };
|
||||
|
||||
label { addr $7C5F; name "L7C5F_loop"; };
|
||||
label { addr $7D83; name "L7D83_loop"; };
|
||||
label { addr $7DCA; name "SF_disable_fds_io"; };
|
||||
|
||||
# "cv" prefix == "code var" (self modifying code)
|
||||
label { addr $7C6B; name "cv7C6B"; };
|
||||
label { addr $7C6C; name "cv7C6C"; };
|
||||
label { addr $7C6B; name "paramPtr_7C6B"; size 3; };
|
||||
label { addr $7C7F; name "cv7C7F"; size 2; };
|
||||
label { addr $7C8C; name "cv7C8C"; size 2; };
|
||||
|
||||
label { addr $7C7F; name "cv7C7F"; };
|
||||
label { addr $7C80; name "cv7C80"; };
|
||||
label { addr $7C87; name "L7C87_loop"; };
|
||||
label { addr $7CB7; name "L7CB7_next"; };
|
||||
label { addr $7C8B; name "L7C8B_inner"; };
|
||||
|
||||
label { addr $7C87; name "L7C87_loop"; };
|
||||
label { addr $7CB7; name "L7CB7_next"; };
|
||||
label { addr $7CE2; name "cv7CE2"; };
|
||||
label { addr $7CE5; name "cv7CE5"; };
|
||||
|
||||
label { addr $7C8C; name "cv7C8C"; };
|
||||
label { addr $7C8D; name "cv7C8D"; };
|
||||
label { addr $7D2E; name "cv7D2E"; comment "lda immediate value"; };
|
||||
label { addr $7D3B; name "cv7D3B"; };
|
||||
|
||||
label { addr $7CE2; name "cv7CE2"; };
|
||||
label { addr $7CE5; name "cv7CE5"; };
|
||||
label { addr $7D88; name "cv7D88"; comment "sta addr high byte"; };
|
||||
label { addr $7D75; name "cv7D75"; };
|
||||
|
||||
label { addr $7D2E; name "cv7D2E"; comment "lda immediate value"; };
|
||||
label { addr $7D3B; name "cv7D3B"; };
|
||||
label { addr $7EFF; name "var_Mirroring"; comment "Mirror value. 0 = horiz, 1 = vert"; };
|
||||
label { addr $7BFE; name "var_SlowCheck"; size 2; };
|
||||
label { addr $7FDE; name "var_LoopCounter"; };
|
||||
label { addr $7FDF; name "param_Transfer"; size 5; };
|
||||
label { addr $7FD0; name "var_PageCount"; };
|
||||
|
||||
label { addr $7D88; name "cv7D88"; comment "sta addr high byte"; };
|
||||
label { addr $7D75; name "cv7D75"; };
|
||||
#label { addr $7800; name "SF_SlowSetup"; };
|
||||
label { addr $7C11; name ""; comment "This is only present if the SLOW rom was\n; loaded beforehand. It would have sat at\n; $D800 before the copy loop."; };
|
||||
label { addr $7C27; name "bVert"; };
|
||||
label { addr $7C2A; name "bHoriz"; };
|
||||
|
||||
label { addr $7C35; name "SF_ClearReg"; };
|
||||
label { addr $7C37; name "SF_SetReg"; };
|
||||
|
||||
range { start $7C47; end $7DB1; type code; };
|
||||
range { start $7DF1; end $7EFE; type bytetable; };
|
||||
range { start $7DF1; end $7EFF; type bytetable; };
|
||||
range { start $7F39; end $7FFE; type bytetable; };
|
||||
range { start $7C42; end $7C46; type bytetable; };
|
||||
|
||||
range { start $7EFF; end $7F36; type code; name "precopy_copyloop"; } ;
|
||||
range { start $7F00; end $7F36; name "precopy_copyloop"; type code; } ;
|
||||
range { start $7DB2; end $7DC8; type bytetable; };
|
||||
|
||||
label { addr $7DD5; name "SF_SetHoriz"; comment "Set FDS horizontal mirroring"; };
|
||||
label { addr $7DDF; name "SF_SetVert"; comment "Set FDS vertical mirroring"; };
|
||||
|
|
|
|||
|
|
@ -3,18 +3,27 @@ global {
|
|||
cpu "6502";
|
||||
inputname "bins/dk3_file4.bin";
|
||||
startaddr $DC00;
|
||||
commentcolumn 30;
|
||||
commentcolumn 50;
|
||||
comments 3;
|
||||
};
|
||||
|
||||
range { start $DDF1; end $DEFF; type bytetable; };
|
||||
range { start $DF39; end $DFD8; type bytetable; };
|
||||
range { start $DFE3; end $DFEF; type bytetable; };
|
||||
range { start $DC00; end $DEFF; type bytetable; };
|
||||
range { start $DF39; end $DFEF; type bytetable; };
|
||||
range { start $DFF1; end $DFF5; type bytetable; };
|
||||
|
||||
range { start $DF00; end $DF36; type code; };
|
||||
|
||||
label { name "entry"; addr $DF00; };
|
||||
label { name "ram_entry"; addr $DC00; };
|
||||
label { name "empty_vector"; addr $DFF0; };
|
||||
label { name "copy_loop_a"; addr $DF05; };
|
||||
label { name "copy_loop_b"; addr $DF20; };
|
||||
label { addr $DF00; name "entry"; };
|
||||
label { addr $DFF0; name "empty_vector"; };
|
||||
label { addr $DF05; name "copy_loop_a"; comment "\n; Copy $5800-$7FFF to $5000-$77FF"; };
|
||||
label { addr $DF20; name "copy_loop_b"; comment "\n; Copy $D800-$DFFF to $7800-$7FFF\n; Note that $D800-$DBFF isn't on this disk.\n; That's the slow rom if it was loaded first."; };
|
||||
label { addr $7C00; name "PostCopy_Entry"; };
|
||||
|
||||
label { addr $DF09; name "cvDF09"; };
|
||||
label { addr $DF0C; name "cvDF0C"; };
|
||||
label { addr $DF24; name "cvDF24"; };
|
||||
label { addr $DF27; name "cvDF27"; };
|
||||
|
||||
label { addr $DEFF; name "var_Mirroring"; comment "Mirror value. 0 = horiz, 1 = vert"; };
|
||||
|
||||
label { addr $07FF; name "var_07FF"; };
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
global {
|
||||
cpu "6502";
|
||||
inputname "bins/dk3_rom.bin";
|
||||
startaddr $8000;
|
||||
commentcolumn 50;
|
||||
comments 3;
|
||||
};
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
label { addr $7800; name "SF_SlowSetup"; };
|
||||
label { addr $7839; name "SF_SlowNMI"; };
|
||||
label { addr $7822; name "SF_ReplaceNMI"; };
|
||||
|
||||
label { addr $7F70; name "var_7F70_state"; };
|
||||
label { addr $7F71; name "var_7F71"; };
|
||||
label { addr $7F76; name "var_7F76"; size 8; };
|
||||
label { addr $7F72; name "var_7F72"; size 2; };
|
||||
|
||||
label { addr $7969; name "tbl_LedBlink"; size 128; };
|
||||
|
||||
label { addr $7896; name "Orig_NMI"; size 2; };
|
||||
label { addr $77FA; name "FDS_NMI"; size 2; };
|
||||
label { addr $7BFC; name "dat_7BFC"; size 2; };
|
||||
|
||||
range { start $7800; end $7896; type code; };
|
||||
range { start $7969; end $7BFF; type bytetable; };
|
||||
|
||||
label { addr $7C14; name "SF_ROMQD_Start"; comment "SLOW rom not found"; };
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
global {
|
||||
cpu "6502";
|
||||
inputname "bins/sf_bb-ram_file1.bin";
|
||||
startaddr $5100;
|
||||
inputoffs $0800;
|
||||
commentcolumn 50;
|
||||
comments 3;
|
||||
};
|
||||
|
||||
label { addr $5100; name "BB_PostCopy_Entry"; };
|
||||
label { addr $5103; name "MenuLoop"; };
|
||||
label { addr $5147; name "BB_ScreenSaveError"; };
|
||||
label { addr $516B; name "BB_ScreenEjectDisk"; };
|
||||
label { addr $51D4; name "BB_ScreenSetDisk"; };
|
||||
label { addr $5211; name "BB_FormatDisk"; };
|
||||
label { addr $529C; name "BB_SramCopy"; };
|
||||
label { addr $52C7; name "BB_Xfer"; paramsize 3; };
|
||||
label { addr $535C; name "BB_FDS_ResetIO"; };
|
||||
label { addr $5367; name "BB_ScreenSaveWait"; };
|
||||
label { addr $5386; name "BB_VRAMStructWrite"; };
|
||||
label { addr $5156; name "BB_NextDisk"; };
|
||||
|
||||
label { addr $5391; name "cv5391"; size 2; };
|
||||
|
||||
range { start $51BA; end $51BB; type addrtable; };
|
||||
range { start $51BC; end $51D3; type bytetable; };
|
||||
|
||||
range { start $51F7; end $51F8; type addrtable; };
|
||||
range { start $51F9; end $5210; type bytetable; };
|
||||
|
||||
range { start $5384; end $5385; type addrtable; };
|
||||
range { start $539D; end $53B4; type bytetable; };
|
||||
|
||||
#range { start $53B3; end $53B4; type addrtable; };
|
||||
#range { start $53B5; end $53CC; type bytetable; };
|
||||
|
||||
range { start $518E; end $518F; type addrtable; };
|
||||
range { start $5190; end $51A7; type bytetable; };
|
||||
|
||||
range { start $5250; end $529B; type bytetable; };
|
||||
range { start $52A3; end $52C6; name "SramCopy_Structs"; type bytetable; unit 4; };
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
global {
|
||||
cpu "6502";
|
||||
inputname "bins/sf_bb-ram_file1.bin";
|
||||
startaddr $D000;
|
||||
commentcolumn 50;
|
||||
comments 3;
|
||||
};
|
||||
|
||||
label { addr $DE00; name "BB_Reset"; };
|
||||
label { addr $DFC0; name "BB_NMI"; };
|
||||
label { addr $DFF0; name "BB_EmptyVector"; };
|
||||
label { addr $DE24; name "BB_InitScreen"; };
|
||||
label { addr $DE05; name "loop_outer"; };
|
||||
label { addr $DE07; name "loop_inner"; };
|
||||
label { addr $DDFF; name "var_Counter"; };
|
||||
|
||||
|
||||
range { start $D000; end $D7FF; name "Garbo_Probably"; type bytetable; };
|
||||
range { start $D800; end $DDFF; name "CopiedCode"; type bytetable; };
|
||||
range { start $DE00; end $DE21; type code; };
|
||||
range { start $DE69; end $DFBF; type bytetable; };
|
||||
|
||||
range { start $DFE3; end $DFEF; type bytetable; };
|
||||
|
||||
range { start $DFC0; end $DFE0; type code; };
|
||||
range { start $DFF1; end $DFF5; type bytetable; };
|
||||
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
global {
|
||||
cpu "6502";
|
||||
inputname "bins/sf_bb-ram_save_file1.bin";
|
||||
startaddr $5100;
|
||||
inputoffs $2000;
|
||||
commentcolumn 50;
|
||||
comments 3;
|
||||
};
|
||||
|
||||
label { addr $5100; name "BB_PostCopy_Entry"; };
|
||||
label { addr $51E0; name "BB_FDS_ResetIO"; };
|
||||
label { addr $514B; name "BB_Xfer"; paramsize 3; };
|
||||
label { addr $5124; name "doXfer"; };
|
||||
label { addr $511E; name "BB_ClearReg"; };
|
||||
label { addr $5120; name "BB_SetReg"; };
|
||||
|
||||
range { start $512B; end $514A; type bytetable; unit 4; };
|
||||
|
||||
range { start $514B; end $51DF; type code; };
|
||||
|
||||
range { start $51E0; end $51E4; type code; };
|
||||
range { start $51EB; end $51F6; type bytetable; };
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
global {
|
||||
cpu "6502";
|
||||
inputname "bins/sf_bb-ram_save_file1.bin";
|
||||
startaddr $B800;
|
||||
commentcolumn 50;
|
||||
comments 3;
|
||||
};
|
||||
|
||||
label { addr $DFF0; name "BB_EmptyVector"; };
|
||||
label { addr $DFD0; name "BB_PreCopy_Entry"; };
|
||||
label { addr $DFD5; name "loop_outer"; };
|
||||
label { addr $DFD7; name "loop_inner"; };
|
||||
|
||||
range { start $B800; end $DFCF; type bytetable; };
|
||||
range { start $DFD0; end $DFEB; type code; };
|
||||
|
||||
|
|
@ -6,7 +6,6 @@ global {
|
|||
comments 3;
|
||||
};
|
||||
|
||||
|
||||
range { start $DFE3; end $DFEF; type bytetable; };
|
||||
range { start $DFC0; end $DFE0; type code; name "LDFC0_reset"; };
|
||||
range { start $DF00; end $DF1B; type code; };
|
||||
|
|
@ -26,3 +25,7 @@ label { addr $DF0C; name "cvDF0C"; };
|
|||
# Uses NMI vector as a reset vector
|
||||
label { addr $DFF0; name "LDFF0_irq"; };
|
||||
|
||||
#label { addr $DB6E; name "datDB6E"; size 2; };
|
||||
#range { start $DB6E; end $DB6F; type bytetable; };
|
||||
|
||||
#range {start $DB70; end $DB87; type bytetable; };
|
||||
|
|
|
|||
|
|
@ -8,10 +8,30 @@ global {
|
|||
|
||||
label { addr $DFF0; name "IRQ"; };
|
||||
label { addr $DFC0; name "Entry"; };
|
||||
label { addr $DB00; name "Start"; };
|
||||
|
||||
label { addr $DB00; name "Start"; };
|
||||
range { start $DB00; end $DB6D; type code; };
|
||||
|
||||
range { start $DFE3; end $DFEF; type bytetable; };
|
||||
range { start $DD7E; end $DFBF; type bytetable; };
|
||||
|
||||
range { start $DD80; end $DFBF; name "LDD80"; type bytetable; };
|
||||
range { start $DFF1; end $DFF5; type bytetable; };
|
||||
|
||||
label { addr $DD7E; name "LDD7E"; size 2; };
|
||||
range { start $DD7E; end $DD7F; type bytetable; };
|
||||
|
||||
label { addr $DB6E; name "LDB6E"; size 2; };
|
||||
range { start $DB6E; end $DB6F; type bytetable; };
|
||||
range { start $DB70; end $DB87; name "LDB70"; type bytetable; };
|
||||
|
||||
range { start $D969; end $DAFF; type bytetable; };
|
||||
range { start $DCB2; end $DD5B; type bytetable; };
|
||||
|
||||
label { addr $DC60; name "SF_MenuInit"; };
|
||||
label { addr $DCA8; name "SF_MenuInit_Done"; };
|
||||
label { addr $DB40; name "SF_FDS_ResetIO"; };
|
||||
label { addr $DD5C; name "SF_DrawVRAMStruct"; comment "Pointer to struct should be written to\n; $DD67.w before calling."; };
|
||||
|
||||
label { addr $7FF0; name "var_7FF0"; };
|
||||
|
||||
label { addr $DD67; name "cv_DD67"; size 2; };
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
global {
|
||||
cpu "6502";
|
||||
inputname "bins/sf_slow_rom-qd_file1.bin";
|
||||
startaddr $7800;
|
||||
inputsize $0400;
|
||||
commentcolumn 50;
|
||||
comments 3;
|
||||
};
|
||||
|
||||
label { addr $7F74; name "var_BackupA"; };
|
||||
label { addr $7F75; name "var_BackupX"; };
|
||||
|
||||
label { addr $788A; name "ledOn"; };
|
||||
label { addr $7873; name "ledOff"; };
|
||||
Loading…
Reference in New Issue