80 x 30 Zeichen Modus für den Commodore 8296

  • Der 8296 kann auf seinem Monitor ohne Hardware-Modifikationen 30 Zeilen zu 80 Zeichen anzeigen.
    Dies ist möglich, weil der Video-RAM 4K groß ist. Leider hat VICE den größeren Video-RAM nicht implementiert, deshalb funktioniert es nur auf echter Hardware.
    Für diese Darstellung müssen nur zwei Register des CRT-Controllers umprogrammiert werden:
    Register 6: von 25 auf 30 (Zeilenzahl)
    Register 9: von 9 auf 7 (Zeilenhöhe)
    Das Original-Betriebssystem kann leider die zusätzlichen Zeilen nicht nutzen, da 25 Zeilen fest einprogrammiert sind.
    Außerdem hat ein furchtbarer Editor-Programmierer die Adressen $87D0-$87FF für eine Repeatfunktion missbraucht.
    Ich habe deshalb das Betriebssystem so modifiziert, dass es damit klar kommt und zwei Umschaltfunktionen einprogrammiert:
    Ctrl-D oder PRINT CHR$(4) schaltet auf den 25 Zeilen-Modus
    Shift-Ctrl-D oder PRINT CHR$(132) schaltet auf den 30 Zeilen-Modus.
    Interessierte finden den Code und EPROM-Images unter https://github.com/Edilbert/BSOS
    Das beiliegende Bild zeigt den Bildschirm im 30 Zeilen-Modus.

  • Als C64 User finde ich das mit dem neuen Tastaturlayout attraktiv :)

    Zuletzt repariert:

    10.11. defektes µT RAM im Apple //e ersetzt

    10.11. defektes µT RAM im Atari 130XE ersetzt

    12.11. VC20 mit black screen: defekter Videotransistor ersetzt

    • Offizieller Beitrag

    Nun bin ich endlich mal dazu gekommen, die neue Version auszuprobieren.
    Der 30 Zeilen Modus macht wirklich Spaß. :)


    Wie üblich habe beim rumprobieren auch direkt noch Bugs gefunden:
    -Schaltet man im 30 Zeilen Modus mit CTRL-N bzw. SHIFTL-CTRL-N zwischen Text- und Grafikmodus um, wird die Bildschirmanzeige wieder auf 25 Zeilen eingestellt, der Editor bleibt aber im 30 Zeilen Modus.
    -Die Eingabefolge SHIFT-CTRL-N CRTL-D erzeugt einen Bildschirmmodus mit durchlaufendem Bild.
    -Wenn der Cursor in der zweiten Spalte steht, schiebt SHIFT-INS das Zeichen aus der ersten Spalte mit nach rechts.


    Das Tool zum umschalten auf 40 Zeichen ('cbm4032 any hz') funktioniert leider nicht mit BSOS.
    Siehst Du da eine Chance, das anzupassen, oder vielleicht sogar etwas in der Art einzubauen?


    Viele Grüße
    Christian

    • Offizieller Beitrag

    Ich habe noch weiter rumprobiert:
    Wenn ich ein Basic-Programm vom CBM II (Ladeadresse $0003) mittels load"programm",8,0 lade, wird das zwar nach $0401 geladen, es wird aber mit list kein Prgramm angezeigt.
    Offenbar werden die Zeiger der Basic-Zeilen nicht angepasst. Am Anfang vom Basic-Speicher sehe ich mit dem Monitor: 0400 00 1d 00 .....
    Wenn ich ein C64-Programm (Ladeadresse $0801) nach $0401 lade, werden die Zeiger angepast, und das Programm wird gelistet.

  • Na, das ist doch mal eine TODO Liste :)
    Aber klar, ich kümmere mich darum.
    Inzwischen habe ich auch eine BSOS Version, die man von Diskette laden kann.
    Dafür braucht man keine ROM's zu tauschen.
    Sie läuft in der RAM-Bank 1/3 und blendet die ROM's aus.
    Das macht vor allem das Testen und Ausprobieren einfacher.
    Demnächst im Repository.
    Danke fürs Testen :thumbup:

    • Offizieller Beitrag

    Eine ladbare Version ist mal eine richtig gute Idee.
    Zum einen für Software, die nicht BSOS-kompatibel ist, zum anderen für alle, die keine EPROMs brennen können.


    Da fällt mir direkt noch was ein:
    Der 8296 (ohne -D) benötigt doch, soweit ich weiß, eine andere CRTC-Initialisierung, da ein anderer Monitor verbaut ist.
    Wenn es dafür auch eine angepasste Version gäbe, wäre das auch nicht schlecht.

    • Offizieller Beitrag

    Beim 8296 ist der gleiche Monitor verwendet worden, wie beim 8032(-SK).
    Daher findet hier auch der gleiche Editor (901474-04) Verwendung.
    Basic und Kernal sind ja sowieso gleich.


    Im Verzeichnis finden sich mehrere Versionen des gleichen ROMs. Wodurch die sich unterscheiden weiß ich nicht.


    Der 8296-D verwendet übrigens den gleichen Monitor wie der CBM 710/720.
    Da dieser ja mit 14 Bildzeilen pro Zeichen arbeitet, kann es natürlich sein, daß er für eine höhere Zeilenfrequenz ausgelegt ist, und der 8032-Monitor beim 30 Zeilen Modus überfordert ist.

  • Ich habe noch weiter rumprobiert:
    Wenn ich ein Basic-Programm vom CBM II (Ladeadresse $0003) mittels load"programm",8,0 lade, wird das zwar nach $0401 geladen, es wird aber mit list kein Prgramm angezeigt.
    Offenbar werden die Zeiger der Basic-Zeilen nicht angepasst. Am Anfang vom Basic-Speicher sehe ich mit dem Monitor: 0400 00 1d 00 .....
    Wenn ich ein C64-Programm (Ladeadresse $0801) nach $0401 lade, werden die Zeiger angepast, und das Programm wird gelistet.

    Für den CBM/PET genügt es das High-Byte eines Links auf 0 zu testen, um das Programmende zu finden, da keine kleineren Adressen als $0401 vorkommen.
    Beim CBM II muss man anscheinend beide Bytes des Links auf 0 testen, da es gültige Links mit dem High-Byte 0 gibt.
    Ich kann dem BSOS aber beibringen auch CBM II Programme nach dem Laden neu zu verlinken, indem ich den Programmende-Test erweitere.