cc65/asminc/cbm610.inc

120 lines
2.5 KiB
PHP

;
; Zero page variables and I/O definitions for the CBM 610
;
; Taken from a kernal disassembly done by myself in 1987.
;
; 1998-09-28, Ullrich von Bassewitz
; 2014-04-02, Greg King
; ---------------------------------------------------------------------------
; Zeropage stuff
ExecReg := $00 ; Controls execution memory bank
IndReg := $01 ; Controls indirect indexed load-store bank
TXTPTR := $85 ; Far pointer into BASIC source code
FNAM := $90 ; Far pointer to LOAD/SAVE file-name
FNAM_LEN := $9D ; Holds length of file-name
; ---------------------------------------------------------------------------
; Screen size
XSIZE = 80
YSIZE = 25
; ---------------------------------------------------------------------------
; I/O definitions
; I/O $d800: CRTC 6545
.struct CRTC
ADDR .byte
DATA .byte
.endstruct
; I/O $db00: CIA 6526, Inter Process Communication
;
; IPCcia = $db00
.struct CIA
PRA .byte
PRB .byte
DDRA .byte
DDRB .byte
.union
.struct
TALO .byte
TAHI .byte
.endstruct
TA .word
.endunion
.union
.struct
TBLO .byte
TBHI .byte
.endstruct
TB .word
.endunion
TOD10 .byte
TODSEC .byte
TODMIN .byte
TODHR .byte
SDR .byte
ICR .byte
CRA .byte
CRB .byte
.endstruct
; I/O $dc00: CIA 6526
;
; cia = $dc00
; I/O $dd00: ACIA 6551
;
; acia = $dd00
.struct ACIA
DATA .byte
STATUS .byte
CMD .byte
CTRL .BYTE
.endstruct
; I/O $de00: Triport #1 6525
;
; tpi1 = $de00
.struct TPI
PRA .byte
PRB .byte
.union
PRC .byte
INT .byte
.endunion
DDRA .byte
DDRB .byte
.union
DDRC .byte
IMR .byte
.endunion
CR .byte
AIR .byte
.endstruct
; I/O $df00: Triport #2 6525
; tpi2 = $df00
;-----------------------------------------------------------------------------
BASIC_BUF := $FA5E ; Bank 1 location of command-line
BASIC_BUF_LEN = 162 ; Maximum length of command-line