a2d/desk.acc/puzzle.s

937 lines
31 KiB
ArmAsm
Raw Normal View History

2017-09-11 03:40:32 +00:00
.org $800
.setcpu "65C02"
2017-09-11 03:40:32 +00:00
.include "apple2.inc"
.include "../inc/prodos.inc"
.include "../inc/auxmem.inc"
.include "a2d.inc"
L0000 := $0000
L0020 := $0020
L4015 := $4015
2017-09-11 03:40:32 +00:00
jmp L0828
2017-09-11 06:09:33 +00:00
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0
2017-09-11 03:40:32 +00:00
2017-09-11 06:09:33 +00:00
stash_stack: .byte 0
L0828: tsx
2017-09-11 03:40:32 +00:00
stx stash_stack
sta ALTZPOFF
lda $C082
2017-09-11 06:09:33 +00:00
lda #<L0870
2017-09-11 03:40:32 +00:00
sta STARTLO
2017-09-11 06:09:33 +00:00
lda #>L0870
2017-09-11 03:40:32 +00:00
sta STARTHI
lda #$F6
2017-09-11 03:40:32 +00:00
sta ENDLO
lda #$12
2017-09-11 03:40:32 +00:00
sta ENDHI
2017-09-11 06:09:33 +00:00
lda #<L0870
2017-09-11 03:40:32 +00:00
sta DESTINATIONLO
2017-09-11 06:09:33 +00:00
lda #>L0870
2017-09-11 03:40:32 +00:00
sta DESTINATIONHI
sec
jsr AUXMOVE
2017-09-11 06:09:33 +00:00
lda #<L0870
sta $03ED
2017-09-11 06:09:33 +00:00
lda #>L0870
sta $03EE
php
pla
ora #$40
pha
plp
sec
jmp XFER
L0862: sta ALTZPON
lda LCBANK1
lda LCBANK1
2017-09-11 03:40:32 +00:00
ldx stash_stack
txs
rts
2017-09-11 06:09:33 +00:00
L0870: sta ALTZPON
lda LCBANK1
lda LCBANK1
2017-09-11 06:09:33 +00:00
lda #0
sta $08
jmp L0E53
2017-09-11 06:09:33 +00:00
window_id = $33
L0880: ldx #$10
L0882: lda L08A3,x
sta L0020,x
dex
bpl L0882
jsr L0020
2017-09-11 06:09:33 +00:00
lda #window_id
jsr L08B4
bit L08B3
bmi L089D
jsr UNKNOWN_CALL
.byte $0C
.addr L0000
2017-09-11 06:09:33 +00:00
L089D: lda #0
sta L08B3
rts
L08A3: sta RAMRDOFF
sta RAMWRTOFF
jsr L4015
sta RAMRDON
sta RAMWRTON
rts
L08B3: brk
L08B4: sta L08E7
lda L0E02
cmp #$BF
bcc L08C4
lda #$80
sta L08B3
rts
2017-09-11 03:40:32 +00:00
L08C4: A2D_CALL A2D_QUERY_BOX, L08E7
A2D_CALL A2D_SET_BOX1, L0DB3
lda L08E7
2017-09-11 06:09:33 +00:00
cmp #window_id
bne L08DA
jmp L1072
L08DA: rts
2017-09-11 06:09:33 +00:00
L08DB: .byte 0
L08DC: .byte 0
L08DD: .byte 0,0,0
L08E0: .byte 0
L08E1: .byte 0
L08E2: .byte 0
L08E3: .byte 0,0,0
L08E6: .byte 0
L08E7: .byte 0,$B3,$0D
L08EA: .byte $05
2017-09-11 06:09:33 +00:00
L08EB: .byte 0
L08EC: .byte $03
L08ED: .byte $00,$21,$00,$03,$00,$3D,$00,$03
.byte $00,$59,$00,$03,$00,$05,$00,$13
.byte $00,$21,$00,$13,$00,$3D,$00,$13
.byte $00,$59,$00,$13,$00,$05,$00,$23
.byte $00,$21,$00,$23,$00,$3D,$00,$23
.byte $00,$59,$00,$23,$00,$05,$00,$33
.byte $00,$21,$00,$33,$00,$3D,$00,$33
.byte $00,$59,$00,$33,$00
2017-09-11 05:58:30 +00:00
.proc pattern_table
.addr piece1, piece2, piece3, piece4, piece5, piece6, piece7
.addr piece8, piece9, piece10, piece11, piece12, piece13, piece14
p15: .addr piece15
p16: .addr piece16
.endproc
2017-09-11 06:09:33 +00:00
;; Current position table
position_table := *
.byte 0,0,0,0
.byte 0,0,0,0
.byte 0,0,0,0
.byte 0,0,0,0
2017-09-11 05:58:30 +00:00
.proc draw_pattern_params
left: .word 0
top: .word 0
addr: .addr 0
stride: .byte 4
.byte 0,0,0,0,0
width: .word 27
height: .word 15
.endproc
piece1:
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece2:
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%0000000),px(%0011111),px(%1111110)
.byte px(%0111000),px(%1010101),px(%0100001),px(%1111110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece3:
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1110001),px(%1111110)
.byte px(%0111111),px(%1111111),px(%0010101),px(%0111110)
.byte px(%0111111),px(%1111101),px(%0101010),px(%1011110)
.byte px(%0111111),px(%1110010),px(%1010101),px(%0111110)
.byte px(%0111111),px(%1100101),px(%0101010),px(%0111110)
.byte px(%0111111),px(%0001010),px(%1010100),px(%1111110)
.byte px(%0111110),px(%1010101),px(%0101001),px(%1111110)
.byte px(%0111101),px(%0101010),px(%1000111),px(%1111110)
.byte px(%0111010),px(%1010101),px(%0011111),px(%1111110)
.byte px(%0110101),px(%0101000),px(%0111111),px(%1111110)
.byte px(%0110010),px(%1010011),px(%1111111),px(%1111110)
.byte px(%0110101),px(%0001111),px(%1111100),px(%0000000)
.byte px(%0110000),px(%1111111),px(%1000010),px(%1010100)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece4:
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0000111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0101000),px(%0111111),px(%1111111),px(%1111110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece5:
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1110100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1101010)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1011110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%0111110)
.byte px(%0111111),px(%1111111),px(%1111110),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111101),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111101),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111011),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1110111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1110111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1110110),px(%1101100)
.byte px(%0111111),px(%1111111),px(%1101101),px(%1011010)
.byte px(%0111111),px(%1111111),px(%1101011),px(%0110110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece6:
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0010101),px(%0101010),px(%1010101),px(%0101010)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0010101),px(%0101010),px(%1010101),px(%0101010)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0011011),px(%0110110),px(%1101101),px(%1011010)
.byte px(%0110110),px(%1101101),px(%1011011),px(%0110110)
.byte px(%0101101),px(%1011011),px(%0110110),px(%1101100)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece7:
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0010101),px(%0101010),px(%1010101),px(%0101010)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0010101),px(%0101010),px(%1010101),px(%0101010)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0110110),px(%1101101),px(%1011011),px(%0110110)
.byte px(%0101101),px(%1011011),px(%0110110),px(%1101100)
.byte px(%0011011),px(%0110110),px(%1101101),px(%1011010)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece8:
.byte px(%0101010),px(%1010001),px(%1111111),px(%1111110)
.byte px(%0010101),px(%0101010),px(%0111111),px(%1111110)
.byte px(%0101010),px(%1010101),px(%0001111),px(%1111110)
.byte px(%0010101),px(%0101010),px(%1000111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%0011111),px(%1111110)
.byte px(%0111111),px(%1111110),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111101),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111011),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1110111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1110111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1101111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1101111),px(%1111111),px(%1111110)
.byte px(%0101101),px(%1001111),px(%1111111),px(%1111110)
.byte px(%0011011),px(%0011111),px(%1111111),px(%1111110)
.byte px(%0110110),px(%1011111),px(%1111111),px(%1111110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece9:
.byte px(%0111111),px(%1111111),px(%1110011),px(%0110110)
.byte px(%0111111),px(%1111111),px(%1110110),px(%1101100)
.byte px(%0111111),px(%1111111),px(%1110101),px(%1011010)
.byte px(%0111111),px(%1111111),px(%1110011),px(%0110110)
.byte px(%0111111),px(%1111111),px(%1111010),px(%1010100)
.byte px(%0111111),px(%1111111),px(%1111010),px(%1010100)
.byte px(%0111111),px(%1111111),px(%1111100),px(%1010100)
.byte px(%0111111),px(%1111111),px(%1111110),px(%1010100)
.byte px(%0111111),px(%1111111),px(%1111110),px(%1010100)
.byte px(%0111111),px(%1111111),px(%1111110),px(%1010100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%0010100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1001100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1100110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1110100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111010)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece10:
.byte px(%0101101),px(%1011011),px(%0110110),px(%1101100)
.byte px(%0011011),px(%0110110),px(%1101101),px(%1011010)
.byte px(%0110110),px(%1101101),px(%1011011),px(%0110110)
.byte px(%0101101),px(%1011011),px(%0110110),px(%1101100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0100110),px(%0110011),px(%0011001),px(%1001100)
.byte px(%0110011),px(%0011001),px(%1001100),px(%1100110)
.byte px(%0100110),px(%0110011),px(%0011001),px(%1001100)
.byte px(%0110011),px(%0011001),px(%1001100),px(%1100110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece11:
.byte px(%0011011),px(%0110110),px(%1101101),px(%1011010)
.byte px(%0110110),px(%1101101),px(%1011011),px(%0110110)
.byte px(%0101101),px(%1011011),px(%0110110),px(%1101100)
.byte px(%0011011),px(%0110110),px(%1101101),px(%1011010)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0101010),px(%1010101),px(%0101010),px(%1010100)
.byte px(%0100110),px(%0110011),px(%0011001),px(%1001100)
.byte px(%0110011),px(%0011001),px(%1001100),px(%1100110)
.byte px(%0100110),px(%0110011),px(%0011001),px(%1001100)
.byte px(%0110011),px(%0011001),px(%1001100),px(%1100110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece12:
.byte px(%0110110),px(%1011111),px(%1111111),px(%1111110)
.byte px(%0101101),px(%1011111),px(%1111111),px(%1111110)
.byte px(%0011011),px(%0101111),px(%1111111),px(%1111110)
.byte px(%0110110),px(%1101111),px(%1111111),px(%1111110)
.byte px(%0101010),px(%1010111),px(%1111111),px(%1111110)
.byte px(%0101010),px(%1010011),px(%1111111),px(%1111110)
.byte px(%0101010),px(%1010011),px(%1111111),px(%1111110)
.byte px(%0101010),px(%1010101),px(%1111111),px(%1111110)
.byte px(%0101010),px(%1010100),px(%1111111),px(%1111110)
.byte px(%0101010),px(%1010101),px(%0011111),px(%1111110)
.byte px(%0101010),px(%1010101),px(%0100111),px(%1111110)
.byte px(%0100110),px(%0110011),px(%0010111),px(%1111110)
.byte px(%0110011),px(%0011001),px(%1001111),px(%1111110)
.byte px(%0100110),px(%0110011),px(%0001111),px(%1111110)
.byte px(%0110011),px(%0011001),px(%1011111),px(%1111110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece13: ; the gap
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111011),px(%1011101),px(%1101110),px(%1110110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0101110),px(%1110111),px(%0111011),px(%1011100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111011),px(%1011101),px(%1101110),px(%1110110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0101110),px(%1110111),px(%0111011),px(%1011100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111011),px(%1011101),px(%1101110),px(%1110110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0101110),px(%1110111),px(%0111011),px(%1011100)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111011),px(%1011101),px(%1101110),px(%1110110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece14:
.byte px(%0001100),px(%1100110),px(%0110011),px(%0011000)
.byte px(%0100110),px(%0110011),px(%0011001),px(%1001100)
.byte px(%0110011),px(%0011001),px(%1001100),px(%1100110)
.byte px(%0011011),px(%0110110),px(%1101101),px(%1011010)
.byte px(%0100101),px(%1011011),px(%0110110),px(%1101100)
.byte px(%0110010),px(%1101101),px(%1011011),px(%0110110)
.byte px(%0111001),px(%0110110),px(%1101101),px(%1011010)
.byte px(%0111110),px(%0111011),px(%0110110),px(%1101100)
.byte px(%0111111),px(%1000101),px(%1011000),px(%0000000)
.byte px(%0111111),px(%1111000),px(%0000001),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece15:
.byte px(%0001100),px(%1100110),px(%0110011),px(%0011000)
.byte px(%0100110),px(%0110011),px(%0011001),px(%1001100)
.byte px(%0110011),px(%0011001),px(%1001100),px(%1100110)
.byte px(%0110110),px(%1101101),px(%1011011),px(%0110110)
.byte px(%0011011),px(%0110110),px(%1101101),px(%1011010)
.byte px(%0101101),px(%1011011),px(%0110110),px(%1101100)
.byte px(%0110110),px(%1101101),px(%1011011),px(%0110110)
.byte px(%0011011),px(%0110110),px(%1101101),px(%1011010)
.byte px(%0000000),px(%0000000),px(%0000110),px(%1101100)
.byte px(%0111111),px(%1111111),px(%1100000),px(%0000010)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
piece16:
.byte px(%0001100),px(%1100110),px(%0011111),px(%1111110)
.byte px(%0100110),px(%0110011),px(%0111111),px(%1111110)
.byte px(%0110011),px(%0011000),px(%1111111),px(%1111110)
.byte px(%0101101),px(%1011001),px(%1111111),px(%1111110)
.byte px(%0110110),px(%1100111),px(%1111111),px(%1111110)
.byte px(%0011011),px(%0011111),px(%1111111),px(%1111110)
.byte px(%0101110),px(%0111111),px(%1111111),px(%1111110)
.byte px(%0100111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111110)
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000)
L0D6A: .byte $01,$00,$00,$00,$79,$00,$44,$00
L0D72: .byte $77,$DD,$77,$DD,$77,$DD,$77,$DD
.byte $00
L0D7B: .byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.byte $FF,$00
L0D8D: .byte $05,$00,$02,$00
L0D91: .byte $70,$00,$00,$00
L0D95: .byte $00
L0D96: .byte $00
L0D97: .byte $00
L0D98: .byte $00
L0D99: .byte $00
L0D9A: .byte $00
L0D9B: .byte $00
L0D9C: .byte $33,$73,$00,$F7,$FF,$AD,$0D,$01
.byte $00,$00,$00,$00,$00,$06,$00,$05
.byte $00,$41,$35,$47,$37,$36,$49
L0DB3: .byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$0D
.byte $00,$00,$20,$80,$00,$00,$00,$00
.byte $00,$2F,$02,$B1,$00,$00,$01,$02
.byte $06
L0DEC: .byte $33,$02,$4C,$0E,$00,$00,$00,$00
.byte $00,$00,$00,$00,$79,$00,$44,$00
.byte $79,$00,$44,$00,$DC,$00
L0E02: .byte $50,$00,$00,$20,$80,$00,$00,$00
.byte $00,$00,$79,$00,$44,$00,$FF,$FF
.byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$00
.byte $00,$00,$00,$00,$01,$01,$00,$7F
.byte $00,$88,$00,$00,$DC,$00,$50,$00
.byte $00,$20,$80,$00,$00,$00,$00,$00
.byte $79,$00,$44,$00,$FF,$FF,$FF,$FF
.byte $FF,$FF,$FF,$FF,$FF,$00,$00,$00
.byte $00,$00,$01,$01,$00,$7F,$00,$88
.byte $00,$00,$06,$50,$75,$7A,$7A,$6C
.byte $65
2017-09-11 06:09:33 +00:00
L0E53: jsr L10A5
2017-09-11 03:40:32 +00:00
A2D_CALL A2D_CREATE_WINDOW, L0DEC
ldy #$0F
L0E5E: tya
2017-09-11 06:09:33 +00:00
sta position_table,y
dey
bpl L0E5E
2017-09-11 06:09:33 +00:00
lda #window_id
jsr L08B4
2017-09-11 03:40:32 +00:00
A2D_CALL $2B
L0E70: ldy #$03
L0E72: tya
pha
2017-09-11 06:09:33 +00:00
ldx position_table
ldy #$00
2017-09-11 06:09:33 +00:00
L0E79: lda position_table+1,y
sta position_table,y
iny
cpy #$0F
bcc L0E79
2017-09-11 06:09:33 +00:00
stx position_table+15
pla
tay
dey
bne L0E72
2017-09-11 06:09:33 +00:00
ldx position_table
lda position_table+1
sta position_table
stx position_table+1
2017-09-11 03:40:32 +00:00
A2D_CALL A2D_GET_INPUT, L08DB
lda L08DB
beq L0E70
jsr L1262
bcs L0E70
jsr L11BB
jsr L12D2
2017-09-11 03:40:32 +00:00
L0EAE: A2D_CALL A2D_GET_INPUT, L08DB
lda L08DB
cmp #$01
bne L0EC1
jsr L0ECB
jmp L0EAE
L0EC1: cmp #$03
bne L0EAE
jsr L0F30
jmp L0EAE
2017-09-11 03:40:32 +00:00
L0ECB: A2D_CALL A2D_QUERY_TARGET, L08DC
lda L08E1
2017-09-11 06:09:33 +00:00
cmp #window_id
bne L0EDD
lda L08E0
bne L0EDE
L0EDD: rts
L0EDE: cmp #$02
bne L0EEA
jsr L0F3D
bcc L0EDD
jmp L0FBC
L0EEA: cmp #$05
bne L0F1B
2017-09-11 03:40:32 +00:00
A2D_CALL A2D_CLOSE_CLICK, L08E6
lda L08E6
beq L0EDD
2017-09-11 03:40:32 +00:00
L0EF9: A2D_CALL A2D_DESTROY_WINDOW, L0D9C
jsr UNKNOWN_CALL
.byte $0C
.addr L0000
2017-09-11 03:40:32 +00:00
ldx #$09
L0F07: lda L0F12,x
sta L0020,x
dex
bpl L0F07
jmp L0020
L0F12: sta RAMRDOFF
sta RAMWRTOFF
jmp L0862
L0F1B: cmp #$03
bne L0EDD
2017-09-11 06:09:33 +00:00
lda #window_id
sta L08DB
2017-09-11 03:40:32 +00:00
A2D_CALL A2D_DRAG_WINDOW, L08DB
ldx #$23
jsr L0880
rts
L0F30: lda L08DD
bne L0F3C
lda L08DC
cmp #$1B
beq L0EF9
L0F3C: rts
2017-09-11 06:09:33 +00:00
L0F3D: lda #window_id
sta L08DB
2017-09-11 03:40:32 +00:00
A2D_CALL A2D_MAP_COORDS, L08DB
lda L08E1
ora L08E3
bne L0F91
lda L08E2
ldx L08E0
cmp #$03
bcc L0F91
cmp #$14
bcs L0F67
jsr L0F93
bcc L0F91
lda #$00
beq L0F8C
L0F67: cmp #$24
bcs L0F74
jsr L0F93
bcc L0F91
lda #$01
bne L0F8C
L0F74: cmp #$34
bcs L0F81
jsr L0F93
bcc L0F91
lda #$02
bne L0F8C
L0F81: cmp #$44
bcs L0F91
jsr L0F93
bcc L0F91
lda #$03
L0F8C: sta L0D98
sec
rts
L0F91: clc
rts
L0F93: cpx #$05
bcc L0FBA
cpx #$21
bcs L0F9F
lda #$00
beq L0FB5
L0F9F: cpx #$3E
bcs L0FA7
lda #$01
bne L0FB5
L0FA7: cpx #$5A
bcs L0FAF
lda #$02
bne L0FB5
L0FAF: cpx #$75
bcs L0FBA
lda #$03
L0FB5: sta L0D97
sec
rts
L0FBA: clc
rts
L0FBC: lda #$00
ldy L0D96
beq L0FC9
L0FC3: clc
adc #$04
dey
bne L0FC3
L0FC9: sta L0D99
clc
adc L0D95
tay
lda L0D97
cmp L0D95
beq L1014
lda L0D98
cmp L0D96
beq L0FE2
L0FE1: rts
L0FE2: lda L0D97
cmp L0D95
beq L0FE1
bcs L1000
lda L0D95
sec
sbc L0D97
tax
2017-09-11 06:09:33 +00:00
L0FF4: lda position_table-1,y
sta position_table,y
dey
dex
bne L0FF4
beq L1055
L1000: lda L0D97
sec
sbc L0D95
tax
2017-09-11 06:09:33 +00:00
L1008: lda position_table+1,y
sta position_table,y
iny
dex
bne L1008
beq L1055
L1014: lda L0D98
cmp L0D96
beq L0FE1
bcs L1035
lda L0D96
sec
sbc L0D98
tax
2017-09-11 06:09:33 +00:00
L1026: lda position_table-4,y
sta position_table,y
dey
dey
dey
dey
dex
bne L1026
beq L104A
L1035: lda L0D98
sec
sbc L0D96
tax
2017-09-11 06:09:33 +00:00
L103D: lda position_table+4,y
sta position_table,y
iny
iny
iny
iny
dex
bne L103D
L104A: lda #$0C
2017-09-11 06:09:33 +00:00
sta position_table,y
jsr L11D9
jmp L105D
L1055: lda #$0C
2017-09-11 06:09:33 +00:00
sta position_table,y
jsr L11C8
L105D: jsr L1262
bcc L106E
ldx #$04
L1064: txa
pha
jsr L1247
pla
tax
dex
bne L1064
L106E: jmp L12D2
rts
2017-09-11 03:40:32 +00:00
L1072: A2D_CALL A2D_SET_PATTERN, L0D72
A2D_CALL A2D_FILL_RECT, L0D6A
A2D_CALL A2D_SET_PATTERN, L0D7B
A2D_CALL A2D_SET_POS, L0D8D
A2D_CALL $0F, L0D91
jsr L11BB
2017-09-11 06:09:33 +00:00
lda #window_id
sta L08E7
2017-09-11 03:40:32 +00:00
A2D_CALL A2D_QUERY_BOX, L08E7
A2D_CALL A2D_SET_BOX1, L0DB3
rts
L10A5: ldx #$00
L10A7: lda L0000,x
sta L10BB,x
dex
bne L10A7
rts
ldx #$00
L10B2: lda L10BB,x
sta L0000,x
dex
bne L10B2
rts
2017-09-11 06:09:33 +00:00
L10BB: .byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
2017-09-11 03:40:32 +00:00
L11BB: ldy #$01
sty L0D9B
dey
lda #$10
sta L0D9A
bne L11E6
L11C8: lda #$01
sta L0D9B
lda L0D99
tay
clc
adc #$04
sta L0D9A
bne L11E6
L11D9: lda #$04
sta L0D9B
ldy L0D95
lda #$10
sta L0D9A
L11E6: tya
pha
2017-09-11 03:40:32 +00:00
A2D_CALL A2D_HIDE_CURSOR
2017-09-11 06:09:33 +00:00
lda #window_id
sta L08E7
2017-09-11 03:40:32 +00:00
A2D_CALL A2D_QUERY_BOX, L08E7
A2D_CALL A2D_SET_BOX1, L0DB3
pla
tay
L1201: tya
pha
asl a
asl a
tax
lda L08EA,x
2017-09-11 05:58:30 +00:00
sta draw_pattern_params::left
lda L08EB,x
2017-09-11 05:58:30 +00:00
sta draw_pattern_params::left+1
lda L08EC,x
2017-09-11 05:58:30 +00:00
sta draw_pattern_params::top
lda L08ED,x
2017-09-11 05:58:30 +00:00
sta draw_pattern_params::top+1
2017-09-11 06:09:33 +00:00
lda position_table,y
asl a
tax
2017-09-11 05:58:30 +00:00
lda pattern_table,x
sta draw_pattern_params::addr
lda pattern_table+1,x
sta draw_pattern_params::addr+1
A2D_CALL A2D_DRAW_PATTERN, draw_pattern_params
pla
clc
adc L0D9B
tay
cpy L0D9A
bcc L1201
2017-09-11 03:40:32 +00:00
A2D_CALL A2D_SHOW_CURSOR
rts
L1247: ldx #$80
L1249: lda #$58
L124B: ldy #$1B
L124D: dey
bne L124D
bit $C030
tay
L1254: dey
bne L1254
sbc #$01
beq L1249
bit $C030
dex
bne L124B
rts
2017-09-11 06:09:33 +00:00
L1262: lda position_table
beq L126B
cmp #$0C
bne L12D0
L126B: ldy #$01
L126D: tya
2017-09-11 06:09:33 +00:00
cmp position_table,y
bne L12D0
iny
cpy #$05
bcc L126D
2017-09-11 06:09:33 +00:00
lda position_table+5
cmp #$05
beq L1283
cmp #$06
bne L12D0
2017-09-11 06:09:33 +00:00
L1283: lda position_table+6
cmp #$05
beq L128E
cmp #$06
bne L12D0
2017-09-11 06:09:33 +00:00
L128E: lda position_table+7
cmp #$07
bne L12D0
2017-09-11 06:09:33 +00:00
lda position_table+8
cmp #$08
bne L12D0
2017-09-11 06:09:33 +00:00
lda position_table+9
cmp #$09
beq L12A7
cmp #$0A
bne L12D0
2017-09-11 06:09:33 +00:00
L12A7: lda position_table+10
cmp #$09
beq L12B2
cmp #$0A
bne L12D0
2017-09-11 06:09:33 +00:00
L12B2: lda position_table+11
cmp #$0B
bne L12D0
2017-09-11 06:09:33 +00:00
lda position_table+12
beq L12C2
cmp #$0C
bne L12D0
L12C2: ldy #$0D
L12C4: tya
2017-09-11 06:09:33 +00:00
cmp position_table,y
bne L12D0
iny
cpy #$10
bcc L12C4
rts
L12D0: clc
rts
L12D2: ldy #$0F
2017-09-11 06:09:33 +00:00
L12D4: lda position_table,y
cmp #$0C
beq L12DE
dey
bpl L12D4
2017-09-11 06:09:33 +00:00
L12DE: lda #0
sta L0D95
sta L0D96
tya
2017-09-11 06:09:33 +00:00
L12E7: cmp #4
bcc L12F2
2017-09-11 06:09:33 +00:00
sbc #4
inc L0D96
bne L12E7
L12F2: sta L0D95
rts