IMSAI 8080 mit 2 Bildschirmen...

  • Hallo.


    Mein Imsai 8080 mit 64kb RAM läuft die ganze Zeit via Terminal (Hazeltine Esprit) ohne irgendwelche Probleme.

    An diesem Terminal bin ich natürlich nicht in der Lage, Grafik dar zu stellen. Jetzt hab ich hier aber noch eine Grafikkarte rumliegen. Eine Solid State Music VB1C. Diese kann 64 Spalten x 16 Zeilen oder 32 Spalten x 16 Zeilen auf einem Composite Monitor darstellen. Wie wir alle wissen, hat der Ascii-Zeichensatz 7 Bit (0-6) . Bei dieser Grafikkarte wird das 8. Bit (Bit 7) dazu genutzt, den Grafikmodus ein bzw auszuschalten. Ist also Bit 7=1, dann kann man mit den untersten 6 Bit ein Grafikzeichen in 2x3 Pixel definieren. Ist Bit 7=0, dann wird über die untersten 7 Bits (Bit 0-6) das dementsprechende Ascii-Zeichen ausgegeben.

    Die Karte ist keine "Terminal-Ersatzkarte", die man über einen Port ansprechen würde, sondern eine über den Speicherbereich adressierbare Karte. Sie hat 1kb Speicher on board. Jetzt bin ich in der glücklichen/unglücklichen Lage, dass mein Imsai bereits einen Speicherausbau von 64kb hat und über einen 16Bit Adressbus ist natürlich nicht mehr zu erreichen. Also habe ich den Speicherbereich, auf den die Karte gejumpert ist, zwangsweise zweimal vergeben, was ja zu Problemen führen muss.. Trotzdem habe ich es probiert. Der Composite-Monitor ist natürlich voller Speichermüll. Mit den Toggle switches hab ich 31h an den Speicherstart der Karte geschickt. Oben links kam ne "1", also wie es sein soll..

    Nach dem Booten von CP/M ist er nach ein paar DIR Befehlen abgestürzt. Ich war nicht mehr in der Lage am Terminal etwas ein zu geben.

    Daraufhin habe ich aus meiner Speicherkarte den Chip an der dementsprechenden Speicherstelle entfernt, dass dieser eben nicht doppelt belegt ist. Auch das war ohne Erfolg. Die nächste Idee war einfach mal die Speicherchips an der Karte zu entfernen. Dann hatte ich am Composite-Monitor natürlich kein Bild mehr.

    Normalerweise benutze ich eine CP/M 60kb Version. Ich hab eine 56kB Version erstellt, dass zwischen dem CP/M BIOS, welches von der Diskette geladen wird und meinen Eproms, die bei F000h beginnen, definitiv genug Platz ist. Also um zu vermeiden, dass CP/M irgendwelche weiteren Daten ablegen will, die dann mit der Grafikkarte in Konflikt kommen, was dann zu einem Absturz kommen könnte. Auch das hat nichts gebracht. Bei s100-computers auf der Webseite steht ein "MOD" zu der Karte. Man soll an einem Chip 2 Beinchen hochbiegen und einen Chip ziehen. Auch das hab ich probiert. Ich kam dann irgendwann mal soweit, dass ich MBASIC laden konnte. Die Karte war an EC00h adressiert, also 60416 dezimal. Ich hab in MBASIC mehrmals Poke 60416,49 eingegeben, was eine "1" oben links in der Ecke darstellen sollte. Er hat die "1" bei dem selben Poke immer an einer anderen Stelle ausgegeben und irgendwann ist er abgestürzt.

    Vielleicht hat einer von euch eine Idee, wie ich die Karte sauber einbinden kann ??


    Jetzt ist es ja so, beim S100-Bus gibt es die PHANTOM Leitung an Pin67. Ist diese aktiv, darf das device den Speicher überlappen. Diese Leitung ist aber bei der Karte nicht belegt... Evtl. hat da jemand eine Idee für eine Bastellösung ?! Ich hab jetzt mal noch auf Verdacht neue RAM-Chips und neue HEX-Buffer bestellt..



    Vielen Dank !


    Gruß Jan

  • Die Probleme sind gelöst. Ich schreibe die Auflösung, falls selber mal jemand in der Situation sein sollte.


    1. Ein Logikchip auf der Karte war defekt. Dadurch hat sich der "Bildschirmspeicher" nach ein paar Sekunden in einen anderen Bereich verschoben.


    2.Den Mod von s100 Computers musste ich anwenden, dass ich den Speicherbereich doppelt belegen kann trotz fehlender PHANTOM-Leitung. Hier der Link:


    http://www.s100computers.com/H…older/SSM/VDB-1/VDB-1.htm


    3. Ich hatte einen, aus Unwissenheit resultierenden :D , Fehler gemacht. Der IMSAI kann natürlich 64kb adressieren. Ich habe 60kb RAM drin, außerdem ein 2kb Eprom mit fast allen BIOS Routinen (um das eigentliche Bios auf der Diskette aus zu dünnen) und ein 2kb Eprom mit meinem Monitor-Programm.

    Der Gedankengang war, final eine 58k Version von CP/M zu verwenden und den Bildschirmspeicher der Grafikkarte oberhalb von CP/M ab zu legen. Aber obwohl es nur eine 58k Version war, macht sich CP/M trotzdem bis zum Ende breit. Oberhalb des BIOS folgt im Speicher der Puffer für die Disk-directories. Die Einträge sah ich dann auf dem CRT, der an der Grafikkarte angeschlossen ist. Bei einer 56k Version von CP/M passiert das gleiche.

    Also musste ich die Grafikkarte in den oberen TPA-Bereich legen. Also vor CCP. Das ist jetzt an der Adresse 0D000h.


    Es funktioniert jetzt alles einwandfrei. Zum Spaß hab ich noch ein kleines "Speichertestprogramm" geschrieben. Auch aus dem Grund, weil nach einschalten des Rechners nur Datenmüll auf dem CRT zu sehen ist. Das Programm schreibt den Bildschirm voll mit "@" (Ascii 40h). Anschließend zieht es von jeder Speicherstelle 20h ab, was Space ergibt, es löscht also den Bildschirm. Dann überprüft es, ob an jeder Speicherstelle ein 20h steht. Falls nicht, schreibt es ein "E" für Error und stoppt an der Stelle... Wenn alles OK ist, schreibt es oben links "1k Video RAM ok..." und kehrt zu CP/M zurück..




    Gruß Jan