Go to the first, previous, next, last section, table of contents.

# 16 petcat

The petcat program is a text conversion utility, it can convert between ASCII, PETSCII and tokenized BASIC.

## 16.1 petcat command line options

`-help`
  Output help text
`-?`
  Same as above
`-version`
  show petcat version string and exit
`-v`
  verbose output
`-c`
  controls (interpret also control codes) (default if textmode)
`-nc`
  no controls (suppress control codes in printout) (default if non-textmode)
`-qc`
  convert all non alphanumeric characters inside quotes into controlcodes
`-ic`
  interpret control codes case-insensitive
`-d`
  output raw codes in decimal
`-h`
  write header (default if output is stdout)
`-nh`
  no header (default if output is a file)
`-skip <n>`
  Skip <n> bytes in the beginning of input file. Ignored on P00.
`-text`
  Force text mode
`-<version>`
  use keywords for <version> instead of the v7.0 ones
`-w<version>`
  tokenize using keywords on specified Basic version.
`-k<version>`
  list all keywords for the specified Basic version
`-k`
  list all Basic versions available.
`-l`
  Specify load address for program (in hex, no loading chars!).
`-o <name>`
  Specify the output file name
`-f`
  Force overwritten the output file. The default depends on the BASIC version.

BASIC Versions:

`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 extension (C128)
`a`
  Basic v2.0 with AtBasic (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)
`lightning`
  Basic v2.0 with Basic Lightning (C64)
`magic`
  Basic v2.0 with Magic Basic (C64)
`mighty`
  Basic v2.0 with Mighty Basic by Craig Bruce (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 extension (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 by Craig Bruce (VIC20)
`ultra`
  Basic v2.0 with Ultrabasic-64 (C64)
`xbasic`
  Basic v2.0 with Xbasic (C64)

## 16.2 petcat extra features

- If a line does not begin with a line number, a new line number is created by taking the line number of the previous line and incrementing it by two.
- Lines starting with a semicolon will be treated as comments and are ignored
- Unlike the BASIC editor, petcat can create BASIC files that contain lines numbered in arbitrary order, and also duplicate line numbers.

## 16.3 petcat examples

``petcat -2 -o outputfile.txt -- inputfile.prg``
  De-tokenize, Convert inputfile.prg to a text file in outputfile.txt, using BASIC V2 only
``petcat -wsimon -o outputfile.prg -- inputfile.txt``
  Tokenize, Convert inputfile.txt to a PRG file in outputfile.prg, using Simons' BASIC
``petcat -text -o outputfile.txt -- inputfile.seq``
  Convert inputfile.seq to a Ascii text file in outputfile.txt.
``petcat -text -w2 -o outputfile.seq -- inputfile.txt``
  Convert inputfile.txt to a Petscii text SEQ file in outputfile.seq.

Go to the first, previous, next, last section, table of contents.