06:89F2:20 7B 8A JSR $8A7B 06:89F5:A5 24 LDA $0024 = #$67 06:89F7:85 18 STA $0018 = #$67 06:89F9:A5 25 LDA $0025 = #$00 06:89FB:85 19 STA $0019 = #$00 06:89FD:20 5F 8B JSR $8B5F 06:8B62:AD 2F 65 LDA $652F = #$5C 1個目の特殊能力 06:8B65:20 6F 8B JSR $8B6F 06:8B68:AD 91 65 LDA $6591 = #$00 2個目の特殊能力 06:8B6B:20 6F 8B JSR $8B6F 06:8B6E:60 RTS $19$18が入力される(ダメージとして) 06:8B6F:D0 03 BNE $8B74 06:8B71:4C DE 8B JMP $8BDE 06:8B74:C9 0A CMP #$0A 特殊能力10(職業0へ3倍剣) 06:8B76:B0 08 BCS $8B80 特殊能力が10以上ならジャンプ 06:8B78:CD 5B 65 CMP $655B = #$06 職業を取得(特殊能力−職業) 06:8B7B:F0 5C BEQ $8BD9 ゼロフラグならジャンプ 06:8B7D:4C DE 8B JMP $8BDE 3倍剣なし(職業と一致せず) 06:8B80:D0 08 BNE $8B8A 特殊能力が0でないならジャンプ 06:8B82:AD 5B 65 LDA $655B = #$06 職業を取得 06:8B85:F0 52 BEQ $8BD9 一致したら8BD9へ 06:8B87:4C DE 8B JMP $8BDE 3倍剣なし(職業と一致せず) 06:8B8A:C9 0F CMP #$0F 特殊能力15(種族0へ3倍剣) 06:8B8C:B0 0B BCS $8B99 06:8B8E:38 SEC 06:8B8F:E9 0A SBC #$0A 10を引き算 06:8B91:CD 5A 65 CMP $655A = #$02 種族値を取得して比較 06:8B94:F0 43 BEQ $8BD9 一致したら8BD9へ 06:8B96:4C DE 8B JMP $8BDE 3倍剣なし(種族と一致せず) 06:8B99:D0 08 BNE $8BA3 06:8B9B:AD 5A 65 LDA $655A = #$02 種族値を取得 06:8B9E:F0 39 BEQ $8BD9 零でないなら3倍剣 06:8BA0:4C DE 8B JMP $8BDE 06:8BA3:C9 10 CMP #$10 特殊能力16(破壊力30%ダウン) 06:8BA5:D0 07 BNE $8BAE 06:8BA7:46 19 LSR $0019 = #$00 右シフト 06:8BA9:66 18 ROR $0018 = #$67 右ローテート (つまり元のダメージの0.5倍) 06:8BAB:4C DE 8B JMP $8BDE 06:8BAE:C9 11 CMP #$11 特殊能力17(破壊力30%アップ) 06:8BB0:D0 08 BNE $8BBA 06:8BB2:A9 0F LDA #$0F A=0F(15) (つまり元のダメージの1.5倍) 06:8BB4:20 DF 8B JSR $8BDF 06:8BB7:4C DE 8B JMP $8BDE 06:8BBA:C9 12 CMP #$12 特殊能力18(破壊力50%アップ) 06:8BBC:D0 08 BNE $8BC6 06:8BBE:A9 14 LDA #$14 A=14(20) (つまり元のダメージの2.0倍) 06:8BC0:20 DF 8B JSR $8BDF 06:8BC3:4C DE 8B JMP $8BDE 06:8BC6:C9 13 CMP #$13 特殊能力19(破壊力80%アップ) 06:8BC8:D0 14 BNE $8BDE 特殊能力当てはまりナシ 06:8BCA:A5 30 LDA $0030 = #$AC A=$0030(乱数00〜7F,80〜FF(ネガティブフラグ)) 06:8BCC:30 08 BMI $8BD6 ネガティブフラグならジャンプ 06:8BCE:A9 14 LDA #$14 A=14(20)  (つまり、乱数が00〜7Fのとき(1/2の確率で)元のダメージの2.0倍) 06:8BD0:20 DF 8B JSR $8BDF 06:8BD3:4C DE 8B JMP $8BDE 06:8BD6:4C DE 8B JMP $8BDE 06:8BD9:A9 1E LDA #$1E A=1E(30)  (元のダメージの3.0倍) 06:8BDB:20 DF 8B JSR $8BDF 06:8BDE:60 RTS $19$18を$1C倍して、$0Aで割って$19$18へ出力(4バイト対応 ※1.5倍とかの正確な計算を可能にしている) 06:8BDF:85 1C STA $001C = #$0A 06:8BE1:A9 00 LDA #$00 06:8BE3:85 1D STA $001D = #$00 06:8BE5:20 01 DB JSR $DB01 $19$18を$1C倍して$27$26$25$24に出力 06:8BE8:A5 24 LDA $0024 = #$67 06:8BEA:85 18 STA $0018 = #$67 06:8BEC:A5 25 LDA $0025 = #$00 06:8BEE:85 19 STA $0019 = #$00 06:8BF0:A5 26 LDA $0026 = #$00 06:8BF2:85 1A STA $001A = #$00 06:8BF4:A5 27 LDA $0027 = #$00 06:8BF6:85 1B STA $001B = #$00 $1B$1A$19$18=$27$26$25$24 06:8BF8:A9 0A LDA #$0A 06:8BFA:85 1C STA $001C = #$0A 06:8BFC:A9 00 LDA #$00 06:8BFE:85 1D STA $001D = #$00 06:8C00:85 1E STA $001E = #$00 06:8C02:85 1F STA $001F = #$00 06:8C04:20 09 DC JSR $DC09 $1B$1A$19$18/$1F$1E$1D$1C(0A)を計算して$25$24に出力 06:8C07:20 13 8C JSR $8C13 06:8C0A:A5 24 LDA $0024 = #$67 06:8C0C:85 18 STA $0018 = #$67 06:8C0E:A5 25 LDA $0025 = #$00 06:8C10:85 19 STA $0019 = #$00 06:8C12:60 RTS $19$18へ出力して完了