Universal Cartridge

Aus
Wechseln zu: Navigation, Suche
Universal Cartridge (UC1/UC1.5/UC2)
Universal Cartridge 1 (UC1/UC1.5)


Die Universal Cartridge

Die Universal Cartridge (UC Modul) ist ein Modul für den C64 Homecomputer. Mit dem UC Modul kann sich jeder seine eigene Sammlung von Programmen erstellen, und diese bequem per Knopfdruck starten.


Alle UC Module können folgende Programme starten:

  • Software für ein 8K Modul
  • Software für ein 16K Modul
  • Software für ein Ultimax Modul
  • Software die als EINE Datei geladen und mit "RUN" gestartet wird (One-Filer)
  • Software die als EINE Datei geladen und mit 'RESET' oder 'SYS' gestartet wird


Das UC-1 Modul läuft nur ein einem C64. Das UC-2 Modul und das UC-1.5 Modul können auch in einer MAX Machine verwendet werden. Dazu muss bei der UC-1.5 eine Steckbrücke gesetzt werden. Bei der UC-2 kann der MAX Machine Modus per Software eingestellt werden.


Wenn die UC-1.5 im MAX Machine Modus ist, dann laufen die normalen UC Images nicht mehr. Es muss eine eigene Software verwendet werden für diese Betriebsart. Das ist zum Beispiel das MultiMAX Image.


Arten von UC Module

Es gibt drei Arten von UC Module:


UC-1 UC-1.5 UC-2
EPROM 128K 512K 512K
SRAM 32K 32K 512K
Register 1 2 2


Das UC-1 ist das kleinste UC Modul. Es unterstützt ein EPROM mit einer Größe von 64KB oder 128KB. Zusätzlich hat es ein 32K SRAM, mit dem man die C64 Standard Module (8K, 16K, Ultimax) emulieren kann. Alle Bauteile sind in THT Technik (keine SMD Bauteile), daher kann dieses Modul auch von einem Löt-Anfänger selbst hergestellt werden.


Das UC-2 ist der große Bruder des UC1 Modul. Es unterstützt FLASH Speicher bis zu 512KB (128K, 256K und 512K Flash Speicher). Das SRAM hat ebenfalls eine Größe von 512KB.


Das UC-1.5 ist ein Modul zwischen UC1 und UC2. Es hat zwei Register wie die UC2 und kann daher ebenfalls 512KB große EPROM Speicher adressieren. Der SRAM Speicher hat 32K (wie bei der UC1). Die Bauteile sind in SMD Technik, damit sie auf der kleinen Platine Platz finden.


C64 Module ganz allgemein

Für den C64 gibt es eine große Anzahl an Modul Erweiterungen. Das reicht von einfachen Spiel Module über komplexe Anwendungen hin zu kompletten Hardware Erweiterungen (IEEE-488, RS-2342, Hardware Speeder, neue CPU ...).


Wir unterscheiden zwei grundsätzliche Arten:

  • Software Modul (Software für den C64)
  • Hardware Modul (bringt neue Hardware)


Die Informationen auf dieser Seite beziehen sich nur auf Software Module. Software für den C64 gab es entweder als Kassette, Floppy Disk oder Modul. Modul Software zeichnet sich aus durch einfache Handhabung. Einfach Modul in den C64 stecken und einschalten.


Beim C64 werden in Bezug auf Software Module grundsätzlich drei Modi unterstützt:

  • 8K Modus
  • 16K Modus
  • 16K UltiMax Modus


Später hat man aus Platzmangel Module mit "Banking" eingeführt, um die Größenbeschränkung von 16KB zu umgehen. Aber auch Module mit Banking sind zu jedem Zeitpunkt auf 16K und die drei grundsätzlichen Modi beschränkt. Der Unterschied ist nur, dass die 16K Modulspeicher ein wählbarer Bereich aus einem größeren Speicherbereich ist.

Der Banking Mechanismus ist aber nicht genormt. Deswegen ist die Software auf dem Modul beschränkt auf genau eine bestimmte Modul Type.


Das UC ist ein Software Modul für den C64. In dem Modul kann man ein oder mehrere Programme und Spiele speichern und am C64 ausführen. Das UC Modul hat einen eigenen Banking Mechanismus. Und es kann alle drei Modul Modi per Software einstellen.



Erstellen einer eigenen Programmsammlung

Die Erstellung einer persönlichen Programm Sammlung für ein UC Modul macht man mit Hilfe eines PC Programm: UC-Builder


Der UC-Builder nimmt die gewünschten C64 Programme und verpackt sie in eine einzelne Datei (UC Image Datei). Diese Datei wird in den Speicher (EPROM, FLASH) des UC Modul geschrieben. Nun steht die Programm Sammlung für den C64 zur Verfügung.


UC Image Datei

Die C64 Programm Sammlung auf dem UC Modul kann man frei zusammen stellen. Dazu dient ein kleines Programm (UC-Builder) am PC. Das Programm erstellt eine sogenannte UC Image Datei. diese Image Datei hat die Endung .bin und kann direkt in das EPROM (oder den FLASH) programmiert werden.


Die Größe der UC Image Datei darf den verfügbaren Platz im EPROM (im FLASH Speicher) nicht überschreiten. Bei Verwendung eines W27C040 darf die Image Datei eine maximale Größe von 512KB haben. Die Größe setzt sich zusammen aus der Summe der einzelnen C64 Programme plus der Größe des UC-Loader. Der UC-Loader ist ein C64 Programm, das für die Bedienung des Modul (UC-Menü) notwendig ist.


Der UC-Loader

In dem UC Modul kann mehr als ein Programm gespeichert sein. Deswegen muss man die Möglichkeit haben, das gewünschte Programm auszuwählen. Die Auswahl des gewünschte Programm erfolgt über das UC-Menü. Im UC-Menü werden alle Programme auf dem Modul gelistet und können auf Knopfdruck gestartet werden.


Nach dem Einschalten des C64 startet der UC-Loader. Der UC-Loader schaut nach, welche Programme auf dem Modul gespeichert sind. Wenn es nur ein Programm ist, dann wird dieses direkt gestartet. Wenn sich mehr als ein Programm auf dem Modul befindet, dann zeigt der UC-Loader die Namen aller Programme am Bildschirm an (UC-Menü). Der Benutzer wählt das gewünschte Programm und der UC-Loader startet es.


Wenn sich ein File Browser (UC-FB) in der Image Datei befindet, dann kann man das Programm über die Taste <F1> starten. Der File Browser ist ein modifiziertes FB (File Browser) Version 2. Man kann damit Dateien auf einem Disketten Laufwerk oder einem SD2IEC anzeigen und starten. Dateien mit der Dateiendung .CRT startet der UC-FB automatisch als Modul.


Mit den Tasten <F7> oder <F8> kommt man in den normalen C64 Eingabemodus (C64 BASIC). Die Taste <F7> schaltet dabei das UC Modul aus. Man kann dann immer noch auf die UC-Register an der Adresse $DE0x zugreifen. Mit der Taste <F8> schaltet man zusätzlich auch die UC Register aus. Das Modul ist dadurch vollkommen unsichtbar und kann nur durch einen Modul Reset wieder aktiviert werden.


Der UC-Builder

In dem Speicher des UC Modul (EPROM oder FLASH) kann man fertige Image Dateien programmieren. Dazu braucht man nur ein EPROM Programmiergerät. Wenn man eine eigene Zusammenstellung von Programmen machen möchte, dann braucht man den UC-Builder.

Der UC-Builder erstellt eine UC Image Datei aus einem oder mehreren C64 Programme. Die Image Datei enthält den UC-Loader, das UC-Menü (die Programmauswahl), ggf. einen File Browser (UC-FB) und alle C64 Programme die in dem Modul sind. Der UC-Loader ist in dem UC-Builder bereits enthalten und wird immer automatisch in die Image Datei geschrieben. Das UC-Menü wird vom UC-Builder erzeugt und in die Image Datei geschrieben.


Für die Erstellung des UC-Menü benötigt das UC-Builder folgende Informationen zu jedem C64 Programm:

  • Name des Programm
  • Art des Programm
  • Den Dateinamen des Programm

Der Name des Programm wird dann beim Start vom UC-Loader angezeigt. Die Art des Programm benötigt der UC-Loader, damit das Programm korrekt gestartet werden kann. Die Dateiname des Programm benötigt der UC-Builder, damit er es in die UC Image Datei integrieren kann.


Der UC-Builder ist ein Programm für die Windows Kommandozeile. Es erstellt Image Dateien für das UC1, UC1.5 und das UC2 Modul. Wird es ohne Argumente aufgerufen, dann sucht das UC-Builder nach einer CSV Datei namens 'menu.csv'. Wenn keine Fehler auftreten beim bilden des Image, dann erfolgt nur die Ausgabe der Image Datei Größe sowie des freien Speicherplatz. Die Berechnung des freien Speicher beruht auf de Annahme, dass ein 128K EPROM (W27C010) verwendet wird. Bei Verwendung eines 64K EPROM muss man darauf achten, dass die Image Größe 0x10000 nicht überschreitet.


Optionen:

Mit der Option '-h' oder '--help' bekommt man eine Ausgabe aller verfügbaren Optionen zum UC-Builder.
Mit der Option '-V' oder '--version' wird die Version des UC-Builder angezeigt.

Mit der Option '-1' oder '--UC1' wird der UC-Builder angewiesen, eine Image Datei für ein UC1 Modul zu erstellen.
Mit der Option '-2' oder '--UC2' wird der UC-Builder angewiesen, eine Image Datei für ein UC2 Modul zu erstellen. Diese Image Dateien laufen auch in der UC1.5
Mit der Option '-5' oder '--UC1.5' wird der UC-Builder angewiesen, eine Image Datei für ein UC1.5 Modul zu erstellen. Diese Image Dateien laufen auch in der UC2

Mit der Option '-8' oder '--MD' wird der UC-Builder angewiesen, eine Image Datei für ein Magic-Desk Modul zu erstellen. Die maximale Größe ist 1MB. Mit der Option '-9' oder '--EF' wird der UC-Builder angewiesen, eine Image Datei für ein EasyFlash Modul zu erstellen.

Mit der Option '-m' oder '--menu-csv' kann man eine CSV Datei mit beliebigem Namen verwenden.

Mit der Option '-i' oder '--image-file' kann man den Namen der Ausgabe Datei (UC Image Datei) festlegen.
Mit der Option '-c' oder '--crt-file' kann man den Namen der Ausgabe Datei (CRT Datei) festlegen.

Mit der Option '-v' erhöht man die Anzahl der Meldungen, das UC-Builder wird 'gesprächiger'. Die Option kann mehrfach verwendet werden. Ab drei '-vvv' erhält man detaillierte Informationen über den Aufbau der Image Datei, also die Adresse, Bank und Länge jedes Programmes in dem Image. Es wird auch angezeigt wie das Programm geladen und gestartet wird und ob das IO Register verborgen wird.


Am Ende wirft der UC-Builder zwei Dateien aus. Die BIN Datei (EPROM Abbild) ist die UC Image Datei, die direkt in das EPROM für das Modul gebrannt werden kann. Die CRT Datei ist ein 8K CRT für den VICE, damit kann man das Menü gleich kontrollieren. Allerdings kann der VICE die Programme nicht richtig starten, da der VICE die UC Hardware (noch) nicht emulieren kann.


Die Image Dateien für Magic-Desk oder EasyFlash sind wie bei den UC-Images eine BIN Datei (EPROM Abbild) und eine CRT Datei für den VICE Emulator. Neuere Versionen des VICE Emulator können beide Arten (EasyFlash und Magic-Desk) perfekt emulieren.



Die CSV Datei für die Menü Erstellung

Das UC-Builder liest die benötigten Informationen aus einer Text Datei (CSV Datei). Jede Zeile in der CSV Datei steht für ein Programm (bzw. einen Menü Eintrag). Mit der Option -m sagt man dem UC-Builder den Namen der CSV Datei (-m menuFile.csv). Wenn das UC-Builder ohne CSV Dateinamen aufgerufen wird, sucht es automatisch nach der CSV Datei menu.csv.


Beispiel einer CSV Datei:

Programm;           Typ;      Dateiname
Hello World;        PRG;      10-Zeiler\hello world.prg
Fort Apocalypse;    PRG;      Games\Fort Apocalypse.prg
Jupiter Lander;     UltiMax;  Ultimax\Jupiter_Lander.crt
ExBasic-II;         CRT;      CRT\ExBasic II.crt
Test $C003;         BIN;      Test\UC-testc01.prg;               SYS $C003
TSB;                BIN;      BIN\tsb.obj.prg;                   RESET
Help+;              !$8000;   BIN\Help+-C64.bin;                 RESET




Aus der CSV Datei entsteht eine UC Image Datei mit einem Menü und vier C64 Programmen. Die zweite Spalte enthält den Typ des C64 Programm. Diese Information benötigt der UC-Loader damit das Programm richtig gestartet werden kann.


Spalte 1 -- Programm Name:

Der Programm Name wird nur für die Darstellung im UC-Menü benutzt. Der Name wird automatisch in PETSCII konvertiert, sofern dies möglich ist. Die Länge wird automatisch auf 17 Zeichen reduziert, damit es am C64 problemlos dargestellt wird.

Ein Sonderfall ist der Text 'F1'. Wenn der Programm Name exakt 'F1' ist, dann betrachtet der UC-Builder diesen Eintrag als 'File Browser'. Im UC-Menü wird kein Eintrag gebildet, aber es erscheint ganz unten links die Auswahl 'F1-File Browser'. Mit der Taste 'F1' wird dieser Eintrag als File Browser gestartet. Der File Browser wird immer mit aktiviertem IO Register gestartet, damit ggf. später eine Konfiguration des UC Modul erfolgen kann.

Der File Browser kann entweder ein externes Programm oder der interne UC-FB sein. Im Falle des internen UC-FB ist der Programm Typ immer als '---' anzugeben. Und es ist natürlich kein Dateiname nötig, die Spalte drei kann also einen beliebigen Inhalt haben.


Spalte 2 -- Programm Typ:

Der Programm Typ steuert, wie das Programm geladen wird. Zudem bestimmt es die Konfiguration der UC Hardware vor dem Programm Start. Zudem wirkt sich der Programm Typ aus auf die Start Option, sofern diese nicht manuell eingestellt wird (siehe Spalte 4).


Folgende Kürzel sind in der Spalte Typ erlaubt
PRG
normales BASIC Programm, das an der Adresse $801 geladen und mit RUN gestartet wird
BIN
ein Programm mit Ladeadresse, das an beliebiger Adresse geladen und mit SYS oder RESET gestartet wird
BLK nnn
! nnn
eine Datei OHNE Ladeadresse, die an beliebiger Adresse geladen und mit SYS oder RESET gestartet wird
es kann entweder 'BLK' oder '!' verwendet werden, das Ergebnis ist das selbe.
die Datei wird an die angegebene Adresse 'nnn' geladen. Die Adresse kann dezimal, hexadezimal (beginnt mit '$' oder '0x') oder Oktal (beginnt mit '0') angegeben werden
8KB
das Programm wird als 8KB Modul gestartet
16KB
das Programm wird als 16KB Modul gestartet
UltiMax
das Programm wird als Ultimax Modul gestartet
CRT
der Modul Typ wird selbsttätig erkannt, - nur bei CRT Dateien
"---"
Sonderfall für die Verwendung des internen UC-FB, wenn der Programm Name exakt 'F1' ist


Spalte 3 -- Dateiname:

Der Dateiname am PC, damit der UC-Builder die Datei lesen und in die Image Datei einbinden kann. Es sind alle Arten von Pfade erlaubt, die dem OS bekannt sind (Unterverzeichnisse, andere Laufwerke, absolute Pfade, Netzlaufwerke, Pfad Aliase ...). Dateien werden einfach als Byte Stream gesehen. Es gibt aber Ausnahmen, Dateien die inhaltlich interpretiert werden: P00 und CRT

P00
Diese Dateien werden besonders behandelt, der P00 Header wird überlesen und ab Byte [0x1A] wird als Inhalt verwendet
CRT
Diese Dateien sind 'Modul Dateien' für den Emulator. Sofern es CRT Dateien vom Typ 0 (8K, 16K, Ultimax) sind, werden sie vom UC Builder und vom UC-FB richtig interpretiert.


Spalte 4 -- Start Optionen: (optional, ab v1.05)

Die Spalte 4 kann normalerweise einfach weg gelassen werden. Man kann hier eine bestimmte Startoption erzwingen. Wenn die Spalte weg gelassen wird, startet der UC-Loader alle PRG mit einem 'RUN' Befehl, alle Modul Dateien mit einem Soft RESET und alles andere gar nicht (springt nach dem LOAD ins BASIC).

Wenn man eine Startoption definiert, dann führt sie der UC-Loader nach dem LOAD aus, unabhängig davon ob es Sinn macht oder nicht.


Folgende Startoptionen sind erlaubt
RESET
Nach dem laden des Programmes wird ein Soft RESET ausgeführt.
(Das ist Standard bei Programm Typ 8KB, 16KB, UltiMax und CRT)
SYS nnn
Nach dem laden des Programmes wird ein SYS ausgeführt auf die Adresse 'nnn'. Die Start Adresse kann dezimal, hexadezimal (beginnt mit '$' oder '0x') oder Oktal (beginnt mit '0') angegeben werden.
RUN
Nach dem laden des Programmes wird ein RUN ausgeführt. Sofern es sich bei dem Programm um ein BASIC Programm handelt, wird es automatisch nach dem LOAD ausgeführt.
(Das ist Standard bei Programm Typ PRG)
READY
Nach dem laden des Programmes wird nichts gemacht. Der UC-Loader springt direkt nach dem LOAD in den Direktmodus des BASIC (Interpreter Loop).
(Das ist Standard bei Programm Typ BIN und BLK)
ROM
Das Programm wird direkt im ROM (EPROM/FLASH) ausgeführt, ohne zuerst ins RAM geladen zu werden. Der UC Loader selektiert die richtige Speicher Bank und startet dann per Reset. Module vom Typ 8K und 16K werden direkt an der unteren Grenze einer 16K Bank angeordnet. Ultimax Module mit 8K werden automatisch in dem oberen 8K Block einer Bank angeordnet, das ist Standard für Ultimax Module wegen dem Reset Vektor.
Diese Methode hat den Nachteil, dass ein Programm genau an den Block Grenzen einer Bank angeordnet werden muss, dadurch entstehen u.U. Lücken zu dem Programm vorher und der Speicher kann nicht mehr vollständig benutzt werden. Aber es eignet sich gut, wenn hauptsächlich Modul Programme (CRT Dateien) mit 8K und 16K Größe benutzt werden (zB. das Multi-MAX Modul). Im Falle von vielen 8K Modulen wird der Speicher ideal genutzt, wenn sich eine 8K und eine Ultimax immer abwechseln.


Der File Browser (UC-FB)

Der UC File Browser wird vom UC-Menü gestartet mit der Taste <F1>. Der UC File Browser ist nur verfügbar, wenn im CSV File ein Dummy Eintrag gemacht wird. Der Menütext (erste Spalte) muss 'F1' lauten und die zweite Spalte enthält drei Bindestriche ('---'). Die dritte Spalte wird nicht ausgewertet. Optional kann man statt des internen UC-FB auch einen eigenen Browser einbinden, dazu muss nur die erste Spalte exakt 'F1' enthalten.

Der UC-FB läuft als 8KB ROM und ist sonst wie der normale FB v2. Er startet Programme, wechselt in Verzeichnisse oder Disk Image Dateien und verlässt diese auch wieder. So kann man sehr komfortabel auf einem SD basierten Laufwerk (wie das SD2IEC) navigieren.

Der UC-FB kann auch CRT Dateien vom Typ 0 starten. Es wird automatisch der Modul Typ (8K, 16K oder Ultimax) aus dem CRT File gelesen und entsprechend in den UC RAM geladen. Der Start erfolgt über einen Soft Reset.


MAX Machine

Die UC Module sind dafür konzipiert, in einem C64 Computer zu arbeiten. Neuere UC Module können aber auch in einer Commodore MAX Machine laufen. Mie Module UC-1 und UC-1.5 haben dazu einen optionalen Jumper, mit dem sie in den MAX Machine Modus geschaltet werden können. Das UC-2 Modul kann per Software Einstellung in den MAX Machine Modus wechseln.

Ein UC Modul im Max Machine Modus läuft auch in einem C64.


Der MAX Machine Modus unterliegt den Beschränkungen dieser Ziel Plattform:

  • es funktioniert nur noch der Ultimax Modus
  • der UC Loader funktioniert in diesem Modus nicht
  • ein C64 hat nur noch 4K RAM
  • an einer MAX Machine sind 2K RAM (intern) und 2K extern (UC-RAM) von $0800 bis $0x0FFF
  • das Signal IO-1 ist direkt mit /EXRAM verbunden
  • das Signal IO-2 ist direkt mit /EXROM verbunden
  • die UC Register sind in einer MAX Machine in dem 2K Adressraum $0800-$0FFF ansprechbar (statt wie gewohnt ab $DExx)
  • an einem C64 hat man 256 Byte UC RAM im IO-2 Bereich ($DFxx)


Da der UC Loader nicht funktioniert im Max Machine Modus funktionieren da auch keine UC Images mehr. Es braucht eine Software die spezielle für diesen Modus entwickelt wurde, zum Beispiel die MultiMax Software für das UC Modul.


News

  • 11.06.2021 -- Prototyp der UC1
  • 14.07.2021 -- Release der UC1
  • 20.09.2021 -- UC2 voll funktionsfähig
  • 23.09.2021 -- UC1.1 Prototyp
  • 01.10.2021 -- Release UC-Builder v1.07
  • 08.10.2021 -- Release der UC2
  • 29.10.2021 -- Release UC-Builder v1.10


Downloads


Links