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:
cuz
2002-11-07 12:16:15 +00:00
parent f708a05d61
commit 2f3f1df00f
3 changed files with 88 additions and 56 deletions

View File

@@ -25,6 +25,7 @@ S_OBJS= _scrsize.o \
ctype.o \ ctype.o \
cvline.o \ cvline.o \
kbhit.o \ kbhit.o \
randomize.o \
read.o \ read.o \
revers.o \ revers.o \
where.o \ where.o \

View File

@@ -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 MIN_X = $20
MAX_X = $21 MAX_X = $21
MIN_Y = $22 MIN_Y = $22
@@ -25,10 +10,31 @@ CH = $24
CV = $25 CV = $25
BASL = $28 BASL = $28
TEXTTYP = $32 TEXTTYP = $32
RNDL = $4E ; Random value, low byte
RNDH = $4F ; Random value, high byte
MEMSIZE = $73 ; Highest free RAM location 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 ; Keyboard entries
RDKEY = $FD0C RDKEY = $FD0C
@@ -39,49 +45,57 @@ KEY_STROBE = $C000
OPEN_APPLE = $C061 OPEN_APPLE = $C061
CLOSED_APPLE = $C062 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 HGR = $F3E2 ; Initialize and clear hi-res page 1.
;last plotted color (from ($1C).
HPOSN = $F411 ;Positions the hi-res cursor without HCLR = $F3F2 ; Clear the current hi-res screen to black.
;plotting a point.
;Enter with (A) = Y-coordinate, and
;(Y,X) = X-coordinate.
HPLOT = $F457 ;Calls HPOSN and tries to plot a dot at BKGND = $F3F6 ; Clear the current hi-res screen to the
;the cursor's position. If you are ; last plotted color (from ($1C).
;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 HPOSN = $F411 ; Positions the hi-res cursor without
;point or line destination to: ; plotting a point.
;(X,A) = X-coordinate, and ; Enter with (A) = Y-coordinate, and
;(Y) = Y-coordinate. ; (Y,X) = X-coordinate.
HFIND = $F5CB ;Converts the hi-res coursor's position HPLOT = $F457 ; Calls HPOSN and tries to plot a dot at
;back to X- and Y-coordinates; stores ; the cursor's position. If you are
;X-coordinate at $E0,E1 and Y-coordinate ; trying to plot a non-white color at
;at $E2. ; a complementary color position, no
; dot will be plotted.
DRAW = $F601 ;Draws a shape. Enter with (Y,X) = the HLIN = $F53A ; Draws a line from the last plotted
;address of the shape table, and (A) = ; point or line destination to:
;the rotation factor. Uses the current ; (X,A) = X-coordinate, and
;color. ; (Y) = Y-coordinate.
XDRAW = $F65D ;Draws a shape by inverting the existing HFIND = $F5CB ; Converts the hi-res coursor's position
;color of the dots the shape draws over. ; back to X- and Y-coordinates; stores
;Same entry parameters as DRAW. ; X-coordinate at $E0,E1 and Y-coordinate
; at $E2.
SETHCOL = $F6EC ;Set the hi-res color to (X), where (X) DRAW = $F601 ; Draws a shape. Enter with (Y,X) = the
;must be between 0 and 7. ; 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
View 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