ROM/Diskette für U-880-Systeme history menue Letztmalig dran rumgefummelt: 31.08.12 20:57:23
Das Problem ist alt für alle Z80-Pioniere - wohin mit den einmal fertig getippten Daten? Vor allem unfertige und halbgewalkte Routinen machen einem Programmierer das Leben nicht gerade einfacher ;_) Da freut man sich schon über ein einfaches Hilfsmittel zum Archivieren von Software.

1. Schaltungsidee und Beschreibung
2. Bedienung
3. Umsetzung
4. Einsatz und Anwendung
5. Verwandte Themen
6. Links

Z80-Bau-Projekte

ROM/RAM-Diskette für U-880-Systeme

inhaltlich auf korrektem Stand - evtl. partiell unvollständig ;-)

Informatik-Profi-Wissen

Quellen:

Idee nach EU. ADEL, R. PÖHL in Zeitschrift FUNKAMATEUR Heft 10/1987 S. 511 ff.


1. Schaltungsidee und Beschreibung history menue scroll up
In diesem Beitrag wird für U-880-Systeme eine Alternative zum Magnetbandspeicher und zur Diskette vorgestellt. Für den Amateur dürfte der Schaltungsvorschlag von Interesse sein. Durch eine ROM/RAM-Diskette entstehen für den Anwender eine Reihe von Vorteilen. Die wichtigsten Vorteile wären:
  • geringe Ladezeit für Programme gegenüber herkömmlichen Disketten und Magnetbandspeichern
  • Aufruf zum Laden durch einen Kennbuchstaben
  • Funktion ohne Zusatzgeräte (wie Laufwerke)

Nachteile wären:

  • relativ hoher Kostenaufwand durch die EPROMs
  • Programmierung der EPROMs

Im Jahre 2007 bleiben eigentlich nur die Vorteile, die Nachteile haben sich durch Verfügbarkeit sowie Preise erledigt. Im vorliegenden Beitrag wird mehr auf die ROM-Diskette eingegangen, da die RAM-Diskette analog zur ROM-Diskette arbeitet.

ROM/RAM-Diskette für U-880-Systeme

Grundgedanke

Bei der vorgestellten ROM-Diskette kommt eine weniger bekannte Eigenschaft des Mikroprozessors U 880 D zur Anwendung. Bei den Ein- und Ausgabebefehlen für die Adressierung der Peripheriebausteine wird der niederwertige Adressteil (A0...A7) des Adressbusses verwendet. Der Adressbus besteht aus 16 Adressleitungen. Bei den Blockeingabebefehlen (INI, IND, INIR, INDR) sowie bei den Blockausgabebefehlen (OUTI, OUTD, OTIR, OTDR) wird der höherwertige Adressteil (A8 ...A15) durch das B-Register belegt. So ist es möglich, über eine Peripherieadresse 256 Byte zu adressieren. Dabei bildet das B-Register (A8 ...A15 des Adressbusses) den niederwertigen Adressteil der ROM-Diskette (A0...A7) und das C-Register (A0...A7 des Adressbusses) den höherwertigen Adressteil, aus dem auch die Selektierung der ROM-Schaltkreise gewonnen wird.
Im Bild ist die Schaltung einer 16-KROM-Diskette, die die Peripherieadressen C0H...FFH belegt, dargestellt. Die ROM-Diskette kann somit von C000H bis FFFFH durch die Blockeingabebefehle (für RAM-Diskette auch Blockausgabebefehle) adressiert werden.
Durch eine zweite ROM-Diskette, die die Peripherieadressen 80H bis BFH belegt, können insgesamt 32 KByte adressiert werden. Dabei ist zu beachten, dass in diesem Peripherieadressbereich keine Unterbrechungen durch andere Peripherien entstehen, denn das würde zu einem erhöhten Softwareaufwand führen.

EPROM-Unterprogramm

Abruf als AsSide-Assembler-Datei

Kennbuchstabe Feldadresse BC HL DE Start

A aaaa bbbb cccc dddd eeee
B aaaa+8H ,,, ,,, ,,, ,,,
C aaaa+10H ... ... ... ...
           
Z aaaa+C8H        

Tabelle 2: Abruf von ROM-Diskette Kenn- Feldadresse BC HL DE Start buchst

Schaltung und Programm

Das Bild oben zeigt die Schaltung der ROM-Diskette. Die Strichpunktlinie bildet die Schnittlinie zwischen Mikrorechnerbus (links) und Busplatine (rechts). Da das B-Register abwärtszählend arbeitet, ist es erforderlich, die Adresse zu negieren, damit die Programme von der nieder- zu höherwertigen Adresse abgerufen werden können.
Für die Programmierung der EPROMs für die ROM-Diskette bestehen keine Besonderheiten. Die Arbeitweise des in Tabelle 1 abgedruckten Unterprogramms ist folgendermaßen.
Dem Unterprogramm sind folgende Parameter zu übergeben:

  • BC = Adresse des Programms in der ROM-Diskette, (B = niederwertiger Adressteil), (C = höherwertiger Adressteil)
  • DE = Anzahl der abzurufenden Bytes
  • HL = Adresse im RAM-Bereich

Abruf von ROM-Diskette

Abruf als AsSide-Assembler-Datei

Kennbuchstabe Feldadresse B C H L D E Start

A 1F00 C0 00 14 42 40 00 40 00
.
.
.
               
F 1F28 D4 43 00 80 1F 80 00 00
.
.
.
               
R 1F88 D4 C3 06 57 19 00 00 00

Tabelle 4: RAM-Testprogramm

Das Kernstück des Unterprogramms, der INI-Blockeingabebefehl, bewirkt ein Abwärtszählen des B-Registers, so dass in den Zeilen 03 bis 06 die Negierung des B-Registers erfolgen muss und ein Aufwärtszählen des HL-Registerpaares. Die Zeilen 07 bis 13 dienen dem im Vergleich des DE-Registerpaares auf 0000H, um einen Rücksprung zu ermöglichen. Die Zeilen 14 bis 17 realisieren die Erhöhung des C-Registers, um einen nahtlosen Übergang der Adressierung (z. B. von C0FFH zu C100H) zu erreichen. Die Zeilen 18 bis 24 führen einen Vergleich des DE-Registerpaares auf 0000H durch, und gewährleisten den Rücksprung in das Hauptprogramm nach Abruf der geforderten Byte-Anzahl. Die Tabellen 2 und 3 beinhalten einen Vorschlag für den Abruf der Programme von der ROM-Diskette über einen Kennbuchstaben. Dabei bildet:

  • aaaa = die Adresse des Feldes
  • bbbb = die Adresse in der ROM-Diskette
  • cccc = die - Adresse im RAM-Bereich
  • dddd = Anzahl der abzurufenden Bytes
  • eeee = die Adresse zum Start des Programms

Dabei muss im A-Register der ASCII-Code des Kennbuchstabens enthalten sein. Zum besseren Verständnis drei Beispiele (s. FA 11/86 bis 1/87):

  • Feldbeginn 1F00H
  • Kennbuchstabe A „Editor/Assembler"; - Kennbuchstabe F „Falsche Bytes"
  • Kennbuchstabe R „RAM-Testprogramni", s. Tabelle 4
Bemerkungen für RAM-Diskette Wie oben bereits erwähnt, arbeitet die RAM-Diskette analog zur ROM-Diskette. Der Abruf der Daten erfolgt mit dem Ansprung auf Zeile 04 (s. Tabelle 1). Dabei ist zu beachten, dass das Programm auf Adresse BC+1 beginnt, bei mehrmaligem Aufruf, erfolgt die Adressierung durchgängig. Zum Beschreiben der RAM-Diskette sind nur Zeilen 13/14 folgendermaßen zu ändern:
  • Zeile 13   ED A3   A1   OUTI
  • Zeile 14      3E 00              LD A,000H

2. Bedienungshinweise history menue scroll up
 

 

Literatur
[1] Lindner u. a.: Technik der Mikrorechner, radiofernsehen-elektronik 26 (1977) H.17 bis 28 (1979) H.12.,(28 Folgen)
[2] Barthold, H. - Bäurich, H.: Mikroprozessoren -7 Mikroelektronische Schaltkreise und ihre Anwendung, Teil 1,..3, Amateurreihe „electronica", Band 186...188 bzw. Band 202-204 (2. Auflage), Militärverlag der DDR, Berlin 1980 und' 1982
[3] Kieser, Meder: Mikroprozessortechnik, VEB Verlag Technik; Berlin 1982
[4] Schwarz, Meyer, Eckhardt: Mikrorechner, VEB Verlag Technik, Berlin 1980
[5] Schiller: U-880-System mit minimalem Aufwand, radio-fernsehen-elektronik 32 (1983), H. 3, S. 154i.. 156, 32 (1983), H:6, S.340/341
Bild 3: Stromlaufplan der verwendeten 32 Anzeigeschaltungen

6. Verwandte Themen history menue scroll up

Was ist alles mit dem Betriebssystem eines Microcomputers verwandt? Antwort: faktisch der gesamte Bereich der Digitalelektronik und sowieso die gesamte Technik der Software-Technologie der Vergangenheit, Gegenwart sowie zumindest der nächsten Zukunft.

Die Diode

Der Transistor

Mikroelektronik

Schneiden einer Fotomaske für einen opto-lithografischen Prozess

der LC-80

POLYCOMPUTER

Z80-CPU

Mnemonic-Code-Notation

höhere Programmierwerkzeuge

... und so funktioniert ein Computer

 

die beliebte alphabetisch sortierte Schnell-Liste

die beliebte numerisch sortierte Schnell-Liste

Allgemeine FLAG-Wirkung

FLAG-Wirkung auf OP-Code-Gruppen

Alphabetisch sortierte Dokumentation

FLAG Teile I

FLAG Teile 2

Allgemeine Funktionssymbolik

Der LC-80 Simulator

Blockschaltbild eines Einchiprechners

   


zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im Juli 2007

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist