# This is a comment. It extends to the end of the line # 32768 byte ROM # 31081 bytes blank # 1687 bytes actual code or data # # GLOBAL { INPUTNAME "WDC65c816SK_WDCMON.bin"; CPU "65C02"; STARTADDR $8000; PAGELENGTH 0; # No paging OUTPUTNAME "WDC65c816SK_WDCMON.s.txt"; }; # One segment for the whole stuff SEGMENT { START $8000; END $FFFF; NAME "wibble"; }; # Zero-page variables LABEL { NAME "VAR_00"; ADDR $00; }; LABEL { NAME "VAR_7E"; ADDR $7E; SIZE 2; }; LABEL { NAME "VAR_8F"; ADDR $8F; SIZE 1; }; LABEL { NAME "VAR_AF"; ADDR $AF; SIZE 1; }; # Stack LABEL { NAME "stack"; ADDR $100; SIZE 255; }; # RAM # LABEL { NAME "RAM_WORKSPACE"; ADDR $7E00; SIZE $70; }; LABEL { NAME "RAM_temp_PCR"; ADDR $7E1C; }; LABEL { NAME "RAM_temp_DDRB"; ADDR $7E1D; }; LABEL { NAME "RAM_temp_DDRA"; ADDR $7E1E; }; # LABEL { NAME "RAM_temp_"; ADDR $7E; }; # LABEL { NAME "RAM_temp_"; ADDR $7E; }; LABEL { NAME "IRQ_entry_vector"; ADDR $7E70; SIZE 2; }; LABEL { NAME "NMI_entry_vector"; ADDR $7E72; SIZE 2; }; LABEL { NAME "mystery_vector"; ADDR $7E74; SIZE 2; }; LABEL { NAME "RAM_WORD_TABLE_even"; ADDR $7EE2; }; LABEL { NAME "RAM_WORD_TABLE_odd"; ADDR $7EE3; }; LABEL { NAME "VECTOR_7EE4"; ADDR $7EE4; }; LABEL { NAME "VECTOR_7EE8"; ADDR $7EE8; }; LABEL { NAME "VECTOR_7EEE"; ADDR $7EEE; }; LABEL { NAME "VECTOR_7EF4"; ADDR $7EF4; }; LABEL { NAME "VECTOR_7EF8"; ADDR $7EF8; }; LABEL { NAME "VECTOR_7EFE"; ADDR $7EFE; }; LABEL { NAME "beginning"; ADDR $8000; }; # hardware LABEL { NAME "XBUS_CS0"; ADDR $7F00; SIZE 32; }; LABEL { NAME "XBUS_CS1"; ADDR $7F20; SIZE 32; }; LABEL { NAME "XBUS_CS2"; ADDR $7F40; SIZE 32; }; LABEL { NAME "XBUS_CS3"; ADDR $7F60; SIZE 32; }; # LABEL { NAME "USER_ACIA"; ADDR $7F80; SIZE 4; }; LABEL { NAME "USER_ACIA_DATA"; ADDR $7f80 ; }; LABEL { NAME "USER_ACIA_SR"; ADDR $7f81 ; }; LABEL { NAME "USER_ACIA_CMD"; ADDR $7f82 ; }; LABEL { NAME "USER_ACIA_CTL"; ADDR $7f83 ; }; # LABEL { NAME "USER_PIA"; ADDR $7FA0; SIZE 32; }; LABEL { NAME "USER_PIA_DDRA"; ADDR $7fa0 ; }; LABEL { NAME "USER_PIA_CRA "; ADDR $7fa1 ; }; LABEL { NAME "USER_PIA_PIB_DDRB"; ADDR $7fa2 ; }; LABEL { NAME "USER_PIA_CRB "; ADDR $7fa3 ; }; # LABEL { NAME "USER_VIA"; ADDR $7FC0; SIZE 32; }; LABEL { NAME "USER_VIA_IOBB"; ADDR $7fc0 ; }; LABEL { NAME "USER_VIA_IOA"; ADDR $7fc1 ; }; LABEL { NAME "USER_VIA_DDRB"; ADDR $7fc2 ; }; LABEL { NAME "USER_VIA_DDRA"; ADDR $7fc3 ; }; LABEL { NAME "USER_VIA_T1CL"; ADDR $7fc4 ; }; LABEL { NAME "USER_VIA_T1CH"; ADDR $7fc5 ; }; LABEL { NAME "USER_VIA_T1LL"; ADDR $7fc6 ; }; LABEL { NAME "USER_VIA_T1LH"; ADDR $7fc7 ; }; LABEL { NAME "USER_VIA_T2CL"; ADDR $7fc8 ; }; LABEL { NAME "USER_VIA_T2CH"; ADDR $7fc9 ; }; LABEL { NAME "USER_VIA_SR "; ADDR $7fca ; }; LABEL { NAME "USER_VIA_ACR"; ADDR $7fcb ; }; LABEL { NAME "USER_VIA_PCR"; ADDR $7fcc ; }; LABEL { NAME "USER_VIA_IFR"; ADDR $7fcd ; }; LABEL { NAME "USER_VIA_IER"; ADDR $7fce ; }; LABEL { NAME "USER_VIA_ORA_IRA"; ADDR $7fcf ; }; # LABEL { NAME "SYSTEM_VIA"; ADDR $7FE0; SIZE 32; }; LABEL { NAME "SYSTEM_VIA_IOB"; ADDR $7FE0 ; }; LABEL { NAME "SYSTEM_VIA_IOA"; ADDR $7FE1 ; }; LABEL { NAME "SYSTEM_VIA_DDRB"; ADDR $7FE2 ; }; LABEL { NAME "SYSTEM_VIA_DDRA"; ADDR $7FE3 ; }; # # Timers never referred to in code # LABEL { NAME "SYSTEM_VIA_T1C_L"; ADDR $7FE4 ; }; LABEL { NAME "SYSTEM_VIA_T1C_H"; ADDR $7FE5 ; }; LABEL { NAME "SYSTEM_VIA_T1L_L"; ADDR $7FE6 ; }; LABEL { NAME "SYSTEM_VIA_T1L_H"; ADDR $7FE7 ; }; LABEL { NAME "SYSTEM_VIA_T2C_L"; ADDR $7FE8 ; }; LABEL { NAME "SYSTEM_VIA_T2C_H"; ADDR $7FE9 ; }; # LABEL { NAME "SYSTEM_VIA_SR"; ADDR $7FEA ; }; # never referred to in code LABEL { NAME "SYSTEM_VIA_ACR"; ADDR $7FEB ; }; # LABEL { NAME "SYSTEM_VIA_PCR"; ADDR $7FEC ; }; # # # Interrupt registers never referred to in code # LABEL { NAME "SYSTEM_VIA_IFR"; ADDR $7FED ; }; # never referred to in code LABEL { NAME "SYSTEM_VIA_IER"; ADDR $7FEE ; }; # never referred to in code LABEL { NAME "SYSTEM_VIA_ORA_IRA"; ADDR $7FEF ; }; # never referred to in code RANGE { START $8000; END $8051; TYPE TextTable; }; RANGE { START $8052; END $807F; TYPE ByteTable; }; RANGE { START $8080; END $8097; TYPE AddrTable; }; # definitely not code RANGE { START $8098; END $80FF; TYPE ByteTable; }; RANGE { START $8677; END $FFDF; TYPE ByteTable; }; RANGE { START $FFE0; END $FFE3; TYPE WordTable; }; RANGE { START $FFE4; END $FFFF; TYPE AddrTable; }; LABEL { NAME "string_8004"; ADDR $8004; }; LABEL { NAME "string_8008"; ADDR $8008; }; LABEL { NAME "IRQ_entry"; ADDR $8100; }; LABEL { NAME "NMI_entry"; ADDR $8104; }; LABEL { NAME "BRK_816_entry"; ADDR $8108; }; LABEL { NAME "NMI_816_entry"; ADDR $810C; }; LABEL { NAME "BRK_entry"; ADDR $8110; }; LABEL { NAME "ABORT_entry"; ADDR $8113; }; LABEL { NAME "IRQ_816_entry"; ADDR $8116; }; LABEL { NAME "ABORT_816_entry"; ADDR $8119; }; LABEL { NAME "COP_816_entry"; ADDR $811C; }; LABEL { NAME "RFU_loop_idly"; ADDR $811F; }; LABEL { NAME "RFU_8124_entry"; ADDR $8124; }; LABEL { NAME "RESET_entry"; ADDR $812B; }; LABEL { NAME "L8131_lots_of_65816_setup_code"; ADDR $8131; }; LABEL { NAME "L8132_SEP_Set_Status_Bits"; ADDR $8132; }; RANGE { START $8132; END $8133; TYPE ByteTable; }; LABEL { NAME "L813A_SEP_Set_Status_Bits"; ADDR $813A; }; RANGE { START $813A; END $813B; TYPE ByteTable; }; LABEL { NAME "L8146_XCE_Exchange_Carry_and_Emulation_Bits"; ADDR $8146; }; LABEL { NAME "L8147_REP_Reset_Status_Bits"; ADDR $8147; }; RANGE { START $8147; END $8148; TYPE ByteTable; }; # LABEL { NAME "L814A_COP"; ADDR $814A; }; # RANGE { START $814A; END $814B; TYPE ByteTable; }; LABEL { NAME "L814F_SEP_Set_Status_Bits"; ADDR $814F; }; RANGE { START $814F; END $8150; TYPE ByteTable; }; LABEL { NAME "L8158_REP_Reset_Status_Bits"; ADDR $8158; }; RANGE { START $8158; END $8159; TYPE ByteTable; }; LABEL { NAME "move_four_bytes_to_workspace_20"; ADDR $81DB; }; LABEL { NAME "loop_81DD"; ADDR $81DD; }; LABEL { NAME "loop_8194"; ADDR $8194; }; LABEL { NAME "loop_819F"; ADDR $819F; }; LABEL { NAME "loop_until_char_0x55"; ADDR $81E6; }; LABEL { NAME "loop_81E9"; ADDR $81E9; }; LABEL { NAME "loop_824B"; ADDR $824B; }; LABEL { NAME "loop_8253_forever"; ADDR $8253; }; LABEL { NAME "loop_82BA"; ADDR $82BA; }; LABEL { NAME "USB_RX_RAM_BYTES_0_TO_4"; ADDR $8302; }; LABEL { NAME "loop_832F"; ADDR $832F; }; LABEL { NAME "send_mystery_sequence"; ADDR $836C; }; #$00, #$7E, #$00, RAM_WORKSPACE+16, #$58, #$00, #$7E, #$00, #$00, #$80, #$00, #$E4, #$7E, #$00, #$00, #$7F, #$00, #$E4, #$FF, #$00, #$00, #$7F, #$00, #$FF, #$7F, #$00, #$FF, #$FF, #$FF LABEL { NAME "loop_8403_four_times"; ADDR $8403; }; LABEL { NAME "IRQ_entry_vector_default"; ADDR $84AF; }; LABEL { NAME "NMI_entry_vector_default"; ADDR $84CF; }; LABEL { NAME "mystery_vector_default_SEP_Set_Status_Bits"; ADDR $8532; }; RANGE { START $8532; END $8533; TYPE ByteTable; }; LABEL { NAME "L853F_SEP_Set_Status_Bits"; ADDR $853F; }; RANGE { START $853F; END $8540; TYPE ByteTable; }; LABEL { NAME "L8542_STP_Stop_The_Processor"; ADDR $8542; }; RANGE { START $8542; END $8542; TYPE ByteTable; }; LABEL { NAME "L8543_Wake_The_Processor"; ADDR $8543; }; LABEL { NAME "SYSTEM_VIA_ZERO_ACR_AND_PCR"; ADDR $85B1; }; LABEL { NAME "SYSTEM_VIA_INIT_DDRA"; ADDR $85CB; }; LABEL { NAME "SYSTEM_VIA_85F5"; ADDR $85F5; }; LABEL { NAME "SYSTEM_VIA_USB_CHAR_RX"; ADDR $8606; }; LABEL { NAME "SYSTEM_VIA_USB_CHAR_RX_WAIT"; ADDR $860D; }; LABEL { NAME "SYSTEM_VIA_USB_CHAR_TX"; ADDR $862B; }; LABEL { NAME "SYSTEM_VIA_USB_CHAR_TX_WAIT"; ADDR $8635; }; LABEL { NAME "loop_8659"; ADDR $8659; }; LABEL { NAME "loop_865C"; ADDR $865C; }; LABEL { NAME "SYSTEM_VIA_PCR_READ"; ADDR $8664; }; LABEL { NAME "SYSTEM_VIA_PCR_WRITE"; ADDR $866B; }; # LABEL { NAME "SYSTEM_VIA_"; ADDR $; }; LABEL { NAME "do_nothing_8658"; ADDR $8658; }; LABEL { NAME "do_nothing_8672"; ADDR $8672; }; LABEL { NAME "do_nothing_8673"; ADDR $8673; }; LABEL { NAME "NOT_CODE_0DAD"; ADDR $0DAD; }; LABEL { NAME "NOT_CODE_10C2"; ADDR $10C2; }; LABEL { NAME "NOT_CODE_138F"; ADDR $138F; }; LABEL { NAME "NOT_CODE_A900"; ADDR $A900; }; LABEL { NAME "NOT_CODE_A948"; ADDR $A948; }; LABEL { NAME "NOT_CODE_AF48"; ADDR $AF48; }; # LABEL { NAME "NOT_CODE_F481"; ADDR $F481; }; # Hardware vectors LABEL { NAME "RFU_FFE0"; ADDR $FFE0; SIZE 2; }; LABEL { NAME "RFU_FFE2"; ADDR $FFE2; SIZE 2; }; LABEL { NAME "COP_816"; ADDR $FFE4; SIZE 2; }; LABEL { NAME "BRK_816"; ADDR $FFE6; SIZE 2; }; LABEL { NAME "ABORT_816"; ADDR $FFE8; SIZE 2; }; LABEL { NAME "NMI_816"; ADDR $FFEA; SIZE 2; }; LABEL { NAME "RFU_FFEC"; ADDR $FFEC; SIZE 2; }; LABEL { NAME "IRQ_816"; ADDR $FFEE; SIZE 2; }; LABEL { NAME "RFU_FFF0"; ADDR $FFF0; SIZE 2; }; LABEL { NAME "RFU_FFF2"; ADDR $FFF2; SIZE 2; }; LABEL { NAME "BRK"; ADDR $FFF4; SIZE 2; }; LABEL { NAME "RFU_FFF6"; ADDR $FFF6; SIZE 2; }; LABEL { NAME "ABORT"; ADDR $FFF8; SIZE 2; }; LABEL { NAME "NMI"; ADDR $FFFA; SIZE 2; }; LABEL { NAME "RESET"; ADDR $FFFC; SIZE 2; }; LABEL { NAME "IRQ"; ADDR $FFFE; SIZE 2; };