diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | a8eol.1 | 4 | ||||
-rw-r--r-- | a8utf8.1 | 4 | ||||
-rw-r--r-- | atascii.7 | 4 | ||||
-rw-r--r-- | atr2xfd.1 | 4 | ||||
-rw-r--r-- | atrsize.1 | 4 | ||||
-rw-r--r-- | axe.1 | 4 | ||||
-rw-r--r-- | blob2c.1 | 4 | ||||
-rw-r--r-- | blob2xex.1 | 4 | ||||
-rw-r--r-- | cart2xex.1 | 4 | ||||
-rw-r--r-- | dasm2atasm.1 | 4 | ||||
-rw-r--r-- | fenders.1 | 4 | ||||
-rw-r--r-- | manftr.rst | 2 | ||||
-rw-r--r-- | protbas.c | 4 | ||||
-rw-r--r-- | rom2cart.1 | 4 | ||||
-rw-r--r-- | unmac65.1 | 4 | ||||
-rw-r--r-- | unprotbas.1 | 58 | ||||
-rw-r--r-- | unprotbas.rst | 57 | ||||
-rw-r--r-- | xex.5 | 4 | ||||
-rw-r--r-- | xex1to2.1 | 4 | ||||
-rw-r--r-- | xexamine.1 | 4 | ||||
-rw-r--r-- | xexcat.1 | 4 | ||||
-rw-r--r-- | xexsplit.1 | 4 | ||||
-rw-r--r-- | xfd2atr.1 | 4 |
24 files changed, 89 insertions, 110 deletions
@@ -18,7 +18,7 @@ CFLAGS=-Wall $(COPT) -ansi -D_GNU_SOURCE -DVERSION=\"$(VERSION)\" # BINS and SCRIPTS go in $BINDIR, DOCS go in $DOCDIR BINS=a8eol xfd2atr atr2xfd blob2c cart2xex fenders xexsplit xexcat atrsize rom2cart unmac65 axe blob2xex xexamine xex1to2 unprotbas protbas SCRIPTS=dasm2atasm a8utf8 -MANS=a8eol.1 xfd2atr.1 atr2xfd.1 blob2c.1 cart2xex.1 fenders.1 xexsplit.1 xexcat.1 atrsize.1 rom2cart.1 unmac65.1 axe.1 dasm2atasm.1 a8utf8.1 blob2xex.1 xexamine.1 xex1to2.1 unprotbas.1 +MANS=a8eol.1 xfd2atr.1 atr2xfd.1 blob2c.1 cart2xex.1 fenders.1 xexsplit.1 xexcat.1 atrsize.1 rom2cart.1 unmac65.1 axe.1 dasm2atasm.1 a8utf8.1 blob2xex.1 xexamine.1 xex1to2.1 unprotbas.1 protbas.1 MAN5S=xex.5 MAN7S=atascii.7 DOCS=README.txt equates.inc *.dasm LICENSE ksiders/atr.txt @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "A8EOL" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "A8EOL" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME a8eol \- convert Atari 8-bit text files to/from UNIX/Windows/Mac .\" RST source for a8eol(1) man page. Convert with: @@ -472,8 +472,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "A8UTF8" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "A8UTF8" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME a8utf8 \- Convert Atari 8-bit text to UTF-8 encoded Unicode. .\" RST source for a8utf8(1) man page. Convert with: @@ -103,8 +103,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ATASCII" 7 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "ATASCII" 7 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME atascii \- Atari 8-bit character set .\" RST source for atascii(7) man page. Convert with: @@ -2163,8 +2163,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ATR2XFD" 1 "2024-05-05" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "ATR2XFD" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME atr2xfd \- Convert an Atari 8-bit ATR disk image to a raw (XFD) image .\" RST source for atr2xfd(1) man page. Convert with: @@ -192,8 +192,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ATRSIZE" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "ATRSIZE" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME atrsize \- Change the size of an Atari 8-bit ATR disk image, or create a blank ATR image .\" RST source for atrsize(1) man page. Convert with: @@ -206,8 +206,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "AXE" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "AXE" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME axe \- ATR/XFD Editor .\" RST source for axe(1) man page. Convert with: @@ -147,8 +147,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "BLOB2C" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "BLOB2C" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME blob2c \- Create C source and header files from a binary file .\" RST source for blob2c(1) man page. Convert with: @@ -127,8 +127,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "BLOB2XEX" 1 "2024-05-17" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "BLOB2XEX" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME blob2xex \- Create Atari 8-bit executables from arbitrary data .\" RST source for blob2xex(1) man page. Convert with: @@ -218,8 +218,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "CART2XEX" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "CART2XEX" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME cart2xex \- Convert an Atari 8-bit ROM cartridge image to a binary load file .\" RST source for cart2xex(1) man page. Convert with: @@ -237,8 +237,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), diff --git a/dasm2atasm.1 b/dasm2atasm.1 index 699f97d..7e8e0fc 100644 --- a/dasm2atasm.1 +++ b/dasm2atasm.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "DASM2ATASM" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "DASM2ATASM" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME dasm2atasm \- Convert 6502 assembly source from dasm syntax to atasm or ca65 syntax. .\" RST source for dasm2atasm(1) man page. Convert with: @@ -234,8 +234,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "FENDERS" 1 "2024-05-09" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "FENDERS" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME fenders \- Install Fenders 3-sector loader in boot sectors of an ATR image .\" RST source for fenders(1) man page. Convert with: @@ -281,8 +281,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -22,8 +22,10 @@ SEE ALSO **dasm2atasm**\(1), **f2toxex**\(1), **fenders**\(1), +**protbas**\(1), **rom2cart**\(1), **unmac65**\(1), +**unprotbas**\(1), **xexamine**\(1), **xexcat**\(1), **xexsplit**\(1), @@ -136,9 +136,9 @@ void parse_args(int argc, char **argv) { default: { char *e; - varname_char = (int)strtol(&(*argv)[2], &e, 16); + varname_char = (int)strtol(optarg, &e, 16); if(*e != 0 || varname_char > 0xff) - die("Invalid hex value for -x option (range is 0 to ff)."); + fprintf(stderr, "%s: Invalid hex value '%s' for -x option (range is 0 to ff).\n", self, optarg); } } break; @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ROM2CART" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "ROM2CART" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME rom2cart \- Convert a raw ROM image to an Atari800 CART image, or vice versa .\" RST source for rom2cart(1) man page. Convert with: @@ -250,8 +250,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "UNMAC65" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "UNMAC65" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME unmac65 \- Detokenize Atari 8-bit Mac/65 SAVEd files. .\" RST source for unmac65(1) man page. Convert with: @@ -382,8 +382,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), diff --git a/unprotbas.1 b/unprotbas.1 index 34fe14f..06e8af7 100644 --- a/unprotbas.1 +++ b/unprotbas.1 @@ -27,31 +27,27 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "UNPROTBAS" 1 "2024-05-30" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "UNPROTBAS" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME -unprotbas \- Unprotect or create LIST-protected Atari 8-bit BASIC programs +unprotbas \- Unprotect LIST-protected Atari 8-bit BASIC programs .SH SYNOPSIS .sp unprotbas [\fB\-v\fP] [\fB\-f\fP] [\fB\-n\fP] [\fB\-g\fP] [\fB\-c\fP] [\fB\-r\fP | \fB\-w\fP] \fBinput\-file\fP \fBoutput\-file\fP -.sp -unprotbas [\fB\-v\fP] [\fB\-p\fP | \fB\-pc\fP | \fB\-pv\fP] [\fB\-x\fP[\fIr|NN\fP] \fBinput\-file\fP \fBoutput\-file\fP .SH DESCRIPTION .sp -\fBunprotbas\fP modifies a LIST\-protected Atari 8\-bit BASIC program, -creating a new non\-protected copy. See \fBDETAILS\fP, below, to -understand how the protection and unprotection works. It\(aqs also -capable of LIST\-protecting an unprotected program (see the \fB\-p\fP -option). +\fBunprotbas\fP modifies a tokenized LIST\-protected Atari 8\-bit BASIC +program, creating a new non\-protected copy. See \fBDETAILS\fP, below, +to understand how the protection and unprotection works. .sp \fBinput\-file\fP must be a tokenized (SAVEd) Atari BASIC program. Use \fI\-\fP to read from standard input, but \fBunprotbas\fP will refuse to read from standard input if it\(aqs a terminal. .sp -\fBoutput\-file\fP will be the unprotected (or protected, with -\fB\-p\fP) tokenized BASIC program. If it already exists, it will be -overwritten. Use \fI\-\fP to write to standard output, but \fBunprotbas\fP -will refuse to write to standard output if it\(aqs a terminal (since -tokenized BASIC is binary data and may confuse the terminal). +\fBoutput\-file\fP will be the unprotected tokenized BASIC program. If it +already exists, it will be overwritten. Use \fI\-\fP to write to standard +output, but \fBunprotbas\fP will refuse to write to standard output if +it\(aqs a terminal (since tokenized BASIC is binary data and may confuse +the terminal). .SH OPTIONS .sp Options may appear in any order. The first non\-option argument is used @@ -106,43 +102,17 @@ already exists, it will be overwritten. Read variable names from \fBvarnames.txt\fP, and use them instead of generating the names. See \fBVARIABLE NAMES\fP, below. .UNINDENT -.SS Protection Options -.INDENT 0.0 -.TP -.B \fB\-p\fP, \fB\-pc\fP, \fB\-pv\fP -LIST\-protect the program, rather than unprotecting it. \fB\-pc\fP sets -an invalid (0) next\-line pointer on the last line of code. \fB\-pv\fP -replaces the variable names with the Atari EOL character (\fB$9B\fP). -\fB\-p\fP does both. None of the other options except \fB\-v\fP (verbose) -and \fB\-x\fP can be used with these. -.TP -.B \fB\-xr\fP, \fB\-xNN\fP -Character to use for variable name protection, with \fB\-p\fP or -\fB\-pv\fP\&. \fINN\fP is the character code in hex, e.g. \fB\-x20\fP to use -a space. Default is \fB9b\fP (the EOL character). \fB\-xr\fP means random -codes. Do not put a space between the \fB\-x\fP and the hex digits or \fBr\fP\&. -This option only works if \fB\-p\fP or \fB\-pv\fP is used. -.TP -.B \fB\-s\fP -Shrink variable name table to one byte per variable name, with -\fB\-p\fP or \fB\-pv\fP\&. Programs protected this way are very similar to -ones protected with \fBPROTECT.BAS\fP\&. -.UNINDENT .SH EXIT STATUS .INDENT 0.0 .TP .B 0 \fBinput\-file\fP was protected, unprotection was successful. -With \fB\-p\fP, \fB\-pc\fP, \fB\-pv\fP: \fBinput\-file\fP was not -protected, protection was successful. .TP .B 1 I/O error, or \fBinput\-file\fP isn\(aqt a valid BASIC program. .TP .B 2 \fBinput\-file\fP is already an unprotected BASIC program. -With \fB\-p\fP, \fB\-pc\fP, \fB\-pv\fP: \fBinput\-file\fP is already a -protected BASIC program. .UNINDENT .SH DETAILS .sp @@ -212,7 +182,7 @@ The program \fBPROTECT.BAS\fP, found on Disk 2 of the Holmes Archive, creates protected BASIC programs that only use variable name scrambling. .sp -\fBunprotbas \-pv\fP also does variable name scrambling. +\fBprotbas\fP(1) also does variable name scrambling. .TP .B Bad next\-line pointer Every line of tokenized BASIC contains a line length byte, which @@ -255,9 +225,7 @@ The program \fBUNPROTEC\fP, from the \fIPirate\(aqs Treasure Chest\fP, can fix bad pointers in protected programs, though it doesn\(aqt do anything about variable name scrambling. .sp -\fBunprotbas \-pc\fP also does this type of protection. It works by -adding a line 32767 to the program, with a bad next\-line pointer. -This will fail if there\(aqs already a line 32767. +\fBprotbas\fP also does this type of protection. .UNINDENT .sp One more thing \fBunprotbas\fP can do is remove extra data from the end @@ -381,8 +349,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), diff --git a/unprotbas.rst b/unprotbas.rst index 1af8fd8..d24b1f3 100644 --- a/unprotbas.rst +++ b/unprotbas.rst @@ -2,9 +2,9 @@ unprotbas ========= -------------------------------------------------------------- -Unprotect or create LIST-protected Atari 8-bit BASIC programs -------------------------------------------------------------- +--------------------------------------------------- +Unprotect LIST-protected Atari 8-bit BASIC programs +--------------------------------------------------- .. include:: manhdr.rst @@ -13,26 +13,22 @@ SYNOPSIS unprotbas [**-v**] [**-f**] [**-n**] [**-g**] [**-c**] [**-r** | **-w**] **input-file** **output-file** -unprotbas [**-v**] [**-p** | **-pc** | **-pv**] [**-x**\[*r|NN*] **input-file** **output-file** - DESCRIPTION =========== -**unprotbas** modifies a LIST-protected Atari 8-bit BASIC program, -creating a new non-protected copy. See **DETAILS**, below, to -understand how the protection and unprotection works. It's also -capable of LIST-protecting an unprotected program (see the **-p** -option). +**unprotbas** modifies a tokenized LIST-protected Atari 8-bit BASIC +program, creating a new non-protected copy. See **DETAILS**, below, +to understand how the protection and unprotection works. **input-file** must be a tokenized (SAVEd) Atari BASIC program. Use *-* to read from standard input, but **unprotbas** will refuse to read from standard input if it's a terminal. -**output-file** will be the unprotected (or protected, with -**-p**) tokenized BASIC program. If it already exists, it will be -overwritten. Use *-* to write to standard output, but **unprotbas** -will refuse to write to standard output if it's a terminal (since -tokenized BASIC is binary data and may confuse the terminal). +**output-file** will be the unprotected tokenized BASIC program. If it +already exists, it will be overwritten. Use *-* to write to standard +output, but **unprotbas** will refuse to write to standard output if +it's a terminal (since tokenized BASIC is binary data and may confuse +the terminal). OPTIONS ======= @@ -88,42 +84,17 @@ Unprotection Options Read variable names from **varnames.txt**, and use them instead of generating the names. See **VARIABLE NAMES**, below. -Protection Options ------------------- -**-p**, **-pc**, **-pv** - LIST-protect the program, rather than unprotecting it. **-pc** sets - an invalid (0) next-line pointer on the last line of code. **-pv** - replaces the variable names with the Atari EOL character (**$9B**). - **-p** does both. None of the other options except **-v** (verbose) - and **-x** can be used with these. - -**-xr**, **-xNN** - Character to use for variable name protection, with **-p** or - **-pv**. *NN* is the character code in hex, e.g. **-x20** to use - a space. Default is **9b** (the EOL character). **-xr** means random - codes. Do not put a space between the **-x** and the hex digits or **r**. - This option only works if **-p** or **-pv** is used. - -**-s** - Shrink variable name table to one byte per variable name, with - **-p** or **-pv**. Programs protected this way are very similar to - ones protected with **PROTECT.BAS**. - EXIT STATUS =========== 0 **input-file** was protected, unprotection was successful. - With **-p**, **-pc**, **-pv**: **input-file** was not - protected, protection was successful. 1 I/O error, or **input-file** isn't a valid BASIC program. 2 **input-file** is already an unprotected BASIC program. - With **-p**, **-pc**, **-pv**: **input-file** is already a - protected BASIC program. DETAILS ======= @@ -185,7 +156,7 @@ Variable name table scrambling creates protected BASIC programs that only use variable name scrambling. - **unprotbas -pv** also does variable name scrambling. + **protbas**\(1) also does variable name scrambling. Bad next-line pointer Every line of tokenized BASIC contains a line length byte, which @@ -228,9 +199,7 @@ Bad next-line pointer fix bad pointers in protected programs, though it doesn't do anything about variable name scrambling. - **unprotbas -pc** also does this type of protection. It works by - adding a line 32767 to the program, with a bad next-line pointer. - This will fail if there's already a line 32767. + **protbas** also does this type of protection. One more thing **unprotbas** can do is remove extra data from the end of the file. It's possible for BASIC files to contain extra data that @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "XEX" 5 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "XEX" 5 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME xex \- Atari 8-bit executable file format. .\" RST source for xex(5) man page. Convert with: @@ -309,8 +309,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "XEX1TO2" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "XEX1TO2" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME xex1to2 \- Convert an Atari DOS 1.0 executable to a standard Atari executable .\" RST source for xex1to2(1) man page. Convert with: @@ -83,8 +83,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "XEXAMINE" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "XEXAMINE" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME xexamine \- Show information on Atari 8-bit executables (XEX) .\" RST source for xexamine(1) man page. Convert with: @@ -141,8 +141,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "XEXCAT" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "XEXCAT" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME xexcat \- Concatenate Atari 8-bit executables (XEX) into a single XEX file. .\" RST source for xexcat(1) man page. Convert with: @@ -201,8 +201,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "XEXSPLIT" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "XEXSPLIT" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME xexsplit \- Split a multi-segment Atari 8-bit executable (XEX) into multiple single-segment files. .\" RST source for xexsplit(1) man page. Convert with: @@ -194,8 +194,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "XFD2ATR" 1 "2024-05-03" "0.2.1" "Urchlay's Atari 8-bit Tools" +.TH "XFD2ATR" 1 "2024-06-03" "0.2.1" "Urchlay's Atari 8-bit Tools" .SH NAME xfd2atr \- Convert an Atari 8-bit XFD (raw) disk image to an ATR image. .\" RST source for xfd2atr(1) man page. Convert with: @@ -122,8 +122,10 @@ Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\ \fBdasm2atasm\fP(1), \fBf2toxex\fP(1), \fBfenders\fP(1), +\fBprotbas\fP(1), \fBrom2cart\fP(1), \fBunmac65\fP(1), +\fBunprotbas\fP(1), \fBxexamine\fP(1), \fBxexcat\fP(1), \fBxexsplit\fP(1), |