De 68k-MBC is een homebrew Single Board Computer (SBC) gebaseerd op de 68008 CPU, beschikbaar in een Lite- en Full-configuratie. Het systeem maakt gebruik van een PIC18F47Q10 MCU die fungeert als EEPROM en I/O-emulator, waardoor een traditionele EPROM-programmeur overbodig is. Belangrijke kenmerken zijn RS232-poorten, SD-kaartondersteuning voor harddisk-emulatie en een RTC-module.
Het project omvat uitgebreide hardware- en softwarebestanden, inclusief een GCC cross-compiler toolchain en documentatie voor diverse uitbreidingen. Zo is er een SPP Adapter board voor legacy parallelle printers en ondersteuning voor kleine thermische printers. Daarnaast is er integratie mogelijk met de uTerm2-S terminal. De community heeft bovendien diverse OS-opties (zoals SK*DOS 68K) en compilers (Pascal, FORTRAN-77) beschikbaar gesteld voor het platform.
68k-MBC: Een homebrew-computer met 3 IC's en een 68008 CPU
Beschrijving
De 68k-MBC is ontworpen om gemakkelijk te bouwen met veelvoorkomende through-hole (TH) componenten. Het project volgt hetzelfde concept als de eerdere Z80-MBC2 en V20-MBC boards. Er wordt gebruikgemaakt van een PIC18F47Q10 MCU die fungeert als EEPROM en "universele" I/O-emulator, waardoor een traditionele EPROM-programmeur niet nodig is.
Kenmerken
- Hardware-configuraties: Keuze tussen Lite (minimale 3 IC's voor CP/M-68K) of Full.
- Uitbreidingen: Optionele onboard 16x GPIO-expander.
- Modules: Gebruik van goedkope standaard modules voor SD (voor harddisk-emulatie) en RTC (Real Time Clock).
- Connectiviteit: Twee onboard RS232-seriële poorten, geschikt voor RS232-terminals zoals de uTerm-S.
- Compatibiliteit: Compatibel met de uTerm en uCom add-on boards.
Projectstatus (18/04/2023)
Hardware
- Alle hardware-gerelateerde bestanden zijn vrijgegeven (zie sectie BESTANDEN).
- Hoofdstukken toegevoegd over:
- Het gebruik van een kleine thermische printer.
- Het gebruik van een uTERM2-S RS232-terminal.
- Het SPP (Standard Parallel Port) adapterboard.
- Documentatie voor het bouwen van het SPP Adapter board (A240721-R270921) is beschikbaar.
Software
- Alle software-gerelateerde bestanden zijn vrijgegeven.
- IOS & SD Updates: Diverse updates voor IOS (o.a. S310121-R250521, R010721, R220721, R231021) en bijbehorende SD-images.
- Documentatie: De complete collectie van de 4 handleidingen van CP/M-68K is toegevoegd.
- Tooling:
- Software/Firmware voor de Arduino Uno PIC-programmeur, inclusief het "ICSP Shield" board.
- Een experimenteel Docker-image voor een gcc cross-compiler toolchain (Linux).
- Installatiebestanden voor de 68000 IDE en een aangepast
cstart.asm bestand voor de 68k-MBC (versies voor 128/512/1024KB).
Het Prototype
In de eerste fase van het ontwerp is een prototype op een breadboard gebruikt om de basisconcepten te testen. Hierbij is een PIC18F47Q10 gebruikt op een eigen board ("PicOne"), dat direct op breadboards geplaatst kan worden en beschikt over een onboard microSD-kaart en USB-seriële adapter.
Voor de firmware van de PIC18F47Q10 is gebruikgemaakt van MPLAB X IDE met de MCC-plugin. Er is een geautomatiseerde assembler-toolchain opgezet die Easy68K gebruikt als assembler en sLoad, een aangepaste software-utility om uitvoerbare bestanden in Motorola S-record formaat via de seriële poort te laden en uit te voeren.
Om deze toolchain te automatiseren, is op het breadboard een auto-reset circuit geplaatst. Dit circuit gebruikt het DTR-signaal van de USB-seriële adapter om de MCU te resetten (vergelijkbaar met een Arduino Uno), waardoor het systeem kan worden gereset via een batch-bestand op de PC met een macro van Tera Term.
Waarom een PIC-microcontroller?
In eerdere projecten (Z80-MBC2 en V20-MBC) is een Atmega MCU gebruikt vanwege de gebruiksvriendelijke Arduino IDE. Echter, de GPIO-poorten van Atmega MCU's zijn niet TTL-compatibel. Bij de vorige boards werd dit opgelost door een CMOS CPU te gebruiken die onder bepaalde omstandigheden de digitale niveaus van de Atmega MCU kon volgen.
De 68008 CPU is echter niet beschikbaar in CMOS-technologie, waardoor een Atmega MCU niet kan worden ingezet. De zoektocht naar een alternatief had drie strikte eisen:
- Gegarandeerde TTL-compatibele GPIO's.
- Beschikbaar als through-hole (TH) onderdeel.
- Goedkoop.
De PIC18F47Q10 voldoet aan al deze eisen en biedt bovendien meer flash- en RAM-geheugen dan de eerder gebruikte Atmega32 MCU.
Beschikbare Bestanden
- SPP Adapter board (A240721-R270921.zip): Schema's, PCB-assemblagegids en Gerber-bestanden voor een 2-laags PCB van 55mm x 60mm.
- S310121-R23102168k-MBCIOS.X.production.hex: De IOS in executable formaat voor directe programmering van de PIC MCU via MPLAB IPE.
- S310121-R23102168k-MBCIOS.X.zip: De broncode voor de IOS (voor MPLAB X IDE v5.45).
- SD-S310121-R231021-v3.zip: Inhoud voor de microSD-kaart voor IOS S310121-R231021.
- EF06120-A2-user manual.pdf: Handleiding met printercommando's voor de QR203 printer.
Uitbreidingen en Logboeken
SPP (Standard Parallel Port) Adapter Board
Het SPP Adapter board stelt de gebruiker in staat om de GPIO-poort van de 68k-MBC te gebruiken als een standaard printerparallelpoort, waardoor legacy parallelle (Centronics) printers gebruikt kunnen worden.
Installatie en gebruik:
- Verbinding: Gebruik een 10cm platte kabel met 20 draden en IDC-connectoren aan beide zijden. Let op dat pin 1 op de 68k-MBC overeenkomt met pin 1 op het adapterboard.
- Veiligheid: Schakel de 68k-MBC uit voordat u het board aansluit of loskoppelt.
- Software: Update zowel de IOS firmware als de SD-image naar de laatste versie.
Gebruik onder CP/M-68K:
- Voer de custom utility
SPP.68K uit (beschikbaar op drive B:). Dit reserveert de GPIO-poort voor de parallelpoort-emulatie.
- Koppel het logische apparaat
LST: aan het apparaat LPT: met het commando: STAT LST:=LPT:.
- Gebruik
Ctrl-P om de console-output naar de printer te sturen.
Let op: De SPP utility geeft een foutmelding als de GPE (GPIO Expansion) optie niet is geïnstalleerd.
Voor ontwikkelaars zijn er GCC-voorbeelden (getStatusSPP.c en writeTestSPP.c) beschikbaar in de SD-image onder /gcc-68k/workdir.
uTerm2-S Terminal
De uTerm2-S is een nieuwe kleur-RS232-terminal met multi-emulatie, gebaseerd op een ESP32-module en de FabGL-bibliotheek. De terminal kan worden geconfigureerd voor verschillende schermresoluties (bijv. 132 kolommen x 75 rijen of 128 kolommen x 40 rijen).
Gebruik van een kleine thermische printer
Kleine thermische printers (zoals model QR203) kunnen worden aangesloten op de tweede RS232-poort (J4/AUX) van de 68k-MBC.
Aansluiting:
- De printer heeft doorgaans een RS232- of TTL-interface.
- Maak een aangepaste kabel met een 3-pins Dupont-connector voor J4/AUX.
- Bedrading: Alleen GND en RX zijn strikt noodzakelijk, maar TX kan ook worden aangesloten.
- Voeding: Gebruik een 9V 3A voeding. Plaats een siliciumdiode (minimaal 3A) in serie om polariteitsomkeering te voorkomen en de spanning iets te verlagen (9V is het maximum voor deze printer).
- Instellingen: Zet de snelheid van seriële poort 2 op 9600 bps.
Er is een utility beschikbaar (SETPRINT.68K op drive B:) om de printer in te stellen op 42 kolommen met een kleiner lettertype en vette tekens voor betere leesbaarheid.
Community-bijdragen en aanvullende software
Uit gebruikersdiscussies zijn de volgende aanvullende bronnen en tools naar voren gekomen:
- Besturingssystemen en DOS:
- SK*DOS 68K kan worden geïnstalleerd op de 68k-MBC (beschikbaar via GitHub).
- Er is een uniek OS voor de 68K beschikbaar via
cini.classiccmp.org.
- Editors en Compilers:
- Simple Kitten Editor: Een full-screen editor voor CP/M-68K (SKED.REL).
- uEmacs: Een port van de bekende editor.
- SVS Pascal & SVS FORTRAN-77: Compilers voor CP/M-68K beschikbaar via
cpm.z80.de.
- Tiny Screen Editor: Een schermeditor beschikbaar via
andreadrian.de.
- Overig:
- Implementaties voor floating point support met de Alcyon C compiler.
68k-MBC: Een homebrew-computer met 3 IC's en een 68008 CPU
Beschrijving
De 68k-MBC is ontworpen om gemakkelijk te bouwen met veelvoorkomende through-hole (TH) componenten. Het project volgt hetzelfde concept als de eerdere Z80-MBC2 en V20-MBC boards. Er wordt gebruikgemaakt van een PIC18F47Q10 MCU die fungeert als EEPROM en "universele" I/O-emulator, waardoor een traditionele EPROM-programmeur niet nodig is.
Kenmerken
- Hardware-configuraties: Keuze tussen Lite (minimale 3 IC's voor CP/M-68K) of Full.
- Uitbreidingen: Optionele onboard 16x GPIO-expander.
- Modules: Gebruik van goedkope standaard modules voor SD (voor harddisk-emulatie) en RTC (Real Time Clock).
- Connectiviteit: Twee onboard RS232-seriële poorten, geschikt voor RS232-terminals zoals de uTerm-S.
- Compatibiliteit: Compatibel met de uTerm en uCom add-on boards.
Projectstatus (18/04/2023)
Hardware
- Alle hardware-gerelateerde bestanden zijn vrijgegeven (zie sectie BESTANDEN).
- Hoofdstukken toegevoegd over:
- Het gebruik van een kleine thermische printer.
- Het gebruik van een uTERM2-S RS232-terminal.
- Het SPP (Standard Parallel Port) adapterboard.
- Documentatie voor het bouwen van het SPP Adapter board (A240721-R270921) is beschikbaar.
Software
- Alle software-gerelateerde bestanden zijn vrijgegeven.
- IOS & SD Updates: Diverse updates voor IOS (o.a. S310121-R250521, R010721, R220721, R231021) en bijbehorende SD-images.
- Documentatie: De complete collectie van de 4 handleidingen van CP/M-68K is toegevoegd.
- Tooling:
- Software/Firmware voor de Arduino Uno PIC-programmeur, inclusief het "ICSP Shield" board.
- Een experimenteel Docker-image voor een gcc cross-compiler toolchain (Linux).
- Installatiebestanden voor de 68000 IDE en een aangepast
cstart.asm bestand voor de 68k-MBC (versies voor 128/512/1024KB).
Het Prototype
In de eerste fase van het ontwerp is een prototype op een breadboard gebruikt om de basisconcepten te testen. Hierbij is een PIC18F47Q10 gebruikt op een eigen board ("PicOne"), dat direct op breadboards geplaatst kan worden en beschikt over een onboard microSD-kaart en USB-seriële adapter.
Voor de firmware van de PIC18F47Q10 is gebruikgemaakt van MPLAB X IDE met de MCC-plugin. Er is een geautomatiseerde assembler-toolchain opgezet die Easy68K gebruikt als assembler en sLoad, een aangepaste software-utility om uitvoerbare bestanden in Motorola S-record formaat via de seriële poort te laden en uit te voeren.
Om deze toolchain te automatiseren, is op het breadboard een auto-reset circuit geplaatst. Dit circuit gebruikt het DTR-signaal van de USB-seriële adapter om de MCU te resetten (vergelijkbaar met een Arduino Uno), waardoor het systeem kan worden gereset via een batch-bestand op de PC met een macro van Tera Term.
Waarom een PIC-microcontroller?
In eerdere projecten (Z80-MBC2 en V20-MBC) is een Atmega MCU gebruikt vanwege de gebruiksvriendelijke Arduino IDE. Echter, de GPIO-poorten van Atmega MCU's zijn niet TTL-compatibel. Bij de vorige boards werd dit opgelost door een CMOS CPU te gebruiken die onder bepaalde omstandigheden de digitale niveaus van de Atmega MCU kon volgen.
De 68008 CPU is echter niet beschikbaar in CMOS-technologie, waardoor een Atmega MCU niet kan worden ingezet. De zoektocht naar een alternatief had drie strikte eisen:
- Gegarandeerde TTL-compatibele GPIO's.
- Beschikbaar als through-hole (TH) onderdeel.
- Goedkoop.
De PIC18F47Q10 voldoet aan al deze eisen en biedt bovendien meer flash- en RAM-geheugen dan de eerder gebruikte Atmega32 MCU.
Beschikbare Bestanden
- SPP Adapter board (A240721-R270921.zip): Schema's, PCB-assemblagegids en Gerber-bestanden voor een 2-laags PCB van 55mm x 60mm.
- S310121-R23102168k-MBCIOS.X.production.hex: De IOS in executable formaat voor directe programmering van de PIC MCU via MPLAB IPE.
- S310121-R23102168k-MBCIOS.X.zip: De broncode voor de IOS (voor MPLAB X IDE v5.45).
- SD-S310121-R231021-v3.zip: Inhoud voor de microSD-kaart voor IOS S310121-R231021.
- EF06120-A2-user manual.pdf: Handleiding met printercommando's voor de QR203 printer.
Uitbreidingen en Logboeken
SPP (Standard Parallel Port) Adapter Board
Het SPP Adapter board stelt de gebruiker in staat om de GPIO-poort van de 68k-MBC te gebruiken als een standaard printerparallelpoort, waardoor legacy parallelle (Centronics) printers gebruikt kunnen worden.
Installatie en gebruik:
- Verbinding: Gebruik een 10cm platte kabel met 20 draden en IDC-connectoren aan beide zijden. Let op dat pin 1 op de 68k-MBC overeenkomt met pin 1 op het adapterboard.
- Veiligheid: Schakel de 68k-MBC uit voordat u het board aansluit of loskoppelt.
- Software: Update zowel de IOS firmware als de SD-image naar de laatste versie.
Gebruik onder CP/M-68K:
- Voer de custom utility
SPP.68K uit (beschikbaar op drive B:). Dit reserveert de GPIO-poort voor de parallelpoort-emulatie.
- Koppel het logische apparaat
LST: aan het apparaat LPT: met het commando: STAT LST:=LPT:.
- Gebruik
Ctrl-P om de console-output naar de printer te sturen.
Let op: De SPP utility geeft een foutmelding als de GPE (GPIO Expansion) optie niet is geïnstalleerd.
Voor ontwikkelaars zijn er GCC-voorbeelden (getStatusSPP.c en writeTestSPP.c) beschikbaar in de SD-image onder /gcc-68k/workdir.
uTerm2-S Terminal
De uTerm2-S is een nieuwe kleur-RS232-terminal met multi-emulatie, gebaseerd op een ESP32-module en de FabGL-bibliotheek. De terminal kan worden geconfigureerd voor verschillende schermresoluties (bijv. 132 kolommen x 75 rijen of 128 kolommen x 40 rijen).
Gebruik van een kleine thermische printer
Kleine thermische printers (zoals model QR203) kunnen worden aangesloten op de tweede RS232-poort (J4/AUX) van de 68k-MBC.
Aansluiting:
- De printer heeft doorgaans een RS232- of TTL-interface.
- Maak een aangepaste kabel met een 3-pins Dupont-connector voor J4/AUX.
- Bedrading: Alleen GND en RX zijn strikt noodzakelijk, maar TX kan ook worden aangesloten.
- Voeding: Gebruik een 9V 3A voeding. Plaats een siliciumdiode (minimaal 3A) in serie om polariteitsomkeering te voorkomen en de spanning iets te verlagen (9V is het maximum voor deze printer).
- Instellingen: Zet de snelheid van seriële poort 2 op 9600 bps.
Er is een utility beschikbaar (SETPRINT.68K op drive B:) om de printer in te stellen op 42 kolommen met een kleiner lettertype en vette tekens voor betere leesbaarheid.
Community-bijdragen en aanvullende software
Uit gebruikersdiscussies zijn de volgende aanvullende bronnen en tools naar voren gekomen:
- Besturingssystemen en DOS:
- SK*DOS 68K kan worden geïnstalleerd op de 68k-MBC (beschikbaar via GitHub).
- Er is een uniek OS voor de 68K beschikbaar via
cini.classiccmp.org.
- Editors en Compilers:
- Simple Kitten Editor: Een full-screen editor voor CP/M-68K (SKED.REL).
- uEmacs: Een port van de bekende editor.
- SVS Pascal & SVS FORTRAN-77: Compilers voor CP/M-68K beschikbaar via
cpm.z80.de.
- Tiny Screen Editor: Een schermeditor beschikbaar via
andreadrian.de.
- Overig:
- Implementaties voor floating point support met de Alcyon C compiler.