]> git.sur5r.net Git - cc65/blobdiff - asminc/atmos.inc
Added C64 Chameleon accelerator code and documentation.
[cc65] / asminc / atmos.inc
index dfbcd10de1dcab8298235a1ca32d8fdb35e4d290..8edcf7dc2e4b68bc435f3bb42bcf5f0d83651007 100644 (file)
 ;
-; Oric atmos zeropage and ROM definitions
+; Oric Atmos definitions
+; BASIC 1.1 addresses
 ;
 
 
+; ---------------------------------------------------------------------------
+; Constants
+
+SCREEN_XSIZE    = 40            ; screen columns
+SCREEN_YSIZE    = 28            ; screen rows
+
+FUNCTKEY        = $A5
+
+FNAME_LEN       = 16            ; maximum length of file-name
+
+
 ; ---------------------------------------------------------------------------
 ; Zero page
 
+SCRPTR          := $12
+BASIC_BUF       := $35
+CHARGOT         := $E8
+TXTPTR          := $E9
 
 
 ; ---------------------------------------------------------------------------
 ; Low memory
 
-CAPSLOCK        := $20C
-CURS_Y          := $268
-CURS_X          := $269
-STATUS          := $26A
-TIMER3          := $276
-KEYBUF          := $2DF
+MODEKEY         := $0209
+CAPSLOCK        := $020C        ; $7F = not locked, $FF = locked
+PATTERN         := $0213
+IRQVec          := $0245        ; "fast" interrupt vector
+JOINFLAG        := $025A        ; 0 = don't joiu, $4A = join BASIC programs
+VERIFYFLAG      := $025B        ; 0 = load, 1 = verify
+CURS_Y          := $0268
+CURS_X          := $0269
+STATUS          := $026A
+BACKGRND        := $026B
+FOREGRND        := $026C
+TIMER3          := $0276
+CFILE_NAME      := $027F
+CFOUND_NAME     := $0293
+FILESTART       := $02A9
+FILEEND         := $02AB
+AUTORUN         := $02AD        ; $00 = only load, $C7 = autorun
+LANGFLAG        := $02AE        ; $00 = BASIC, $80 = machine code
+LOADERR         := $02B1
+KEYBUF          := $02DF
+PARMERR         := $02E0
+PARAM1          := $02E1        ; & $02E2
+PARAM2          := $02E3        ; & $02E4
+PARAM3          := $02E5        ; & $02E6
+BANGVEC         := $02F5
 
 
 ; ---------------------------------------------------------------------------
-; ROM entries
+; I/O locations
 
-PRINT           := $F77C
+; 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
+
+; 6551
+.struct ACIA                    ; Asynchronous Communications Interface Adapter
+        .res    $031C
+DATA    .byte
+STATUS  .byte
+CMD     .byte                   ; Command register
+CTRL    .byte                   ; Control register
+.endstruct
+
+SCREEN          := $BB80
 
 
 ; ---------------------------------------------------------------------------
-; I/O
+; ROM entries
 
-SCREEN          := $BB80
+GETLINE         := $C592
+TEXT            := $EC21
+HIRES           := $EC33
+CURSET          := $F0C8
+CURMOV          := $F0FD
+DRAW            := $F110
+CHAR            := $F12D
+POINT           := $F1C8
+PAPER           := $F204
+INK             := $F210
+PRINT           := $F77C
+
+; Sound Effects
+PING            := $FA9F
+PING1           := $FA85
+SHOOT           := $FAB5
+SHOOT1          := $FA9B
+EXPLODE         := $FACB
+EXPLODE1        := $FAB1
+ZAP             := $FAE1
+ZAP1            := $FAC7
+TICK            := $FB14
+TICK1           := $FAFA
+TOCK            := $FB2A
+TOCK1           := $FB10