【BA4988】SysStart函数
反汇编:
SysStart()
{
_PADR = 0xC0
_PAR = 0x3F
_PA = 0xFF
_PBDR = 0xEB
_PBR = 0x14
_PB = 0x3F
_PIR = 0xFF
_PIIE = 0x00
_PIWK = 0xFF
_PIMODE = 0x00
_IER = _IER | 0x80
_PO = 0x00
_KEYCON1 = 0x08
_KEYCON2 = 0x00
_KEYCODE = 0x00
KeyBuffTop = 0x00
KeyBuffBottom = 0x00
KeyBouncingFlag = 0x00
KeyBouncingTimes = 0x00
KeyBouncingFirst = 0x00
_DictSysFlag = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
SaveScreenTimes = 0x00
_201A = [0x00, 0x00]
AutoPowerOffValue = 0x04
AutoPowerOffCount = 0x04
_VOLCON = 0x83
_GTCON = 0x2F
_GTCTL = 0xEB
_TISR = 0x3F
_RTCSEC = 0x00
_RTCMIN = 0x00
_RTCHR = 0x00
_RTCDAYL = 0x00
_RTCDAYH = 0x00
_STCTCON = _STCTCON | 0x41
_CTLD = 0xF8
_IER |= 0x02
_ALMDAYH = 0x00
_ALMDAYL = 0x00
_ALMHR = 0x00
_ALMMIN = 0x01
_IER |= 0x01
_STCTCON |= 0x20
_ST1LD = 0xA6
_STCTCON |= 0x04
_TISR = 0xFE
_TIER |= 0x01
_2018 = 0x00
_MTCT = 0xC8
_TISR = 0xDF
__addr_reg = 0xE8B0 // SysLcd_Init()
__banked_function_call()
_72B6()
_70F4()
__addr_reg = 0xE95F // AppEnvInit()
__banked_function_call()
_AUDCON |= 0xC0
_TIER |= 0x20
_201B |= 0x01
_MTCT = 0xFE
__addr_reg = 0xE737
__banked_function_call()
_LCDCON = 0x1A
_7226()
_7BB0()
_7BB0()
_7BB0()
_202B = 0x10
_LCDRES = 0x76
_LCDMODE = 0x80
_LCDCON = 0x94
}
汇编:
6FA2 [08 78 A9]: PHP @ 处理器状态压入堆栈
6FA3 [78 A9 C0]: SEI @ 置中断禁止位
6FA4 [A9 C0 8D]: LDA #$C0 @ 送累加器
6FA6 [8D 1A 02]: STA $021A = #$C0 @ 存累加器
6FA9 [A9 3F 8D]: LDA #$3F @ 送累加器
6FAB [8D 19 02]: STA $0219 = #$3F @ 存累加器
6FAE [A9 FF 8D]: LDA #$FF @ 送累加器
6FB0 [8D 18 02]: STA $0218 = #$FF @ 存累加器
6FB3 [A9 EB 8D]: LDA #$EB @ 送累加器
6FB5 [8D 1D 02]: STA $021D = #$EB @ 存累加器
6FB8 [A9 14 8D]: LDA #$14 @ 送累加器
6FBA [8D 1C 02]: STA $021C = #$14 @ 存累加器
6FBD [A9 3F 8D]: LDA #$3F @ 送累加器
6FBF [8D 1B 02]: STA $021B = #$3F @ 存累加器
6FC2 [A9 FF 8D]: LDA #$FF @ 送累加器
6FC4 [8D 15 02]: STA $0215 = #$FF @ 存累加器
6FC7 [A9 00 8D]: LDA #$00 @ 送累加器
6FC9 [8D 39 02]: STA $0239 = #$00 @ 存累加器
6FCC [A9 FF 8D]: LDA #$FF @ 送累加器
6FCE [8D 16 02]: STA $0216 = #$FF @ 存累加器
6FD1 [A9 00 8D]: LDA #$00 @ 送累加器
6FD3 [8D 17 02]: STA $0217 = #$00 @ 存累加器
6FD6 [AD 3A 02]: LDA $023A = #$DF @ 送累加器
6FD9 [09 80 8D]: ORA #$80 @ 逻辑或
6FDB [8D 3A 02]: STA $023A = #$DF @ 存累加器
6FDE [A9 00 8D]: LDA #$00 @ 送累加器
6FE0 [8D 1E 02]: STA $021E = #$00 @ 存累加器
6FE3 [A9 08 8D]: LDA #$08 @ 送累加器
6FE5 [8D 4D 02]: STA $024D = #$08 @ 存累加器
6FE8 [A9 00 8D]: LDA #$00 @ 送累加器
6FEA [8D 04 02]: STA $0204 = #$00 @ 存累加器
6FED [8D 4E 02]: STA $024E = #$00 @ 存累加器
6FF0 [A9 00 8D]: LDA #$00 @ 送累加器
6FF2 [8D 03 20]: STA $2003 = #$00 @ 存累加器
6FF5 [8D 04 20]: STA $2004 = #$00 @ 存累加器
6FF8 [8D 05 20]: STA $2005 = #$00 @ 存累加器
6FFB [8D 06 20]: STA $2006 = #$00 @ 存累加器
6FFE [8D 07 20]: STA $2007 = #$00 @ 存累加器
7001 [A9 00 8D]: LDA #$00 @ 送累加器
7003 [8D 1E 20]: STA $201E = #$00 @ 存累加器
7006 [8D 1F 20]: STA $201F = #$00 @ 存累加器
7009 [8D 20 20]: STA $2020 = #$00 @ 存累加器
700C [8D 21 20]: STA $2021 = #$00 @ 存累加器
700F [8D 2D 20]: STA $202D = #$00 @ 存累加器
7012 [8D 22 20]: STA $2022 = #$00 @ 存累加器
7015 [8D 23 20]: STA $2023 = #$00 @ 存累加器
7018 [8D 24 20]: STA $2024 = #$00 @ 存累加器
701B [8D 25 20]: STA $2025 = #$00 @ 存累加器
701E [8D 26 20]: STA $2026 = #$00 @ 存累加器
7021 [8D 1A 20]: STA $201A = #$00 @ 存累加器
7024 [8D 1B 20]: STA $201B = #$00 @ 存累加器
7027 [A9 04 8D]: LDA #$04 @ 送累加器
7029 [8D 27 20]: STA $2027 = #$04 @ 存累加器
702C [8D 28 20]: STA $2028 = #$04 @ 存累加器
702F [A9 83 8D]: LDA #$83 @ 送累加器
7031 [8D 3E 02]: STA $023E = #$83 @ 存累加器
7034 [A9 2F 8D]: LDA #$2F @ 送累加器
7036 [8D 23 02]: STA $0223 = #$2F @ 存累加器
7039 [A9 EB 8D]: LDA #$EB @ 送累加器
703B [8D 24 02]: STA $0224 = #$EB @ 存累加器
703E [A9 3F 85]: LDA #$3F @ 送累加器
7040 [85 05 A9]: STA $05 = #$3F @ 存累加器
7042 [A9 00 8D]: LDA #$00 @ 送累加器
7044 [8D 34 02]: STA $0234 = #$00 @ 存累加器
7047 [8D 35 02]: STA $0235 = #$00 @ 存累加器
704A [8D 36 02]: STA $0236 = #$00 @ 存累加器
704D [8D 37 02]: STA $0237 = #$00 @ 存累加器
7050 [8D 38 02]: STA $0238 = #$00 @ 存累加器
7053 [AD 2E 02]: LDA $022E = #$65 @ 送累加器
7056 [09 41 8D]: ORA #$41 @ 逻辑或
7058 [8D 2E 02]: STA $022E = #$65 @ 存累加器
705B [A9 F8 8D]: LDA #$F8 @ 送累加器
705D [8D 2F 02]: STA $022F = #$F8 @ 存累加器
7060 [AD 3A 02]: LDA $023A = #$DF @ 送累加器
7063 [09 02 8D]: ORA #$02 @ 逻辑或
7065 [8D 3A 02]: STA $023A = #$DF @ 存累加器
7068 [A9 00 8D]: LDA #$00 @ 送累加器
706A [8D 33 02]: STA $0233 = #$00 @ 存累加器
706D [8D 32 02]: STA $0232 = #$00 @ 存累加器
7070 [8D 31 02]: STA $0231 = #$00 @ 存累加器
7073 [A9 01 8D]: LDA #$01 @ 送累加器
7075 [8D 30 02]: STA $0230 = #$01 @ 存累加器
7078 [AD 3A 02]: LDA $023A = #$DF @ 送累加器
707B [09 01 8D]: ORA #$01 @ 逻辑或
707D [8D 3A 02]: STA $023A = #$DF @ 存累加器
7080 [AD 2E 02]: LDA $022E = #$65 @ 送累加器
7083 [09 20 8D]: ORA #$20 @ 逻辑或
7085 [8D 2E 02]: STA $022E = #$65 @ 存累加器
7088 [A9 A6 8D]: LDA #$A6 @ 送累加器
708A [8D 27 02]: STA $0227 = #$A6 @ 存累加器
708D [AD 2E 02]: LDA $022E = #$65 @ 送累加器
7090 [09 04 8D]: ORA #$04 @ 逻辑或
7092 [8D 2E 02]: STA $022E = #$65 @ 存累加器
7095 [A9 FE 85]: LDA #$FE @ 送累加器
7097 [85 05 AD]: STA $05 = #$FE @ 存累加器
7099 [AD 3B 02]: LDA $023B = #$21 @ 送累加器
709C [09 01 8D]: ORA #$01 @ 逻辑或
709E [8D 3B 02]: STA $023B = #$21 @ 存累加器
70A1 [A9 00 8D]: LDA #$00 @ 送累加器
70A3 [8D 18 20]: STA $2018 = #$00 @ 存累加器
70A6 [A9 C8 8D]: LDA #$C8 @ 送累加器
70A8 [8D 2B 02]: STA $022B = #$C8 @ 存累加器
70AB [A9 DF 85]: LDA #$DF @ 送累加器
70AD [85 05 28]: STA $05 = #$DF @ 存累加器
70AF [28 A2 B0]: PLP @ 堆栈弹回处理器状态
70B0 [A2 B0 86]: LDX #$B0 @ 送变址寄存器X
70B2 [86 26 A2]: STX $26 = #$B0 @ 存变址寄存器X
70B4 [A2 E8 86]: LDX #$E8 @ 送变址寄存器X
70B6 [86 27 20]: STX $27 = #$E8 @ 存变址寄存器X
70B8 [20 F6 D2]: JSR $D2F6 @ 转子
70BB [20 B6 72]: JSR $72B6 @ 转子
70BE [20 F4 70]: JSR $70F4 @ 转子
70C1 [A2 5F 86]: LDX #$5F @ 送变址寄存器X
70C3 [86 26 A2]: STX $26 = #$5F @ 存变址寄存器X
70C5 [A2 E9 86]: LDX #$E9 @ 送变址寄存器X
70C7 [86 27 20]: STX $27 = #$E9 @ 存变址寄存器X
70C9 [20 F6 D2]: JSR $D2F6 @ 转子
70CC [AD 3F 02]: LDA $023F = #$C0 @ 送累加器
70CF [09 C0 8D]: ORA #$C0 @ 逻辑或
70D1 [8D 3F 02]: STA $023F = #$C0 @ 存累加器
70D4 [AD 3B 02]: LDA $023B = #$21 @ 送累加器
70D7 [09 20 8D]: ORA #$20 @ 逻辑或
70D9 [8D 3B 02]: STA $023B = #$21 @ 存累加器
70DC [AD 1B 20]: LDA $201B = #$04 @ 送累加器
70DF [09 01 8D]: ORA #$01 @ 逻辑或
70E1 [8D 1B 20]: STA $201B = #$05 @ 存累加器
70E4 [A9 FE 8D]: LDA #$FE @ 送累加器
70E6 [8D 2B 02]: STA $022B = #$FE @ 存累加器
70E9 [A2 37 86]: LDX #$37 @ 送变址寄存器X
70EB [86 26 A2]: STX $26 = #$37 @ 存变址寄存器X
70ED [A2 E7 86]: LDX #$E7 @ 送变址寄存器X
70EF [86 27 20]: STX $27 = #$E7 @ 存变址寄存器X
70F1 [20 F6 D2]: JSR $D2F6 @ 转子
70F4 [A9 1A 8D]: LDA #$1A @ 送累加器
70F6 [8D 1F 02]: STA $021F = #$1A @ 存累加器
70F9 [20 26 72]: JSR $7226 @ 转子
70FC [20 B0 7B]: JSR $7BB0 @ 转子
70FF [20 B0 7B]: JSR $7BB0 @ 转子
7102 [20 B0 7B]: JSR $7BB0 @ 转子
7105 [A9 10 8D]: LDA #$10 @ 送累加器
7107 [8D 2B 20]: STA $202B = #$10 @ 存累加器
710A [A9 76 8D]: LDA #$76 @ 送累加器
710C [8D 22 02]: STA $0222 = #$76 @ 存累加器
710F [A9 80 8D]: LDA #$80 @ 送累加器
7111 [8D 21 02]: STA $0221 = #$80 @ 存累加器
7114 [A9 94 8D]: LDA #$94 @ 送累加器
7116 [8D 1F 02]: STA $021F = #$94 @ 存累加器
7119 [60 C9 40]: RTS @ 子程序返回