2009-09-25 06:21:14 +00:00
|
|
|
|
|
|
|
;-----------------------------------------------------------------------------
|
2020-06-18 19:44:42 +00:00
|
|
|
; Zero page
|
2009-09-25 06:21:14 +00:00
|
|
|
|
2013-05-09 11:56:54 +00:00
|
|
|
WNDLFT := $20 ; Text window left
|
|
|
|
WNDWDTH := $21 ; Text window width
|
|
|
|
WNDTOP := $22 ; Text window top
|
|
|
|
WNDBTM := $23 ; Text window bottom+1
|
|
|
|
CH := $24 ; Cursor horizontal position
|
|
|
|
CV := $25 ; Cursor vertical position
|
|
|
|
BASL := $28 ; Text base address low
|
|
|
|
BASH := $29 ; Text base address high
|
|
|
|
INVFLG := $32 ; Normal/inverse(/flash)
|
|
|
|
PROMPT := $33 ; Used by GETLN
|
|
|
|
RNDL := $4E ; Random counter low
|
|
|
|
RNDH := $4F ; Random counter high
|
|
|
|
HIMEM := $73 ; Highest available memory address+1
|
2009-09-25 06:21:14 +00:00
|
|
|
|
|
|
|
;-----------------------------------------------------------------------------
|
|
|
|
; Vectors
|
|
|
|
|
2013-05-09 11:56:54 +00:00
|
|
|
DOSWARM := $03D0 ; DOS warmstart vector
|
|
|
|
BRKVec := $03F0 ; Break vector
|
|
|
|
SOFTEV := $03F2 ; Vector for warm start
|
|
|
|
PWREDUP := $03F4 ; This must be = EOR #$A5 of SOFTEV+1
|
2009-09-25 06:21:14 +00:00
|
|
|
|
|
|
|
;-----------------------------------------------------------------------------
|
|
|
|
; Hardware
|
|
|
|
|
|
|
|
; Keyboard input
|
2013-05-09 11:56:54 +00:00
|
|
|
KBD := $C000 ; Read keyboard
|
|
|
|
KBDSTRB := $C010 ; Clear keyboard strobe
|
2009-09-25 06:21:14 +00:00
|
|
|
|
2020-06-18 19:44:42 +00:00
|
|
|
; 80 column video
|
2013-05-09 11:56:54 +00:00
|
|
|
CLR80COL:= $C000 ; Disable 80 column store
|
|
|
|
SET80COL:= $C001 ; Enable 80 column store
|
|
|
|
RD80COL := $C018 ; >127 if 80 column store enabled
|
2009-09-25 06:21:14 +00:00
|
|
|
RD80VID := $C01F ; >127 if 80 column video enabled
|
|
|
|
|
2020-06-18 19:44:42 +00:00
|
|
|
; Character set
|
2009-09-25 06:21:14 +00:00
|
|
|
CLRALTCHAR := $C00E ; Normal Apple II char set
|
|
|
|
SETALTCHAR := $C00F ; Norm/inv LC, no flash
|
|
|
|
ALTCHARSET := $C01E ; >127 if alt charset switched in
|
|
|
|
|
2020-06-18 19:44:42 +00:00
|
|
|
; Language card
|
2013-05-09 11:56:54 +00:00
|
|
|
RDLCBNK2:= $C011 ; >127 if LC bank 2 in use
|
|
|
|
RDLCRAM := $C012 ; >127 if LC is read enabled
|
|
|
|
ROMIN := $C081 ; Swap in D000-FFFF ROM
|
|
|
|
LCBANK2 := $C083 ; Swap in LC bank 2
|
|
|
|
LCBANK1 := $C08B ; Swap in LC bank 1
|
2009-09-25 06:21:14 +00:00
|
|
|
|
2020-06-18 19:44:42 +00:00
|
|
|
; Vertical blanking
|
|
|
|
RDVBLBAR := $C019 ; >127 if not vertical blanking
|
|
|
|
RDVBLMSK := $C041 ; >127 if VBL interrupts enabled
|
|
|
|
DISVBL := $C05A ; Disable VBL interrupts
|
|
|
|
ENVBL := $C05B ; Enable VBL interrupts
|
|
|
|
|
|
|
|
; Video mode
|
|
|
|
TXTCLR := $C050 ; Display graphics
|
|
|
|
TXTSET := $C051 ; Display text
|
|
|
|
MIXCLR := $C052 ; Disable 4 lines of text
|
|
|
|
MIXSET := $C053 ; Enable 4 lines of text
|
|
|
|
LOWSCR := $C054 ; Page 1
|
|
|
|
HISCR := $C055 ; Page 2
|
|
|
|
LORES := $C056 ; Lores graphics
|
|
|
|
HIRES := $C057 ; Hires graphics
|
|
|
|
DHIRESON := $C05E ; Enable double-width graphics
|
|
|
|
DHIRESOFF := $C05F ; Disable double-width graphics
|
2009-09-25 06:21:14 +00:00
|
|
|
|
|
|
|
; Game controller
|
2020-06-06 13:14:56 +00:00
|
|
|
TAPEIN := $C060 ; Read casette input / Switch input 3
|
|
|
|
BUTN0 := $C061 ; Switch input 0 / Open-Apple key
|
|
|
|
BUTN1 := $C062 ; Switch input 1 / Closed-Apple key
|
|
|
|
BUTN2 := $C063 ; Switch input 2 / Shift key
|
|
|
|
PADDL0 := $C064 ; Analog input 0
|
|
|
|
PADDL1 := $C065 ; Analog input 1
|
|
|
|
PADDL2 := $C066 ; Analog input 2
|
|
|
|
PADDL3 := $C067 ; Analog input 3
|
|
|
|
PTRIG := $C070 ; Analog input reset
|
2020-05-04 20:22:32 +00:00
|
|
|
|
2020-06-06 13:14:56 +00:00
|
|
|
; Input/Output Unit
|
2020-06-18 19:44:42 +00:00
|
|
|
IOUDISON := $C07E ; Disable IOU
|
|
|
|
IOUDISOFF := $C07F ; Enable IOU
|
2020-06-06 13:14:56 +00:00
|
|
|
|
|
|
|
; Control Your Apple
|
|
|
|
CYAREG := $C036 ; Bits 0-3=disk detect 4=shadow all banks 7=fast
|