IQ: C2 31 0B 48 7B 69 F0 FF 5B 68 8A 85 0E A9 01 00 18 ED CA 97 50 04 10 18 80 02 30 14 A5 0E E2 20 AE CA 97 9D BA 97 C2 20 EE CA 97 A9 23 75 80 2F AD BA 97 29 FF 00 AA 3A A0 5F 00 22 F7 8F C0 18 69 28 9A A8 A5 0E E2 20 85 00 B9 00 00 18 65 00 99 00 00 C2 20 8A 22 7D 1D C2 C2 20 A9 00 00 2B 60 Guts: C2 31 0B 48 7B 69 F0 FF 5B 68 8A 85 0E A9 01 00 18 ED CA 97 50 04 10 18 80 02 30 14 A5 0E E2 20 AE CA 97 9D BA 97 C2 20 EE CA 97 A9 84 75 80 2F AD BA 97 29 FF 00 AA 3A A0 5F 00 22 F7 8F C0 18 69 26 9A A8 A5 0E E2 20 85 00 B9 00 00 18 65 00 99 00 00 C2 20 8A 22 A4 1B C2 C2 20 A9 00 00 2B 60 Speed: C2 31 0B 48 7B 69 F0 FF 5B 68 8A 85 0E A9 01 00 18 ED CA 97 50 04 10 18 80 02 30 14 A5 0E E2 20 AE CA 97 9D BA 97 C2 20 EE CA 97 A9 E5 75 80 2F AD BA 97 29 FF 00 AA 3A A0 5F 00 22 F7 8F C0 18 69 25 9A A8 A5 0E E2 20 85 00 B9 00 00 18 65 00 99 00 00 C2 20 8A 22 EB 1A C2 C2 20 A9 00 00 2B 60 Vitality: C2 31 0B 48 7B 69 F0 FF 5B 68 8A 85 0E A9 01 00 18 ED CA 97 50 04 10 18 80 02 30 14 A5 0E E2 20 AE CA 97 9D BA 97 C2 20 EE CA 97 A9 46 76 80 2F AD BA 97 29 FF 00 AA 3A A0 5F 00 22 F7 8F C0 18 69 27 9A A8 A5 0E E2 20 85 00 B9 00 00 18 65 00 99 00 00 C2 20 8A 22 65 1D C2 C2 20 A9 00 00 2B 60 Luck: C2 31 0B 48 7B 69 F0 FF 5B 68 8A 85 0E A9 01 00 18 ED CA 97 50 04 10 18 80 02 30 14 A5 0E E2 20 AE CA 97 9D BA 97 C2 20 EE CA 97 A9 A7 76 80 2F AD BA 97 29 FF 00 AA 3A A0 5F 00 22 F7 8F C0 18 69 29 9A A8 A5 0E E2 20 85 00 B9 00 00 18 65 00 99 00 00 C2 20 8A 22 5D 1C C2 C2 20 A9 00 00 2B 60 ** ** ** ** ** Bytes 45, 46, 66, 88, 89 45: PTR to start of ASM 46: PTR to start of ASM 66: ADC - Add to Accumulator - IQ 28 - Guts 26 - Speed 25 - Vitality 27 - Luck 29 - Numbers follow in-game ordering (on status screen)... 88: Address to jump to (JSR) 89: Address to jump to (JSR) - IQ: 22 7D 1D C2 = C21D7D - Guts: 22 A4 1B C2 = C21BA4 - Speed: 22 EB 1A C2 = C21AEB - Vitality: 22 65 1D C2 = C21D65 - Luck: 22 5D 1C C2 = C21C5D VITALITY -------- C2/1D65: C2 31 REP #$31 C2/1D67: 3A DEC C2/1D68: A0 5F 00 LDY #$005F C2/1D6B: 22 F7 8F C0 JSR $C08FF7 C0/8FF7: C2 10 REP #$10 // X flag clear; index registers are 16 bits. C0/8FF9: EB XBA C0/8FFA: F0 26 BEQ $9022 // If A was < 0x100, branch to $9022. Low ord byte = 00. C0/8FFC: E2 20 SEP #$20 // Was >= 0x100 case. A becomes eight-bit. C0/8FFE: EB XBA // Swap back. // SAMPLES: 1234 XBA 3412 SEP 12 XBA 34 8765 XBA 6587 SEP 87 XBA 65 Effect is modulus by 0x100 for low order. Effect is divide by 0x100 for high order. // Modulo 0x100; if it would produce 0, cut out to $9022. C0/8FFF: 48 PHA // Push the modulus remainder onto the stack. C0/9000: 98 TYA // A = 5F. C0/9001: C2 20 REP #$20 // M flag clear; A = 16 bits. C0/9003: 8F 02 42 00 STA $004202 // Store that mess at $004202. This is the multiplication thingy. C0/9007: EA NOP C0/9008: EA NOP C0/9009: AF 16 42 00 LDA $004216 // Read result of * 5F. C0/900D: A8 TAY // Move result to Y. C0/900E: E2 20 SEP #$20 // M flag set; A = 8 bits. C0/9010: 68 PLA // Remember that modulus remainder? Pull it off the stack. C0/9011: 8F 03 42 00 STA $004203 // Multiply by the modulus remainder...? Why? C0/9015: C2 20 REP #$20 // M flag clear; A = 16 bits. C0/9017: 98 TYA C0/9018: EB XBA // Transfer Y to A, swap low/high order... C0/9019: 29 00 FF AND #$FF00 // And axe the low order. C0/901C: 18 CLC // Clear carry flag. C0/901D: 6F 16 42 00 ADC $004216 // Add: (former-low-now-high-order) + ( * modulus remainder) C0/9021: 6B RTL // Return C2/1D6F: AA TAX // Transfer that mess to X. C2/1D70: E2 20 SEP #$20 // M flag set; A = 8 bits. C2/1D72: BD EF 99 LDA $99EF,X // Load value at $99EF, indexed by X. C2/1D75: 18 CLC // Clear carry. C2/1D76: 7D 27 9A ADC $9A27,X C2/1D79: 9D E8 99 STA $99E8,X C2/1D7C: 6B RTL