MISCELLANEOUS
WORDS AND PHRASES LISTED UNDER MISCELLANEOUS IN THE INDEX BUT NOT GIVEN IN THE 'BULK' PRINT OUT ARE FOUND UNDER THEIR OWN NAMES. 'FILES', FOR EXAMPLE, IS DESCRIBED UNDER 'FILE COMMANDS'. ***** CHANGES FROM FOCAL,1969: PROGRAMS WRITTEN IN FOCAL,1969 SHOULD REQUIRE ONLY ONE CHANGE TO RUN UNDER PS/8 FOCAL,1971: THE INPUT DEVICE IS SWITCHED TO THE HIGH SPEED PAPER TAPE READER WITH THE 'OPEN INPUT PTR:' COMMAND AND SWITCHED BACK TO THE TERMINAL WITH 'OPEN INPUT TTY:,ECHO' INSTEAD OF WITH THE '*' COMMAND OF FOCAL,1969. OTHER CHANGES INCLUDE: 1) EXTENDED LIBRARY FEATURES WITH DEVICE-INDEPENDENT CHAINING AND SUBROUTINE CALLS BETWEEN PROGRAMS. 2) FILE READING AND WRITING COMMANDS, 10 DIGIT PRECISION, AND/OR STANDARD TRIG FUNCTIONS, WHICH MAY BE DELETED BY THE INITIAL DIALOGUE TO ALLOW UP TO 222 VARIABLES WITH 5500 CHARACTER PROGRAMS; WITH ALL FEATURES RETAINED, 98 VARIABLES AND 3500 CHARACTERS REMAIN. 3) COMPUTED LINE NUMBERS. 4) TABULATION. 5) IMPROVED DISTRIBUTION AND 'PSEUDO-RANDOM' INITIALIZATION OF 'FRAN()', THE PSEUDO-RANDOM NUMBER FUNCTION. 6) UNLIMITED LINE LENGTHS. 7) CHARACTER MANIPULATIONS HANDLED WITH 'FIN()' AND 'FOUT()'. 8) FSGN(0)=0 [FSGN(0)=1 IN FOCAL,1969] 9) 'ERASE ALL' AND 'MODIFY' DO NOT ERASE VARIABLES. 10) IN ADDITION TO THE FDIS() DISPLAY FUNCTION FOR DEC'S 34D DISPLAY, VERSIONS ARE AVAILABLE WITH DISPLAY AND JOYSTICK FUNCTIONS FOR THE TEKTRONIX T-4002 GRAPHIC COMPUTER TERMINAL. 11) 3 SPECIAL VARIABLES ARE PROTECTED FROM THE 'ERASE' COMMAND --- '!', '"',AND '#'. '#' IS SET TO 1 BY THE INITIAL DIALOGUE IF ALL OPTIONAL FEATURES OF PS/8 FOCAL ARE DELETED, AND TO 2310 IF STANDARD FEATURES ARE RETAINED. 12) PS/8 FOCAL'S STARTING ADDRESS IS 10200 (FIELD 1). CTRL/P IS THE BREAK CHARACTER ------ -- --- ----- --------- NOTE: PS/8 FOCAL DATA FILES ARE COMPATIBLE WITH EDIT AND TECO-8; HOWEVER, PS/8 FOCAL PROGRAM FILES ARE SAVED AS CORE IMAGES. EXPRESSIONS --- AN EVALUATABLE GROUP OF NUMBERS OR VARIABLES: (2+3*X) OR (22/7) HIGH SPEED PAPER TAPE READER CAN READ IN FOCAL PROGRAMS: 1) TYPE 'OPEN INPUT PTR:' 2) AFTER '^' IS TYPED OUT, HIT SPACE BAR TO READ TAPE 3) AFTER '?' IS TYPED OUT, HIT 'CTRL/P' THE FOLLOWING 3 LINE PROGRAM WILL ASK FOR 10 NUMBERS FROM THE READER: 10.60 OPEN INPUT PTR: 10.65 FOR X=1,10;ASK A(X) 10.70 OPEN INPUT TTY:,ECHO;COMMENT --- RESTORES TERMINAL TO NORMAL INITIAL DIALOGUE --- ASK FOCAL'S INITIAL DIALOGUE FOR 'HELP' WHICH WILL LIST OPTIONS OTHER THAN STANDARD FEATURES. '#' IS THE SYSTEM STATUS VARIABLE (PROTECTED) AND IS 'SET' TO THE PRODUCT OF CODES REPRESENTING FEATURES CHOSEN IN THE INITIAL DIALOGUE. FEATURE CODE ------------------------------------------- ---- '0' NO OPTIONAL FEATURES 1 '1' FSIN AND FCOS FUNCTIONS 2 '2' FSIN, FCOS, FLOG, FEXP AND FATN 6 '3' EXTENDED PRECISION (10 DIGITS) 5 '4' FILE COMMADS 7 '5' LEADING SPACE IN 'TYPE' 11 '6' '=' AUTOMATICALLY PRINTED BY 'TYPE' 13 '7' ':' AUTOMATICALLY PRINTED BY 'ASK' 17 '8' '&' IN POWERS-OF-TEN NOTATION -1 '9' FEATURES 2,3,4 210 'YES' STANDARD FETURES 2,3,4,5 2310 LINE NUMBERS --- MAY RANGE FROM 1.01 THROUGH 31.99 BUT MUST NOT INCLUDE INTEGERS. VARIABLES NOT STARTING WITH 'A' MAY BE USED IN PLACE OF LINE NUMBERS (EXAMPLE: 'GOTO X'). GROUP NUMBERS ARE INTEGERS FROM 1 - 31 AND REFERENCE GROUPS OF LINES WITH 'DO', 'WRITE' AND 'ERASE' COMMANDS. MERGING PROGRAMS --- 'A' AND 'B' IS DONE WITH A SERIES OF COMMANDS WHICH CONVERT 'A' INTO A DATA FILE (PS/8 EDITOR COMPATIBLE) AND THEN BRING IT IN 'ON TOP' OF PROGRAM 'B': 1) LIBRARY CALL A 2) OPEN INPUT TTY: 3) OPEN OUTPUT A (STEPS 3-5 WILL NOT PRINT OUT) 4) SET B=FOUT(223);W 5) SET B=FOUT(223);OUTPUT CLOSE;OPEN INPUT TTY:,ECHO 6) LIBRARY CALL B 7) OPEN INPUT A 8) [HIT 'CTRL/P'; WAIT FOR '?01.00'] 9) LIBRARY DELETE A.FD THE MERGED PROGRAM WILL NOW BE IN YOUR PROGRAM BUFFER. PRECISION --- IF YOU CHOOSE TO DELETE EXTENDED PRECISION (10 DIGITS) IN THE INITIAL DIALOGUE, YOU WILL HAVE ROOM FOR 20% MORE VARIABLES PIP --- A PS/8 SYSTEM PROGRAM WHICH CAN LIST YOUR ENTIRE DEVICE DIRECTORY BY TYPING 'R PIP' TO PS/8 MONITOR THEN '/L'. HIT 'CTRL/C' TO RETURN TO PS/8 MONITOR. BE SURE TO USE '/I' OPTION WHEN TRANSFERRING PROGRAMS. PROGRAM NAMES --- UP TO SIX ALPHABETIC OR NUMERIC CHARACTERS. FOCAL ASSUMES AN .FC OR .FD EXTENSION (PROGRAM OR DATA). PROGRAM SIZE --- WITH STANDARD FEATURES OF PS/8 FOCAL,1971 RETAINED, PROGRAMS MAY BE ABOUT 3500 CHARACTERS LONG --- 7 BLOCKS. IF FILES ARE DELETED IN THE INITIAL DIALOGUE, 5500 CHARACTER PROGRAMS ARE POSSIBLE. PUSHDOWN LIST OVERFLOW --- WHEN TOO MANY 'DO' OR 'LIBRARY GOSUB' COMMANDS HAVE BEEN GIVEN WITHOUT A 'RETURN', FOCAL'S PUSHDOWN LIST BECOMES FILLED. REMEDY: REDUCE NUMBER OF BLOCKS IN PROGRAM LENGTH. STRINGS --- ARE ANY SERIES OF CHARACTERS SUCH AS: HELLO 122.5 $99.95 NOW IS THE TIME FOR ALL GOOD MEN .... TEST34 THE ABOVE STRINGS WERE PRINTED OUT ['122.5' IS ALSO A NUMBER] BY SURROUNDING THEM WITH QUOTATION MARKS IN A TYPE STATEMENT AS IN LINE 22.25: 22.25 TYPE "HELLO"! STRINGS MAY ALSO BE PRINTED OUT CHARACTER BY CHARACTER USING THE 'FOUT()' FUNCTION; INPUT OF STRINGS MAY BE HANDLED WITH THE 'FIN()' FUNCTION ---- HELP CAN REVIEW 'FIN', 'FOUT', AND 'QUOTATION MARKS' FOR YOU. ALSO SEE THE FOCAL PROGRAM IN THE INITIAL DIALOGUE. THE ASK COMMAND MAY BE USED TO INPUT SHORT STRINGS FOR COMPARISON PURPOSES. OBSERVE THE FOLLOWING SUBROUTINE FIRST WRITTEN THEN EXECUTED: 22.78 COMMENT: 'YES OR NO' SUBROUTINE 22.80 ASK "ANSWER YES OR NO ? ",AN 22.82 IF (AN-0YES)22.84,22.86 22.84 IF (AN-0NO)22.8,22.88,22.8 22.86 SET X=2;RETURN 22.88 SET X=1;RETURN *GO 22.8 ANSWER YES OR NO ? YEP ANSWER YES OR NO ? NOPE ANSWER YES OR NO ? YES PROGRAM CONTROL WOULD THEN RETURN TO COMMAND FOLLOWING SUBROUTINE CALL ('DO' OR 'LIBRARY GOSUB') WITH X EQUAL 2. SUBSCRIPTING --- VARIABLES MAY HAVE UNIQUE SUBSCRIPTS FROM -2048 THROUGH 2047 ALTHOUGH THE TOTAL NUMBER OF VARIABLES IS LIMITED BY CHOICES MADE IN THE INITIAL DIALOGUE. NOTE THAT THE SYMBOL TABLE WILL ACCURATELY OUTPUT ONLY THE SUBSCRIPTS BETWEEN 0 AND 99. VARIABLES --- MAY BE ONE OR TWO CHARACTERS SUCH AS: A, X, Z7, P2, PI, AB IF 'ABCDEFG' WERE USED AS A VARIABLE, ONLY 'AB' WOULD BE SIGNIFICANT. VARIABLES MAY NOT START WITH AN 'F' OR A DIGIT. 99 VARIABLES ARE AVAILABLE IF ALL FEATURES OF PS/8 FOCAL ARE RETAINED. UP TO 222 REGULAR VARIBLES CAN BE MADE AVAILABLE BY DELETING FEATURES THROUGH THE INITIAL DIALOGUE '!', '"', AND '#' ARE PROTECTED VARIABLES AND CANNOT BE 'TYPED', 'ASKED' OR 'ERASED' DIRECTLY, BUT MAY BE 'SET' AND OTHERWISE USED AS REGULAR VARIABLES. '#', THE SYSTEM STATUS VARIABLE, IS 'SET' TO SPECIAL CODES BY THE INITIAL DIALOGUE. ERROR CODES VALID ONLY FOR 6/1/71 VERSION OF PS/8 FOCAL CODE EXPLANATION ------ -------------------------------------------- ?00.00 MANUAL START FROM CONSOLE ?01.00 BREAK FROM KEYBOARD VIA 'CTRL/P' ?01.40 BAD LINE NUMBER ?01.91 GROUP NUMBER LARGER THAN 31 ?01.;3 ZERO IS ILLEGAL LINE NUMBER ?02.32 'DO' REFERENCED NON-EXISTENT GROUP ?02.52 'DO' REFERENCED NON-EXISTENT LINE ?03.05 NON-EXISTENT LINE AFTER 'GOTO' OR 'IF' ?03.28 ILLEGAL COMMAND ?04.39 BAD VARIABLE IN 'FOR' OR 'SET' COMMAND ?04.52 EXCESS RIGHT TERMINATORS ?04.60 ILLEGAL TERMINATOR IN 'FOR' OR 'SET' COMMAND ?04.:3 MISSING ARGUMENT IN DISPLAY FUNCTION ?05.48 BAD ARGUMENT IN 'MODIFY' COMMAND ?06.06 ILLEGAL USE OF A FUNCTION OR NUMBER ?06.54 TOO MANY VARIABLES ?07.38 NO OPERATOR BEFORE PARENTHESIS ?07.:9 FUNCTION ARGUMENT MISSING ?07.;6 ILLEGAL FUNCTION OR DOUBLE OPERATORS ?08.47 ENCLOSURES DO NOT MATCH ?09.11 BAD ARGUMENT IN 'ERASE' COMMAND ?10.:5 STORAGE FILLED BY TEXT ?11.35 INPUT BUFFER OVERFLOW ?15.28 BAD RESTORE COMMAND ?15.;1 ATTEMPT TO WRITE PAST END-OF-FILE ?20.34 LOGARITHM OF ZERO REQUESTED ?22.23 NO OUTPUT FILE TO RESTORE ?22.51 BAD FILES 'OPEN' COMMAND ?23.05 DATA FILE NOT FOUND ?23.15 NO INPUT FILE TO RESTORE ?23.36 TOO MANY DIGITS IN NUMBER ?23.39 PUSHDOWN OVERFLOW; PROGRAM TOO LONG ?24.60 TWO PERIODS IN FILE NAME OR NO NAME ?25.37 BAD DEVICE OR 2 PAGE HANDLER ?26.18 BAD LIBRARY COMMAND ?26.58 NO PROGRAM NAMED BY 'SAVE' COMMAND ?26.99 EXPONENT TOO LARGE OR NEGATIVE ?27.10 PROGRAM NOT FOUND ?27.14 'LIBRARY CALL' FROM NON-DIRECTORY DEVICE ?28.06 'LIBRARY LIST' OF NON-DIRECTORY DEVICE ?28.73 DIVISION BY ZERO ?29.53 FILE ALREADY DELETED ?29.68 DEVICE ERROR: WRITE LOCK OR PARITY ?29.91 CANNOT OPEN OUTPUT FILE ?30.05 IMAGINARY SQUARE ROOTS REQUIRED ?31.<7 UNAVAILABLE COMMAND OR FUNCTION ? ATTEMPT TO READ PAST END-OF-FILE (INPUT IS SWITCHED TO TERMINAL AND PROGRAM CONTINUES) NOTE: 'TYPE =', 'TYPE )', 'TYPE ]', OR 'TYPE >' OUTPUTS A STRING OF ZEROES. THIS CAN BE INTERRUPTED BY TYPING 'CTRL/P'.
Summary of Commands
ELEMENTARY COMMANDS *ASK <X> ..........ACCEPT VALUE OF X FROM INPUT DEVICE *COMMENT ..........................IGNORE REST OF LINE *DO [LINE OR GROUP NUMBER] ............SUBROUTINE CALL *ERASE .................................ZERO VARIABLES *ERASE <LINE OR GROUP NUMBER> ....DELETE LINE OR GROUP *ERASE ALL .............DELETE ENTIRE INDIRECT PROGRAM *FOR X=E1[,E2],E3; COMMAND REPEATED (E3-E1)/E2+1 TIMES *GO [L1] ...........START PROGRAM EXECUTION AT LINE L1 *IF (E1)L1[,L2,L3] ...............BRANCH ON SIGN OF E1 *MODIFY <L1> .............................EDIT LINE L1 *QUIT ..................................STOP EXECUTION *RETURN ..........TERMINATE 'DO' OR 'GOSUB' SUBROUTINE *SET X=<E1> ...............ASSIGN VALUE E1 TO VARIABLE *TYPE [NUMBERS, E1, "TEXT", !, #, :, $ OR %] ...OUTPUT *WRITE [LINE OR GROUP NUMBER] ............LIST PROGRAM LIBRARY AND FILE COMMANDS *LIBRARY CALL [DEVICE:]<PROGRAM> .........LOAD PROGRAM *LIBRARY DELETE [DEVICE:]<PROGRAM> .....UNSAVE PROGRAM *LIBRARY GOSUB [DEVICE:]<PROGRAM> [G1] SUBROUTINE CALL *LIBRARY LIST [DEVICE:][FIRST LISTED FILE] ....CATALOG *LIBRARY RUN [DEVICE:]<PROGRAM> [L1] ............CHAIN *LIBRARY SAVE [DEVICE:]<PROGRAM> .........SAVE PROGRAM *LIBRARY EXIT ..................RETURN TO PS/8 MONITOR *OPEN INPUT [DEVICE:][FILE][,ECHO] ....PREPARE TO READ *OPEN OUTPUT [DEVICE:][FILE][,ECHO] ..PREPARE TO WRITE *OPEN RESTORE INPUT[,ECHO] .....RESUME INPUT FROM FILE *OPEN RESTORE OUTPUT[,ECHO] .....RESUME OUTPUT TO FILE *OUTPUT CLOSE ......OUTPUTS BUFFER; CLOSES OUTPUT FILE ---INPUT---,ECHO ........ECHO INPUT ONTO OUTPUT DEVICE ---OUTPUT---,ECHO ...........ECHO OUTPUT ONTO TERMINAL .FC & .FD ARE THE PROGRAM & DATA FILE NAME EXTENSIONS. - - - - - <> ENCLOSE REQUIRED TERMS. [] ENCLOSE OPTIONAL TERMS. ONE LETTER ABBREVIATIONS MAY BE USED AS COMMAND WORDS. X REPRESENTS A VARIABLE. E1, E2 AND E3 ARE ARITHMETIC EXPRESSIONS. L1, L2 AND L3 ARE LINE NUMBERS. G1 IS A LINE OR GROUP NUMBER. L1-L3 AND G1 CAN BE REPLACED BY ARITHMETIC EXPRESSIONS WHICH DO NOT BEGIN WITH AN 'A'.



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search

Mirror site if this site is slow highgate.comm.sfu.ca