"FILE0637245" PRG ACCESS TO OSCON'S FORTRESS
#$EA | 234 | EOR all bytes against 11101010
2 blocks; 394 bytes (70EA TO 7274 Inclusive)
9a00 to 9b8a
This is the file for when the party attempts to enter Oscon's Fortress.
The file scans the roster of each party member looking for the byte that corresponds to the "Item of K". If it finds it, it branches to the code that allows the party to (T)ake the stairs in. Otherwise, it simply branches to the code that displays the only other option, (E)xit the fortress.
Pretty basic. I guess.
A few revelations were made here. $081b loads the picture file according to the X register. $080f displays the text found at $59 and $58 as a caption. $0899 is the dungeon level loader thingy.
It seems to try to compare #$07; this is probably the item number for the "Item of K".
Code: Select all
.C:9a00 E6 C1 INC $C1
.C:9a02 A2 11 LDX #$11
.C:9a04 20 1B 08 JSR $081B Display picture #$11
.C:9a07 A9 9A LDA #$9A
.C:9a09 85 59 STA $59
.C:9a0b A9 6F LDA #$6F
.C:9a0d 85 58 STA $58
.C:9a0f 20 0F 08 JSR $080F Display "Fortress" caption
.C:9a12 A9 00 LDA #$00
.C:9a14 85 44 STA $44
.C:9a16 A6 44 LDX $44
.C:9a18 A9 10 LDA #$10
.C:9a1a 20 F0 08 JSR $08F0
.C:9a1d 90 1F BCC $9A3E Item of K in party? Yes? $9a3e
.C:9a1f E6 44 INC $44
.C:9a21 A5 44 LDA $44
.C:9a23 C9 07 CMP #$07
.C:9a25 90 EF BCC $9A16
.C:9a27 20 E1 08 JSR $08E1
.C:9a2a A0 9A LDY #$9A
.C:9a2c A2 FB LDX #$FB
.C:9a2e 20 06 08 JSR $0806 "No entrance to upper levels"
.C:9a31 20 78 08 JSR $0878
.C:9a34 20 87 08 JSR $0887
.C:9a37 C9 C5 CMP #$C5 Was "E" pressed?
.C:9a39 D0 F6 BNE $9A31 No? Wait until "E" is pressed
.C:9a3b 4C 56 9A JMP $9A56 Yes? Jump to 9a56...
.C:9a3e 20 E1 08 JSR $08E1
.C:9a41 A0 9A LDY #$9A
.C:9a43 A2 78 LDX #$78
.C:9a45 20 06 08 JSR $0806 "Take stairs, or exit?"
.C:9a48 20 78 08 JSR $0878
.C:9a4b 20 87 08 JSR $0887
.C:9a4e C9 D4 CMP #$D4 Was "T" pressed?
.C:9a50 F0 14 BEQ $9A66 Yep, go to 9a66
.C:9a52 C9 C5 CMP #$C5 Was "E" pressed?
.C:9a54 D0 F2 BNE $9A48 Neither? Wait for either...
.C:9a56 A9 02 LDA #$02 Exiting fortress...
.C:9a58 85 24 STA $24 Face party south? $24 = 02
.C:9a5a C6 28 DEC $28 Move party 1 square south
.C:9a5c A9 00 LDA #$00
.C:9a5e 85 2F STA $2F
.C:9a60 20 E1 08 JSR $08E1
.C:9a63 4C 00 90 JMP $9000 Back to...combat engine???
.C:9a66 A9 10 LDA #$10
.C:9a68 85 E0 STA $E0
.C:9a6a A9 01 LDA #$01
.C:9a6c 4C 99 08 JMP $0899 Load dungeon level - Oscon 1
.C:9a6f C6 EF DEC $EF [F][o]
.C:9a71 F2 JAM [r]
.C:9a72 F4 F2 NOOP $F2,X [t][r]
.C:9a74 E5 F3 SBC $F3 [e][s]
.C:9a76 F3 DC ISB ($DC),Y [s][EOT]
.C:9a78 D9 EF F5 CMP $F5EF,Y [Y][o][u]
.C:9a7b A0 F3 LDY #$F3 [_][s]
.C:9a7d F4 E1 NOOP $E1,X [t][a]
.C:9a7f EE E4 A0 INC $A0E4 [n][d][_]
.C:9a82 E9 EE SBC #$EE [i][n]
.C:9a84 A0 F4 LDY #$F4 [_][t]
.C:9a86 E8 INX [h]
.C:9a87 E5 A0 SBC $A0 [e][_]
.C:9a89 E5 EE SBC $EE [e][n]
.C:9a8b F4 F2 NOOP $F2,X [t][r]
.C:9a8d F9 A0 F4 SBC $F4A0,Y [y][_][t]
.C:9a90 EF A0 CF ISB $CFA0 [o][_][O]
.C:9a93 F3 E3 ISB ($E3),Y [s][c]
.C:9a95 EF EE A7 ISB $A7EE [o][n][']
.C:9a98 F3 A0 ISB ($A0),Y [s][_]
.C:9a9a C6 EF DEC $EF [F][o]
.C:9a9c F2 JAM [r]
.C:9a9d F4 F2 NOOP $F2,X [t][r]
.C:9a9f E5 F3 SBC $F3 [e][s]
.C:9aa1 F3 AE ISB ($AE),Y [s][.]
.C:9aa3 A0 C1 LDY #$C1 [_][A]
.C:9aa5 A0 F3 LDY #$F3 [_][s]
.C:9aa7 F4 E1 NOOP $E1,X [t][a]
.C:9aa9 E9 F2 SBC #$F2 [i][r]
.C:9aab F7 E1 ISB $E1,X [w][a]
.C:9aad F9 A0 EC SBC $ECA0,Y [y][_][l]
.C:9ab0 E5 E1 SBC $E1 [e][a]
.C:9ab2 E4 F3 CPX $F3 [d][s]
.C:9ab4 A0 F4 LDY #$F4 [_][t]
.C:9ab6 EF A0 F4 ISB $F4A0 [o][_][t]
.C:9ab9 E8 INX [h]
.C:9aba E5 A0 SBC $A0 [e][_]
.C:9abc F5 F0 SBC $F0,X [u][p]
.C:9abe F0 E5 BEQ $9AA5 [p][e]
.C:9ac0 F2 JAM [r]
.C:9ac1 A0 EC LDY #$EC [_][l]
.C:9ac3 E5 F6 SBC $F6 [e][v]
.C:9ac5 E5 EC SBC $EC [e][l]
.C:9ac7 F3 AE ISB ($AE),Y [s][.]
.C:9ac9 A0 D9 LDY #$D9 [_][Y]
.C:9acb EF F5 A0 ISB $A0F5 [o][u][_]
.C:9ace E3 E1 ISB ($E1,X) [c][a]
.C:9ad0 EE 00 00 INC $0000 [n][CR][CR]
.C:9ad3 A8 TAY [(]
.C:9ad4 D4 A9 NOOP $A9,X [T][)]
.C:9ad6 E1 EB SBC ($EB,X) [a][k]
.C:9ad8 E5 A0 SBC $A0 [e][_]
.C:9ada F4 E8 NOOP $E8,X [t][h]
.C:9adc E5 A0 SBC $A0 [e][_]
.C:9ade F3 F4 ISB ($F4),Y [s][t]
.C:9ae0 E1 E9 SBC ($E9,X) [a][i]
.C:9ae2 F2 JAM [r]
.C:9ae3 F7 E1 ISB $E1,X [w][a]
.C:9ae5 F9 00 A8 SBC $A800,Y [y][CR][(]
.C:9ae8 C5 A9 CMP $A9 [E][)]
.C:9aea F8 SED [x]
.C:9aeb E9 F4 SBC #$F4 [i][t]
.C:9aed A0 F4 LDY #$F4 [_][t]
.C:9aef E8 INX [h]
.C:9af0 E5 A0 SBC $A0 [e][_]
.C:9af2 E6 EF INC $EF [f][o]
.C:9af4 F2 JAM [r]
.C:9af5 F4 F2 NOOP $F2,X [t][r]
.C:9af7 E5 F3 SBC $F3 [e][s]
.C:9af9 F3 DC ISB ($DC),Y [s][EOT]
.C:9afb D9 EF F5 CMP $F5EF,Y [Y][o][u] [
.C:9afe A0 F3 LDY #$F3 [_][s]
.C:9b00 F4 E1 NOOP $E1,X [t][a]
.C:9b02 EE E4 A0 INC $A0E4 [n][d][_]
.C:9b05 E9 EE SBC #$EE [i][n]
.C:9b07 A0 F4 LDY #$F4 [_][t]
.C:9b09 E8 INX [h]
.C:9b0a E5 A0 SBC $A0 [e][_]
.C:9b0c E5 EE SBC $EE [e][n]
.C:9b0e F4 F2 NOOP $F2,X [t][r]
.C:9b10 F9 A0 F4 SBC $F4A0,Y [y][_][t]
.C:9b13 EF A0 CF ISB $CFA0 [o][_][O]
.C:9b16 F3 E3 ISB ($E3),Y [s][c]
.C:9b18 EF EE A7 ISB $A7EE [o][n][']
.C:9b1b F3 A0 ISB ($A0),Y [s][_]
.C:9b1d C6 EF DEC $EF [F][o]
.C:9b1f F2 JAM [r]
.C:9b20 F4 F2 NOOP $F2,X [t][r]
.C:9b22 E5 F3 SBC $F3 [e][s]
.C:9b24 F3 AC ISB ($AC),Y [s][,]
.C:9b26 A0 F7 LDY #$F7 [_][w]
.C:9b28 E8 INX [h]
.C:9b29 E9 E3 SBC #$E3 [i][c]
.C:9b2b E8 INX [h]
.C:9b2c A0 E1 LDY #$E1 [_][a]
.C:9b2e F0 F0 BEQ $9B20 [p][p]
.C:9b30 E5 E1 SBC $E1 [e][a]
.C:9b32 F2 JAM [r]
.C:9b33 F3 A0 ISB ($A0),Y [s][_]
.C:9b35 F4 EF NOOP $EF,X [t][o]
.C:9b37 A0 E2 LDY #$E2 [_][b]
.C:9b39 E5 A0 SBC $A0 [e][_]
.C:9b3b E4 E5 CPX $E5 [d][e]
.C:9b3d F3 E5 ISB ($E5),Y [s][e]
.C:9b3f F2 JAM [r]
.C:9b40 F4 E5 NOOP $E5,X [t][e]
.C:9b42 E4 AE CPX $AE [d][.]
.C:9b44 A0 D9 LDY #$D9 [_][Y]
.C:9b46 EF F5 A0 ISB $A0F5 [o][u][_]
.C:9b49 F3 E5 ISB ($E5),Y [s][e]
.C:9b4b E5 A0 SBC $A0 [e][_]
.C:9b4d EE EF A0 INC $A0EF [n][o][_]
.C:9b50 E5 EE SBC $EE [e][n]
.C:9b52 F4 F2 NOOP $F2,X [t][r]
.C:9b54 E1 EE SBC ($EE,X) [a][n]
.C:9b56 E3 E5 ISB ($E5,X) [c][e]
.C:9b58 A0 F4 LDY #$F4 [_][t]
.C:9b5a EF A0 F4 ISB $F4A0 [o][_][t]
.C:9b5d E8 INX [h]
.C:9b5e E5 A0 SBC $A0 [e][_]
.C:9b60 F5 F0 SBC $F0,X [u][p]
.C:9b62 F0 E5 BEQ $9B49 [p][e]
.C:9b64 F2 JAM [r]
.C:9b65 A0 EC LDY #$EC [_][l]
.C:9b67 E5 F6 SBC $F6 [e][v]
.C:9b69 E5 EC SBC $EC [e][l]
.C:9b6b F3 AE ISB ($AE),Y [s][.]
.C:9b6d A0 D9 LDY #$D9 [_][Y]
.C:9b6f EF F5 A0 ISB $A0F5 [o][u][_]
.C:9b72 E3 E1 ISB ($E1,X) [c][a]
.C:9b74 EE 00 00 INC $0000 [n][CR][CR]
.C:9b77 A8 TAY [(]
.C:9b78 C5 A9 CMP $A9 [E][)]
.C:9b7a F8 SED [x]
.C:9b7b E9 F4 SBC #$F4 [i][t]
.C:9b7d A0 F4 LDY #$F4 [_][t]
.C:9b7f E8 INX [h]
.C:9b80 E5 A0 SBC $A0 [e][_]
.C:9b82 E6 EF INC $EF [f][o]
.C:9b84 F2 JAM [r]
.C:9b85 F4 F2 NOOP $F2,X [t][r]
.C:9b87 E5 F3 SBC $F3 [e][s]
.C:9b89 F3 DC ISB ($DC),Y [s][EOT]