;----------------------------------------------
; 経験値関連
;----------------------------------------------
C1DA52 [01DA52] 85 62 sta $62
C1DA54 [01DA54] 86 64 stx $64
C1DA56 [01DA56] BF 04 00 7E lda $7e0004,x
C1DA5A [01DA5A] F0 74 beq $c1dad0
C1DA5C [01DA5C] AD 24 1C lda $1c24
C1DA5F [01DA5F] 18 clc
C1DA60 [01DA60] 7F 01 00 7E adc $7e0001,x
C1DA64 [01DA64] 9F 01 00 7E sta $7e0001,x
C1DA68 [01DA68] E2 20 sep #$20
C1DA6A [01DA6A] AD 26 1C lda $1c26
C1DA6D [01DA6D] 7F 03 00 7E adc $7e0003,x
C1DA71 [01DA71] 9F 03 00 7E sta $7e0003,x
C1DA75 [01DA75] C2 20 rep #$20
C1DA77 [01DA77] BF 02 00 7E lda $7e0002,x
C1DA7B [01DA7B] CF D2 DA C1 cmp $c1dad2
C1DA7F [01DA7F] 90 1A bcc $c1da9b ; 経験値 が 9999872 未満の場合
C1DA81 [01DA81] BF 01 00 7E lda $7e0001,x
C1DA85 [01DA85] CF D1 DA C1 cmp $c1dad1
C1DA89 [01DA89] 90 10 bcc $c1da9b ; 経験値の下位 16 bit が 38527 未満の場合
C1DA8B [01DA8B] AF D1 DA C1 lda $c1dad1
C1DA8F [01DA8F] 9F 01 00 7E sta $7e0001,x
C1DA93 [01DA93] AF D2 DA C1 lda $c1dad2
C1DA97 [01DA97] 9F 02 00 7E sta $7e0002,x ; 経験値を 9999999 に設定
C1DA9B [01DA9B] BF 00 00 7E lda $7e0000,x
C1DA9F [01DA9F] 29 FF 00 and #$00ff
C1DAA2 [01DAA2] 1A inc
C1DAA3 [01DAA3] C9 32 00 cmp #$0032
C1DAA6 [01DAA6] B0 28 bcs $c1dad0 ; 現在 Lv >= 50 の場合
; 経験値の比較
C1DAA8 [01DAA8] DA phx
C1DAA9 [01DAA9] A6 62 ldx $62
C1DAAB [01DAAB] A0 00 00 ldy #$0000
C1DAAE [01DAAE] 20 91 E3 jsr $e391
C1DAB1 [01DAB1] FA plx
C1DAB2 [01DAB2] BF 02 00 7E lda $7e0002,x
C1DAB6 [01DAB6] C5 3B cmp $3b
C1DAB8 [01DAB8] F0 04 beq $c1dabe ; 上位 16 bit が等しい場合
C1DABA [01DABA] B0 0A bcs $c1dac6 ; 足りている
C1DABC [01DABC] 90 12 bcc $c1dad0 ; 足りていない
C1DABE [01DABE] BF 01 00 7E lda $7e0001,x
C1DAC2 [01DAC2] C5 3A cmp $3a
C1DAC4 [01DAC4] 90 0A bcc $c1dad0
C1DAC6 [01DAC6] 20 D4 DA jsr $dad4
C1DAC9 [01DAC9] 20 94 DC jsr $dc94
C1DACC [01DACC] A6 64 ldx $64
C1DACE [01DACE] 80 CB bra $c1da9b ; 処理を継続する
C1DAD0 [01DAD0] 60 rts
C1DAD1 [01DAD1] 7F 96 98
;----------------------------------------------
; 能力の成長
;----------------------------------------------
C1DAD4 [01DAD4] BF 00 00 7E lda $7e0000,x
C1DAD8 [01DAD8] 1A inc
C1DAD9 [01DAD9] 9F 00 00 7E sta $7e0000,x
C1DADD [01DADD] 29 FF 00 and #$00ff
C1DAE0 [01DAE0] 85 66 sta $66
C1DAE2 [01DAE2] A9 21 00 lda #$0021
C1DAE5 [01DAE5] 22 C4 01 C0 jsl $c001c4
C1DAE9 [01DAE9] A5 66 lda $66
C1DAEB [01DAEB] 1A inc
C1DAEC [01DAEC] 20 CC 87 jsr $87cc
C1DAEF [01DAEF] 8D E6 06 sta $06e6
C1DAF2 [01DAF2] 9C E8 06 stz $06e8
C1DAF5 [01DAF5] A6 62 ldx $62
C1DAF7 [01DAF7] A0 04 00 ldy #$0004
C1DAFA [01DAFA] 22 58 00 C3 jsl $c30058
C1DAFE [01DAFE] A5 62 lda $62
C1DB00 [01DB00] 18 clc
C1DB01 [01DB01] 69 00 00 adc #$0000
C1DB04 [01DB04] 8D 8E 06 sta $068e
C1DB07 [01DB07] A9 70 00 lda #$0070
C1DB0A [01DB0A] 22 04 00 C5 jsl $c50004
C1DB0E [01DB0E] A0 03 00 ldy #$0003
C1DB11 [01DB11] 20 7E DC jsr $dc7e
C1DB14 [01DB14] 0A asl
C1DB15 [01DB15] DF 06 00 7E cmp $7e0006,x ; 最大 LP
C1DB19 [01DB19] 90 2F bcc $c1db4a
C1DB1B [01DB1B] A0 03 00 ldy #$0003
C1DB1E [01DB1E] 20 39 DC jsr $dc39
C1DB21 [01DB21] F0 27 beq $c1db4a
C1DB23 [01DB23] 85 3A sta $3a
C1DB25 [01DB25] A6 64 ldx $64
C1DB27 [01DB27] 7F 06 00 7E adc $7e0006,x
C1DB2B [01DB2B] 9F 06 00 7E sta $7e0006,x
C1DB2F [01DB2F] A6 62 ldx $62
C1DB31 [01DB31] A0 07 00 ldy #$0007
C1DB34 [01DB34] A5 3A lda $3a
C1DB36 [01DB36] 22 58 00 C3 jsl $c30058
C1DB3A [01DB3A] A9 07 00 lda #$0007
C1DB3D [01DB3D] 8D 3A 1C sta $1c3a
C1DB40 [01DB40] 20 49 4E jsr $4e49
C1DB43 [01DB43] A9 71 00 lda #$0071
C1DB46 [01DB46] 22 04 00 C5 jsl $c50004
C1DB4A [01DB4A] A0 01 00 ldy #$0001
C1DB4D [01DB4D] 20 7E DC jsr $dc7e
C1DB50 [01DB50] DF 0A 00 7E cmp $7e000a,x ; 最大 SP
C1DB54 [01DB54] 90 19 bcc $c1db6f
C1DB56 [01DB56] A0 01 00 ldy #$0001
C1DB59 [01DB59] 20 47 DC jsr $dc47
C1DB5C [01DB5C] F0 11 beq $c1db6f
C1DB5E [01DB5E] A6 64 ldx $64
C1DB60 [01DB60] 7F 0A 00 7E adc $7e000a,x
C1DB64 [01DB64] 9F 0A 00 7E sta $7e000a,x
C1DB68 [01DB68] A9 79 00 lda #$0079
C1DB6B [01DB6B] 22 04 00 C5 jsl $c50004
C1DB6F [01DB6F] A0 02 00 ldy #$0002
C1DB72 [01DB72] 20 7E DC jsr $dc7e
C1DB75 [01DB75] E2 20 sep #$20
C1DB77 [01DB77] DF 11 00 7E cmp $7e0011,x ; パワー
C1DB7B [01DB7B] C2 20 rep #$20
C1DB7D [01DB7D] 90 19 bcc $c1db98
C1DB7F [01DB7F] A0 02 00 ldy #$0002
C1DB82 [01DB82] 20 47 DC jsr $dc47
C1DB85 [01DB85] F0 11 beq $c1db98
C1DB87 [01DB87] A6 64 ldx $64
C1DB89 [01DB89] 7F 11 00 7E adc $7e0011,x
C1DB8D [01DB8D] 9F 11 00 7E sta $7e0011,x
C1DB91 [01DB91] A9 7A 00 lda #$007a
C1DB94 [01DB94] 22 04 00 C5 jsl $c50004
C1DB98 [01DB98] A0 03 00 ldy #$0003
C1DB9B [01DB9B] 20 7E DC jsr $dc7e
C1DB9E [01DB9E] E2 20 sep #$20
C1DBA0 [01DBA0] DF 12 00 7E cmp $7e0012,x ; スタミナ
C1DBA4 [01DBA4] C2 20 rep #$20
C1DBA6 [01DBA6] 90 19 bcc $c1dbc1
C1DBA8 [01DBA8] A0 03 00 ldy #$0003
C1DBAB [01DBAB] 20 47 DC jsr $dc47
C1DBAE [01DBAE] F0 11 beq $c1dbc1
C1DBB0 [01DBB0] A6 64 ldx $64
C1DBB2 [01DBB2] 7F 12 00 7E adc $7e0012,x
C1DBB6 [01DBB6] 9F 12 00 7E sta $7e0012,x
C1DBBA [01DBBA] A9 7B 00 lda #$007b
C1DBBD [01DBBD] 22 04 00 C5 jsl $c50004
C1DBC1 [01DBC1] A0 04 00 ldy #$0004
C1DBC4 [01DBC4] 20 7E DC jsr $dc7e
C1DBC7 [01DBC7] DF 15 00 7E cmp $7e0015,x ; きびんさ
C1DBCB [01DBCB] 90 19 bcc $c1dbe6
C1DBCD [01DBCD] A0 04 00 ldy #$0004
C1DBD0 [01DBD0] 20 47 DC jsr $dc47
C1DBD3 [01DBD3] F0 11 beq $c1dbe6
C1DBD5 [01DBD5] A6 64 ldx $64
C1DBD7 [01DBD7] 7F 15 00 7E adc $7e0015,x
C1DBDB [01DBDB] 9F 15 00 7E sta $7e0015,x
C1DBDF [01DBDF] A9 7C 00 lda #$007c
C1DBE2 [01DBE2] 22 04 00 C5 jsl $c50004
C1DBE6 [01DBE6] A0 06 00 ldy #$0006
C1DBE9 [01DBE9] 20 7E DC jsr $dc7e
C1DBEC [01DBEC] E2 20 sep #$20
C1DBEE [01DBEE] DF 13 00 7E cmp $7e0013,x ; ちせい
C1DBF2 [01DBF2] C2 20 rep #$20
C1DBF4 [01DBF4] 90 19 bcc $c1dc0f
C1DBF6 [01DBF6] A0 06 00 ldy #$0006
C1DBF9 [01DBF9] 20 47 DC jsr $dc47
C1DBFC [01DBFC] F0 11 beq $c1dc0f
C1DBFE [01DBFE] A6 64 ldx $64
C1DC00 [01DC00] 7F 13 00 7E adc $7e0013,x
C1DC04 [01DC04] 9F 13 00 7E sta $7e0013,x
C1DC08 [01DC08] A9 7D 00 lda #$007d
C1DC0B [01DC0B] 22 04 00 C5 jsl $c50004
C1DC0F [01DC0F] A0 05 00 ldy #$0005
C1DC12 [01DC12] 20 7E DC jsr $dc7e
C1DC15 [01DC15] E2 20 sep #$20
C1DC17 [01DC17] DF 14 00 7E cmp $7e0014,x ; ラック
C1DC1B [01DC1B] C2 20 rep #$20
C1DC1D [01DC1D] 90 19 bcc $c1dc38
C1DC1F [01DC1F] A0 05 00 ldy #$0005
C1DC22 [01DC22] 20 47 DC jsr $dc47
C1DC25 [01DC25] F0 11 beq $c1dc38
C1DC27 [01DC27] A6 64 ldx $64
C1DC29 [01DC29] 7F 14 00 7E adc $7e0014,x
C1DC2D [01DC2D] 9F 14 00 7E sta $7e0014,x
C1DC31 [01DC31] A9 7E 00 lda #$007e
C1DC34 [01DC34] 22 04 00 C5 jsl $c50004
C1DC38 [01DC38] 60 rts
;----------------------------------------------
; A ← 最大 HP の成長量
;----------------------------------------------
C1DC39 [01DC39] A5 66 lda $66
C1DC3B [01DC3B] A6 62 ldx $62
C1DC3D [01DC3D] 20 91 E3 jsr $e391
C1DC40 [01DC40] 0A asl
C1DC41 [01DC41] 85 3A sta $3a
C1DC43 [01DC43] F0 37 beq $c1dc7c
C1DC45 [01DC45] 80 09 bra $c1dc50
;----------------------------------------------
; A ← その他の能力値の成長量
;----------------------------------------------
C1DC47 [01DC47] A5 66 lda $66
C1DC49 [01DC49] A6 62 ldx $62
C1DC4B [01DC4B] 20 91 E3 jsr $e391 ; $3a に成長値を代入
C1DC4E [01DC4E] F0 2C beq $c1dc7c
C1DC50 [01DC50] A9 FF 00 lda #$00ff
C1DC53 [01DC53] 20 35 87 jsr $8735 ; A ← 乱数 0〜254
C1DC56 [01DC56] E2 20 sep #$20
C1DC58 [01DC58] 8D 1B 21 sta $211b
C1DC5B [01DC5B] 9C 1B 21 stz $211b
C1DC5E [01DC5E] A5 3A lda $3a ; 成長値
C1DC60 [01DC60] 8D 1C 21 sta $211c
C1DC63 [01DC63] C2 20 rep #$20
C1DC65 [01DC65] AD 34 21 lda $2134
C1DC68 [01DC68] 0A asl
C1DC69 [01DC69] EB xba
C1DC6A [01DC6A] 29 7F 00 and #$007f
C1DC6D [01DC6D] F0 0D beq $c1dc7c
C1DC6F [01DC6F] 48 pha
C1DC70 [01DC70] 20 CC 87 jsr $87cc ; 10 進変換
C1DC73 [01DC73] 8D E6 06 sta $06e6
C1DC76 [01DC76] 9C E8 06 stz $06e8
C1DC79 [01DC79] 68 pla
C1DC7A [01DC7A] 18 clc
C1DC7B [01DC7B] 60 rts
C1DC7C [01DC7C] 38 sec
C1DC7D [01DC7D] 60 rts
;----------------------------------------------
; A ← ((乱数 0〜(A-1)) + (乱数 0〜(A-1)) +
; (乱数 0〜(A-1)) + (乱数 0〜(A-1))) / 4
;----------------------------------------------
C18735 [018735] 48 pha
C18736 [018736] 48 pha
C18737 [018737] 20 5F 87 jsr $875f
C1873A [01873A] 83 03 sta $03,s
C1873C [01873C] A3 01 lda $01,s
C1873E [01873E] 20 5F 87 jsr $875f
C18741 [018741] 18 clc
C18742 [018742] 63 03 adc $03,s
C18744 [018744] 83 03 sta $03,s
C18746 [018746] A3 01 lda $01,s
C18748 [018748] 20 5F 87 jsr $875f
C1874B [01874B] 18 clc
C1874C [01874C] 63 03 adc $03,s
C1874E [01874E] 83 03 sta $03,s
C18750 [018750] A3 01 lda $01,s
C18752 [018752] 20 5F 87 jsr $875f
C18755 [018755] 18 clc
C18756 [018756] 63 03 adc $03,s
C18758 [018758] 83 03 sta $03,s
C1875A [01875A] 68 pla
C1875B [01875B] 68 pla
C1875C [01875C] 4A lsr
C1875D [01875D] 4A lsr
C1875E [01875E] 60 rts
;----------------------------------------------
; A ← 乱数 0〜(A-1)
;
; 注意: A が 16-bit 幅ではない場合、このコードは正しく動作しません。
; ($4216 の値を読むまでの経過マシンサイクルが(おそらく) 15 のため)
;----------------------------------------------
C1875F [01875F] 08 php
C18760 [018760] E2 20 sep #$20
C18762 [018762] C9 00 cmp #$00
C18764 [018764] F0 1B beq $c18781
C18766 [018766] 48 pha
C18767 [018767] 22 18 00 C0 jsl $c00018
C1876B [01876B] 8D 04 42 sta $4204
C1876E [01876E] EB xba
C1876F [01876F] 8D 05 42 sta $4205
C18772 [018772] 68 pla
C18773 [018773] 8D 06 42 sta $4206
C18776 [018776] 28 plp ; 4 cycles
C18777 [018777] AD 16 42 lda $4216 ; 4/5 cycles
C1877A [01877A] AD 16 42 lda $4216 ; 4/5 cycles
C1877D [01877D] AD 16 42 lda $4216 ;
C18780 [018780] 60 rts
C18781 [018781] 28 plp
C18782 [018782] 7B tdc
C18783 [018783] 60 rts
;----------------------------------------------
; A ← 乱数 0〜65535
;----------------------------------------------
C00018 [000018] 20 A2 1E jsr $1ea2
C0001B [00001B] 6B rtl
;----------------------------------------------
; A ← 乱数 0〜65535 (一様かどうかは不明)
;----------------------------------------------
C01EA2 [001EA2] 08 php
C01EA3 [001EA3] C2 20 rep #$20
C01EA5 [001EA5] AD 12 09 lda $0912
C01EA8 [001EA8] 6D 74 0A adc $0a74
C01EAB [001EAB] 6A ror
C01EAC [001EAC] 6A ror
C01EAD [001EAD] 6D 12 09 adc $0912
C01EB0 [001EB0] 69 0D 00 adc #$000d
C01EB3 [001EB3] 8D 12 09 sta $0912
C01EB6 [001EB6] 28 plp
C01EB7 [001EB7] 60 rts