{"id":137,"date":"2026-04-14T01:02:09","date_gmt":"2026-04-14T01:02:09","guid":{"rendered":"https:\/\/permacomputer.solarpunk.au\/?p=137"},"modified":"2026-04-14T01:02:09","modified_gmt":"2026-04-14T01:02:09","slug":"scriptor-an-atari-word-processor","status":"publish","type":"post","link":"https:\/\/permacomputer.solarpunk.au\/?p=137","title":{"rendered":"Scriptor: An Atari Word Processor"},"content":{"rendered":"\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"2122\" data-id=\"143\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-02.jpeg\" alt=\"\" class=\"wp-image-143\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-02.jpeg 1600w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-02-226x300.jpeg 226w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-02-772x1024.jpeg 772w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-02-768x1019.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-02-1158x1536.jpeg 1158w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-02-1544x2048.jpeg 1544w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1604\" height=\"2127\" data-id=\"144\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-03.jpeg\" alt=\"\" class=\"wp-image-144\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-03.jpeg 1604w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-03-226x300.jpeg 226w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-03-772x1024.jpeg 772w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-03-768x1018.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-03-1158x1536.jpeg 1158w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-03-1544x2048.jpeg 1544w\" sizes=\"auto, (max-width: 1604px) 100vw, 1604px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1604\" height=\"2124\" data-id=\"148\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-04.jpeg\" alt=\"\" class=\"wp-image-148\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-04.jpeg 1604w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-04-227x300.jpeg 227w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-04-773x1024.jpeg 773w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-04-768x1017.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-04-1160x1536.jpeg 1160w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-04-1547x2048.jpeg 1547w\" sizes=\"auto, (max-width: 1604px) 100vw, 1604px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1605\" height=\"2134\" data-id=\"145\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-05.jpeg\" alt=\"\" class=\"wp-image-145\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-05.jpeg 1605w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-05-226x300.jpeg 226w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-05-770x1024.jpeg 770w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-05-768x1021.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-05-1155x1536.jpeg 1155w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-05-1540x2048.jpeg 1540w\" sizes=\"auto, (max-width: 1605px) 100vw, 1605px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1603\" height=\"2126\" data-id=\"146\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-06.jpeg\" alt=\"\" class=\"wp-image-146\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-06.jpeg 1603w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-06-226x300.jpeg 226w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-06-772x1024.jpeg 772w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-06-768x1019.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-06-1158x1536.jpeg 1158w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-06-1544x2048.jpeg 1544w\" sizes=\"auto, (max-width: 1603px) 100vw, 1603px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1605\" height=\"2119\" data-id=\"149\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-07.jpeg\" alt=\"\" class=\"wp-image-149\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-07.jpeg 1605w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-07-227x300.jpeg 227w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-07-776x1024.jpeg 776w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-07-768x1014.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-07-1163x1536.jpeg 1163w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-07-1551x2048.jpeg 1551w\" sizes=\"auto, (max-width: 1605px) 100vw, 1605px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1608\" height=\"2133\" data-id=\"150\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-08.jpeg\" alt=\"\" class=\"wp-image-150\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-08.jpeg 1608w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-08-226x300.jpeg 226w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-08-772x1024.jpeg 772w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-08-768x1019.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-08-1158x1536.jpeg 1158w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-08-1544x2048.jpeg 1544w\" sizes=\"auto, (max-width: 1608px) 100vw, 1608px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"2104\" data-id=\"151\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-09.jpeg\" alt=\"\" class=\"wp-image-151\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-09.jpeg 1600w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-09-228x300.jpeg 228w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-09-779x1024.jpeg 779w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-09-768x1010.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-09-1168x1536.jpeg 1168w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-09-1557x2048.jpeg 1557w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1599\" height=\"1066\" data-id=\"152\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-10-edited.jpeg\" alt=\"\" class=\"wp-image-152\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-10-edited.jpeg 1599w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-10-edited-300x200.jpeg 300w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-10-edited-1024x683.jpeg 1024w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-10-edited-768x512.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-10-edited-1536x1024.jpeg 1536w\" sizes=\"auto, (max-width: 1599px) 100vw, 1599px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1605\" height=\"2137\" data-id=\"142\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-01-1.jpeg\" alt=\"\" class=\"wp-image-142\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-01-1.jpeg 1605w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-01-1-225x300.jpeg 225w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-01-1-769x1024.jpeg 769w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-01-1-768x1023.jpeg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-01-1-1154x1536.jpeg 1154w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-01-1-1538x2048.jpeg 1538w\" sizes=\"auto, (max-width: 1605px) 100vw, 1605px\" \/><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"charles-brannon---editorial-assistant\">Charles Brannon &#8211; Editorial Assistant<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Scriptor is an easy-to-use, full-scrolling, character-oriented, multi-function word processor, requiring an Atari 400\/800 with a minimum of 32K of memory (40K recommended), an Epson MX-80 or Atari 825 printer, and an Atari disk drive. It is programmed in both BASIC and machine language. For instructions on typing in the program, see the section under: Typing It In.<\/p>\n<\/blockquote>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"through-the-ruby\">Through The Ruby<\/h1>\n\n\n\n<p>Computers don\u2019t just calculate with numbers &#8211; they can also work with text. Five inch disks can replace stacks of files. Computers can sort, search, select, and update any kind of information. They can focus information. In this sense, the computer is like the ruby crystal in a laser. Ordinary random light waves are transformed and concentrated through the ruby into a tight, powerful beam. Computers can do the same for information.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"word-processing\">Word Processing<\/h1>\n\n\n\n<p>Electronic text is more \u201cliquid\u201d, easier to work with, than words solidified on paper (hard copy). This is what makes word processing special: the extraordinary editing power it gives you. Distinctions between a rough draft and a final draft are meaningless; the work is typed, changed dynamically, and stored to disk. It can then later be recalled, revised, and printed out. Very little retyping is necessary. What a boon for anyone who writes.<\/p>\n\n\n\n<p>Converts to word processing immediately notice an improvement in their writing. The entire manuscript becomes \u201calive\u201d, not committed to paper. Changing a word or a sentence, inserting a line or a paragraph are all accomplished with ease. For example, take just one key, the backspace key (called RUBOUT on some computers or terminals). When this key is struck, the last character typed is erased from the screen. Compare this to the frequently elaborate typewriter correction schemes.<\/p>\n\n\n\n<p>Besides the disk file, which has already been mentioned and which will be explained in greater detail later, an important concept in word processing is the cursor. Named after the clear plastic slide on a slide rule, the cursor shows you where the next character you type is going to appear. It usually looks like an underline, \u201c__\u201c, or a solid square. Users familiar with any computer have already encountered the cursor. The computer itself doesn\u2019t need a cursor; but since you can type anywhere on the screen, the cursor is vital so that you can know where you\u201dare\u201d.<\/p>\n\n\n\n<p>The cursor can be moved up, down, left, and right with special keys, usually with arrows on them. To correct the following line:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>The quick brown dox jumped&#91;]<\/code><\/pre>\n\n\n\n<p>you would either press backspace ten times, erasing the text as you go, or press cursor-left ten times. The cursor moves \u201cover\u201d the characters without erasing them. It is then resting on the \u201cd\u201d:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>The quick brown &#91;d]ox jumped<\/code><\/pre>\n\n\n\n<p>You can correct the error by typing \u201cf\u201d, which overstrikes (replaces) the \u201cd.\u201d<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>The quick brown f&#91;o]x jumped<\/code><\/pre>\n\n\n\n<p>The cursor can then be moved to the end of the line (ten cursor-rights), and typing resumed.<\/p>\n\n\n\n<p>This sounds harder than it really is. Cursor editing becomes second nature after only hours of use. The cursor UP\/DOWN keys can reach lines of text above and below the current line. It is like rolling a typewriter\u2019s platen up or down, but with one important difference &#8211; the \u201cpaper\u201d is one continuous, long sheet.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"getting-specific\">Getting Specific<\/h1>\n\n\n\n<p>Two very special functions are insert and delete. Insert lets you add text in the middle of a line, by pressing INSERT to insert spaces in the text, and then typing in the word. For example;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>To be or to be, that is the question.&#91;]<\/code><\/pre>\n\n\n\n<p>The cursor is placed on the second \u201cto,\u201d and INSERT is pressed four times (three for \u201cn-o-t,\u201d and one for a space):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>To be or &#91;]   to be, that is\n   the question.<\/code><\/pre>\n\n\n\n<p>The word \u201cnot\u201d is then typed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>To be or not&#91;]to be, that is\n   the question.<\/code><\/pre>\n\n\n\n<p>Delete is used to erase text. As distinguished from mere backspacing or spacing over a word, delete closes up the space after the deleted word:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Take out a word&#91;]<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>Take [o]ut a word<\/code><\/li>\n<\/ol>\n\n\n\n<p>(cursor is moved to \u201co\u201d)<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><code>Take [u]t a word<\/code><\/li>\n<\/ol>\n\n\n\n<p>(DELETE typed; \u201ca\u201d disappears, \u201cut a word\u201d moves left.)<\/p>\n\n\n\n<p><code>Take [a] word<\/code><\/p>\n\n\n\n<p>(DELETE is typed four times.)<\/p>\n\n\n\n<p>Insert and delete can also act on words, sentences, lines, or entire paragraphs in a similar way.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"disk-files\">Disk Files<\/h1>\n\n\n\n<p>A \u201cfile\u201d is simply a permanent record of your text. When the computer\u2019s power is turned off, it forgets everything except what is \u201cburned\u201d (in ROM memory) into it permanently. Your text is obviously not \u201cburned in,\u201d or you couldn\u2019t ever change it. If you have a blackout, or a fuse blows, say good-bye to your text.<\/p>\n\n\n\n<p>Catastrophes aside, you certainly don\u2019t want to leave your computer on all the time, or keep the computer tied up with your text forever. Fortunately, you can save your text on disk, ready for any later revisions. You can type it one time, save your text, and print it out when convenient.<\/p>\n\n\n\n<p>Since a disk can store more than one document (unless it\u2019s very long), you and the computer must have some way to distinguish and separate one file from another. This is usually done via a <em>directory<\/em>, a list of file names. You access a file by giving the computer the file\u2019s name.<\/p>\n\n\n\n<p>\u201cScriptor,\u201d the word processor program at the end of this article, has many features usually found only in professional word processors, but it lacks a few features such as search and replace, justification, data base merge, etc. Also, it is written in BASIC, so it can be rather slow at times. It is, however, aided by several machine language subroutines for time-critical situations such as disk input\/output and some editing features.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"typing-it-in\">Typing It In<\/h1>\n\n\n\n<p>Program 1 is the Scriptor program itself. Type it carefully, since it contains many critical machine language DATA statements. Extra time spent in typing it in will reward you with a smoother, bug-free word processor. Remember to use the COMPUTE! Listing Conventions (see Typing In COMPUTE\u2019s Programs, published every issue). Use the Atari logo key to enter inverse video.<\/p>\n\n\n\n<p>To give you more memory for text, Scriptor deletes a substantial portion of itself after it initializes (sets up). Don\u2019t worry &#8211; the program is busy running while the screen flashes; it just takes a while. The set-up lines from 5000-6999 are automatically erased.<\/p>\n\n\n\n<p>It you quit the program and try to run it again, the program will automatically try to re-RUN itself anew from disk. If you\u2019ve changed disks, you\u2019ll need to reload it yourself. You should SAVE the program with the filename \u201cD:SCRIPTOR\u201d or change line 110 appropriately. Be sure to SAVE Scriptor after you\u2019ve typed it, before you run it, or you will find a sizeable chunk of your typing erased when you exit. You can free up more memory for text by deleting the \u201chelp\u201d function. Take out all lines from 1570 to 1700 and remove line 775. If you\u2019d rather keep this handy aid, leave these lines alone.<\/p>\n\n\n\n<p>If you get the message \u201cError in DATA statements\u201d when you run the program, you need to check your typing on the bank of machine language DATA statements at the end of the program. Also make sure you haven\u2019t typed a letter \u201cO\u201d for a zero (the zero is thinner than the \u201cO\u201d).<\/p>\n\n\n\n<p>If you have an Atari 825 printer, you will need to type in the lines in Program 2. This will replace the lines used for the MX-80 with lines applicable to the 825 80 Column Printer. If you have another printer, refrain from using special characters such as underlining, and you will probably be able to get one of the sets of lines to work.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"getting-started\">Getting Started<\/h1>\n\n\n\n<p>The Scriptor is a full-scrolling, character-oriented word processor. Usage of cursor control keys is similar to normal Atari editor functions, with these exceptions:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>is used only to force a carriage return, as at the end of a paragraph, or to print a blank line. The computer will format your line when you print it out, so just type continuously. Do not press at the end of each line. Pressing prints a back-arrow at the end of the line, and erases all text to the end of that line.<\/li>\n\n\n\n<li>Insert and Delete character (CTRL-INSERT\/ CTRL-DELETE) work on whole \u201cparagraphs.\u201d A paragraph is a block of lines from the cursor to a \u201cback-arrow.\u201d If there is no back-arrow, one is assumed at the end of text. Therefore, insert and delete can be quite slow if you don\u2019t have a back- arrow somewhere.<\/li>\n\n\n\n<li>Insert and Delete line work on the entire document. The screen will blank during this operation. This is normal and speeds up the process, as it can be slow on long documents.<\/li>\n\n\n\n<li>All TAB controls work normally, just a little slower. will clear all tab settings.<\/li>\n\n\n\n<li>will not clear the screen. It is used to erase all or part of the text. Press <a>to erase all text. Press the Atari logo key to abort the erase function.<\/a><\/li>\n\n\n\n<li>The break key is disabled. Use to exit the program.<\/li>\n\n\n\n<li>The ESC key enters the \u201cmini-DOS.\u201d (See below.)<\/li>\n\n\n\n<li>The console keys are \u201clive\u201d; see a description of their functions later.<\/li>\n\n\n\n<li>The Atari logo key is disabled for normal typing. Within prompts, it acts as an \u201cabort\u201d key.<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"getting-control\">Getting Control<\/h1>\n\n\n\n<p>Since the Atari is not a dedicated word processor (that means it\u2019s just not a \u201cword processing machine\u201d like a Lanier, but is, rather, a general-purpose computer), it does not have special keys to activate word processing functions. Instead, the combination is used. For example, to quit the program, you would hold down and press <q>. The CTRL key stands for \u201cControl\u201d &#8211; it is like a special shift key. The keys are linked <em>mnemonically<\/em> (easy to remember) to the commands they stand for, such as &lt;P&gt; for Print Text. To get a list of the commands and what they stand for at any time, just press &lt;CTRL-?&gt; (hold down CTRL and press the question mark) for a HELP menu. See Table 1 for a quick-reference chart of the commands.<\/q><\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"going-around-the-block\">Going Around The Block<\/h1>\n\n\n\n<p>An important feature in a word processor is block move and delete. Scriptor lets you \u201cdefine\u201d a series of up to 23 lines. You can then move these lines to another place in the text with Line Dupli- cate, or delete the defined lines with (Erase: Defined lines). To define a block of lines, just place the cursor on the first line and press . A flashing arrow will appear to the left of the line. Press cursor-down, and another symbol will appear underneath. Press cursor- down until all the desired lines have an arrow to their left. Then press . If you make a mistake, just try again, or press cursor-up while defining.<\/p>\n\n\n\n<p>To copy these lines to another place, position the cursor at the place you want the lines to ap- pear, and press . If you haven\u2019t defined any lines, this command will be ignored. Note that you can press this key more than once to make many copies of the lines. You may want to delete the defined lines after you move them. Press . You will see the prompt \u201cERASE:\u201d. Press . The lines will be deleted, just as if you used Delete line multiple times.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"a-mini-dos\">A Mini-DOS<\/h1>\n\n\n\n<p>The ESC key activates the \u201cmini-DOS.\u201d It lets you look at the directory and scratch, rename, lock, or unlock files. When you press , you will see:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;D]irectory,&#91;L]ock,&#91;U]nlock,&#91;R]ename,\n     &#91;S]cratch?<\/code><\/pre>\n\n\n\n<p>Press the appropriate key. For all except the directory, you will need to enter a file name. The cursor, a half box, will be at the top of the screen. The only editing key you can use here is backspace.<\/p>\n\n\n\n<p>Remember that you can abort any time before pressing by pressing the logo key. While the directory is listed, you can press again to keep the directory on the screen while you use one of the other functions. You can also press [SELECT] (see later) to save or recall a file while looking at the directory. If you get an error message at the top of the screen, check the disk and your entry and try again.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"for-the-record\">For The Record\u2026<\/h1>\n\n\n\n<p>To save or recall a document, press [SELECT]. The screen will display:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;S]ave or &#91;R]ecall<\/code><\/pre>\n\n\n\n<p>Press the appropriate key, enter the file name, and the document will either be stored or re- trieved. If you Recall a document, it loads starting at the line the cursor is on. This lets you add text to a document. Press START twice to home the cursor to the start of the text. If you get an error message, check to see you have the right disk, consult the DOS Manual, and try again. Remember that your file name must start with a capital letter and be followed by up to seven capital letters or numbers. You can optionally put a three-character \u201cextension\u201d on the file if you separate it with a period, e.g., EDITOR.DOC, DRAFT3.CGB, DUNGEON. MAP, etc. <em>You should not enter the \u201cD:\u201d prefix<\/em>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"printer-a-la-mode\">Printer A La Mode<\/h1>\n\n\n\n<p>Different printers offer special print densities and formats such as boldface, underlining, super- and subscripts, double-width, condensed, proportional spacing, etc. To underline a word or phrase, enclose it in , In other words, &lt;CTRL-,&gt; is underlining on, and &lt;CTRL-.&gt; is underlining off. Underlining works only on the 825 printer. If you have GRAFTRAX installed in your MX-80, underlining produces italics.<\/p>\n\n\n\n<p>The following is an advanced technique. You can \u201cdefine\u201d up to ten special characters and print them at any spot in your text. To define a character, set up a format line (sec the discussion of format lines, below) with and enter your definitions such as \u201c1 = 123:2 = 123:3 = 27\u201d, etc. You can then output the CHR$ code of the defined characters by embedding a caret (\u201c^\u201d) in your text, followed by the number (e.g., ^ 4). If you don\u2019t put a number after it, a caret will print; otherwise, the character associated with the number (0-9) will be output. You can also output ASCII characters from within a format line with the \u201cas\u201d format command. For example, \u201cas27:as18\u201d will activate proportional spacing on the 825 printer. Use \u201cas27:as69\u201d for emphasized mode on the MX-80.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"formatting-text\">Formatting Text<\/h1>\n\n\n\n<p>Since you are typing in the raw text, with no margins or line breaks, how does the computer print a nice formatted page? The computer assumes a left margin of five, a right margin of 75, single spacing, a page length of 66, and 50 lines to be printed per page. You can change these \u201cdefault\u201d values with a format line.<\/p>\n\n\n\n<p>A format line is like an embedded command line. The line starts with a \u201cformat character\u201d to prevent the line from being printed out. To get the format character, press . You should get a right-pointed \u201cwedge.\u201d Then type in your commands. All commands are two lowercase letters, usually followed by a number. You can put multiple commands on the same line if you separate them with colons. For example, the following line:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;lm10:rm70:sp2&lt;-<\/code><\/pre>\n\n\n\n<p>will set the left margin to ten, the right margin to 70, and line spacing to two. Here is an explanation of each formatting command. Also see Table 2 for quick reference.<\/p>\n\n\n\n<p>Note that n represents a number, with no space between the command and the number. No real error-checking is performed on the number.<\/p>\n\n\n\n<p><code>as<\/code> <em>n<\/em> <\/p>\n\n\n\n<p>Send byte <em>n<\/em> to printer.<\/p>\n\n\n\n<p><code>cm:<\/code> <\/p>\n\n\n\n<p>Comment line. You can type one screen line of comments. They will not be printed to the printer. They are just for your convenience.<\/p>\n\n\n\n<p><code>cn<\/code> <em>n<\/em> <\/p>\n\n\n\n<p>Centering. If n = 1, then centering will be ON, and all following lines will be centered until reset by <code>cnO<\/code>. If n = 0, then centering is turned OFF.<\/p>\n\n\n\n<p><code>fp<\/code> <\/p>\n\n\n\n<p>Forced paging. Normally, the printer will \u201cpage\u201d, or go on to the next page, when the number of lines printed equals your lines per page (<code>lp<\/code>), which defaults to 50. Forced paging pages to the next page, regardless.<\/p>\n\n\n\n<p><code>lm<\/code> <em>n<\/em> <\/p>\n\n\n\n<p>n = left margin, which should be less than the right margin.<\/p>\n\n\n\n<p><code>ln<\/code> <em>n<\/em> <\/p>\n\n\n\n<p>Print n blank lines.<\/p>\n\n\n\n<p><code>lp<\/code> <em>n<\/em> <\/p>\n\n\n\n<p>Sets lines per page to <em>n<\/em> &#8211; <em>n<\/em> should be less than the page length, to allow some blank space at the bottom of each page.<\/p>\n\n\n\n<p><code>nf:<\/code> <em>filename<\/em> <\/p>\n\n\n\n<p>Will \u201cchain\u201d to next specified file, permitting a document to be split up into many parts. The nf ensures that they will all print as one big file. The formatting commands carry over to each file.<\/p>\n\n\n\n<p><code>pl<\/code> <em>n<\/em> <\/p>\n\n\n\n<p>Sets the page length, which is almost always (and defaults to) 66.<\/p>\n\n\n\n<p><code>rm<\/code> <em>n<\/em> <\/p>\n\n\n\n<p><em>n<\/em> = right margin, which should be less than the maximum width and greater than the left margin.<\/p>\n\n\n\n<p><code>sp<\/code> <em>n<\/em> <\/p>\n\n\n\n<p><em>n<\/em> = 1 single spacing, <em>n<\/em> = 2 double spacing, <em>n<\/em> = 3 triple spacing, etc.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"start-ttie-presses\">Start The Presses<\/h1>\n\n\n\n<p>To print your document, press . You should see:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PRINT: (C\/F)<\/code><\/pre>\n\n\n\n<p>To start printing, just press . The printer head should be positioned at about the start of the page. The \u201cC\/F\u201d indicates any selected option. \u201cC\u201d stands for Continuous Print. You would use this option with pinfeed or roll paper. It will automatically page to the start of each sheet. If you do not select continuous print, the computer will beep at the end of each page and pause. You should put in another sheet of paper and press to continue printing.<\/p>\n\n\n\n<p>Note that pressing a key any other time during printing will abort the printout. The \u201cF\u201d option stands for Fast Printout. It will blank the screen during the printing, increasing printing speed better than 30%. Some people, however, find a blank screen disconcerting. To select one of the options, press either \u201cC\u201d or \u201cF.\u201d The appropriate letter will light up and flash. To reset the option (cancel it), press the key again. Press when you are ready to print the text.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"customizing-scriptor\">Customizing Scriptor<\/h1>\n\n\n\n<p>The program is fairly well-structured, with separate sections for all functions. The control keys are executed via a branching IF\/THEN \u201cbucket brigade.\u201d Just patch in your own command where desired. Some functions you may want to add are: block transfer (performs both block insert and block delete). Search and Replace, Insert from Disk, simple data merge, etc. Machine language programmers may want to try their hand at speeding up certain aspects of the program, such as Insert Line, Delete Line, and even Print Text.<\/p>\n\n\n\n<p>Some useful subroutines are:<\/p>\n\n\n\n<p>GOSUB 540 returns the number of lines the user has typed (not necessarily the maximum number of lines) in EOT. GOSUB 600 clears the top line of the screen and positions the cursor at the first character, ready for a message. GOSUB 460 performs error checking and adjustments on the X-Y position of the cursor. GOSUB 2650 returns an adjusted (uppercase if AL = 1, no cursor controls, etc.) character in A. GOSUB 2730 is a pseudo-INPUT routine that returns IN$. Variable MX controls the maxi- mum number of characters.<\/p>\n\n\n\n<p>TRAP 2170 will vector errors to an \u201cI\/O Error\u201d message. There are two re-entry points for the editor proper: GOTO 650 which clears and \u201crefreshes\u201d the screen, and GOTO 680 which just adjusts the cursor and continues keyboard entry (faster).<\/p>\n\n\n\n<p>Primary variables are: CL &#8211; the pointer to the top line (from 0-#lines) of the screen; X &#8211; the horizontal position of the cursor 2-39; Y &#8211; the vertical position of the cursor on the screen, 1-23; TXS &#8211; the string that contains all the text and is organized in 38 character substrings, one for each line; T$ and T &#8211; \u201ctemporary variables\u201d; A &#8211; usually a keystroke typed; SCR &#8211; the address of the screen memory origin; NL &#8211; number of defined lines; FRL &#8211; the starting line in text of the defined lines; RL &#8211; the starting line in TX$ for reserved lines (the buffer). Several constants are QO, Ql, Q23- which return 0, 1, or 23 (saves memory); L2 = 38; L = 40; B$ is 38 null (CHR$(0)) characters.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"quick-reference\">Quick Reference<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"table-1-editing-commands\">Table 1: Editing Commands<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"control-keys\">Control Keys<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>A<\/td><td>Advance one screen forward<\/td><\/tr><tr><td>B<\/td><td>Back up one screen<\/td><\/tr><tr><td>D<\/td><td>Define Lines<\/td><\/tr><tr><td>F<\/td><td>Print Format Character<\/td><\/tr><tr><td>G<\/td><td>Go to specified line<\/td><\/tr><tr><td>K<\/td><td>Clear all tab settings<\/td><\/tr><tr><td>L<\/td><td>Duplicate defined lines<\/td><\/tr><tr><td>P<\/td><td>Print Document<\/td><\/tr><tr><td>Q<\/td><td>Quit Program<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>SHIFT-INSERT<\/td><td>Insert a line<\/td><\/tr><tr><td>SHIFT-DELETE<\/td><td>Delete a line<\/td><\/tr><tr><td>CTRL-INSERT<\/td><td>Insert a space<\/td><\/tr><tr><td>CTRL-DELETE<\/td><td>Delete a character<\/td><\/tr><tr><td>CLEAR<\/td><td>Erase:<\/td><\/tr><tr><td><\/td><td>A = All<\/td><\/tr><tr><td><\/td><td>R = Remainder<\/td><\/tr><tr><td><\/td><td>D = Defined Lines<\/td><\/tr><tr><td>CAPS\/LOWR<\/td><td>Upper or lowercase<\/td><\/tr><tr><td>ESC<\/td><td>MiniDOS<\/td><\/tr><tr><td>Cursor keys<\/td><td>Moves cursor with two-way scrolling<\/td><\/tr><tr><td>[OPTION]<\/td><td>Non-destructive carriage-return<\/td><\/tr><tr><td>[SELECT]<\/td><td>Save or Recall text<\/td><\/tr><tr><td>[START]<\/td><td>\u201cHome\u201d cursor<\/td><\/tr><tr><td>[CTRL-,]<\/td><td>Underlining ON<\/td><\/tr><tr><td>[CTRL-.]<\/td><td>Underlining OFF<\/td><\/tr><tr><td>^x<\/td><td>Print special character<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"table-2-formatting-commands\">Table 2: Formatting Commands<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Command<\/th><th>Description<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td><strong>as<\/strong> <em>n<\/em><\/td><td>Send ASCII character <em>n<\/em> to printer.<\/td><td>\u2013<\/td><\/tr><tr><td><strong>cm:xxxx<\/strong><\/td><td>Comment line<\/td><td>\u2013<\/td><\/tr><tr><td><strong>cn<\/strong> <em>n<\/em><\/td><td>Centering 1 = on, 0 = off<\/td><td>0 Off<\/td><\/tr><tr><td><strong>fp<\/strong><\/td><td>Forced Paging<\/td><td>\u2013<\/td><\/tr><tr><td><strong>lm<\/strong> <em>n<\/em><\/td><td>Set left margin to <em>n<\/em><\/td><td>5<\/td><\/tr><tr><td><strong>ln<\/strong> <em>n<\/em><\/td><td>Do <em>n<\/em> linefeeds<\/td><td>\u2013<\/td><\/tr><tr><td><strong>lp<\/strong> <em>n<\/em><\/td><td>Set lines per page to <em>n<\/em><\/td><td>50<\/td><\/tr><tr><td><strong>nf:<\/strong> <em>file<\/em><\/td><td>Link to Next File<\/td><td>\u2013<\/td><\/tr><tr><td><strong>pl<\/strong> <em>n<\/em><\/td><td>Page length<\/td><td>66<\/td><\/tr><tr><td><strong>rm<\/strong> <em>n<\/em><\/td><td>Set right margin to <em>n<\/em><\/td><td>75<\/td><\/tr><tr><td><strong>sp<\/strong> <em>n<\/em><\/td><td>Set line spacing<\/td><td>1 (single)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Program 1<\/h1>\n\n\n\n<pre class=\"wp-block-code alignwide has-small-font-size\"><code>100 REM SCRIPTOR WORD PROCESSOR\n110 GOTO 5000\n455 RUN \"D:SCRIPTOR\"\n460 PF=Q0:IF X&lt;2 THEN X=39:Y=Y-Q1\n470 IF X>39 THEN X=2:Y=Y+Q1\n480 IF Y&lt;Q1 THEN Y=Q1:CL=CL-Q1:PF=Q1\n490 IF Y>Q23 THEN Y=Q23:CL=CL+Q1:PF=Q1\n500 IF CL&lt;Q0 THEN CL=Q0\n510 IF CL>(MXL-Q23) THEN CL=MXL-Q23\n520 IF PF=Q0 THEN RETURN\n530 LOC=CL*L2+Q1:T=USR(SCRZAP,ADR(TX$(LOC))):RETURN\n540 REM *** FIND END OF TEXT\n550 P=ADR(TX$):T=P+RL*L2-Q1\n560 A=USR(EDCOM,T,P,2):A=A-P\n570 LC=A:EOT=INT(A\/L2)\n580 RETURN\n590 REM *** ERASE TOP LINE\n600 COLOR 32:PLOT Q1,Q0:DRAWTO L2,Q0:PLOT Q1,Q0:RETURN\n610 REM *** START OF EDITOR\n611 MXL=INT(FRE(Q0)\/40)-25:RL=MXL+1\n612 DIM TX$((MXL+Q23)*L2):? CHR$(125);\n613 TX$=CHR$(Q0):TX$((MXL+Q23)*L2)=TX$:TX$(2)=TX$\n620 SCR=PEEK(88)+256*PEEK(89):POKE 559,46:POKE 842,12\n630 X=2:Y=Q1:CL=Q0:POKE 702,Q0\n640 REM *** ENTRY FOR EACH PAGE\n650 POKE 54286,192\n655 POSITION Q0,Q0:? \"{7 SPACES}Scriptor Word Processor\";:COLOR 32:DRAWTO L2,Q0:PLOT 32,Q0\n660 LOC=CL*L2+Q1:T=USR(SCRZP,ADR(TX$(LOC)))\n670 IF TF THEN TF=Q0:GOTO 810\n675 IF FIRST=Q0 THEN POSITION 31,Q0:? MXL;\" Free\";:TF=Q1:FIRST=Q1\n680 POKE 53248,X*4+44\n690 IF Y=OY THEN 740\n710 ADJOY=OY*4+16:ADJY=Y*4+16\n720 A=USR(CURSOR,PMB+ADJOY,Q0):A=USR(CURSOR,PMB,ADJY,15):OY=Y\n740 K=PEEK(53279):IF K&lt;7 THEN 2570\n770 T=PEEK(764):IF T=255 OR T=39 OR T=154 THEN 740\n775 IF T=166 THEN POKE 764,255:GOTO 1570\n790 POKE 694,Q0:A=USR(GCHAR)\n800 IF TF THEN 650\n810 IF A&lt;32 OR A>122 OR A=96 THEN 880\n820 A=A-32*(A&lt;96)\n830 POKE SCR+X+L*Y,A\n840 LOC=(CL+Y-Q1)*L2+X-Q1\n850 TX$(LOC,LOC)=CHR$(A)\n860 X=X+Q1-BF:GOSUB 460\n870 BF=Q0:GOTO 680\n880 IF A&lt;>155 THEN 910\n890 GOSUB 2640:POKE SCR+X+L*Y,94:TX$(LOC,LOC+L2-X+Q1)=B$:X=2:Y=Y+1\n900 TX$(LOC,LOC)=CHR$(94):GOSUB 460:GOTO 650\n910 IF A=6 THEN A=127:GOTO 830\n920 IF A=28 THEN Y=Y-Q1:GOSUB 460:GOTO 680\n930 IF A=29 THEN Y=Y+Q1:GOSUB 460:GOTO 680\n940 IF A=30 THEN X=X-Q1:GOSUB 460:GOTO 680\n950 IF A=96 THEN A=74:GOTO 830\n960 IF A=31 THEN X=X+Q1:GOSUB 460:GOTO 680\n970 IF A=Q0 THEN A=72:GOTO 830\n980 IF A=126 THEN X=X-Q1:GOSUB 460:A=Q0:BF=Q1:GOTO 830\n1040 IF A&lt;>255 THEN 1070\n1050 A=USR(EDCOM,ADR(TX$((CL+Y-Q1)*L2+X-Q1)),ADR(TX$(MXL*L2+37)),Q0)\n1060 GOTO 650\n1070 IF A&lt;>254 THEN 1100\n1080 A=USR(EDCOM,ADR(TX$((CL+Y-Q1)*L2+X-Q1)),ADR(TX$(MXL*L2+37)),Q1)\n1090 GOTO 650\n1100 IF A&lt;>157 THEN 1160\n1110 GOSUB 590:? \"Insert line\";\n1120 GOSUB 540:POKE 559,Q0\n1130 FOR I=EOT+(EOT&lt;MXL) TO CL+Y STEP -Q1:T$=TX$((I-Q1)*L2+Q1,I*L2):TX$(I*L2+Q1,I*L2+L2)=T$:NEXT I\n1140 T=(CL+Y-Q1)*L2:TX$(T+Q1,T+L2)=B$\n1150 X=2:POKE 559,46:GOTO 650\n1160 IF A=159 THEN GOSUB 590:? \"Tab set at \";X-Q1:TF=Q1:TB$(X-Q1,X-Q1)=\"*\":GOTO 740\n1170 IF A=158 THEN GOSUB 590:? \"Tab cleared at \";X-Q1:TF=Q1:TB$(X-Q1)=CHR$(Q0):GOTO 740\n1180 IF A&lt;>127 THEN 1230\n1190 IF TB$=B$ THEN GOSUB 590:? \"No tabs set\":TF=Q1:GOTO 740\n1200 FOR I=X TO L2:IF TB$(I,I)=CHR$(Q0) THEN NEXT I:T=L2:X=2:Y=Y+Q1:GOSUB 460:GOTO 1200\n1210     T=I:I=L2:NEXT I\n1220 X=T+Q1:GOTO 680\n1230 IF A&lt;>156 THEN 1290\n1240 GOSUB 590:? \"Delete Line\";\n1250 GOSUB 540:POKE 559,Q0\n1260 FOR I=CL+Y-Q1 TO EOT:T$=TX$((I+Q1)*L2+Q1,(I+2)*L2):TX$(I*L2+Q1,I*L2+L2)=T$:NEXT I\n1270 T=EOT*L2:TX$(T+Q1,T+L2)=B$\n1280 X=2:POKE 559,46:GOTO 650\n1290 IF A=11 THEN GOSUB 590:TF=Q1:? \"Clear all tabs\":TB$=B$:GOTO 740\n1320 IF A&lt;>125 THEN 1450\n1330 GOSUB 590:? \"Erase: \";\n1340 GOSUB 2650\n1350 IF A=155 THEN 650\n1355 IF A&lt;>65 THEN 1370\n1360 ? \"ALL - \";:GOSUB 2540\n1365 GOTO 613\n1370 IF A&lt;>82 THEN 1380\n1372 ? \"Remainder - \";:GOSUB 2540:GOSUB 2640\n1375 TX$(LOC)=CHR$(Q0):TX$((MXL+Q23)*L2)=CHR$(Q0):TX$(LOC+Q1)=TX$(LOC):GOTO 650\n1380 IF A&lt;>68 OR NL=-Q1 THEN 650\n1400 ? \"Defined Lines - \";\n1410 GOSUB 2540:POKE 559,Q0:GOSUB 540\n1420 FOR I=FRL=-Q1 TO EOT:T$=TX$((I+NL+Q1)*L2+Q1,(I+NL+2)*L2):TX$(I*L2+Q1,I*L2+L2)=T$:NEXT I\n1430 FOR I=EOT-NL TO EOT:TX$(I*L2+Q1,I*L2+L2)=B$:NEXT I:NL=-Q1\n1440 POKE 559,46:GOTO 650\n1450 IF A&lt;>4 THEN 1810\n1460 GOSUB 590:? \"Define Lines\";\n1470 FL=CL:FR=Y:FRL=FL+FR:NL=Q0\n1480 POKE SCR+1+L*(FR+NL),223\n1490 LOC=CL*L2+(FR+NL-Q1)*L2:T=RL*L2+NL*L2:T$=TX$(LOC+Q1,LOC+L2):TX$(T+Q1,T+L2)=T$\n1500 GOSUB 2650\n1510 IF A=29 AND FR+NL&lt;22 THEN NL=NL+Q1:GOTO 1480\n1520 IF A=28 AND FR+NL>FR THEN POKE SCR+1+L*(FR+NL),Q0:NL=NL-Q1\n1530 IF A=155 THEN 1550\n1540 GOTO 1500\n1550 FOR I=Q0 TO NL:POKE SCR+1+L*(FR+I),Q0:NEXT I:GOTO 650\n1570 POKE 53248,Q0:PRINT CHR$(125):POSITION 13,Q0:? \" HELP Screen \"\n1580 ? \"{DOWN}{TAB}{3 SPACES}Control Keys:\"\n1590 ? \"A=Advance Page B=Page Back\"\n1595 ? \"D=Define Lines F=Print form at char.\"\n1610 ? \"K=Kill all tabs L=Line Duplicate\"\n1620 ? \"P=Print text{4 SPACES}Q=Quit\"\n1630 ? \"Atari Key=Cancel Command\":?\n1635 ? \"^x Print special character\"\n1640 ? \"{DOWN}&#91;CLEAR] Erase:All Defined Lines\":POKE 85,16:? \"Remainder\"\n1650 ? \"&#91;OPTION] Non-destructive CR\"\n1660 ? \"{DOWN}&#91;SELECT] Filer:Recall or Save\"\n1670 ? \"{DOWN}&#91;START] 'Home' cursor. Press twice to go to start of text.\"\n1680 ? \"{DOWN}&#91;ESC] Mini DOS\"\n1700 ? \"{DOWN}Press RETURN.\":A=USR(GCHAR):GOTO 650\n1810 IF A&lt;>12 THEN 1910\n1820 GOSUB 590:? \"Duplicate defined lines\";\n1830 IF NL&lt;Q0 THEN 650\n1840 FOR I=Q0 TO NL\n1850     IF CL+Y+I-Q1>MXL THEN I=NL:GOTO 1900\n1860     T=RL*L2+I*L2\n1870     T2=CL*L2+(Y+I-Q1)*L2\n1880     T$=TX$(T+Q1,T+L2)\n1890     TX$(T2+Q1,T2+L2)=T$\n1900 NEXT I:Y=Y+NL+Q1:GOSUB 460:GOTO 650\n1910 IF A&lt;>27 THEN 2400\n1920 POSITION 2,Q0:? \"Directory,Lock,Unlock,Rename,Scratch?\"\n1930 GOSUB 2650:J=A\n1940 IF J&lt;>76 AND J&lt;>85 AND J&lt;>83 AND J&lt;>68 AND J&lt;>82 THEN 1930\n1950 IF J&lt;>ASC(\"D\") THEN 2020\n1960 ? CHR$(125):POKE 53248,Q0\n1970 TRAP 2170:OPEN #2,6,Q0,\"D:*.*\"\n1980 INPUT #2,T$:? T$:IF LEN (T$)&lt;17 THEN 2000\n1990 GOTO 1980\n2000 CLOSE #2:TRAP 40000:GOSUB 590:? \"Press a key...\";:OK=1:GOSUB 2650:IF A=27 THEN 1920\n2010 GOTO 650\n2020 GOSUB 590:J=A\n2030 IF J=76 THEN ? \" LOCK  >\";:J=35\n2040 IF J=83 THEN ? \"SCRATCH>\";:J=33\n2050 IF J=ASC(\"R\") THEN 2130\n2070 ? \"Enter Filename:\";\n2080 MX=12:AL=Q1:GOSUB 2720\n2090 T$(3)=IN$:T$(1,2)=\"D:\":POSITION 10,Q0:? DEL$(1,15);\n2100 TRAP 2170:IF J=33 THEN POSITION 24,Q0:GOSUB 2540:COLOR 32:PLOT 24,Q0:DRAWTO 38,Q0\n2110 TRAP 2170:XIO J,#2,Q0,Q0,T$:TRAP 40000\n2120 TRAP 40000:GOTO 650\n2130 GOSUB 590:? \"RENAME>Current name? \";:MX=12:GOSUB 2720:T$(3)=IN$:T$(1,2)=\"D:\"\n2140 GOSUB 590:? \"RENAME>New name? \";:MX=12:GOSUB 2720:T$(LEN(T$)+Q1)=\",\":T$(LEN(T$)+Q1)=IN$\n2150 TRAP 2170:XIO 32,#2,Q0,Q0,T$:TRAP 40000\n2160 GOTO 650\n2170 TRAP 2170:POKE 559,46:CLOSE #2:CLOSE #3:GOSUB 590:? CHR$(253);\"I\/O Error #\";PEEK(195);:TF=Q1:GOTO 740\n2180 GOSUB 590:? \"Save or Recall\";\n2190 ICCOM=834+48:ICBAL=ICCOM+2:ICBLL=ICBAL+4:ICSTAT=835+48:REM IOCB#3\n2200 GOSUB 2650:IF A=155 THEN 1380\n2210 IC A&lt;>ASC(\"S\") THEN 2290\n2220 GOSUB 600:? \"SAVE:{3 SPACES}File name? \";:MX=12:GOSUB 2720:T$(3)=IN$:T$(1,2)=\"D:\":GOSUB 550\n2230 POSITION 5,0:? DEL$(1,12);\"ING\";\n2232 TRAP 2238:OPEN #3,4,Q0,T$:CLOSE #3:GOSUB 600:? \"REPLACE:  \";IN$;\" - \";:GOSUB 2540\n2233 GOSUB 600:? \" REPLACING \";IN$:GOTO 2240\n2238 CLOSE #3:IF PEEK(195)&lt;>170 THEN 2170\n2240 TRAP 2170:OPEN #3,8,Q0,T$\n2250 POKE ICCOM,11:P=ADR(TX$):POKE ICBAL+Q1,INT(P\/256):POKE ICBAL,P-(INT(P\/256)*256)\n2260 LN=(CL+EOT+Q1)*L2:POKE ICBLL+Q1,INT(LN\/256):POKE ICBLL,LN-(INT(LN\/256)*256)\n2270 A=USR(ADR(CIO$),48):ERR=PEEK(ICSTAT):POKE 195,ERR:IF ERR>1 THEN 2170\n2280 CLOSE #3:TRAP 40000:POKE 53279,Q0:GOTO 650\n2290 IF A&lt;>ASC(\"R\") THEN 650\n2300 LK=Q0\n2310 GOSUB 590:? \"RECALL: Filename? \";:MX=12:GOSUB 2720:T$(3)=IN$:T$(1,2)=\"D:\"\n2315 LOC=(CL+Y-Q1)*L2+Q1:TX$(LOC)=CHR$(Q0):TX$((MXL+Q23)*L2)=CHR$(Q0):TX$(LOC+Q1)=TX$(LOC)\n2320 TRAP 2170:POSITION 8,0:? DEL$(1,8);\"ING\";:OPEN #3,4,Q0,T$\n2330 ICCOM=834+48:ICBAL=ICCOM+2:ICBLL=ICBAL+4\n2340 POKE ICCOM,5:P=ADR(TX$((CL+Y-Q1)*L2+Q1)):POKE ICBAL+Q1,INT(P\/256):POKE ICBAL,P-(INT(P\/256)*256)\n2350 LN=(MXL-(CL+Y-Q1))*L2:POKE ICBLL+Q1,INT(LN\/256):POKE ICBLL,LN-(INT(LN\/256)*256)\n2360 A=USR(ADR(CIO$),48):ERR=PEEK(ICSTAT):POKE 195,ERR:IF ERR>1 AND ERR&lt;>136 THEN 2170\n2370 CLOSE #3:POKE 53279,Q0:TRAP 40000:IF LK=Q0 THEN 650\n2380 CL=Q0:Y=Q1:X=2:T=USR(SCRZAP,ADR(TX$))\n2390 GOTO 2950\n2400 IF A&lt;>17 THEN 2410\n2403 GOSUB 600:? \"QUIT: \";:GOSUB 2540\n2405 POKE 53277,Q0:POKE 53248,Q0:POKE 53774,192:POKE 16,192:GRAPHICS Q0:POKE 702,64:END\n2410 IF A=16 THEN 2840\n2420 IF A=Q1 THEN CL=CL+Q23:Y=Q1:GOSUB 460:GOTO 650\n2430 IF A=2 THEN CL=CL-Q23:Y=Q1:GOSUB 460:GOTO 650\n2500 GOTO 640\n2540 ? \"Are you sure?\";:GOSUB 2650:IF 1-(A=121 OR A=89) THEN POP :GOTO 650\n2550 RETURN\n2570 REM ***  Handle console keys\n2580 POKE 764,130:A=USR(GCHAR):POKE 77,Q0\n2590 IF K=5 THEN 2180\n2600 IF K=3 THEN X=2:Y=Y+Q1:GOSUB 460:GOTO 680\n2610 IF K=6 AND Y=Q1 AND X=2 THEN CL=Q0:X=2:GOTO 650\n2620 IF K=6 THEN Y=Q1:X=2:GOTO 650\n2630 GOTO 740\n2640 LOC=(CL+Y-Q1)*L2+X-Q1:RETURN\n2650 T=Q0:REM GET A KEY\n2660 IF PEEK(20)>20 THEN T=Q1-T:POKE 20,Q0:POKE 755,T*2\n2665 IF OK THEN IF PEEK(53279)=5 THEN POKE 755,2:POKE 559,46:POP :POKE 764,130:A=USR(GCHAR):OK=0:GOTO 2180\n2670 IF PEEK(764)=255 THEN 2660\n2680 IF PEEK(764)=154 THEN 2660\n2690 IF PEEK(764)=39 THEN POKE 764,255:SOUND Q0,5,12,4:POP :FOR T=1 TO 5:NEXT T:SOUND Q0,Q0,Q0,Q0:GOSUB 2710:GOTO 650\n2700 TRAP 2700:A=USR(GCHAR):TRAP 40000:IF A>96 AND A&lt;123 THEN A=A-32*AL\n2710 POKE 755,2:POKE 559,46:RETURN\n2720 REM ***  PSEUDO-INPUT\n2730 IN$=\"\"\n2740 ? CHR$(21);CHR$(30);:GOSUB 2650:? CHR$(32);CHR(30);\n2750 IF A=155 THEN 2820\n2760 IF A=126 AND LEN(IN$)>1 THEN IN$=IN$(1,LEN(IN$)-Q1):? CHR$(A);:GOTO 2740\n2770 IF A=126 AND LEN(IN$)=Q1 THEN ? CHR$(A);:GOTO 2730\n2780 IF LEN(IN$)=MX THEN 2740\n2790 IF (A&lt;32 OR A>90) AND A&lt;96 OR A>122 THEN 2740\n2800 ? CHR$(A);:IN$(LEN(IN$)+Q1)=CHR$(A)\n2810 GOTO 2740\n2820 AL=Q1:IF IN$=\"\" THEN POP :GOTO 650\n2830 RETURN\n2840 REM ***  Printer Output\n2850 GOSUB 590:? \"PRINT: (C\/F)\"\n2860 CON=Q0:F=Q0:FOR I=Q0 TO 9:PC(I)=48+I:NEXT I\n2870 GOSUB 2650:IF A=155 THEN 2910\n2880 IF A=67 THEN CON=1-CON:POSITION 10,Q0:? CHR$(67+128*CON);:GOTO 2870\n2890 IF A=70 THEN F=1-F:POSITION 12,Q0:? CHR$(70+128*F):GOTO 2870\n2900 GOTO 2870\n2910 TRAP 2170:OPEN #2,8,Q0,\"P:\"\n2920 GOSUB 590:? \"Printing...\"\n2930 LM=5:RM=75:CN=Q0:NL=Q0\n2940 SP=1:PL=66:LP=50:C=LM\n2950 GOSUB 540:IF F=1 THEN POKE 559,Q0\n2960 FOR P=Q1 TO LC\n2970     IF PEEK(764)&lt;255 THEN GOSUB 2650:POP :GOTO 3140\n2980     Z=ASC(TX$(P))\n2990     IF CN=Q1 AND Z&lt;>127 THEN 3460\n3000     IF Z&lt;62 OR (Z>96 AND Z&lt;123) THEN 3070\n3010     IF Z=94 THEN GOSUB 3210:GOSUB 3150:GOTO 3120\n3020     IF Z=72 THEN UL=Q1:PUT #2,27:PUT #2,52:GOTO 3120\n3030     IF Z=74 THEN UL=Q0:PUT #2,27:PUT #2,53:GOTO 3120\n3040     T=ASC(TX$(P+Q1)):IF Z=62 AND T>15 AND T&lt;26 THEN PUT #2,PC(T-16):P=P+1:GOTO 3120\n3060     IF Z=127 THEN 3230\n3070     IF C=LM THEN FOR I=Q1 TO LM:PUT #2,32:NEXT I\n3080     C=C+1\n3090     PUT #2,Z+32*(Z&lt;64)\n3100     T=Q0:IF RM-C>=10 THEN 3110\n3105     FOR I=1 TO LEN(BRK$):IF Z+32&lt;>ASC(BRK$(I,I)) THEN NEXT I:GOTO 3110\n3107     TT=ASC(TX$(P+Q1)):IF TT=Q0 OR TT=94 OR Z=Q0 OR Z=13 THEN I=LEN(BRK$):NEXT I:GOSUB 3150:T=Q1\n3110     IF T=Q1 AND ASC(TX$(P+Q1))=Q0 THEN P=P+Q1:IF P&lt;LC THEN 3110\n3120 NEXT P\n3130 GOSUB 3150\n3140 PRINT #2,CLOSE #2:POKE 559,46:TRAP 40000:GOTO 650\n3150 FOR I=Q1 TO SP:PRINT #2:NEXT I\n3160 C=LM:NL=NL+SP:PRINT #2:NEXT I\n3160 C=LM:NL=NL+SP:IF CN&lt;Q0 THEN CN=Q1\n3170 IF NL&lt;LP THEN RETURN\n3180 IF CON=Q0 THEN FOR I=Q0 TO 255 STEP 17:SOUND Q0,255-I,Q0,15-INT(I\/17):NEXT I:T=USR(GCHAR):GOTO 3200\n3190 FOR I=Q1 TO PL-LP:PRINT #2:NEXT I\n3200 NL=Q0:RETURN\n3210 REM ***  SKIP TRAILING BLANKS\n3220 T=INT(P\/L2):P=(T+Q1-(P\/L2=T))*L2:RETURN\n3230 REM Handle special formatting\n3240 P=P+Q1\n3250 CM$=TX$(P,P+Q1):T$=\"\"\n3260 FOR I=P+2 TO LC\n3270     IF TX$(I,I)>=CHR$(16) AND TX$(I,I)&lt;CHR$(26) THEN T$(LEN(T$)+Q1)=CHR$(ASC(TX$(I,I))+32):NEXT I\n3280 V=Q0:P=I:TRAP 3290:V=VAL(T$)\n3290 TRAP 2170:IF CM$=\"cn\" THEN CN=V\n3300 IF CM$=\"ln\" THEN FOR J=Q1 TO V:GOSUB 3150:NEXT J\n3310 IF CM$=\"sp\" THEN SP=V\n3320 IF CM$=\"pl\" THEN PL=V\n3330 IF CM$=\"lp\" THEN LP=V\n3340 IF CM$=\"lm\" AND V>0 THEN LM=V:C=V\n3350 IF CM$=\"rm\" AND V>0 THEN RM=V\n3360 IF CM$=\"fp\" THEN GOSUB 3180:POKE 559,46-46*F\n3370 IF CM$=\"as\" THEN PUT #2,V\n3380 IF CM$=\"cm\" THEN FOR I=P TO P+79:IF TX$(I,I)&lt;>\"^\" THEN NEXT I:I=I-Q1\n3390 IF CM$=\"cm\" THEN P=I+Q1:GOTO 3450\n3400 IF CM$&lt;>\"nf\" THEN 3430\n3410 T$=\"D:\":FOR I=Q0 TO 11:Z=ASC(TX$(P+I,P+I)):IF Z&lt;>94 AND P+I&lt;=LC THEN T$(3+I)=CHR$(Z+32*(Z&lt;63)):NEXT I\n3415 TX$(Q1)=CHR$(Q0):TX$((MXL+Q23)*L2)=CHR$(Q0):TX$(2)=TX$\n3420 POKE 559,46:GOSUB 590:? \"Printing \";T$:LK=Q1:CL=Q0:Y=Q1:GOTO 2320\n3430 IF ASC(CM$)>15 AND ASC(CM$)&lt;26 THEN PC(ASC(CM$)-16)=V\n3440 IF TX$(P,P)&lt;>\"^\" AND P&lt;LC THEN 3240\n3450 GOSUB 3220:P=P+Q1:GOTO 2970\n3460 REM *** CENTRE STRING\n3470 LN=Q0:FOR I=P TO P+79:IF TX$(I,I)&lt;>\"^\" THEN LN=LN+Q1:NEXT I\n3480 WIDTH=RM-LM:UL=Q0:IF TX$(P,P)=CHR$(72) THEN UL=Q1\n3490 FOR I=Q1 TO (WIDTH-LN)\/2+LM:PUT #2,32:NEXT I\n3500 C=C+I:CN=-Q1:GOTO 2990\n5000 REM  INITIALISATION\n5010 GRAPHICS 17:SETCOLOR 4,1,10\n5020 DL=PEEK(560)+256*PEEK(561)+4:POKE DL+5,7:POKE DL+10,7:POKE DL+14,7\n5030 POSITION 6,4:? #6;\"scriptor\":POSITION 3,7:? #6;\"WORD PROCESSOR\"\n5040 ? #6:? #6;\" \";CHR$(136);CHR$(227);CHR$(153);CHR$(152);CHR$(147)\n5045 ? #6:? #6;\" small systems svcs\";CHR$(14);\n5050 ? #6:? #6;\"{3 SPACES}CHARLES BRANNON\"\n5070 Q0=0:Q1=1:Q23=23:RL=MXL+Q1:SCRZAP=1680:CURSOR=1739:EDCOM=1536:AL=1:L2=38:GCHAR=1303:SND=1331\n5080 DIM T$(79),IN$(20),B$(L2),TB$(L2),CM$(2),BRK$(8),PC(9),DEL$(20),CIO$(7)\n5090 B$=CHR$(Q0):B$(L2)=B$:B$(2)=B$:DEL$=CHR$(254):DEL$(20)=DEL$:DEL$(2)=DEL$\n5100 TB$=B$:BRK$=\" ,.!?;:-\":CIO$=\"hhh\":CIO$(4)=CHR$(170):CIO$(5)=\"LV\":CIO$(7)=CHR$(228)\n5110 OPEN #1,4,Q0,\"K:\"\n5120 T=Q0:OY=Q0:CL=Q0:L=40:NL=-Q1\n5130 PMB=PEEK(106)-8:POKE 559,46:POKE 53248,Q0\n5140 POKE 54279,PMB:POKE 53277,3\n5150 PMB=PMB*256+512:POKE 704,56\n5160 FOR I=Q0 TO 255:POKE PMB+I,Q0:POKE 708+3*RND(Q0),PEEK(53770):NEXT I\n5180 SETCOLOR 4,8,2\n5250 FOR I=0 TO 70:READ A:POKE 1280+I,A:CHECKSUM=CHECKSUM+A:POKE 708+3*RND(Q0),PEEK(53770):NEXT I\n5290 FOR I=0 TO 247:READ A:POKE 1536+I,A:CHECKSUM=CHECKSUM+A:POKE 708+3*RND(Q0),PEEK(53770):NEXT I\n5300 IF CHECKSUM&lt;>47765 THEN PRINT CHR$(253);\"Error in DATA statements...\":END\n5310 DATA 72,138,72,169,10,162,2,141,10,212,141,24,208,141,26,208,142,23,208,104,170,104,64\n5320 DATA 104,173,252,2,201,255,240,249,133,124,162,255,142,252,2,32,51,5,32,254,246,133,212,169,0,133,213,96\n5330 DATA 162,0,142,0,210,162,15,142,1,210,160,0,234,200,208,252,202,16,244,96\n5340 DATA 216,104,104,133,213,104\n5350 DATA 133,212,104,133,204,104\n5360 DATA 133,203,104,104,208,47\n5370 DATA 32,109,6,165,205,76\n5380 DATA 43,6,160,0,177,205\n5390 DATA 200,145,205,198,205,165\n5400 DATA 205,201,255,208,2,198\n5410 DATA 206,197,212,208,235,165\n5420 DATA 206,197,213,208,229,160\n5430 DATA 0,177,205,200,145,205\n5440 DATA 136,152,145,205,96,201\n5450 DATA 1,240,3,76,221,6\n5460 DATA 32,109,6,76,91,6\n5470 DATA 160,1,177,212,136,145\n5480 DATA 212,230,212,208,2,230\n5490 DATA 213,165,213,197,206,208\n5500 DATA 237,165,212,197,205,208\n5510 DATA 231,169,0,168,145,212\n5520 DATA 96,165,212,133,205,165\n5530 DATA 213,133,206,160,0,177\n5540 DATA 205,201,94,240,18,230\n5550 DATA 205,208,2,230,206,165\n5560 DATA 206,197,204,208,238,165\n5570 DATA 205,197,203,208,232,96\n5580 DATA 165,88,133,203,165,89\n5590 DATA 133,204,104,104,133,206\n5600 DATA 104,133,205,162,24,76\n5610 DATA 188,6,160,0,177,205\n5620 DATA 200,200,145,203,136,192\n5630 DATA 38,208,245,24,169,38\n5640 DATA 101,205,133,205,144,2\n5650 DATA 230,206,24,169,40,101\n5660 DATA 203,133,203,144,2,230\n5670 DATA 204,202,208,218,96,104\n5680 DATA 104,133,204,104,133,203\n5690 DATA 104,168,104,145,203,200\n5700 DATA 192,4,208,249,96,160\n5710 DATA 0,177,212,208,20,198\n5720 DATA 212,165,212,201,255,208\n5730 DATA 2,198,213,197,203,208\n5740 DATA 238,165,213,197,204,208\n5750 DATA 232,96\n6000 GRAPHICS 0:POKE 559,Q0:POKE 16,64:POKE 53774,64\n6010 FOR I=5000 TO 5900 STEP 100:? CHR$(125):POSITION 2,3:FOR J=I+90 TO I STEP -10:? J:NEXT J:? 110:? \"CONT\"\n6020 POKE 712,PEEK(53770):POKE 842,13:POSITION 0,0:STOP \n6030 POKE 842,12:NEXT I\n6040 SETCOLOR 2,12,Q0:SETCOLOR 4,8,10:SETCOLOR Q1,Q0,12:POKE 752,Q1\n6050 POKE PEEK(560)+256*PEEK(561)+3,194:POKE 512,0:POKE 513,5\n6060 ? CHR$(125):? :? :FOR I=6000 TO 6060 STEP 10:? I:NEXT I:? \"GOTO610\":POSITION 0,0:POKE 842,13:STOP<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Charles Brannon &#8211; Editorial Assistant Scriptor is an easy-to-use, full-scrolling, character-oriented, multi-function word processor, requiring an Atari 400\/800 with a minimum of 32K of memory (40K recommended), an Epson MX-80 or Atari 825 printer, and an Atari disk drive. It is programmed in both BASIC and machine language. For instructions on typing in the program, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":140,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Scriptor is an easy-to-use, full-scrolling, character-oriented, multi-function word processor, requiring an Atari 400\/800 with a minimum of 32K of memory (40K recommended), an Epson MX-80 or Atari 825 printer, and an Atari disk drive. It is programmed in both BASIC and machine language. For instructions on typing in the program, see the section under: Typing It In.\n\n#basic #retrocomputing #atari","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[18],"tags":[22,17],"class_list":["post-137","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-basic-text-editors","tag-atari-basic","tag-retrocomputing"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/scriptor-page-01.jpeg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/posts\/137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=137"}],"version-history":[{"count":9,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/posts\/137\/revisions"}],"predecessor-version":[{"id":158,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/posts\/137\/revisions\/158"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/media\/140"}],"wp:attachment":[{"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}