]> git.sur5r.net Git - cc65/blob - libsrc/apple2/apple2.inc
Use ROM variables MAX_X/MAX_Y
[cc65] / libsrc / apple2 / apple2.inc
1
2 ;-----------------------------------------------------------------------------
3 ; Zero page stuff
4
5 MIN_X   =       $20
6 MAX_X   =       $21
7 MIN_Y   =       $22
8 MAX_Y   =       $23
9 CH      =       $24
10 CV      =       $25
11 BASL    =       $28
12 TEXTTYP =       $32
13 RNDL    =       $4E             ; Random value, low byte
14 RNDH    =       $4F             ; Random value, high byte
15 MEMSIZE =       $73             ; Highest free RAM location
16
17 ;-----------------------------------------------------------------------------
18 ; Vectors
19
20 BRKVec  =       $03F0           ; Break vector
21 RESTOR  =       $03D0           ; Goto Dos
22
23 ;-----------------------------------------------------------------------------
24 ; Hardware
25
26 ; Soft switches
27 ;
28 ; Write to USEROM to enable apple rom C000-CFFF
29 USEROM  :=      $C007
30
31 ; 80 column card switches
32 C80ON   :=      $C00C
33 C80OFF  :=      $C00D
34 RD80COL :=      $C01F
35 PG2OFF  :=      $C054
36 PG2ON   :=      $C055
37 RDPAGE2 :=      $C01C
38
39 ; Keyboard entries
40 CLEAR_KEY_STROBE:= $C010
41 KEY_STROBE      := $C000
42
43 ; Game controller
44 OPEN_APPLE      := $C061
45 CLOSED_APPLE    := $C062
46
47 ;-----------------------------------------------------------------------------
48 ; ROM routines
49
50 RDKEY   :=      $FD0C
51
52 ; Text output and helpers
53 HOME    :=      $FC58
54 VTABZ   :=      $FC24
55 COUT    :=      $FDED
56
57 ; Graphics entry points, by cbmnut (applenut??) cbmnut@hushmail.com
58 WHITE   = $01           ; White for $1c, I think...
59 COLOR   = $1C           ; Current plot color
60
61 TEXT    := $F399        ; Return to text screen
62 HGR2    := $F3D8        ; Initialize and clear hi-res page 2.
63 HGR     := $F3E2        ; Initialize and clear hi-res page 1.
64 HCLR    := $F3F2        ; Clear the current hi-res screen to black.
65 BKGND   := $F3F6        ; Clear the current hi-res screen to the
66                         ; last plotted color (from ($1C).
67 HPOSN   := $F411        ; Positions the hi-res cursor without
68                         ; plotting a point.
69                         ; Enter with (A) = Y-coordinate, and
70                         ; (Y,X) = X-coordinate.
71 HPLOT   := $F457        ; Calls HPOSN and tries to plot a dot at
72                         ; the cursor's position.  If you are
73                         ; trying to plot a non-white color at
74                         ; a complementary color position, no
75                         ; dot will be plotted.
76 HLIN    := $F53A        ; Draws a line from the last plotted
77                         ; point or line destination to:
78                         ; (X,A) = X-coordinate, and
79                         ; (Y) = Y-coordinate.
80 HFIND   := $F5CB        ; Converts the hi-res coursor's position
81                         ; back to X- and Y-coordinates; stores
82                         ; X-coordinate at $E0,E1 and Y-coordinate
83                         ; at $E2.
84 DRAW    := $F601        ; Draws a shape.  Enter with (Y,X) = the
85                         ; address of the shape table, and (A) =
86                         ; the rotation factor.  Uses the current
87                         ; color.
88 XDRAW   := $F65D        ; Draws a shape by inverting the existing
89                         ; color of the dots the shape draws over.
90                         ; Same entry parameters as DRAW.
91 SETHCOL := $F6EC        ; Set the hi-res color to (X), where (X)
92                         ; must be between 0 and 7.
93 PREAD   := $FB1E        ; Read paddle in X, return AD conv. value in Y