FE3:Handbuch/Firmware/Wedge

Aus
Wechseln zu: Navigation, Suche


FE3 Wedge (Befehlserweiterung)

Die FE3 Wedge ist Bestandteil der internen FE3 Firmware. Sie ist im EEPROM der FE3 gespeichert und steht sofort nach dem Einschalten des VC-20 zur Verfügung.
Dieses kleine Hilfsprogramm erweitert den Befehlssatz des VC-20 um etliche hilfreiche Befehle und bietet darüber hinaus noch weitere Funktionalität.

--Liste der FE3 Wedge Befehle--


Funktionsumfang

  • die Wedge ist verschiebbar in verschiedene Speicherbereiche


Fe3wedge.png



Befehlserweiterung

Diese zusätzlichen Befehle erleichtern die Bedienung des VC-20 und der Speichergeräte (SD2IEC und Diskettenlaufwerk).


Floppy Kurzbefehle

Für die Behandlung von Dateien gibt es folgende neuen Kurzbefehle bestehend aus nur einem Zeichen.

Das Argument für die Kurzbefehle kann entweder **frei stehen** oder **in Anführungszeichen** gesetzt werden.

Wenn das Anführungszeichen an der 4 Stelle steht (gewöhnlich bei Directory Einträgen), dann werden alle Zeichen davor ignoriert. Diese **Sonderbehandlung** hat einen Grund: Man kann dadurch sehr einfach Dateien aus einem Directory Listing direkt verwenden, ohne dass man erst irgendwelche Zeichen löschen muss. Man listet also zB. das Directory mit $, dann bewegt man den Cursor nach oben bis zur gewünschten Datei, schreibt zB. ein / für LOAD und bestätigt mit Return ...

 * **$** ... Das Dollarzeichen listet das Directory des eingestellten Laufwerk.
 * **@** ... Das "at" Zeichen sendet ein Kommando zur Floppy (zb: S:, N:, I: ...). Ohne Argument wird der Floppy Status gelesen und angezeigt.
 * **#** ... Mit diesem Zeichen wird die aktuelle Gerätenummer gesetzt oder angezeigt. Erlaubt sind Gerätenummern 8 bis 15. Standardwert ist 8.
 * **/** ... Kürzel für den LOAD Befehl. Geladen wird die Datei mit SA=0, also ein BASIC Programm. 
 * **%** ... Kürzel für den LOAD Befehl. Geladen wird die Datei mit SA=1, also ein Programm ab gespeicherter Ladeadresse. Durch die Angabe einer Ladeadresse nach dem zweiten Hochkomma wird in den Cartridge Lademodus geschaltet (SA=2). Dabei wird die Datei als Cartridge angesehen, also eine Datei ohne Startadresse.
 * **** ... Der Pfeil nach links ist das Kürzel für den SAVE Befehl. 
 * **>** ... Kürzel für den VERIFY Befehl. Die Datei wird mit dem Speicherinhalt verglichen, als Ergebnis wird entweder OK (gleich) oder VERIFY ERROR (ungleich) ausgegeben.


Sonstige Befehle

Die Befehle können nur im Direktmodus verwendet werden, also nicht in einem BASIC Programm. Die Befehle lassen sich wie alle Befehle im VC-20 abkürzen, indem man den letzten Buchstaben mit gehaltener Shifttaste eingibt.

 * **,** ... Der Beistrich ist ein Befehl zur Zahlenumrechnung (Mini Taschenrechner).
 * **RESET** ... Löst einen Reset aus. 
 * **BLK** ... Dieser Befehl macht das selbe wie BLKP und ist nur noch aus Kompatibilität vorhanden.  
 * **BLKP** ... Der Befehl veranlasst die FE3 Hardware einen Speicherblock gegen überschreiben zu schützen.
 * **BLKD** ... Der Befehl veranlasst die FE3 Hardware einen Speicherblock zu deaktivieren. 
 * **NOIO** ... Der Befehl schaltet die beiden Register der FE3 ab. 
 * **OFF** ... Schaltet die FE3 Wedge ab. 
 * **KILL** ... Schaltet die FE3 Wedge ab. Zusätzlich werden die FE3 Register gesperrt (NOIO).
 * **UNNEW** ... Ein mit NEW oder durch einen Reset gelöschtes Programm wird wieder hergestellt.
 * **OLD** ... Das selbe wie UNNEW.
 * **RENUM** ... das Programm im BASIC Speicher wird ganz oder teilweise neu nummeriert (wird implementiert mit Release r021)
 * **FIND** ... das Programm im BASIC Speicher wird durchsucht nach Zeichenfolgen (wird implementiert mit Release r021)
 * **DEL** ... in dem Programm im BASIC Speicher wird ein Zeilenbereich gelöscht (wird implementiert mit Release r021)


Die zusätzlichen Befehle funktionieren nur, solange die FE3 Wedge aktiv ist.
Wenn die FE3 Wedge ausgeschaltet ist (zB. nach dem KILL Befehl), kommt eine Fehlermeldung (Syntax Error).

Fe3wedge05.png


Verbesserung von Standard Befehle


LOAD und SAVE

Die FE3 Wedge bietet JiffyDOS-kompatibles laden und speichern (SJLOAD/SJSAVE). Das funktioniert auch bei allen Funktionen der internen Firmware, wie zB. im FE3 Diskloader.

Neben dem beschleunigten Zugriff auf Dateien bietet die FE3 Wedge noch weitere Vorteile:

  • Anzeige der Start- und Endadresse beim Laden und Speichern von Programmen
  • Laden von Dateien ohne Startadresse (Cartridge Code) durch Angabe der SA (sekundär Adresse) 2
  • Laden von Dateien auf eine bestimmte Startadresse durch Angabe der SA 1 und einer gewünschten Ladeadresse
  • Speichern von Dateien aus einem bestimmten Speicherbereich durch Angabe der Start- und Endadresse


Beispiele:

LOAD "CARTRIDGE",8,2,$A000

LOAD "CARTRIDGE",8,1,$2000

SAVE "CARTRIDGE",8,1,$2000,$4000


PRINT

Da der PRINT Befehl die normale Formelauswertung vom BASIC verwendet, funktioniert hier nun auch die Zahlen Notation in Hex- und Binärzahlen.


Beispiele:

PRINT $2045

PRINT %10101111

PRINT 2 * %10101111 + $0300


Beschleunigter Dateizugriff

Der beschleunigte Zugriff auf Dateien wird durch den Einsatz von Jiffy kompatiblen Routinen erreicht. Jiffy DOS ist ein der beliebtesten seriellen Schnelllader. Die Befehle LOAD und SAVE funktionieren um den Faktor 6 bis 10 schneller als mit normalen IEC Routinen. Bei dem SD2IEC ist die Steigerung der Geschwindigkeit vorallem bei kleinen Dateien noch viel drastischer, weil da keine Motor Vorlauf- und Sektor Suchzeiten anfallen.

Job normale 1541 Jiffy 1541 SD2IEC
LOAD 48 Blöcke 21,8s 6,5s 2,2s
SAVE 48 Blöcke 26,4s 16,1s 7,5s

Aber nicht nur LOAD und SAVE werden durch die FE3 Wedge beschleunigt. Nahezu alle Dateizugriffe die über das Kernel gemacht werden sind um ein vielfaches schneller. Das liegt daran dass die Wedge alle betreffenden Vektoren im VC-20 ändert: CHKIN,CKOUT,BSOUT,BASIN,CLALL,CLRCH

Es werden Zugriffe auf alle Jiffy kompatiblen Laufwerke beschleunigt, inklusive dem internen SD2IEC also allen Zugriffen auf die SD Karte. Normale (nicht auf Jiffy umgebaute) Disketten Laufwerke laufen nur mit normaler Geschwindigkeit.

Wenn die Wedge im unteren Speicherbereich liegt (Block 0), ist der beschleunigte Zugriff nicht aktiviert. Diese abgemagerte Version der FE3 Wedge bietet diese Funktionalität nicht, weil im Block 0 nur Platz für 3K Code ist.


Formel Auswertung

Wo immer numerische Ausdrücke ausgewertet werden (auch während der Ausführung eines BASIC Programm), können nun auch binäre und hexadezimale Zahlen verwendet werden. Egal ob es eine Zuweisung, ein PRINT Befehl oder der Parameter bei einem Befehl ist, überall kann man nun deziamle wie hexadeziamle Zahlen verwenden. Die Zahlensystem können auch beliebig vermischt werden.

Hexadeziamle Zahlen müssen ein Dollarzeichen ($) voran gestellt haben. Die Zahl muss exakt 2 oder 4 stellig sein. Kommazahlen sind unzulässig. Die verwendbaren Zeichen sind 0 bis 9 und A bis F.

Binäre Zahlen müssen ein Prozentzeichen (%) voran gestellt haben. Die Zahl muss exakt 2 oder 4 stellig sein. Kommazahlen sind unzulässig. Die verwendbaren Zeichen sind 0 und 1.

Beispiele:

A = %0111 + $2C * 9

PRINT $2F - 14

POKE $A077,%10001011


Mit aktiver FE3 Wedge funktionieren binäre (%) und Hexdezimale ($) Zahlen.
Wenn die FE3 Wedge ausgeschaltet ist (zB. nach dem KILL Befehl), funktionieren nur noch dezimale Zahlen.


Im Speicher verschiebbar

Die FE3 Wedge liegt normalerweise im geschützten RAM auf Block 5. Block 5 ist vom BASIC des VC-20 nicht nutzbar, deshalb bietet sich dieser Speicherbereich dafür an.

Wenn man im RAM Manager jedoch den vollen Speicherausbau wählt (F1, F7), dann läuft eine abgemagerte Version der FE3 Wedge im unteren 3K Block (Block 0). Diese Version der FE3 Wedge hat einen eingeschränkten Befehlssatz, weil im Block 0 nur Platz für 3K Code ist.

\\ __**Neu ab Release 021:**__

Die Wedge im LoMem hat nun den **vollen Funktionsumfang**.

Wenn der Block 5 für RAM eingestellt wird, dann reserviert sich die FE3 Wedge den 3K Bock (LoMem, Block 0). Der 3K Block wird gegen überschreiben geschützt, damit die Wedge nicht versehentlich überschrieben wird.

Die Wedge liegt nun immer auf Block 5 im ROM, das allerdings ausgeblendet ist. Im geschützten LoMem befindet sich nur kleine Routinen (Stub) die das ROM im Block 5 aktivieren und danach die Wedge Funktion ausführen.