This commit is contained in:
4am 2020-09-27 19:19:59 -04:00
parent 37fb573836
commit 522f074af5
2 changed files with 43 additions and 124 deletions

View File

@ -34,10 +34,10 @@ puzzle_data5 = $0332 ; [0x08 bytes]
puzzle_data6 = $033A ; [0x08 bytes]
puzzle_data7 = $0342 ; [0x08 bytes]
puzzle_data8 = $034A ; [0x08 bytes]
puzzle_word_count = $0352 ; [0x01 byte ] number of records in <puzzle_words>
puzzle_words = $0353 ; [0x80 bytes]
target_word_count = $0352 ; [0x01 byte ] number of records in <target_words>
target_words = $0353 ; [0x80 bytes]
; each 8-byte record is a <puzzle_logical_width>-length word, no prefix
; extra bytes in each record are ignored
; extra bytes in each record are guaranteed to be 0x00
;------------------------------------------------------------------------------
; InitPuzzleStorage
@ -94,19 +94,19 @@ AddLineToPuzzle
; out: all registers & flags clobbered
;------------------------------------------------------------------------------
AddTargetWordToPuzzle
lda puzzle_word_count
lda target_word_count
asl
asl
asl
tax
ldy #0
- lda ($FE), y
sta puzzle_words, x
sta target_words, x
inx
iny
cpy puzzle_logical_width
bne -
inc puzzle_word_count
inc target_word_count
rts
unused_counter=$FD
@ -123,7 +123,7 @@ unused_counter=$FD
; all other registers & flags clobbered
;------------------------------------------------------------------------------
CheckForTargetWord
+LDADDR puzzle_words
+LDADDR target_words
+ST16 $FE
ldx #0 ; word index
@checkword
@ -159,7 +159,7 @@ CheckForTargetWord
bcc +
inc $FF
+ inx
cpx puzzle_word_count
cpx target_word_count
bne @checkword
@notfound
sec

View File

@ -7,9 +7,6 @@
; - RunDemo
;
; puzzle 0:
; AOCD,LTLE,IBUH|ABLE,ITCH,LOUD
;------------------------------------------------------------------------------
; RunDemo
; run self-running demo until keypress or completion
@ -123,8 +120,22 @@ DemoOnNEXT=AnimatePuzzleCompleted
DemoOnTYPE
jsr GetNextDemoByte
stx gLastKeyPressed
jmp PlayEventLetter
txa
asl
asl
asl
- tax
pha
lda target_words, x
beq +
sta gLastKeyPressed
jsr PlayEventLetter
pla
clc
adc #1
bcc -
+ pla
rts
GetNextDemoByte
ldx $FDFD ; SMC
@ -267,146 +278,54 @@ DemoCode
!byte LOAD ,1,4
!byte WAIT ,30
!byte HIDE
!byte TYPE ,"T"
!byte TYPE ,"A"
!byte TYPE ,"C"
!byte TYPE ,"O"
!byte TYPE ,2
!byte WAIT ,20
!byte TYPE ,"W"
!byte TYPE ,"I"
!byte TYPE ,"T"
!byte TYPE ,"S"
!byte TYPE ,3
!byte WAIT ,20
!byte TYPE ,"D"
!byte TYPE ,"E"
!byte TYPE ,"F"
!byte TYPE ,"Y"
!byte TYPE ,0
!byte WAIT ,20
!byte TYPE ,"F"
!byte TYPE ,"L"
!byte TYPE ,"O"
!byte TYPE ,"P"
!byte TYPE ,1
!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 TYPE ,2
!byte WAIT ,20
!byte TYPE ,"C"
!byte TYPE ,"Y"
!byte TYPE ,"C"
!byte TYPE ,"L"
!byte TYPE ,"E"
!byte TYPE ,1
!byte WAIT ,20
!byte TYPE ,"A"
!byte TYPE ,"D"
!byte TYPE ,"M"
!byte TYPE ,"I"
!byte TYPE ,"T"
!byte TYPE ,0
!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 TYPE ,3
!byte WAIT ,20
!byte TYPE ,"E"
!byte TYPE ,"L"
!byte TYPE ,"I"
!byte TYPE ,"X"
!byte TYPE ,"I"
!byte TYPE ,"R"
!byte TYPE ,1
!byte WAIT ,20
!byte TYPE ,"H"
!byte TYPE ,"I"
!byte TYPE ,"J"
!byte TYPE ,"A"
!byte TYPE ,"C"
!byte TYPE ,"K"
!byte TYPE ,2
!byte WAIT ,20
!byte TYPE ,"B"
!byte TYPE ,"A"
!byte TYPE ,"B"
!byte TYPE ,"I"
!byte TYPE ,"E"
!byte TYPE ,"S"
!byte TYPE ,0
!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 TYPE ,1
!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 TYPE ,3
!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 TYPE ,0
!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 TYPE ,4
!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 TYPE ,2
!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 TYPE ,0
!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 TYPE ,1
!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 TYPE ,2
!byte NEXT
!byte EXIT