mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-13 07:29:54 +00:00
ootw: add new assembly title screen
This commit is contained in:
parent
8c1dd70b21
commit
eb1360f0e0
@ -20,10 +20,12 @@ ootw.dsk: HELLO LOADER INTRO OOTW_C1 OOTW_C2 OOTW_C3 OOTW_C4 OOTW_C5
|
||||
# $(DOS33) -y ootw.dsk BSAVE -a 0x1700 AUDIO_TEST
|
||||
# $(DOS33) -y ootw.dsk BSAVE -a 0x2000 COMPRESS-TEST
|
||||
|
||||
ootw_side2.dsk: HELLO2 LOADER2 ENDING
|
||||
ootw_side2.dsk: HELLO TITLE LOADER2 ENDING OOTW_C15
|
||||
cp empty.dsk ootw_side2.dsk
|
||||
$(DOS33) -y ootw_side2.dsk SAVE A HELLO2 HELLO
|
||||
$(DOS33) -y ootw_side2.dsk SAVE A HELLO HELLO
|
||||
$(DOS33) -y ootw_side2.dsk BSAVE -a 0x1000 TITLE
|
||||
$(DOS33) -y ootw_side2.dsk BSAVE -a 0x1400 LOADER2 LOADER
|
||||
$(DOS33) -y ootw_side2.dsk BSAVE -a 0x1700 OOTW_C15
|
||||
$(DOS33) -y ootw_side2.dsk BSAVE -a 0x1700 ENDING
|
||||
|
||||
|
||||
@ -127,6 +129,21 @@ ootw_c5.o: ootw_c5.s \
|
||||
ootw_graphics/l5cave/ootw_c5_cave.inc
|
||||
ca65 -o ootw_c5.o ootw_c5.s -l ootw_c5.lst
|
||||
|
||||
###
|
||||
|
||||
OOTW_C15: ootw_c15.o
|
||||
ld65 -o OOTW_C15 ootw_c15.o -C ../linker_scripts/apple2_1700.inc
|
||||
|
||||
ootw_c15.o: ootw_c15.s \
|
||||
gr_copy.s gr_copy_offset.s gr_fast_clear.s gr_pageflip.s gr_unrle.s \
|
||||
gr_putsprite.s gr_putsprite_flipped.s gr_putsprite_crop.s \
|
||||
keyboard.s gr_run_sequence.s physicist.s \
|
||||
collision.s door.s gun.s blast.s shield.s \
|
||||
ootw_graphics/sprites/physicist.inc \
|
||||
ootw_graphics/l5cave/ootw_c5_cave.inc
|
||||
ca65 -o ootw_c15.o ootw_c15.s -l ootw_c15.lst
|
||||
|
||||
|
||||
|
||||
####
|
||||
|
||||
@ -255,6 +272,15 @@ LOADER2: loader2.o
|
||||
loader2.o: loader2.s
|
||||
ca65 -o loader2.o loader2.s -l loader2.lst
|
||||
|
||||
####
|
||||
|
||||
TITLE: title.o
|
||||
ld65 -o TITLE title.o -C ../linker_scripts/apple2_1000.inc
|
||||
|
||||
title.o: title.s
|
||||
ca65 -o title.o title.s -l title.lst
|
||||
|
||||
|
||||
|
||||
####
|
||||
|
||||
|
@ -1,38 +1,3 @@
|
||||
5 HOME
|
||||
10 PRINT "OOTW PROOF-OF-CONCEPT V2.7 (8/22/2019)"
|
||||
15 PRINT " BY DEATER"
|
||||
20 PRINT " DISK,LZ4 BY QKUMBA"
|
||||
25 PRINT " ,"
|
||||
30 PRINT "ORIGINAL BY ERIC CHAHI"
|
||||
40 PRINT "INSPIRED BY PAUL NICHOLAS PICO-8 VERSION"
|
||||
50 PRINT
|
||||
60 PRINT
|
||||
80 PRINT
|
||||
85 HTAB 10:PRINT " ______"
|
||||
90 HTAB 10:PRINT "A \/\/\/ PRODUCTION"
|
||||
92 PRINT
|
||||
95 HTAB 12:PRINT "APPLE ][ FOREVER"
|
||||
100 PRINT:PRINT "WHAT DO YOU WANT TO DO?"
|
||||
110 PRINT "0). START WITH INTRO MOVIE"
|
||||
120 PRINT "1). START AT CHECKPOINT 1 (IH8S)"
|
||||
130 PRINT "2). START AT CHECKPOINT 2 (RAGE)"
|
||||
135 PRINT "3). START AT CHECKPOINT 3 (VENT)"
|
||||
135 PRINT "4). START AT CHECKPOINT 4 (RCHG)"
|
||||
135 PRINT "5). START AT CHECKPOINT 5 (CAVE)"
|
||||
140 INPUT A
|
||||
150 IF A < 0 OR A > 5 THEN 5
|
||||
155 IF A=1 OR A=2 OR A=3 OR A=4 OR A=5 THEN GOSUB 300
|
||||
160 POKE 5,A
|
||||
200 PRINT CHR$ (4)"BRUN LOADER"
|
||||
300 HOME
|
||||
305 HTAB 8:PRINT "LOADING (BE PATIENT...)"
|
||||
310 PRINT:PRINT:PRINT:PRINT
|
||||
315 PRINT "CONTROLS:"
|
||||
320 PRINT " A OR <- : MOVE LEFT"
|
||||
325 PRINT " D OR -> : MOVE RIGHT"
|
||||
340 PRINT " W OR UP : JUMP"
|
||||
345 PRINT " S OR DOWN : CROUCH / PICKUP"
|
||||
350 PRINT " SPACEBAR : KICK / SHOOT"
|
||||
355 PRINT " L : CHARGE GUN"
|
||||
360 PRINT " ESC : QUITS"
|
||||
365 RETURN
|
||||
10 PRINT CHR$(4);"BRUN TITLE"
|
||||
|
||||
|
38
ootw/hello.bas.old
Normal file
38
ootw/hello.bas.old
Normal file
@ -0,0 +1,38 @@
|
||||
5 HOME
|
||||
10 PRINT "OOTW PROOF-OF-CONCEPT V2.7 (8/22/2019)"
|
||||
15 PRINT " BY DEATER"
|
||||
20 PRINT " DISK,LZ4 BY QKUMBA"
|
||||
25 PRINT " ,"
|
||||
30 PRINT "ORIGINAL BY ERIC CHAHI"
|
||||
40 PRINT "INSPIRED BY PAUL NICHOLAS PICO-8 VERSION"
|
||||
50 PRINT
|
||||
60 PRINT
|
||||
80 PRINT
|
||||
85 HTAB 10:PRINT " ______"
|
||||
90 HTAB 10:PRINT "A \/\/\/ PRODUCTION"
|
||||
92 PRINT
|
||||
95 HTAB 12:PRINT "APPLE ][ FOREVER"
|
||||
100 PRINT:PRINT "WHAT DO YOU WANT TO DO?"
|
||||
110 PRINT "0). START WITH INTRO MOVIE"
|
||||
120 PRINT "1). START AT CHECKPOINT 1 (IH8S)"
|
||||
130 PRINT "2). START AT CHECKPOINT 2 (RAGE)"
|
||||
135 PRINT "3). START AT CHECKPOINT 3 (VENT)"
|
||||
135 PRINT "4). START AT CHECKPOINT 4 (RCHG)"
|
||||
135 PRINT "5). START AT CHECKPOINT 5 (CAVE)"
|
||||
140 INPUT A
|
||||
150 IF A < 0 OR A > 5 THEN 5
|
||||
155 IF A=1 OR A=2 OR A=3 OR A=4 OR A=5 THEN GOSUB 300
|
||||
160 POKE 5,A
|
||||
200 PRINT CHR$ (4)"BRUN LOADER"
|
||||
300 HOME
|
||||
305 HTAB 8:PRINT "LOADING (BE PATIENT...)"
|
||||
310 PRINT:PRINT:PRINT:PRINT
|
||||
315 PRINT "CONTROLS:"
|
||||
320 PRINT " A OR <- : MOVE LEFT"
|
||||
325 PRINT " D OR -> : MOVE RIGHT"
|
||||
340 PRINT " W OR UP : JUMP"
|
||||
345 PRINT " S OR DOWN : CROUCH / PICKUP"
|
||||
350 PRINT " SPACEBAR : KICK / SHOOT"
|
||||
355 PRINT " L : CHARGE GUN"
|
||||
360 PRINT " ESC : QUITS"
|
||||
365 RETURN
|
@ -100,6 +100,17 @@ filenames_low:
|
||||
.byte <ootw_c3_filename
|
||||
.byte <ootw_c4_filename
|
||||
.byte <ootw_c5_filename
|
||||
.byte <ootw_c6_filename
|
||||
.byte <ootw_c7_filename
|
||||
.byte <ootw_c8_filename
|
||||
.byte <ootw_c9_filename
|
||||
.byte <ootw_c10_filename
|
||||
.byte <ootw_c11_filename
|
||||
.byte <ootw_c12_filename
|
||||
.byte <ootw_c13_filename
|
||||
.byte <ootw_c14_filename
|
||||
.byte <ootw_c15_filename
|
||||
.byte <ending_filename
|
||||
|
||||
filenames_high:
|
||||
.byte >intro_filename
|
||||
@ -108,24 +119,68 @@ filenames_high:
|
||||
.byte >ootw_c3_filename
|
||||
.byte >ootw_c4_filename
|
||||
.byte >ootw_c5_filename
|
||||
.byte >ootw_c6_filename
|
||||
.byte >ootw_c7_filename
|
||||
.byte >ootw_c8_filename
|
||||
.byte >ootw_c9_filename
|
||||
.byte >ootw_c10_filename
|
||||
.byte >ootw_c11_filename
|
||||
.byte >ootw_c12_filename
|
||||
.byte >ootw_c13_filename
|
||||
.byte >ootw_c14_filename
|
||||
.byte >ootw_c15_filename
|
||||
.byte >ending_filename
|
||||
|
||||
intro_filename:
|
||||
.byte "ENDING",0
|
||||
.byte 0
|
||||
|
||||
ootw_c1_filename:
|
||||
.byte "OOTW_C1",0
|
||||
.byte 0
|
||||
|
||||
ootw_c2_filename:
|
||||
.byte "OOTW_C2",0
|
||||
.byte 0
|
||||
|
||||
ootw_c3_filename:
|
||||
.byte "OOTW_C3",0
|
||||
.byte 0
|
||||
|
||||
ootw_c4_filename:
|
||||
.byte "OOTW_C4",0
|
||||
.byte 0
|
||||
|
||||
ootw_c5_filename:
|
||||
.byte "OOTW_C5",0
|
||||
.byte 0
|
||||
|
||||
ootw_c6_filename:
|
||||
.byte "OOTW_C6",0
|
||||
|
||||
ootw_c7_filename:
|
||||
.byte "OOTW_C7",0
|
||||
|
||||
ootw_c8_filename:
|
||||
.byte "OOTW_C8",0
|
||||
|
||||
ootw_c9_filename:
|
||||
.byte "OOTW_9",0
|
||||
|
||||
ootw_c10_filename:
|
||||
.byte "OOTW_C10",0
|
||||
|
||||
ootw_c11_filename:
|
||||
.byte "OOTW_C11",0
|
||||
|
||||
ootw_c12_filename:
|
||||
.byte "OOTW_C12",0
|
||||
|
||||
ootw_c13_filename:
|
||||
.byte "OOTW_C13",0
|
||||
|
||||
ootw_c14_filename:
|
||||
.byte "OOTW_C14",0
|
||||
|
||||
ootw_c15_filename:
|
||||
.byte "OOTW_C15",0
|
||||
|
||||
ending_filename:
|
||||
.byte "ENDING",0
|
||||
|
||||
|
||||
|
||||
|
@ -34,3 +34,12 @@ INSPIRED BY PAUL NICHOLAS PICO-8 VERSION
|
||||
ENDING
|
||||
|
||||
|
||||
|
||||
|
||||
*0 1 2 BASE, HIGHLIGHT ... WHICH=BASE+HIGHLIGHT
|
||||
0 *1 2
|
||||
0 1 *2
|
||||
1 2 *3
|
||||
|
||||
1 *2 3
|
||||
|
||||
|
@ -43,6 +43,7 @@ print_string:
|
||||
print_string_loop:
|
||||
lda (OUTL),Y
|
||||
beq done_print_string
|
||||
ps_smc1:
|
||||
eor #$80 ; flip from ASCII to text char
|
||||
sta (BASL),Y
|
||||
iny
|
||||
|
296
ootw/title.s
Normal file
296
ootw/title.s
Normal file
@ -0,0 +1,296 @@
|
||||
; Title Screen / Menu for OOTW
|
||||
|
||||
.include "zp.inc"
|
||||
.include "hardware.inc"
|
||||
|
||||
title:
|
||||
lda #0
|
||||
sta MENU_BASE ; start at level0 by default
|
||||
sta MENU_HIGHLIGHT
|
||||
|
||||
bit TEXT
|
||||
bit PAGE0
|
||||
|
||||
lda #<title_text
|
||||
sta OUTL
|
||||
lda #>title_text
|
||||
sta OUTH
|
||||
jsr move_and_print_list
|
||||
|
||||
title_loop:
|
||||
clc
|
||||
lda MENU_BASE
|
||||
adc MENU_HIGHLIGHT
|
||||
sta WHICH_LOAD
|
||||
|
||||
|
||||
jsr draw_menu
|
||||
|
||||
wait_for_keypress:
|
||||
lda KEYPRESS
|
||||
bpl wait_for_keypress
|
||||
bit KEYRESET
|
||||
|
||||
; $15/$A = right/down
|
||||
cmp #$15+$80
|
||||
beq down_pressed
|
||||
cmp #$A+$80
|
||||
beq down_pressed
|
||||
|
||||
; 8/B = left/up
|
||||
cmp #$8+$80
|
||||
beq up_pressed
|
||||
cmp #$B+$80
|
||||
beq up_pressed
|
||||
|
||||
; Return = 13
|
||||
cmp #13+$80
|
||||
beq all_done
|
||||
|
||||
; unknown, ignore
|
||||
jmp title_loop
|
||||
|
||||
down_pressed:
|
||||
lda MENU_HIGHLIGHT
|
||||
cmp #2
|
||||
beq down_offset
|
||||
inc MENU_HIGHLIGHT
|
||||
bne title_loop ; branch always
|
||||
|
||||
down_offset:
|
||||
lda MENU_BASE
|
||||
cmp #16-2
|
||||
beq title_loop ; don't increment if 16
|
||||
inc MENU_BASE
|
||||
bne title_loop ; branch always
|
||||
|
||||
up_pressed:
|
||||
lda MENU_HIGHLIGHT
|
||||
beq up_offset ; don't decrement if 0
|
||||
dec MENU_HIGHLIGHT
|
||||
jmp title_loop
|
||||
up_offset:
|
||||
lda MENU_BASE
|
||||
beq title_loop ; don't decrement if 0
|
||||
dec MENU_BASE
|
||||
jmp title_loop
|
||||
|
||||
all_done:
|
||||
jmp all_done
|
||||
|
||||
|
||||
.include "text_print.s"
|
||||
.include "gr_offsets.s"
|
||||
|
||||
draw_menu:
|
||||
lda #<menu_items
|
||||
sta OUTL
|
||||
lda #>menu_items
|
||||
sta OUTH
|
||||
|
||||
clc
|
||||
ldy #0
|
||||
get_right_offset:
|
||||
cpy MENU_BASE
|
||||
beq get_right_offset_done
|
||||
|
||||
lda OUTL
|
||||
adc #23
|
||||
sta OUTL
|
||||
lda OUTH
|
||||
adc #0
|
||||
sta OUTH
|
||||
|
||||
iny
|
||||
|
||||
jmp get_right_offset
|
||||
|
||||
get_right_offset_done:
|
||||
|
||||
ldy #1
|
||||
lda #19
|
||||
sta (OUTL),Y
|
||||
|
||||
jsr disable_highlight
|
||||
lda MENU_HIGHLIGHT
|
||||
bne no_highlight_line1
|
||||
jsr enable_highlight
|
||||
no_highlight_line1:
|
||||
|
||||
jsr move_and_print
|
||||
|
||||
ldy #1
|
||||
lda #20
|
||||
sta (OUTL),Y
|
||||
|
||||
jsr disable_highlight
|
||||
lda MENU_HIGHLIGHT
|
||||
cmp #1
|
||||
bne no_highlight_line2
|
||||
jsr enable_highlight
|
||||
no_highlight_line2:
|
||||
|
||||
jsr move_and_print
|
||||
|
||||
ldy #1
|
||||
lda #21
|
||||
sta (OUTL),Y
|
||||
|
||||
jsr disable_highlight
|
||||
lda MENU_HIGHLIGHT
|
||||
cmp #2
|
||||
bne no_highlight_line3
|
||||
jsr enable_highlight
|
||||
no_highlight_line3:
|
||||
|
||||
jsr move_and_print
|
||||
|
||||
jsr disable_highlight
|
||||
|
||||
draw_scrollbar:
|
||||
lda #' '+$80
|
||||
sta $550+29
|
||||
sta $550+30
|
||||
ldx WHICH_LOAD
|
||||
beq draw_line1
|
||||
draw_top:
|
||||
lda #'/'+$80
|
||||
sta $550+29 ; line 18
|
||||
lda #'\'+$80
|
||||
sta $550+30
|
||||
draw_line1:
|
||||
lda #'I'+$80
|
||||
cpx #5
|
||||
bcs draw_line1_I ; bge
|
||||
draw_line1_X:
|
||||
clc
|
||||
adc #'X'-'I'
|
||||
draw_line1_I:
|
||||
sta $5d0+29 ; line 19
|
||||
sta $5d0+30
|
||||
|
||||
draw_line2:
|
||||
lda #'I'+$80
|
||||
cpx #5
|
||||
bcc draw_line2_I ; blt
|
||||
cpx #10
|
||||
bcs draw_line2_I ; bge
|
||||
|
||||
draw_line2_X:
|
||||
clc
|
||||
adc #'X'-'I'
|
||||
draw_line2_I:
|
||||
sta $650+29 ; line 20
|
||||
sta $650+30
|
||||
|
||||
draw_line3:
|
||||
lda #'I'+$80
|
||||
cpx #10
|
||||
bcc draw_line3_I ; blt
|
||||
|
||||
draw_line3_X:
|
||||
clc
|
||||
adc #'X'-'I'
|
||||
draw_line3_I:
|
||||
sta $6d0+29 ; line 21
|
||||
sta $6d0+30
|
||||
draw_bottom:
|
||||
lda #' '+$80
|
||||
sta $750+29 ; line 22
|
||||
sta $750+30 ; line 22
|
||||
cpx #16
|
||||
beq done_draw_bottom
|
||||
lda #'\'+$80
|
||||
sta $750+29 ; line 22
|
||||
lda #'/'+$80
|
||||
sta $750+30
|
||||
done_draw_bottom:
|
||||
|
||||
rts
|
||||
|
||||
|
||||
|
||||
enable_highlight:
|
||||
lda #$29 ; and
|
||||
sta ps_smc1
|
||||
lda #$3f
|
||||
sta ps_smc1+1
|
||||
rts
|
||||
|
||||
disable_highlight:
|
||||
lda #$49
|
||||
sta ps_smc1 ; eor
|
||||
lda #$80
|
||||
sta ps_smc1+1
|
||||
rts
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;.byte 0,18," /\",0
|
||||
;.byte 0,19," CHECKPOINT 1 (IH8S) XX",0
|
||||
;.byte 0,20," CHECKPOINT 2 (RAGE) II",0
|
||||
;.byte 0,21," CHECKPOINT 3 (VENT) II",0
|
||||
;.byte 0,22," \/",0
|
||||
|
||||
|
||||
title_text:
|
||||
.byte 1, 0, "//II II--\ II--\ II II-- ]][[ ]][[",0
|
||||
.byte 0, 1,"//_II II__/ II__/ II II- ][ ][",0
|
||||
.byte 0, 2,"II II II II II__ II__ ]][[ ]][[",0
|
||||
.byte 0, 3,"II II II _",0
|
||||
.byte 3, 4, "II II // //=I\ II==\ II II \\",0
|
||||
.byte 3, 5, "II II // // II II==/ II II //",0
|
||||
.byte 3, 6, "II II//\\// \===I/ II \\ II== II//",0
|
||||
.byte 0, 8,"OOTW PROOF-OF-CONCEPT V2.8 (25 JAN 2020)",0
|
||||
.byte 0, 9,"CODE: DEATER DISK,LZ4: QKUMBA",0
|
||||
.byte 12,10, ",",0
|
||||
.byte 0,11,"ORIGINAL BY ERIC CHAHI",0
|
||||
.byte 0,12,"INSPIRED BY PAUL NICHOLAS PICO-8 VERSION",0
|
||||
.byte 12,13, "______",0
|
||||
.byte 10,14, "A \/\/\/ PRODUCTION",0
|
||||
.byte 12,16, "APPLE ][ FOREVER",0
|
||||
|
||||
.byte 1,23, "USE ARROWS TO SELECT, RETURN TO START",0
|
||||
.byte 255
|
||||
|
||||
|
||||
|
||||
|
||||
menu_items: ; 23 wide
|
||||
.byte 8,0,"INTRO MOVIE ",0
|
||||
.byte 8,0,"CHECKPOINT 1 (IH8S)",0 ; LDKD
|
||||
.byte 8,0,"CHECKPOINT 2 (RAGE)",0 ; HTDC
|
||||
.byte 8,0,"CHECKPOINT 3 (VENT)",0 ; CLLD
|
||||
.byte 8,0,"CHECKPOINT 4 (RCHG)",0 ; LBKG
|
||||
.byte 8,0,"CHECKPOINT 5 (CAVE)",0 ; XDDJ
|
||||
.byte 8,0,"CHECKPOINT 6 (CEIL)",0 ; FXLC
|
||||
.byte 8,0,"CHECKPOINT 7 (RUNC)",0 ; KRFK
|
||||
.byte 8,0,"CHECKPOINT 8 (ROLL)",0 ; KLFB
|
||||
.byte 8,0,"CHECKPOINT 9 (SWIM)",0 ; TTCT
|
||||
.byte 8,0,"CHECKPOINT 10 (GRND)",0 ; HRTB
|
||||
.byte 8,0,"CHECKPOINT 11 (ABVE)",0 ; BRTD
|
||||
.byte 8,0,"CHECKPOINT 12 (THRW)",0 ; TFBB
|
||||
.byte 8,0,"CHECKPOINT 13 (ARMS)",0 ; TXHF
|
||||
.byte 8,0,"CHECKPOINT 14 (TANK)",0 ; CKJL
|
||||
.byte 8,0,"CHECKPOINT 15 (ANKD)",0 ; LFCK
|
||||
.byte 8,0,"ENDING ",0
|
||||
|
||||
|
||||
; 160 POKE 5,A
|
||||
|
||||
|
||||
; 305 HTAB 8:PRINT "LOADING (BE PATIENT...)"
|
||||
; 310 PRINT:PRINT:PRINT:PRINT
|
||||
; 315 PRINT "CONTROLS:"
|
||||
; 320 PRINT " A OR <- : MOVE LEFT"
|
||||
; 325 PRINT " D OR -> : MOVE RIGHT"
|
||||
; 340 PRINT " W OR UP : JUMP"
|
||||
; 345 PRINT " S OR DOWN : CROUCH / PICKUP"
|
||||
; 350 PRINT " SPACEBAR : KICK / SHOOT"
|
||||
; 355 PRINT " L : CHARGE GUN"
|
||||
; 360 PRINT " ESC : QUITS"
|
||||
|
@ -7,8 +7,11 @@ LZ4_DST = $02
|
||||
LZ4_END = $04
|
||||
WHICH_LOAD = $05
|
||||
COUNT = $06
|
||||
MENU_BASE = $06
|
||||
MENU_HIGHLIGHT = $07
|
||||
DELTA = $08
|
||||
|
||||
|
||||
;; Zero page monitor routines addresses
|
||||
|
||||
WNDLFT = $20
|
||||
|
Loading…
x
Reference in New Issue
Block a user