The Final Cartridge 3

Aus C64-Wiki
Zur Navigation springenZur Suche springen
The Final Cartridge 3
Final Cartridge 3 - neue Version
Typ Steckmodul
Hersteller RISKA B.V. Home & Personal Computers
Neupreis 89 DM[1], ca. 45 €
Erscheinungsjahr 1987
Produktionsende 1993
Sonstiges Es gab mehrere Versionen für C64/128, die letzte war Final Cartridge 3


Die "The Final Cartridge 3" oder "The Final Cartridge III" (kurz: FC3) ist ein Steckmodul, das am C64 oder am C128 am Expansionsport betrieben werden kann und 1987 von der Firma RISKA B.V. Home & Personal Computers in Kooperation mit TASC B.V. (Firmensitz: Rotterdam in den Niederlanden) entwickelt wurde. Sie stellt dem C64-Nutzer über 60 neue Funktionen (u.a. BASIC-Erweiterung, Schnelllader und -speicherer für die 1541 mit dem Faktor 10, Freezer, Monitor) zur Verfügung, darunter u.a. eine Benutzeroberfläche (Desktop) mit Fenstertechnik (ähnlich wie GEM oder Windows), hardwareseitig eine Reset- und eine Freezer-Funktion. Die 1581 wird nicht unterstützt.


Aktivieren bzw. Deaktivieren des Moduls[Bearbeiten | Quelltext bearbeiten]

52-seitiges Handbuch
  • Aktivierung im Desktop oder Grafik-Modus
    • Einschalten des C64
    • Reset + Drücken von C= 
    • Befehl DESKTOP von BASIC aus
  • Aktivierung im Basic-Modus
    • Einschalten des C64'ers + Drücken von RUN/STOP 
    • Reset + Drücken von RUN/STOP 
  • Deaktivierung
    • Durch den Befehl KILL
    • Durch den Befehl SYS 64738
    • Im Freezer-Menü FINAL KILL
      • Das ist die "gründlichste" Abschaltung. Bei Spielen, die sonst nicht starten und bei denen auch das BASIC-KILL nicht hilft: Normal laden, LIST, SYS-Adresse merken, Freezer aufrufen, FINAL KILL, dann den SYS-Befehl von Hand eingeben.


Funktionen der "Final Cartridge 3"[Bearbeiten | Quelltext bearbeiten]

Alte Version - Aufkleber grün/gelb

Alle zusätzlichen Funktionen sind nur nutzbar, wenn die "Final Cartridge 3" aktiv ist. Das Steckmodul besitzt neben dem Steckleistenanschluss und der roten Modulaktivitäts-LED, noch 2 Taster für die Reset- und eine Freezer-Funktion.

BASIC[Bearbeiten | Quelltext bearbeiten]

Es gibt folgende BASIC-Erweiterungen:

  • Scrollfunktion (runter und hoch) innerhalb eines BASIC-Listings.
  • Drucker-Interface, d.h. Nutzung von Centronics-Druckern unter BASIC V2.
  • Bildschirmausdruck (Hardcopy) mit der Tastenkombination CTRL +RETURN  starten.
  • 30 zusätzliche BASIC-Befehle (siehe nächster Absatz).
  • Per Joystick lässt sich, sofern das BASIC über den Desktop aufgerufen oder BAR ON im BASIC eingegeben wurde, eine Menüleiste mit den neuen BASIC-Befehlen aufrufen.

Neue BASIC-Befehle[Bearbeiten | Quelltext bearbeiten]

Das Menü unter BASIC V2

Die neuen Befehle des FC3 (* = Befehl wurde erweitert):

  • APPEND, ARRAY, AUTO, BAR, DAPPEND, DEL, DESKTOP, DLOAD, DOS", DOS"$, DSAVE, DUMP, DVERIFY, FIND, HELP, KILL, LIST *, MEM, MON, MREAD, MWRITE, OLD, OPEN *, ORDER, PACK, PDIR, PLIST, RENUM, TRACE, TYPE, UNPACK

Erklärung der Befehle:

  • APPEND/DAPPEND - Hängt ein BASIC-Programm von Datasette/Diskette an das aktuelle Programm an
  • ARRAY - listet die Werte aller BASIC-Felder
  • AUTO - Vorgabe der Zeilennummer beim Programmieren aktivieren
  • BAR - aktiviert Auswahlmenü für erweiterte BASIC-Befehle (mit Joystick in Port 2)
  • DEL - löscht Bereiche von BASIC-Programmen z.B. DEL 10-20
  • DESKTOP - aktiviert graphische Benutzeroberfläche
  • DLOAD - Laden eins Programms von Diskette
  • DOS" - Nutzung von Diskettenbefehlen, z.B.:
    • DOS"N:NAME,ID" - Formatieren einer Diskette (anstelle von OPEN 1,8,15,"N:NAME,ID":CLOSE 1)
    • DOS"F:NAME,ID" - Schnellformatierung einer Diskette (FC3-spezifisch)[2]
    • DOS"D:NAME,ID" - Diskettenname ändern (FC3-spezifisch)[2]
    • DOS"9 - ändert die Geräteadresse für DOS auf 9
  • DOS"$ - Anzeige des Disketteninhalts/Directorys (CATALOG in alter Version)
    Nach dem $-Zeichen kann auch ein Dateiselektor (Joker) die Ausgabe filtern.
  • DSAVE - Speichern eines Programms auf Diskette, 6mal schneller als im Normalbetrieb
  • DUMP - listet die Werte aller BASIC-Variablen
  • DVERIFY - Verifizieren eines Programms auf Diskette
  • FIND - sucht Text in einem BASIC-Programm
  • HELP - listet jene BASIC-Zeile auf, die zuletzt einen Fehler verursacht hat
  • KILL - deaktiviert das FC3
  • LIST - Aufhebung des Listschutzes
  • MEM - zeigt die BASIC-Speicherbelegung an
  • MON - aktiviert den Maschinensprache-Monitor
  • MREAD - liest 192 Bytes ab Startadresse, zum Kopieren von Speicherbereichen
  • MWRITE - schreibt 192 Bytes ab Startadresse, -"-
  • OLD - Wiederherstellen eines gelöschten BASIC-Programms nach Reset oder NEW
  • OPEN * - ?
  • ORDER - sortiert die Zeilennummern eines BASIC-Programms nach (D)APPEND
  • PACK - komprimiert ein BASIC-Programm, siehe UNPACK
  • PDIR - druckt Inhaltsverzeichnis der Diskette auf dem Drucker
  • PLIST - druckt BASIC-Programm auf dem Drucker
  • RENUM - nummeriert BASIC-Zeilennummern neu (vergleiche RENUMBER)
  • TRACE - zeigt zur Hilfe bei der Fehlersuche während des Ablaufs eines BASIC-Programms die aktuelle Programmzeile an
  • TYPE - Aktivieren der Direktausgabe der Tastatur auf den Drucker, vgl. CMD
  • UNPACK - entpackt ein mit PACK komprimiertes BASIC-Programm

Funktionstasten[Bearbeiten | Quelltext bearbeiten]

Die Funktionstasten sind im BASIC wie folgt belegt:

Sonstiges[Bearbeiten | Quelltext bearbeiten]

Das Modul hat die Besonderheit, dass es den Interrupt im BASIC-Direktmodus immer auf die Standardroutine zurücksetzt. Viele der zahlreichen kleinen Hilfsprogramme, die sich in den Interrupt einklinken, funktionieren deswegen nicht. Während der Laufzeit eines BASIC-Programms funktionieren aus diesem heraus gestartete Interrupt-Routinen aber auch mit aktivem Modul; dessen Funktionalität steht also auch bei der Entwicklung von BASIC-Programmen mit eingebetteten Maschinenroutinen inklusive Interrupt-Erweiterung zur Verfügung.

Grafische Benutzeroberfläche (Desktop)[Bearbeiten | Quelltext bearbeiten]

Das Hauptmenü nach dem Einschalten

Die Benutzeroberfläche beinhaltet Fenstermenüs und einen Zeiger, der auf 3 Arten bewegt werden kann:

  1. Joystick: beide Controlports möglich
  2. Tastatur: F1 ,F3 ,F5 ,F7  für die Richtungen und =  um auszuwählen.
  3. Maus: Achtung - Bei der alten Version des FC3 funktioniert nur der Joystickmodus (rechte Maustaste der Maus 1351 beim Einschalten gedrückt halten!).

Im Desktop gibt es folgende Menüs:

  • INFO
    • DESKTOP: Anzeige der Autoren und Entwickler der "Final Cartridge 3"
    • VERSION: Anzeige von Herstellerdatum und Versionsnummer der "Final Cartridge 3"


  • SYSTEM
    • BASIC: Wechselt zur herkömmlichen C64-Benutzeroberfläche und beendet den Desktop.
    • FINAL KILL: Schaltet die "Final Cartridge 3" ab.
    • FREEZER: Aktiviert den Freezer
    • REDRAW: Bildschirmaktualisierung


  • PROJEKT
    • NOTEPAD: Aufruf des Notizbuchs (interne Textverarbeitung)
    • DLINK: Reserviert für zukünftige Erweiterungen für Diskettenbetrieb
    • TLINK: Reserviert für zukünftige Erweiterungen für Datasettenbetrieb


  • ULTILITIES
    • PREFERENCES: Einstellungen wie Bildschirmfarbe, Zeigerfarbe, Zeigergeschwindigkeit oder Joystick-Steuerung.
    • BASIC PREFERENCES:
      • KEYBOARD CLICK (De-/aktiviert einen Tastaturton)
      • KEY-REPEAT (De-/aktiviert Tastenwiederholung)
      • CURSOR-BLINK (De-/aktiveren des Cursorblinkens)
      • DEFAULT DEVICE (Geräteadresse zum Laden und Speichern festlegen; 1=Datasette, 8 oder 9 Diskette)
      • BORDER COLOR (ändert Rahmenfarbe), NUMERIC KEYPAD (De-/aktiveren des Ziffertastenblocks am C128 im C64-Modus)
    • CALCULATOR: Aufruf eines einfachen Taschenrechnerprogramms
    • DISK: Aufruf einiger Diskettenfunktionen wie Inhaltsanzeige
      • DIRECTORY (es können max. 3 gleichzeitig angezeigt werden)
        • Je nach Version des FC3 wird unter "DIR" auch das Sortieren des Diskettenverzeichnisses unterstützt
      • RUN (ausgewähltes Programm laden und starten)
      • VALIDATE (Validation der Diskettenorganisation)
      • SCRATCH (Dateilöschung)
      • INITALIZE (Neuerkennung einer Diskette)
      • FAST FORMAT (Formatierung einer Diskette)
      • EMPTY (Diskettenlöschung ohne Formatierung)
      • RENAME (Dateiumbenennung)
      • CHANGE DISKNAME (Diskettenname ändern)
      • READ STATUS (Fehlerkanalsanzeige)
    • TAPE: Aufruf der Kassettenfunktionen SLOW (Programm laden) und FAST (Programmschnelllader, d.h. 10 mal schneller als die normale Ladefunktion).


  • CLOCK:
    • TIME: Anzeige der Zeit in der Menüleiste
    • ALARM: Schaltet die Alarmfunktion ein oder aus.
    • SETTINGS: Einstellen der Digitaluhr (aktuelle Zeit und Alarm)

Freezer[Bearbeiten | Quelltext bearbeiten]

Das Freezer-Menü

Mit der Freezer-Funktion können laufende Programm eingefroren werden und der Speicherinhalt wieder auf Diskette oder Datasette abgespeichert werden. Dies dient u.a. zur Erstellung persönlicher Sicherheitskopien (Backups) oder zum Ausdruck von Bildschirminhalten (Hardcopys) in Schwarz-Weiß oder Farbe. Eine Funktion zur Eingabe von Cheat-POKEs bietet der FC3-Freezer leider nicht an; wenn der Maschinensprachemonitor aus dem Freezer heraus gestartet wird, ist eine Rückkehr in das unterbrochene Programm nicht mehr möglich.[3]

Folgende Menüpunkte existieren:

  • BACKUP
    • Disk (Kopie auf Diskette)
    • Tape (Kopie auf Datasette)
    • FDISK (Schnellkopie auf Diskette)
    • FTAPE (Schnellkopie auf Datasette)


  • GAME
    • Sprite 1 (Verhindert eine Sprite-Sprite-Kollision, sozusagen Schummelfunktion)
    • Sprite 2 (Verhindert eine Sprite-Hintergrund-Kollision, sozusagen Schummelfunktion)
    • Joyswap (Tausch der Joystick-Ports)
    • Autofire (Autoschussfunktion aktivieren, für jeden Joystick geeignet)


  • COLORS
    • BackGnd (Hintergrundfarbe ändern)
    • ForeGnd (Schriftfarbe ändern)
    • Border (Rahmenfarbe ändern)


  • PRINT
    • Settings (Druckeinstellungen)
    • View (Druckvorschau, jedoch können auch Farben geändert werden)
    • PSet (Änderung der Druckerauflösung)


  • RESET
    • Kill ("Final Cartdrige 3" wird deaktiviert)
    • Zero Fill (Reset mit Speichersäuberung wird durchgeführt)
    • CBM 64 (der C64 wird in den Urzustand zurück gesetzt)


  • EXIT (beendet den Freezer)
    • Run (Programm wird fortgesetzt)
    • Monitor (Das Monitor-Programm wird aufgerufen)
    • Desktop (Rückkehr zur Benutzeroberfläche der "Final Cartridge 3")

Monitor[Bearbeiten | Quelltext bearbeiten]

Die "Final Cartridge 3" besitzt einen Monitor, das als Maschinensprache-, Disketten-, Zeichen- und Sprite-Monitor genutzt werden kann. Im Monitor können nur die Funktionstasten F3 , F5  und F7  genutzt werden. Er besitzt folgende Funktionen:

  • .A Assemblieren
  • .B ROM-Bank-Auswahl[2]
  • .C Vergleichen
  • .D Disassemblieren
  • .EC Ausgabe in Zeichendarstellung
  • .ES Ausgabe in Sprite-Darstellung
  • .F Füllen des Speichers
  • .G Starten eines Maschinenprogramms
  • .H Speicherdurchsuchung
  • .I Texteingabe
  • .L Laden eines Maschinenprogramms
  • .M Speicherdarstellung
  • .O Umschalten zwischen RAM und ROM
  • .OD Aufruf des Diskettenmonitors
  • .P Einschalten der Druckerausgabe
  • .R Registerdarstellung
  • .S Speichern eines Speicherbereichs
  • .T Transport eines Speicherbereichs innerhalb des RAM-Speichers
  • .X Monitor beenden
  • .# Dezimalzahl in Hexadezimal
  • .$ Hexadezimal in Dezimalzahl
  • .@ Diskettenbefehlen nutzen (wie DOS")
  • .*R Disk-Monitor-Befehl: Lesen eines Sektors
  • .*W Disk-Monitor-Befehl: Schreiben eines Sektors

Ein Debugger ist leider nicht im Monitor integriert.

Eine genaue Erklärung der Befehle gibt es im Handbuch (siehe Weblinks).

Die Hardware[Bearbeiten | Quelltext bearbeiten]

Die neue (27PC512) und die alte Platine (2×27PC256)

Die Hardware des FC3 hat mehrere Funktionen. Zum einen soll natürlich der Zugriff auf das 64 KByte große ROM ermöglicht werden. Hierzu ist ein Register bei der Adresse $DFFF im IO2-Bereich des C64 vorhanden, welches die Kontrolle über das Einblenden von 16-KByte- oder 8-KByte-Bereichen des ROMs in den C64-Speicher erlaubt, sowie die Auswahl von 16-KByte-Bänken aus dem 64-KByte umfassenden FC3-ROM.

Um diese Funktionen zur Verfügung zu stellen, sind in dem Register Bits zur Kontrolle der GAME- und EXROM-Leitungen am Expansionsport des C64, der Adressleitungen A15 und A14 des EPROMs sowie der LED des Cartridges vorhanden.

Aufbau des Banking-Registers[4]:

Bits:

0 - A14
1 - A15
2 - unused
3 - unused
4 - EXROM (0=low=active)
5 - GAME (0=low=active)
6 - NMI (0=low=active)
7 - Hide this register (1 = hidden, LED off)

Mit A14 und A15 lässt sich die einzublendende 16k-Bank auswählen. A14 und A15 lassen sich indirekt über $DE00 auslesen. Zwar ist dort kein Register vorhanden, jedoch enthält das FC3-ROM dort den Wert, der im $DFFF-Register unter normalen Bedingungen stehen würde.

Es gibt grundsätzlich zwei Hardware-Versionen. Die neue Platine (27512-ROM/EPROM-Version) enthält folgende TTL-Bausteine: 74LS14, 74LS174, 74LS163, 74LS133 und 74LS09. Auf der älteren Platine, die zwei 27256-ROMs enthält, ist noch ein zusätzlicher 74LS00 TTL-Baustein verbaut.

Technik des Schnellladers[Bearbeiten | Quelltext bearbeiten]

Der Floppy-Schnelllader des FC3 funktioniert in etwa in folgenden Schritten.[5]

  • LOAD lädt die ersten beiden Bytes (die Ladeadresse) der jeweiligen Datei mit den normalen CBM-Routinen.
  • Deutet die Ladeadresse auf einen Autostart hin? Falls ja, wird mit normalen CBM-Routinen fortgefahren.
  • Ansonsten wird ein kleines Hilfsprogramm zur Floppy transferiert, das die FC3-spezifischen Schnellladeroutinen enthält.
  • Das Hilfsprogramm liest die ersten beiden Bytes aller Sektoren der aktuellen Spur ein.
    • Dabei handelt es sich um die Verkettungszeiger der Sektoren; mit diesen Informationen lässt sich ableiten, welche Sektoren zur Datei gehören, die geladen werden soll, und welcher Sektor den wievielten Block innerhalb der Datei repräsentiert (im Weiteren: Ordnungsnummer des Blocks).
  • Das Hilfsprogramm liest die Sektoren der aktuellen Spur, sofern sie zur Datei gehören, führt die GCR-Dekodierung aus und schickt die Blöcke versehen mit ihrer Ordnungsnummer zum C64.
    • Dabei können die Blöcke der Datei durchaus in "verwürfelter" Reihenfolge beim C64 ankommen, je nachdem, mit welchem Interleave die Datei geschrieben wurde. Der Code des Schnellladers auf C64-Seite legt die eingehenden Daten anhand der ebenfalls übermittelten Ordnungsnummer direkt an der richtigen Stelle im RAM ab.

Der Schnelllader des Action Replay 6 funktioniert ähnlich, ist aber noch etwas schneller, weil er Teile der GCR-Dekodierung geschickt in Wartezeiten des Floppy-Codes integriert und auch die erstmalige Übertragung des Schnelllader-Codes zur Floppy beschleunigt[6].

Kompatibilität zu neuerer Hardware wie dem SD2IEC[Bearbeiten | Quelltext bearbeiten]

Das SD2IEC erkennt und unterstützt den Schnelllader des FC3. Entsprechend funktioniert das SD2IEC sowie die damit häufig benutzten Filebrowsern wie etwa dem CBM-Browser oder dem SD2BRWSE mit dem FC3 zusammen. Das bedeutet, der Schnelllader des FC3 bleibt in diesen Browsern erhalten, und Software wird dementsprechend schnell geladen. Dies klappt bei allen Einzeldateien, wie etwa PRGs, bei etwa 90 % der m2i-Dateien und auch bei denjenigen Nachladespielen auf einem d64 oder d81, die keinen eigenen Schnelllader benutzen. Falls ein Nachladespiel nicht mit dem FC3-Schnelllader zurechtkommen sollte, kann man auch die erste Datei mit dem FC3-Schnelllader laden und dann im C64-Basic den Befehl "kill" eingeben, bevor man das File mit "RUN" startet. Dadurch wird das FC3 abgeschaltet, und der Rest des Ladevorgangs wird mit normaler Ladegeschwindigkeit fortgesetzt.

Weblinks[Bearbeiten | Quelltext bearbeiten]

WP-W11.png Wikipedia: The Final Cartridge 3

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. 64'er; Ausgabe 03/1991, S.18
  2. 2,0 2,1 2,2 Final Cartridge III Undocumented Functions auf pagetable.com von Michael Steil Sprache:englisch
  3. Thema: Final Cartridge III CR auf Forum64.de und Thema: Final Cartridge III 101% firmware: Verbesserte FC3 Firmware auf Forum64.de mit Details zur technischen Umsetzung des Freezers
  4. final3.c-Quelltextdatei von VICE Sprache:englisch
  5. fc3-protocol.txt Sprache:englisch - im Rahmen des sd2iec-Projekts entstandene Dokumentation des FC3-Schnelllader-Protokolls.
  6. Thema: Funktionsweise Fastloader FC3/AR6 auf Forum64.de