aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manhdr5.rst7
-rw-r--r--protbas.1142
-rw-r--r--protbas.rst86
3 files changed, 235 insertions, 0 deletions
diff --git a/manhdr5.rst b/manhdr5.rst
new file mode 100644
index 0000000..e0b3c67
--- /dev/null
+++ b/manhdr5.rst
@@ -0,0 +1,7 @@
+.. include:: ver.rst
+.. |date| date::
+
+:Manual section: 5
+:Manual group: Urchlay's Atari 8-bit Tools
+:Date: |date|
+:Version: |version|
diff --git a/protbas.1 b/protbas.1
new file mode 100644
index 0000000..33946b7
--- /dev/null
+++ b/protbas.1
@@ -0,0 +1,142 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "PROTBAS" 1 "2024-06-13" "0.2.1" "Urchlay's Atari 8-bit Tools"
+.SH NAME
+protbas \- LIST-protect Atari 8-bit BASIC programs
+.SH SYNOPSIS
+.sp
+protbas [\fB\-v\fP] [\fB\-nc | **\-nv\fP] [\fB\-s\fP] [\fB\-xr\fP | \fB\-xNN\fP] \fBinput\-file\fP \fBoutput\-file\fP
+.SH DESCRIPTION
+.sp
+\fBprotbas\fP reads a tokenized Atari 8\-bit BASIC program and writes a
+LIST\-protected copy of the program. See the \fBDETAILS\fP section of the
+\fBunprotbas\fP(1) man page, to understand how the protection works.
+.sp
+\fBinput\-file\fP must be a tokenized (SAVEd) Atari BASIC program. Use
+\fI\-\fP to read from standard input, but \fBprotbas\fP will refuse to
+read from standard input if it\(aqs a terminal.
+.sp
+\fBoutput\-file\fP will be the protected tokenized BASIC program. If it
+already exists, it will be overwritten. Use \fI\-\fP to write to standard
+output, but \fBprotbas\fP will refuse to write to standard output if
+it\(aqs a terminal (since tokenized BASIC is binary data and may confuse
+the terminal).
+.sp
+The code protection 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.
+.SH OPTIONS
+.sp
+Options may appear in any order. The first non\-option argument is used
+for \fBinput\-file\fP; the second is \fBoutput\-file\fP\&. A third non\-option
+argument is an error.
+.SS General Options
+.INDENT 0.0
+.TP
+.B \fB\-\-help\fP
+Print usage message and exit.
+.TP
+.B \fB\-\-version\fP
+Print version number and exit.
+.TP
+.B \fB\-v\fP
+Verbose operation. When displaying a number in verbose mode, it will
+be prefixed with \fI$\fP if it\(aqs in hex, or no prefix for decimal.
+.UNINDENT
+.SS Protection Options
+.INDENT 0.0
+.TP
+.B \fB\-nc\fP
+Do not code\-protect the program; only protect the variable names.
+.TP
+.B \fB\-nv\fP
+Do not protect the variable names; only code\-protect the program.
+.TP
+.B \fB\-s\fP
+Shrink variable name table to minimum size, one byte per variable
+name. Programs protected this way are very similar to ones
+protected with \fBPROTECT.BAS\fP\&.
+.TP
+.B \fB\-xr\fP, \fB\-x\fP \fINN\fP
+Character to use for variable name protection. \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.
+.UNINDENT
+.SH EXIT STATUS
+.INDENT 0.0
+.TP
+.B 0
+\fBinput\-file\fP was unprotected, 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 a protected BASIC program.
+.UNINDENT
+.SH COPYRIGHT
+.sp
+WTFPL. See \fI\%http://www.wtfpl.net/txt/copying/\fP for details.
+.SH AUTHOR
+.INDENT 0.0
+.IP B. 3
+Watson <\fI\%urchlay@slackware.uk\fP>; Urchlay on irc.libera.chat \fI##atari\fP\&.
+.UNINDENT
+.SH SEE ALSO
+.sp
+\fBa8eol\fP(1),
+\fBa8utf8\fP(1),
+\fBatr2xfd\fP(1),
+\fBatrsize\fP(1),
+\fBaxe\fP(1),
+\fBblob2c\fP(1),
+\fBblob2xex\fP(1),
+\fBcart2xex\fP(1),
+\fBdasm2atasm\fP(1),
+\fBdumpbas\fP(1),
+\fBf2toxex\fP(1),
+\fBfenders\fP(1),
+\fBprotbas\fP(1),
+\fBrenumbas\fP(1),
+\fBrom2cart\fP(1),
+\fBunmac65\fP(1),
+\fBunprotbas\fP(1),
+\fBvxrefbas\fP(1),
+\fBxexamine\fP(1),
+\fBxexcat\fP(1),
+\fBxexsplit\fP(1),
+\fBxfd2atr\fP(1),
+\fBxex\fP(5),
+\fBatascii\fP(7).
+.sp
+Any good Atari 8\-bit book: \fIDe Re Atari\fP, \fIThe Atari BASIC Reference
+Manual\fP, the \fIOS Users\(aq Guide\fP, \fIMapping the Atari\fP, etc.
+.\" Generated by docutils manpage writer.
+.
diff --git a/protbas.rst b/protbas.rst
new file mode 100644
index 0000000..5ceb838
--- /dev/null
+++ b/protbas.rst
@@ -0,0 +1,86 @@
+=======
+protbas
+=======
+
+---------------------------------------
+LIST-protect Atari 8-bit BASIC programs
+---------------------------------------
+
+.. include:: manhdr.rst
+
+SYNOPSIS
+========
+
+protbas [**-v**] [**-nc | **-nv**] [**-s**] [**-xr** | **-xNN**] **input-file** **output-file**
+
+DESCRIPTION
+===========
+
+**protbas** reads a tokenized Atari 8-bit BASIC program and writes a
+LIST-protected copy of the program. See the **DETAILS** section of the
+**unprotbas**\(1) man page, to understand how the protection works.
+
+**input-file** must be a tokenized (SAVEd) Atari BASIC program. Use
+*-* to read from standard input, but **protbas** will refuse to
+read from standard input if it's a terminal.
+
+**output-file** will be the protected tokenized BASIC program. If it
+already exists, it will be overwritten. Use *-* to write to standard
+output, but **protbas** will refuse to write to standard output if
+it's a terminal (since tokenized BASIC is binary data and may confuse
+the terminal).
+
+The code protection 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.
+
+OPTIONS
+=======
+
+Options may appear in any order. The first non-option argument is used
+for **input-file**; the second is **output-file**. A third non-option
+argument is an error.
+
+General Options
+---------------
+**--help**
+ Print usage message and exit.
+
+**--version**
+ Print version number and exit.
+
+**-v**
+ Verbose operation. When displaying a number in verbose mode, it will
+ be prefixed with *$* if it's in hex, or no prefix for decimal.
+
+Protection Options
+------------------
+**-nc**
+ Do not code-protect the program; only protect the variable names.
+
+**-nv**
+ Do not protect the variable names; only code-protect the program.
+
+**-s**
+ Shrink variable name table to minimum size, one byte per variable
+ name. Programs protected this way are very similar to ones
+ protected with **PROTECT.BAS**.
+
+**-xr**, **-x** *NN*
+ Character to use for variable name protection. *NN* is the
+ character code in hex, e.g. **-x20** to use a space. Default is
+ **9b** (the EOL character). **-xr** means random codes.
+
+EXIT STATUS
+===========
+
+0
+ **input-file** was unprotected, protection was successful.
+
+1
+ I/O error, or **input-file** isn't a valid BASIC program.
+
+2
+ **input-file** is already a protected BASIC program.
+
+.. include:: manftr.rst