Dies ist eine alte Version des Dokuments!


ROM-Inhalt auslesen

Der ROM-Inhalt der maskenprogrammierten U881 kann mit etwas Hilfe ausgelesen werden (https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=4440, https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=8664)

Mit einem Spezial-RESET (7,5 V an RESET) wird der Masken-ROM übergangen und ein Test-ROM auf den unteren 40h Byte eingeblendet (s. Kieser/Meder) Mit dem 7,5V-Reset wird ein zusätzlicher, interner Test-ROM aufgerufen und dieser Zustand bleibt solange erhalten, bis ein normaler Reset erfolgt. Für ein erneuten Spezial-RESET muss die Schaltung immer stromlos gemacht werden oder man benutzt folgende Schaltung:

Laut Unterlagen werden bei dem Spezialreset die ersten 64 Byte durch einen Boot-ROM ersetzt und der Rechner arbeitet diese ab anstelle des eigentlichen ROM-Inhaltes und springt dann auf Adresse 0x0812 zum extern angeschlossenen ROM.

[code] ;———————————————————- ; SAVE Boot-ROM to E400H ;———————————————————-

      org     0E000h
      srp     #%10
      ld      R14,#%00        ; From 0000H (Boot-ROM)
      ld      R15,#%00
      ld      R12,#%E4        ; To E400H (RAM-Buffer)
      ld      R13,#%00
      ld      R0,#64          ; 64 Bytes (length of Boot-ROM)

M1: ldc R10,@RR14 ; read Byte

      ldc     @RR12,R10       ; write Byte
      incw    RR12            ; next to      
      incw    RR14            ; next from
      djnz    R0,M1           ; repeat
      jp      0812H           ; restart Ju-Te

[/code]

HeikoS:
Wenn das Unterscheidungs-Signal /DM für die Adressdekodierung nicht verwendet wird (Unterscheidung zw. externem Programmspeicher und externem Datenspeicher), sind LDC und LDE identisch in der Wirkung. Das ist ja beim Ju-Te der Fall. Aber in der Wirkung in Bezug auf das Auslesen ersten 64 Bytes Boot/Masken-ROM sind LDC und LDE nicht identisch.

LDC → Masken-ROM wird gelesen LDE → Boot-ROM wird gelesen

Die Unterschiede bei LDC und LDE betreffen nur die unteren 64 Bytes. Der Bereich 040-7FF ist mit beiden Befehlen lesbar.

Im original Zilog User Manual (https://www.zilog.com/docs/um0016.pdf, S. 19) steht außerdem noch folgendes:

The internal Program Memory is one-time programmable (OTP) or mask programmable dependent on the specific device. A ROM protect feature prevents dumping of the ROM contents by inhibiting execution of the LDC, LDCI, LDE, and LDEI instructions to Pro- gram Memory in all modes. ROM look-up tables cannot be used with this feature. The ROM Protect option is mask-programmable, to be selected when the ROM code is submitted.

Möglicherweise wurde beim U881-Clone des Z8 die 'ROM protection' nicht umsetzt? Oder sie wurde nicht verwendet?

  • elektronik/u881/extract_rom.1694417213.txt.gz
  • Zuletzt geändert: 2023/09/11 07:26
  • von volkerp