; ; 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 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 ; --------------------------------------------------------------------------- ; 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 ; 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 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