Petcat

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Petcat
PETCAT Aufrufoptionen
Entwickler VICE Team
Release 2.22 (VICE 3.1)
Lizenz GPL
Plattform(en) PC (Windows), Linux
Genre Entwicklungssystem
Steuerung Icon tastatur.png
Medien Download bei VICE
Sprache(n) Sprache:englisch

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.

Beispielbild TXT in PRG umwandeln
  • 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:

  1. Zuerst ein Terminal-Fenster öffnen und wie bei Windows empfohlen, ein eigenes Verzeichnis erstellen.
  2. Auch hier gilt, dass der BASIC-Text in Kleinbuchstaben vorliegen muss, was mit "tr '[:upper:]' '[:lower:]'< IN.BAS > OUT.BAS" einfach zu machen ist.
  3. 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]