demo
This commit is contained in:
parent
108a9b2fb5
commit
37fb573836
213
src/ui.demo.a
213
src/ui.demo.a
|
@ -24,8 +24,9 @@ RunDemo
|
|||
sta targetVTAB
|
||||
lda #10
|
||||
sta minHTAB
|
||||
+LDADDR sThereAre
|
||||
+LDADDR sDemoIntro
|
||||
jsr HeavySilkReveal
|
||||
jsr SetShowingMessage
|
||||
jsr LoadDemoPuzzles
|
||||
+LDADDR DemoCode
|
||||
+ST16 GetNextDemoByte+1
|
||||
|
@ -40,10 +41,19 @@ RunDemo
|
|||
jsr DemoOnEXIT ; does not return
|
||||
|
||||
LoadDemoPuzzles
|
||||
ldx #0
|
||||
- lda demoPuzzles, x
|
||||
sta WORLDDATA, x
|
||||
inx
|
||||
+LDADDR demoPuzzles
|
||||
+ST16 $FC
|
||||
+LDADDR WORLDDATA
|
||||
+ST16 $FE
|
||||
ldx #2
|
||||
ldy #0
|
||||
- lda ($FC), y
|
||||
sta ($FE), y
|
||||
iny
|
||||
bne -
|
||||
inc $FD
|
||||
inc $FF
|
||||
dex
|
||||
bne -
|
||||
jmp PreParseWorldData
|
||||
|
||||
|
@ -59,11 +69,14 @@ DrawDemoPuzzleChrome
|
|||
@s !byte 1,$FD
|
||||
|
||||
DemoOnEXIT
|
||||
; out: pops 2 bytes off stack
|
||||
; A = FF
|
||||
; Z = 0
|
||||
; other flags & registers unknown, assume clobbered
|
||||
pla
|
||||
pla
|
||||
lda #$FF
|
||||
sta gWorldID ; invalidate cache
|
||||
pla
|
||||
pla
|
||||
sec
|
||||
rts
|
||||
|
||||
DemoOnLOAD
|
||||
|
@ -108,6 +121,11 @@ DemoOnWAIT
|
|||
|
||||
DemoOnNEXT=AnimatePuzzleCompleted
|
||||
|
||||
DemoOnTYPE
|
||||
jsr GetNextDemoByte
|
||||
stx gLastKeyPressed
|
||||
jmp PlayEventLetter
|
||||
|
||||
GetNextDemoByte
|
||||
ldx $FDFD ; SMC
|
||||
inc GetNextDemoByte+1
|
||||
|
@ -126,6 +144,7 @@ DemoDispatchLo
|
|||
!byte <DemoOnDOWN
|
||||
!byte <DemoOnWAIT
|
||||
!byte <DemoOnNEXT
|
||||
!byte <DemoOnTYPE
|
||||
DemoDispatchHi
|
||||
!byte >DemoOnEXIT
|
||||
!byte >DemoOnLOAD
|
||||
|
@ -137,6 +156,7 @@ DemoDispatchHi
|
|||
!byte >DemoOnDOWN
|
||||
!byte >DemoOnWAIT
|
||||
!byte >DemoOnNEXT
|
||||
!byte >DemoOnTYPE
|
||||
|
||||
; opcodes
|
||||
EXIT = 0
|
||||
|
@ -149,27 +169,26 @@ UP = 6
|
|||
DOWN = 7
|
||||
WAIT = 8
|
||||
NEXT = 9
|
||||
TYPE = 10
|
||||
|
||||
demoPuzzles
|
||||
!raw "AOCD,LTUE,IBLH|ABLE,ITCH,LOUD|...HIDDEN IN THIS PUZZLE",$0A
|
||||
!raw "WEFP,TLTO,DAOY,FICS|DEFY,FLOP,TACO,WITS,FITS|YOU CAN ALSO TYPE LETTERS",$0A
|
||||
!raw "AYCWT,CRMIL,GDOLE|ADMIT,CYCLE,GROWL|PUZZLES IN 12 SHAPES AND SIZES",$0A
|
||||
!raw "EAIIEO,VOJXCS,BIOAOR,HLBDIK|BABIES,ELIXIR,HIJACK,VOODOO,HOODOO|UNCOMMON LETTERS CAN LIGHT THE WAY",$0A
|
||||
!raw "SALATST,RHHRUCD,TXRNDRS,LEU AEE,E O Y|EXHAUST,LAUNDRY,RELATES,SHORTED,TERRACE,RELATED,TAUNTED,TERNARY|LETTERS CAN BE REUSED",$0A
|
||||
!raw "PELTEOT,LIRFICS,M TL RN|MILLION,PERFECT,LETTERS|I HOPE YOU ENJOY",$0A
|
||||
!raw "["
|
||||
|
||||
sDemo
|
||||
!byte 6
|
||||
!raw "DEMO-0"
|
||||
|
||||
sThereAre
|
||||
sDemoIntro
|
||||
!byte 20
|
||||
!raw "THERE ARE 3 WORDS..."
|
||||
sShift
|
||||
!byte 28
|
||||
!raw "SHIFT COLUMNS TO SPELL WORDS"
|
||||
sUseAll
|
||||
!byte 26
|
||||
!raw "USE ALL LETTERS TO ADVANCE"
|
||||
|
||||
DemoCode
|
||||
!byte SHOW ,<sThereAre,>sThereAre
|
||||
!byte WAIT ,20
|
||||
!byte HIDE
|
||||
!byte LOAD ,0,0
|
||||
|
@ -177,17 +196,6 @@ DemoCode
|
|||
!byte HIDE
|
||||
!byte UP
|
||||
!byte WAIT ,2
|
||||
!byte UP
|
||||
!byte WAIT ,5
|
||||
!byte DOWN
|
||||
!byte WAIT ,2
|
||||
!byte DOWN
|
||||
!byte WAIT ,5
|
||||
!byte SHOW ,<sShift,>sShift
|
||||
!byte WAIT ,30
|
||||
!byte HIDE
|
||||
!byte UP
|
||||
!byte WAIT ,2
|
||||
!byte RIGHT
|
||||
!byte WAIT ,2
|
||||
!byte RIGHT
|
||||
|
@ -199,8 +207,7 @@ DemoCode
|
|||
; ----
|
||||
; ITLE
|
||||
; B H
|
||||
!byte WAIT ,30
|
||||
!byte SHOW ,<sUseAll,>sUseAll
|
||||
!byte SHOW ,<sHelpHeader1,>sHelpHeader1
|
||||
!byte WAIT ,30
|
||||
!byte HIDE
|
||||
!byte LEFT
|
||||
|
@ -254,4 +261,152 @@ DemoCode
|
|||
; BU
|
||||
; L
|
||||
!byte NEXT
|
||||
!byte SHOW ,<sHelpHeader2,>sHelpHeader2
|
||||
!byte WAIT ,30
|
||||
!byte HIDE
|
||||
!byte LOAD ,1,4
|
||||
!byte WAIT ,30
|
||||
!byte HIDE
|
||||
!byte TYPE ,"T"
|
||||
!byte TYPE ,"A"
|
||||
!byte TYPE ,"C"
|
||||
!byte TYPE ,"O"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"W"
|
||||
!byte TYPE ,"I"
|
||||
!byte TYPE ,"T"
|
||||
!byte TYPE ,"S"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"D"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"F"
|
||||
!byte TYPE ,"Y"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"F"
|
||||
!byte TYPE ,"L"
|
||||
!byte TYPE ,"O"
|
||||
!byte TYPE ,"P"
|
||||
!byte NEXT
|
||||
!byte LOAD ,2,1
|
||||
!byte WAIT ,30
|
||||
!byte HIDE
|
||||
!byte TYPE ,"G"
|
||||
!byte TYPE ,"R"
|
||||
!byte TYPE ,"O"
|
||||
!byte TYPE ,"W"
|
||||
!byte TYPE ,"L"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"C"
|
||||
!byte TYPE ,"Y"
|
||||
!byte TYPE ,"C"
|
||||
!byte TYPE ,"L"
|
||||
!byte TYPE ,"E"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"A"
|
||||
!byte TYPE ,"D"
|
||||
!byte TYPE ,"M"
|
||||
!byte TYPE ,"I"
|
||||
!byte TYPE ,"T"
|
||||
!byte NEXT
|
||||
!byte LOAD ,3,6
|
||||
!byte WAIT ,30
|
||||
!byte HIDE
|
||||
!byte TYPE ,"V"
|
||||
!byte TYPE ,"O"
|
||||
!byte TYPE ,"O"
|
||||
!byte TYPE ,"D"
|
||||
!byte TYPE ,"O"
|
||||
!byte TYPE ,"O"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"L"
|
||||
!byte TYPE ,"I"
|
||||
!byte TYPE ,"X"
|
||||
!byte TYPE ,"I"
|
||||
!byte TYPE ,"R"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"H"
|
||||
!byte TYPE ,"I"
|
||||
!byte TYPE ,"J"
|
||||
!byte TYPE ,"A"
|
||||
!byte TYPE ,"C"
|
||||
!byte TYPE ,"K"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"B"
|
||||
!byte TYPE ,"A"
|
||||
!byte TYPE ,"B"
|
||||
!byte TYPE ,"I"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"S"
|
||||
!byte NEXT
|
||||
!byte LOAD ,4,11
|
||||
!byte WAIT ,30
|
||||
!byte HIDE
|
||||
!byte TYPE ,"L"
|
||||
!byte TYPE ,"A"
|
||||
!byte TYPE ,"U"
|
||||
!byte TYPE ,"N"
|
||||
!byte TYPE ,"D"
|
||||
!byte TYPE ,"R"
|
||||
!byte TYPE ,"Y"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"S"
|
||||
!byte TYPE ,"H"
|
||||
!byte TYPE ,"O"
|
||||
!byte TYPE ,"R"
|
||||
!byte TYPE ,"T"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"D"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"X"
|
||||
!byte TYPE ,"H"
|
||||
!byte TYPE ,"A"
|
||||
!byte TYPE ,"U"
|
||||
!byte TYPE ,"S"
|
||||
!byte TYPE ,"T"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"T"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"R"
|
||||
!byte TYPE ,"R"
|
||||
!byte TYPE ,"A"
|
||||
!byte TYPE ,"C"
|
||||
!byte TYPE ,"E"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"R"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"L"
|
||||
!byte TYPE ,"A"
|
||||
!byte TYPE ,"T"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"S"
|
||||
!byte NEXT
|
||||
!byte LOAD ,5,3
|
||||
!byte WAIT ,30
|
||||
!byte HIDE
|
||||
!byte TYPE ,"M"
|
||||
!byte TYPE ,"I"
|
||||
!byte TYPE ,"L"
|
||||
!byte TYPE ,"L"
|
||||
!byte TYPE ,"I"
|
||||
!byte TYPE ,"O"
|
||||
!byte TYPE ,"N"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"P"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"R"
|
||||
!byte TYPE ,"F"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"C"
|
||||
!byte TYPE ,"T"
|
||||
!byte WAIT ,20
|
||||
!byte TYPE ,"L"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"T"
|
||||
!byte TYPE ,"T"
|
||||
!byte TYPE ,"E"
|
||||
!byte TYPE ,"R"
|
||||
!byte TYPE ,"S"
|
||||
!byte NEXT
|
||||
!byte EXIT
|
||||
|
|
|
@ -104,7 +104,7 @@ MainMenuEventReturn
|
|||
|
||||
MainMenuEventD
|
||||
jsr RunDemo
|
||||
bcs + ; always branches
|
||||
bne + ; always branches
|
||||
|
||||
MainMenuEventC
|
||||
jsr AboutPage
|
||||
|
|
|
@ -67,6 +67,7 @@ ShowMessage
|
|||
; will clear message before showing the new one, so there may be a small flicker
|
||||
jsr HideMessage
|
||||
+PRINT_AT currentMessage, 7, 0
|
||||
SetShowingMessage
|
||||
lda #1
|
||||
sta showingMessage
|
||||
rts
|
||||
|
|
Loading…
Reference in New Issue