Petcat
Petcat | |
---|---|
Entwickler | VICE Team |
Release | 2.22 (VICE 3.1) |
Lizenz | GPL |
Plattform(en) | PC (Windows), Linux |
Genre | Entwicklungssystem |
Steuerung | |
Medien | Download bei VICE |
Sprache(n) |
Petcat ist ein Programm zur Umwandlung von PET-ASCII zu Standard-ASCII und zurück.
Es kann dazu genutzt werden, BASIC-Programme (PRG) in PC-kompatible TXT-Dateien zu wandeln, um diese dann mit einen beliebigen Editor zu bearbeiten.
Petcat unterstützt verschiedene BASIC-Versionen und auch BASIC-Erweiterungen (z.B. Simons' Basic). Das Programm ist im Download-Paket von VICE enthalten.
Die folgenden Informationen beziehen sich auf Petcat (VICE 3.6.0).
Syntax: petcat [-c|-nc] [-h|-nh] [-text|-<version>|-w<version>] [-skip <bytes>] [-l <hex>] [--] [file list] [-k[<version>]]
Parameter[Bearbeiten | Quelltext bearbeiten]
-help -? Hilfe-Informationen anzeigen -version Version anzeigen -v Verbose-Modus ein (mit Fehlerinformationen) -c Controls ein (interpretiert auch Control-Codes) <default im Textmodus> -nc Controls aus (unterdrückt Control-Codes in der Ausgabe) <default im Nicht-Textmodus> -ic Interpretiere Control-Codes unabhängig von Groß-/Kleinschreibung -qc Konvertiert alle nicht alphanumerischen Zeichen inerhalb von Anführungszeichen in Control-Codes -d Dezimale Ausgabe von "Raw-Codes" -h Header schreiben <default bei Ausgabe "stdout"> -nh Nicht Header schreiben <default bei Ausgabe in Datei> -skip <n> Skip: Übergehe <n> Bytes zu Beginn der Eingabe-Datei. Wird ignoriert bei P00. -text Text Mudus erzwingen -<version> Benutze Schlüsselwörter für <version> statt der von v7.0 -w<version> Wandle in Token mit Schlüsselwörtern der angegebenen Basic-Version. -k<version> list all keywords for the specified Basic version -k list all Basic versions available. -l Lade-Adresse des Programms festlegen (hexadezimal, aber ohne führendes Zeichen wie "$"!). -o <name> Output: Name der Ausgabedatei -f Force: erzwingt überschreiben der Ausgabedatei Der Default-Wert hängt ab von der BASIC-Version.
Basic-Versionen[Bearbeiten | Quelltext bearbeiten]
Version | Beschreibung |
---|---|
10 | Basic v10.0 (C65/C64DX) |
1p | Basic v1.0 (PET) |
2 | Basic v2.0 (C64/VIC20/PET) |
3 | Basic v3.5 (C16) |
40 | Basic v4.0 (PET/CBM2) |
4e | Basic v2.0 with Basic v4.0 extension (C64) |
4v | Basic v2.0 with Basic v4.0 extension (VIC20) |
5 | Basic v2.0 with Basic v5.0 extension (VIC20) |
65 | Basic v65.0 (Mega65) |
70 | Basic v7.0 (C128) |
71 | Basic v7.0 with Basic v7.1 externsion (C128) |
a | Basic v2.0 with @Basic (C64) |
bk | Basic v2.0 with Kipper Basic (C64) |
blarg | Basic v2.0 with Blarg (C64) |
bob | Basic v2.0 with Basic on Bails (C64) |
bsx | Basic v2.0 with Basex (C64) |
bwarsaw | Basic v2.0 with Warsaw Basic (C64) |
bws | Basic v2.0 with WS Basic (C64) |
bwsf | Basic v2.0 with WS Basic final (C64) |
drago | Basic v2.0 with Drago Basic v2.2 (C64) |
easy | Basic v2.0 with Easy Basic (VIC20) |
eve | Basic v2.0 with Eve Basic (C64) |
exp20 | Basic v2.0 with Expanded Basic (VIC20) |
exp64 | Basic v2.0 with Expanded Basic (C64) |
f | Basic v2.0 with Final Cartridge III (C64) |
game | Basic v2.0 with Game Basic (C64) |
graph | Basic v2.0 with Graphics Basic (C64) |
handy | Basic v2.0 with Handy Basic v1.0 (VIC20) |
lightning | Basic v2.0 with Basic Lightning (C64) |
magic | Basic v2.0 with Magic Basic (C64) |
mighty | Basic v2.0 with Mighty Basic (VIC20) |
pegasus | Basic v2.0 with Pegasus Basic v4.0 (C64) |
reu | Basic v2.0 with REU-Basic (C64) |
simon | Basic v2.0 with Simons' Basic (C64) |
speech | Basic v2.0 with Speech Basic v2.7 (C64) |
superbas | Basic v2.0 with Super Basic (C64) |
superexp | Basic v2.0 with Super Expander (VIC20) |
supergra | Basic v2.0 with Supergrafik 64 (C64) |
sxc | Basic v2.0 with Super Expander Chip (C64) |
tt64 | Basic v2.0 with The Tool 64 (C64) |
turtle | Basic v2.0 with Turtle Basic v1.0 (VIC20) |
ultra | Basic v2.0 with Ultrabasic-64 (C64) |
xbasic | Basic v2.0 with Xbasic (C64) |
Anwendungsbeispiele[Bearbeiten | Quelltext bearbeiten]
petcat -2 -o outputfile.txt -- inputfile.prg Token in Text wandeln, konvertiert inputfile.prg in eine Textdatei In outputfile.txt wird nur BASIC V2 benutzt petcat -wsimon -o outputfile.prg -- inputfile.txt In Token wandeln, konvertiert inputfile.txt in eine PRG-Datei In outputfile.prg wird zusätzlich Simons' BASIC benutzt petcat -text -o outputfile.txt -- inputfile.seq Konvertiert inputfile.seq in die Ascii Textdatei outputfile.txt. petcat -text -w2 -o outputfile.seq -- inputfile.txt Konvertiert inputfile.txt in eine sequentlelle Petscii Textdatei outputfile.seq.
BASIC V2 umwandeln unter Windows[Bearbeiten | Quelltext bearbeiten]
Die im folgenden in Anführungszeichen gesetzten Befehlszeilen werden im Kommandozeilenfenster von Windows eingegeben. Dieses wird mit START -> AUSFÜHREN -> "CMD" aufgerufen.
Am besten erstellt man ein neues Verzeichnis, in dem man dann eine Verknüpfung mittels CMD (cmd.exe) anlegt und petcat.exe (gegebenenfalls die erforderliche DLL-Datei zlib1.dll) sowie die umzuwandelnde PRG-Datei hinein kopiert.
- Für die PRG->TXT Umwandlung muss man
"petcat -2 -o OUT.TXT -- IN.PRG" schreiben.
OUT.TXT durch den Namen der zu erstellenden TXT-Datei ersetzen, für IN.PRG den Namen der umzuwandelnden PRG-Datei einsetzen. - Für die TXT->PRG Rückwandlung schreibt man
"petcat -w2 -o OUT.PRG -- IN.TXT".
IN.TXT durch den Namen der umzuwandelnden TXT-Datei ersetzen, für OUT.PRG den Namen der zu erstellenden PRG-Datei einsetzen.
Beim Editieren ist zu beachten, dass Zeilennummern zwar geändert werden dürfen, diese aber unbedingt in aufsteigender Reihenfolge bleiben müssen, bzw. gegebenenfalls per Hand sortiert werden müssen, um später ein lauffähiges Programm zu erhalten. Außerdem muss alles klein geschrieben sein!
Eine Umwandlung in Kleinbuchstaben ist z.B. mit Notepad++ bequem möglich.
Benutzung von Batch-Dateien[Bearbeiten | Quelltext bearbeiten]
Wer Eingeben im Kommandozeilenfenster nicht komfortabel findet, kann die Möglichkeit nutzen, mit Batch-Dateien zu arbeiten. Die folgenden Dateien benutzen die Variable %1 für die Eingabedatei. Zieht man z.B. "filename.txt" per Drag-And-Drop auf die Batchdatei "txt2prg.bat", so wird diese ausgeführt und "filename.prg" erzeugt.
- Basic V2
- prg2txt.bat:
@echo off set fn=%~n1 petcat -2 -o %fn%.txt -- %1 pause
- txt2prg.bat:
@echo off set fn=%~n1 petcat -w2 -o %fn%.prg -- %1 pause
- Simons' Basic
- prg2txt_sb.bat:
@echo off set fn=%~n1 petcat -simon -o %fn%.txt -- %1 pause
- txt2prg_sb.bat:
@echo off set fn=%~n1 petcat -wsimon -o %fn%.prg -- %1 pause
Beachten: Dateinamen dürfen dabei keine Leerzeichen enthalten.
BASIC V2 umwandeln unter Unix[Bearbeiten | Quelltext bearbeiten]
Unter Unix ist es ebenso möglich, mit Petcat BASIC-Programme umzuwandeln:
- Zuerst ein Terminal-Fenster öffnen und wie bei Windows empfohlen, ein eigenes Verzeichnis erstellen.
- Auch hier gilt, dass der BASIC-Text in Kleinbuchstaben vorliegen muss, was mit "tr '[:upper:]' '[:lower:]'< IN.BAS > OUT.BAS" einfach zu machen ist.
- Umwandeln geht dann mit den gleichen Befehlen wie unter Windows im Kommandozeilenfenster.
Nicht druckbare Zeichen[Bearbeiten | Quelltext bearbeiten]
Das Programm ersetzt ein nicht druckbares Zeichen durch einen bestimmten Control-Code, der immer in geschweiften Klammern angegeben wird. Beispiel: {clr} für CHR$(147), {SHIFT-*} für CHR$(192). Alle Zeichen (auch die druckbaren) können als dezimaler oder hexadezimaler Code in geschweiften Klammern eingegeben werden, z.B. {147} oder {$93}.
Einige Zeichen sind durch mehrere Control-Codes repräsentiert. Damit kann Petcat Textdateien lesen, die von anderen Programmen erzeugt wurden, wie z.B. TOK64, 64'er Checksummer V3 oder dem Tool der finnischen Computerzeitschrift MikroBITTI. Mit der Option -ic werden beim Konvertieren von Programmen in Textdateien alle enthaltenen Control-Codes klein geschrieben.
Wird ein Control-Code mehrfach aufeinanderfolgend benutzt, so bietet Petcat eine Möglichkeit zur Abkürzung durch eine vorangestellte Zahl.
Beispiel: {3 down}
oder auch {3down}
steht für {down}{down}{down}
PETSCII- Code |
Petcat Bezeichnung |
Petcat Alternativen |
Basic 3.5 | Bemerkungen |
---|---|---|---|---|
1 | {CTRL+A} | |||
2 | {CTRL+B} | Unterstreichen ein (C128) | ||
3 | {stop} | Programmabbruch (nur bei Eingabe über Tastatur) | ||
4 | {CTRL+D} | |||
5 | {wht} | {white}, {WHT}, {WHITE} | Zeichenfarbe Weiß | |
6 | {CTRL+F} | |||
7 | {CTRL-G} | Ausgabe Biepton (auf C128) | ||
8 | {dish} | {up/lo lock on} | + aus | |
9 | {ensh} | {up/lo lock off} | + ein (C64), vorrücken zu Tabulatorposition (C128) | |
10 | {$0a} | Zeilenvorschub (Linefeed) | ||
11 | {CTRL+K} | + aus (C128) | ||
12 | {CTRL+L} | + ein (C128) | ||
13 | {return} | {RETURN} | Eingabe abschließen, Cursor auf Anfang neue Zeile | |
14 | {swlc} | {lower case] | Groß-/Kleinschrift ein | |
15 | {CTRL+O} | Blinken ein (C128) | ||
16 | {CTRL+P | |||
17 | {down} | {DOWN} | Cursor eine Zeile runter | |
18 | {rvon} | {reverse on}, {REVERSE ON}, {RVS ON}, {RVSON} | Reversmodus / Invertieren EIN | |
19 | {home} | {HOME} | Cursor in linke, obere Ecke positionieren | |
20 | {del} | {delete}, {DEL} | Zeichen links vom Cursor löschen | |
21 | {CTRL+U} | |||
22 | {CTRL+V} | |||
23 | {CTRL+W} | |||
24 | {CTRL+X} | Tabulator setzen/löschen (C128) | ||
25 | {CTRL+Y} | |||
26 | {CTRL+Z} | |||
27 | {esc} | Einleitung Escape-Sequenz (C128) | ||
28 | {red} | {RED} | Zeichenfarbe Rot | |
29 | {right} | {rght}, {RIGHT} | Cursor eine Position nach rechts | |
30 | {grn} | {green}, {GRN}, {GREEN} | Zeichenfarbe Grün | |
31 | {blu} | {blue}, {BLU}, {BLUE} | {dblu} | Zeichenfarbe Blau |
32 | {space} | {SPACE} | Leerzeichen | |
129 | {orng} | {orange}, {ORANGE} | Zeichenfarbe Orange | |
130 | {flon} | |||
132 | {flof} | |||
133 | {f1} | {F1} | Funktionstaste 1 | |
134 | {f3} | {F3} | Funktionstaste 3 | |
135 | {f5} | {F5} | Funktionstaste 5 | |
136 | {f7} | {F7} | Funktionstaste 7 | |
137 | {f2} | {F2} | Funktionstaste 2 | |
138 | {f4} | {F4} | Funktionstaste 4 | |
139 | {f6} | {F6} | Funktionstaste 6 | |
140 | {f8} | {F8} | {help} | Funktionstaste 8 |
141 | {shift return} | {sret} | Cursor an Anfang neuer Zeile positionieren | |
142 | {swuc} | {upper case} | Schaltet Groß-/Grafikschrift ein | |
144 | {blk} | {black}, {BLK}, {BLACK} | Zeichenfarbe Schwarz | |
145 | {up} | {UP} | Cursor eine Position nach oben | |
146 | {rvof} | {reverse off}, {RVS OFF}, {RVSOFF} | Reversmodus / Inventieren AUS | |
147 | {clr} | {CLR} | Löscht Bildschirm | |
148 | {inst} | {INST} | Fügt 1 Zeichen ein und verschiebt Text nach rechts | |
149 | {brn} | {brown}, {BROWN} | Zeichenfarbe Braun | |
150 | {lred} | {pink}, {LT.RED}, {LIG.RED} | Zeichenfarbe Hellrot | |
151 | {gry1} | {dark gray}, {GREY1}, {GREY 1} | {pink} | Zeichenfarbe Grau 1 / Dunkelgrau |
152 | {gry2} | {gray}. {GREY2}. {GREY 2} | {blgn} | Zeichenfarbe Grau 2 |
153 | {lgrn} | {lt green}, {light green}, {LIG.GREEN} | {lblu} | Zeichenfarbe Hellgrün |
154 | {lblu} | {light blue}, {LT.BLUE}, {LIG.BLUE} | Zeichenfarbe Hellblau | |
155 | {gry3} | {light gray}, {GREY3}, {GREY 3} | {lgrn} | Zeichenfarbe Grau 3 / Hellgrau |
156 | {pur} | {purple} | Zeichenfarbe Violett | |
157 | {left} | Cursor eine Position nach links | ||
158 | {yel} | {yellow} | Zeichenfarbe Gelb | |
159 | {cyn} | {cyan} | Zeichenfarbe Türkis | |
160 | {SHIFT SPACE} | geshiftetes Leerzeichen | ||
161 | {CBM-K} | Grafikzeichen | ||
162 | {CBM-I} | Grafikzeichen | ||
163 | {CBM-T} | Grafikzeichen | ||
164 | {CBM-@} | Grafikzeichen | ||
165 | {CBM-G} | Grafikzeichen | ||
166 | {CBM-+}] | Grafikzeichen | ||
167 | {CBM-M} | Grafikzeichen | ||
168 | {CBM-POUND} | Grafikzeichen | ||
169 | {SHIFT-POUND} | Grafikzeichen | ||
170 | {CBM-N} | Grafikzeichen | ||
171 | {CBM-Q} | Grafikzeichen | ||
172 | {CBM-D} | Grafikzeichen | ||
173 | {CBM-Z} | Grafikzeichen | ||
174 | {CBM-S} | Grafikzeichen | ||
175 | {CBM-P} | Grafikzeichen | ||
176 | {CBM-A} | Grafikzeichen | ||
177 | {CBM-E} | Grafikzeichen | ||
178 | {CBM-R} | Grafikzeichen | ||
179 | {CBM-W} | Grafikzeichen | ||
180 | {CBM-H} | Grafikzeichen | ||
181 | {CBM-J} | Grafikzeichen | ||
182 | {CBM-L} | Grafikzeichen | ||
183 | {CBM-Y} | Grafikzeichen | ||
184 | {CBM-U} | Grafikzeichen | ||
185 | {CBM-O} | Grafikzeichen | ||
186 | {SHIFT-@} | Grafikzeichen | ||
187 | {CBM-F} | Grafikzeichen | ||
188 | {CBM-C} | Grafikzeichen | ||
189 | {CBM-X} | Grafikzeichen | ||
190 | {CBM-V} | Grafikzeichen | ||
191 | {CBM-B} | Grafikzeichen | ||
192 | {SHIFT-*} | Grafikzeichen | ||
193 | {SHIFT-A} | Grafikzeichen | ||
194 | {SHIFT-B} | Grafikzeichen | ||
195 | {SHIFT-C} | Grafikzeichen | ||
196 | {SHIFT-D} | Grafikzeichen | ||
197 | {SHIFT-E} | Grafikzeichen | ||
198 | {SHIFT-F} | Grafikzeichen | ||
199 | {SHIFT-G} | Grafikzeichen | ||
200 | {SHIFT-H} | Grafikzeichen | ||
201 | {SHIFT-I} | Grafikzeichen | ||
202 | {SHIFT-J} | Grafikzeichen | ||
203 | {SHIFT-K} | Grafikzeichen | ||
204 | {SHIFT-L} | Grafikzeichen | ||
205 | {SHIFT-M} | Grafikzeichen | ||
206 | {SHIFT-N} | Grafikzeichen | ||
207 | {SHIFT-O} | Grafikzeichen | ||
208 | {SHIFT-P} | Grafikzeichen | ||
209 | {SHIFT-Q} | Grafikzeichen | ||
210 | {SHIFT-R} | Grafikzeichen | ||
211 | {SHIFT-S} | Grafikzeichen | ||
212 | {SHIFT-T} | Grafikzeichen | ||
213 | {SHIFT-U} | Grafikzeichen | ||
214 | {SHIFT-V} | Grafikzeichen | ||
215 | {SHIFT-W} | Grafikzeichen | ||
216 | {SHIFT-X} | Grafikzeichen | ||
217 | {SHIFT-Y} | Grafikzeichen | ||
218 | {SHIFT-Z} | Grafikzeichen | ||
219 | {SHIFT-+} | Grafikzeichen | ||
220 | {CBM--} | Grafikzeichen | ||
221 | {SHIFT--} | Grafikzeichen | ||
222 | {SHIFT-^} | {CBM-^} | Grafikzeichen (^ = Pfeil hoch) | |
223 | {CBM-*} | Grafikzeichen |
Weblinks[Bearbeiten | Quelltext bearbeiten]
- petcat im Vice Manual Optionen und Beispiele des Kommandozeilen-Werkzeugs
- BASIC-Tokens Liste der von Petcat unterstützten BASIC-Tokens
- petcat controlcodes, petcat controlcodes 3.5
- C source code bei sourceforge
- GUI-Projekt von Endurion im Thema: Windows-Frontend für PETCAT? auf Forum64.de