1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-23 04:30:10 +00:00
cc65/asminc/telestrat.inc
2017-02-25 22:10:13 +01:00

157 lines
4.3 KiB
PHP

;
; Oric Telemon definition
; Telemon 2.4 & Telemon 3.0
; For telemon 3.0 check http://orix.oric.org
;
; ---------------------------------------------------------------------------
; Constants
SCREEN_XSIZE = 40 ; screen columns
SCREEN_YSIZE = 28 ; screen rows
FUNCTKEY = $A5
FNAME_LEN = 11 ; maximum length of file-name
; ---------------------------------------------------------------------------
; Zero page
; ---------------------------------------------------------------------------
; Page 00
RES := $00
RESB := $02
TR0 := $0C
TR1 := $0D
PTR_READ_DEST := $2C ; used for XFREAD and XWRITE only in telemon 3.0
HRSX := $46
HRSY := $47
HRS1 := $4D
HRS2 := $4F
HRS3 := $51
HRS4 := $53
HRS5 := $55
; ---------------------------------------------------------------------------
; Low memory
; ---------------------------------------------------------------------------
; I/O locations
; 6522
.struct VIA ; Versatile Interface Adapter
.res $0300
PRB .byte ; Port Register B
PRA .byte ; Port Register A
DDRB .byte ; Data Direction Register B
DDRA .byte ; Data Direction Register A
T1 .word ; Timer 1
T1L .word ; Timer 1 Latch
T2 .word ; Timer 2
SR .byte ; Shift Register
ACR .byte ; Auxiliary Control Register
PCR .byte ; Peripheral Control Register
IFR .byte ; Interrupt Flags Register
IER .byte ; Interrupt Enable Register
PRA2 .byte ; Port Register A without handshaking
.endstruct
.struct VIA2 ; Versatile Interface Adapter
.res $0320
PRB .byte ; Port Register B
PRA .byte ; Port Register A
DDRB .byte ; Data Direction Register B
DDRA .byte ; Data Direction Register A
T1 .word ; Timer 1
T1L .word ; Timer 1 Latch
T2 .word ; Timer 2
SR .byte ; Shift Register
ACR .byte ; Auxiliary Control Register
PCR .byte ; Peripheral Control Register
IFR .byte ; Interrupt Flags Register
IER .byte ; Interrupt Enable Register
PRA2 .byte ; Port Register A without handshaking
.endstruct
; 6551
.struct ACIA ; Asynchronous Communications Interface Adapter
.res $031C
DATA .byte
STATUS .byte
CMD .byte ; Command register
CTRL .byte ; Control register
.endstruct
SCREEN := $BB80
; ---------------------------------------------------------------------------
; ROM entries
; primitives telemon 2.4
XRD0 = $08
XRDW0 = $0C
XWR0 = $10
XWSTR0 = $14
XTEXT = $19
XHIRES = $1A
XFILLM = $1C
XMINMA = $1F
XFREAD = $27 ; only in TELEMON 3.0
XOPEN = $30 ; only in TELEMON 3.0
XCOSCR = $34 ; switch off cursor
XCSSCR = $35 ; switch on cursor
XCLOSE = $3A ; only in TELEMON 3.0 Close file
XFWRITE = $3B ; only in TELEMON 3.0 write file
XSONPS = $40
XOUPS = $42
XPLAY = $43
XSOUND = $44
XMUSIC = $45
XZAP = $46
XSHOOT = $47
XCIRCL = $8F
XCURSE = $90
XPAPER = $92
XINK = $93
XEXPLO = $9C
XPING = $9D
; ---------------------------------------------------------------------------
; Page $200
SCRX := $220
SCRY := $224
ADSCRL := $218
ADSCRH := $21C
; ---------------------------------------------------------------------------
; Page $500
BUFNOM := $517
BUFEDT := $590
MAX_BUFEDT_LENGTH=110
; Hardware
CH376_DATA :=$340
CH376_COMMAND :=$341
; MACRO
.macro BRK_TELEMON value
.byte $00,value
.endmacro