New _randomize() function, do some cleanup on apple2.inc
git-svn-id: svn://svn.cc65.org/cc65/trunk@1496 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
f708a05d61
commit
2f3f1df00f
3 changed files with 88 additions and 56 deletions
|
@ -25,6 +25,7 @@ S_OBJS= _scrsize.o \
|
|||
ctype.o \
|
||||
cvline.o \
|
||||
kbhit.o \
|
||||
randomize.o \
|
||||
read.o \
|
||||
revers.o \
|
||||
where.o \
|
||||
|
|
|
@ -1,22 +1,7 @@
|
|||
; Break vector
|
||||
BRKVec = $03F0
|
||||
|
||||
; Goto Dos
|
||||
RESTOR = $03D0
|
||||
;-----------------------------------------------------------------------------
|
||||
; Zero page stuff
|
||||
|
||||
; Soft switches
|
||||
;
|
||||
; write to USEROM to enable apple rom C000-CFFF
|
||||
USEROM = $C007
|
||||
; 80 column card switches
|
||||
C80ON = $C00C
|
||||
C80OFF = $C00D
|
||||
RD80COL = $C01F
|
||||
PG2OFF = $C054
|
||||
PG2ON = $C055
|
||||
RDPAGE2 = $C01C
|
||||
|
||||
; Text routines
|
||||
MIN_X = $20
|
||||
MAX_X = $21
|
||||
MIN_Y = $22
|
||||
|
@ -25,10 +10,31 @@ 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
|
||||
HOME = $FC58
|
||||
VTABZ = $FC24
|
||||
COUT = $FDED
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Vectors
|
||||
|
||||
BRKVec = $03F0 ; Break vector
|
||||
RESTOR = $03D0 ; Goto Dos
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Hardware
|
||||
|
||||
; Soft switches
|
||||
;
|
||||
; Write to USEROM to enable apple rom C000-CFFF
|
||||
USEROM = $C007
|
||||
|
||||
; 80 column card switches
|
||||
C80ON = $C00C
|
||||
C80OFF = $C00D
|
||||
RD80COL = $C01F
|
||||
PG2OFF = $C054
|
||||
PG2ON = $C055
|
||||
RDPAGE2 = $C01C
|
||||
|
||||
; Keyboard entries
|
||||
RDKEY = $FD0C
|
||||
|
@ -36,52 +42,60 @@ CLEAR_KEY_STROBE = $C010
|
|||
KEY_STROBE = $C000
|
||||
|
||||
; Game controller
|
||||
OPEN_APPLE = $C061
|
||||
CLOSED_APPLE = $C062
|
||||
OPEN_APPLE = $C061
|
||||
CLOSED_APPLE = $C062
|
||||
|
||||
;Graphics entry points, by cbmnut (applenut??) cbmnut@hushmail.com
|
||||
WHITE = $01 ;white for $1c, I think...
|
||||
;-----------------------------------------------------------------------------
|
||||
; ROM routines
|
||||
|
||||
COLOR = $1C ;Current plot color
|
||||
; Text output and helpers
|
||||
HOME = $FC58
|
||||
VTABZ = $FC24
|
||||
COUT = $FDED
|
||||
|
||||
HGR2 = $F3D8 ;Initialize and clear hi-res page 2.
|
||||
; Graphics entry points, by cbmnut (applenut??) cbmnut@hushmail.com
|
||||
WHITE = $01 ; White for $1c, I think...
|
||||
|
||||
HGR = $F3E2 ;Initialize and clear hi-res page 1.
|
||||
COLOR = $1C ; Current plot color
|
||||
|
||||
HCLR = $F3F2 ;Clear the current hi-res screen to black.
|
||||
HGR2 = $F3D8 ; Initialize and clear hi-res page 2.
|
||||
|
||||
BKGND = $F3F6 ;Clear the current hi-res screen to the
|
||||
;last plotted color (from ($1C).
|
||||
HGR = $F3E2 ; Initialize and clear hi-res page 1.
|
||||
|
||||
HPOSN = $F411 ;Positions the hi-res cursor without
|
||||
;plotting a point.
|
||||
;Enter with (A) = Y-coordinate, and
|
||||
;(Y,X) = X-coordinate.
|
||||
HCLR = $F3F2 ; Clear the current hi-res screen to black.
|
||||
|
||||
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.
|
||||
BKGND = $F3F6 ; Clear the current hi-res screen to the
|
||||
; last plotted color (from ($1C).
|
||||
|
||||
HLIN = $F53A ;Draws a line from the last plotted
|
||||
;point or line destination to:
|
||||
;(X,A) = X-coordinate, and
|
||||
;(Y) = Y-coordinate.
|
||||
HPOSN = $F411 ; Positions the hi-res cursor without
|
||||
; plotting a point.
|
||||
; Enter with (A) = Y-coordinate, and
|
||||
; (Y,X) = X-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.
|
||||
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.
|
||||
|
||||
DRAW = $F601 ;Draws a shape. Enter with (Y,X) = the
|
||||
;address of the shape table, and (A) =
|
||||
;the rotation factor. Uses the current
|
||||
;color.
|
||||
HLIN = $F53A ; Draws a line from the last plotted
|
||||
; point or line destination to:
|
||||
; (X,A) = X-coordinate, and
|
||||
; (Y) = Y-coordinate.
|
||||
|
||||
XDRAW = $F65D ;Draws a shape by inverting the existing
|
||||
;color of the dots the shape draws over.
|
||||
;Same entry parameters as DRAW.
|
||||
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.
|
||||
|
||||
SETHCOL = $F6EC ;Set the hi-res color to (X), where (X)
|
||||
;must be between 0 and 7.
|
||||
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.
|
||||
|
|
17
libsrc/apple2/randomize.s
Normal file
17
libsrc/apple2/randomize.s
Normal file
|
@ -0,0 +1,17 @@
|
|||
;
|
||||
; Ullrich von Bassewitz, 07.11.2002
|
||||
;
|
||||
; void _randomize (void);
|
||||
; /* Initialize the random number generator */
|
||||
;
|
||||
|
||||
.export __randomize
|
||||
.import _srand
|
||||
|
||||
.include "apple2.inc"
|
||||
|
||||
__randomize:
|
||||
ldx RNDH ; Use random value supplied by ROM
|
||||
lda RNDL
|
||||
jmp _srand ; Initialize generator
|
||||
|
Loading…
Add table
Reference in a new issue