]> git.sur5r.net Git - cc65/blobdiff - libsrc/apple2/apple2.inc
Make screensize() fetch the values dynamically instead of using variables
[cc65] / libsrc / apple2 / apple2.inc
index 8a8321b3ec5b75c11da34fa8218bfdd00ffa3234..7002f7aadc26d9aecad93ccf253dedfed0239475 100644 (file)
@@ -1,17 +1,39 @@
-; Break vector
-BRKVec  = $03F0
 
-; Goto Dos
-RESTOR =       $03D0
+;-----------------------------------------------------------------------------
+; Zero page stuff
 
-; Top of available memory
-; This is actually for DOS 3.3 need to change it for ProDos
-TOPMEM  =       $9600
+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
+
+;-----------------------------------------------------------------------------
+; Vectors
+
+BRKVec  =       $03F0           ; Break vector
+RESTOR =       $03D0           ; Goto Dos
+
+; ---------------------------------------------------------------------------
+; Screen size
+
+XSIZE           = 40
+YSIZE           = 24
+
+;-----------------------------------------------------------------------------
+; Hardware
 
 ; Soft switches
 ;
-; write to USEROM to enable apple rom C000-CFFF
-USEROM =       $C007
+; Write to USEROM to enable apple rom C000-CFFF
+USEROM =       $C007
+
 ; 80 column card switches
 C80ON  =       $C00C
 C80OFF =       $C00D
@@ -20,25 +42,66 @@ PG2OFF      =       $C054
 PG2ON  =       $C055
 RDPAGE2        =       $C01C
 
-; Text routines
-MIN_X  =       $20
-MAX_X  =       $21
-MIN_Y  =       $22
-MAX_Y  =       $23
-CH     =       $24
-CV     =       $25
-BASL   =       $28
-TEXTTYP        =       $32
-MEMSIZE        =       $73             ; Highest free RAM location
-HOME   =       $FC58
-VTABZ  =       $FC24
-COUT    =      $FDED
-
 ; Keyboard entries
 RDKEY  =       $FD0C
 CLEAR_KEY_STROBE = $C010
 KEY_STROBE       = $C000
 
 ; Game controller
-OPEN_APPLE = $C061
-CLOSED_APPLE = $C062
+OPEN_APPLE =    $C061
+CLOSED_APPLE =  $C062
+
+;-----------------------------------------------------------------------------
+; ROM routines
+
+; Text output and helpers
+HOME   =       $FC58
+VTABZ  =       $FC24
+COUT    =      $FDED
+
+; Graphics entry points, by cbmnut (applenut??) cbmnut@hushmail.com
+WHITE   = $01           ; White for $1c, I think...
+
+COLOR   = $1C           ; Current plot color
+
+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
+                        ; plotting a point.
+                        ; Enter with (A) = Y-coordinate, and
+                        ; (Y,X) = X-coordinate.
+
+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
+                        ; point or line destination to:
+                        ; (X,A) = X-coordinate, and
+                        ; (Y) = Y-coordinate.
+
+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
+                        ; address of the shape table, and (A) =
+                        ; the rotation factor.  Uses the current
+                        ; color.
+
+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)
+                        ; must be between 0 and 7.