mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-01 01:06:33 +00:00
riven: clean up some of the common code
This commit is contained in:
parent
6f42fabb94
commit
9a88435c9d
@ -60,8 +60,8 @@ final movie roto procedure:
|
||||
Disk00 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1823 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2346 bytes 16S = 1T00S (4096) 2k free
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 16S = 1T00S (4096) 2k free
|
||||
T 2 = CYAN 32459 bytes = 7T15S (32512) 0k free
|
||||
T 10 = ATRUS 32493 bytes = 7T15S (32512) 0k free
|
||||
T 18 = CAPTURED 16696 bytes = 5T (20480) 4k free
|
||||
@ -72,19 +72,57 @@ T 31 = START 4107 bytes = 4T (16384) 12k free
|
||||
Disk01 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1823 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2393 bytes 16S= 1T0S (4096) 2k free
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
||||
T 2 = ARRIVAL 27040 bytes = 7T0S (28672) 1k free
|
||||
T 9 = ARRIVAL2 15920 bytes = 4T0S (16384) 400B free
|
||||
T 13 = TELESCOPE 19484 bytes = 6T0S (24576) 5k free
|
||||
T 13 = TELESCOPE 19482 bytes = 6T0S (24576) 5k free
|
||||
T 19 = ARRIVAL3 30786 bytes = 7T15S (32512) 2k free
|
||||
T 27 = STEPS 29647 bytes = 7T15S (32512) 3k free
|
||||
T 27 = PATH 29647 bytes = 7T15S (32512) 3k free
|
||||
|
||||
Disk02 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
||||
T 2 = STEPS1 9172 bytes = 6T0S (24576) 15k free
|
||||
T 9 = STEPS3 ???? bytes = 6T0S (24576) ?? free
|
||||
T 16 = STEPS5 ???? bytes = 6T0S (24576) ?? free
|
||||
T 22 = TOP 15658 bytes = 5T0S (20480) 5k free
|
||||
|
||||
Disk03 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
||||
T 2 = STEPS1 ???? bytes = 6T0S (24576) 15k free
|
||||
T 9 = STEPS3 ???? bytes = 6T0S (24576) ?? free
|
||||
T 16 = OUTSIDE 9582 bytes = 6T0S (24576) ?? free
|
||||
|
||||
Disk04 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
||||
T 2 = BRIDGE2 ???? bytes = 5T0S (20480) 15k free
|
||||
T 7 = BRIDGE3 ???? bytes = 5T0S (20480) ?? free
|
||||
T 12 = BRIDGE4 ???? bytes = 5T0S (20480) ?? free
|
||||
T 17 = TUNNEL1 ???? bytes = 5T0S (20480) ?? free
|
||||
T 22 = TUNNEL2 ???? bytes = 5T0S (20480) ?? free
|
||||
T 27 = TUNNEL3 17217 bytes = 5T0S (20480) 3k free
|
||||
|
||||
Disk05 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
|
||||
T 2 = CHAIR 1195 bytes = 6T0S (24576) 23k free
|
||||
|
||||
Disk38 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1823 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2393 bytes 16S = 1T0S (4096) 2k free
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 16S = 1T0S (4096) 2k free
|
||||
T 2 = PROJECTOR 12057 bytes = 7T0S (28672) 16k free
|
||||
; NOTE: save room for creepy animation, alternate door closed code
|
||||
|
||||
@ -92,8 +130,8 @@ T 2 = PROJECTOR 12057 bytes = 7T0S (28672) 16k free
|
||||
Disk39 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1823 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2393 bytes 16S = 1T0S (4096) 2k free
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 16S = 1T0S (4096) 2k free
|
||||
T 2 = PROJECTOR 23707 bytes 96S = 6T0S (24576) 1k free
|
||||
T 8 = OUTSIDE 26029 bytes 124S = 7T15S (32512) 6k free
|
||||
T 17 = MAGSTEPS 11537 bytes 64S = 4T0S (16384) 5k free
|
||||
@ -104,8 +142,8 @@ T 27 = MOVIE_MAG 32184 bytes 128S = 7T15S (32512)300B free
|
||||
Disk40 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1823 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2393 bytes 8S = 0T8S (2048) 300B free
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
||||
T 2 = MAGLEV 30502 bytes = 8T11S (32768) 2k free
|
||||
T 10 = OUTSIDE 18917 bytes = 5T (20480) 2k free
|
||||
T 15 = TUNNEL 20983 bytes = 6T (24576) 4k free
|
||||
@ -116,8 +154,8 @@ T 27 = MOVIE_MAG 32275 bytes 127S = 7T15S (32512)300B free
|
||||
Disk41 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1823 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2393 bytes 8S = 0T8S (2048) 300B free
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
||||
T 2 = TUNNEL 30669 bytes 127S= 8T (32512) 2k free
|
||||
T 10 = STAIRS 25624 = 7T (28672) 3k free
|
||||
T 17 = COVE 26422 = 7T (28672) 2k free
|
||||
@ -127,14 +165,30 @@ T 31 = MOVIE_COVE 8299 = 3T (12288) 4k free
|
||||
Disk43 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1823 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2393 bytes 8S = 0T8S (2048) 300B free
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
||||
T 2 = CART 23280 bytes = 7T0S (28672) 5k free
|
||||
T 9 = BRIDGE 18609 bytes = 7T0S (28672) 10k free
|
||||
T 16 = LOGGED 17570 bytes = 6T0S (24576) 7k free
|
||||
T 22 = LOGGED2 17584 bytes = 5T0S (20480) 3k free
|
||||
T 27 = MOVIE_CART32275 bytes 128S = 8T0S (32512)500B free
|
||||
|
||||
Disk44 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
||||
T 2 = FISH 4891 bytes = 7T0S (28672) 5k free
|
||||
|
||||
Disk50 Map (disk has 35 tracks, each 4k in size)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
T 0 = Qboot
|
||||
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
|
||||
T 1 = QLOAD 2314 bytes 8S = 0T8S (2048) 300B free
|
||||
T 2 = CHIPPER 12329 bytes = 7T0S (28672) 5k free
|
||||
|
||||
|
||||
|
||||
|
||||
graphics notes:
|
||||
in dark areas, use the shadow tool at 80 or so?
|
||||
|
@ -4,6 +4,8 @@
|
||||
;==============================
|
||||
handle_keypress:
|
||||
|
||||
|
||||
.if 0
|
||||
; first handle joystick
|
||||
lda JOYSTICK_ENABLED
|
||||
beq actually_handle_keypress
|
||||
@ -61,16 +63,22 @@ js_check_down:
|
||||
|
||||
|
||||
done_joystick:
|
||||
|
||||
.endif
|
||||
|
||||
|
||||
actually_handle_keypress:
|
||||
|
||||
; check for keypress
|
||||
|
||||
lda KEYPRESS
|
||||
bmi keypress
|
||||
|
||||
jmp no_keypress
|
||||
|
||||
keypress:
|
||||
|
||||
; adjust weird Apple II stuff
|
||||
|
||||
and #$7f ; clear high bit
|
||||
cmp #' '
|
||||
beq handle_input ; make sure not to lose space
|
||||
@ -79,6 +87,10 @@ keypress:
|
||||
|
||||
handle_input:
|
||||
|
||||
;==============================
|
||||
; assume pointer will be moved
|
||||
; so restore background
|
||||
|
||||
pha ; save keypress info
|
||||
|
||||
jsr restore_bg_14x14 ; restore old background
|
||||
@ -88,8 +100,10 @@ handle_input:
|
||||
pla ; restore keypress info
|
||||
|
||||
check_sound:
|
||||
cmp #$14 ; control-T
|
||||
bne check_joystick
|
||||
cmp #$13 ; control-S
|
||||
bne check_left
|
||||
|
||||
; toggle sound
|
||||
|
||||
lda SOUND_STATUS
|
||||
eor #SOUND_DISABLED
|
||||
@ -97,30 +111,16 @@ check_sound:
|
||||
jmp done_keypress
|
||||
|
||||
; can't be ^J as that's the same as down
|
||||
check_joystick:
|
||||
; cmp #$10 ; control-P
|
||||
cmp #'J'
|
||||
bne check_left
|
||||
|
||||
lda JOYSTICK_ENABLED
|
||||
eor #1
|
||||
sta JOYSTICK_ENABLED
|
||||
jmp done_keypress
|
||||
|
||||
;check_load:
|
||||
; cmp #$C ; control-L
|
||||
; bne check_save
|
||||
|
||||
; jsr load_game
|
||||
; jmp done_keypress
|
||||
|
||||
;check_save:
|
||||
; cmp #$13 ; control-S
|
||||
;check_joystick:
|
||||
; cmp #'J'
|
||||
; bne check_left
|
||||
|
||||
; jsr save_game
|
||||
; lda JOYSTICK_ENABLED
|
||||
; eor #1
|
||||
; sta JOYSTICK_ENABLED
|
||||
; jmp done_keypress
|
||||
|
||||
|
||||
check_left:
|
||||
cmp #'A'
|
||||
beq left_pressed
|
||||
@ -135,6 +135,8 @@ do_dec_cursor_x:
|
||||
done_left_pressed:
|
||||
jmp done_keypress ; done checking input
|
||||
|
||||
|
||||
|
||||
check_right:
|
||||
cmp #'D'
|
||||
beq right_pressed
|
||||
@ -143,9 +145,8 @@ check_right:
|
||||
right_pressed:
|
||||
lda CURSOR_X ; load Xpos
|
||||
cmp #38 ; if Xpos > 38 don't increment
|
||||
bcc do_inc_cursor_x ; blt
|
||||
; cmp #$FE
|
||||
bcs done_right_pressed
|
||||
; bcc do_inc_cursor_x ; blt
|
||||
bcs done_right_pressed ; bge
|
||||
do_inc_cursor_x:
|
||||
inc CURSOR_X ; move right one 3.5 pixel column
|
||||
done_right_pressed:
|
||||
@ -200,6 +201,11 @@ check_return:
|
||||
cmp #13
|
||||
bne done_keypress
|
||||
|
||||
|
||||
;======================================
|
||||
; extra action if space/return pressed
|
||||
;======================================
|
||||
|
||||
return_pressed:
|
||||
|
||||
lda IN_SPECIAL
|
||||
|
@ -63,12 +63,6 @@
|
||||
|
||||
riven_title:
|
||||
|
||||
|
||||
;===========================
|
||||
; print the title message that used to be
|
||||
; in hello.bas
|
||||
|
||||
|
||||
;===================
|
||||
; init screen
|
||||
;===================
|
||||
@ -77,18 +71,14 @@ riven_title:
|
||||
jsr HOME
|
||||
bit KEYRESET
|
||||
|
||||
; set disk#
|
||||
; set disk# (DISK provided at compile time)
|
||||
|
||||
lda #48+(DISK/10)
|
||||
sta title_text+28
|
||||
lda #48+(DISK-((DISK/10)*10))
|
||||
sta title_text+29
|
||||
|
||||
|
||||
|
||||
; clear text screen
|
||||
|
||||
; jsr clear_all
|
||||
; setup text screen
|
||||
|
||||
lda #0
|
||||
sta DRAW_PAGE
|
||||
@ -97,45 +87,40 @@ riven_title:
|
||||
|
||||
jsr set_normal
|
||||
|
||||
; print messages
|
||||
; print the title screen text
|
||||
lda #<title_text
|
||||
sta OUTL
|
||||
lda #>title_text
|
||||
sta OUTH
|
||||
|
||||
; print the text
|
||||
|
||||
jsr move_and_print_list
|
||||
|
||||
loader_start:
|
||||
|
||||
;===================
|
||||
; detect hardware
|
||||
|
||||
jsr hardware_detect
|
||||
|
||||
;=============================
|
||||
; set up model string to print
|
||||
|
||||
lda #<model_string
|
||||
sta OUTL
|
||||
lda #>model_string
|
||||
sta OUTH
|
||||
|
||||
lda APPLEII_MODEL
|
||||
sta model_string+17
|
||||
sta model_string+19
|
||||
|
||||
; special case IIgs, need to print two characters
|
||||
cmp #'g'
|
||||
bne go_print
|
||||
|
||||
lda #'s'
|
||||
sta model_string+18
|
||||
sta model_string+20
|
||||
|
||||
go_print:
|
||||
|
||||
ldy #0
|
||||
print_model:
|
||||
lda (OUTL),Y
|
||||
beq print_model_done
|
||||
ora #$80
|
||||
sta $7d0,Y
|
||||
iny
|
||||
jmp print_model
|
||||
print_model_done:
|
||||
jsr move_and_print
|
||||
|
||||
;===========================
|
||||
; patch lowercase printing
|
||||
@ -208,7 +193,7 @@ no_patch_uppercase:
|
||||
not_a_iigs:
|
||||
|
||||
;===================
|
||||
; Load hires graphics
|
||||
; Load title graphic
|
||||
;===================
|
||||
reload_everything:
|
||||
|
||||
@ -223,7 +208,7 @@ reload_everything:
|
||||
|
||||
;===================================
|
||||
; detect if we have a language card
|
||||
; and load sound into it if possible
|
||||
; we will use it for sound later if detected
|
||||
;===================================
|
||||
|
||||
lda #0
|
||||
@ -237,28 +222,10 @@ reload_everything:
|
||||
ora #SOUND_IN_LC
|
||||
sta SOUND_STATUS
|
||||
|
||||
; load sounds into LC
|
||||
|
||||
; read ram, write ram, use $d000 bank1
|
||||
; bit $C08B
|
||||
; bit $C08B
|
||||
|
||||
; lda #<linking_noise_compressed
|
||||
; sta getsrc_smc+1
|
||||
; lda #>linking_noise_compressed
|
||||
; sta getsrc_smc+2
|
||||
|
||||
; lda #$D0 ; decompress to $D000
|
||||
|
||||
; jsr decompress_lzsa2_fast
|
||||
|
||||
;blah:
|
||||
|
||||
; read rom, nowrite, use $d000 bank1
|
||||
; bit $C08A
|
||||
|
||||
no_language_card:
|
||||
|
||||
; currently no music so no need for Mockingboard code
|
||||
|
||||
;===================================
|
||||
; Setup Mockingboard
|
||||
;===================================
|
||||
@ -311,6 +278,9 @@ done_setup_sound:
|
||||
; init
|
||||
;===================================
|
||||
|
||||
; we currently don't do this as we were over-writing
|
||||
; things that shouldn't. It is living dangerously
|
||||
; not clearing things out though
|
||||
|
||||
; clear out zero page values to 0
|
||||
; clear everything from $80 .. $A0?
|
||||
@ -325,6 +295,7 @@ done_setup_sound:
|
||||
lda #0
|
||||
sta LEVEL_OVER
|
||||
sta BEACH_ANIMALS_SEEN
|
||||
; sta JOYSTICK_ENABLED
|
||||
|
||||
; init hi-res graphics
|
||||
|
||||
@ -332,19 +303,14 @@ done_setup_sound:
|
||||
sta HGR_PAGE
|
||||
jsr hgr_make_tables
|
||||
|
||||
|
||||
; lda #0
|
||||
; sta JOYSTICK_ENABLED
|
||||
; sta UPDATE_POINTER
|
||||
; sta HOLDING_ITEM
|
||||
; sta HOLDING_PAGE
|
||||
; initial cursor location
|
||||
|
||||
lda #20
|
||||
sta CURSOR_X
|
||||
sta CURSOR_Y
|
||||
|
||||
;===================================
|
||||
; Do Intro Sequence
|
||||
; Wait a bit
|
||||
;===================================
|
||||
|
||||
; wait a bit at LOAD screen
|
||||
@ -360,14 +326,11 @@ done_setup_sound:
|
||||
jsr clear_bottom
|
||||
bit TEXTGR
|
||||
|
||||
; print messages
|
||||
; print text
|
||||
lda #<menu_text
|
||||
sta OUTL
|
||||
lda #>menu_text
|
||||
sta OUTH
|
||||
|
||||
; print the text
|
||||
|
||||
jsr move_and_print_list
|
||||
|
||||
lda #0
|
||||
@ -425,17 +388,8 @@ done_pointer_loop:
|
||||
; we ever implement save game support
|
||||
game_new:
|
||||
|
||||
; FIXME: how to convince other disks to swap to DISK0
|
||||
; without wasting a disk-exit spot
|
||||
|
||||
; lda #$E0|3 ; LOAD_CYAN
|
||||
; sta WHICH_LOAD ; CYAN opener
|
||||
|
||||
; lda #0 ; not needed...
|
||||
; sta LOCATION
|
||||
|
||||
; lda #DIRECTION_N
|
||||
; sta DIRECTION
|
||||
; there must be a way to do this better, but for now waste
|
||||
; a disk change slot on each disk with the opener
|
||||
|
||||
lda #$E0|3
|
||||
sta LEVEL_OVER
|
||||
@ -606,10 +560,7 @@ game_continue:
|
||||
.include "lc_detect.s"
|
||||
|
||||
model_string:
|
||||
.byte "DETECTED APPLE II",0,0,0
|
||||
|
||||
|
||||
|
||||
.byte 0,23,"DETECTED APPLE II",0,0,0
|
||||
|
||||
riven_title_image:
|
||||
.incbin "graphics_title/riven_title.hgr.zx02"
|
||||
|
Loading…
Reference in New Issue
Block a user