U. ADEL, R. PÖHL
ROM/RAM-Diskette für
U-880-Systeme
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:
Im vorliegenden Beitrag wird mehr auf die
ROM-Diskette eingegangen, da die RAM-Diskette analog zur ROM-Diskette arbeitet.
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 Adreßteil (A0 ... A7) des Adreßbusses
verwendet. Der Adreßbus besteht aus 16 Adreßleitungen. Bei
den Blockeingabebefehlen (INI, IND, INIR, INDR) sowie bei den Blockausgabebefehlen
(OUTI, OUTD, OTIR, OTDR) wird der höherwertige Adreßteil (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 Adreßbusses) den niederwertigen Adreßteil der
ROM-Diskette (A0 ... A7) und das C-Register (A0 ... A7 des Adreßbusses)
den höherwertigen Adreßteil, aus dem auch die Selektierung der
ROM-Schaltkreise gewonnen wird.
Bild 1: Stromlaufplan der 16-K-ROM-Diskette Die ROM-Diskette kann somit von C000H bis
FFFFH durch die Blockeingabebefehle (für RAM-Diskette auch Blockausgabebefehle)
adressiert werden.
Schaltung und Programm Das Bild 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.
Tabelle 1: EPROM-Unterprogramm Das Kernstück des Unterprogramms, der INI-Blockeingabebefehl, bewirkt ein Abwärtszählen des B-Registers, so daß in den Zeilen 03 bis 06 die Negierung des B-Registers erfolgen muß 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. Tabelle
2: Abruf von ROM-Diskette
Dabei bildet:
Dabei muß im A-Register der ASCII-Kode des Kennbuchstabens enthalten sein. Zum besseren Verständnis drei Beispiele (s. FA 11/86 bis 1/87): - Feldbeginn 1F00H;
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, daß
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:
|