Reworked version by Oliver Schmidt
git-svn-id: svn://svn.cc65.org/cc65/trunk@2913 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -2,93 +2,89 @@
|
||||
;-----------------------------------------------------------------------------
|
||||
; Zero page stuff
|
||||
|
||||
MIN_X = $20
|
||||
MAX_X = $21
|
||||
MIN_Y = $22
|
||||
MAX_Y = $23
|
||||
CH = $24
|
||||
CV = $25
|
||||
BASL = $28
|
||||
TEXTTYP = $32
|
||||
RNDL = $4E ; Random value, low byte
|
||||
RNDH = $4F ; Random value, high byte
|
||||
MEMSIZE = $73 ; Highest free RAM location
|
||||
WNDLFT := $20 ; Left edge of text window
|
||||
WNDWDTH := $21 ; Right edge of text window
|
||||
WNDTOP := $22 ; Top of text window
|
||||
WNDBTM := $23 ; Bottom+1 of text window
|
||||
CH := $24 ; Cursor horizontal position
|
||||
CV := $25 ; Cursor vertical position
|
||||
BASL := $28 ; Text base address
|
||||
INVFLG := $32 ; Normal/inverse(/flash)
|
||||
RNDL := $4E ; Random counter low
|
||||
RNDH := $4F ; Random counter high
|
||||
HIMEM := $73 ; Highest available memory address+1
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Vectors
|
||||
|
||||
BRKVec = $03F0 ; Break vector
|
||||
RESTOR = $03D0 ; Goto Dos
|
||||
DOSWARM := $03D0 ; DOS warmstart vector
|
||||
BRKVec := $03F0 ; Break vector
|
||||
MLI := $BF00 ; ProDOS Machine Language Interface
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Hardware
|
||||
|
||||
; Soft switches
|
||||
;
|
||||
; Write to USEROM to enable apple rom C000-CFFF
|
||||
USEROM := $C007
|
||||
; Keyboard entries
|
||||
KBD := $C000 ; Read keyboard
|
||||
KBDSTRB := $C010 ; Clear keyboard strobe
|
||||
|
||||
; 80 column card switches
|
||||
C80ON := $C00C
|
||||
C80OFF := $C00D
|
||||
RD80COL := $C01F
|
||||
MIXOFF := $C052
|
||||
PG2OFF := $C054
|
||||
PG2ON := $C055
|
||||
RDPAGE2 := $C01C
|
||||
CLRALTCHAR := $C00E ; Normal Apple II char set
|
||||
SETALTCHAR := $C00F ; Norm/inv LC, no flash
|
||||
ALTCHARSET := $C01E ; >127 if alt charset switched in
|
||||
RD80VID := $C01F ; >127 if 80 column video enabled
|
||||
|
||||
; Keyboard entries
|
||||
CLEAR_KEY_STROBE:= $C010
|
||||
KEY_STROBE := $C000
|
||||
; Video soft switches
|
||||
MIXCLR := $C052 ; Disable 4 lines of text
|
||||
MIXSET := $C053 ; Enable 4 lines of text
|
||||
LOWSCR := $C054 ; Page 1
|
||||
HISCR := $C055 ; Page 2
|
||||
|
||||
; Game controller
|
||||
OPEN_APPLE := $C061
|
||||
CLOSED_APPLE := $C062
|
||||
BUTN0 := $C061 ; Open-Apple Key
|
||||
BUTN1 := $C062 ; Closed-Apple Key
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; ROM routines
|
||||
|
||||
RDKEY := $FD0C
|
||||
PREAD := $FB1E ; Read paddle in X, return AD conv. value in Y
|
||||
RDKEY := $FD0C ; Display prompt and read key from user input routine
|
||||
|
||||
; Text output and helpers
|
||||
HOME := $FC58
|
||||
VTABZ := $FC24
|
||||
COUT := $FDED
|
||||
VTABZ := $FC24 ; Calculate screen address for row in accumulator
|
||||
HOME := $FC58 ; Clear current text screen
|
||||
COUT := $FDED ; Vector to user output routine
|
||||
|
||||
; Graphics entry points, by cbmnut (applenut??) cbmnut@hushmail.com
|
||||
WHITE = $01 ; White for $1c, I think...
|
||||
COLOR = $1C ; Current plot color
|
||||
|
||||
TEXT := $F399 ; Return to text screen
|
||||
HGR2 := $F3D8 ; Initialize and clear hi-res page 2.
|
||||
HGR := $F3E2 ; Initialize and clear hi-res page 1.
|
||||
HCLR := $F3F2 ; Clear the current hi-res screen to black.
|
||||
BKGND := $F3F6 ; Clear the current hi-res screen to the
|
||||
TEXT := $F399 ; Return to text screen
|
||||
HGR2 := $F3D8 ; Initialize and clear hi-res page 2.
|
||||
HGR := $F3E2 ; Initialize and clear hi-res page 1.
|
||||
HCLR := $F3F2 ; Clear the current hi-res screen to black.
|
||||
BKGND := $F3F6 ; Clear the current hi-res screen to the
|
||||
; last plotted color (from ($1C).
|
||||
HPOSN := $F411 ; Positions the hi-res cursor without
|
||||
HPOSN := $F411 ; Positions the hi-res cursor without
|
||||
; plotting a point.
|
||||
; Enter with (A) = Y-coordinate, and
|
||||
; (Y,X) = X-coordinate.
|
||||
HPLOT := $F457 ; Calls HPOSN and tries to plot a dot at
|
||||
HPLOT := $F457 ; Calls HPOSN and tries to plot a dot at
|
||||
; the cursor's position. If you are
|
||||
; trying to plot a non-white color at
|
||||
; a complementary color position, no
|
||||
; dot will be plotted.
|
||||
HLIN := $F53A ; Draws a line from the last plotted
|
||||
HLIN := $F53A ; Draws a line from the last plotted
|
||||
; point or line destination to:
|
||||
; (X,A) = X-coordinate, and
|
||||
; (Y) = Y-coordinate.
|
||||
HFIND := $F5CB ; Converts the hi-res coursor's position
|
||||
HFIND := $F5CB ; Converts the hi-res coursor's position
|
||||
; back to X- and Y-coordinates; stores
|
||||
; X-coordinate at $E0,E1 and Y-coordinate
|
||||
; at $E2.
|
||||
DRAW := $F601 ; Draws a shape. Enter with (Y,X) = the
|
||||
DRAW := $F601 ; Draws a shape. Enter with (Y,X) = the
|
||||
; address of the shape table, and (A) =
|
||||
; the rotation factor. Uses the current
|
||||
; color.
|
||||
XDRAW := $F65D ; Draws a shape by inverting the existing
|
||||
XDRAW := $F65D ; Draws a shape by inverting the existing
|
||||
; color of the dots the shape draws over.
|
||||
; Same entry parameters as DRAW.
|
||||
SETHCOL := $F6EC ; Set the hi-res color to (X), where (X)
|
||||
SETHCOL := $F6EC ; Set the hi-res color to (X), where (X)
|
||||
; must be between 0 and 7.
|
||||
PREAD := $FB1E ; Read paddle in X, return AD conv. value in Y
|
||||
|
||||
Reference in New Issue
Block a user