SDLTRS Emulator (Genie I / II / III, LNW80, SpeedMaster)

  • Unterstützung für die 80-Z Karte von Schmidtke (und dieses "Eigengebräu") befindet sich im aktuellen master/sdl2 von SDLTRS:


    sdltrs -rom vg1-TCS-rom.bin -charset1 genie -speedup banking -disk0 flocpm01.dmk startet das Schmidtke-CP/M. Dort kann mit copy sys.sys=sys80.sys der Treiber für die 80-Z Karte (in diesem Fall für das "Eigengebräu") installiert werden. Nach einem "Kalt-Start" mit SHIFT-F10 wird dieser dann aktiviert und es werden 80*22 Zeichen angezeigt ...


    Im Schmidtke-CP/M wurde die Tastaturbelegung etwas geändert: der Doppelpunkt liegt da auf SHIFT-0 (Funktionstaste F6 in SDLTRS), das Semikolon wird im "Original" durch SHIFT + LEERTASTE + ; erreicht, in SDLTRS ist das im Moment nur über das "Virtual Keyboard" möglich: ALT + J und dort Keyboard auswählen ...

  • DEF.COM habe ich zwar (noch) nicht gefunden, dafür aber 'chardef.bas' und ein paar Zeichensätze 8)

    Läuft unter G-DOS 2.4: :)



    ... mit zl <Fontname> können die Zeichensätze auch direkt geladen werden: GDOS24-CHAR.zip ...


    Die Zeichensätze sollten auch unter CP/M funktionieren, allerdings kann man bei zl.com von TCS keine Datei angeben und ZEISATZ im Holte-CP/M kann nur den aktuellen Zeichensatz bearbeiten ...

  • Mit der EG 3210 (Programmable Graphics Adaptor) Karte für Genie III (EG 3200) können die Zeichen von 192 bis 255 selbst definiert werden: über Bit 2 von Port 0xFA werden dann zuzätzlich 1024 Bytes im Adress-Bereich 0x4400 - 0x47FF "eingeblendet". Mit dem Programm CHRGEN64/CMD (bzw. CHRGEN80/CMD) wird der Zeichensatz dort bearbeitet (das Programm akzeptiert nur Tasten mit SHIFT). Im Disk-BASIC ist die Ausgabe im 64*16-Modus nur mit POKE möglich, da sonst die entsprechende Anzahl von Leerzeichen ausgegeben wird:



    Im angehängten DMK befindet sich GDOS 2.1 mit CHRGEN64/CMD und konvertierten Zeichensatz-Dateien (/CHR) aus dem obigen chardef.zip (TCS Genie IIIs): g3gd21-chr.zip ... der Zeichensatz muß vorher mit CHRGEN64/CMD geladen werden: das Kommando zl unter GDOS 2.4 funktioniert nur auf dem TCS Genie IIIs ...

    3 Mal editiert, zuletzt von JenGun ()

    • Offizieller Beitrag

    Wenn mir fritzeflink seinen Programmable Graphics Adaptor mal zukommen laesst, koennte ich den nachbauen.

    Hat ausser mir noch jemand Interesse daran?

    • Offizieller Beitrag

    Genau.

    In dem Post RE: SDLTRS Emulator (Genie I / II / III, LNW80, SpeedMaster) gibt's ne Anleitung.

    • Offizieller Beitrag

    Klasse wäre ja auch eine großzügige Speichererweiterung, und passend dazu ein gebanktes CPM 3.

    Was ist denn in der Richtung bekannt?

    Sobald JenGun das in der Emulation am laufen hat, kann ich da gerne was nachbauen.

    Bisher ist (mir) die Ansteuerung des Bankings nicht bekannt.


    Und irgendeine Erinnerung sagt mir, da ist auch noch ein EPROM / angepasste Firmware mit drauf.

    • Offizieller Beitrag

    GenieIII PlusCard fuer Anfaenger


    Und irgendeine Erinnerung sagt mir, da ist auch noch ein EPROM / angepasste Firmware mit drauf.

    Gefunden!

    Ist die Frage, ob das noch zu diesem Thread passt. Sonst verschieb ich es.


    Wir fangen in folgendem Verzeichnis an:

    http://oldcomputers-ddns.org/p…nie_3/sources/holte/v22d/


    Unter sys&tool/ gibt ein eprom.mac und cbios.mac.

    eprom.mac hat einen anstaendigen RESET Einsprung und ab Adr 5 kann man die entsprechenden Funktionen aufrufen.

    Die Funktionsvektoren stehen ab DRITAB.

    Der Aufrug aus dem CBIOS ins EPROM erfolgt ueber die Routine $USERF


    Aehnliches gibt's unter pluscard/ : cardsys.mac und cbios.mac

    Bei cardsys.mac gibt's aber keinen anstaendigen RESET Einsprung und die Funktionen werden ab Adr 0 aufgerufen.

    Die Funktionsvektoren sind ebenfalls bei DRITAB.

    Es faellt allerdings der 16. Vektor auf: $RESET (eprom.mac) bzw $XMOVE (cardsys.mac)

    Der Aufruf aus dem CBIOS ist wieder ueber $USERF, aber etwas anders: CALL 5 (eprom.mac) bzw RST 0 (cardsys.mac)

    Bei cardsys.mac kann man also 2 Bytes / Aufruf sparen.


    Das zeigt aber, das die Aenderungen nicht willkuerlich oder die Dateien fehlerhaft sind.


    Leider wird dadurch das Bankswitching noch nicht klarer und zusaetzlich muss das cardsys-EPROM auch dekodiert werden.

    Vielleicht helfen diese Erkenntnisse etwas Licht ins Dunkle zu bringen.


    Viel Erfolg

  • Leider wird dadurch das Bankswitching noch nicht klarer und zusaetzlich muss das cardsys-EPROM auch dekodiert werden.

    eprom.mac ist das ROM, welches ohnehin für das Holte-CP/M (unabhängig von dieser "Genieplus Card") benötigt wird: http://oldcomputers-ddns.org/p…rces/genie3-romtausch.pdf ... cardsys.mac wird dann vom CP/M-"Bootstrap Loader" in die ersten 32 KB von Bank 0 geladen (und bleibt wohl auch dort als "Common"-Bereich) ... so habe ich das erstmal "verstanden" ... :/

    Einmal editiert, zuletzt von JenGun ()

    • Offizieller Beitrag

    So einfach geht's m.E. nicht.


    In den ersten 32k muss ja RAM sein. Also muss das cardsys-EPROM ebenso ausgeblendet werden koennen wie das normale EPROM.

    Zeigen auch die $USERF Funktionen. (OUT ($IOSEL),A)

  • In den ersten 32k muss ja RAM sein.

    Die "Speicheraufteilung" der "Genieplus Card" für CP/M ist laut Handbuch:

    ... vielleicht liegt "Bank 0" nicht in den vorhandenen 64 KB ... :/

    • Offizieller Beitrag

    Die "Speicheraufteilung" der "Genieplus Card" für CP/M ist laut Handbuch:

    Die Doku kannte ich noch gar nicht. Danke.


    Ich glaube, ich hab's mit dem PlusCard Banking.


    In cardsys.mac findet sich eine Switch-Funktion:

    Code
    SWITCH: INC  A                  ;adjust bank number
            SRL  A                  ;upper or lower bank ?
            JR   NC,SWITC1          ;select lower bank
            SET  3,A                ;select upper bank
    SWITC1: OUT  ($SEL),A           ;select transfer bank
            RET

    Die eingehende Banknumber entspricht der Banknumber, die in CPM3 von der BIOS Funktion XMOVE benutzt wird.

    Ich hab die Umrechnung mal durchgerechnet:

    Irgentwie nicht sehr erhellend.


    In der v22d/pluscard/cbios.mac ist mir aufgefallen, das $USERF und $$XMOVE immer nur zwischen $SEL=0 und 1 umschalten.

    Durch Zufall ist mir die Init der RAM Disk aufgefallen:

    Code
    ;clear directory of RAM disk:
        CP   PUSHHL        ;PUSH HL ?
        JR   Z,BANK0        ;disable erasing of RAM disk if soft reset
        LD   A,9        ;select bank 2
        OUT  ($SEL),A
        LD   HL,0        ;start of directory track
        LD   (HL),0E5H
        LD   DE,1
        LD   BC,800H        ;max 2K directory
        LDIR            ;clear it

    Hier kommt wenigstens mal Bank2 ins Spiel. Andere zaehlweise wie oben, aber egal.


    Weiter gesucht:

    Code
               LD   A,E        ;track # --> accu
               SRL  A            ;track # / 2
               JR   NC,TASKM1        ;jump if no remainder
               SET  3,A        ;select upper frame
    TASKM1:    OUT  ($SEL),A        ;select "RAM track"

    Das Codesegment hatten wir oben schon mal.

    Also wird ein RAM Disk Track in einem $SEL gespeichert.

    Ein RAM Disk Track hat 256 Records (=128 Bytes) (kann man im DBP auslesen), sind also 256*128=32768 Bytes.


    Und jetzt kriegt das ganze eine Form.

    Die oberen 32kB jeder CP/M-Page liegt im Common Bereich, nur die unteren 32kB werden umgeschaltet.

    Das netspricht auch der Adresse 0x7FFF in Page 0 im o.g. Handbuch.

    Die unteren 3 Bits des $SEL sind adressieren die 64kB Baenke auf der PlusCard, Bit 3 schaltet den unteren und oberen 32kB Bereich in einer Bank um.


    Ob das Pluscard-EPROM kopiert wird oder fest eingeblendet ist, muss ich noch suchen.


    Aber ich denke mit den Erkenntnissen sollte man etwas bauen koennen.

    Emulation oder Hardware?



    Nachtrag (2022-06-15):

    Nachdem mir vor ein paar Tagen ein Fehler in der Tabelle CPM-Bank -> $SEL aufgefallen ist, macht das Ergebnis Sinn.

    Die Genieplus Karte hat 6 Memory-Baenke a 64kB (=384kB).

    Diese Memory-Baenke werden von den unteren 3 SEL-Bits angesteuert. Bit 3 steuert die unteren/oberen 32kB einer Memory-Bank.

    Die CP/M-Baenke 0 (internes Memory, gebankter CPM-Teil) und 1 (TPA und residenter CPM-Teil) sind fuer das CPM3 reserviert. Bleiben 352kB fuer die RAM-Floppy.

  • Aber ich denke mit den Erkenntnissen sollte man etwas bauen koennen.

    Fritz hatte freundlicherweise ein DMK-Image mit der "banked CP/M 3"-Version erstellt, jedoch startete dieses in der Emulation nicht (was nicht an dem Disk-Image liegen muß) und es gab daher natürlich keine "Aktivität" auf $SEL (Port 0x28) ... mir ist auch nicht klar, ob dieses eprom.mac für die "Genieplus Card" überhaupt richtig ist ... deshalb hatte ich die TCS Genie IIIs-Emulation vorgezogen ... ;)

    • Offizieller Beitrag

    Das eprom.mac brauchst du auf jeden Fall. Das lädt/startet den Bootloader, der das CBIOS.

    Das cardsys.mac ist auf der PlusCard, das EPROM wird im CBIOS auch angetestet. Und da ist die Frage, wann ist das EPROM sichtbar?


    Hat fritzeflink auch das cardsys.mac auch übersetzt?

  • Das eprom.mac brauchst du auf jeden Fall.

    Klar, meine "Vermutung" war nur, daß vielleicht eine Version speziell für die "Genieplus Card" notwendig ist, wo das "Banking" dafür schon mal "eingeschaltet" wird ... :) Mit CP/M habe ich auch nicht so viel Erfahrung, G-DOS und Disk-BASIC war mir sympathischer ... ;)

    Hat fritzeflink auch das cardsys.mac auch übersetzt?

    Selbstverständlich! :) G3CARD03.zip ...

    • Offizieller Beitrag

    Selbstverständlich! :) G3CARD03.zip ...

    Ich komm mit den Imagetools und Emulatoren nicht klar.

    Kann mir jemand bitte ein binaeren Floppy-Images machen und ggf. die Dateien einzeln?

    • Offizieller Beitrag

    fritzeflink , danke dir.

    Schau dir bitte mal die BIOS.MAC an. In den ersten 512 Bytes ist eine SUB Datei drin, das gehoert so nicht.

    Nur mal zur Info.

  • Unter Holte-CP/M 3a für Genie III funktioniert COPYSYS.COM ohne Parameter: nach FORMAT B: wird damit eine bootfähige Diskette erstellt. COPYSYS SYSLADER.BIN (und B als "Destination") zerstört dann den Boot-Sektor ... dies wurde wohl von Mike Douglas ("Deramp") behoben:

    Zitat

    Had to fix the code that reads the image file specified on the command line. Previously it opened the file using a standard BDOS open call and FCB, but then read the file using BIOS direct calls. This didn't work, so the code has been changed to use standard BDOS reads to load the image file into RAM.


  • Hier noch mal unter YAZE, bei G3CARD sind noch 2 unbekannte Symbole


    Text hier gekürzt