aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2025-02-25 21:31:11 -0500
committerB. Watson <urchlay@slackware.uk>2025-02-25 21:31:11 -0500
commitd0c008b68a7e2a12308a888e918d7467998260a9 (patch)
treee780d6077e0725f5f8d309a11ac6d39d761f7cec
parent9a96d6a2b17079f0666401a88bf999f9c3a6a5f1 (diff)
downloadbw-atari8-tools-d0c008b68a7e2a12308a888e918d7467998260a9.tar.gz
listamsb: tweak a warning, expand DIAGNOSTICS in man page.
-rw-r--r--listamsb.120
-rw-r--r--listamsb.c2
-rw-r--r--listamsb.rst20
3 files changed, 37 insertions, 5 deletions
diff --git a/listamsb.1 b/listamsb.1
index ca92ee6..a21fb5a 100644
--- a/listamsb.1
+++ b/listamsb.1
@@ -84,10 +84,26 @@ BASIC file.
.INDENT 0.0
.IP \(bu 2
not an AMSB file: first byte not $00
+.sp
+Pretty self\-explanatory: if the file doesn\(aqt begin with a \fI$00\fP byte,
+it\(aqs not a tokenized AMSB file.
.IP \(bu 2
not an AMSB file: too big (\fIN\fP bytes), won\(aqt fit in Atari memory
+.sp
+The file can\(aqt be a tokenized AMSB file because there was no way
+for it to be created. It must be some other kind of file that begins
+with a \fI$00\fP byte.
.IP \(bu 2
not an AMSB file: program size too small (\fIN\fP). Atari BASIC file?
+.sp
+The program header claims the file is 0, 1, 3, or 4 bytes long. This
+is impossible, so this isn\(aqt an AMSB file. A lot of Atari BASIC
+programs begin with three \fI$00\fP bytes, so that might be what this is.
+.IP \(bu 2
+program length is 2, no code in file (SAVE after NEW)
+.sp
+Probably, someone did a SAVE when there was no program in memory. It
+could also mean this isn\(aqt an AMSB file at all.
.UNINDENT
.SS Warnings
.sp
@@ -109,11 +125,11 @@ line number out range
The program contains a line number that\(aqs greater than \fI63999\fP\&. How
did that happen?
.IP \(bu 2
-line \fIN\fP has character \fIC\fP outside of a string, maybe not an AMSB file?
+line \fIN\fP has character \fIC\fP outside of a string. maybe Atari BASIC?
.sp
This happens when ATASCII codes 0 to 31 (\fI$1f\fP) appear in the program.
AMSB can create files like this, but at runtime, it\(aqs a syntax error.
-It could also mean it\(aqs not really an AMSB file.
+More likely, it means this is an Atari BASIC file.
.IP \(bu 2
actual program size doesn\(aqt match program size in header
.sp
diff --git a/listamsb.c b/listamsb.c
index 268aae6..91e7d1c 100644
--- a/listamsb.c
+++ b/listamsb.c
@@ -206,7 +206,7 @@ int next_line(void) {
if(byte < 0x20) {
/* ATASCII graphics outside of a string */
fprintf(stderr, "%s: line %d has character %d outside of a string, "
- "maybe not an AMSB file?\n",
+ "maybe Atari BASIC?\n",
self, lineno, byte);
warnings++;
}
diff --git a/listamsb.rst b/listamsb.rst
index ad0c897..acf3718 100644
--- a/listamsb.rst
+++ b/listamsb.rst
@@ -69,10 +69,26 @@ BASIC file.
- not an AMSB file: first byte not $00
+ Pretty self-explanatory: if the file doesn't begin with a *$00* byte,
+ it's not a tokenized AMSB file.
+
- not an AMSB file: too big (*N* bytes), won't fit in Atari memory
+ The file can't be a tokenized AMSB file because there was no way
+ for it to be created. It must be some other kind of file that begins
+ with a *$00* byte.
+
- not an AMSB file: program size too small (*N*). Atari BASIC file?
+ The program header claims the file is 0, 1, 3, or 4 bytes long. This
+ is impossible, so this isn't an AMSB file. A lot of Atari BASIC
+ programs begin with three *$00* bytes, so that might be what this is.
+
+- program length is 2, no code in file (SAVE after NEW)
+
+ Probably, someone did a SAVE when there was no program in memory. It
+ could also mean this isn't an AMSB file at all.
+
Warnings
--------
@@ -93,11 +109,11 @@ continues processing.
The program contains a line number that's greater than *63999*. How
did that happen?
-- line *N* has character *C* outside of a string, maybe not an AMSB file?
+- line *N* has character *C* outside of a string. maybe Atari BASIC?
This happens when ATASCII codes 0 to 31 (*$1f*\) appear in the program.
AMSB can create files like this, but at runtime, it's a syntax error.
- It could also mean it's not really an AMSB file.
+ More likely, it means this is an Atari BASIC file.
- actual program size doesn't match program size in header