{"id":125,"date":"2026-04-13T10:10:49","date_gmt":"2026-04-13T10:10:49","guid":{"rendered":"https:\/\/permacomputer.solarpunk.au\/?p=125"},"modified":"2026-04-13T10:10:49","modified_gmt":"2026-04-13T10:10:49","slug":"wrdpro","status":"publish","type":"post","link":"https:\/\/permacomputer.solarpunk.au\/?p=125","title":{"rendered":"WRDPRO"},"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-large\"><img loading=\"lazy\" decoding=\"async\" width=\"788\" height=\"1024\" data-id=\"127\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-01-1-788x1024.jpg\" alt=\"\" class=\"wp-image-127\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-01-1-788x1024.jpg 788w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-01-1-231x300.jpg 231w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-01-1-768x998.jpg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-01-1-1182x1536.jpg 1182w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-01-1-1576x2048.jpg 1576w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-01-1-scaled.jpg 1970w\" sizes=\"auto, (max-width: 788px) 100vw, 788px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"1024\" data-id=\"130\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-02-787x1024.jpg\" alt=\"\" class=\"wp-image-130\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-02-787x1024.jpg 787w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-02-230x300.jpg 230w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-02-768x1000.jpg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-02-1180x1536.jpg 1180w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-02-1573x2048.jpg 1573w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-02-scaled.jpg 1966w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"1024\" data-id=\"129\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-03-786x1024.jpg\" alt=\"\" class=\"wp-image-129\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-03-786x1024.jpg 786w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-03-230x300.jpg 230w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-03-768x1001.jpg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-03-1179x1536.jpg 1179w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-03-1572x2048.jpg 1572w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-03-scaled.jpg 1965w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"1024\" data-id=\"131\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-04-787x1024.jpg\" alt=\"\" class=\"wp-image-131\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-04-787x1024.jpg 787w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-04-230x300.jpg 230w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-04-768x1000.jpg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-04-1180x1536.jpg 1180w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-04-1573x2048.jpg 1573w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-04-scaled.jpg 1966w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"1024\" data-id=\"134\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-05-786x1024.jpg\" alt=\"\" class=\"wp-image-134\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-05-786x1024.jpg 786w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-05-230x300.jpg 230w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-05-768x1001.jpg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-05-1179x1536.jpg 1179w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-05-1572x2048.jpg 1572w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-05-scaled.jpg 1965w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"1024\" data-id=\"133\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-06-787x1024.jpg\" alt=\"\" class=\"wp-image-133\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-06-787x1024.jpg 787w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-06-230x300.jpg 230w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-06-768x1000.jpg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-06-1180x1536.jpg 1180w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-06-1573x2048.jpg 1573w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-06-scaled.jpg 1966w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"785\" height=\"1024\" data-id=\"132\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-07-785x1024.jpg\" alt=\"\" class=\"wp-image-132\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-07-785x1024.jpg 785w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-07-230x300.jpg 230w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-07-768x1002.jpg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-07-1177x1536.jpg 1177w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-07-1570x2048.jpg 1570w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-07-scaled.jpg 1962w\" sizes=\"auto, (max-width: 785px) 100vw, 785px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"785\" height=\"1024\" data-id=\"128\" src=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-08-785x1024.jpg\" alt=\"\" class=\"wp-image-128\" srcset=\"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-08-785x1024.jpg 785w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-08-230x300.jpg 230w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-08-768x1002.jpg 768w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-08-1177x1536.jpg 1177w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-08-1570x2048.jpg 1570w, https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-08-scaled.jpg 1962w\" sizes=\"auto, (max-width: 785px) 100vw, 785px\" \/><\/figure>\n<\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"wrdpro\">Word Processing Text Editor Rev.\u00a01.1<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"john-w.-swain\">John W. Swain<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"scientific-research-inc.\">SCIENTIFIC RESEARCH INC.<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"brown-r.w.-1977-basic-software-library.-7-professional-programs-vol-7.-key-biscayne-fla-scientific-research-inst.\">Brown, R.W. (1977) Basic software library. 7, professional programs Vol 7. Key Biscayne, Fla: Scientific Research Inst.<\/h2>\n\n\n\n<p>This program is designed to allow owners of micro-computers the capability of rearranging text material and then printing it out in a variety of formats. While this version is not quite as comprehensive as our WWP rev:30 program, it should easily run on most systems with disk extended Basic and 15K Bytes of free user memory for execution.<\/p>\n\n\n\n<p>There are a few statements appearing in this program that may not be in the version of Basic you are using. The first is the Console statement, if your (\/) Basic doesn\u2019t have this command then just remove it everywhere it appears in 1 the program, no other conversion is necessary. Line Input and Instr are two more statements that may not be in the version of Basic you are using. The Instr statement may be replaced by a conversion subroutine using the MID$ statement, if necessary. A typical conversion for the Instr statement would a be similar to the subroutine used on line 4075 on page 243 of Volume I. Here F1 is set equal to one (1) and the SST statement would be replaced by the MID$ statement; see appendix B, page 925: Volume V.<\/p>\n\n\n\n<p>This program offers nine major modes of operation with a number of submode operations. Individuals requiring a considerably more comprehensive version, should complete a copy of our software licensing agreement included at the end of this volume and return it with an order or contact us directly to obtain more details.<\/p>\n\n\n\n<p>Following the source code listing for WRDPRO are a series of sample runs which illustrate the usefulness and versatility of the routines contained within this program. It should be noted that this version of WRDPRO rev:1 can only utilize text files that fit entirely into the working memory of the system being used. Therefore, if your Basic requires 20K and you only have 50K Bytes of total memory, then the largest text file you could build and use would only be 15K Bytes long; this would be equivalent to approximately four standard size, single spaced, typed pages of text. While this program does limit the size of your text files to the size of your working memory, it does not limit the number of files you may have, making it quite easy for you to have several files representing separate portions of the total text material.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Code Listing<\/h1>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>REM WRD PROC    8\/11\/1977\n\nREM THE PRINCIPAL DIFFERENCE BETWEEN THE INPUT AND LINE INPUT\nREM STATMENTS IS THAT LINE INPUT ACCEPTS SPECIAL CHARACTERS (SUCH AS\nREM COMMAS) WITHIN A STRING, WITHOUT REQUIRING DOUBLE QUOTATION MARKS,\nREM WHILE THE INPUT STATEMENTS REQUIRES DOUBLE QUOTATION MARKS.\n\n100 PRINT CHR$(26);\"WORD PROCESSING TEXT EDITOR REV. 1.1\"\n110 PRINT \"UCC - COPYRIGHT 1977 BY SCIENTIFIC RESEARCH\":PRINT:PRINT\n120 REM WORD PROCESSING TEXT EDITOR\n130 REM WRITTEN BY JOHN W. SWAIN\n140 REM COPYRIGHT BY SCIENTIFIC RESEARCH 1977\n150 REM THE FOLLOWING VARIABLES CONTROL CONSOLE PORT ASSIGNMENTS\n160 REM C1=CRT PORT ASSIGNMENT\n170 REM P1=SWITCH SETTING FOR CRT PORT\n180 REM C2=PRINTER PORT ASSIGNMENT\n190 REM P2=SWITCH SETTING FOR PRINTER PORT\n200 REM SET UP GLOBAL CONSTANTS AND EQUATES\n210 DEFINT A-Z:CLEAR 3000:DEF FN Z$(Y$)=CHR$(ASC(Y$) AND 95)\n220 LINE INPUT \"ENTER TODAY`S DATE (MM\/DD\/YY OR SEPT. 26, 1977)? \";Z9$\n230 PRINT CHR$(26)\n240 ON ERROR GOTO 3420 'SET UP ERROR TRAPS\n250 C1=18:P1=1\n260 C2=16:P2=0\n270 CLOSE:PRINT \"WORD PROCESSING TEXT EDITOR REV. 1.1\"\n280 PRINT \"UCC - COPYRIGHT 1977 BY SCIENTIFIC RESEARCH\":PRINT:PRINT\n290 PRINT \"THE FOLLOWING FUNCTIONS AVAILABLE ARE:\":PRINT\n300 PRINT,\" 1 - BUILD THE TEXT OR LETTER\"\n310 PRINT,\" 2 - CREATE THE NAME AND ADDRESS FILE\"\n320 PRINT,\" 3 - EDIT THE NAME AND ADDRESS FILE\"\n330 PRINT,\" 4 - EDIT THE TEXT FILE (NOTE: PROGRAM EXITS AND YOU USE\"\n340 PRINT,\"     THE EDITOR IN BASIC)\"\n350 PRINT,\" 5 - PRINT A COPY OF THE TEXT\"\n360 PRINT,\" 6 - PRINT A COPY OF THE LETTER WITHOUT THE NAME \"\n370 PRINT,\"     AND ADDRESS FILE. SALUTATION ENTERED FOR EACH LETTER\"\n380 PRINT,\" 7 - PRINT LETTERS FROM NAME AND ADDRESS FILE\"\n390 PRINT,\" 8 - GLOBAL SEARCH AND REPLACE\"\n400 PRINT,\" 9 - PRINT MAILING LABELS\"\n410 PRINT,\"10 - END\"\n420 PRINT:INPUT \"WHICH WOULD YOU LIKE TO DO\";F9;IF F9&lt;1 OR F9>10 THEN 270\n430 PRINT CHR$(26):0N F9 GOTO 470,760,1090,1560,1690,1940,2270,2750,3020\n440 REM END ROUTINE\n450 CLOSE:PRINT \"EXITING TEXT EDITOR\":CLEAR 200:END\n460 REM TEXT CREATION ROUTINE\n470 LN=1000:PRINT \"TEXT CREATION ROUTINE FOR LETTERS AND COPY\"\n480 GOSUB 3390:IF Z=O THEN 480\n490 PRINT \"OUTPUT \";:GOSUB 3360:IF Z=O THEN 490\n500 GOSUB 3220 'CHECK FOR EXISTING FILE\n510 OPEN \"O\",1,FZ$,DR\n520 GOSUB 3180 'SET UP HEADER OF FILE\n530 PRINT:PRINT:PRINT \"FILE HEADER LABEL = \";MID$(A$,INSTR(A$,\"`\"))\n540 PRINT \"===== BEGIN TEXT ENTRY =====\"\n550 PRINT:PRINT\n560 LINE INPUT A$:IF A$=\"END\" THEN 630\n570 IF LEFT$(A$,1)=\"?\" THEN 590\n580 A1$=A$:A$=STR$(LN)+\"` \"+A$:PRINT #1,A$:LN=LN+10:GOTO 560\n590 IF A$=\"?\" THEN PRINT:PRINT A1$ GOTO 560\n600 T=VAL&lt;MID$CA$v2>>:IFT&lt;10RT>132THENPRINT\u00b7TAB INCORRECT\u00b7:GOTO 560\n610 T$=\"\":FOR I=1 TO T:T$=T$+\" \":NEXT\n620 PRINT T$;:LINE INPUT A$:A$=T$+A$:GOTO 580\n630 GOSUB 650:CONSOLE C1,P1:CLOSE:PRINT\"EXITING CREATION ROUTINE\"\n640 GOTO 730\n650 CLOSE:INPUT \"DO YOU WANT A LISTING OF THE FILE\";Z1$\n660 IF LEFT$(Z1$,1)=\"N\" THEN RETURN\n670 OPEN \"I\",1,FZ$,DR:INPUT \"DO YOU WANT LINE NUMBERS LISTED\";Z1$\n680 INPUT \"HIT (CR) WHEN READY\";ZZ$;CONSOLE C2, P2:PRINT\n690 IF EOF(1) THEN RETURN\n700 LINE INPUT #1,A$\n710 IF LEFT$(Z1$,1)=\"Y\" THEN PRINT A$ ELSE PRINT MID$(A$,INSTR(A$,\"`\")+1)\n720 GOTO 690\n730 PRINT \"NUMBER OF RECORDS WRITTEN = \";(LN-1000)\/10\n740 GOTO 270\n750 REM CREATE NAME AND ADDRESS FILE\n760 LN=1000:PRINT \"CREATION ROUTINE FOR NAME AND ADDRESS FILE\"\n770 GOSUB 3390:IF Z=0 THEN 770\n780 PRINT \"OUTPUT \";:GOSUB 3360:IF Z=0 THEN 780\n790 GOSUB 3220 'CHECK FOR EXISTING FILE\n800 OPEN \"O\",1,FZ$,DR\n810 GOSUB 3180 'SET UP HEADER OF FILE\n820 PRINT:PRINT:PRINT \"FILE HEADER LABEL = \";MID$(A$,INSTR(A$,\"`\"))\n830 GOSUB 840:GOTO 1010\n840 PRINT \"===== BEGIN TEXT ENTRY =====\"\n850 PRINT:PRINT\n860 LINE INPUT A$:IF A$&lt;>\"END\" THEN GOSUB 870:GOTO 860 ELSE RETURN\n870 IF LEFT$(A$,1)=\"?\" THEN 900\n880 IF F>8 THEN GOSUB 1030:F=0:RETURN\n890 A1$=A$:F=F+1:AT$(F)=A$:RETURN\n900 IF A$=\"?\" THEN PRINT:PRINT A1$:RETURN\n910 A$=MID$(A$,2):GOSUB 920:GOT0 960\n920 IF LEN(A$)&lt;1 OR LEN(A$)>26 THEN 990\n930 FOR I=1 TO LEN(A$):MID$(A$,I,1)=FNZ$(MID$(A$,I,1)):T$=MID$(A$,I,1)\n940 IF T$=>\"A\" AND T$&lt;=\"Z\" THEN NEXT ELSE 990\n950 RETURN\n960 T$=A$:LINE INPUT \"SALUTATION? \";A$;F=F+1:AT$(F)=\"?\"+T$+\"-\"+A$\n970 FOR I=1 TO F:PRINT #1,MID$(STR$(LN),2)+\"` \"+AT$(I):LN=LN+10:NEXT\n980 F=O:PRINT:PRINT \"===== NEXT ENTRY =====\":RETURN\n990 PRINT \"GROUP CODES MUST CONSIST OF 1 TO 26 UPPER CASE LETTERS ONLY\"\n1000 LINE INPUT \"PLEASE ENTER THE CORRECT GROUP CODE(S)? \";A$:GOTO 920\n1010 GOSUB 650:CONSOLE C1,P1:CLOSE:PRINT \"EXITING CREATION ROUTINE\"\n1020 GOT0 730\n1030 PRINT CHR$(26):\"THE LAST 10 LINES ENTERED:\":PRINT\n1040 FOR J=1 TO F:PRINT AT$(J):NEXT\n1050 PRINT:PRINT \"DON'T CONTAIN AN END OF ENTRY MARKER  (?).\"\n1060 PRINT \"START THIS ENTRY OVER AT THE FIRST LINE\"\n1070 RETURN\n1080 REM  NAME AND ADDRESS FILE EDITOR ROUTINE\n1090 PRINT \"EDITOR FOR NAME AND ADDRESS FILE\":PRINT:PRINT\n1100 GOSUB 3390:IF Z=0 THEN 1090\n1110 PRINT \"OUTPUT \";:GOSUB 3360:FP$=FZ$:IF Z=0 THEN 1110\n1120 PRINT \"INPUT \";:GOSUB 3360:LN=1000:IF Z=0 THEN 1120\n1130 OPEN \"I\",2,FZ$,DR\n1140 OPEN \"O\",1,\"..XYZ..\",DR\n1150 GOSUB 3190:LINE INPUT #2,Z1$ 'WRITE UPDATED HEADER TO FILE\n1160 PRINT CHR$(26):F=1:GOSUB 1460:IF F=0 THEN GOTO 1510\n1170 PRINT \"THIS SECTION OFFERS 6 MODES OF OPERATION.\":PRINT\n1180 PRINT,\"1 - ADD A LINE AFTER LINE SPECIFIED\"\n1190 PRINT,\"2 - DELETE LINE SPECIFIED\"\n1200 PRINT,\"3 - REPLACE LINE SPECIFIED\"\n1210 PRINT,\"4 - DELETE THIS ENTRY\"\n1220 PRINT,\"5 - GET NEXT ENTRY\"\n1230 PRINT,\"6 - END\"\n1240 PRINT:PRINT:PRINT TAB(12);\"LINE NO.     CONTENTS\":PRINT\n1250 PRINT TAB(16);\"1      \";AT$(1);SPC(4);\"(GROUP CODES)\"\n1260 FOR J=2 TO F:PRINT TAB(15);J;SPC(5);AT$(J):NEXT:PRINT:PRINT\n1270 INPUT \"WHICH FUNCTION\";F9:IF F9&lt;1 OR F9>6 THEN 1170\n1280 IF F9&lt;4 THEN INPUT \"LINE NUMBER\";F8 ELSE 1300\n1290 IF F8&lt;1 OR (F8+1>10 AND F9=1) OR F8>F THEN 1280\n1300 ON F9 GOTO 1380,1360,1340,1160,1330\n1310 GOSUB 1440\n1320 F=1:GOSUB 1460:IF F&lt;1 THEN GOTO 1510 ELSE GOSUB 1440:GOTO 1320\n1330 GOSUB 1440:GOTO 1160\n1340 PRINT \"REPLACEMENT LINE FOR\";F8;\"?\";:LINE INPUT AT$(F8)\n1350 IF F8&lt;>1 THEN 1170 ELSE A$=AT$(1):GOSUB 920:AT$(1)=A$:GOTO 1170\n1360 IF F8=>2 THEN F=F-1:FOR I=F8 TO F:AT$(I)=AT$(I+1):NEXT\n1370 GOTO 1170\n1380 IF F8&lt;F THEN LINE INPUT \"NEW LINE? \";A$:F=F+1:FOR I=F TO F8+1 STEP -1 ELSE 1170\n1390 AT$(I)=AT$(I-1):NEXT:AT$(F8+1)=A$:GOTO 1170\n1400 INPUT \"DO YOU WISH TO ADD ANY ADDITIONAL ENTRIES\";Z1$\n1410 IF LEFT$(Z1$,1)=\"Y\" THEN GOSUB 840\n1420 CLOSE:IF FP$=FZ$ THEN KILL FZ$,DR\n1430 NAME \"..XYZ..\" AS FP$,DR:FZ$=FP$:GOSUB 650:CONSOLE C1,P1:CLOSE:GOTO 270\n1440 AT$(F)=\"?\"+AT$(1)+\"-\"+AT$(F):FOR I=2 TO F\n1450 PRINT #1,MID$(STR$(LN),2)+\"` \"+AT$(I):LN=LN+10:NEXT:RETURN\n1460 IF EOF(2) THEN F=0:RETURN ELSE LINE INPUT #2,A$:A$=MID$(A$,INSTR(A$,\"`\")+2\n1470 IF LEFT$(A$,1)=\"?\" THEN F1=INSTR(A$,\"-\") ELSE 1500\n1480 AT$(1)=MID$(A$,2,F1-2):F=F+1:AT$(F)=MID$(A$,F1+1)\n1490 RETURN\n1500 F=F+1:AT$(F)=A$:GOTO 1460\n1510 INPUT \"ARE THE CHANGES CORRECT\";Z1$\n1520 IF LEFT$(Z1$,1)=\"N\" THEN PRINT \"ABORTING JOB, NO FILES CHANGED\"\n1530 IF LEFT$(Z1$,1)=\"N\" THEN CLOSE:GOTO 270\n1540 GOTO 1400\n1550 REM SET-UP FOR EDITING USING BASIC\n1560 PRINT \"EDITOR ROUTINE FOR TEXT FILES\"\n1570 PRINT \"THIS SECTION WILL SET UP THE FILE FOR EDITING USING THE \"\n1580 PRINT \"EDITOR WHICH IS BUILT INTO BASIC.\":PRINT:PRINT\n1590 Z=1:INPUT \"FILE NAME TO EDIT\";FZ$:GOSUB 3370:IF Z=0 THEN 1590\n1600 Z=1:INPUT \"DRIVE NUMBER\";DR:GOSUB 3400:IF Z=0 THEN 1600\n1610 INPUT \"DO YOU WISH A LIST OF THE FILE BEFORE EDITING\";Z1$\n1620 IF LEFT$(Z1$,1)-\"Y\" THEN OPEN \"I\",1,FZ$,DR ELSE 1670\n1630 INPUT \"HIT (CR) WHEN READY\";ZZ$:CONSOLE C2,P2\n1640 IF EOF(1) THEN 1670\n1650 LINE INPUT #1,A$:PRINT A$\n1660 GOTO 1640\n1670 CONSOLE C1,P1:LOAD FZ$,DR\n1680 REM PRINT COPY OF TEXT\n1690 PRINT \"THIS SECTION PRINTS A COPY OF THE TEXT\"\n1700 GOSUB 3390:GOSUB 1880:GOSUB 1850:INPUT \"NUMBER OF COPIES\";NC\n1710 INPUT \"LINE UP PAPER AND HIT (CR) WHEN READY\";ZZ$:CONSOLE C2,P2\n1720 NT=LN:IF NC>O THEN GOSUB 1820:NC=NC-1:GOTO 1740\n1730 CONSOLE C1,P1:PRINT \"EXITING COPY PRINT-OUT\":GOTO 270\n1740 IF LEFT$(Z2$,1)=\"N\" THEN IF NC&lt;1 THEN 1720 ELSE CONSOLE C1,P1:GOTO 1710\n1750 IF NT=0 THEN 1720 ELSE IF NT>O THEN PRINT:NT=NT-1:GOTO 1750\n1760 NC=NC+1:CONSOLE C1,P1:PRINT:PRINT\n1770 PRINT \"YOUR DOCUMENT IS TOO LONG FOR THE FORM SIZE SELECTED.\"\n1780 INPUT \" DO YOU WANT TO CONTINUE PRINTING\";ZZ$\n1790 IF LEFT$(ZZ$,1)=\"Y\" THEN GOSUB 1860:GOTO 1710\n1800 INPUT \"DO YOU WANT TO RESTART\";ZZ$\n1810 IF LEFT$(ZZ$,1)=\"Y\" THEN 1700 ELSE 1730\n1820 OPEN \"I\",1,FZ$,DR:GOSUB 1920\n1830 IF EOF(1) THEN CLOSE 1:RETURN     \n1840 LINE INPUT #1,A$:PRINT MID$(A$,INSTR(A$,\"`\")+2):NT=NT-1:GOTO 1830\n1850 INPUT \"CONTINUOUS FORMS\";Z2$:IF LEFT$(Z2$,1)=\"N\" THEN RETURN\n1860 INPUT \"NUMBER OF LINES PER PAGE\";LN\n1870 RETURN\n1880 PRINT \"INPUT TEXT \";:GOSUB 3360:IF Z=0 THEN 1880\n1890 OPEN \"I\",1,FZ$,DR:GOSUB 1920:CLOSE 1\n1900 PRINT MID$(A$,INSTR(A$,\"`\")+1):INPUT \"IS THIS THE CORRECT FILE\";Z1$\n1910 IF LEFT$(Z1$,1)=\"N\" THEN 1880 ELSE RETURN\n1920 LINE INPUT #1,A$:IF LEN(A$)>O THEN RETURN ELSE 1920\n1930 REM PRINT LETTERS WITH SALUTATION ENTER FROM KEYBOARD + ENV.\n1940 PRINT \"PRINT LETTERS WITHOUT NAME AND ADDRESS FILE.\":PRINT:PRINT\n1950 GOSUB 3390:GOSUB 1880\n1960 GOSUB 2110:GOSUB 2250\n1970 INPUT \"LINE UP PAPER AND HIT (CR) WHEN READY\";ZZ$:CONSOLE C2,P2\n1980 PRINT TAB(T1);Z8$:PRINT:PRINT TE$:PRINT Z5$:PRINT:PRINT\n1990 GOSUB 1820:CONSOLE C1,P1\n2000 INPUT \"DO YOU WANT TO PRINT AN ENVELOPE\";ZZ$\n2010 IF LEFT$(ZZ$,1)=\"Y\" THEN GOSUB 2060\n2020 INPUT \"ANOJHER LETTER\";ZZ$:IF LEFT$(ZZ$,1)=\"N\" THEN 2100\n2030 INPUT \"SAME DOCUMENT\";ZZ$:IF LEFT$(ZZ$,1)=\"N\" THEN GOSUB 1880\n2040 INPUT \"SAME NAME AND ADDRESS\";ZZ$:IF LEFT$(ZZ$,1)=\"N\" THEN 1960\n2050 GOTO 1970\n2060 PRINT:INPUT \"PLACE ENVELOPE IN PRINTER AND HIT (CR) WHEN READY\";ZZ$\n2070 CONSOLE C2,P2:PRINT TAB(35);:FOR I=1 TO LEN(TE$)-2\n2080 PRINT MID$(TE$,I,1);:IF ASC(MID$(TE$,I))=10 THEN PRINT TAB(35);\n2090 NEXT:FOR I=1 TO 5:PRINT:NEXT:CONSOLE C1,P1:RETURN\n2100 PRINT \"EXITING LETTER PRINTING ROUTINE\":GOTO 270\n2110 PRINT:PRINT\n2120 PRINT \"ENTER EACH LINE OF THE NAME AND ADDRESS AS IT WILL APPEAR ON\"\n2130 PRINT \"THE LETTER. AFTER THE LAST LINE HAS BEEN ENTERED, TYPE A \"\n2140 PRINT \"`?` AND HIT (CR).\":TE$=\"\"\n2150 LINE INPUT A$:IF LEFT$(A$,1)=\"?\" THEN 2180\n2160 IF LEN(TE$+A$)>250 THEN PRINT \"NAME\/ADDRESS TOO LONG\":GOTO 2110\n2170 TE$=TE$+A$+CHR$(13)+CHR$(10):GOTO 2150\n2180 IF LEN(TE$)&lt;3 THEN PRINT \"NAME AND ADDRESS TOO SHORT\":GOTO 2110\n2190 PRINT:PRINT:LINE INPUT \"INPUT DATE (CR) USES DATE ENTERED? \";Z8$\n2200 IF Z8$=\"\" THEN Z8$=Z9$\n2210 INPUT \"NUMBER OF SPACES TO INDENT DATE  (CR) USES LAST ENTRY\";Z7$\n2220 IF Z7$=\"\" THEN Z7$=Z6$ ELSE Z6$=Z7$:T1=VAL(Z7$)\n2230 IF T1&lt;O OR T1>132 THEN 2210\n2240 RETURN\n2250 LINE INPUT \"SALUTATION? \";Z5$:RETURN\n2260 REM PRINT LETTERS FROM NAME AND ADDRESS FILE\n2270 PRINT \"PRINT LETTERS FROM NAME AND ADDRESS FILE\"\n2280 GOSUB 3390  'GET DRIVE NUMBER\n2290 GOSUB 1880:FX$=FZ$ 'GET TEXT NAME AND SAVE TEMP\n2300 GOSUB 2690:FZ$=FX$ 'GET NAME AND ADDRESS AND RESTORE TEMP\n2310 GOSUB 1850   'GET CONTINOUS FORMS ANSWERS\n2320 GOSUB 2190   'GET DATE QUESTIONS\n2330 GC$=\"\":NC=O:LINE INPUT \"GROUP CODES TO PRINT? \";A$:GOSUB 2610\n2340 IF LEFT$(ZZ$,1)=\"N\" THEN 2330\n2350 INPUT \"LINE UP PAPER AND HIT (CR) WHEN READY\";ZZ$:CONSOLE C2,P2\n2360 OPEN \"I\",2,FY$,DR:GOSUB 2730\n2370 II=1:NT=LN:GOSUB 2530:IF II&lt;1 THEN 2480 ELSE PRINT TAB(T1);Z8$\n2380 PRINT:FOR I=2 TO II-1:PRINT TE$(I):NEXT:PRINT:PRINT TE$(II)\n2390 PRINT:PRINT:NT=NT-(II+6)\n2400 GOSUB 1820:NC=NC+1:IF LEFT$(Z2$,1)=\"N\" THEN CONSOLE C1,P1:GOTO 2350\n2410 IF NT=0 THEN 2370 ELSE IF NT>0 THEN PRINT:NT=NT-1:GOTO 2410\n2420 NC=NC-1:CONSOLE C1,P1:PRINT:PRINT\n2430 PRINT \"YOUR DOCUMENT IS LONGER THAN THE FORM SIZE SELECTED.\"\n2440 INPUT \"DO YOU WANT TO CONTINUE PRINTING\";ZZ$\n2450 IF LEFT$(ZZ$,1)=\"Y\" THEN GOSUB 1860:GOTO 2350\n2460 INPUT \"DO YOU WANT TO RESTART\";ZZ$\n2470 IF LEFT$(ZZ$,1)=\"Y\" THEN CLOSE:GOTO 2290\n2480 CONSOLE C1,P1:CLOSE:PRINT \"ENDING LETTER PRINT OUT ROUTINE\"\n2490 PRINT \"NUMBER OF LETTERS PRINTED = \";NC\n2500 INPUT \"DO YOU WISH TO PRINT MAILING LABELS\";ZZ$\n2510 IF LEFT$(ZZ$,1)=\"N\" THEN 270\n2520 CLOSE:GOTO 3070\n2530 IF EOF(2) THEN II=0:RETURN ELSE LINE INPUT #2,A$\n2540 A$=MID$(A$,INSTR(A$,\"`\")+2)\n2550 IF LEFT$(A$,1)=\"?\" THEN J=INSTR(A$,\"-\") ELSE 2600\n2560 TE$(1)=MID$(A$,2,J-2):II=II+1:TE$(II)=MID$(A$,J+1)\n2570 IF GC#=\"ALL\" THEN RETURN\n2580 FOR I=1 TO LEN(GC$):IF INSTR(TE$(1),MID$(GC$,I,1))>O THEN RETURN\n2590 NEXT I:II=1:GOTO 2530\n2600 II=II+1:TE$(II)=A$:GOTO 2530\n2610 IF LEN(A$)&lt;1 THEN ZZ$=\"N\":RETURN\n2620 IF A$=\"ALL\" THEN PRINT \"YOU HAVE SELECTED ALL OF THE FILE\" ELSE 2640\n2630 GC$=\"ALL\":GOTO 2680\n2640 PRINT:PRINT \"YOU HAVE SELECTED THE FOLLOWING GROUP CODES:\"\n2650 PRINT:PRINT TAB(10):FOR I=1 TO LEN(A$):T$=MID$(A$,I,1)\n2660 IF T$&lt;\"A\" OR T$>\"Z\" THEN 2670 ELSE PRINT \" \";T$;:GC$=GC$+T$\n2670 NEXT\n2680 PRINT:PRINT:INPUT \"IS THIS CORRECT\";ZZ$:RETURN\n2690 PRINT \"NAME\/ADDRESS \";:GOSUB 3360:IF Z=0 THEN 2690\n2700 FY$=FZ$:OPEN \"I\",2,FY$,DR:GOSUB 2730:CLOSE 2\n2710 PRINT MID$(A$,INSTR(A$,\"`\")+1):INPUT \"IS THIS THE CORRECT FILE\";Z1$\n2720 IF LEFT$(Z1$,1)=\"N\" THEN 2690 ELSE RETURN\n2730 LINE INPUT #2,A$:IF LEN(A$)>O THEN RETURN ELSE 2730\n2740 REM GLOBAL SEARCH AND REPLACEMENT ROUTINE FOR WORD PROCESSOR\n2750 PRINT \"GLOBAL SEARCH AND REPLACE ROUTINE\":PRINT\n2760 PRINT \"WHEN CHOOSING SEARCH STRING, BE SURE TO PICK ONE WHICH\"\n2770 PRINT \"IS UNIQUE TO THE ITEM YOU WANT CHANGED OR YOU MAY CHANGE\"\n2780 PRINT \"AN ITEM THAT YOU DIDN'T MEAN TO CHANGE.\"\n2790 PRINT \"THIS SECTION WILL PRINT OUT THE CHANGED REPORT AS IT MAKES\"\n2800 PRINT \"THE CHANGES\"\n2810 GOSUB 3390:IF Z=0 THEN 2810\n2820 PRINT \"OUTPUT \";:GOSUB 3360:FP$=FZ$:IF Z=0 THEN 2820\n2830 PRINT \"INPUT \";:GOSUB 3360:LN=1000:IF Z=0 THEN 2830\n2840 OPEN \"I\",2,FZ$,DR\n2850 OPEN \"O\",1,\"..XYZ..\",DR\n2860 GOSUB 3190:LINE INPUT #2,Z1$ 'WRITE UPDATED HEADER TO FILE\n2870 LINE INPUT \"SEARCH STRING? \";Z2$\n2880 LINE INPUT \"REPLACEMENT STRING? \";Z3$:PRINT:PRINT\n2890 INPUT \"READY PRINTER AND HIT (CR) TO CONTINUE\";Z1$\n2900 PRINT \"A MOMENT PLEASE\":NR=0:CONSOLE C2,P2\n2910 IF EOF(2) THEN CLOSE:GOTO 2960\n2920 LINE INPUT #2,A$:FOR I=1 TO LEN(A$):IF MID$(A$,I,LEN(Z2$))&lt;>Z2$ THEN 2940\n2930 B$=LEFT$(A$,I-1):C$=MID$(A$,I+LEN(Z2$)):A$=B$+Z3$+C$:NR=NR+1\n2940 NEXT I\n2950 PRINT #1,A$:PRINT A$:GOTO 2910\n2960 CONSOLE C1,P1:PRINT \"NUMBER OF RECORDS FOUND AND REPLACED = \";NR\n2970 INPUT \"ARE THE CHANGES CORRECT\";Z1$\n2980 IF LEFT$(Z1$,1)= \"N\" THEN PRINT \"ABORTING JOB, NO FILES CHANGED\":GOTO 270\n2990 IF FP$=FZ$ THEN KILL FZ$,DR\n3000 NAME \"..XYZ..\" AS FP$,DR:GOTO 270\n3010 REM PRINT MAILING LABELS\n3020 PRINT \"PRINT MAILING LABELS\"\n3030 GOSUB 3390   'DRIVE NUMBER\n3040 GOSUB 2690   'GET NAME AND ADDRESSS FILE NAME\n3050 GC$=\"\":LINE INPUT \"GROUP CODES TO PRINT? \";A$:GOSUB 2610\n3060 IF LEFT$(ZZ$,1)=\"N\" THEN 3050\n3070 INPUT \"LINE UP LABELS AND HIT (CR) WHEN READY\";ZZ$:CONSOLE C2,P2\n3080 NC=O:PRINT\n3090 FOR I=1 TO 8:FOR J=1 TO 20:PRINT \"X\";NEXT J:PRINT:NEXT I:CONSOLE C1,P1\n3100 INPUT \" IS THE LINE UP CORRECT\";ZZ$:IF LEFT$(ZZ$,1)=\"N\" THEN 3070\n3110 CONSOLE C2,P2:PPEN \"I\",2,FY$,DR:GOSUB 2730\n3120 II=11:GOSUB 2530:IF II&lt;1 THEN 3160\n3130 PRINT:FOR I=2 TO II-1:PRINT TE$(I):NEXT\n3140 FOR I=II-1 TO 8:PRINT:NEXT\n3150 NC=NC+1:GOTO 3120\n3160 CONSOLE C1,P1:PRINT \"END OF MAILING LABEL ROUTINE\"\n3170 PRINT \"NUMBER OF LABELS PRINTED = \";NC:GOTO 270\n3180 AS=STR$(LN)+\"` \"+\"FILE NAME \"+FZ$+\" CREATION DATE: \"+Z9$:GOTO 3210\n3190 AS=STR$(LN)+\"` \"+\"FILE NAME \"+FP$+\" REVISION OF: \"+FZ$\n3200 A$=A$+\"  DATE REVISED:  \"+Z9$:GOTO 3210\n3210 PRINT #1,A$:LN=LN+10:RETURN\n3220 OPEN \"I\",1,FZ$,DR:CLOSE:PRINT \"FILE ALREADY EXISTS USING THAT NAME\"\n3230 GOSUB 3340\n3240 INPUT \"DO YOU WISH TO RENAME OR REPLACE THE EXISTING FILE\";Z1$\n3250 IF LEFT$(Z1$,1)=\"N\" THEN PRINT \"NEW OUTPUT \";:GOSUB 3360:IF Z=0 THEN 3250\n3260 IF LEFT$(Z1$,1)=\"N\" THEN RETURN\n3270 INPUT \"WHICH  (REN OR REP)\";Z1$\n3280 IF LEFT$(Z1$,3)&lt;>\"REN\" THEN IF LEFT$(Z1$,3)&lt;>\"REP\" THEN 3270\n3290 IF LEFT$(Z1$,3)=\"REP\" THEN RETURN\n3300 PRINT \"CHANGE NAME FROM \";FZ$;\" TO\";:INPUT FP$\n3310 Z=1:GOSUB 3370:IF Z=0 THEN 3300\n3320 NAME FZ$ AS FP$,DR\n3330 RETURN\n3340 PRINT \"THE FILES AVAILABLE ON THIS DISC ARE:\":PRINT:FILES DR:PRINT\n3350 RETURN\n3360 INPUT \"FILE NAME\";FZ$:Z=1\n3370 IF LEN(FZ$)&lt;1 OR LEN(FZ$)>8 THEN PRINT \"ILLEGAL FILE NAME\":Z=0\n3380 RETURN\n3390 INPUT \"DRIVE NUMBER\";DR:Z=1\n3400 IF DR&lt;O OR DR>15 THEN PRINT \"ILLEGAL DRIVE NUMBER\":Z=0\n3410 RETURN\n3420 IF ERR=56 THEN CLOSE:PRINT \"MOUNTING DRIVE \";DR:MOUNT DR:RESUME\n3430 IF ERR&lt;>53 THEN 3540\n3440 IF F9=1 THEN RESUME 510\n3450 IF F9=4 THEN GOSUB 3340:RESUME 1590\n3460 IF F9=8 THEN GOSUB 3340:CLOSE:RESUME 2830\n3470 IF F9=3 THEN GOSUB 3340:CLOSE:RESUME 1120\n3480 IF F9=2 THEN RESUME 800\n3490 IF F9=5 THEN GOSUB 3340:CLOSE 1:RESUME 1700\n3500 IF F9=6 THEN GOSUB 3340:CLOSE 1:RESUME 1950\n3510 IF F9=7 AND ERL=1890 THEN GOSUB 3340:CLOSE 1:RESUME 2290\n3520 IF F9=7 AND ERL=2700 THEN GOSUB 3340:CLOSE 2:RESUME 2300\n3530 IF F9=10 AND ERL=2700 THEN GOSUB 3340:CLOSE 2:RESUME 3040\n3540 IF ERR=58 THEN PRINT \"OUTPUT FILE ALREADY EXISTS\":GOSUB 3560:RESUME\n3550 ON ERROR GOTO 0\n3560 GOSUB 3340:INPUT \"DO YOU WISH TO REPLACE THE FILE\";Z2$\n3570 IF LEFT$(Z2$,1)=\"Y\" THEN KILL FP$,DR:RETURN\n3580 LINE INPUT \"NEW OUTPUT FILE NAME? \";FP$\n3590 IF LEN(FP$)&lt;1 OR LEN(FP$)>8 THEN PRINT \"ILLEGAL FILE NAME\":GOTO 3580\n3600 RETURN<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Word Processing Text Editor Rev.\u00a01.1 John W. Swain SCIENTIFIC RESEARCH INC. Brown, R.W. (1977) Basic software library. 7, professional programs Vol 7. Key Biscayne, Fla: Scientific Research Inst. This program is designed to allow owners of micro-computers the capability of rearranging text material and then printing it out in a variety of formats. While this [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[18],"tags":[21,17],"class_list":["post-125","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-basic-text-editors","tag-dartmouth-basic","tag-retrocomputing"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/permacomputer.solarpunk.au\/wp-content\/uploads\/2026\/04\/wrdpro-page-01-scaled.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/posts\/125","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=125"}],"version-history":[{"count":2,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/posts\/125\/revisions"}],"predecessor-version":[{"id":136,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/posts\/125\/revisions\/136"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=\/wp\/v2\/media\/126"}],"wp:attachment":[{"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/permacomputer.solarpunk.au\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}