1
0
mirror of https://github.com/ksherlock/x65.git synced 2024-09-27 15:54:53 +00:00

Adding read-only labels to disassembler and Atari 7800 memory map file

- Changed how the instruction lookup is stored to more easily
distinguish between read-only and other instructions
- Added Atari 7800 labels (a78.lbl)
- Added a keyword "read" to declare a read-only version of a data label
to the labels file
- Fixes to determining addresses representing data or code
- Fixed missing data blocks that were exactly 16 bytes
This commit is contained in:
Carl-Henrik Skårstedt 2015-12-10 22:27:49 -08:00
parent 214c32931a
commit c96399d896
3 changed files with 1286 additions and 825 deletions

View File

@ -26,6 +26,9 @@ x65dsasm binary disasm.txt [$skip[-$end]] [addr=$xxxx] [cpu=6502/65C02/65816]
### Updates
* a78.lbl file defining Atari 7800 hardware addresses
* Switched the instruction info around to more easily determine read-only instructions
* Various improvements distinguishing between code and data
* c64.lbl file defining all c64 hardware addresses
* Tracking label references outside of the code including zero page
* Data / Code distinction improvements
@ -47,13 +50,24 @@ A special data format is pointers indicating a function pointer table, the label
defined with a range to limit the size. Each pointer within the pointer table will be
assigned a code label.
If the keyword "pointers" is followed by the word "data" the pointers will be interpreted as
data pointers instead of code pointers.
A label can be redefined with a different name for read-only instructions by using the keyword
read after the address. The label must first be defined as a data label to be assigned a
read-only name. Read only instructions include ora, and, bit, eor, adc, sbc, lda, ldx, ldy, cmp, cpy and cpx.
Example labels file:
```
TIA_VSYNC = $00 data
TIA_CXM0P = $00 read
Init = $1000 code Entry point into code
SinTable = $1400 data 256 byte sinus table
Interrupt = $10f3 code Interrupt code
Callbacks = $1123-$112b pointers Array of function pointers
MapRefs = $1200-$1240 pointers data Array of data pointers
VIC_Sprite0_x = $d000 set sprite 0 x position
VIC_Sprite0_y = $d001 set sprite 0 y position
VIC_Sprite1_x = $d002 set sprite 1 x position

100
disassembler/a78.lbl Normal file
View File

@ -0,0 +1,100 @@
TIA_VSYNC = $00 data
TIA_VBLANK = $01 data
TIA_WSYNC = $02 data
TIA_RSYNC = $03 data
TIA_NUSIZ0 = $04 data
TIA_NUSIZ1 = $05 data
TIA_COLUP0 = $06 data
TIA_COLUP1 = $07 data
TIA_COLUPF = $08 data
TIA_COLUBK = $09 data
TIA_CTRLPF = $0A data
TIA_REFP0 = $0B data
TIA_REFP1 = $0C data
TIA_PF0 = $0D data
TIA_PF1 = $0E data
TIA_PF2 = $0F data
TIA_RESP0 = $10 data
TIA_RESP1 = $11 data
TIA_RESM0 = $12 data
TIA_RESM1 = $13 data
TIA_RESBL = $14 data
TIA_AUDC0 = $15 data
TIA_AUDC1 = $16 data
TIA_AUDF0 = $17 data
TIA_AUDF1 = $18 data
TIA_AUDV0 = $19 data
TIA_AUDV1 = $1A data
TIA_GRP0 = $1B data
TIA_GRP1 = $1C data
TIA_ENAM0 = $1D data
TIA_ENAM1 = $1E data
TIA_ENABL = $1F data
TIA_HMP0 = $20 data
TIA_HMP1 = $21 data
TIA_HMM0 = $22 data
TIA_HMM1 = $23 data
TIA_HMBL = $24 data
TIA_VDELP0 = $25 data
TIA_VDELP1 = $26 data
TIA_VDELBL = $27 data
TIA_RESMP0 = $28 data
TIA_RESMP1 = $29 data
TIA_HMOVE = $2A data
TIA_HMCLR = $2B data
TIA_CXCLR = $2C data
TIA_CXM0P = $00 read
TIA_CXM1P = $01 read
TIA_CXP0FB = $02 read
TIA_CXP1FB = $03 read
TIA_CXM0FB = $04 read
TIA_CXM1FB = $05 read
TIA_CXBLPF = $06 read
TIA_CXPPMM = $07 read
TIA_INPT0 = $08 read
TIA_INPT1 = $09 read
TIA_INPT2 = $0A read
TIA_INPT3 = $0B read
TIA_INPT4 = $0C read
TIA_INPT5 = $0D read
MARIA_Bkg_col = $0020 data
MARIA_pal_0_col_1 = $0021 data
MARIA_pal_0_col_2 = $0022 data
MARIA_pal_0_col_3 = $0023 data
MARIA_Wait_Sync = $0024 data
MARIA_pal_1_col_1 = $0025 data
MARIA_pal_1_col_2 = $0026 data
MARIA_pal_1_col_3 = $0027 data
MARIA_Status = $0028 data
MARIA_pal_2_col_1 = $0029 data
MARIA_pal_2_col_2 = $002A data
MARIA_pal_2_col_3 = $002B data
MARIA_Disp_List_Hi = $002C data
MARIA_pal_3_col_1 = $002D data
MARIA_pal_3_col_2 = $002E data
MARIA_pal_3_col_3 = $002F data
MARIA_Disp_List_Lo = $0030 data
MARIA_pal_4_col_1 = $0031 data
MARIA_pal_4_col_2 = $0032 data
MARIA_pal_4_col_3 = $0033 data
MARIA_Charbase = $0034 data
MARIA_pal_5_col_1 = $0035 data
MARIA_pal_5_col_2 = $0036 data
MARIA_pal_5_col_3 = $0037 data
MARIA_pal_6_col_1 = $0039 data
MARIA_pal_6_col_2 = $003A data
MARIA_pal_6_col_3 = $003B data
MARIA_CTRL = $003C data
MARIA_pal_7_col_1 = $003D data
MARIA_pal_7_col_2 = $003E data
MARIA_pal_7_col_3 = $003F data
RIOT_IO = $0280 data
RIOT_IO_END = $0300 data
RIOT_RAM = $0480 data
RIOT_RAM_END = $0500 data
RAM = $1800 data
RAM_END = $2800 data

File diff suppressed because it is too large Load Diff