mirror of
https://github.com/a2-4am/4sports.git
synced 2024-09-27 12:55:21 +00:00
37 lines
1.3 KiB
Plaintext
37 lines
1.3 KiB
Plaintext
|
;license:MIT
|
||
|
;(c) 2019 by 4am
|
||
|
;
|
||
|
; common code used by all prelaunchers
|
||
|
;
|
||
|
; you should include this file with a '!source' directive, not assemble it directly
|
||
|
|
||
|
!source "src/constants.a" ; no code in these
|
||
|
!source "src/macros.a"
|
||
|
|
||
|
ldx #0 ; wipe zero page
|
||
|
txa
|
||
|
- sta $00,x
|
||
|
inx
|
||
|
bne -
|
||
|
|
||
|
lda #$65 ; Initialize 'random' seed. These are
|
||
|
sta RNDSEED ; arbitrary values. Some games like Pooyan
|
||
|
lda #$02 ; require these to be non-zero. Ask me
|
||
|
sta RNDSEED+1 ; how long that one took to debug.
|
||
|
|
||
|
+READ_ROM_NO_WRITE
|
||
|
|
||
|
jsr ROM_IN0 ; Initialize machine like a cold boot.
|
||
|
jsr ROM_PR0 ; Many games assume a 'clean slate' and
|
||
|
jsr ROM_NORMAL ; rely on zero page values set by these
|
||
|
sta STOREOFF ; ROM routines,
|
||
|
sta READMAINMEM ; e.g. Wavy Navy just prints out text via
|
||
|
sta WRITEMAINMEM ; $FDED and expects it to work. Having it
|
||
|
sta CLR80VID ; print all null characters is amusing, in
|
||
|
sta PRIMARYCHARSET ; a quiet way, but not really helpful.
|
||
|
jsr ROM_TEXT
|
||
|
jsr ROM_HOME
|
||
|
|
||
|
bit CLEARKBD
|
||
|
sei
|