SC126 - kompatibel zum "RC2014 Homebrew Z80 Computer"

  • In der letzten Woche habe ich einen SC126 Bausatz bestellt. Ich möchte diesen hier vorstellen, Fragen und Probleme sind aber besser im Retrocomp Forum aufgehoben.


    Hier einige Links dazu:


    Der RC126 Kit wurde von Stephen Cousins [UK] entwickelt, bestellt habe ich den Kit bei tindie


    https://smallcomputercentral.w…-z180-motherboard-rc2014/

    Mehr allgemeines zu RC2014 hier:

    https://rc2014.co.uk/


    Das SC126 Board ist wunderbar beschrieben und selbst ich konnte es zusammenkleben. :)

    Am besten selber auf obige Links klicken und schauen.


    Das Betriebssystem CP/M mit all seinen Derivaten ist mir schon seit den 80igern gut bekannt, mit dem SC126 und der ROMWBW Systemumgebung gibt es aber noch viel Neues.

    Natürlich darf hier ein Bild nicht fehlen. Das Bild ist auf die Schnelle mit dem Handy entstanden.

    Die Rückseite ist mir etwas peinlich, habe ich diese doch mit IPA gereinigt und das löst den Schutzlack und

    die Beschriftung an. Also bitte kein IPA nehmen. :fp:



    Nachdem ich nun einige Dokumentationen gelesen habe bin ich schon etwas weiter und habe

    auf der CF Karte CP/M 2 und NZCOM installiert.


    Als Terminal nutze ich ZOC unter Windows, welches aber auch so manch einem 'alten' OS/2 Nutzer gut bekannt sein wird.

    Neben echten CP/M Kisten habe ich auch MYZ80 als Emulator unter OS/2 (VirtualBOX) im Zugriff.

    Hier habe ich mir die gewünschten Programme zu einem LBR Archiv mit NULU gepackt, auf ein unter Windows erreichbares Verzeichnis kopiert und mit XM(odem) nach CP/M geschrieben. (siehe Bilder)



    CP/M 2 auf CF Karte installieren:

    Nach Initialisierung der CF wird mit SYSCOPY die gewählte 'Partition' auf der CD Karte bootfähig gemacht.

    Bei mir ist C: das erste Laufwerk auf der CF Karte.


    SYSCOPY C:=CPM.SYS,

    anschließend mit

    PIP C:=A:*.* die Programme zum CP/M 2 nach C: kopieren.


    Das ROMWBW zeigt die mögliche Auswahl der zur Verfügung stehenden Laufwerke beim Start an.

    Wenn auf dem Laufwerk mehrere 'Partitionen', hier SLICES genannt, vorhanden sind wird nach dem

    zu bootenden SLICE gefragt und dieses immer dem Laufwerksbuchstaben A: zugeordnet


    NZCOM hat, bedingt durch die im BIOS notwendigen Routinen um unter CP/M die ganzen Laufwerke

    zu verwalten, eine recht kleine TPA von ca 50K.


    Unter CP/M3 ist dies besser, da CP/M3 nur einen Common Bereich von meist 4k benötigt und

    alles weitere in den gebankten Bereichen abgelegt wird.

    Jetzt muß ich noch schauen wie ich CP/M3 auf die CF Karte bekomme.



    Anhang:

    ################################################

    A0:COMMANDS>syscopy


    SYSCOPY v2.0 for RomWBW CP/M, 17-Feb-2020 (CP/M 2 Mode)

    Copyright 2020, Wayne Warthen, GNU GPL v3


    Usage: SYSCOPY <dest>[=<source>]


    A0:COMMANDS>dir *.sys


    Drive A0 [COMMANDS] Files: 2/32k Free: 5880k

    CPM .SYS 16k : ZSYS .SYS 16k :


    A0:COMMANDS>

    ################################################

  • Mein SC126 ist auch gestern angekommen :)

    Sobald ich etwas Zeit frei habe, werd ich den auch zusammen löten und ein Gehäuse basteln (diesmal ein 3D-Druck).


    Die CP/M 3-Dateien könntest Du übrigens auch als LBR-Datei kopieren und dann mit SYSCOPY installieren.

    Wenn Du Dir RomWBW runterlädst, ist CP/M 3 im Quellcode-Baum mit dabei und man kann es da rauskopieren.


    In den Verzeichnissen RomWBW/Source/CPM3 sowie in RomWBW/Source/Images/d_cpm3/u0 liegen Dateien dazu (ggf. nach einmal compilieren).

    Ich habe mir ein Script gebastelt, welches mir die Dateien zusammensucht und auf eine Diskette kopiert (ich habe einen Floppy-Controller am RC2014).


    Viel Spaß mit dem Rechner!


    Anna

  • Hallo Anne,


    welchen Floppy Controller hast du den? Das wäre meine nächste Investition.


    Ich habe mal das ROMWBW Make laufen lassen und anschließend im BINARY Verzeichnis die gewünschten Images gehabt.

    Mit dem Win32DiskImager habe ich das COMBO.IMG auf eine SD Karte geschrieben, anschließend bin ich die Laufwerke durchgegangen.


  • Hallo Fritz,


    als Floppy-Controller nutze ich einen WD37C65-basierten Controller, wie ihn smbaker entworfen hat, siehe: https://www.smbaker.com/z80-re…-floppy-controller-boards


    Die Platine kann man bei oshpark bestellen, man muß sich halt die Bauteile selbst besorgen.

    Es gibt eine Tabelle mit allen Bauteilen, da ist diese Karte mit gelistet: https://docs.google.com/spread…dhzz7GTo/edit?usp=sharing


    CP/M 3: Ja, stimmt, das Combo-Image gibt es auch :)

    Ich nehm aber immer gerne die (für mich) relevanten Dateien und baue mir meine Umgebung (und somit meine Laufwerksinhalte) selbst zusammen :)


    Viele Grüße

    Anna (mit a am Ende)

  • Kermit sollte auch funktionieren, da gibt es auch eine CP/M 3-Version.
    Wenn ich demnächst mal die Muße (und meinen SC126 fertig) habe, kann ich ja mal schauen, ob ich von QTerm eine Z180-Version hinkriege.

    "Theoretisch" braucht es ja nur vier Funktionen, die in Assembler in das Patchfile eingebaut werden müssen:
    - Chip-Initialisierung

    - EIn Byte holen

    - Ein Byte senden

    - De-Initialisierung


    Viele Grüße

    Anna

  • Aktuell habe ich das WBWRom und das CP/M 3 aus dem DEV Zweig installiert.


    Hintergrund sind die mit 512 leider zu wenigen Directoryeinträge, welche Wayne im master vorhesehen hat.


    In DEV hat Wayne einen neuen DPB Eintrag mit 1024 Directoryeinträgen hinzugefügt.

    Um dies zu nutzen muß aus dem DEV das passende ROM und die Betriebssysteme erstellt werden.

    Bei mir ist auf der CF Karte die Version HDNEW drauf, auf der SD Karte die alte Version mit 512 Directoryeinträgen.


    Beide funktionieren prächtig miteinander, es ist nur darauf zu achten, dass die zugehörigen Tools auch im Verzeichniss sind.

    Zitat

    Wayne:

    The new code is backward compatible. If you upgrade to the dev branch and use an old hard disk (CF, SD, etc.), it will work fine (although limited to 512 entries). 1024 entries are only used for slices that are contained in a partition of type 0x2E (which does not exist on old hard disk format).


    Assign kann da auch schon mal in die Irre führen, so hatte ich in einem Script das falsche Assign zugeordnet und bekam eine entsprechende Fehlermeldung:


    A0:COMMANDS>>assign

    Unexpected CBIOS version ## assign aus der master version ( CBIOS und HBIOS müssen zusammen passen).



    Aus dev/bin





    Neues HBIOS:

    Code
    Boot [H=Help]: h
    
      L         - List ROM Applications
      D         - Disk Device Inventory
      R         - Reboot System
      I <u>     - Set Console Interface
      V [<n>]   - View/Set HBIOS Diagnostic Verbosity
      <u>[.<s>] - Boot Disk Unit/Slice  

    Startmeldung aktuelles System:




    Mit freundlichen Grüßen


    fritz

    Einmal editiert, zuletzt von fritzeflink () aus folgendem Grund: Ergänzung Bootmeldungen

  • Welchen Adapter hast du bestellt ?

    Eine normale microSD liegt doch bestimmt noch irgendwo rum.


    Ich habe diesen Micro SD Card Adapter und nutze eine alte NOKIA 2GB microSD.

    Zu empfehlen ist auf jeden Fall ein CF Karten Adapter.


    Bei Tindy hatte ich den kompletten KIT mit allen AdOns bestellt.




    Mit freundlichen Grüßen


    fritz

  • Ja, ich habe genau den mit dem SC126 angebotenen SD-Karten-Adapter mitbestellt. Und den einen seriellen Adapter auch, damit auch ganz gewiss alles zusammen passt - obwohl ich davon eine Auswahl im Haus habe.


    Wozu brauche ich den CF-Karten-Adapter? Ich wollte die SD-Karte als Festplatte benutzen.

  • Die SD-Karte reicht natürlich. Ob 2 SD Kartenadapter gemeinsam genutzt werden können weiss ich jetzt nicht.

    CF und SD gemeinsam nutzen je 4 Slices auf den Karten. Die Zuordnung kann mit Assign vorgenommen werden.


    Die CF-Karte ist prinzipiell eine IDE Festplatte. Die Datenübertragung ist schneller als bei der SD-Karte (meine Feststellung).

    Ich habe für meine alt Z80 Systeme einige 128MB CF-Karten hier liegen.


    Mit freundlichen Grüßen


    fritz

  • Jene Transcend 2 GB MicroSD welche ich mir extra für dieses Projekt besorgt hatte funkioniert nicht, immer wieder


    SD0: DATA ERROR

    Bdos Err On G: Bad Sector


    Im Kartenleser an meinem Linux-Notebook tut sie aber: Testweise ein 1,6 GB großes Video drauf kopiert, raus, rein, md5sum meldet dieselbe Prüfsumme wie beim Original.


    Die SD-Karte in meinem M4 am CPC ist zufällig auch eine Transcend 2 GB - die tut.


    Jetzt können wir hier eine Liste für geeignete Karten anlegen, unterteilt in tut, tut nicht und vielleicht.

  • Jene Transcend 2 GB MicroSD welche ich mir extra für dieses Projekt besorgt hatte funkioniert nicht, immer wieder


    SD0: DATA ERROR

    Bdos Err On G: Bad Sector


    Poste bitte mal Vor.- und Rückseite der 'defekte' MiocroSD.


    Ich nutze ja eine alte Nokia 2GB MicroSD ohne Probleme.

    Getestet habe ich die mit dem " H2testw -- by Harald Bögeholz / c't Magazin für Computertechnik" Programm.

    Mit freundlichen Grüßen


    fritz

  • Die CF-Karte ist prinzipiell eine IDE Festplatte. Die Datenübertragung ist schneller als bei der SD-Karte (meine Feststellung).

    Das hängt nur von der verwendeten SD Karte und dem verwendeten Adapter ab.

    Moderne SD Karten sind viel schneller als CF, deren Standard ja nicht mehr weiter entwickelt worden ist.


    Der Flaschenhals beim Schreiben ist aber sowieso der Flash Speicher selbst.

    Aber auch da hat sich bei modernen Class 10 Karten viel getan.

  • Da ich noch keine echte SIO habe hat mir Kurt mal seine Erfahrung gemailt, die ich hier abtippen darf.

    Ich kann dazu leider keine Fragen beantworten


    Hallo Fritz,


    ich schreibe dir meine Erfahrung mit folgender Konfiguration auf:


    Hardware

    SC114 (Z80 mit 7,37..Mhz) (scc.me.uk)

    SC104 v1.0 Z80 SIO/2 module (scc.me.uk)

    2 x FTI232 jeweils an PORT A und PORT B

    Software

    kermit-80 v.411


    Hardware:

    Linux 18.04 Ubuntu Notebook

    Software

    C-kermit 9.0.302 OPEN SOURCE for Linux+SSL-KRBS (64 Bit)



    Handling:


    Verbindungen herstellen.

    USB mit 2x FTI232; siehe unten.


    Linux-Rechner USB erster FTI232 = PORT A an SC104 = Terminal 1

    Linux-Rechner USB zweiter FTI232 = PORT B an SC104 = Terminal 2


    Software, zwei Terminal's (z.B xfce4-terminal) am Linux-Rechner oeffnen.

    Terminal 1 (Z80 Rechner)

    Programm kermit aufrufen.

    Bitte eingeben:

    set port uc1

    Kermit soll die Daten ueber den PORT B senden oder empfangen.

    Nichts mehr tun.


    Terminal 2 (Linux-Rechner)

    kermit (linux) aufrufen.

    C-kermit 9.0.302 etc meldet sich.


    Der Linux-Rechner wird hier an den PORT B

    oder /dev/ttyUSB1 eingerichtet.

    Jetzt folgende Eingaben machen:


    set modem type none

    set line /dev/ttyUSB1

    set carrier-watch off

    set speed 115200


    Beispiel:

    Wir sendem vom Z80 an Linuxrechner (Pfad kann gewaehlt werden)


    Senden vom LW A


    Terminal 2:

    r (ENTER)

    Der Rechner wartet


    Terminal 1

    s info.txt


    Der Z80 uebetragt und der Linux Rechner empfaengt.

    Ich habe heute eine CF128 LW A-P zum Linux-Rechner uebertragen.

  • SC126 mit 36MHz


    in SCZ180_126.asm

    Code
    Z180_CLKDIV	.SET	2		; was 1 Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
    Z180_MEMWAIT	.SET	1		; was 0 Z180: MEMORY WAIT STATES (0-3)



    Aus: https://groups.google.com/g/re…UH7w5-osR8/m/NsDM9mn2AgAJ


    You can configure your RomWBW to work at 36MHz on the SC126 all the time, by setting this line to "2" and the next line to "1". And then rebuilding the binaries




    https://github.com/wwarthen/Ro…Config/SCZ180_126.asm#L31



  • Dann läuft der SC126 mit 36 MHz, obwohl ich den 24 MHz--Quarz belasse?

    Nein, aber ...


    Ich habe einen 18MHz (18M43200) verbaut, da hast du den 126er wohl schon etwas 'getunt'.

    Setze für 36 MHz bitte den 'originalen' 18,x MHz Quarzoszillator ein.


    Mit .SET 2 wird deine Prozessortaktung verdoppelt. Ein 18,xx MHz Quarzoszillator wäre dann doch zu empfehlen da du sonst mit 24 * 2 Taktung den armen Prozessor etwas zu sehr beanspruchst.


    Code
    Z180_CLKDIV	.SET	2		; was 1 Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2

    Mit freundlichen Grüßen


    fritz

    • Offizieller Beitrag

    Und...


    Die 36,864MHz CPU-Clock liegen rund 11% ueber der Spezifikation des Z180.

    Wenn's also nicht funktioniert oder das System instabil laeuft, nicht wundern!

    • Offizieller Beitrag

    36,864 / 33,333 = 1,105 => ~ +10,5%


    Ich sag ja nicht, das es nicht geht. Bei mir laeuft's auch.

    Aber wenn's nicht geht, bitte nicht meckern, auf gar keinen Fall fragen! :)

  • Da ich meinen SC126 abgegeben habe hier noch ein paar Anmerkungen.


    Die Kombination SC126 + CF-Karte habe ich überwiegend genutzt. Die MicroSD (2GB NOKIA) habe ich nur zum testen gebraucht.

    Auf meinem System hatte ich die developer RomWBW HBIOS v3.1.1-pre.24, 2021-01-14 installiert

    Hier waren 1024 Directoryeinträge möglich - die Stable Version hatte nur 512 Einträge.


    Aktuell sind mit der Stable Version ebenfalls 1024 Directoryeinträge möglich und ich habe das Make mal durchgespielt.

    Auf der CF-Karte hatte ich das COMBO Image kopiert welches umfangreiche Möglichkeiten bietet.


    Erst mal CLEAN.CMD und dann BUILD.CMD - anbei in Anhang der Durchlauf als Textdatei.



    Nach BUILD.CMD dauert es ein wenig bis folgende Abfrage kommen ( Tastatureingabe ist hier bold und unterstrichen) :


    Platform [SBC|MBC|ZETA|ZETA2|RCZ80|Z80RETRO|DUO|UNA|HEATH|MON|N8|MK4|RCZ180|SCZ180|DYNO|RPH|S100|EPITX|RCZ280]: SCZ180


    Configurations available:

    > sc126

    > sc130

    > sc131

    > sc140

    > sc503

    > sc700

    Configuration: sc126



    ============================================================

    SCZ180_sc126 for Z180 CPU

    ============================================================

    ...

    Damit ist das System für SC126 fertig erstellt.

    Die Images befinden sich anschließend in Binary und ich nutze die hd1k_combo.img für die CF-Karte.



    Das Flash muss zwecks aktuellem System auch neu beladen werden.



    Bitte aber in jedem Fall die Dokumentation lesen.


    Mit der obigen Neuerstellung arbeitet das SC126 wieder mit der normalen Taktrate.

    Für 36MHz bitte wie hier anpassen, in der aktuellen Version ist es aber die Datei cfg_scz180.asm

    und liegt bei mir hier:

    X:\RC2014\RomWBW-v3.4.0-Package\Source\HBIOS\cfg_scz180.asm


    Anschließend Clean und Make laufen lassen.