Initial disassembly snapshot for Date and Puzzle

This commit is contained in:
Joshua Bell 2017-09-10 20:18:29 -07:00
parent 7807f9d17e
commit 275255db02
14 changed files with 1869 additions and 17 deletions

View File

@ -4,7 +4,7 @@ CAFLAGS = --target apple2enh --list-bytes 0
CCFLAGS = --config apple2-asm.cfg
# ProDOS file type is $F1 ($ is pesky)
TARGETS = calculator.F1 show_text_file.F1 show_image_file.F1
TARGETS = calculator.F1 show_text_file.F1 date.F1 puzzle.F1 show_image_file.F1
.PHONY: clean all
all: $(TARGETS)

View File

@ -1,9 +1,9 @@
Disassembly of the desk accessories:
* [Calculator](calculator.s) - in progress!
* Date - _not started_
* Puzzle - _not started_
* [Show Text File](show_text_file.s) - in progress!
* [Show Text File](show_text_file.s) - in progress! 90% complete
* [Calculator](calculator.s) - in progress! 90% complete
* [Date](date.s) - in progress! 0% complete
* [Puzzle](puzzle.s) - in progress! 0% complete
* Sort Directory - _not started_
New desk accessories:
@ -20,17 +20,17 @@ New desk accessories:
* `Makefile` - cleans/builds targets
* `go.sh` - bash script to build, verify, and copy files
* `*.bin` - original binary (type $F1, start $800)
* `*.info` - da65 "info" file - used to inform disassembly
* `orig/*.bin` - original binary (type $F1, start $800)
* `infos/*.info` - da65 "info" file - used to inform disassembly
* `*.s` - source (originally generated using da65, now modified)
## Build Instructions
On Unix-like systems (including Mac OS X) `make all` should build
build the desk accessory files (original and new) and output
files with a `.f1` suffix, representing the $F1 file type required.
files with a `.F1` suffix, representing the $F1 file type required.
For the original DAs, the `.f1` and `.bin` files can be compared
For the original DAs, the `.F1` and `.bin` files can be compared
using `diff` to ensure that no changes have been introduced by the
disassembly process.
@ -45,7 +45,7 @@ Tips:
## Install Instructions
Transfer the `.f1` files to your Apple (real or virtual) ensuring you:
Transfer the `.F1` files to your Apple (real or virtual) ensuring you:
* Drop the suffix
* Replace `.` in the name with spaces

781
desk.acc/date.s Normal file
View File

@ -0,0 +1,781 @@
.org $800
; da65 V2.16 - Git f5e9b401
; Created: 2017-09-10 20:12:54
; Input file: date.bin
; Page: 1
.setcpu "65C02"
L0000 := $0000
L0020 := $0020
L1000 := $1000
A2D := $4000
L4021 := $4021
UNKNOWN_CALL := $8E00
MLI := $BF00
RAMRDOFF := $C002
RAMRDON := $C003
RAMWRTOFF := $C004
RAMWRTON := $C005
ALTZPOFF := $C008
ALTZPON := $C009
LCBANK1 := $C08B
AUXMOVE := $C311
XFER := $C314
FSUB := $E7A7
FADD := $E7BE
FMULT := $E97F
FDIV := $EA66
ROUND := $EB2B
FLOAT := $EB93
FIN := $EC4A
FOUT := $ED34
jmp L0825
L0803: .byte $00,$09,$4D,$44,$2E,$53,$59,$53
.byte $54,$45,$4D,$03,$04,$08,$00,$09
L0813: .byte $00,$02
L0815: .byte $00,$03,$00,$00,$04
L081A: .byte $00,$23,$08,$02,$00,$00,$00,$01
L0822: .byte $00
L0823: .byte $00
L0824: .byte $00
L0825: tsx
stx L0803
sta ALTZPOFF
lda $C082
lda $BF90
sta L090F
lda $BF91
sta L0910
lda #$B8
sta $3C
lda #$08
sta $3D
lda #$2D
sta $3E
lda #$0F
sta $3F
lda #$B8
sta $42
lda #$08
sta $43
sec
jsr AUXMOVE
lda #$B8
sta $03ED
lda #$08
sta $03EE
php
pla
ora #$40
pha
plp
sec
jmp XFER
L086B: sta ALTZPON
sta L0823
stx L0824
lda LCBANK1
lda LCBANK1
lda L0823
beq L08B3
ldy #$C8
lda #$0E
ldx #$08
jsr L4021
bne L08B3
lda L0813
sta L0815
sta L081A
sta L0822
ldy #$CE
lda #$14
ldx #$08
jsr L4021
bne L08AA
ldy #$CB
lda #$19
ldx #$08
jsr L4021
L08AA: ldy #$CC
lda #$21
ldx #$08
jsr L4021
L08B3: ldx L0803
txs
rts
sta ALTZPON
lda LCBANK1
lda LCBANK1
jmp L0986
L08C4: .byte $6A,$00,$2E,$00,$B5,$00,$39,$00
L08CC: .byte $10,$00,$2E,$00,$5A,$00,$39,$00
L08D4: .byte $AA,$00,$0A,$00,$B4,$00,$14,$00
L08DC: .byte $AA,$00,$1E,$00,$B4,$00,$28,$00
L08E4: .byte $25,$00,$14,$00,$3B,$00,$1E,$00
L08EC: .byte $51,$00,$14,$00,$6F,$00,$1E,$00
L08F4: .byte $7F,$00,$14,$00,$95,$00,$1E,$00
L08FC: .byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $FF
L0905: .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.byte $FF
L090E: .byte $00
L090F: .byte $00
L0910: .byte $00
L0911: .byte $1A
L0912: .byte $02
L0913: .byte $55
L0914: .byte $17,$09,$04,$20,$20,$20,$20
L091B: .byte $2B,$00,$1E,$00
L091F: .byte $22,$09,$02
L0922: .byte $20
L0923: .byte $20
L0924: .byte $57,$00,$1E,$00
L0928: .byte $2B,$09,$03,$20,$20,$20
L092E: .byte $85,$00,$1E,$00
L0932: .byte $35,$09,$02
L0935: .byte $20
L0936: .byte $20
L0937: .byte $00
L0938: .byte $00
L0939: .byte $00
L093A: .byte $00
L093B: .byte $00
L093C: .byte $00
L093D: .byte $00
L093E: .byte $64
L093F: .byte $00
L0940: .byte $00
L0941: .byte $00
L0942: .byte $00
L0943: .byte $00,$00,$00,$00
L0947: .byte $64,$00,$01
L094A: .byte $02,$06
L094C: .byte $64,$01,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$64,$00,$64,$00
.byte $F4,$01,$F4,$01
L0960: .byte $B4,$00,$32,$00,$00,$20,$80,$00
.byte $00,$00,$00,$00,$C7,$00,$40,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $FF,$00,$00,$00,$00,$00,$04,$02
.byte $00,$7F,$00,$88,$00,$00
L0986: jsr L0E00
lda L0910
lsr a
sta L0913
lda L090F
and #$1F
sta L0911
lda L0910
ror a
lda L090F
ror a
lsr a
lsr a
lsr a
lsr a
sta L0912
jsr A2D
.byte $38
.addr L094C
lda #$00
sta L090E
jsr L0CF0
jsr A2D
.byte $2B
.addr L0000
L09BB: jsr A2D
.byte $2A
.addr L0937
lda L0937
cmp #$01
bne L09CE
jsr L0A45
jmp L09BB
L09CE: cmp #$03
bne L09BB
lda L0939
bne L09BB
lda L0938
cmp #$0D
bne L09E1
jmp L0A92
L09E1: cmp #$1B
bne L09E8
jmp L0ABB
L09E8: cmp #$08
beq L0A26
cmp #$15
beq L0A33
cmp #$0A
beq L0A0F
cmp #$0B
bne L09BB
jsr A2D
.byte $11
.addr L08D4
lda #$03
sta L0B50
jsr L0B17
jsr A2D
.byte $11
.addr L08D4
jmp L09BB
L0A0F: jsr A2D
.byte $11
.addr L08DC
lda #$04
sta L0B50
jsr L0B17
jsr A2D
.byte $11
.addr L08DC
jmp L09BB
L0A26: sec
lda L090E
sbc #$01
bne L0A3F
lda #$03
jmp L0A3F
L0A33: clc
lda L090E
adc #$01
cmp #$04
bne L0A3F
lda #$01
L0A3F: jsr L0DB4
jmp L09BB
L0A45: jsr A2D
.byte $40
.addr L0938
jsr A2D
.byte $07
.addr L094A
jsr A2D
.byte $08
.addr L0905
lda L093D
cmp #$64
bne L0A63
lda L093C
bne L0A64
L0A63: rts
L0A64: cmp #$02
bne L0A63
jsr L0C54
cpx #$00
beq L0A63
txa
sec
sbc #$01
asl a
tay
lda L0A84,y
sta L0A82
lda L0A85,y
sta L0A83
L0A82 := * + 1
L0A83 := * + 2
jmp L1000
L0A84: .byte $92
L0A85: .byte $0A,$BB,$0A,$C9,$0A,$D7,$0A,$E5
.byte $0A,$E5,$0A,$E5,$0A
L0A92: jsr A2D
.byte $11
.addr L08C4
sta RAMWRTOFF
lda L0912
asl a
asl a
asl a
asl a
asl a
ora L0911
sta $BF90
lda L0913
rol a
sta $BF91
sta RAMWRTON
lda #$01
sta L0C1A
jmp L0C1B
L0ABB: jsr A2D
.byte $11
.addr L08CC
lda #$00
sta L0C1A
jmp L0C1B
txa
pha
jsr A2D
.byte $11
.addr L08D4
pla
tax
jsr L0AEC
rts
txa
pha
jsr A2D
.byte $11
.addr L08DC
pla
tax
jsr L0AEC
rts
txa
sec
sbc #$04
jmp L0DB4
L0AEC: stx L0B50
L0AEF: jsr A2D
.byte $2A
.addr L0937
lda L0937
cmp #$02
beq L0B02
jsr L0B17
jmp L0AEF
L0B02: lda L0B50
cmp #$03
beq L0B10
jsr A2D
.byte $11
.addr L08DC
rts
L0B10: jsr A2D
.byte $11
.addr L08D4
rts
L0B17: jsr L0DF2
lda L0B50
cmp #$03
beq L0B2C
lda #$59
sta $07
lda #$0B
sta $08
jmp L0B34
L0B2C: lda #$51
sta $07
lda #$0B
sta $08
L0B34: lda L090E
asl a
tay
lda ($07),y
sta L0B45
iny
lda ($07),y
sta L0B46
L0B45 := * + 1
L0B46 := * + 2
jsr L1000
jsr A2D
.byte $0C
.addr L08FC
jmp L0D73
L0B50: .byte $00,$00,$00,$61,$0B,$73,$0B,$85
.byte $0B,$00,$00,$97,$0B,$A4,$0B,$B1
.byte $0B
clc
lda L0911
adc #$01
cmp #$20
bne L0B6D
lda #$01
L0B6D: sta L0911
jmp L0BBE
clc
lda L0912
adc #$01
cmp #$0D
bne L0B7F
lda #$01
L0B7F: sta L0912
jmp L0BCB
clc
lda L0913
adc #$01
cmp #$64
bne L0B91
lda #$00
L0B91: sta L0913
jmp L0C0D
dec L0911
bne L0BA1
lda #$1F
sta L0911
L0BA1: jmp L0BBE
dec L0912
bne L0BAE
lda #$0C
sta L0912
L0BAE: jmp L0BCB
dec L0913
bpl L0BBB
lda #$63
sta L0913
L0BBB: jmp L0C0D
L0BBE: lda L0911
jsr L0F16
sta L0922
stx L0923
rts
L0BCB: lda L0912
asl a
clc
adc L0912
tax
dex
lda #$2B
sta $07
lda #$09
sta $08
ldy #$02
L0BDF: lda L0BE9,x
sta ($07),y
dex
dey
bpl L0BDF
rts
L0BE9: .byte $4A,$61,$6E,$46,$65,$62,$4D,$61
.byte $72,$41,$70,$72,$4D,$61,$79,$4A
.byte $75,$6E,$4A,$75,$6C,$41,$75,$67
.byte $53,$65,$70,$4F,$63,$74,$4E,$6F
.byte $76,$44,$65,$63
L0C0D: lda L0913
jsr L0F16
sta L0935
stx L0936
rts
L0C1A: brk
L0C1B: jsr A2D
.byte $39
.addr L0947
jsr UNKNOWN_CALL
.byte $0C
.addr L0000
ldx #$09
L0C29: lda L0C4B,x
sta L0020,x
dex
bpl L0C29
lda L0C1A
beq L0C48
lda L0912
asl a
asl a
asl a
asl a
asl a
ora L0911
tay
lda L0913
rol a
tax
tya
L0C48: jmp L0020
L0C4B: sta RAMRDOFF
sta RAMWRTOFF
jmp L086B
L0C54: lda L0938
sta L093F
lda L0939
sta L0940
lda L093A
sta L0941
lda L093B
sta L0942
jsr A2D
.byte $46
.addr L093E
jsr A2D
.byte $0E
.addr L0943
ldx #$01
lda #$C4
sta L0C8A
lda #$08
sta L0C8A+1
L0C84: txa
pha
jsr A2D
.byte $13
L0C8A: .addr L1000
bne L0CA6
clc
lda L0C8A
adc #$08
sta L0C8A
bcc L0C9C
inc L0C8A+1
L0C9C: pla
tax
inx
cpx #$08
bne L0C84
ldx #$00
rts
L0CA6: pla
tax
rts
L0CA9: .byte $04,$00,$02,$00,$C0,$00,$3D,$00
L0CB1: .byte $20,$00,$0F,$00,$9A,$00,$23,$00
L0CB9: .byte $BC,$0C,$0C,$4F,$4B,$20,$20,$20
.byte $20,$20,$20,$20,$20,$20,$0D
L0CC8: .byte $CB,$0C,$0B,$43,$61,$6E,$63,$65
.byte $6C,$20,$20,$45,$53,$43
L0CD6: .byte $D9,$0C,$01,$0B
L0CDA: .byte $DD,$0C,$01,$0A
L0CDE: .byte $15,$00,$38,$00
L0CE2: .byte $6E,$00,$38,$00
L0CE6: .byte $AC,$00,$13,$00
L0CEA: .byte $AC,$00,$27,$00
L0CEE: .byte $01,$01
L0CF0: jsr A2D
.byte $04
.addr L0960
jsr A2D
.byte $12
.addr L0CA9
jsr A2D
.byte $0A
.addr L0CEE
jsr A2D
.byte $12
.addr L0CB1
jsr A2D
.byte $12
.addr L08C4
jsr A2D
.byte $12
.addr L08CC
jsr A2D
.byte $0E
.addr L0CE2
jsr A2D
.byte $19
.addr L0CB9
jsr A2D
.byte $0E
.addr L0CDE
jsr A2D
.byte $19
.addr L0CC8
jsr A2D
.byte $0E
.addr L0CE6
jsr A2D
.byte $19
.addr L0CD6
jsr A2D
.byte $12
.addr L08D4
jsr A2D
.byte $0E
.addr L0CEA
jsr A2D
.byte $19
.addr L0CDA
jsr A2D
.byte $12
.addr L08DC
jsr L0BBE
jsr L0BCB
jsr L0C0D
jsr L0D81
jsr L0D8E
jsr L0DA7
jsr A2D
.byte $07
.addr L094A
jsr A2D
.byte $08
.addr L0905
lda #$01
jmp L0DB4
L0D73: lda L090E
cmp #$01
beq L0D81
cmp #$02
beq L0D8E
jmp L0DA7
L0D81: jsr A2D
.byte $0E
.addr L091B
jsr A2D
.byte $19
.addr L091F
rts
L0D8E: jsr A2D
.byte $0E
.addr L0924
jsr A2D
.byte $19
.addr L0914
jsr A2D
.byte $0E
.addr L0924
jsr A2D
.byte $19
.addr L0928
rts
L0DA7: jsr A2D
.byte $0E
.addr L092E
jsr A2D
.byte $19
.addr L0932
rts
L0DB4: pha
lda L090E
beq L0DD1
cmp #$01
bne L0DC4
jsr L0DE4
jmp L0DD1
L0DC4: cmp #$02
bne L0DCE
jsr L0DEB
jmp L0DD1
L0DCE: jsr L0DDD
L0DD1: pla
sta L090E
cmp #$01
beq L0DE4
cmp #$02
beq L0DEB
L0DDD: jsr A2D
.byte $11
.addr L08F4
rts
L0DE4: jsr A2D
.byte $11
.addr L08E4
rts
L0DEB: jsr A2D
.byte $11
.addr L08EC
rts
L0DF2: lda #$FF
sec
L0DF5: pha
L0DF6: sbc #$01
bne L0DF6
pla
sbc #$01
bne L0DF5
rts
L0E00: ldx #$00
L0E02: lda L0000,x
sta L0E16,x
dex
bne L0E02
rts
ldx #$00
L0E0D: lda L0E16,x
sta L0000,x
dex
bne L0E0D
rts
L0E16: .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,$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,$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,$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,$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,$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,$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,$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
L0F16: ldy #$00
L0F18: cmp #$0A
bcc L0F23
sec
sbc #$0A
iny
jmp L0F18
L0F23: clc
adc #$30
tax
tya
clc
adc #$30
rts
rts

View File

@ -9,7 +9,7 @@ function do_make {
}
function verify {
diff "$1.bin" "$1.F1" \
diff "orig/$1.bin" "$1.F1" \
&& (tput setaf 2 ; echo "diff $1 good" ; tput sgr0 ) \
|| (tput setaf 1 ; tput blink ; echo -e "DIFF $1 BAD" ; tput sgr0 ; return 1)
}
@ -20,6 +20,8 @@ do_make all
# Verify original and output match
verify "calculator"
verify "show_text_file"
verify "date"
verify "puzzle"
cat show_image_file.F1 > mount/SHOW.IMAGE.FILE.\$F1 \
&& echo "Updated mounted file"

144
desk.acc/infos/date.info Normal file
View File

@ -0,0 +1,144 @@
GLOBAL {
STARTADDR $0800;
PAGELENGTH 0; # No paging
CPU "65C02";
};
LABEL { NAME "RAMRDOFF"; ADDR $C002; };
LABEL { NAME "RAMRDON"; ADDR $C003; };
LABEL { NAME "RAMWRTOFF"; ADDR $C004; };
LABEL { NAME "RAMWRTON"; ADDR $C005; };
LABEL { NAME "ALTZPOFF"; ADDR $C008; };
LABEL { NAME "ALTZPON"; ADDR $C009; };
LABEL { NAME "LCBANK1"; ADDR $C08B; };
LABEL { NAME "AUXMOVE"; ADDR $C311; };
LABEL { NAME "XFER"; ADDR $C314; };
LABEL { NAME "A2D"; ADDR $4000; };
LABEL { NAME "UNKNOWN_CALL"; ADDR $8E00; };
LABEL { NAME "MLI"; ADDR $BF00; };
LABEL { NAME "FSUB"; ADDR $E7A7; };
LABEL { NAME "FADD"; ADDR $E7BE; };
LABEL { NAME "FMULT"; ADDR $E97F; };
LABEL { NAME "FDIV"; ADDR $EA66; };
LABEL { NAME "ROUND"; ADDR $EB2B; };
LABEL { NAME "FLOAT"; ADDR $EB93; };
LABEL { NAME "FIN"; ADDR $EC4A; };
LABEL { NAME "FOUT"; ADDR $ED34; };
RANGE { START $0803; END $0824; TYPE ByteTable; };
RANGE { START $08A5; END $08B3; TYPE Code; };
RANGE { START $08C4; END $0985; TYPE ByteTable; };
RANGE { START $0A7E; END $0A83; TYPE Code; };
RANGE { START $0A84; END $0A91; TYPE ByteTable; };
RANGE { START $0B38; END $0B49; TYPE Code; };
RANGE { START $0B50; END $0B60; TYPE ByteTable; };
RANGE { START $0BE9; END $0C0C; TYPE ByteTable; };
RANGE { START $0CA9; END $0CEF; TYPE ByteTable; };
RANGE { START $0E16; END $0F15; TYPE ByteTable; };
RANGE { START $09aa; END $09aa; TYPE ByteTable; };
RANGE { START $09ab; END $09ac; TYPE AddrTable; };
RANGE { START $09b8; END $09b8; TYPE ByteTable; };
RANGE { START $09b9; END $09ba; TYPE AddrTable; };
RANGE { START $09be; END $09be; TYPE ByteTable; };
RANGE { START $09bf; END $09c0; TYPE AddrTable; };
RANGE { START $09fb; END $09fb; TYPE ByteTable; };
RANGE { START $09fc; END $09fd; TYPE AddrTable; };
RANGE { START $0a09; END $0a09; TYPE ByteTable; };
RANGE { START $0a0a; END $0a0b; TYPE AddrTable; };
RANGE { START $0a12; END $0a12; TYPE ByteTable; };
RANGE { START $0a13; END $0a14; TYPE AddrTable; };
RANGE { START $0a20; END $0a20; TYPE ByteTable; };
RANGE { START $0a21; END $0a22; TYPE AddrTable; };
RANGE { START $0a48; END $0a48; TYPE ByteTable; };
RANGE { START $0a49; END $0a4a; TYPE AddrTable; };
RANGE { START $0a4e; END $0a4e; TYPE ByteTable; };
RANGE { START $0a4f; END $0a50; TYPE AddrTable; };
RANGE { START $0a54; END $0a54; TYPE ByteTable; };
RANGE { START $0a55; END $0a56; TYPE AddrTable; };
RANGE { START $0a95; END $0a95; TYPE ByteTable; };
RANGE { START $0a96; END $0a97; TYPE AddrTable; };
RANGE { START $0abe; END $0abe; TYPE ByteTable; };
RANGE { START $0abf; END $0ac0; TYPE AddrTable; };
RANGE { START $0ace; END $0ace; TYPE ByteTable; };
RANGE { START $0acf; END $0ad0; TYPE AddrTable; };
RANGE { START $0adc; END $0adc; TYPE ByteTable; };
RANGE { START $0add; END $0ade; TYPE AddrTable; };
RANGE { START $0af2; END $0af2; TYPE ByteTable; };
RANGE { START $0af3; END $0af4; TYPE AddrTable; };
RANGE { START $0b0c; END $0b0c; TYPE ByteTable; };
RANGE { START $0b0d; END $0b0e; TYPE AddrTable; };
RANGE { START $0b13; END $0b13; TYPE ByteTable; };
RANGE { START $0b14; END $0b15; TYPE AddrTable; };
RANGE { START $0b4a; END $0b4a; TYPE ByteTable; };
RANGE { START $0b4b; END $0b4c; TYPE AddrTable; };
RANGE { START $0c1e; END $0c1e; TYPE ByteTable; };
RANGE { START $0c1f; END $0c20; TYPE AddrTable; };
RANGE { START $0c24; END $0c24; TYPE ByteTable; };
RANGE { START $0c25; END $0c26; TYPE AddrTable; };
RANGE { START $0c6f; END $0c6f; TYPE ByteTable; };
RANGE { START $0c70; END $0c71; TYPE AddrTable; };
RANGE { START $0c75; END $0c75; TYPE ByteTable; };
RANGE { START $0c76; END $0c77; TYPE AddrTable; };
RANGE { START $0c89; END $0c89; TYPE ByteTable; };
RANGE { START $0c8a; END $0c8b; TYPE AddrTable; };
RANGE { START $0cf3; END $0cf3; TYPE ByteTable; };
RANGE { START $0cf4; END $0cf5; TYPE AddrTable; };
RANGE { START $0cf9; END $0cf9; TYPE ByteTable; };
RANGE { START $0cfa; END $0cfb; TYPE AddrTable; };
RANGE { START $0cff; END $0cff; TYPE ByteTable; };
RANGE { START $0d00; END $0d01; TYPE AddrTable; };
RANGE { START $0d05; END $0d05; TYPE ByteTable; };
RANGE { START $0d06; END $0d07; TYPE AddrTable; };
RANGE { START $0d0b; END $0d0b; TYPE ByteTable; };
RANGE { START $0d0c; END $0d0d; TYPE AddrTable; };
RANGE { START $0d11; END $0d11; TYPE ByteTable; };
RANGE { START $0d12; END $0d13; TYPE AddrTable; };
RANGE { START $0d17; END $0d17; TYPE ByteTable; };
RANGE { START $0d18; END $0d19; TYPE AddrTable; };
RANGE { START $0d1d; END $0d1d; TYPE ByteTable; };
RANGE { START $0d1e; END $0d1f; TYPE AddrTable; };
RANGE { START $0d23; END $0d23; TYPE ByteTable; };
RANGE { START $0d24; END $0d25; TYPE AddrTable; };
RANGE { START $0d29; END $0d29; TYPE ByteTable; };
RANGE { START $0d2a; END $0d2b; TYPE AddrTable; };
RANGE { START $0d2f; END $0d2f; TYPE ByteTable; };
RANGE { START $0d30; END $0d31; TYPE AddrTable; };
RANGE { START $0d35; END $0d35; TYPE ByteTable; };
RANGE { START $0d36; END $0d37; TYPE AddrTable; };
RANGE { START $0d3b; END $0d3b; TYPE ByteTable; };
RANGE { START $0d3c; END $0d3d; TYPE AddrTable; };
RANGE { START $0d41; END $0d41; TYPE ByteTable; };
RANGE { START $0d42; END $0d43; TYPE AddrTable; };
RANGE { START $0d47; END $0d47; TYPE ByteTable; };
RANGE { START $0d48; END $0d49; TYPE AddrTable; };
RANGE { START $0d4d; END $0d4d; TYPE ByteTable; };
RANGE { START $0d4e; END $0d4f; TYPE AddrTable; };
RANGE { START $0d65; END $0d65; TYPE ByteTable; };
RANGE { START $0d66; END $0d67; TYPE AddrTable; };
RANGE { START $0d6b; END $0d6b; TYPE ByteTable; };
RANGE { START $0d6c; END $0d6d; TYPE AddrTable; };
RANGE { START $0d84; END $0d84; TYPE ByteTable; };
RANGE { START $0d85; END $0d86; TYPE AddrTable; };
RANGE { START $0d8a; END $0d8a; TYPE ByteTable; };
RANGE { START $0d8b; END $0d8c; TYPE AddrTable; };
RANGE { START $0d91; END $0d91; TYPE ByteTable; };
RANGE { START $0d92; END $0d93; TYPE AddrTable; };
RANGE { START $0d97; END $0d97; TYPE ByteTable; };
RANGE { START $0d98; END $0d99; TYPE AddrTable; };
RANGE { START $0d9d; END $0d9d; TYPE ByteTable; };
RANGE { START $0d9e; END $0d9f; TYPE AddrTable; };
RANGE { START $0da3; END $0da3; TYPE ByteTable; };
RANGE { START $0da4; END $0da5; TYPE AddrTable; };
RANGE { START $0daa; END $0daa; TYPE ByteTable; };
RANGE { START $0dab; END $0dac; TYPE AddrTable; };
RANGE { START $0db0; END $0db0; TYPE ByteTable; };
RANGE { START $0db1; END $0db2; TYPE AddrTable; };
RANGE { START $0de0; END $0de0; TYPE ByteTable; };
RANGE { START $0de1; END $0de2; TYPE AddrTable; };
RANGE { START $0de7; END $0de7; TYPE ByteTable; };
RANGE { START $0de8; END $0de9; TYPE AddrTable; };
RANGE { START $0dee; END $0dee; TYPE ByteTable; };
RANGE { START $0def; END $0df0; TYPE AddrTable; };

View File

@ -0,0 +1,83 @@
GLOBAL {
STARTADDR $0800;
PAGELENGTH 0; # No paging
CPU "65C02";
};
LABEL { NAME "RAMRDOFF"; ADDR $C002; };
LABEL { NAME "RAMRDON"; ADDR $C003; };
LABEL { NAME "RAMWRTOFF"; ADDR $C004; };
LABEL { NAME "RAMWRTON"; ADDR $C005; };
LABEL { NAME "ALTZPOFF"; ADDR $C008; };
LABEL { NAME "ALTZPON"; ADDR $C009; };
LABEL { NAME "LCBANK1"; ADDR $C08B; };
LABEL { NAME "AUXMOVE"; ADDR $C311; };
LABEL { NAME "XFER"; ADDR $C314; };
LABEL { NAME "A2D"; ADDR $4000; };
LABEL { NAME "UNKNOWN_CALL"; ADDR $8E00; };
LABEL { NAME "MLI"; ADDR $BF00; };
LABEL { NAME "FSUB"; ADDR $E7A7; };
LABEL { NAME "FADD"; ADDR $E7BE; };
LABEL { NAME "FMULT"; ADDR $E97F; };
LABEL { NAME "FDIV"; ADDR $EA66; };
LABEL { NAME "ROUND"; ADDR $EB2B; };
LABEL { NAME "FLOAT"; ADDR $EB93; };
LABEL { NAME "FIN"; ADDR $EC4A; };
LABEL { NAME "FOUT"; ADDR $ED34; };
RANGE { START $0803; END $0827; TYPE ByteTable; };
RANGE { START $08DB; END $0E52; TYPE ByteTable; };
RANGE { START $10BB; END $11BA; TYPE ByteTable; };
RANGE { START $089a; END $089a; TYPE ByteTable; };
RANGE { START $089b; END $089c; TYPE AddrTable; };
RANGE { START $08c7; END $08c7; TYPE ByteTable; };
RANGE { START $08c8; END $08c9; TYPE AddrTable; };
RANGE { START $08cd; END $08cd; TYPE ByteTable; };
RANGE { START $08ce; END $08cf; TYPE AddrTable; };
RANGE { START $0e59; END $0e59; TYPE ByteTable; };
RANGE { START $0e5a; END $0e5b; TYPE AddrTable; };
RANGE { START $0e6d; END $0e6d; TYPE ByteTable; };
RANGE { START $0e6e; END $0e6f; TYPE AddrTable; };
RANGE { START $0e9b; END $0e9b; TYPE ByteTable; };
RANGE { START $0e9c; END $0e9d; TYPE AddrTable; };
RANGE { START $0eb1; END $0eb1; TYPE ByteTable; };
RANGE { START $0eb2; END $0eb3; TYPE AddrTable; };
RANGE { START $0ece; END $0ece; TYPE ByteTable; };
RANGE { START $0ecf; END $0ed0; TYPE AddrTable; };
RANGE { START $0ef1; END $0ef1; TYPE ByteTable; };
RANGE { START $0ef2; END $0ef3; TYPE AddrTable; };
RANGE { START $0efc; END $0efc; TYPE ByteTable; };
RANGE { START $0efd; END $0efe; TYPE AddrTable; };
RANGE { START $0f02; END $0f02; TYPE ByteTable; };
RANGE { START $0f03; END $0f04; TYPE AddrTable; };
RANGE { START $0f27; END $0f27; TYPE ByteTable; };
RANGE { START $0f28; END $0f29; TYPE AddrTable; };
RANGE { START $0f45; END $0f45; TYPE ByteTable; };
RANGE { START $0f46; END $0f47; TYPE AddrTable; };
RANGE { START $1075; END $1075; TYPE ByteTable; };
RANGE { START $1076; END $1077; TYPE AddrTable; };
RANGE { START $107b; END $107b; TYPE ByteTable; };
RANGE { START $107c; END $107d; TYPE AddrTable; };
RANGE { START $1081; END $1081; TYPE ByteTable; };
RANGE { START $1082; END $1083; TYPE AddrTable; };
RANGE { START $1087; END $1087; TYPE ByteTable; };
RANGE { START $1088; END $1089; TYPE AddrTable; };
RANGE { START $108d; END $108d; TYPE ByteTable; };
RANGE { START $108e; END $108f; TYPE AddrTable; };
RANGE { START $109b; END $109b; TYPE ByteTable; };
RANGE { START $109c; END $109d; TYPE AddrTable; };
RANGE { START $10a1; END $10a1; TYPE ByteTable; };
RANGE { START $10a2; END $10a3; TYPE AddrTable; };
RANGE { START $11eb; END $11eb; TYPE ByteTable; };
RANGE { START $11ec; END $11ed; TYPE AddrTable; };
RANGE { START $11f6; END $11f6; TYPE ByteTable; };
RANGE { START $11f7; END $11f8; TYPE AddrTable; };
RANGE { START $11fc; END $11fc; TYPE ByteTable; };
RANGE { START $11fd; END $11fe; TYPE AddrTable; };
RANGE { START $1232; END $1232; TYPE ByteTable; };
RANGE { START $1233; END $1234; TYPE AddrTable; };
RANGE { START $1243; END $1243; TYPE ByteTable; };
RANGE { START $1244; END $1245; TYPE AddrTable; };

BIN
desk.acc/orig/date.bin Normal file

Binary file not shown.

BIN
desk.acc/orig/puzzle.bin Normal file

Binary file not shown.

848
desk.acc/puzzle.s Normal file
View File

@ -0,0 +1,848 @@
.org $800
; da65 V2.16 - Git f5e9b401
; Created: 2017-09-10 19:55:15
; Input file: puzzle.bin
; Page: 1
.setcpu "65C02"
L0000 := $0000
L0020 := $0020
A2D := $4000
L4015 := $4015
UNKNOWN_CALL := $8E00
MLI := $BF00
RAMRDOFF := $C002
RAMRDON := $C003
RAMWRTOFF := $C004
RAMWRTON := $C005
ALTZPOFF := $C008
ALTZPON := $C009
LCBANK1 := $C08B
AUXMOVE := $C311
XFER := $C314
FSUB := $E7A7
FADD := $E7BE
FMULT := $E97F
FDIV := $EA66
ROUND := $EB2B
FLOAT := $EB93
FIN := $EC4A
FOUT := $ED34
jmp L0828
.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
L0827: .byte $00
L0828: tsx
stx L0827
sta ALTZPOFF
lda $C082
lda #$70
sta $3C
lda #$08
sta $3D
lda #$F6
sta $3E
lda #$12
sta $3F
lda #$70
sta $42
lda #$08
sta $43
sec
jsr AUXMOVE
lda #$70
sta $03ED
lda #$08
sta $03EE
php
pla
ora #$40
pha
plp
sec
jmp XFER
L0862: sta ALTZPON
lda LCBANK1
lda LCBANK1
ldx L0827
txs
rts
sta ALTZPON
lda LCBANK1
lda LCBANK1
lda #$00
sta $08
jmp L0E53
L0880: ldx #$10
L0882: lda L08A3,x
sta L0020,x
dex
bpl L0882
jsr L0020
lda #$33
jsr L08B4
bit L08B3
bmi L089D
jsr UNKNOWN_CALL
.byte $0C
.addr L0000
L089D: lda #$00
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
L08C4: jsr A2D
.byte $3C
.addr L08E7
jsr A2D
.byte $04
.addr L0DB3
lda L08E7
cmp #$33
bne L08DA
jmp L1072
L08DA: rts
L08DB: .byte $00
L08DC: .byte $00
L08DD: .byte $00,$00,$00
L08E0: .byte $00
L08E1: .byte $00
L08E2: .byte $00
L08E3: .byte $00,$00,$00
L08E6: .byte $00
L08E7: .byte $00,$B3,$0D
L08EA: .byte $05
L08EB: .byte $00
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
L092A: .byte $6A
L092B: .byte $09,$AA,$09,$EA,$09,$2A,$0A,$6A
.byte $0A,$AA,$0A,$EA,$0A,$2A,$0B,$6A
.byte $0B,$AA,$0B,$EA,$0B,$2A,$0C,$6A
.byte $0C,$AA,$0C
L0946: .byte $EA,$0C,$2A
L0949: .byte $0D
L094A: .byte $00
L094B: .byte $00,$00,$00
L094E: .byte $00
L094F: .byte $00
L0950: .byte $00
L0951: .byte $00
L0952: .byte $00
L0953: .byte $00
L0954: .byte $00
L0955: .byte $00
L0956: .byte $00,$00,$00
L0959: .byte $00
L095A: .byte $00
L095B: .byte $00
L095C: .byte $00
L095D: .byte $00
L095E: .byte $00
L095F: .byte $00,$04,$00,$00,$00,$00,$00,$1B
.byte $00,$0F,$00,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$00
.byte $00,$00,$00,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $00,$7C,$3F,$0E,$55,$42,$3F,$00
.byte $00,$00,$00,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$47,$3F,$7E
.byte $7F,$54,$3E,$7E,$5F,$2A,$3D,$7E
.byte $27,$55,$3E,$7E,$53,$2A,$3E,$7E
.byte $28,$15,$3F,$3E,$55,$4A,$3F,$5E
.byte $2A,$71,$3F,$2E,$55,$7C,$3F,$56
.byte $0A,$7E,$3F,$26,$65,$7F,$3F,$56
.byte $78,$1F,$00,$06,$7F,$21,$15,$00
.byte $00,$00,$00,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$70
.byte $7F,$7F,$3F,$0A,$7E,$7F,$3F,$00
.byte $00,$00,$00,$7E,$7F,$7F,$1F,$7E
.byte $7F,$7F,$1F,$7E,$7F,$7F,$17,$7E
.byte $7F,$7F,$2B,$7E,$7F,$7F,$3D,$7E
.byte $7F,$7F,$3E,$7E,$7F,$3F,$3F,$7E
.byte $7F,$5F,$3F,$7E,$7F,$5F,$3F,$7E
.byte $7F,$6F,$3F,$7E,$7F,$77,$3F,$7E
.byte $7F,$77,$3F,$7E,$7F,$37,$1B,$7E
.byte $7F,$5B,$2D,$7E,$7F,$6B,$36,$00
.byte $00,$00,$00,$2A,$55,$2A,$15,$54
.byte $2A,$55,$2A,$2A,$55,$2A,$15,$54
.byte $2A,$55,$2A,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$6C,$36,$5B,$2D,$36
.byte $5B,$6D,$36,$5A,$6D,$36,$1B,$00
.byte $00,$00,$00,$2A,$55,$2A,$15,$54
.byte $2A,$55,$2A,$2A,$55,$2A,$15,$54
.byte $2A,$55,$2A,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$36,$5B,$6D,$36,$5A
.byte $6D,$36,$1B,$6C,$36,$5B,$2D,$00
.byte $00,$00,$00,$2A,$45,$7F,$3F,$54
.byte $2A,$7E,$3F,$2A,$55,$78,$3F,$54
.byte $2A,$71,$3F,$7E,$7F,$7C,$3F,$7E
.byte $3F,$7F,$3F,$7E,$5F,$7F,$3F,$7E
.byte $6F,$7F,$3F,$7E,$77,$7F,$3F,$7E
.byte $77,$7F,$3F,$7E,$7B,$7F,$3F,$7E
.byte $7B,$7F,$3F,$5A,$79,$7F,$3F,$6C
.byte $7C,$7F,$3F,$36,$7D,$7F,$3F,$00
.byte $00,$00,$00,$7E,$7F,$67,$36,$7E
.byte $7F,$37,$1B,$7E,$7F,$57,$2D,$7E
.byte $7F,$67,$36,$7E,$7F,$2F,$15,$7E
.byte $7F,$2F,$15,$7E,$7F,$1F,$15,$7E
.byte $7F,$3F,$15,$7E,$7F,$3F,$15,$7E
.byte $7F,$3F,$15,$7E,$7F,$7F,$14,$7E
.byte $7F,$7F,$19,$7E,$7F,$7F,$33,$7E
.byte $7F,$7F,$17,$7E,$7F,$7F,$2F,$00
.byte $00,$00,$00,$5A,$6D,$36,$1B,$6C
.byte $36,$5B,$2D,$36,$5B,$6D,$36,$5A
.byte $6D,$36,$1B,$2A,$55,$2A,$15,$2A
.byte $55,$2A,$15,$2A,$55,$2A,$15,$2A
.byte $55,$2A,$15,$2A,$55,$2A,$15,$2A
.byte $55,$2A,$15,$2A,$55,$2A,$15,$32
.byte $66,$4C,$19,$66,$4C,$19,$33,$32
.byte $66,$4C,$19,$66,$4C,$19,$33,$00
.byte $00,$00,$00,$6C,$36,$5B,$2D,$36
.byte $5B,$6D,$36,$5A,$6D,$36,$1B,$6C
.byte $36,$5B,$2D,$2A,$55,$2A,$15,$2A
.byte $55,$2A,$15,$2A,$55,$2A,$15,$2A
.byte $55,$2A,$15,$2A,$55,$2A,$15,$2A
.byte $55,$2A,$15,$2A,$55,$2A,$15,$32
.byte $66,$4C,$19,$66,$4C,$19,$33,$32
.byte $66,$4C,$19,$66,$4C,$19,$33,$00
.byte $00,$00,$00,$36,$7D,$7F,$3F,$5A
.byte $7D,$7F,$3F,$6C,$7A,$7F,$3F,$36
.byte $7B,$7F,$3F,$2A,$75,$7F,$3F,$2A
.byte $65,$7F,$3F,$2A,$65,$7F,$3F,$2A
.byte $55,$7F,$3F,$2A,$15,$7F,$3F,$2A
.byte $55,$7C,$3F,$2A,$55,$72,$3F,$32
.byte $66,$74,$3F,$66,$4C,$79,$3F,$32
.byte $66,$78,$3F,$66,$4C,$7D,$3F,$00
.byte $00,$00,$00,$7E,$7F,$7F,$3F,$6E
.byte $5D,$3B,$37,$7E,$7F,$7F,$3F,$3A
.byte $77,$6E,$1D,$7E,$7F,$7F,$3F,$6E
.byte $5D,$3B,$37,$7E,$7F,$7F,$3F,$3A
.byte $77,$6E,$1D,$7E,$7F,$7F,$3F,$6E
.byte $5D,$3B,$37,$7E,$7F,$7F,$3F,$3A
.byte $77,$6E,$1D,$7E,$7F,$7F,$3F,$6E
.byte $5D,$3B,$37,$7E,$7F,$7F,$3F,$00
.byte $00,$00,$00,$18,$33,$66,$0C,$32
.byte $66,$4C,$19,$66,$4C,$19,$33,$6C
.byte $36,$5B,$2D,$52,$6D,$36,$1B,$26
.byte $5B,$6D,$36,$4E,$36,$5B,$2D,$3E
.byte $6E,$36,$1B,$7E,$51,$0D,$00,$7E
.byte $0F,$40,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$00
.byte $00,$00,$00,$18,$33,$66,$0C,$32
.byte $66,$4C,$19,$66,$4C,$19,$33,$36
.byte $5B,$6D,$36,$6C,$36,$5B,$2D,$5A
.byte $6D,$36,$1B,$36,$5B,$6D,$36,$6C
.byte $36,$5B,$2D,$00,$00,$30,$1B,$7E
.byte $7F,$03,$20,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$00
.byte $00,$00,$00,$18,$33,$7C,$3F,$32
.byte $66,$7E,$3F,$66,$0C,$7F,$3F,$5A
.byte $4D,$7F,$3F,$36,$73,$7F,$3F,$6C
.byte $7C,$7F,$3F,$3A,$7E,$7F,$3F,$72
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$7E
.byte $7F,$7F,$3F,$7E,$7F,$7F,$3F,$00
.byte $00,$00,$00
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
L0E53: jsr L10A5
jsr A2D
.byte $38
.addr L0DEC
ldy #$0F
L0E5E: tya
sta L094A,y
dey
bpl L0E5E
lda #$33
jsr L08B4
jsr A2D
.byte $2B
.addr L0000
L0E70: ldy #$03
L0E72: tya
pha
ldx L094A
ldy #$00
L0E79: lda L094B,y
sta L094A,y
iny
cpy #$0F
bcc L0E79
stx L0959
pla
tay
dey
bne L0E72
ldx L094A
lda L094B
sta L094A
stx L094B
jsr A2D
.byte $2A
.addr L08DB
lda L08DB
beq L0E70
jsr L1262
bcs L0E70
jsr L11BB
jsr L12D2
L0EAE: jsr A2D
.byte $2A
.addr L08DB
lda L08DB
cmp #$01
bne L0EC1
jsr L0ECB
jmp L0EAE
L0EC1: cmp #$03
bne L0EAE
jsr L0F30
jmp L0EAE
L0ECB: jsr A2D
.byte $40
.addr L08DC
lda L08E1
cmp #$33
bne L0EDD
lda L08E0
bne L0EDE
L0EDD: rts
L0EDE: cmp #$02
bne L0EEA
jsr L0F3D
bcc L0EDD
jmp L0FBC
L0EEA: cmp #$05
bne L0F1B
jsr A2D
.byte $43
.addr L08E6
lda L08E6
beq L0EDD
L0EF9: jsr A2D
.byte $39
.addr L0D9C
jsr UNKNOWN_CALL
.byte $0C
.addr L0000
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
lda #$33
sta L08DB
jsr A2D
.byte $44
.addr L08DB
ldx #$23
jsr L0880
rts
L0F30: lda L08DD
bne L0F3C
lda L08DC
cmp #$1B
beq L0EF9
L0F3C: rts
L0F3D: lda #$33
sta L08DB
jsr A2D
.byte $46
.addr 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
L0FF4: lda L0949,y
sta L094A,y
dey
dex
bne L0FF4
beq L1055
L1000: lda L0D97
sec
sbc L0D95
tax
L1008: lda L094B,y
sta L094A,y
iny
dex
bne L1008
beq L1055
L1014: lda L0D98
cmp L0D96
beq L0FE1
bcs L1035
lda L0D96
sec
sbc L0D98
tax
L1026: lda L0946,y
sta L094A,y
dey
dey
dey
dey
dex
bne L1026
beq L104A
L1035: lda L0D98
sec
sbc L0D96
tax
L103D: lda L094E,y
sta L094A,y
iny
iny
iny
iny
dex
bne L103D
L104A: lda #$0C
sta L094A,y
jsr L11D9
jmp L105D
L1055: lda #$0C
sta L094A,y
jsr L11C8
L105D: jsr L1262
bcc L106E
ldx #$04
L1064: txa
pha
jsr L1247
pla
tax
dex
bne L1064
L106E: jmp L12D2
rts
L1072: jsr A2D
.byte $08
.addr L0D72
jsr A2D
.byte $11
.addr L0D6A
jsr A2D
.byte $08
.addr L0D7B
jsr A2D
.byte $0E
.addr L0D8D
jsr A2D
.byte $0F
.addr L0D91
jsr L11BB
lda #$33
sta L08E7
jsr A2D
.byte $3C
.addr L08E7
jsr A2D
.byte $04
.addr 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
L10BB: .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,$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,$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,$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,$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,$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,$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,$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
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
jsr A2D
.byte $26
.addr L0000
lda #$33
sta L08E7
jsr A2D
.byte $3C
.addr L08E7
jsr A2D
.byte $04
.addr L0DB3
pla
tay
L1201: tya
pha
asl a
asl a
tax
lda L08EA,x
sta L095A
lda L08EB,x
sta L095B
lda L08EC,x
sta L095C
lda L08ED,x
sta L095D
lda L094A,y
asl a
tax
lda L092A,x
sta L095E
lda L092B,x
sta L095F
jsr A2D
.byte $14
.addr L095A
pla
clc
adc L0D9B
tay
cpy L0D9A
bcc L1201
jsr A2D
.byte $25
.addr L0000
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
L1262: lda L094A
beq L126B
cmp #$0C
bne L12D0
L126B: ldy #$01
L126D: tya
cmp L094A,y
bne L12D0
iny
cpy #$05
bcc L126D
lda L094F
cmp #$05
beq L1283
cmp #$06
bne L12D0
L1283: lda L0950
cmp #$05
beq L128E
cmp #$06
bne L12D0
L128E: lda L0951
cmp #$07
bne L12D0
lda L0952
cmp #$08
bne L12D0
lda L0953
cmp #$09
beq L12A7
cmp #$0A
bne L12D0
L12A7: lda L0954
cmp #$09
beq L12B2
cmp #$0A
bne L12D0
L12B2: lda L0955
cmp #$0B
bne L12D0
lda L0956
beq L12C2
cmp #$0C
bne L12D0
L12C2: ldy #$0D
L12C4: tya
cmp L094A,y
bne L12D0
iny
cpy #$10
bcc L12C4
rts
L12D0: clc
rts
L12D2: ldy #$0F
L12D4: lda L094A,y
cmp #$0C
beq L12DE
dey
bpl L12D4
L12DE: lda #$00
sta L0D95
sta L0D96
tya
L12E7: cmp #$04
bcc L12F2
sbc #$04
inc L0D96
bne L12E7
L12F2: sta L0D95
rts

View File

@ -35,12 +35,6 @@ LABEL { NAME "FOUT"; ADDR $ED34; };
END_HEADER
print <<'END_CALC';
RANGE { START $08C5; END $0D17; TYPE ByteTable; };
RANGE { START $0F24; END $0F37; TYPE ByteTable; };
RANGE { START $13C9; END $13CB; TYPE Code; };
END_CALC