mirror of
https://github.com/ksherlock/x65.git
synced 2025-01-15 17:31:19 +00:00
Removing the disassembler and putting it into its own repo
- The disassembler was taking on some girth and weighing the assembler code down.
This commit is contained in:
parent
d9d386a260
commit
4f6db98637
@ -101,6 +101,9 @@ Primarily tested with personal archive of sources written for Kick assmebler, DA
|
||||
* irp (indefinite repeat)
|
||||
|
||||
**FIXED**
|
||||
* Removed the disassembler and put it into its own project [x65dsasm](http://github.com/sakrac/x65dsasm)
|
||||
* LUP/REPT directives clean up local symbols each iteration to avoid crossing over an iteration with branches to local labels.
|
||||
* Fixed Merlin MAC directive which is a little different from normal assembler macros
|
||||
* Labels can start with numbers and values will only be interpreted as decimal numbers if terminated by a character that is not an alphabetic character or underscore
|
||||
* INCSYM failed with local labels, this is now properly handled. (fixed again..)
|
||||
* INCBIN and IMPORT BINARY always failed (force 0 bytes length)
|
||||
|
@ -1,157 +0,0 @@
|
||||
#x65 Disassembler
|
||||
|
||||
Simple disassembler for 6502, 65C02 and 65816 (default).
|
||||
|
||||
## Command Line Options
|
||||
|
||||
Typical command line ([*] = optional):
|
||||
|
||||
**Usage**
|
||||
|
||||
```
|
||||
x65dsasm binary disasm.txt [$skip[-$end]] [addr=$xxxx] [cpu=6502/65C02/65816]
|
||||
[mx=0-3] [src] [prg] [data=$xx] [labels=labels.lbl]
|
||||
```
|
||||
|
||||
* binary: file which contains some 65xx series instructions
|
||||
* disasm.txt: output file (default is stdout)
|
||||
* $skip-$end: first byte offset to disassemble to last byte offset to disassemble
|
||||
* addr: disassemble as if loaded at addr (addr)
|
||||
* data: this number of initial bytes in file is data and not code
|
||||
* prg: file is a c64 program file starting with the load address
|
||||
* cpu: set which cpu to disassemble for (default is 6502)
|
||||
* src: export near assemblable source with guesstimated data blocks
|
||||
* mx: set the mx flags which control accumulator and index register size
|
||||
* labels: import labels from a file (each line: label=$xxxx [code]/[data] comment)
|
||||
* graph: prefix the file with a calling graph
|
||||
* graph+bra: include branches in the calling graph (increases size significantly)
|
||||
|
||||
### Updates
|
||||
|
||||
* graph option exports a calling graph before the disassembly
|
||||
* re-evaluation of separating segments after final cleanup
|
||||
* c64kernal.lbl file defining c64 hw + kernal functions in the range of $e000-$fffa
|
||||
* 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
|
||||
* **Local labels** to improve code readability
|
||||
* Improvements to code vs data determination
|
||||
* Instrument labels through labels text file
|
||||
* **src** option attempts to generate valid assembler source
|
||||
|
||||
### Labels file format
|
||||
|
||||
Labels is a text file with one label declaration per line followed by the address to assign and the
|
||||
type of block to represent (code or data or pointers) followed by an optional comment. The labels
|
||||
file makes the most sense together with the *src* command line argument.
|
||||
|
||||
Addresses can define a range using a '-' after the address followed by an ending address.
|
||||
No automatic labels will be inserted within this range.
|
||||
|
||||
A special data format is pointers indicating a function pointer table, the label should be
|
||||
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
|
||||
VIC_Sprite1_y = $d003 set sprite 1 y position
|
||||
```
|
||||
|
||||
The simple way to work with a labels file is to copy an existing hardware file and add labels to it.
|
||||
|
||||
Sample output:
|
||||
|
||||
```
|
||||
;
|
||||
; FUNCTION CALLING GRAPH
|
||||
;
|
||||
; Code_140 ($d4af) [-]
|
||||
; Code_21 ($c5a3) [jmp]
|
||||
; Code_143 ($d56e) [jsr]
|
||||
; Code_109 ($cec3) [jsr]
|
||||
;
|
||||
; DISASSEMBLY
|
||||
;
|
||||
; Referenced from ResetVector + $0 (subroutine, $fffc)
|
||||
; Referenced from IntVector + $0 (subroutine, $fffe)
|
||||
Reset: ; $c000
|
||||
cld
|
||||
sei
|
||||
; Referenced from Reset / .l_1 + $3 (branch, $c002)
|
||||
.l_1: ; $c002
|
||||
|
||||
; -------------------------------- ;
|
||||
|
||||
; Referenced from Label_14 + $7 (subroutine)
|
||||
; Referenced from Label_14 + $c (subroutine)
|
||||
Label_11:
|
||||
lda $03,x
|
||||
bpl Label_13
|
||||
; Referenced from Label_14 + $18 (subroutine)
|
||||
Label_12:
|
||||
sec
|
||||
lda #$00
|
||||
sbc $00,x
|
||||
sta $00,x
|
||||
lda #$00
|
||||
sbc $01,x
|
||||
sta $01,x
|
||||
lda #$00
|
||||
sbc $02,x
|
||||
sta $02,x
|
||||
lda #$00
|
||||
sbc $03,x
|
||||
sta $03,x
|
||||
; Referenced from Label_11 + $2 (branch)
|
||||
Label_13:
|
||||
rts
|
||||
|
||||
; -------------------------------- ;
|
||||
|
||||
; Referenced from Label_1 + $1e (subroutine)
|
||||
; Referenced from Label_16 + $1 (subroutine)
|
||||
; Referenced from Label_24 + $b (subroutine)
|
||||
; Referenced from Label_28 + $b (subroutine)
|
||||
Label_14:
|
||||
lda $f7
|
||||
eor $f3
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
lda #$e4
|
||||
jsr Label_16
|
||||
bne Label_27
|
||||
beq Label_27
|
||||
; Referenced from Label_28 + $29 (branch)
|
||||
Label_29:
|
||||
rts
|
||||
|
||||
; -------------------------------- ;
|
||||
|
||||
; Referenced from Label_24 + $0 (data)
|
||||
Label_30:
|
||||
dc.b $55, $55, $d5, $ff, $22, $22, $02, $00, $ff, $f2, $ff, $ff, $2e, $00, $00, $00
|
||||
```
|
@ -1,100 +0,0 @@
|
||||
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
|
||||
|
@ -1,75 +0,0 @@
|
||||
6510_Port_Data_Direction = 0 data
|
||||
6510_Port_Data = 1 data
|
||||
C64_System_Interrupt = $314-$316 data
|
||||
C64_System_NMI = $318-$31a data
|
||||
Vic_Sprite_Pos = $d000-$d011 data
|
||||
Vic_Screen_Ctrl = $d011 data
|
||||
Vic_Raster_Line = $d012 data
|
||||
Vic_Light_Pen = $d013-$d015 data
|
||||
Vic_Sprite_Enable = $d015 data
|
||||
Vic_Sprite_Ctrl = $d016 data
|
||||
Vic_Sprite_Height_Dbl = $d017 data
|
||||
Vic_Memory_Setup = $d018 data
|
||||
Vic_Int_Status = $d019-$d01b data
|
||||
Vic_Sprite_Pri = $d01b data
|
||||
Vic_Sprite_MultiCol = $d01C data
|
||||
Vic_Sprite_Width_Dbl = $d01d data
|
||||
Vic_Sprite_Sprite_Coll = $d01e data
|
||||
Vic_Sprite_Background_Coll = $d01f data
|
||||
Vic_Border_Color = $d020 data
|
||||
Vic_Back_Color = $d021-$d025 data
|
||||
Vic_Sprite_Color_Extra = $d025-$d027 data
|
||||
Vic_Sprite_Color = $d027-$d02f data
|
||||
Vic = $d02f-$d400 data
|
||||
SID_Voice1_Freq = $d400-$d402 data
|
||||
SID_Voice1_Pulse = $d402-$d404 data
|
||||
SID_Voice1_Ctrl = $d404 data
|
||||
SID_Voice1_AttackDecay = $d405 data
|
||||
SID_Voice1_SustainRelease = $d406 data
|
||||
SID_Voice2_Freq = $d407-$d409 data
|
||||
SID_Voice2_Pulse = $d409-$d40b data
|
||||
SID_Voice2_Ctrl = $d40b data
|
||||
SID_Voice2_AttackDecay = $d40c data
|
||||
SID_Voice2_SustainRelease = $d40d data
|
||||
SID_Voice3_Freq = $d40e-$d410 data
|
||||
SID_Voice3_Pulse = $d410-$d412 data
|
||||
SID_Voice3_Ctrl = $d412 data
|
||||
SID_Voice3_AttackDecay = $d413 data
|
||||
SID_Voice3_SustainRelease = $d414 data
|
||||
SID_Filter_Cutoff = $d415-$d417 data
|
||||
SID_Filter_Ctrl = $d417 data
|
||||
SID_Volume_Filter_Mode = $d418 data
|
||||
SID_Paddles = $d419-$d41b data
|
||||
SID_Voice3_Wave_Out = $d41b data
|
||||
SID_Voice3_ADSR_Out = $d41c data
|
||||
SID = $D41d-$D800 data
|
||||
ColorRam = $D800-$DC00 data
|
||||
CIA1_PortA_KBD_Joy2 = $dc00 data
|
||||
CIA1_PortB_KBD_Joy1 = $dc01 data
|
||||
CIA1_PortA_Data_Dir = $dc02 data
|
||||
CIA1_PortB_Data_Dir = $dc03 data
|
||||
CIA1_TimerA = $dc04-$dc06 data
|
||||
CIA1_TimerB = $dc06-$dc08 data
|
||||
CIA1_TimeOfDay = $dc08-$dc0c data
|
||||
CIA1_Serial_Shift = $dc0c data
|
||||
CIA1_Interrupt_Ctrl_Status = $dc0d data
|
||||
CIA1_TimerA_Ctrl = $dc0e data
|
||||
CIA1_TimerB_Ctrl = $dc0f data
|
||||
CIA1 = $DC10-$DD00 data
|
||||
CIA2_PortA_Serial = $dd00 data
|
||||
CIA2_PortB_RS232 = $dd01 data
|
||||
CIA2_PortA_Data_Dir = $dd02 data
|
||||
CIA2_PortB_Data_Dir = $dd03 data
|
||||
CIA2_TimerA = $dd04-$dd06 data
|
||||
CIA2_TimerB = $dd06-$dd08 data
|
||||
CIA2_TimeOfDay = $dd08-$dd0c data
|
||||
CIA2_Serial_Shift = $dd0c data
|
||||
CIA2_Interrupt_Ctrl_Status = $dd0d data
|
||||
CIA2_TimerA_Ctrl = $dd0e data
|
||||
CIA2_TimerB_Ctrl = $dd0f data
|
||||
CIA2 = $dd10-$de00 data
|
||||
IO_Area1 = $de00-$df00 data
|
||||
IO_Area2 = $df00-$e000 data
|
||||
NMIVector = $fffa-$fffc pointers vector to NMI interrupt
|
||||
ResetVector = $fffc-$fffe pointers vector to reset address
|
||||
IntVector = $fffe-$10000 pointers vector to interrupt address
|
@ -1,158 +0,0 @@
|
||||
6510_Port_Data_Direction = 0 data
|
||||
6510_Port_Data = 1 data
|
||||
C64_System_Interrupt = $314-$316 data
|
||||
C64_System_NMI = $318-$31a data
|
||||
Vic_Sprite_Pos = $d000-$d011 data
|
||||
Vic_Screen_Ctrl = $d011 data
|
||||
Vic_Raster_Line = $d012 data
|
||||
Vic_Light_Pen = $d013-$d015 data
|
||||
Vic_Sprite_Enable = $d015 data
|
||||
Vic_Sprite_Ctrl = $d016 data
|
||||
Vic_Sprite_Height_Dbl = $d017 data
|
||||
Vic_Memory_Setup = $d018 data
|
||||
Vic_Int_Status = $d019-$d01b data
|
||||
Vic_Sprite_Pri = $d01b data
|
||||
Vic_Sprite_MultiCol = $d01C data
|
||||
Vic_Sprite_Width_Dbl = $d01d data
|
||||
Vic_Sprite_Sprite_Coll = $d01e data
|
||||
Vic_Sprite_Background_Coll = $d01f data
|
||||
Vic_Border_Color = $d020 data
|
||||
Vic_Back_Color = $d021-$d025 data
|
||||
Vic_Sprite_Color_Extra = $d025-$d027 data
|
||||
Vic_Sprite_Color = $d027-$d02f data
|
||||
Vic = $d02f-$d400 data
|
||||
SID_Voice1_Freq = $d400-$d402 data
|
||||
SID_Voice1_Pulse = $d402-$d404 data
|
||||
SID_Voice1_Ctrl = $d404 data
|
||||
SID_Voice1_AttackDecay = $d405 data
|
||||
SID_Voice1_SustainRelease = $d406 data
|
||||
SID_Voice2_Freq = $d407-$d409 data
|
||||
SID_Voice2_Pulse = $d409-$d40b data
|
||||
SID_Voice2_Ctrl = $d40b data
|
||||
SID_Voice2_AttackDecay = $d40c data
|
||||
SID_Voice2_SustainRelease = $d40d data
|
||||
SID_Voice3_Freq = $d40e-$d410 data
|
||||
SID_Voice3_Pulse = $d410-$d412 data
|
||||
SID_Voice3_Ctrl = $d412 data
|
||||
SID_Voice3_AttackDecay = $d413 data
|
||||
SID_Voice3_SustainRelease = $d414 data
|
||||
SID_Filter_Cutoff = $d415-$d417 data
|
||||
SID_Filter_Ctrl = $d417 data
|
||||
SID_Volume_Filter_Mode = $d418 data
|
||||
SID_Paddles = $d419-$d41b data
|
||||
SID_Voice3_Wave_Out = $d41b data
|
||||
SID_Voice3_ADSR_Out = $d41c data
|
||||
SID = $D41d-$D800 data
|
||||
ColorRam = $D800-$DC00 data
|
||||
CIA1_PortA_KBD_Joy2 = $dc00 data
|
||||
CIA1_PortB_KBD_Joy1 = $dc01 data
|
||||
CIA1_PortA_Data_Dir = $dc02 data
|
||||
CIA1_PortB_Data_Dir = $dc03 data
|
||||
CIA1_TimerA = $dc04-$dc06 data
|
||||
CIA1_TimerB = $dc06-$dc08 data
|
||||
CIA1_TimeOfDay = $dc08-$dc0c data
|
||||
CIA1_Serial_Shift = $dc0c data
|
||||
CIA1_Interrupt_Ctrl_Status = $dc0d data
|
||||
CIA1_TimerA_Ctrl = $dc0e data
|
||||
CIA1_TimerB_Ctrl = $dc0f data
|
||||
CIA1 = $DC10-$DD00 data
|
||||
CIA2_PortA_Serial = $dd00 data
|
||||
CIA2_PortB_RS232 = $dd01 data
|
||||
CIA2_PortA_Data_Dir = $dd02 data
|
||||
CIA2_PortB_Data_Dir = $dd03 data
|
||||
CIA2_TimerA = $dd04-$dd06 data
|
||||
CIA2_TimerB = $dd06-$dd08 data
|
||||
CIA2_TimeOfDay = $dd08-$dd0c data
|
||||
CIA2_Serial_Shift = $dd0c data
|
||||
CIA2_Interrupt_Ctrl_Status = $dd0d data
|
||||
CIA2_TimerA_Ctrl = $dd0e data
|
||||
CIA2_TimerB_Ctrl = $dd0f data
|
||||
CIA2 = $dd10-$de00 data
|
||||
IO_Area1 = $de00-$df00 data
|
||||
IO_Area2 = $df00-$e000 data
|
||||
|
||||
; from sta.c64.org
|
||||
|
||||
KRN_SCINIT_JMP = $FF81 code Initialize VIC; restore default input/output to keyboard/screen; clear screen; set PAL/NTSC switch and interrupt timer.
|
||||
KRN_SCINIT = $FF5B code Initialize VIC; restore default input/output to keyboard/screen; clear screen; set PAL/NTSC switch and interrupt timer.
|
||||
KRN_IOINIT_JMP = $FF84 code Initialize CIA's, SID volume; setup memory configuration; set and start interrupt timer.
|
||||
KRN_IOINIT= $FDA3 code Initialize CIA's, SID volume; setup memory configuration; set and start interrupt timer.
|
||||
KRN_RAMTAS_JMP = $FF87 code Clear memory addresses $0002-$0101 and $0200-$03FF; run memory test and set start and end address of BASIC work area accordingly; set screen memory to $0400 and datasette buffer to $033C.
|
||||
KRN_RAMTAS = FD50 code Clear memory addresses $0002-$0101 and $0200-$03FF; run memory test and set start and end address of BASIC work area accordingly; set screen memory to $0400 and datasette buffer to $033C.
|
||||
KRN_RESTOR_JMP = $FF8A code Fill vector table at memory addresses $0314-$0333 with default values.
|
||||
KRN_RESTOR = $FD15 code Fill vector table at memory addresses $0314-$0333 with default values.
|
||||
KRN_VECTOR_JMP = $FF8D code Copy vector table at memory addresses $0314-$0333 from or into user table.
|
||||
KRN_VECTOR = $FD1A code Copy vector table at memory addresses $0314-$0333 from or into user table.
|
||||
KRN_SETMSG_JMP = $FF90 code Set system error display switch at memory address $009D.
|
||||
KRN_SETMSG = $FE18 code Set system error display switch at memory address $009D.
|
||||
KRN_LSTNSA_JMP = $FF93 code Send LISTEN secondary address to serial bus. (Must call LISTEN beforehands.)
|
||||
KRN_LSTNSA = $EDB9. code Send LISTEN secondary address to serial bus. (Must call LISTEN beforehands.)
|
||||
KRN_TALKSA_JMP = $FF96 code Send TALK secondary address to serial bus. (Must call TALK beforehands.)
|
||||
KRN_TALKSA = $EDC7 code Send TALK secondary address to serial bus. (Must call TALK beforehands.)
|
||||
KRN_MEMBOT_JMP = $FF99 code Save or restore start address of BASIC work area.
|
||||
KRN_MEMBOT = $FE25 code Save or restore start address of BASIC work area.
|
||||
KRN_MEMTOP_JMP = $FF9C code Save or restore end address of BASIC work area.
|
||||
KRN_MEMTOP = $FE34 code Save or restore end address of BASIC work area.
|
||||
KRN_SCNKEY_JMP = $FF9F code Query keyboard; put current matrix code into memory address $00CB, current status of shift keys into memory address $028D and PETSCII code into keyboard buffer.
|
||||
KRN_SCNKEY = $EA87 code Query keyboard; put current matrix code into memory address $00CB, current status of shift keys into memory address $028D and PETSCII code into keyboard buffer.
|
||||
KRN_SETTMO_JMP = $FFA2 code Unknown. (Set serial bus timeout.)
|
||||
KRN_SETTMO = $FE21 code Unknown. (Set serial bus timeout.)
|
||||
KRN_IECIN_JMP = $FFA5 code Read byte from serial bus. (Must call TALK and TALKSA beforehands.)
|
||||
KRN_IECIN = $EE13 code Read byte from serial bus. (Must call TALK and TALKSA beforehands.)
|
||||
KRN_IECOUT_JMP = $FFA8 code Write byte to serial bus. (Must call LISTEN and LSTNSA beforehands.)
|
||||
KRN_IECOUT = $EDDD code Write byte to serial bus. (Must call LISTEN and LSTNSA beforehands.)
|
||||
KRN_UNTALK_JMP = $FFAB code Send UNTALK command to serial bus.
|
||||
KRN_UNTALK = $EDEF code Send UNTALK command to serial bus.
|
||||
KRN_UNLSTN_JMP = $FFAE code Send UNLISTEN command to serial bus.
|
||||
KRN_UNLSTN = $EDFE code Send UNLISTEN command to serial bus.
|
||||
KRN_LISTEN_JMP = $FFB1 code Send LISTEN command to serial bus.
|
||||
KRN_LISTEN = $ED0C code Send LISTEN command to serial bus.
|
||||
KRN_TALK_JMP = $FFB4 code Send TALK command to serial bus.
|
||||
KRN_TALK = $ED09 code Send TALK command to serial bus.
|
||||
KRN_READST_JMP = $FFB7 code Fetch status of current input/output device, value of ST variable. (For RS232, status is cleared.)
|
||||
KRN_READST = $FE07 code Fetch status of current input/output device, value of ST variable. (For RS232, status is cleared.)
|
||||
KRN_SETLFS_JMP = $FFBA code Set file parameters.
|
||||
KRN_SETLFS = $FE00 code Set file parameters.
|
||||
KRN_SETNAM_JMP = $FFBD code Set file name parameters.
|
||||
KRN_SETNAM = $FDF9 code Set file name parameters.
|
||||
KRN_OPEN_JMP = $FFC0 code Open file. (Must call SETLFS and SETNAM beforehands.)
|
||||
KRN_OPEN = $F34A code Open file. (Must call SETLFS and SETNAM beforehands.)
|
||||
KRN_CLOSE_JMP = $FFC3 code Close file.
|
||||
KRN_CLOSE = $F291 code Close file.
|
||||
KRN_CHKIN_JMP = $FFC6 code Define file as default input. (Must call OPEN beforehands.)
|
||||
KRN_CHKIN = $F20E code Define file as default input. (Must call OPEN beforehands.)
|
||||
KRN_CHKOUT_JMP = $FFC9 code Define file as default output. (Must call OPEN beforehands.)
|
||||
KRN_CHKOUT = $F250 code Define file as default output. (Must call OPEN beforehands.)
|
||||
KRN_CLRCHN_JMP = $FFCC code Close default input/output files (for serial bus, send UNTALK and/or UNLISTEN); restore default input/output to keyboard/screen.
|
||||
KRN_CLRCHN = $F333 code Close default input/output files (for serial bus, send UNTALK and/or UNLISTEN); restore default input/output to keyboard/screen.
|
||||
KRN_CHRIN_JMP = $FFCF code Read byte from default input (for keyboard, read a line from the screen). (If not keyboard, must call OPEN and CHKIN beforehands.)
|
||||
KRN_CHRIN = $F157 code Read byte from default input (for keyboard, read a line from the screen). (If not keyboard, must call OPEN and CHKIN beforehands.)
|
||||
KRN_CHROUT_JMP = $FFD2 code Write byte to default output. (If not screen, must call OPEN and CHKOUT beforehands.)
|
||||
KRN_CHROUT = $F1CA code Write byte to default output. (If not screen, must call OPEN and CHKOUT beforehands.)
|
||||
KRN_LOAD_JMP = $FFD5 code Load or verify file. (Must call SETLFS and SETNAM beforehands.)
|
||||
KRN_LOAD = $F49E code Load or verify file. (Must call SETLFS and SETNAM beforehands.)
|
||||
KRN_SAVE_JMP = $FFD8 code Save file. (Must call SETLFS and SETNAM beforehands.)
|
||||
KRN_SAVE = $F5DD code Save file. (Must call SETLFS and SETNAM beforehands.)
|
||||
KRN_SETTIM_JMP = $FFDB code Set Time of Day, at memory address $00A0-$00A2.
|
||||
KRN_SETTIM = $F6E4 code Set Time of Day, at memory address $00A0-$00A2.
|
||||
KRN_RDTIM_JMP = $FFDE code read Time of Day, at memory address $00A0-$00A2.
|
||||
KRN_RDTIM = $F6DD code read Time of Day, at memory address $00A0-$00A2.
|
||||
KRN_STOP_JMP = $FFE1 code Query Stop key indicator, at memory address $0091; if pressed, call CLRCHN and clear keyboard buffer.
|
||||
KRN_STOP = $F6ED code Query Stop key indicator, at memory address $0091; if pressed, call CLRCHN and clear keyboard buffer.
|
||||
KRN_GETIN_JMP = $FFE4 code Read byte from default input. (If not keyboard, must call OPEN and CHKIN beforehands.)
|
||||
KRN_GETIN = $F13E code Read byte from default input. (If not keyboard, must call OPEN and CHKIN beforehands.)
|
||||
KRN_CLALL_JMP = $FFE7 code Clear file table; call CLRCHN.
|
||||
KRN_CLALL = $F32F code Clear file table; call CLRCHN.
|
||||
KRN_UDTIM_JMP = $FFEA code Update Time of Day, at memory address $00A0-$00A2, and Stop key indicator, at memory address $0091.
|
||||
KRN_UDTIM = $F69B code Update Time of Day, at memory address $00A0-$00A2, and Stop key indicator, at memory address $0091.
|
||||
KRN_SCREEN_JMP = $FFED code Fetch number of screen rows and columns.
|
||||
KRN_SCREEN = $E505 code Fetch number of screen rows and columns.
|
||||
KRN_PLOT_JMP = $FFF0 code Save or restore cursor position.
|
||||
KRN_PLOT = $E50A code Save or restore cursor position.
|
||||
KRN_IOBASE_JMP = $FFF3 code Fetch CIA #1 base address.
|
||||
KRN_IOBASE = $E500 code Fetch CIA #1 base address.
|
||||
|
||||
NMIVector = $fffa-$fffc pointers vector to NMI interrupt
|
||||
ResetVector = $fffc-$fffe pointers vector to reset address
|
||||
IntVector = $fffe-$10000 pointers vector to interrupt address
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user