ORG 0x0
VECTOR_RESET:
0000 ac01 DW 0x01ac
0002 1310 DW 0x1013
VECTOR_INT_LV1:
0004 1610 DW 0x1016
VECTOR_INT_P0:
0006 1910 DW 0x1019
VECTOR_INT_P1:
0008 1c10 DW 0x101c
VECTOR_INT_P2:
000a 1f10 DW 0x101f
VECTOR_INT_P3:
000c 2210 DW 0x1022
VECTOR_INT_P4:
000e 2510 DW 0x1025
VECTOR_INT_P5:
0010 2810 DW 0x1028
VECTOR_INT_SRE6:
0012 2b10 DW 0x102b
VECTOR_INT_SR6:
0014 2e10 DW 0x102e
VECTOR_INT_ST6:
0016 3110 DW 0x1031
VECTOR_INT_CSI10_ST0:
0018 3410 DW 0x1034
VECTOR_INT_TMH1:
001a 3710 DW 0x1037
VECTOR_INT_TMH0:
001c 3a10 DW 0x103a
VECTOR_INT_TM50:
001e 3d10 DW 0x103d
VECTOR_INT_TM000:
0020 4010 DW 0x1040
VECTOR_INT_TM010:
0022 4310 DW 0x1043
VECTOR_INT_AD:
0024 4610 DW 0x1046
VECTOR_INT_SR0:
0026 4910 DW 0x1049
VECTOR_INT_WTI:
0028 4c10 DW 0x104c
VECTOR_INT_TM51:
002a 4f10 DW 0x104f
VECTOR_INT_KR:
002c 5210 DW 0x1052
VECTOR_INT_WT:
002e 5510 DW 0x1055
VECTOR_INT_P6:
0030 5810 DW 0x1058
VECTOR_INT_P7:
0032 5b10 DW 0x105b
VECTOR_INT_IIC0_DMU:
0034 5e10 DW 0x105e
VECTOR_INT_CSI11:
0036 6110 DW 0x1061
VECTOR_INT_TM001:
0038 6410 DW 0x1064
VECTOR_INT_TM011:
003a 6710 DW 0x1067
003c 6a10 DW 0x106a
VECTOR_INT_BRK:
003e 6d10 DW 0x106d
__T_resetDataBufferControl:
0040 060b DW 0x0b06
__T_resetFileDecoder:
0042 160d DW 0x0d16
__T_setTimerIntervall_50ms:
0044 5d0e DW 0x0e5d
__T_resetAll:
0046 0e03 DW 0x030e
__T_exceptionHandler:
0048 2309 DW 0x0923
__T_readyToRxWithTimeout:
004a c308 DW 0x08c3
__T_wait_for_rx:
004c 0f09 DW 0x090f
__T_rxError:
004e c10e DW 0x0ec1
__T_sendString:
0050 de08 DW 0x08de
__T_rom_Read:
0052 de0d DW 0x0dde
__T_getRxByte:
0054 d00e DW 0x0ed0
__T_byteReceived:
0056 b30e DW 0x0eb3
__T_setTimerIntervall_2ms:
0058 640e DW 0x0e64
__T_decodeReceivedBytes:
005a 2b0b DW 0x0b2b
__T_eraseAppArea:
005c 3808 DW 0x0838
__T_verifyAppArea:
005e 1308 DW 0x0813
__T_calcBootlSec1CRC:
0060 6a07 DW 0x076a
__T_getCRC:
0062 cf0d DW 0x0dcf
__T_checkAppCRC:
0064 8f07 DW 0x078f
__T_getFirstWriteAddress:
0066 cb0a DW 0x0acb
__T_getWordCount:
0068 d10a DW 0x0ad1
__T_getBlockNr:
006a c80a DW 0x0ac8
__T_resetCRC:
006c ca0d DW 0x0dca
__T_calcCRC:
006e 810d DW 0x0d81
__T_initTimeoutDetect:
0070 2e0e DW 0x0e2e
__T_isTimeout:
0072 470e DW 0x0e47
__T_resetTimeoutDetect:
0074 3d0e DW 0x0e3d
__T_getASCII:
0076 d20d DW 0x0dd2
__T_setByteCountMod4:
0078 dc0a DW 0x0adc
__T_asciiDecode:
007a 620d DW 0x0d62
007c ffff DW 0xffff
007e ffff DW 0xffff
OPTBYTE:
0080 7e00 DW 0x007e
0082 0000 DW 0x0000
0084 00ff DW 0xff00
SelfLib_Init:
0086 B7 PUSH HL
0087 B1 PUSH AX
0088 A100 MOV A, # 0x00
008a 9A6301 CALL N:ASM_execute
008d D6 MOVW HL, AX
008e B0 POP AX
008f 0324FE MOVW N:Dfe24, AX
0092 A109 MOV A, # 0x09
0094 9E33FE MOV N:Dfe33, A
0097 C6 MOVW AX, HL
0098 B6 POP HL
0099 AF RET
SelfLib_ModeCheck:
009a A10E MOV A, # 0x0e
009c 9A6301 CALL N:ASM_execute
009f AF RET
SelfLib_BlankCheck:
00a0 9E23FE MOV N:Dfe23, A
00a3 A108 MOV A, # 0x08
00a5 9A6301 CALL N:ASM_execute
00a8 AF RET
SelfLib_Erase:
00a9 9E23FE MOV N:Dfe23, A
00ac A103 MOV A, # 0x03
00ae 9A6301 CALL N:ASM_execute
00b1 AF RET
SelfLib_Verify:
00b2 9E23FE MOV N:Dfe23, A
00b5 A106 MOV A, # 0x06
00b7 9A6301 CALL N:ASM_execute
00ba AF RET
SelfLib_Write:
00bb A304 MOV B, # 0x04
00bd FA02 BR SelfLib_Wr_Common
SelfLib_EepWrite:
00bf A317 MOV B, # 0x17
SelfLib_Wr_Common:
00c1 9E21FE MOV N:Dfe21, A
00c4 30 XCH A, X
00c5 9E20FE MOV N:Dfe20, A
00c8 32 XCH A, C
00c9 9E22FE MOV N:Dfe22, A
00cc 65 MOV A, D
00cd 9E23FE MOV N:Dfe23, A
00d0 63 MOV A, B
00d1 9A6301 CALL N:ASM_execute
00d4 AF RET
SelfLib_GetInfo_Security:
00d5 B3 PUSH BC
00d6 B1 PUSH AX
00d7 A103 MOV A, # 0x03
00d9 A201 MOV C, # 0x01
00db FA1C BR SelfLib_GI_Execute
SelfLib_GetInfo_BootCluster:
00dd B3 PUSH BC
00de B1 PUSH AX
00df A104 MOV A, # 0x04
00e1 A201 MOV C, # 0x01
00e3 FA14 BR SelfLib_GI_Execute
SelfLib_GetInfo_BlockEndAddr:
00e5 B3 PUSH BC
00e6 B1 PUSH AX
00e7 B7 PUSH HL
00e8 63 MOV A, B
00e9 9E20FE MOV N:Dfe20, A
00ec 0224FE MOVW AX, N:Dfe24
00ef D6 MOVW HL, AX
00f0 A100 MOV A, # 0x00
00f2 BE03 MOV [HL+3], A
00f4 B6 POP HL
00f5 A105 MOV A, # 0x05
00f7 A204 MOV C, # 0x04
SelfLib_GI_Execute:
00f9 9E23FE MOV N:Dfe23, A
00fc A109 MOV A, # 0x09
00fe 9A6301 CALL N:ASM_execute
0101 B6 POP HL
0102 4D00 CMP A, # 0x00
0104 BD0E BNZ SelfLib_GI_Neg_Exit
SelfLib_GI_Pos_Exit:
0106 B1 PUSH AX
0107 B5 PUSH DE
0108 0224FE MOVW AX, N:Dfe24
010b D4 MOVW DE, AX
SelfLib_GI_copy:
010c 85 MOV A, [DE]
010d 97 MOV [HL], A
010e 86 INCW HL
010f 84 INCW DE
0110 8AFA DBNZ C, SelfLib_GI_copy
0112 B4 POP DE
0113 B0 POP AX
SelfLib_GI_Neg_Exit:
0114 B2 POP BC
0115 AF RET
SelfLib_SetInfo_SwapBootCluster:
0116 B3 PUSH BC
0117 A3FE MOV B, # 0xfe
0119 FA14 BR SelfLib_SetInfo_common
SelfLib_SetInfo_ChipEraseProtection:
011b B3 PUSH BC
011c A3FD MOV B, # 0xfd
011e FA0F BR SelfLib_SetInfo_common
SelfLib_SetInfo_BlockEraseProtection:
0120 B3 PUSH BC
0121 A3FB MOV B, # 0xfb
0123 FA0A BR SelfLib_SetInfo_common
SelfLib_SetInfo_WriteProtection:
0125 B3 PUSH BC
0126 A3F7 MOV B, # 0xf7
0128 FA05 BR SelfLib_SetInfo_common
SelfLib_SetInfo_BootClusterProtection:
012a B3 PUSH BC
012b A3DF MOV B, # 0xdf
012d FA00 BR SelfLib_SetInfo_common
SelfLib_SetInfo_common:
012f A103 MOV A, # 0x03
0131 9E23FE MOV N:Dfe23, A
0134 A109 MOV A, # 0x09
0136 9A6301 CALL N:ASM_execute
0139 4D00 CMP A, # 0x00
013b AD02 BZ SelfLib_SetInfo_continue
013d B2 POP BC
013e AF RET
SelfLib_SetInfo_continue:
013f B7 PUSH HL
0140 B1 PUSH AX
0141 0224FE MOVW AX, N:Dfe24
0144 D6 MOVW HL, AX
0145 A1FF MOV A, # 0xff
0147 7184 MOV1 CY, [HL].0
0149 6199 MOV1 A.1, CY
014b 7194 MOV1 CY, [HL].1
014d 61A9 MOV1 A.2, CY
014f 71A4 MOV1 CY, [HL].2
0151 61B9 MOV1 A.3, CY
0153 71C4 MOV1 CY, [HL].4
0155 61D9 MOV1 A.5, CY
0157 615B AND A, B
0159 97 MOV [HL], A
015a B0 POP AX
015b A10A MOV A, # 0x0a
015d 9A6301 CALL N:ASM_execute
0160 B6 POP HL
0161 B2 POP BC
0162 AF RET
ASM_execute:
0163 22 PUSH PSW
0164 F2E2 MOV S:Dfee2, A
0166 61F8 SEL RB3
0168 1620FE MOVW HL, # 0xfe20
016b 7B1E DI
016d 13C0A5 MOV PFCMD, # 0xa5
0170 13C401 MOV FLPMC, # 0x01
0173 13C4FE MOV FLPMC, # 0xfe
0176 13C401 MOV FLPMC, # 0x01
0179 9A0081 CALL N:L8100
017c 13C0A5 MOV PFCMD, # 0xa5
017f 13C400 MOV FLPMC, # 0x00
0182 13C4FF MOV FLPMC, # 0xff
0185 13C400 MOV FLPMC, # 0x00
0188 23 POP PSW
0189 F0E3 MOV A, S:Dfee3
018b 00 NOP
018c 00 NOP
018d 00 NOP
018e 00 NOP
018f 00 NOP
0190 AF RET
0191 37 XCH A, H
0192 386B30 SUBC A, N:D306b
0195 2F ADDC A, [HL]
0196 6B78 CLR1 S:Dfe78.6
0198 32 XCH A, C
0199 2F ADDC A, [HL]
019a 31763036 BT PU0.7, L01d4
019e 00 NOP
SelfLib_Open:
019f 4A05 SET1 S:P5.4
01a1 714B25 CLR1 PM5.4
01a4 AF RET
SelfLib_Close:
01a5 4B05 CLR1 S:P5.4
01a7 714A25 SET1 PM5.4
01aa AF RET
01ab ff DB 0xff
CSTARTUP:
01ac 7B1E DI
01ae 100000 MOVW AX, # 0x0000
01b1 6168 OR A, X
01b3 AD06 BZ L01bb
01b5 160000 MOVW HL, # 0x0000
01b8 6171 XOR A, A
01ba 97 MOV [HL], A
L01bb:
01bb EE1C82FC MOVW SP, # 0xfc82
01bf 9AEB01 CALL N:__low_level_init
01c2 6168 OR A, X
01c4 AD1F BZ L01e5
__INIT_NEAR_Z:
01c6 1682FC MOVW HL, # 0xfc82
01c9 12C800 MOVW BC, # 0x00c8
01cc 62 MOV A, C
01cd 6161 OR A, A
01cf AD03 BZ L01d4
01d1 43 INC B
01d2 6171 XOR A, A
L01d4:
01d4 97 MOV [HL], A
01d5 86 INCW HL
01d6 8AFC DBNZ C, L01d4
01d8 8BFA DBNZ B, L01d4
__INIT_SADDR_Z:
01da 1684FE MOVW HL, # 0xfe84
01dd A34C MOV B, # 0x4c
01df 6171 XOR A, A
L01e1:
01e1 97 MOV [HL], A
01e2 86 INCW HL
01e3 8BFC DBNZ B, L01e1
L01e5:
01e5 9AE50D CALL N:main
01e8 9AF001 CALL N:exit
__low_level_init:
01eb 100100 MOVW AX, # 0x0001
01ee AF RET
01ef ff DB 0xff
exit:
01f0 00 NOP
01f1 FAFD BR exit
UC_RSH_L01:
01f3 B3 PUSH BC
01f4 30 XCH A, X
01f5 41 INC A
01f6 72 MOV C, A
01f7 51 DEC A
01f8 30 XCH A, X
L01f9:
01f9 8A04 DBNZ C, L01ff
01fb 4D00 CMP A, # 0x00
01fd B2 POP BC
01fe AF RET
L01ff:
01ff 21 CLR1 CY
0200 25 RORC A, 1
0201 FAF6 BR L01f9
UI_RSH_L02:
0203 B3 PUSH BC
0204 42 INC C
L0205:
0205 8A05 DBNZ C, L020c
0207 EA0000 CMPW AX, # 0x0000
020a B2 POP BC
020b AF RET
L020c:
020c 21 CLR1 CY
020d 25 RORC A, 1
020e 30 XCH A, X
020f 25 RORC A, 1
0210 30 XCH A, X
0211 FAF2 BR L0205
UI_CMP_L02:
0213 B1 PUSH AX
0214 30 XCH A, X
0215 611A SUB A, C
0217 30 XCH A, X
0218 613B SUBC A, B
021a 6168 OR A, X
021c B0 POP AX
021d AF RET
L_ADD_L03:
021e B5 PUSH DE
021f E2 XCHW AX, BC
0220 E4 XCHW AX, DE
0221 B7 PUSH HL
0222 891C MOVW AX, SP
0224 D6 MOVW HL, AX
0225 32 XCH A, C
0226 0906 ADD A, [HL+6]
0228 32 XCH A, C
0229 33 XCH A, B
022a 2907 ADDC A, [HL+7]
022c 33 XCH A, B
022d 34 XCH A, E
022e 2908 ADDC A, [HL+8]
0230 34 XCH A, E
0231 35 XCH A, D
0232 2909 ADDC A, [HL+9]
0234 75 MOV D, A
0235 9BC502 BR N:L_F_DEALLOC_L06
UL_CMP_L03:
0238 B5 PUSH DE
0239 E2 XCHW AX, BC
023a E4 XCHW AX, DE
023b B7 PUSH HL
023c 891C MOVW AX, SP
023e D6 MOVW HL, AX
023f 62 MOV A, C
0240 1906 SUB A, [HL+6]
0242 70 MOV X, A
0243 63 MOV A, B
0244 3907 SUBC A, [HL+7]
0246 6160 OR X, A
0248 64 MOV A, E
0249 3908 SUBC A, [HL+8]
024b 6160 OR X, A
024d 65 MOV A, D
024e 3909 SUBC A, [HL+9]
0250 6160 OR X, A
0252 9BED02 BR N:0SL_F_DEALLOC_STAT_L06
STORE_A_SP_L06:
0255 B7 PUSH HL
0256 B5 PUSH DE
0257 B3 PUSH BC
0258 D2 MOVW BC, AX
0259 891C MOVW AX, SP
025b D6 MOVW HL, AX
025c AE06 MOV A, [HL+6]
025e 70 MOV X, A
025f AE07 MOV A, [HL+7]
0261 D4 MOVW DE, AX
0262 80 INCW AX
0263 BE07 MOV [HL+7], A
0265 60 MOV A, X
0266 BE06 MOV [HL+6], A
0268 85 MOV A, [DE]
0269 22 PUSH PSW
026a E6 XCHW AX, HL
026b CA0800 ADDW AX, # 0x0008
026e 23 POP PSW
026f E6 XCHW AX, HL
0270 33 XCH A, B
0271 BB MOV [HL+B], A
0272 32 XCH A, C
0273 30 XCH A, X
0274 32 XCH A, C
0275 B2 POP BC
0276 B4 POP DE
0277 B6 POP HL
0ESTORE_A_SP_L06:
0278 AF RET
LOAD_AX_SP_L06:
0279 B7 PUSH HL
027a B5 PUSH DE
027b B3 PUSH BC
027c 891C MOVW AX, SP
027e D6 MOVW HL, AX
027f AE06 MOV A, [HL+6]
0281 70 MOV X, A
0282 AE07 MOV A, [HL+7]
0284 D4 MOVW DE, AX
0285 80 INCW AX
0286 BE07 MOV [HL+7], A
0288 60 MOV A, X
0289 BE06 MOV [HL+6], A
028b 85 MOV A, [DE]
028c 22 PUSH PSW
028d E6 XCHW AX, HL
028e CA0800 ADDW AX, # 0x0008
0291 E6 XCHW AX, HL
0292 73 MOV B, A
0293 AB MOV A, [HL+B]
0294 70 MOV X, A
0295 43 INC B
0296 23 POP PSW
0297 AB MOV A, [HL+B]
0298 B1 PUSH AX
0299 6168 OR A, X
029b B0 POP AX
029c B2 POP BC
029d B4 POP DE
029e B6 POP HL
029f AF RET
STORE_AX_SP_L06:
02a0 B7 PUSH HL
02a1 B5 PUSH DE
02a2 B3 PUSH BC
02a3 D2 MOVW BC, AX
02a4 891C MOVW AX, SP
02a6 D6 MOVW HL, AX
02a7 AE06 MOV A, [HL+6]
02a9 70 MOV X, A
02aa AE07 MOV A, [HL+7]
02ac D4 MOVW DE, AX
02ad 80 INCW AX
02ae BE07 MOV [HL+7], A
02b0 60 MOV A, X
02b1 BE06 MOV [HL+6], A
02b3 85 MOV A, [DE]
02b4 22 PUSH PSW
02b5 E6 XCHW AX, HL
02b6 CA0800 ADDW AX, # 0x0008
02b9 E6 XCHW AX, HL
02ba E2 XCHW AX, BC
02bb 30 XCH A, X
02bc BB MOV [HL+B], A
02bd 43 INC B
02be 23 POP PSW
02bf 30 XCH A, X
02c0 BB MOV [HL+B], A
02c1 B2 POP BC
02c2 B4 POP DE
02c3 B6 POP HL
0ESTORE_AX_SP_L06:
02c4 AF RET
L_F_DEALLOC_L06:
02c5 891C MOVW AX, SP
02c7 D6 MOVW HL, AX
02c8 AE04 MOV A, [HL+4]
02ca BE08 MOV [HL+8], A
02cc AE05 MOV A, [HL+5]
02ce BE09 MOV [HL+9], A
02d0 AE02 MOV A, [HL+2]
02d2 BE06 MOV [HL+6], A
02d4 AE03 MOV A, [HL+3]
02d6 BE07 MOV [HL+7], A
02d8 87 MOV A, [HL]
02d9 BE04 MOV [HL+4], A
02db AE01 MOV A, [HL+1]
02dd BE05 MOV [HL+5], A
02df 65 MOV A, D
02e0 616C OR A, E
02e2 616A OR A, C
02e4 616B OR A, B
02e6 E4 XCHW AX, DE
02e7 E2 XCHW AX, BC
02e8 B6 POP HL
02e9 B6 POP HL
02ea B6 POP HL
02eb B4 POP DE
0EL_F_DEALLOC_L06:
02ec AF RET
0SL_F_DEALLOC_STAT_L06:
02ed 891C MOVW AX, SP
02ef D6 MOVW HL, AX
02f0 AE04 MOV A, [HL+4]
02f2 BE08 MOV [HL+8], A
02f4 AE05 MOV A, [HL+5]
02f6 BE09 MOV [HL+9], A
02f8 AE02 MOV A, [HL+2]
02fa BE06 MOV [HL+6], A
02fc AE03 MOV A, [HL+3]
02fe BE07 MOV [HL+7], A
0300 87 MOV A, [HL]
0301 BE04 MOV [HL+4], A
0303 AE01 MOV A, [HL+1]
0305 BE05 MOV [HL+5], A
0307 E4 XCHW AX, DE
0308 E2 XCHW AX, BC
0309 B6 POP HL
030a B6 POP HL
030b B6 POP HL
030c B4 POP DE
0EL_F_DEALLOC_STAT_L06:
030d AF RET
resetAll:
030e 11B900 MOV S:is_not_first_data, # 0x00
0311 11BA00 MOV S:update_soft_or_bootl, # 0x00
0314 11BB01 MOV S:app_valid, # 0x01
0317 11BC00 MOV S:exception_byte, # 0x00
031a 11BD00 MOV S:user_pressed_update, # 0x00
031d C1 CALLT [__T_resetDataBufferControl]
031e C3 CALLT [__T_resetFileDecoder]
031f 9ADD0E CALL N:resetInterface
0322 C5 CALLT [__T_setTimerIntervall_50ms]
0323 AF RET
bootloader_start:
0324 B3 PUSH BC
0325 B5 PUSH DE
0326 14B8FE MOVW DE, # 0xfeb8
0329 C7 CALLT [__T_resetAll]
032a 9A9F01 CALL N:SelfLib_Open
032d 9A9A00 CALL N:SelfLib_ModeCheck
0330 4D00 CMP A, # 0x00
0332 BD1F BNZ init_micro_0
0334 1000FB MOVW AX, # 0xfb00
0337 9A8600 CALL N:SelfLib_Init
033a C4 MOVW AX, DE
033b 9ADD00 CALL N:SelfLib_GetInfo_BootCluster
033e 72 MOV C, A
033f 62 MOV A, C
0340 4D00 CMP A, # 0x00
0342 AD04 BZ init_micro_1
0344 11BC15 MOV S:exception_byte, # 0x15
0347 C9 CALLT [__T_exceptionHandler]
init_micro_1:
0348 85 MOV A, [DE]
0349 51 DEC A
034a BD03 BNZ init_micro_2
034c 9ADC06 CALL N:afterFirstSwap
init_micro_2:
034f A200 MOV C, # 0x00
0351 FA09 BR init_micro_3
init_micro_0:
0353 11BC13 MOV S:exception_byte, # 0x13
0356 C9 CALLT [__T_exceptionHandler]
bootloader_start_0:
0357 00 NOP
0358 FAFD BR bootloader_start_0
bootloader_start_1:
035a A202 MOV C, # 0x02
init_micro_3:
035c 62 MOV A, C
035d 4D00 CMP A, # 0x00
035f AD0E BZ init_micro_4
0361 4D01 CMP A, # 0x01
0363 AD32 BZ init_micro_5
0365 4D02 CMP A, # 0x02
0367 AD3C BZ init_micro_6
0369 4D03 CMP A, # 0x03
036b AD57 BZ init_micro_7
036d FAED BR init_micro_3
init_micro_4:
036f CB CALLT [__T_readyToRxWithTimeout]
0370 4D00 CMP A, # 0x00
0372 AD08 BZ init_micro_8
0374 A102 MOV A, # 0x02
0376 11BC02 MOV S:exception_byte, # 0x02
bootloader_start_2:
0379 B4 POP DE
037a B2 POP BC
037b AF RET
init_micro_8:
037c A102 MOV A, # 0x02
037e CD CALLT [__T_wait_for_rx]
037f 4D00 CMP A, # 0x00
0381 BD0C BNZ init_micro_9
0383 CF CALLT [__T_rxError]
0384 4D00 CMP A, # 0x00
0386 BDD2 BNZ bootloader_start_1
0388 A102 MOV A, # 0x02
038a 11BC05 MOV S:exception_byte, # 0x05
038d FAEA BR bootloader_start_2
init_micro_9:
038f 10E10E MOVW AX, # 0x0ee1
0392 D1 CALLT [__T_sendString]
0393 A201 MOV C, # 0x01
0395 FAC5 BR init_micro_3
init_micro_5:
0397 A10E MOV A, # 0x0e
0399 CD CALLT [__T_wait_for_rx]
039a 4D00 CMP A, # 0x00
039c BDF9 BNZ init_micro_5
039e 9AD80E CALL N:resetRxErrorFlags
03a1 A202 MOV C, # 0x02
03a3 FAB7 BR init_micro_3
init_micro_6:
03a5 10ED0E MOVW AX, # 0x0eed
03a8 D1 CALLT [__T_sendString]
03a9 10F50E MOVW AX, # 0x0ef5
03ac D1 CALLT [__T_sendString]
03ad 100010 MOVW AX, # 0x1000
03b0 D3 CALLT [__T_rom_Read]
03b1 4D00 CMP A, # 0x00
03b3 AD07 BZ init_micro_10
03b5 10F90E MOVW AX, # 0x0ef9
03b8 D1 CALLT [__T_sendString]
03b9 11BB00 MOV S:app_valid, # 0x00
init_micro_10:
03bc 10010F MOVW AX, # 0x0f01
03bf D1 CALLT [__T_sendString]
03c0 A203 MOV C, # 0x03
03c2 FA98 BR init_micro_3
init_micro_7:
03c4 A13C MOV A, # 0x3c
03c6 CD CALLT [__T_wait_for_rx]
03c7 4D00 CMP A, # 0x00
03c9 BD15 BNZ init_micro_11
03cb CF CALLT [__T_rxError]
03cc 4D00 CMP A, # 0x00
03ce BD07 BNZ init_micro_12
03d0 A102 MOV A, # 0x02
03d2 11BC05 MOV S:exception_byte, # 0x05
03d5 FAA2 BR bootloader_start_2
init_micro_12:
03d7 C8BB00 CMP S:app_valid, # 0x00
03da AD80 BZ init_micro_3
03dc A103 MOV A, # 0x03
03de FA99 BR bootloader_start_2
init_micro_11:
03e0 D5 CALLT [__T_getRxByte]
03e1 4D61 CMP A, # 0x61
03e3 AD0D BZ init_micro_13
03e5 4D62 CMP A, # 0x62
03e7 AD02 BZ init_micro_14
03e9 FA0F BR init_micro_15
init_micro_14:
03eb A100 MOV A, # 0x00
03ed 11BD00 MOV S:user_pressed_update, # 0x00
03f0 FA87 BR bootloader_start_2
init_micro_13:
03f2 A100 MOV A, # 0x00
03f4 11BD01 MOV S:user_pressed_update, # 0x01
03f7 9B7903 BR N:bootloader_start_2
init_micro_15:
03fa A200 MOV C, # 0x00
03fc 9B5C03 BR N:init_micro_3
executeUpdate:
03ff A100 MOV A, # 0x00
0401 B3 PUSH BC
0402 B5 PUSH DE
0403 B7 PUSH HL
0404 B7 PUSH HL
0405 140000 MOVW DE, # 0x0000
0408 A000 MOV X, # 0x00
040a 30 XCH A, X
040b 9A5502 CALL N:STORE_A_SP_L06
040e 00 NOP
040f 60 MOV A, X
0410 FA02 BR init_micro_16
executeUpdate_0:
0412 A102 MOV A, # 0x02
init_micro_16:
0414 4D00 CMP A, # 0x00
0416 AD14 BZ init_micro_17
0418 4D01 CMP A, # 0x01
041a AD52 BZ init_micro_18
041c 4D02 CMP A, # 0x02
041e BD03 BNZ L0423
0420 9BDE04 BR N:init_micro_19
L0423:
0423 4D04 CMP A, # 0x04
0425 BD03 BNZ L042a
0427 9BF305 BR N:init_micro_20
L042a:
042a FAE8 BR init_micro_16
init_micro_17:
042c 10110F MOVW AX, # 0x0f11
042f D1 CALLT [__T_sendString]
0430 C8BB00 CMP S:app_valid, # 0x00
0433 AD1E BZ init_micro_21
0435 A1C8 MOV A, # 0xc8
0437 CD CALLT [__T_wait_for_rx]
0438 4D00 CMP A, # 0x00
043a BD29 BNZ init_micro_22
043c CF CALLT [__T_rxError]
043d 4D00 CMP A, # 0x00
043f BD08 BNZ init_micro_23
0441 A102 MOV A, # 0x02
0443 11BC05 MOV S:exception_byte, # 0x05
0446 9B8806 BR N:init_micro_24
init_micro_23:
0449 101D0F MOVW AX, # 0x0f1d
044c D1 CALLT [__T_sendString]
044d A103 MOV A, # 0x03
044f 9B8806 BR N:init_micro_24
executeUpdate_1:
0452 00 NOP
init_micro_21:
0453 D7 CALLT [__T_byteReceived]
0454 4D00 CMP A, # 0x00
0456 ADFA BZ executeUpdate_1
0458 CF CALLT [__T_rxError]
0459 4D00 CMP A, # 0x00
045b BD08 BNZ init_micro_22
045d A102 MOV A, # 0x02
045f 11BC05 MOV S:exception_byte, # 0x05
0462 9B8806 BR N:init_micro_24
init_micro_22:
0465 D5 CALLT [__T_getRxByte]
0466 9E82FC MOV N:rx_buffer, A
0469 A101 MOV A, # 0x01
046b 84 INCW DE
046c FAA6 BR init_micro_16
init_micro_18:
046e D9 CALLT [__T_setTimerIntervall_2ms]
046f EE84C000 MOVW S:temp_u16, # 0x00c0
0473 FA0A BR init_micro_25
executeUpdate_2:
0475 D5 CALLT [__T_getRxByte]
0476 72 MOV C, A
0477 C4 MOVW AX, DE
0478 CA82FC ADDW AX, # 0xfc82
047b D6 MOVW HL, AX
047c 62 MOV A, C
047d 97 MOV [HL], A
047e 84 INCW DE
init_micro_25:
047f 8984 MOVW AX, S:temp_u16
0481 D2 MOVW BC, AX
0482 C4 MOVW AX, DE
0483 9A1302 CALL N:UI_CMP_L02
0486 9D1A BNC init_micro_26
0488 A146 MOV A, # 0x46
048a CD CALLT [__T_wait_for_rx]
048b 4D00 CMP A, # 0x00
048d BDE6 BNZ executeUpdate_2
048f CF CALLT [__T_rxError]
0490 4D00 CMP A, # 0x00
0492 BD08 BNZ init_micro_27
0494 A102 MOV A, # 0x02
0496 11BC05 MOV S:exception_byte, # 0x05
0499 9B8806 BR N:init_micro_24
init_micro_27:
049c A101 MOV A, # 0x01
049e 9A5502 CALL N:STORE_A_SP_L06
04a1 00 NOP
init_micro_26:
04a2 9A9E0E CALL N:stopRx
04a5 B0 POP AX
04a6 B1 PUSH AX
04a7 60 MOV A, X
04a8 51 DEC A
04a9 BD03 BNZ L04ae
04ab 9B1204 BR N:executeUpdate_0
L04ae:
04ae 11B800 MOV S:temp_u08, # 0x00
04b1 FA0C BR init_micro_28
executeUpdate_3:
04b3 D5 CALLT [__T_getRxByte]
04b4 72 MOV C, A
04b5 C4 MOVW AX, DE
04b6 CA82FC ADDW AX, # 0xfc82
04b9 D6 MOVW HL, AX
04ba 62 MOV A, C
04bb 97 MOV [HL], A
04bc 84 INCW DE
04bd 81B8 INC S:temp_u08
init_micro_28:
04bf C8B808 CMP S:temp_u08, # 0x08
04c2 9D14 BNC init_micro_29
04c4 A146 MOV A, # 0x46
04c6 CD CALLT [__T_wait_for_rx]
04c7 4D00 CMP A, # 0x00
04c9 BDE8 BNZ executeUpdate_3
04cb CF CALLT [__T_rxError]
04cc 4D00 CMP A, # 0x00
04ce BD08 BNZ init_micro_29
04d0 A102 MOV A, # 0x02
04d2 11BC05 MOV S:exception_byte, # 0x05
04d5 9B8806 BR N:init_micro_24
init_micro_29:
04d8 C5 CALLT [__T_setTimerIntervall_50ms]
04d9 A102 MOV A, # 0x02
04db 9B1404 BR N:init_micro_16
init_micro_19:
04de 100000 MOVW AX, # 0x0000
04e1 9AA002 CALL N:STORE_AX_SP_L06
04e4 02 DB 0x02
04e5 FA18 BR init_micro_30
executeUpdate_4:
04e7 00 NOP
executeUpdate_5:
04e8 B7 PUSH HL
04e9 891C MOVW AX, SP
04eb D6 MOVW HL, AX
04ec AE04 MOV A, [HL+4]
04ee 70 MOV X, A
04ef AE05 MOV A, [HL+5]
04f1 B6 POP HL
04f2 80 INCW AX
04f3 B7 PUSH HL
04f4 D6 MOVW HL, AX
04f5 891C MOVW AX, SP
04f7 E6 XCHW AX, HL
04f8 30 XCH A, X
04f9 BE04 MOV [HL+4], A
04fb 60 MOV A, X
04fc BE05 MOV [HL+5], A
04fe B6 POP HL
init_micro_30:
04ff B5 PUSH DE
0500 B2 POP BC
0501 9A7902 CALL N:LOAD_AX_SP_L06
0504 02 DB 0x02
0505 9A1302 CALL N:UI_CMP_L02
0508 8D03 BC L050d
050a 9BAE05 BR N:init_micro_31
L050d:
050d 9A7902 CALL N:LOAD_AX_SP_L06
0510 02 DB 0x02
0511 CA82FC ADDW AX, # 0xfc82
0514 D6 MOVW HL, AX
0515 87 MOV A, [HL]
0516 DB CALLT [__T_decodeReceivedBytes]
0517 F2B8 MOV S:temp_u08, A
0519 C8B801 CMP S:temp_u08, # 0x01
051c BD08 BNZ init_micro_32
051e A102 MOV A, # 0x02
0520 11BC03 MOV S:exception_byte, # 0x03
0523 9B8806 BR N:init_micro_24
init_micro_32:
0526 C8B803 CMP S:temp_u08, # 0x03
0529 BDBC BNZ executeUpdate_4
052b C8B900 CMP S:is_not_first_data, # 0x00
052e BD4C BNZ init_micro_33
0530 11B901 MOV S:is_not_first_data, # 0x01
0533 DD CALLT [__T_eraseAppArea]
0534 4D00 CMP A, # 0x00
0536 BD08 BNZ init_micro_34
0538 A102 MOV A, # 0x02
053a 11BC12 MOV S:exception_byte, # 0x12
053d 9B8806 BR N:init_micro_24
init_micro_34:
0540 9A590D CALL N:getAddress
0543 9986 MOVW S:temp_u32L, AX
0545 C2 MOVW AX, BC
0546 9988 MOVW S:temp_u32H, AX
0548 8988 MOVW AX, S:temp_u32H
054a D2 MOVW BC, AX
054b 8986 MOVW AX, S:temp_u32L
054d 160000 MOVW HL, # 0x0000
0550 B7 PUSH HL
0551 160010 MOVW HL, # 0x1000
0554 B7 PUSH HL
0555 9A3802 CALL N:UL_CMP_L03
0558 9D12 BNC init_micro_35
055a C8BD01 CMP S:user_pressed_update, # 0x01
055d BD08 BNZ init_micro_36
055f A102 MOV A, # 0x02
0561 11BC01 MOV S:exception_byte, # 0x01
0564 9B8806 BR N:init_micro_24
init_micro_36:
0567 11BA01 MOV S:update_soft_or_bootl, # 0x01
056a FA10 BR init_micro_33
init_micro_35:
056c C8BD00 CMP S:user_pressed_update, # 0x00
056f BD08 BNZ init_micro_37
0571 A102 MOV A, # 0x02
0573 11BC19 MOV S:exception_byte, # 0x19
0576 9B8806 BR N:init_micro_24
init_micro_37:
0579 11BA00 MOV S:update_soft_or_bootl, # 0x00
init_micro_33:
057c 9A590D CALL N:getAddress
057f 9AC20A CALL N:setByteAddr
0582 9A5F0D CALL N:getWriteByte
0585 9A6809 CALL N:dB_write
0588 F2B8 MOV S:temp_u08, A
058a C8B801 CMP S:temp_u08, # 0x01
058d BD08 BNZ init_micro_38
058f A102 MOV A, # 0x02
0591 11BC06 MOV S:exception_byte, # 0x06
0594 9B8806 BR N:init_micro_24
init_micro_38:
0597 C8B802 CMP S:temp_u08, # 0x02
059a AD03 BZ L059f
059c 9BE804 BR N:executeUpdate_5
L059f:
059f 9A8D06 CALL N:writeIntoFlash
05a2 4D00 CMP A, # 0x00
05a4 BDD6 BNZ init_micro_33
05a6 A102 MOV A, # 0x02
05a8 11BC11 MOV S:exception_byte, # 0x11
05ab 9B8806 BR N:init_micro_24
init_micro_31:
05ae 140000 MOVW DE, # 0x0000
05b1 B0 POP AX
05b2 B1 PUSH AX
05b3 60 MOV A, X
05b4 51 DEC A
05b5 BD2A BNZ init_micro_39
05b7 9A560D CALL N:isEOF
05ba 4D00 CMP A, # 0x00
05bc BD08 BNZ init_micro_40
05be A102 MOV A, # 0x02
05c0 11BC04 MOV S:exception_byte, # 0x04
05c3 9B8806 BR N:init_micro_24
init_micro_40:
05c6 9AF80A CALL N:isLastDataToWrite
05c9 4D00 CMP A, # 0x00
05cb AD0F BZ init_micro_41
05cd 9A8D06 CALL N:writeIntoFlash
05d0 4D00 CMP A, # 0x00
05d2 BD08 BNZ init_micro_41
05d4 A102 MOV A, # 0x02
05d6 11BC11 MOV S:exception_byte, # 0x11
05d9 9B8806 BR N:init_micro_24
init_micro_41:
05dc A104 MOV A, # 0x04
05de 9B1404 BR N:init_micro_16
init_micro_39:
05e1 CB CALLT [__T_readyToRxWithTimeout]
05e2 4D00 CMP A, # 0x00
05e4 AD08 BZ init_micro_42
05e6 A102 MOV A, # 0x02
05e8 11BC02 MOV S:exception_byte, # 0x02
05eb 9B8806 BR N:init_micro_24
init_micro_42:
05ee A101 MOV A, # 0x01
05f0 9B1404 BR N:init_micro_16
init_micro_20:
05f3 10200F MOVW AX, # 0x0f20
05f6 D1 CALLT [__T_sendString]
05f7 DF CALLT [__T_verifyAppArea]
05f8 4D00 CMP A, # 0x00
05fa BD08 BNZ init_micro_43
05fc A102 MOV A, # 0x02
05fe 11BC10 MOV S:exception_byte, # 0x10
0601 9B8806 BR N:init_micro_24
init_micro_43:
0604 C8BA00 CMP S:update_soft_or_bootl, # 0x00
0607 AD33 BZ init_micro_44
0609 E1 CALLT [__T_calcBootlSec1CRC]
060a EE84FE1F MOVW S:temp_u16, # 0x1ffe
060e 8984 MOVW AX, S:temp_u16
0610 D4 MOVW DE, AX
0611 E3 CALLT [__T_getCRC]
0612 D2 MOVW BC, AX
0613 B5 PUSH DE
0614 B6 POP HL
0615 87 MOV A, [HL]
0616 70 MOV X, A
0617 AE01 MOV A, [HL+1]
0619 9A1302 CALL N:UI_CMP_L02
061c AD07 BZ init_micro_45
061e A102 MOV A, # 0x02
0620 11BC08 MOV S:exception_byte, # 0x08
0623 FA63 BR init_micro_24
init_micro_45:
0625 9A1601 CALL N:SelfLib_SetInfo_SwapBootCluster
0628 F2B8 MOV S:temp_u08, A
062a C8B800 CMP S:temp_u08, # 0x00
062d AD07 BZ init_micro_46
062f A102 MOV A, # 0x02
0631 11BC09 MOV S:exception_byte, # 0x09
0634 FA52 BR init_micro_24
init_micro_46:
0636 711BA0 CLR1 RCM.1
executeUpdate_6:
0639 00 NOP
063a FAFD BR executeUpdate_6
init_micro_44:
063c E5 CALLT [__T_checkAppCRC]
063d 4D00 CMP A, # 0x00
063f BD07 BNZ init_micro_47
0641 A102 MOV A, # 0x02
0643 11BC07 MOV S:exception_byte, # 0x07
0646 FA40 BR init_micro_24
init_micro_47:
0648 A100 MOV A, # 0x00
064a 9E00FB MOV N:Dfb00, A
064d A100 MOV A, # 0x00
064f 9E01FB MOV N:Dfb01, A
0652 A100 MOV A, # 0x00
0654 9E02FB MOV N:Dfb02, A
0657 A100 MOV A, # 0x00
0659 1603FB MOVW HL, # 0xfb03
065c 97 MOV [HL], A
065d 100010 MOVW AX, # 0x1000
0660 A501 MOV D, # 0x01
0662 120000 MOVW BC, # 0x0000
0665 9ABF00 CALL N:SelfLib_EepWrite
0668 F2B8 MOV S:temp_u08, A
066a C8B800 CMP S:temp_u08, # 0x00
066d AD07 BZ init_micro_48
066f A102 MOV A, # 0x02
0671 11BC11 MOV S:exception_byte, # 0x11
0674 FA12 BR init_micro_24
init_micro_48:
0676 DF CALLT [__T_verifyAppArea]
0677 4D00 CMP A, # 0x00
0679 BD07 BNZ init_micro_49
067b A102 MOV A, # 0x02
067d 11BC10 MOV S:exception_byte, # 0x10
0680 FA06 BR init_micro_24
init_micro_49:
0682 102B0F MOVW AX, # 0x0f2b
0685 D1 CALLT [__T_sendString]
0686 A103 MOV A, # 0x03
init_micro_24:
0688 B2 POP BC
0689 B2 POP BC
068a B4 POP DE
068b B2 POP BC
068c AF RET
writeIntoFlash:
068d B3 PUSH BC
068e B5 PUSH DE
068f E7 CALLT [__T_getFirstWriteAddress]
0690 998A MOVW S:union_u32L, AX
0692 C2 MOVW AX, BC
0693 998C MOVW S:union_u32H, AX
0695 E9 CALLT [__T_getWordCount]
0696 F2B8 MOV S:temp_u08, A
0698 EB CALLT [__T_getBlockNr]
0699 4D80 CMP A, # 0x80
069b 8D07 BC init_micro_50
069d A100 MOV A, # 0x00
069f 11BC16 MOV S:exception_byte, # 0x16
06a2 FA35 BR init_micro_51
init_micro_50:
06a4 C8BA00 CMP S:update_soft_or_bootl, # 0x00
06a7 AD15 BZ init_micro_52
06a9 898A MOVW AX, S:union_u32L
06ab EA0110 CMPW AX, # 0x1001
06ae 8D07 BC init_micro_53
06b0 A100 MOV A, # 0x00
06b2 11BC17 MOV S:exception_byte, # 0x17
06b5 FA22 BR init_micro_51
init_micro_53:
06b7 898A MOVW AX, S:union_u32L
06b9 CA0010 ADDW AX, # 0x1000
06bc 998A MOVW S:union_u32L, AX
init_micro_52:
06be F0B8 MOV A, S:temp_u08
06c0 75 MOV D, A
06c1 898C MOVW AX, S:union_u32H
06c3 D2 MOVW BC, AX
06c4 898A MOVW AX, S:union_u32L
06c6 9ABF00 CALL N:SelfLib_EepWrite
06c9 F2B8 MOV S:temp_u08, A
06cb C8B800 CMP S:temp_u08, # 0x00
06ce AD07 BZ L06d7
06d0 A100 MOV A, # 0x00
06d2 11BC11 MOV S:exception_byte, # 0x11
06d5 FA02 BR init_micro_51
L06d7:
06d7 A101 MOV A, # 0x01
init_micro_51:
06d9 B4 POP DE
06da B2 POP BC
06db AF RET
afterFirstSwap:
06dc B3 PUSH BC
06dd B5 PUSH DE
06de B7 PUSH HL
06df DD CALLT [__T_eraseAppArea]
06e0 4D00 CMP A, # 0x00
06e2 BD07 BNZ L06eb
06e4 11BC12 MOV S:exception_byte, # 0x12
06e7 C9 CALLT [__T_exceptionHandler]
L06e8:
06e8 00 NOP
06e9 FAFD BR L06e8
L06eb:
06eb 9A6E08 CALL N:copyBootCluster
06ee 4D00 CMP A, # 0x00
06f0 BD07 BNZ L06f9
06f2 11BC14 MOV S:exception_byte, # 0x14
06f5 C9 CALLT [__T_exceptionHandler]
L06f6:
06f6 00 NOP
06f7 FAFD BR L06f6
L06f9:
06f9 DF CALLT [__T_verifyAppArea]
06fa 4D00 CMP A, # 0x00
06fc BD07 BNZ L0705
06fe 11BC10 MOV S:exception_byte, # 0x10
0701 C9 CALLT [__T_exceptionHandler]
L0702:
0702 00 NOP
0703 FAFD BR L0702
L0705:
0705 E1 CALLT [__T_calcBootlSec1CRC]
0706 B0 POP AX
0707 10FE0F MOVW AX, # 0x0ffe
070a B1 PUSH AX
070b E3 CALLT [__T_getCRC]
070c D4 MOVW DE, AX
070d B5 PUSH DE
070e B2 POP BC
070f B6 POP HL
0710 B7 PUSH HL
0711 87 MOV A, [HL]
0712 70 MOV X, A
0713 AE01 MOV A, [HL+1]
0715 9A1302 CALL N:UI_CMP_L02
0718 AD07 BZ L0721
071a 11BC08 MOV S:exception_byte, # 0x08
071d C9 CALLT [__T_exceptionHandler]
L071e:
071e 00 NOP
071f FAFD BR L071e
L0721:
0721 A100 MOV A, # 0x00
0723 9E00FB MOV N:Dfb00, A
0726 A100 MOV A, # 0x00
0728 9E01FB MOV N:Dfb01, A
072b 64 MOV A, E
072c 9E02FB MOV N:Dfb02, A
072f C4 MOVW AX, DE
0730 70 MOV X, A
0731 60 MOV A, X
0732 9E03FB MOV N:Dfb03, A
0735 10FC1F MOVW AX, # 0x1ffc
0738 A501 MOV D, # 0x01
073a 120000 MOVW BC, # 0x0000
073d 9ABF00 CALL N:SelfLib_EepWrite
0740 72 MOV C, A
0741 62 MOV A, C
0742 4D00 CMP A, # 0x00
0744 AD0A BZ L0750
0746 11BC11 MOV S:exception_byte, # 0x11
0749 C9 CALLT [__T_exceptionHandler]
074a 711BA0 CLR1 RCM.1
L074d:
074d 00 NOP
074e FAFD BR L074d
L0750:
0750 9A1601 CALL N:SelfLib_SetInfo_SwapBootCluster
0753 72 MOV C, A
0754 62 MOV A, C
0755 4D00 CMP A, # 0x00
0757 AD07 BZ L0760
0759 11BC09 MOV S:exception_byte, # 0x09
075c C9 CALLT [__T_exceptionHandler]
L075d:
075d 00 NOP
075e FAFD BR L075d
L0760:
0760 102B0F MOVW AX, # 0x0f2b
0763 D1 CALLT [__T_sendString]
0764 711BA0 CLR1 RCM.1
L0767:
0767 00 NOP
0768 FAFD BR L0767
calcBootlSec1CRC:
076a B3 PUSH BC
076b B5 PUSH DE
076c B7 PUSH HL
076d ED CALLT [__T_resetCRC]
076e B0 POP AX
076f 10FB1F MOVW AX, # 0x1ffb
0772 B1 PUSH AX
0773 140010 MOVW DE, # 0x1000
0776 FA04 BR L077c
L0778:
0778 C4 MOVW AX, DE
0779 D3 CALLT [__T_rom_Read]
077a EF CALLT [__T_calcCRC]
077b 84 INCW DE
L077c:
077c B5 PUSH DE
077d B2 POP BC
077e B0 POP AX
077f B1 PUSH AX
0780 9A1302 CALL N:UI_CMP_L02
0783 9DF3 BNC L0778
0785 A100 MOV A, # 0x00
0787 EF CALLT [__T_calcCRC]
0788 A100 MOV A, # 0x00
078a EF CALLT [__T_calcCRC]
078b B0 POP AX
078c B4 POP DE
078d B2 POP BC
078e AF RET
checkAppCRC:
078f B3 PUSH BC
0790 B5 PUSH DE
0791 ED CALLT [__T_resetCRC]
0792 EE920810 MOVW S:Dfe92, # 0x1008
0796 8992 MOVW AX, S:Dfe92
0798 D6 MOVW HL, AX
0799 AE02 MOV A, [HL+2]
079b 72 MOV C, A
079c AE03 MOV A, [HL+3]
079e 73 MOV B, A
079f 87 MOV A, [HL]
07a0 70 MOV X, A
07a1 AE01 MOV A, [HL+1]
07a3 998A MOVW S:union_u32L, AX
07a5 C2 MOVW AX, BC
07a6 998C MOVW S:union_u32H, AX
07a8 EE920C10 MOVW S:Dfe92, # 0x100c
07ac 8992 MOVW AX, S:Dfe92
07ae D6 MOVW HL, AX
07af AE02 MOV A, [HL+2]
07b1 72 MOV C, A
07b2 AE03 MOV A, [HL+3]
07b4 73 MOV B, A
07b5 87 MOV A, [HL]
07b6 70 MOV X, A
07b7 AE01 MOV A, [HL+1]
07b9 998E MOVW S:Dfe8e, AX
07bb C2 MOVW AX, BC
07bc 9990 MOVW S:Dfe90, AX
07be C89001 CMP S:Dfe90, # 0x01
07c1 8D04 BC L07c7
07c3 A100 MOV A, # 0x00
07c5 FA49 BR L0810
L07c7:
07c7 898A MOVW AX, S:union_u32L
07c9 D2 MOVW BC, AX
07ca 898E MOVW AX, S:Dfe8e
07cc 9A1302 CALL N:UI_CMP_L02
07cf 9D04 BNC L07d5
07d1 A100 MOV A, # 0x00
07d3 FA3B BR L0810
L07d5:
07d5 898E MOVW AX, S:Dfe8e
07d7 EA00F0 CMPW AX, # 0xf000
07da 8D0D BC L07e9
07dc A100 MOV A, # 0x00
07de FA30 BR L0810
L07e0:
07e0 898A MOVW AX, S:union_u32L
07e2 D3 CALLT [__T_rom_Read]
07e3 EF CALLT [__T_calcCRC]
07e4 898A MOVW AX, S:union_u32L
07e6 80 INCW AX
07e7 998A MOVW S:union_u32L, AX
L07e9:
07e9 898A MOVW AX, S:union_u32L
07eb D2 MOVW BC, AX
07ec 898E MOVW AX, S:Dfe8e
07ee 9A1302 CALL N:UI_CMP_L02
07f1 9DED BNC L07e0
07f3 A100 MOV A, # 0x00
07f5 EF CALLT [__T_calcCRC]
07f6 A100 MOV A, # 0x00
07f8 EF CALLT [__T_calcCRC]
07f9 100410 MOVW AX, # 0x1004
07fc D6 MOVW HL, AX
07fd 87 MOV A, [HL]
07fe 70 MOV X, A
07ff AE01 MOV A, [HL+1]
0801 D4 MOVW DE, AX
0802 E3 CALLT [__T_getCRC]
0803 D2 MOVW BC, AX
0804 C4 MOVW AX, DE
0805 9A1302 CALL N:UI_CMP_L02
0808 BD04 BNZ L080e
080a A101 MOV A, # 0x01
080c FA02 BR L0810
L080e:
080e A100 MOV A, # 0x00
L0810:
0810 B4 POP DE
0811 B2 POP BC
0812 AF RET
verifyAppArea:
0813 B3 PUSH BC
0814 A204 MOV C, # 0x04
0816 FA02 BR L081a
L0818:
0818 00 NOP
0819 42 INC C
L081a:
081a 62 MOV A, C
081b 4D80 CMP A, # 0x80
081d 72 MOV C, A
081e 8D04 BC L0824
0820 A101 MOV A, # 0x01
0822 FA12 BR L0836
L0824:
0824 62 MOV A, C
0825 9AB200 CALL N:SelfLib_Verify
0828 4D05 CMP A, # 0x05
082a BD04 BNZ L0830
082c A101 MOV A, # 0x01
082e FA06 BR L0836
L0830:
0830 4D00 CMP A, # 0x00
0832 ADE4 BZ L0818
0834 A100 MOV A, # 0x00
L0836:
0836 B2 POP BC
0837 AF RET
eraseAppArea:
0838 B3 PUSH BC
0839 A204 MOV C, # 0x04
083b FA01 BR L083e
L083d:
083d 42 INC C
L083e:
083e 62 MOV A, C
083f 4D80 CMP A, # 0x80
0841 72 MOV C, A
0842 8D04 BC L0848
0844 A101 MOV A, # 0x01
0846 FA24 BR L086c
L0848:
0848 62 MOV A, C
0849 9AA000 CALL N:SelfLib_BlankCheck
084c 4D00 CMP A, # 0x00
084e ADED BZ L083d
0850 4D1B CMP A, # 0x1b
0852 BD0E BNZ L0862
0854 62 MOV A, C
0855 9AA900 CALL N:SelfLib_Erase
0858 70 MOV X, A
0859 60 MOV A, X
085a 4D00 CMP A, # 0x00
085c ADE0 BZ L083e
085e A100 MOV A, # 0x00
0860 FA0A BR L086c
L0862:
0862 4D05 CMP A, # 0x05
0864 BD04 BNZ L086a
0866 A101 MOV A, # 0x01
0868 FA02 BR L086c
L086a:
086a A100 MOV A, # 0x00
L086c:
086c B2 POP BC
086d AF RET
copyBootCluster:
086e 100000 MOVW AX, # 0x0000
0871 B3 PUSH BC
0872 B5 PUSH DE
0873 B1 PUSH AX
L0874:
0874 B0 POP AX
0875 B1 PUSH AX
0876 EAFB0F CMPW AX, # 0x0ffb
0879 9D42 BNC L08bd
087b 100000 MOVW AX, # 0x0000
087e B1 PUSH AX
087f 100010 MOVW AX, # 0x1000
0882 B1 PUSH AX
0883 9A7902 CALL N:LOAD_AX_SP_L06
0886 041200 DBNZ S:CR000, L089b
0889 00 NOP
088a 9A1E02 CALL N:L_ADD_L03
088d 9986 MOVW S:temp_u32L, AX
088f C2 MOVW AX, BC
0890 9988 MOVW S:temp_u32H, AX
0892 A200 MOV C, # 0x00
0894 FA0F BR L08a5
L0896:
0896 B0 POP AX
0897 B1 PUSH AX
0898 D3 CALLT [__T_rom_Read]
0899 F2B8 MOV S:temp_u08, A
L089b:
089b F0B8 MOV A, S:temp_u08
089d 1600FB MOVW HL, # 0xfb00
08a0 BA MOV [HL+C], A
08a1 B0 POP AX
08a2 80 INCW AX
08a3 B1 PUSH AX
08a4 42 INC C
L08a5:
08a5 62 MOV A, C
08a6 4D04 CMP A, # 0x04
08a8 72 MOV C, A
08a9 8DEB BC L0896
08ab A501 MOV D, # 0x01
08ad 8988 MOVW AX, S:temp_u32H
08af D2 MOVW BC, AX
08b0 8986 MOVW AX, S:temp_u32L
08b2 9ABF00 CALL N:SelfLib_EepWrite
08b5 4D00 CMP A, # 0x00
08b7 ADBB BZ L0874
08b9 A100 MOV A, # 0x00
08bb FA02 BR L08bf
L08bd:
08bd A101 MOV A, # 0x01
L08bf:
08bf B2 POP BC
08c0 B4 POP DE
08c1 B2 POP BC
08c2 AF RET
readyToRxWithTimeout:
08c3 A102 MOV A, # 0x02
08c5 F1 CALLT [__T_initTimeoutDetect]
08c6 9A8C0E CALL N:readyToRx
L08c9:
08c9 9A900E CALL N:readyToRxEnabled
08cc 4D00 CMP A, # 0x00
08ce BD0A BNZ L08da
08d0 F3 CALLT [__T_isTimeout]
08d1 4D00 CMP A, # 0x00
08d3 ADF4 BZ L08c9
08d5 F5 CALLT [__T_resetTimeoutDetect]
08d6 A101 MOV A, # 0x01
08d8 FA03 BR L08dd
L08da:
08da F5 CALLT [__T_resetTimeoutDetect]
08db A100 MOV A, # 0x00
L08dd:
08dd AF RET
sendString:
08de B3 PUSH BC
08df B5 PUSH DE
08e0 D4 MOVW DE, AX
08e1 A128 MOV A, # 0x28
08e3 A200 MOV C, # 0x00
08e5 F1 CALLT [__T_initTimeoutDetect]
08e6 85 MOV A, [DE]
08e7 FA02 BR L08eb
L08e9:
08e9 84 INCW DE
08ea 85 MOV A, [DE]
L08eb:
08eb 4D00 CMP A, # 0x00
08ed AD1A BZ L0909
08ef 9AA20E CALL N:sendByte
L08f2:
08f2 9AA50E CALL N:txStatus
08f5 4D00 CMP A, # 0x00
08f7 AD0A BZ L0903
08f9 F3 CALLT [__T_isTimeout]
08fa 4D00 CMP A, # 0x00
08fc ADF4 BZ L08f2
08fe A201 MOV C, # 0x01
0900 9A0D09 CALL N:messageTimeoutHandler
L0903:
0903 62 MOV A, C
0904 4D00 CMP A, # 0x00
0906 72 MOV C, A
0907 ADE0 BZ L08e9
L0909:
0909 F5 CALLT [__T_resetTimeoutDetect]
090a B4 POP DE
090b B2 POP BC
090c AF RET
messageTimeoutHandler:
090d 00 NOP
090e AF RET
wait_for_rx:
090f F1 CALLT [__T_initTimeoutDetect]
L0910:
0910 D7 CALLT [__T_byteReceived]
0911 4D00 CMP A, # 0x00
0913 BD0A BNZ L091f
0915 F3 CALLT [__T_isTimeout]
0916 4D00 CMP A, # 0x00
0918 ADF6 BZ L0910
091a F5 CALLT [__T_resetTimeoutDetect]
091b A100 MOV A, # 0x00
091d FA03 BR L0922
L091f:
091f F5 CALLT [__T_resetTimeoutDetect]
0920 A101 MOV A, # 0x01
L0922:
0922 AF RET
exceptionHandler:
0923 C5 CALLT [__T_setTimerIntervall_50ms]
0924 10330F MOVW AX, # 0x0f33
0927 D1 CALLT [__T_sendString]
0928 F0BC MOV A, S:exception_byte
092a A004 MOV X, # 0x04
092c 9AF301 CALL N:UC_RSH_L01
092f F7 CALLT [__T_getASCII]
0930 F2BE MOV S:Dfebe, A
0932 F0BC MOV A, S:exception_byte
0934 5D0F AND A, # 0x0f
0936 F7 CALLT [__T_getASCII]
0937 F2BF MOV S:Dfebf, A
0939 10BEFE MOVW AX, # 0xfebe
093c 11C000 MOV S:temp_u16, # 0x00
093f D1 CALLT [__T_sendString]
0940 9AA501 CALL N:SelfLib_Close
0943 AF RET
init_micro:
0944 7B1E DI
0946 717AA2 SET1 MOC.7
0949 139FF1 MOV OSCCTL, # 0xf1
094c 717BA2 CLR1 MOC.7
094f 13FB00 MOV PCC, # 0x00
0952 13A107 MOV MCM, # 0x07
0955 13F0CC MOV IMS, # 0xcc
0958 13F400 MOV IXS, # 0x00
095b 13A400 MOV OSTS, # 0x00
095e 710AA0 SET1 RCM.0
0961 9A6E0E CALL N:ifaceInit
0964 9A240E CALL N:init_timer_50ms
0967 AF RET
dB_write:
0968 B3 PUSH BC
0969 B5 PUSH DE
096a 75 MOV D, A
096b C8C200 CMP S:Dfec2, # 0x00
096e AD77 BZ L09e7
0970 C1 CALLT [__T_resetDataBufferControl]
0971 11C200 MOV S:Dfec2, # 0x00
0974 C89603 CMP S:Dfe96, # 0x03
0977 8D0A BC L0983
0979 A101 MOV A, # 0x01
097b 9BBF0A BR N:L0abf
L097e:
097e 88C304 ADD S:Dfec3, # 0x04
0981 81C4 INC S:Dfec4
L0983:
0983 F095 MOV A, S:Dfe95
0985 70 MOV X, A
0986 F0C3 MOV A, S:Dfec3
0988 72 MOV C, A
0989 60 MOV A, X
098a 6142 CMP C, A
098c 8DF0 BC L097e
098e 120000 MOVW BC, # 0x0000
0991 FA09 BR L099c
L0993:
0993 C2 MOVW AX, BC
0994 CA00FB ADDW AX, # 0xfb00
0997 D6 MOVW HL, AX
0998 A1FF MOV A, # 0xff
099a 97 MOV [HL], A
099b 82 INCW BC
L099c:
099c C2 MOVW AX, BC
099d EAC800 CMPW AX, # 0x00c8
09a0 8DF1 BC L0993
09a2 8996 MOVW AX, S:Dfe96
09a4 D2 MOVW BC, AX
09a5 8994 MOVW AX, S:Dfe94
09a7 9998 MOVW S:Dfe98, AX
09a9 C2 MOVW AX, BC
09aa 999A MOVW S:Dfe9a, AX
09ac F094 MOV A, S:Dfe94
09ae 5D03 AND A, # 0x03
09b0 74 MOV E, A
09b1 8996 MOVW AX, S:Dfe96
09b3 D2 MOVW BC, AX
09b4 8994 MOVW AX, S:Dfe94
09b6 999C MOVW S:Dfe9c, AX
09b8 C2 MOVW AX, BC
09b9 999E MOVW S:Dfe9e, AX
09bb 64 MOV A, E
09bc 4D00 CMP A, # 0x00
09be 74 MOV E, A
09bf AD0F BZ L09d0
09c1 64 MOV A, E
09c2 70 MOV X, A
09c3 A100 MOV A, # 0x00
09c5 99A0 MOVW S:Dfea0, AX
09c7 64 MOV A, E
09c8 70 MOV X, A
09c9 A100 MOV A, # 0x00
09cb 99A2 MOVW S:Dfea2, AX
09cd D89CFC AND S:Dfe9c, # 0xfc
L09d0:
09d0 89A2 MOVW AX, S:Dfea2
09d2 CA00FB ADDW AX, # 0xfb00
09d5 D6 MOVW HL, AX
09d6 65 MOV A, D
09d7 97 MOV [HL], A
09d8 89A2 MOVW AX, S:Dfea2
09da 80 INCW AX
09db 99A2 MOVW S:Dfea2, AX
09dd 89A0 MOVW AX, S:Dfea0
09df 80 INCW AX
09e0 99A0 MOVW S:Dfea0, AX
09e2 A103 MOV A, # 0x03
09e4 9BBF0A BR N:L0abf
L09e7:
09e7 89A0 MOVW AX, S:Dfea0
09e9 60 MOV A, X
09ea 5D03 AND A, # 0x03
09ec F2C1 MOV S:Dfec1, A
09ee 89A0 MOVW AX, S:Dfea0
09f0 EAC800 CMPW AX, # 0x00c8
09f3 8D08 BC L09fd
09f5 A102 MOV A, # 0x02
09f7 11C201 MOV S:Dfec2, # 0x01
09fa 9BBF0A BR N:L0abf
L09fd:
09fd F09A MOV A, S:Dfe9a
09ff 4E96 CMP A, S:Dfe96
0a01 AD09 BZ L0a0c
0a03 11C201 MOV S:Dfec2, # 0x01
0a06 F9 CALLT [__T_setByteCountMod4]
0a07 A102 MOV A, # 0x02
0a09 9BBF0A BR N:L0abf
L0a0c:
0a0c 8994 MOVW AX, S:Dfe94
0a0e D2 MOVW BC, AX
0a0f 8998 MOVW AX, S:Dfe98
0a11 9A1302 CALL N:UI_CMP_L02
0a14 8D05 BC L0a1b
0a16 A101 MOV A, # 0x01
0a18 9BBF0A BR N:L0abf
L0a1b:
0a1b F095 MOV A, S:Dfe95
0a1d 70 MOV X, A
0a1e F0C3 MOV A, S:Dfec3
0a20 72 MOV C, A
0a21 60 MOV A, X
0a22 6142 CMP C, A
0a24 9D09 BNC L0a2f
0a26 11C201 MOV S:Dfec2, # 0x01
0a29 F9 CALLT [__T_setByteCountMod4]
0a2a A102 MOV A, # 0x02
0a2c 9BBF0A BR N:L0abf
L0a2f:
0a2f 8994 MOVW AX, S:Dfe94
0a31 D2 MOVW BC, AX
0a32 8998 MOVW AX, S:Dfe98
0a34 80 INCW AX
0a35 9A1302 CALL N:UI_CMP_L02
0a38 BD20 BNZ L0a5a
0a3a 89A0 MOVW AX, S:Dfea0
0a3c 80 INCW AX
0a3d 99A0 MOVW S:Dfea0, AX
0a3f 89A2 MOVW AX, S:Dfea2
0a41 CA00FB ADDW AX, # 0xfb00
0a44 D6 MOVW HL, AX
0a45 65 MOV A, D
0a46 97 MOV [HL], A
0a47 89A2 MOVW AX, S:Dfea2
0a49 80 INCW AX
0a4a 99A2 MOVW S:Dfea2, AX
0a4c 8996 MOVW AX, S:Dfe96
0a4e D2 MOVW BC, AX
0a4f 8994 MOVW AX, S:Dfe94
0a51 9998 MOVW S:Dfe98, AX
0a53 C2 MOVW AX, BC
0a54 999A MOVW S:Dfe9a, AX
0a56 A103 MOV A, # 0x03
0a58 FA65 BR L0abf
L0a5a:
0a5a C8C100 CMP S:Dfec1, # 0x00
0a5d BD07 BNZ L0a66
0a5f A102 MOV A, # 0x02
0a61 11C201 MOV S:Dfec2, # 0x01
0a64 FA59 BR L0abf
L0a66:
0a66 8998 MOVW AX, S:Dfe98
0a68 D6 MOVW HL, AX
0a69 8994 MOVW AX, S:Dfe94
0a6b 30 XCH A, X
0a6c 611E SUB A, L
0a6e 30 XCH A, X
0a6f 613F SUBC A, H
0a71 D6 MOVW HL, AX
0a72 B7 PUSH HL
0a73 F0C1 MOV A, S:Dfec1
0a75 72 MOV C, A
0a76 100400 MOVW AX, # 0x0004
0a79 A300 MOV B, # 0x00
0a7b 30 XCH A, X
0a7c 611A SUB A, C
0a7e 30 XCH A, X
0a7f 613B SUBC A, B
0a81 B2 POP BC
0a82 9A1302 CALL N:UI_CMP_L02
0a85 8D32 BC L0ab9
0a87 B7 PUSH HL
0a88 B2 POP BC
0a89 92 DECW BC
0a8a 89A2 MOVW AX, S:Dfea2
0a8c 30 XCH A, X
0a8d 610A ADD A, C
0a8f 30 XCH A, X
0a90 612B ADDC A, B
0a92 99A2 MOVW S:Dfea2, AX
0a94 89A0 MOVW AX, S:Dfea0
0a96 30 XCH A, X
0a97 610E ADD A, L
0a99 30 XCH A, X
0a9a 612F ADDC A, H
0a9c 99A0 MOVW S:Dfea0, AX
0a9e 8996 MOVW AX, S:Dfe96
0aa0 D2 MOVW BC, AX
0aa1 8994 MOVW AX, S:Dfe94
0aa3 9998 MOVW S:Dfe98, AX
0aa5 C2 MOVW AX, BC
0aa6 999A MOVW S:Dfe9a, AX
0aa8 89A2 MOVW AX, S:Dfea2
0aaa CA00FB ADDW AX, # 0xfb00
0aad D6 MOVW HL, AX
0aae 65 MOV A, D
0aaf 97 MOV [HL], A
0ab0 89A2 MOVW AX, S:Dfea2
0ab2 80 INCW AX
0ab3 99A2 MOVW S:Dfea2, AX
0ab5 A103 MOV A, # 0x03
0ab7 FA06 BR L0abf
L0ab9:
0ab9 F9 CALLT [__T_setByteCountMod4]
0aba A102 MOV A, # 0x02
0abc 11C201 MOV S:Dfec2, # 0x01
L0abf:
0abf B4 POP DE
0ac0 B2 POP BC
0ac1 AF RET
setByteAddr:
0ac2 9994 MOVW S:Dfe94, AX
0ac4 C2 MOVW AX, BC
0ac5 9996 MOVW S:Dfe96, AX
0ac7 AF RET
getBlockNr:
0ac8 F0C4 MOV A, S:Dfec4
0aca AF RET
getFirstWriteAddress:
0acb 899E MOVW AX, S:Dfe9e
0acd D2 MOVW BC, AX
0ace 899C MOVW AX, S:Dfe9c
0ad0 AF RET
getWordCount:
0ad1 B3 PUSH BC
0ad2 89A0 MOVW AX, S:Dfea0
0ad4 A202 MOV C, # 0x02
0ad6 9A0302 CALL N:UI_RSH_L02
0ad9 60 MOV A, X
0ada B2 POP BC
0adb AF RET
setByteCountMod4:
0adc 89A0 MOVW AX, S:Dfea0
0ade 30 XCH A, X
0adf 5D03 AND A, # 0x03
0ae1 30 XCH A, X
0ae2 5D00 AND A, # 0x00
0ae4 D6 MOVW HL, AX
0ae5 C6 MOVW AX, HL
0ae6 6168 OR A, X
0ae8 AD0D BZ L0af7
0aea 89A0 MOVW AX, S:Dfea0
0aec CA0400 ADDW AX, # 0x0004
0aef 30 XCH A, X
0af0 611E SUB A, L
0af2 30 XCH A, X
0af3 613F SUBC A, H
0af5 99A0 MOVW S:Dfea0, AX
L0af7:
0af7 AF RET
isLastDataToWrite:
0af8 89A0 MOVW AX, S:Dfea0
0afa 6168 OR A, X
0afc AD05 BZ L0b03
0afe F9 CALLT [__T_setByteCountMod4]
0aff A101 MOV A, # 0x01
0b01 FA02 BR L0b05
L0b03:
0b03 A100 MOV A, # 0x00
L0b05:
0b05 AF RET
resetDataBufferControl:
0b06 EE9C0000 MOVW S:Dfe9c, # 0x0000
0b0a EE9E0000 MOVW S:Dfe9e, # 0x0000
0b0e EE980000 MOVW S:Dfe98, # 0x0000
0b12 EE9A0000 MOVW S:Dfe9a, # 0x0000
0b16 EEA00000 MOVW S:Dfea0, # 0x0000
0b1a EEA20000 MOVW S:Dfea2, # 0x0000
0b1e 11C100 MOV S:Dfec1, # 0x00
0b21 11C201 MOV S:Dfec2, # 0x01
0b24 11C303 MOV S:Dfec3, # 0x03
0b27 11C400 MOV S:Dfec4, # 0x00
0b2a AF RET
decodeReceivedBytes:
0b2b B3 PUSH BC
0b2c 72 MOV C, A
0b2d C8C502 CMP S:Dfec5, # 0x02
0b30 8D39 BC L0b6b
0b32 C8C601 CMP S:Dfec6, # 0x01
0b35 BD12 BNZ L0b49
0b37 62 MOV A, C
0b38 11C602 MOV S:Dfec6, # 0x02
0b3b FB CALLT [__T_asciiDecode]
0b3c 73 MOV B, A
0b3d 63 MOV A, B
0b3e A010 MOV X, # 0x10
0b40 3188 MULU X
0b42 60 MOV A, X
0b43 F2C7 MOV S:Dfec7, A
0b45 A102 MOV A, # 0x02
0b47 FA34 BR L0b7d
L0b49:
0b49 62 MOV A, C
0b4a 11C601 MOV S:Dfec6, # 0x01
0b4d FB CALLT [__T_asciiDecode]
0b4e 73 MOV B, A
0b4f F0C7 MOV A, S:Dfec7
0b51 616B OR A, B
0b53 F2C7 MOV S:Dfec7, A
0b55 F0C7 MOV A, S:Dfec7
0b57 70 MOV X, A
0b58 F0C8 MOV A, S:Dfec8
0b5a 6108 ADD A, X
0b5c F2C8 MOV S:Dfec8, A
0b5e 63 MOV A, B
0b5f 41 INC A
0b60 BD09 BNZ L0b6b
0b62 C8C508 CMP S:Dfec5, # 0x08
0b65 AD04 BZ L0b6b
0b67 A101 MOV A, # 0x01
0b69 FA12 BR L0b7d
L0b6b:
0b6b C8C501 CMP S:Dfec5, # 0x01
0b6e BD13 BNZ L0b83
0b70 62 MOV A, C
0b71 4D3A CMP A, # 0x3a
0b73 BD0A BNZ L0b7f
0b75 11C502 MOV S:Dfec5, # 0x02
0b78 11C900 MOV S:Dfec9, # 0x00
L0b7b:
0b7b A102 MOV A, # 0x02
L0b7d:
0b7d B2 POP BC
0b7e AF RET
L0b7f:
0b7f A101 MOV A, # 0x01
0b81 FAFA BR L0b7d
L0b83:
0b83 C8C502 CMP S:Dfec5, # 0x02
0b86 BD09 BNZ L0b91
0b88 F0C7 MOV A, S:Dfec7
0b8a F2CA MOV S:Dfeca, A
0b8c 11C503 MOV S:Dfec5, # 0x03
0b8f FAEA BR L0b7b
L0b91:
0b91 C8C503 CMP S:Dfec5, # 0x03
0b94 BD0D BNZ L0ba3
0b96 F0C7 MOV A, S:Dfec7
0b98 70 MOV X, A
0b99 60 MOV A, X
0b9a A000 MOV X, # 0x00
0b9c 99A4 MOVW S:Dfea4, AX
0b9e 11C504 MOV S:Dfec5, # 0x04
0ba1 FAD8 BR L0b7b
L0ba3:
0ba3 C8C504 CMP S:Dfec5, # 0x04
0ba6 BD0B BNZ L0bb3
0ba8 F0A4 MOV A, S:Dfea4
0baa 6EC7 OR A, S:Dfec7
0bac F2A4 MOV S:Dfea4, A
0bae 11C505 MOV S:Dfec5, # 0x05
0bb1 FAC8 BR L0b7b
L0bb3:
0bb3 C8C505 CMP S:Dfec5, # 0x05
0bb6 BD60 BNZ L0c18
0bb8 F0C8 MOV A, S:Dfec8
0bba F2C9 MOV S:Dfec9, A
0bbc F0C7 MOV A, S:Dfec7
0bbe F2CB MOV S:Dfecb, A
0bc0 C8CA01 CMP S:Dfeca, # 0x01
0bc3 8D04 BC L0bc9
0bc5 A106 MOV A, # 0x06
0bc7 FA02 BR L0bcb
L0bc9:
0bc9 A107 MOV A, # 0x07
L0bcb:
0bcb F2C5 MOV S:Dfec5, A
0bcd C8CB00 CMP S:Dfecb, # 0x00
0bd0 BD38 BNZ L0c0a
0bd2 EEAA0000 MOVW S:Dfeaa, # 0x0000
0bd6 EEAC0000 MOVW S:Dfeac, # 0x0000
0bda 89A6 MOVW AX, S:Dfea6
0bdc 99AC MOVW S:Dfeac, AX
0bde 89A8 MOVW AX, S:Dfea8
0be0 A20C MOV C, # 0x0c
0be2 9A0302 CALL N:UI_RSH_L02
0be5 D6 MOVW HL, AX
0be6 89AC MOVW AX, S:Dfeac
0be8 30 XCH A, X
0be9 610E ADD A, L
0beb 30 XCH A, X
0bec 612F ADDC A, H
0bee 99AC MOVW S:Dfeac, AX
0bf0 89A4 MOVW AX, S:Dfea4
0bf2 D6 MOVW HL, AX
0bf3 89AA MOVW AX, S:Dfeaa
0bf5 30 XCH A, X
0bf6 610E ADD A, L
0bf8 30 XCH A, X
0bf9 612F ADDC A, H
0bfb 99AA MOVW S:Dfeaa, AX
0bfd 89AC MOVW AX, S:Dfeac
0bff D2 MOVW BC, AX
0c00 89AA MOVW AX, S:Dfeaa
0c02 99AE MOVW S:Dfeae, AX
0c04 C2 MOVW AX, BC
0c05 99B0 MOVW S:Dfeb0, AX
0c07 9B7B0B BR N:L0b7b
L0c0a:
0c0a C8CB01 CMP S:Dfecb, # 0x01
0c0d AD03 BZ L0c12
0c0f 9B7B0B BR N:L0b7b
L0c12:
0c12 11CC01 MOV S:Dfecc, # 0x01
0c15 9B7B0B BR N:L0b7b
L0c18:
0c18 C8C506 CMP S:Dfec5, # 0x06
0c1b AD03 BZ L0c20
0c1d 9BE00C BR N:L0ce0
L0c20:
0c20 F0C8 MOV A, S:Dfec8
0c22 F2C9 MOV S:Dfec9, A
0c24 C8CB00 CMP S:Dfecb, # 0x00
0c27 BD3D BNZ L0c66
0c29 C8CA01 CMP S:Dfeca, # 0x01
0c2c BD03 BNZ L0c31
0c2e 11C507 MOV S:Dfec5, # 0x07
L0c31:
0c31 91CA DEC S:Dfeca
0c33 89B0 MOVW AX, S:Dfeb0
0c35 D2 MOVW BC, AX
0c36 89AE MOVW AX, S:Dfeae
0c38 99AA MOVW S:Dfeaa, AX
0c3a C2 MOVW AX, BC
0c3b 99AC MOVW S:Dfeac, AX
0c3d 89B4 MOVW AX, S:Dfeb4
0c3f B1 PUSH AX
0c40 89B2 MOVW AX, S:Dfeb2
0c42 B1 PUSH AX
0c43 89AC MOVW AX, S:Dfeac
0c45 D2 MOVW BC, AX
0c46 89AA MOVW AX, S:Dfeaa
0c48 9A3802 CALL N:UL_CMP_L03
0c4b 9D05 BNC L0c52
0c4d A101 MOV A, # 0x01
0c4f 9B7D0B BR N:L0b7d
L0c52:
0c52 89AC MOVW AX, S:Dfeac
0c54 D2 MOVW BC, AX
0c55 89AA MOVW AX, S:Dfeaa
0c57 99B2 MOVW S:Dfeb2, AX
0c59 C2 MOVW AX, BC
0c5a 99B4 MOVW S:Dfeb4, AX
0c5c 89AE MOVW AX, S:Dfeae
0c5e 80 INCW AX
0c5f 99AE MOVW S:Dfeae, AX
0c61 A103 MOV A, # 0x03
0c63 9B7D0B BR N:L0b7d
L0c66:
0c66 C8CB02 CMP S:Dfecb, # 0x02
0c69 BD25 BNZ L0c90
0c6b C8CD00 CMP S:Dfecd, # 0x00
0c6e BD0E BNZ L0c7e
0c70 11CD01 MOV S:Dfecd, # 0x01
0c73 F0C7 MOV A, S:Dfec7
0c75 70 MOV X, A
0c76 60 MOV A, X
0c77 A000 MOV X, # 0x00
0c79 99A8 MOVW S:Dfea8, AX
0c7b 9B7B0B BR N:L0b7b
L0c7e:
0c7e 11CD00 MOV S:Dfecd, # 0x00
0c81 F0A8 MOV A, S:Dfea8
0c83 6EC7 OR A, S:Dfec7
0c85 F2A8 MOV S:Dfea8, A
0c87 11C507 MOV S:Dfec5, # 0x07
0c8a 11C601 MOV S:Dfec6, # 0x01
0c8d 9B7B0B BR N:L0b7b
L0c90:
0c90 C8CB03 CMP S:Dfecb, # 0x03
0c93 BD0D BNZ L0ca2
0c95 C8CA01 CMP S:Dfeca, # 0x01
0c98 BD03 BNZ L0c9d
0c9a 11C507 MOV S:Dfec5, # 0x07
L0c9d:
0c9d 91CA DEC S:Dfeca
0c9f 9B7B0B BR N:L0b7b
L0ca2:
0ca2 C8CB04 CMP S:Dfecb, # 0x04
0ca5 BD22 BNZ L0cc9
0ca7 C8CD00 CMP S:Dfecd, # 0x00
0caa BD0E BNZ L0cba
0cac 11CD01 MOV S:Dfecd, # 0x01
0caf F0C7 MOV A, S:Dfec7
0cb1 70 MOV X, A
0cb2 60 MOV A, X
0cb3 A000 MOV X, # 0x00
0cb5 99A6 MOVW S:Dfea6, AX
0cb7 9B7B0B BR N:L0b7b
L0cba:
0cba 11CD00 MOV S:Dfecd, # 0x00
0cbd F0A6 MOV A, S:Dfea6
0cbf 6EC7 OR A, S:Dfec7
0cc1 F2A6 MOV S:Dfea6, A
0cc3 11C507 MOV S:Dfec5, # 0x07
0cc6 9B7B0B BR N:L0b7b
L0cc9:
0cc9 C8CB05 CMP S:Dfecb, # 0x05
0ccc BD0D BNZ L0cdb
0cce C8CA01 CMP S:Dfeca, # 0x01
0cd1 BD03 BNZ L0cd6
0cd3 11C507 MOV S:Dfec5, # 0x07
L0cd6:
0cd6 91CA DEC S:Dfeca
0cd8 9B7B0B BR N:L0b7b
L0cdb:
0cdb A101 MOV A, # 0x01
0cdd 9B7D0B BR N:L0b7d
L0ce0:
0ce0 C8C507 CMP S:Dfec5, # 0x07
0ce3 BD14 BNZ L0cf9
0ce5 F0C9 MOV A, S:Dfec9
0ce7 9A7D0D CALL N:calculateCHKSUM
0cea 4EC7 CMP A, S:Dfec7
0cec AD05 BZ L0cf3
0cee A101 MOV A, # 0x01
0cf0 9B7D0B BR N:L0b7d
L0cf3:
0cf3 11C508 MOV S:Dfec5, # 0x08
0cf6 9B7B0B BR N:L0b7b
L0cf9:
0cf9 C8C508 CMP S:Dfec5, # 0x08
0cfc BD06 BNZ L0d04
0cfe 9A090D CALL N:resetAfterRecord
0d01 9B7B0B BR N:L0b7b
L0d04:
0d04 A101 MOV A, # 0x01
0d06 9B7D0B BR N:L0b7d
resetAfterRecord:
0d09 11C501 MOV S:Dfec5, # 0x01
0d0c 11C601 MOV S:Dfec6, # 0x01
0d0f 11C800 MOV S:Dfec8, # 0x00
0d12 11C900 MOV S:Dfec9, # 0x00
0d15 AF RET
resetFileDecoder:
0d16 11C501 MOV S:Dfec5, # 0x01
0d19 11C601 MOV S:Dfec6, # 0x01
0d1c 11C700 MOV S:Dfec7, # 0x00
0d1f 11C800 MOV S:Dfec8, # 0x00
0d22 11C900 MOV S:Dfec9, # 0x00
0d25 11CA00 MOV S:Dfeca, # 0x00
0d28 EEA40000 MOVW S:Dfea4, # 0x0000
0d2c 11CB00 MOV S:Dfecb, # 0x00
0d2f 11CC00 MOV S:Dfecc, # 0x00
0d32 EEA60000 MOVW S:Dfea6, # 0x0000
0d36 EEA80000 MOVW S:Dfea8, # 0x0000
0d3a EEAA0000 MOVW S:Dfeaa, # 0x0000
0d3e EEAC0000 MOVW S:Dfeac, # 0x0000
0d42 EEAE0000 MOVW S:Dfeae, # 0x0000
0d46 EEB00000 MOVW S:Dfeb0, # 0x0000
0d4a 11CD00 MOV S:Dfecd, # 0x00
0d4d EEB20000 MOVW S:Dfeb2, # 0x0000
0d51 EEB40000 MOVW S:Dfeb4, # 0x0000
0d55 AF RET
isEOF:
0d56 F0CC MOV A, S:Dfecc
0d58 AF RET
getAddress:
0d59 89AC MOVW AX, S:Dfeac
0d5b D2 MOVW BC, AX
0d5c 89AA MOVW AX, S:Dfeaa
0d5e AF RET
getWriteByte:
0d5f F0C7 MOV A, S:Dfec7
0d61 AF RET
asciiDecode:
0d62 4D30 CMP A, # 0x30
0d64 8D08 BC L0d6e
0d66 4D3A CMP A, # 0x3a
0d68 9D04 BNC L0d6e
0d6a 5D0F AND A, # 0x0f
0d6c FA0E BR L0d7c
L0d6e:
0d6e 4D41 CMP A, # 0x41
0d70 8D08 BC L0d7a
0d72 4D47 CMP A, # 0x47
0d74 9D04 BNC L0d7a
0d76 0DC9 ADD A, # 0xc9
0d78 FA02 BR L0d7c
L0d7a:
0d7a A1FF MOV A, # 0xff
L0d7c:
0d7c AF RET
calculateCHKSUM:
0d7d 7DFF XOR A, # 0xff
0d7f 41 INC A
0d80 AF RET
calcCRC:
0d81 B3 PUSH BC
0d82 B5 PUSH DE
0d83 73 MOV B, A
0d84 A200 MOV C, # 0x00
0d86 FA39 BR L0dc1
L0d88:
0d88 89B6 MOVW AX, S:Dfeb6
0d8a D4 MOVW DE, AX
0d8b C4 MOVW AX, DE
0d8c 160000 MOVW HL, # 0x0000
0d8f 9986 MOVW S:temp_u32L, AX
0d91 C6 MOVW AX, HL
0d92 9988 MOVW S:temp_u32H, AX
0d94 89B6 MOVW AX, S:Dfeb6
0d96 21 CLR1 CY
0d97 30 XCH A, X
0d98 27 ROLC A, 1
0d99 30 XCH A, X
0d9a 27 ROLC A, 1
0d9b 99B6 MOVW S:Dfeb6, AX
0d9d 63 MOV A, B
0d9e 5D80 AND A, # 0x80
0da0 4D00 CMP A, # 0x00
0da2 AD02 BZ L0da6
0da4 0AB6 SET1 S:Dfeb6.0
L0da6:
0da6 8986 MOVW AX, S:temp_u32L
0da8 30 XCH A, X
0da9 5D00 AND A, # 0x00
0dab 30 XCH A, X
0dac 5D80 AND A, # 0x80
0dae 6168 OR A, X
0db0 AD0A BZ L0dbc
0db2 89B6 MOVW AX, S:Dfeb6
0db4 30 XCH A, X
0db5 7D21 XOR A, # 0x21
0db7 30 XCH A, X
0db8 7D10 XOR A, # 0x10
0dba 99B6 MOVW S:Dfeb6, AX
L0dbc:
0dbc 63 MOV A, B
0dbd 21 CLR1 CY
0dbe 27 ROLC A, 1
0dbf 73 MOV B, A
0dc0 42 INC C
L0dc1:
0dc1 62 MOV A, C
0dc2 4D08 CMP A, # 0x08
0dc4 72 MOV C, A
0dc5 8DC1 BC L0d88
0dc7 B4 POP DE
0dc8 B2 POP BC
0dc9 AF RET
resetCRC:
0dca EEB60000 MOVW S:Dfeb6, # 0x0000
0dce AF RET
0dcf 89B6 MOVW AX, S:Dfeb6
0dd1 AF RET
getASCII:
0dd2 4D0A CMP A, # 0x0a
0dd4 9D04 BNC L0dda
0dd6 6D30 OR A, # 0x30
0dd8 FA03 BR L0ddd
L0dda:
0dda 41 INC A
0ddb 6D40 OR A, # 0x40
L0ddd:
0ddd AF RET
rom_Read:
0dde B3 PUSH BC
0ddf D6 MOVW HL, AX
0de0 87 MOV A, [HL]
0de1 72 MOV C, A
0de2 62 MOV A, C
0de3 B2 POP BC
0de4 AF RET
main:
0de5 B3 PUSH BC
0de6 7B1E DI
0de8 711AA0 SET1 RCM.1
0deb 9A4409 CALL N:init_micro
0dee A304 MOV B, # 0x04
0df0 FA02 BR L0df4
L0df2:
0df2 A303 MOV B, # 0x03
L0df4:
0df4 63 MOV A, B
0df5 4D00 CMP A, # 0x00
0df7 AD10 BZ L0e09
0df9 4D03 CMP A, # 0x03
0dfb AD1B BZ L0e18
0dfd 4D04 CMP A, # 0x04
0dff AD02 BZ L0e03
0e01 FAF1 BR L0df4
L0e03:
0e03 9A2403 CALL N:bootloader_start
0e06 73 MOV B, A
0e07 FAEB BR L0df4
L0e09:
0e09 9AFF03 CALL N:executeUpdate
0e0c 72 MOV C, A
0e0d 62 MOV A, C
0e0e 4D03 CMP A, # 0x03
0e10 ADE0 BZ L0df2
0e12 C9 CALLT [__T_exceptionHandler]
0e13 C7 CALLT [__T_resetAll]
0e14 A304 MOV B, # 0x04
0e16 FADC BR L0df4
L0e18:
0e18 9AA501 CALL N:SelfLib_Close
0e1b 103D0F MOVW AX, # 0x0f3d
0e1e D1 CALLT [__T_sendString]
0e1f 9B1010 BR N:L1010
0e22 FAD0 BR L0df4
init_timer_50ms:
0e24 136B00 MOV TMC50, # 0x00
0e27 136A07 MOV TCL50, # 0x07
0e2a 11177A MOV S:CR50, # 0x7a
0e2d AF RET
initTimeoutDetect:
0e2e 717B6B CLR1 TMC50.7
0e31 715BE1 CLR1 IF0H.5
0e34 F2CF MOV S:Dfecf, A
0e36 11CE00 MOV S:Dfece, # 0x00
0e39 717A6B SET1 TMC50.7
0e3c AF RET
resetTimeoutDetect:
0e3d 717B6B CLR1 TMC50.7
0e40 715BE1 CLR1 IF0H.5
0e43 11CE00 MOV S:Dfece, # 0x00
0e46 AF RET
isTimeout:
0e47 3157E10F BF IF0H.5, L0e5a
0e4b 81CE INC S:Dfece
0e4d 715BE1 CLR1 IF0H.5
0e50 F0CE MOV A, S:Dfece
0e52 4ECF CMP A, S:Dfecf
0e54 BD04 BNZ L0e5a
0e56 A101 MOV A, # 0x01
0e58 FA02 BR L0e5c
L0e5a:
0e5a A100 MOV A, # 0x00
L0e5c:
0e5c AF RET
setTimerIntervall_50ms:
0e5d 717B6B CLR1 TMC50.7
0e60 11177A MOV S:CR50, # 0x7a
0e63 AF RET
setTimerIntervall_2ms:
0e64 717B6B CLR1 TMC50.7
0e67 715BE1 CLR1 IF0H.5
0e6a 111704 MOV S:CR50, # 0x04
0e6d AF RET
ifaceInit:
0e6e 714A21 SET1 PM1.4
0e71 713B21 CLR1 PM1.3
0e74 3A01 SET1 S:P1.3
0e76 135600 MOV CKSR6, # 0x00
0e79 135757 MOV BRGC6, # 0x57
0e7c 717A50 SET1 ASIM6.7
0e7f F450 MOV A, ASIM6
0e81 6D05 OR A, # 0x05
0e83 F650 MOV ASIM6, A
0e85 F450 MOV A, ASIM6
0e87 6DE0 OR A, # 0xe0
0e89 F650 MOV ASIM6, A
0e8b AF RET
readyToRx:
0e8c 110B11 MOV S:TXB6, # 0x11
0e8f AF RET
readyToRxEnabled:
0e90 3117E107 BF IF0H.1, L0e9b
0e94 A101 MOV A, # 0x01
0e96 711BE1 CLR1 IF0H.1
0e99 FA02 BR L0e9d
L0e9b:
0e9b A100 MOV A, # 0x00
L0e9d:
0e9d AF RET
stopRx:
0e9e 110B13 MOV S:TXB6, # 0x13
0ea1 AF RET
sendByte:
0ea2 F20B MOV S:TXB6, A
0ea4 AF RET
txStatus:
0ea5 3117E107 BF IF0H.1, L0eb0
0ea9 A100 MOV A, # 0x00
0eab 711BE1 CLR1 IF0H.1
0eae FA02 BR L0eb2
L0eb0:
0eb0 A101 MOV A, # 0x01
L0eb2:
0eb2 AF RET
byteReceived:
0eb3 3107E107 BF IF0H.0, L0ebe
0eb7 A101 MOV A, # 0x01
0eb9 710BE1 CLR1 IF0H.0
0ebc FA02 BR L0ec0
L0ebe:
0ebe A100 MOV A, # 0x00
L0ec0:
0ec0 AF RET
rxError:
0ec1 A100 MOV A, # 0x00
0ec3 1653FF MOVW HL, # 0xff53
0ec6 4F CMP A, [HL]
0ec7 AD04 BZ L0ecd
0ec9 A100 MOV A, # 0x00
0ecb FA02 BR L0ecf
L0ecd:
0ecd A101 MOV A, # 0x01
L0ecf:
0ecf AF RET
getRxByte:
0ed0 F00A MOV A, S:RXB6
0ed2 70 MOV X, A
0ed3 60 MOV A, X
0ed4 710BE1 CLR1 IF0H.0
0ed7 AF RET
resetRxErrorFlags:
0ed8 F453 MOV A, ASIS6
0eda F00A MOV A, S:RXB6
0edc AF RET
resetInterface:
0edd 9AD80E CALL N:resetRxErrorFlags
0ee0 AF RET
0ee1 0a DB 0x0a
0ee2 0d DB 0x0d
0ee3 53 DB 0x53
0ee4 74 DB 0x74
0ee5 6f DB 0x6f
0ee6 70 DB 0x70
0ee7 20 DB 0x20
0ee8 73 DB 0x73
0ee9 65 DB 0x65
0eea 6e DB 0x6e
0eeb 64 DB 0x64
0eec 00 DB 0x00
0eed 0a DB 0x0a
0eee 0a DB 0x0a
0eef 0d DB 0x0d
0ef0 42 DB 0x42
0ef1 56 DB 0x56
0ef2 3a DB 0x3a
0ef3 20 DB 0x20
0ef4 00 DB 0x00
0ef5 30 DB 0x30
0ef6 2e DB 0x2e
0ef7 31 DB 0x31
0ef8 00 DB 0x00
0ef9 0a DB 0x0a
0efa 0a DB 0x0a
0efb 0d DB 0x0d
0efc 21 DB 0x21
0efd 41 DB 0x41
0efe 50 DB 0x50
0eff 50 DB 0x50
0f00 00 DB 0x00
0f01 0a DB 0x0a
0f02 0d DB 0x0d
0f03 55 DB 0x55
0f04 70 DB 0x70
0f05 64 DB 0x64
0f06 61 DB 0x61
0f07 74 DB 0x74
0f08 65 DB 0x65
0f09 3f DB 0x3f
0f0a 61 DB 0x61
0f0b 20 DB 0x20
0f0c 6f DB 0x6f
0f0d 72 DB 0x72
0f0e 20 DB 0x20
0f0f 62 DB 0x62
0f10 00 DB 0x00
0f11 0a DB 0x0a
0f12 0d DB 0x0d
0f13 53 DB 0x53
0f14 65 DB 0x65
0f15 6e DB 0x6e
0f16 64 DB 0x64
0f17 20 DB 0x20
0f18 66 DB 0x66
0f19 69 DB 0x69
0f1a 6c DB 0x6c
0f1b 65 DB 0x65
0f1c 00 DB 0x00
0f1d 20 DB 0x20
0f1e 58 DB 0x58
0f1f 00 DB 0x00
0f20 0a DB 0x0a
0f21 0d DB 0x0d
0f22 46 DB 0x46
0f23 69 DB 0x69
0f24 6c DB 0x6c
0f25 65 DB 0x65
0f26 20 DB 0x20
0f27 4f DB 0x4f
0f28 4b DB 0x4b
0f29 21 DB 0x21
0f2a 00 DB 0x00
0f2b 0a DB 0x0a
0f2c 0d DB 0x0d
0f2d 52 DB 0x52
0f2e 45 DB 0x45
0f2f 41 DB 0x41
0f30 44 DB 0x44
0f31 59 DB 0x59
0f32 00 DB 0x00
0f33 0a DB 0x0a
0f34 0a DB 0x0a
0f35 0d DB 0x0d
0f36 45 DB 0x45
0f37 52 DB 0x52
0f38 52 DB 0x52
0f39 4f DB 0x4f
0f3a 52 DB 0x52
0f3b 3a DB 0x3a
0f3c 00 DB 0x00
0f3d 0a DB 0x0a
0f3e 0d DB 0x0d
0f3f 53 DB 0x53
0f40 74 DB 0x74
0f41 61 DB 0x61
0f42 72 DB 0x72
0f43 74 DB 0x74
0f44 20 DB 0x20
0f45 61 DB 0x61
0f46 70 DB 0x70
0f47 70 DB 0x70
0f48 2e DB 0x2e
0f49 00 DB 0x00
0f4a ff DB 0xff
0f4b ff DB 0xff
0f4c ff DB 0xff
0f4d ff DB 0xff
0f4e ff DB 0xff
0f4f ff DB 0xff
0f50 ff DB 0xff
0f51 ff DB 0xff
0f52 ff DB 0xff
0f53 ff DB 0xff
0f54 ff DB 0xff
0f55 ff DB 0xff
0f56 ff DB 0xff
0f57 ff DB 0xff
0f58 ff DB 0xff
0f59 ff DB 0xff
0f5a ff DB 0xff
0f5b ff DB 0xff
0f5c ff DB 0xff
0f5d ff DB 0xff
0f5e ff DB 0xff
0f5f ff DB 0xff
0f60 ff DB 0xff
0f61 ff DB 0xff
0f62 ff DB 0xff
0f63 ff DB 0xff
0f64 ff DB 0xff
0f65 ff DB 0xff
0f66 ff DB 0xff
0f67 ff DB 0xff
0f68 ff DB 0xff
0f69 ff DB 0xff
0f6a ff DB 0xff
0f6b ff DB 0xff
0f6c ff DB 0xff
0f6d ff DB 0xff
0f6e ff DB 0xff
0f6f ff DB 0xff
0f70 ff DB 0xff
0f71 ff DB 0xff
0f72 ff DB 0xff
0f73 ff DB 0xff
0f74 ff DB 0xff
0f75 ff DB 0xff
0f76 ff DB 0xff
0f77 ff DB 0xff
0f78 ff DB 0xff
0f79 ff DB 0xff
0f7a ff DB 0xff
0f7b ff DB 0xff
0f7c ff DB 0xff
0f7d ff DB 0xff
0f7e ff DB 0xff
0f7f ff DB 0xff
0f80 ff DB 0xff
0f81 ff DB 0xff
0f82 ff DB 0xff
0f83 ff DB 0xff
0f84 ff DB 0xff
0f85 ff DB 0xff
0f86 ff DB 0xff
0f87 ff DB 0xff
0f88 ff DB 0xff
0f89 ff DB 0xff
0f8a ff DB 0xff
0f8b ff DB 0xff
0f8c ff DB 0xff
0f8d ff DB 0xff
0f8e ff DB 0xff
0f8f ff DB 0xff
0f90 ff DB 0xff
0f91 ff DB 0xff
0f92 ff DB 0xff
0f93 ff DB 0xff
0f94 ff DB 0xff
0f95 ff DB 0xff
0f96 ff DB 0xff
0f97 ff DB 0xff
0f98 ff DB 0xff
0f99 ff DB 0xff
0f9a ff DB 0xff
0f9b ff DB 0xff
0f9c ff DB 0xff
0f9d ff DB 0xff
0f9e ff DB 0xff
0f9f ff DB 0xff
0fa0 ff DB 0xff
0fa1 ff DB 0xff
0fa2 ff DB 0xff
0fa3 ff DB 0xff
0fa4 ff DB 0xff
0fa5 ff DB 0xff
0fa6 ff DB 0xff
0fa7 ff DB 0xff
0fa8 ff DB 0xff
0fa9 ff DB 0xff
0faa ff DB 0xff
0fab ff DB 0xff
0fac ff DB 0xff
0fad ff DB 0xff
0fae ff DB 0xff
0faf ff DB 0xff
0fb0 ff DB 0xff
0fb1 ff DB 0xff
0fb2 ff DB 0xff
0fb3 ff DB 0xff
0fb4 ff DB 0xff
0fb5 ff DB 0xff
0fb6 ff DB 0xff
0fb7 ff DB 0xff
0fb8 ff DB 0xff
0fb9 ff DB 0xff
0fba ff DB 0xff
0fbb ff DB 0xff
0fbc ff DB 0xff
0fbd ff DB 0xff
0fbe ff DB 0xff
0fbf ff DB 0xff
0fc0 ff DB 0xff
0fc1 ff DB 0xff
0fc2 ff DB 0xff
0fc3 ff DB 0xff
0fc4 ff DB 0xff
0fc5 ff DB 0xff
0fc6 ff DB 0xff
0fc7 ff DB 0xff
0fc8 ff DB 0xff
0fc9 ff DB 0xff
0fca ff DB 0xff
0fcb ff DB 0xff
0fcc ff DB 0xff
0fcd ff DB 0xff
0fce ff DB 0xff
0fcf ff DB 0xff
0fd0 ff DB 0xff
0fd1 ff DB 0xff
0fd2 ff DB 0xff
0fd3 ff DB 0xff
0fd4 ff DB 0xff
0fd5 ff DB 0xff
0fd6 ff DB 0xff
0fd7 ff DB 0xff
0fd8 ff DB 0xff
0fd9 ff DB 0xff
0fda ff DB 0xff
0fdb ff DB 0xff
0fdc ff DB 0xff
0fdd ff DB 0xff
0fde ff DB 0xff
0fdf ff DB 0xff
0fe0 ff DB 0xff
0fe1 ff DB 0xff
0fe2 ff DB 0xff
0fe3 ff DB 0xff
0fe4 ff DB 0xff
0fe5 ff DB 0xff
0fe6 ff DB 0xff
0fe7 ff DB 0xff
0fe8 ff DB 0xff
0fe9 ff DB 0xff
0fea ff DB 0xff
0feb ff DB 0xff
0fec ff DB 0xff
0fed ff DB 0xff
0fee ff DB 0xff
0fef ff DB 0xff
0ff0 ff DB 0xff
0ff1 ff DB 0xff
0ff2 ff DB 0xff
0ff3 ff DB 0xff
0ff4 ff DB 0xff
0ff5 ff DB 0xff
0ff6 ff DB 0xff
0ff7 ff DB 0xff
0ff8 ff DB 0xff
0ff9 ff DB 0xff
0ffa ff DB 0xff
0ffb ff DB 0xff
ORG 0xffe
0ffe 8a DB 0x8a
0fff 49 DB 0x49