Gidubba/readme.md

63 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Gidubba v1.0
============
Gidubba (Sumerian for 'stylus') is a simple line editor for the
Thingamajig computer architecture. Its git repository can be found at
https://ahti.space/git/crazyettin/Gidubba and that of Thingamajig at
https://ahti.space/git/crazyettin/Thingamajig.
System requirements
-------------------
Gidubba requires at least 4 KiB of RAM. It uses a terminal with local
echo at address FFFF, and optionally a character printer at address FFFE
and a punched tape reader and punch or a casette drive at FFFD. Do not
be afraid to modify the code yourself if your setup requires it! (And if
you do, apologies for the spaghetti.)
Format
------
Texts are terminated by an end-of-file (^Z) and lines within them by a
newline of a carriage return (^M) followed by a line feed (^J). Note
that the input buffer can store at most 256 characters, including the
newline.
Usage
-----
The commands are individual letters that can be followed by one or two
arguments separated by a comma, all case-insensitive. The first argument
is a line number between 0 and FFFF and the second a range of lines
between 0 and FF. To append lines, insert them or set the mark to any
line number after the text or to the shortcut hash (#); in other
commands line numbers or parts of a range after the text are ignored and
a hash is not recognised as a valid argument. Instead of a predetermined
range a prompt to insert the next line appears automatically after the
previous one has been committed.
Commands with a single argument:
* I: Insert lines
* M: Set the mark
Commands with two arguments:
* C: Copy to the mark
* D: Delete lines
* L: List lines
Commands with no arguments:
* P: Print
* R: Read from the tape reader or casette drive
* W: Write to the tape punch or casette drive
A delete (^?) discards the preceding character and outputs an underscore
to the terminal. An escape (^[) discards the contents of the current
command or line and outputs a backslash and a newline to the terminal. A
carriage return (^M) or a line feed (^J) inputs a newline and commits
the current command or line. An end-of-file (^Z) discards the current
command and halts the computer or discards the current line and returns
to the command prompt.
There are two kinds of error messages: a question mark (?) for an
erroneous command and an exclamation mark (!) for lack of RAM.