Hier gleich eine Bitte/Hinweis an Andreas und Michael, wenn die Floppyplatine bestellt wird: Andreas hat mal eine Busverlängerung (1:1 entspr. 64pol. Stecker) vorgestellt, diese ist extrem hilfreich, um an einer im Gehäuse gesteckten Platine zu messen. Evtl. sollten hier auf den Datenleitungen Reflex-R´s (22..33 Ohm), die bei Bedarf bestückt oder halt gebrückt werden sowie Abblock-C (100..220µF und 100..470 nF) noch vorgesehen werden. Bestellung dann mit FDC zusammen.
#1: 19" Gehäuse mit (mod. ATX-) Netzteil und Rückplatine sowie jeweils bestückter #2: BWS Platine #3: CPU Platine #4: I/O Platine #5: 64K-RAM Platine
Das Gehäuse wird jeder selbst nach Verfügbarkeit nehmen, sinnvoll ist von Anfang an eine gewisse Stabilität beim Versuchsaufbau und Messen. Als Netzteil reicht zu Beginn 5P mit 4..5A, für Erweiterungen darfs auch mehr sein und dann natürlich auch 12P/ 12N (z.B. V.24) sowie 5N (alte ROM) und 3,3P (SD) für Experimente.
Die INT-Priorisierung wird zu Anfang noch nicht benötigt und kann später gebaut werden. Wichtig sind jedoch die entsprechenden Unterbrechungen der Leiterzüge nach Plan und das Durchklingeln aller Leitungen auf Verbindungen/ Schlüsse mit Durchgangsprüfer/ DMM.
Der BWS ist essentiell für alle weiteren Aufbauten. Er stellt die Taktversorgung bereit und ermöglicht überhaupt eine Kontrolle am Bildschirm. Ich habe alle Frequenzen an V1..V5 (mit DMM) gemessen und kann die Einhaltung laut Ur-AC1 bestätigen.
Für die schnelle Kontrolle :
Pin2/V1 - 4 MHz (Basis für CPU und I/O; 2 MHz nach Teiler IC3A) Pin2/V3 - ca. 15,8 kHz (vert.) Pin7/V5 - ca. 50 Hz (horiz.)
Ich habe auch die Taktherabsetzung nach FA 10/84 S.508 für die CPU ausprobiert: bei mir negativ bei Anschluß an X13 (= Pin 7/V4). Hier stehen knapp 1 kHz, offensichtlich eine fehlerhafte Angabe im seinerzeitigen Tip (1,9 kHz nach Teilung).
Allerdings funktioniert es an Pin 3/V4 (ca. 7,9 kHz). Natürlich muß bei diesem Test die originale Taktverbindung von Pin5/IC3 zum Stecker A25 unterbrochen und A25 an den testweisen Takt geschalten werden.
Bei gesteckter CPU und Mon-ROM ist schön das Löschen des BWS (Zufallsmuster) und anschließend die Ausgabe der Monitormeldung zu verfolgen. Übrigens wird im (ursprünglichen) Mon.V.3.1 der BWS von der niedrigsten BWS-Adresse (1000h - rechts unten) zu höchsten (17FFh - links oben) gelöscht, im Mon.V.10/88 umgekehrt. Monitormeldung beide Male in normaler europäischer Schreibrichtung.
In diesem Zusammenhang zu Post (041) von Bübchen i.V.m. der nachfolgenden Diskussion: Es ist unerheblich ob als 4-zu-2-MUXER der LS158 oder LS157 (257 = tristate) genommen wird, funktioniert alles (selbst getestet mit LS158 und DL257)! Die MUXER beschreiben den BWS einmal mit Daten von der CPU (adressiert über negierten AB) und die Bildschirmsteuerung liest diese entsprechend (fest verdrahtetem) Zeitzyklus aus. Ob die MUXER das Ganze negieren, ist nur für die tatsächliche physische Speicherstelle innerhalb des RAM interessant, geschrieben und gelesen wird immer Die jeweils richtige Adresse innerhalb des BWS.
Bei der Inbetriebnahme der CPU ist neben der oben beschriebenen Taktherabsetzung die zyklische Pegelkontrolle mit Oszi beim Abarbeiten des RST38h-Befehls (vgl. auch FA 09/84 S.456 ff.) sinnvoll. Dazu muß allerdings der Z80 auch den Befehlscode FFh (RST38h) lesen können. Das geschieht, wenn bei fehlendem Mon.-ROM auf dem DB FFh statisch anliegt. Hierfür benutzt man die in Post (064) von Ralph genannten Pullup-R´s (ca. 4,7k).
Diese werden busseitig am IC11 (LS245) jeweils von DB0..7 (Pin 11..18) gegen 5P geschaltet. Damit sind dann die Oszillogramme laut FA nachweisbar und der ganze Speicher (und damit auch der Bildschirm) wird zyklisch mit dem Code „39 00 h“ beschrieben. Wie das konkret aussieht ist etwas vom Zeichengenerator abhängig, bei mir steckt in der Aufbau/Testphase der (aktuelle) ZG 2K von Johanns Seite und damit sehe ich gleichmäßige Spalten abwechseld aus „Leerzeichen“ (00h wird in der Ausgaberoutine nicht dargestellt) und „9“.
Die I/O Platine funktioniert noch nicht wie gewünscht (siehe mein Frust-Post weiter oben vom 17.12.): Die PS/2-Tastatur resettet zyklisch selbst. Außerdem ist nur sporadisch der auf dem Bildschirm angezeigte Mon.-Befehl auch mit <ENTER> auszuführen. Feinschlüsse beim AB sowie DB kann ich ausschließen, gleichfalls in der Verbindung vom PIO zum PIC. Scrollen der Speicheranzeige (mit Mon.: D) geht bis zur vorletzten Zeile, dann erfolgt ja die Verschiebung des Bildschirminhalts um 64 Byte mittels Blockladebefehl und das bringt bei mir Datenmüll zu Anzeige (= Lesefehler im BWS).
Wahrscheinlich ist dieser Effekt eine Kombination aus zwei Fehlerquellen: Zeitprobleme beim Lesen aus dem BWS, der ja als Befehlszwischenspeicher dient und Taktung des PIC. Tatsächlich ist der von Bübchen (Post 063) angesprochene Fehler auch bei mir nachweisbar. Der Takt liegt trotz 20 MHz Quarz bei gemessenen 1,8 MHz direkt an Pin 8 vom IC8(LS04) sowie unerklärlicherweise 4,75 MHz direkt an Pin 13 vom PIC (direkter Leiterzug).
RAM scheint soweit zu laufen, leider kann ich wegen der in #4 beschriebenen Probleme nicht richtig testen (Portausgabe auf 1Eh ist momentan nicht als Befehl eingebbar), Abschalten von LOWRAM und HIRAM mit entspr. Anzeige geht, beschreiben/ anzeigen einzelner Zellen ebenfalls.
Beim BWS mal eher am C1 (100p) verschiedene Werte testen. Ich hoffe der 6116 ist -07 oder -10, also nicht schlechter als 100ns.
GIDE am Systembus geht, mit nachfolgenden Änderungen.
Tausche mal die Bustreiber gegen 74LS646, dann gehts auch mit längeren Drähten. Unbedingt muß auf der Original-GIDE-Platine da Signal /RDQ aufgetrennt werden (Leiterzug unterbrechen), sonst geht gar nichts. Mit diesen beiden Änderungen laufen bei mir zwei GIDE in verschiedenen AC1.
V8 Monitor sind die V24 Routinen drin, leider aber mit falschen Baudraten. Ob die Routinen aber noch im Monitor von Wusel_1 drin sind, weiß ich nicht ! Die DruckerPIO läuft als PIO2 auf IOSEL2.