Two changes: (1) Refactored "proofreaders" into an input buffer-based proofreader and a tokenized proofreader along with code changes; (2) Checkit now handles "?" as "PRINT".

This commit is contained in:
Rob Greene
2026-01-10 13:03:20 -06:00
parent 20d8d53b5a
commit 2c03a3c62d
18 changed files with 432 additions and 322 deletions
+9 -8
View File
@@ -4,18 +4,19 @@
Some summary notes and observations on the Apple II code checking tools.
| | Includes REM contents | Includes spaces | Control Chars? | Case-sensitive? | Operation | Grouping(s) | Size | Program Total |
|--------------------------------|:----------------------|:----------------|:---------------|:----------------|:-------------|:--------------------------------|:------------------------------------|:-------------------------------------|
| Compute! Automatic Proofreader | Yes | No | CTRL+D | Yes | Input Buffer | Line | 1 byte | No |
| Nibble Checkit | No | In strings | In Strings | Yes | Input Buffer | Line, Program | 1 byte (line)<br/>2 bytes (program) | Yes, on line numbers |
| Nibble Apple Checker | Yes | No | CTRL+D | Yes | Program | Program | 1 byte (2 bytes length) | Yes, checksum and length calculation |
| MicroSPARC Key Perfect 2 | Yes | Yes | All | Yes | Program | Groups of 10 lines,<br/>Program | Max 3 bytes | Yes, byte count |
| MicroSPARC Key Perfect 4 | Yes | No | CTRL+D | Yes | Program | Groups of 10 lines,<br/>Program | Max 3 bytes | Yes, byte count |
| MicroSPARC Key Perfect 5 | No | No | CTRL+D | No | Program | Groups of 10 lines,<br/>Program | 4 bytes | Yes |
| | Includes REM contents | Includes spaces | Control Chars? | Other? | Case-sensitive? | Operation | Grouping(s) | Checksum Size | Program Total |
|--------------------------------|:----------------------|:----------------|:---------------|--------|:----------------|:-------------|:--------------------------------|:------------------------------------|:-------------------------------------|
| Compute! Automatic Proofreader | Yes | No | CTRL+D | N/A | Yes | Input Buffer | Line | 1 byte | No |
| Nibble Checkit | No | In strings | In Strings | "?" | Yes | Input Buffer | Line, Program | 1 byte (line)<br/>2 bytes (program) | Yes, on line numbers |
| Nibble Apple Checker | Yes | No | CTRL+D | N/A | Yes | Program | Program | 1 byte (2 bytes length) | Yes, checksum and length calculation |
| MicroSPARC Key Perfect 2 | Yes | Yes | All | N/A | Yes | Program | Groups of 10 lines,<br/>Program | Max 3 bytes | Yes, byte count |
| MicroSPARC Key Perfect 4 | Yes | No | CTRL+D | N/A | Yes | Program | Groups of 10 lines,<br/>Program | Max 3 bytes | Yes, byte count |
| MicroSPARC Key Perfect 5 | No | No | CTRL+D | N/A | No | Program | Groups of 10 lines,<br/>Program | 4 bytes | Yes |
* *Includes REM contents* - most checksum algorithms includes the REM as well as the contents of the REM statement; some only include the REM itself.
* *Includes spaces* - indicates if whitespace is important.
* *Control Chars?* - indicates if any control characters are included in the checksum.
* *Other?* - Checkit replaces "?" with "PRINT" to standardize the shortcut for the `PRINT` statement. The catch is that it ignores quotes. So _any_ "?" is replaced with "PRINT" for the checksum algorithm.
* *Case-sensitive?* - is "A" and "a" handled differently?
* *Operation* - if "Input Buffer" is specified, the checksums are displayed after a line of code has been entered; otherwise, the program must be completed and saved before running checksum.
* *Groupings* - what, if any, groupings apply.