000
20.01.2016, 08:59 Uhr
Olli
|
In Analogie zu Holms "ich muss mal heulen..." muss ich auch mal...
So... ich komme jetzt auch mal mit was krudem um die Ecke....
Ich habe folgenden Code (Z80):
Quellcode: | 0000 c32a00 jp 002ah ; 0003 - 001E string text 'Copyright Zilog, Inc. 1981'
001f ff 0020 4b 0021 15 0022 6b 0023 15 0024 8a 0025 15 0026 93 0027 15 0028 23 0029 16
; entry 002a 212800 ld hl,0028h 002d 113300 ld de,0033h 0030 c30316 jp 1603h
1603 3eff ld a,0ffh 1605 d322 out (22h),a 1607 3ec0 ld a,0c0h 1609 d322 out (22h),a 160b 7d ld a,l 160c d322 out (22h),a 160e 3eb7 ld a,0b7h 1610 d322 out (22h),a 1612 3e7f ld a,7fh 1614 d322 out (22h),a 1616 af xor a 1617 d320 out (20h),a 1619 3eff ld a,0ffh 161b d323 out (23h),a 161d 3efe ld a,0feh 161f d323 out (23h),a 1621 eb ex de,hl 1622 e9 jp (hl) 1623 f5 push af 1624 3e01 ld a,01h 1626 320f42 ld (420fh),a 1629 f1 pop af 162a fb ei 162b ed4d reti
|
Es sieht ja so aus, als ob er bei 0x002a startet, dann in HL 0x0028 lädt, dann nach 0x1603 springt und dort dann via 0x1622 nach 0x0028 zurück springt?!
Ab 0x28h gelesen ergäbe sich folgender ASM Kram...
Quellcode: | inc hl ;0028 23 ld d,021h ;0029 16 21 jr z,0 ;002b 28 00 ld de,l0033h ;002d 11 33 00 jp 1603h ;0030 c3 03 16
|
Kranker Sch****?
Der springt nach 0x028 zurück, erhöht hl um 1, lädt nach d 0x21, überspringt den jump lädt in de 0x0033 und springt dann wieder 0x1603 an...
- was machen die out Befehle ab 0x1603 - 22h ist doch der Adressbereich des EPROM - was soll das überhaupt mit diesem Gespringe - warum lädt man nach d 0x21 um es dann direkt danach via de mittels 0x0033 zu überschreiben. - was macht man überhaupt mit DE - da passiert doch in 0x1603 gar nix mit? - was ist mit dem Code ab 0x1623 - durch den "jp (hl)" kommt er doch da nie hin? Im code gibt es keine weiteren Referenzen auf 0x1623
In Gänze liegt der ganze Mist hier: http://www.pofo.de/S8000/misc/EPROM/WDC/ -- P8000 adventures: http://pofo.de/blog/?/categories/1-P8000 Dieser Beitrag wurde am 20.01.2016 um 09:00 Uhr von Olli editiert. |