full.bin состоит из нескольких кусков
смещения в файле
0-0x400 - хз какие то данные
0x400-0x4300 - нужно загрузить по адресу 0xC000
0x4300 - 0x43F8 - вроде как загрузчик? нижний адрес должен лежать в 0xFFFF (таблица прерываний) только что то там непонятки какие то с таблицей
я просто сребейзил прошивку по адресу 0xBC00 (0xC000-0x400), и абсолютные смещения стали валидными
Code:
ROM:C012 clean_memory_copy_message: ; CODE XREF: ROM:loc_C04D↓p
ROM:C012 FE C0 5C ldx off_C05C ; x=C06C
ROM:C015 FD C0 5A ldy word_C05A ; 2
ROM:C018 27 0E beq next
ROM:C01A
ROM:C01A loop2: ; CODE XREF: clean_memory_copy_message+14↓j
ROM:C01A 35 pshy ; 2
ROM:C01B ED 31 ldy 2,x+ ; $3000
ROM:C01D EC 31 ldd 2,x+ ; $600
ROM:C01F
ROM:C01F clean_memory: ; CODE XREF: clean_memory_copy_message:loc_C021↓j
ROM:C01F 69 70 clr 1,y+
ROM:C021
ROM:C021 loc_C021: ; $600
ROM:C021 04 34 FB dbne d, clean_memory
ROM:C024 31 puly ; 2
ROM:C025 03 dey
ROM:C026 26 F2 bne loop2
ROM:C028
ROM:C028 next: ; CODE XREF: clean_memory_copy_message+6↑j
ROM:C028 FE C0 5E ldx off_C05E ; $EA03
ROM:C02B
ROM:C02B loop3: ; CODE XREF: clean_memory_copy_message+26↓j
ROM:C02B EC 31 ldd 2,x+ ; $18
ROM:C02D 27 0B beq exit
ROM:C02F ED 31 ldy 2,x+ ; $3A10 = text
ROM:C031
ROM:C031 loop: ; CODE XREF: clean_memory_copy_message+23↓j
ROM:C031 18 0A 30 70 movb 1,x+, 1,y+
ROM:C035 04 34 F9 dbne d, loop
ROM:C038 20 F1 bra loop3
ROM:C03A ; ---------------------------------------------------------------------------
ROM:C03A
ROM:C03A exit: ; CODE XREF: clean_memory_copy_message+1B↑j
ROM:C03A 3D rts
ROM:C03A ; End of function clean_memory_copy_message
ROM:C03A
...
ROM:C055 00 byte_C055: fcb 0 ; DATA XREF: ROM:loop_1↑r
ROM:C056 DF B1 fdb nextrun
ROM:C058 3F 0D off_C058: fdb unk_3F0D ; DATA XREF: ROM:C04A↑r
ROM:C05A 00 02 word_C05A: fdb 2 ; DATA XREF: clean_memory_copy_message+3↑r
ROM:C05C C0 6C off_C05C: fdb clean_text ; DATA XREF: clean_memory_copy_message↑r
ROM:C05E EA 03 off_C05E: fdb textmsg ; DATA XREF: clean_memory_copy_message:next↑r
ROM:C060 00 00 fdb 0
ROM:C062 C0 74 fdb word_C074
ROM:C064 00 00 fdb 0
ROM:C066 C0 76 fdb word_C076
ROM:C068 00 00 fdb 0
ROM:C06A C0 76 fdb word_C076
ROM:C06C 30 00 clean_text: fdb word_3000 ; DATA XREF: ROM:off_C05C↑o
ROM:C06E 06 00 fdb $600
ROM:C070 3A 10 fdb textAM7H42
...
ROM:EA03 00 18 textmsg: fdb $18 ; DATA XREF: ROM:off_C05E↑o
ROM:EA05 3A 10 fdb textAM7H42
ROM:EA07 41 4D 37 48 34 32 2D 31 34 43+aAm7h4214c360Aa:fcc "AM7H42-14C360-AA00000000"
Code:
ROM:FF20 bootloader_0:
ROM:FF20 1C FF 01 80 bset var3, #$80
ROM:FF24
ROM:FF24 start: ; DATA XREF: ROM:off_FFF6↓o
ROM:FF24 B7 B4 exg tmp3, d
ROM:FF26 B7 20 tpa
ROM:FF28 7A FF 06 staa var4
ROM:FF2B B7 D3 exg x, tmp2
ROM:FF2D 8E FF 00 cpx #$FF00
ROM:FF30 24 04 bcc loc_FF36
ROM:FF32 E7 00 tst 0,x
ROM:FF34 26 01 bne loc_FF37
ROM:FF36
ROM:FF36 loc_FF36: ; CODE XREF: ROM:FF30↑j
ROM:FF36 08 inx
ROM:FF37
ROM:FF37 loc_FF37: ; CODE XREF: ROM:FF34↑j
ROM:FF37 B7 D3 exg x, tmp2
ROM:FF39 1E FF 01 80 06 brset var3, #$80, loop_0
ROM:FF3E 87 clra
ROM:FF3F 20 1C bra loc_FF5D
ROM:FF41 ; ---------------------------------------------------------------------------
ROM:FF41
ROM:FF41 loop5: ; CODE XREF: ROM:FF81↓j
ROM:FF41 ; ROM:loop7↓j ...
ROM:FF41 79 FF 00 clr var2
ROM:FF44
ROM:FF44 loop_0: ; CODE XREF: ROM:FF39↑j
ROM:FF44 ; ROM:loc_FF47↓j ...
ROM:FF44 B6 FF 00 ldaa var2
ROM:FF47
ROM:FF47 loc_FF47:
ROM:FF47 2F FB ble loop_0
ROM:FF49 85 18 bita #%11000
ROM:FF4B 27 2E beq next2
ROM:FF4D 81 10 cmpa #%10000
ROM:FF4F 27 06 beq loc_FF57
ROM:FF51 2B 08 bmi loc_FF5B
ROM:FF53 86 A0 ldaa #$A0
ROM:FF55 20 06 bra loc_FF5D
ROM:FF57 ; ---------------------------------------------------------------------------
ROM:FF57
ROM:FF57 loc_FF57: ; CODE XREF: ROM:FF4F↑j
ROM:FF57 86 88 ldaa #$88
ROM:FF59
ROM:FF59 ; =============== S U B R O U T I N E =======================================
ROM:FF59
ROM:FF59
ROM:FF59 sub_FF59:
ROM:FF59 20 02 bra loc_FF5D
ROM:FF5B ; ---------------------------------------------------------------------------
ROM:FF5B
ROM:FF5B loc_FF5B: ; CODE XREF: ROM:FF51↑j
ROM:FF5B 86 80 ldaa #$80
ROM:FF5D
ROM:FF5D loc_FF5D: ; CODE XREF: ROM:FF3F↑j
ROM:FF5D ; ROM:FF55↑j ...
ROM:FF5D 79 FF 00 clr var2
ROM:FF60 F6 FF 06 ldab var4
ROM:FF63 7A FF 06 staa var4
ROM:FF66 B7 D3 exg x, tmp2
ROM:FF68 7E FF 02 stx var1
ROM:FF6B B7 D3 exg x, tmp2
ROM:FF6D B7 12 tfr b, ccr
ROM:FF6F B7 B4 exg tmp3, d
ROM:FF71 18 0C FF 06 FF 01 movb var4, var3
ROM:FF77 05 FB FF 87 jmp [loc_FF87,pc]; [var1]=var1
ROM:FF77 ; End of function sub_FF59
ROM:FF77
ROM:FF7B ; ---------------------------------------------------------------------------
ROM:FF7B
ROM:FF7B next2: ; CODE XREF: ROM:FF4B↑j
ROM:FF7B B7 01 tfr a, b
ROM:FF7D 84 07 anda #7
ROM:FF7F 80 02 suba #2
ROM:FF81 2B BE bmi loop5
ROM:FF83
ROM:FF83 loc_FF83:
ROM:FF83 C5 20 bitb #%100000
ROM:FF85 26 37 bne loc_FFBE
ROM:FF87
ROM:FF87 loc_FF87: ; CODE XREF: ROM:FF8C↓j
ROM:FF87 F7 FF 00 tst var2
ROM:FF8A 27 B8 beq loop_0
ROM:FF8C 1F FF 01 10 F6 brclr var3, #$10, loc_FF87
ROM:FF91 C6 07 ldab #7
ROM:FF93 12 mul
ROM:FF94 05 FD jmp b,pc
ROM:FF96 ; ---------------------------------------------------------------------------
ROM:FF96 FC FF 02 ldd var1
ROM:FF99 6C 21 std 2,+x
ROM:FF9B
ROM:FF9B loop7: ; CODE XREF: ROM:FFE7↓j
ROM:FF9B ; ROM:FFF4↓j
ROM:FF9B 20 A4 bra loop5
ROM:FF9D ; ---------------------------------------------------------------------------
ROM:FF9D FC FF 02 ldd var1
ROM:FFA0 B7 C3 exg d, tmp2
ROM:FFA2 20 9D bra loop5
ROM:FFA4 ; ---------------------------------------------------------------------------
ROM:FFA4 FC FF 02 ldd var1
ROM:FFA7 B7 B4 exg tmp3, d
ROM:FFA9 20 96 bra loop5
ROM:FFAB ; ---------------------------------------------------------------------------
ROM:FFAB FE FF 02 ldx var1
ROM:FFAE 20 91 bra loop5
ROM:FFB0 ; ---------------------------------------------------------------------------
ROM:FFB0 A7 nop
ROM:FFB1 A7 nop
ROM:FFB2 FD FF 02 ldy var1
ROM:FFB5 20 8A bra loop5
ROM:FFB7 ; ---------------------------------------------------------------------------
ROM:FFB7 A7 nop
ROM:FFB8 A7 nop
ROM:FFB9 FF FF 02 lds var1
ROM:FFBC 20 83 bra loop5
ROM:FFBE ; ---------------------------------------------------------------------------
ROM:FFBE
ROM:FFBE loc_FFBE: ; CODE XREF: ROM:FF85↑j
ROM:FFBE 48 lsla
ROM:FFBF 48 lsla
ROM:FFC0 05 FC jmp a,pc
ROM:FFC2 ; ---------------------------------------------------------------------------
ROM:FFC2 EC 21 ldd 2,+x
ROM:FFC4 20 12 bra next3
ROM:FFC6 ; ---------------------------------------------------------------------------
ROM:FFC6 20 21 bra loc_FFE9
ROM:FFC8 ; ---------------------------------------------------------------------------
ROM:FFC8 A7 nop
ROM:FFC9 A7 nop
ROM:FFCA B7 34 tfr tmp3, d
ROM:FFCC 20 0A bra next3
ROM:FFCE ; ---------------------------------------------------------------------------
ROM:FFCE B7 54 tfr x, d
ROM:FFD0 20 06 bra next3
ROM:FFD2 ; ---------------------------------------------------------------------------
ROM:FFD2 B7 64 tfr y, d
ROM:FFD4 20 02 bra next3
ROM:FFD6 ; ---------------------------------------------------------------------------
ROM:FFD6 B7 74 tfr sp, d
ROM:FFD8
ROM:FFD8 next3: ; CODE XREF: ROM:FFC4↑j
ROM:FFD8 ; ROM:FFCC↑j ...
ROM:FFD8 7C FF 02 std var1
ROM:FFDB
ROM:FFDB loop6: ; CODE XREF: ROM:FFE2↓j
ROM:FFDB ; ROM:FFF0↓j
ROM:FFDB F7 FF 00 tst var2
ROM:FFDE 18 27 FF 62 lbeq loop_0
ROM:FFE2 1F FF 01 10 F4 brclr var3, #%10000, loop6
ROM:FFE7 20 B2 bra loop7
ROM:FFE9 ; ---------------------------------------------------------------------------
ROM:FFE9
ROM:FFE9 loc_FFE9: ; CODE XREF: ROM:FFC6↑j
ROM:FFE9 B7 C3 exg d, tmp2
ROM:FFEB 7C FF 02 std var1
ROM:FFEE B7 C3 exg d, tmp2
ROM:FFF0 20 E9 bra loop6
ROM:FFF2 ; ---------------------------------------------------------------------------
ROM:FFF2 1B 89 leas 9,sp
ROM:FFF4 20 A5 bra loop7
ROM:FFF4 ; ---------------------------------------------------------------------------
ROM:FFF6 FF 24 off_FFF6: fdb start