Nächste Überarbeitung | Vorhergehende Überarbeitung |
z9001:cpm:raf2008 [2010/07/17 16:46] – Externe Bearbeitung 127.0.0.1 | z9001:cpm:raf2008 [2021/02/18 08:50] (aktuell) – [Downloads] volkerp |
---|
====== z9001_cpm_raf2008.htm ====== | ====== RAM-Floppy RAF2008 ====== |
| |
===== Die 2MB/4MB-RAM-Floppy RAF2008 ===== | **Die 2MB/4MB-RAM-Floppy RAF2008** |
| |
In der DDR gab es verschiedene RAM-Floppys als Alternative zu schwer beschaffbaren "richtigen" Floppylaufwerken. An meinem Z1013 habe ich z.B. 2 NANOS-RAM-Floppys a 256 KByte angeschlossen. Auch von der Akademie der Wissenschaften gab es eine RAM-Floppy für K1520-Systeme, die sich durch modularen Ausbau, nachladbare Treiber u.a. hervorhob und so eine recht groÃe Verbreitung fand ( -> {{http://www.robotrontechnik.de/html/eigenbau/raf2008.htm| www.robotrontechnik.de}}) | In der DDR gab es verschiedene RAM-Floppys; auch als Alternative zu schwer beschaffbaren "richtigen" Floppylaufwerken. An meinem Z1013 habe ich z.B. 2 NANOS-RAM-Floppys a 256 KByte angeschlossen. Auch von der Akademie der Wissenschaften gab es eine RAM-Floppy für K1520-Systeme, die sich durch modularen Ausbau, nachladbare Treiber u.a. hervorhob und so eine recht große Verbreitung fand (s. {{http://www.robotrontechnik.de/html/eigenbau/raf2008.htm|www.robotrontechnik.de}}) |
| |
2008 wurde diese Vorlage mit modernen Bauelementen und Batteriestützung durch Enrico Grämer als RAF2008 nachentwickelt. Auf obiger robotrontechnik-Seite ist das Projekt komplett beschrieben. | Vorgestellt wurde die RAM-Floppy in der rfe 4/1987, S. 268. |
| |
Auch am Z9001 lässt sich die RAF2008 als 2 MB/4 MB-RAM-Floppy problemlos betreiben. Die originalen Treiber, um Fehler korrigiert, laufen ohne groÃe Ãnderungen auch direkt im Z9001-CP/A. | 2008 wurde diese Vorlage mit modernen Bauelementen und Batteriestützung durch Enrico Grämer als RAF2008 nachentwickelt. Auf obiger robotrontechnik-Seite ist das Projekt komplett beschrieben. |
| |
{{raf2008_1.jpg?283x346}} {{raf2008_2.jpg?396x346}}\\ Meine RAF2008, mit 2MByte SRAM bestückt. Rechts ist der CP/M-Start und der Start des nachladbaren Treibers RAF2X20P.COM zu sehen. | Auch am Z9001 lässt sich die RAF2008 als 2 MB/4 MB-RAM-Floppy problemlos betreiben. Die originalen Treiber, um Fehler korrigiert, laufen ohne große Änderungen auch direkt im Z9001-CP/A. |
| |
==== Unterlagen ==== | {{:z9001:raf2008_1.jpg|}} {{z9001:raf2008_2.jpg}}\\ Meine RAF2008, mit 2MByte SRAM bestückt. Rechts ist der CP/M-Start und der Start des nachladbaren Treibers RAF2X20P.COM zu sehen. |
| |
Auf {{http://www.robotrontechnik.de/html/eigenbau/raf2008.htm| http://www.robotrontechnik.de/html/eigenbau/raf2008.htm}} gibt es die Geschichte, Treiber und die Unterlagen des Entwicklers zur RAF2008. Bei U. Zander liegen aufbereitete Stromluafpläne u.v.a.m. {{http://www.sax.de/~zander/z9001/module/raf.html| http://www.sax.de/~zander/z9001/module/raf.html}}. | ===== Unterlagen ===== |
| |
==== Einstellungen ==== | Auf http://www.robotrontechnik.de/html/eigenbau/raf2008.htm gibt es die Geschichte, Treiber und die Unterlagen des Entwicklers zur RAF2008. Bei U. Zander liegen aufbereitete Stromlaufpläne u.v.a.m.: http://www.sax.de/~zander/z9001/module/raf.html. |
| |
Auf der Karte gibt es zwei Jumper. Für den Betrieb am Z9001 ist JP 2 zu stecken. Das begrenzt den Port auf Adressen 2xH. Der JP 1 bleibt für die erste RAM-Floppy offen, damit ist Port 20H eingestellt. Bei geschlossenem Jumper JP 1 gilt Port 24h. | ===== Downloads ===== |
| |
==== Treiber ==== | * {{:cpm:prl2com.zip|}} Binary und Quellcode zu Standard-Treiber und zum Treiber mit Parität, 2021 Version für BIC ergänzt |
| * die kompletten orig. Treiber gibt's bei robotrontechnik (s.o.) |
| |
Neben einem angepassten BIOS, das Treiber für die RAM-Floppys enthält, kann auch ein nachladbarer Treiber genutzt werden: | Wie immer gibt es im Downloadpaket die kompletten Quelltexte und weitere Informationen. |
| |
> **RAF2X20P.COM** | ===== Einstellungen ===== |
| |
wird von der Floppy-Diskette geladen und installiert die RAF2008 als Laufwerk P. Beim ersten Start wird dabei die RAM-Floppy formatiert, d.h. der Directory-Bereich mit 0E5h überschrieben. Beim erneuten Start unterbleibt die Formatierung, so dass die Daten auf der RAM-Floppy erhalten bleiben. Dank der Stützbatterie bleiben die Daten auf der RAM-Floppy bis zu 1 Jahr erhalten, ohne das der Rechner angeschaltet sein muss! | Auf der Karte gibt es zwei Jumper. Für den Betrieb am Z9001 ist JP 2 zu stecken. Das begrenzt den Port auf Adressen 2xH. Der JP 1 bleibt für die erste RAM-Floppy offen, damit ist Port 20H eingestellt. Bei geschlossenem Jumper JP 1 gilt Port 24h. |
| |
Für die zweite Portadresse (bei einer zweiten RAM-Floppy) gibt es den Treiber **RAF2X24O.COM**. Dieser bindet die zweite RAM-Floppy als Laufwerk O ein. | ===== Treiber ===== |
| |
Die nachladbaren Treiber schreiben sich ans obere RAM-Ende TPA und verringern so dauerhaft den für Programme zur Verfügung stehenden Speicher. Erst mit einem Kaltstart (Reset) ist der Treiber wieder entladen! | Neben einem angepassten BIOS, das Treiber für die RAM-Floppys enthält, kann auch ein nachladbarer Treiber genutzt werden: |
| |
Wem die beiden Treiber nicht reichen, der kann sich weitere Treibervarianten kompilieren. Ich habe die Programme reassembliert und neue Assemblerquellen geschrieben. Beim Treiber kommt das {{../cpm/cpm_rsm.htm|PRL-Format}} zum Einsatz , um den Treiber ans aktuelle TPA-Ende zu schieben. Beim Kompilieren eigener Treibervarianten muss dieses Format erzeugt und um einen Loader ergänzt werden. | **RAF2X20P.COM** |
| |
Der eigentliche Treiber wird mit dem M80-Assembler und CSEG (ohne ORG-Adresse!) assembliert. Der Digital Research- Linker LINK131.COM erzeugt daraus beim Aufruf mit dem Parameter //op// eine PRL-Datei; diese umfasst den Treiber (auf Adresse 100h gelinkt) und die Verschiebe-Informationen. Mit meinem Patcher PRL2COM wird in diese PRL-Datei der Loader gepatcht und der Dateityp in COM geändert, so entsteht die gewünschte residente Systemerweiterung. | wird von der Floppy-Diskette geladen und installiert die RAF2008 als Laufwerk P. Beim ersten Start wird dabei die RAM-Floppy formatiert, d.h. der Directory-Bereich mit 0E5h überschrieben. Beim erneuten Start unterbleibt die Formatierung, so dass die Daten auf der RAM-Floppy erhalten bleiben. Dank der Stützbatterie bleiben die Daten auf der RAM-Floppy bis zu 1 Jahr erhalten, ohne das der Rechner angeschaltet sein muss! |
| |
> m80.com =treiber | Für die zweite Portadresse (bei einer zweiten RAM-Floppy) gibt es den Treiber **RAF2X24O.COM**. Dieser bindet die zweite RAM-Floppy als Laufwerk O ein. |
link.com treiber[op] | |
prl2com treiber.prl | |
| |
Wie immer gibt es im {{../cpm/prl2com.zip|Downloadpaket}} die kompletten Quelltexte und weitere Informationen. | Die nachladbaren Treiber schreiben sich ans obere RAM-Ende TPA und verringern so dauerhaft den für Programme zur Verfügung stehenden Speicher. Erst mit einem Kaltstart (Reset) ist der Treiber wieder entladen! |
| |
| Wem die beiden Treiber nicht reichen, der kann sich weitere Treibervarianten kompilieren. Ich habe die Programme reassembliert und neue Assemblerquellen geschrieben. Beim Treiber kommt das PRL-Format (-> [[cpm:rsm|]]) zum Einsatz, um den Treiber ans aktuelle TPA-Ende zu schieben. Beim Kompilieren eigener Treibervarianten muss dieses Format erzeugt und um einen Loader ergänzt werden. |
| |
| Der eigentliche Treiber wird mit dem M80-Assembler und CSEG (ohne ORG-Adresse!) assembliert. Der Digital Research- Linker LINK131.COM erzeugt daraus beim Aufruf mit dem Parameter //op// eine PRL-Datei; diese umfasst den Treiber (auf Adresse 100h gelinkt) und die Verschiebe-Informationen. Mit meinem Patcher PRL2COM wird in diese PRL-Datei der Loader gepatcht und der Dateityp in COM geändert, so entsteht die gewünschte residente Systemerweiterung. |
| |
| m80.com =treiber |
| link.com treiber[op] |
| prl2com treiber.prl |
| |
| ===== Ansteuerung ===== |
| |
| |
| Die zur Ansteuerung nötige Adresse wird ähnlich, aber nicht genauso, wie bei der [[z1013:module:raf#k|RAM-Disk nach mp 3/88]] gebildet: |
| |
| * Raf_C = RAF-Control Port zum Laden der Track- & Sector-Adresse "HiAdr" via D-bus 0...7 und A-bus 8...14 (B-Reg). |
| * Raf_D = RAF-Data-I/O Port zum Schreiben/Lesen von max. 128 zusammenhängenden Bytes mit einem INIR-/OTIR-Befehl mit einem 7-bit Byte-Index "LoAdr" auf dem A-bus 8...14 (B-Reg) |
| |
| <WRAP clear></WRAP> |
| |
| <code> |
| :----- Vollständige 19 bit RAM-Adresse (1 RAF 512) ------: |
| 22 21 20 19:18 17 16 15 14 13 12 11 10 9 8 7: 6 5 4 3 2 1 0: |
| : : : |
| 15 14 13 12:11 10 9 8 7 6 5 4 3 2 1 0: : |
| +--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+ : |
| ! B-Register ! ! r-Register ! : |
| +--+--+--+--+--+--+--+--+_+--+--+--+--+--+--+--+--+ : |
| ! !!!!! ! _________!_________ 7: 6 5 4 3 2 1 0: |
| ! für ! ! OUT(C),r-Befehl ! +--+--+--+--+--+--+--+--+ |
| ! >512k ! !__auf_Ctrl-Adr___! !//: B-Reg (INIR/OTIR) ! |
| ! ! +--+--+--+--+--+--+--+--+ |
| ! AOV __________!__________ |
| ! Adressüberlauf-Bit (RAF 512) ! oberer Adr.bus in ! |
| ! (Bit 10 bei RAF 128) ! INIR-/OTIR-Befehl ! |
| PROT !______(7_bit)______! |
| Zugriffsschutz-Bit (1=geschützt) |
| </code> |
| |
| Die In-Sektor-Adressen (LoAdr 6...0) entsprechen dem B-Register bei OTIR/INIR, so daß die Bytes innerhalb eines Sectors in fallender Reihenfolge gespeichert werden (B beginnt mit 128 bzw. 127)! |
| |