Digital PDFs
Documents
Guest
Register
Log In
DEC-12-FISA-D
December 2000
20 pages
Original
2.3MB
view
download
Document:
dec-12-fisa-d
Order Number:
DEC-12-FISA-D
Revision:
Pages:
20
Original Filename:
https://svn.so-much-stuff.com/svn/trunk/pdp8/src/dec/dec-12-fis/dec-12-fisa-d.pdf
OCR Text
PDP-12 LIBRARY QANDA AM INTERACTIVE SUBROUTINE USING THE VR 12 DISPLAY Order DEC-12-FISA-D from Program Library, Digital Equipment Corporation, Maynard, Mass. 01754 Price $1.00 Direct qommeiits concerning this docyment to: Software Information Service Plgital Eqyjprnent Corporation Maynard, Mas^chusetts 01754 Specif! cation for QANDA Subroytine. ABSTRACT QANDA is a PDP-12 subroutine written in LING mode which allows a user to display textual informa- tion on the scope, ask questions of the viewer, allow editing of the input, and receive responses thereto PRELIMINARY REQUIREMENTS QANDA will operate on a PDP*“12 computer equipped with a VC12 LINCscope control and VR12 CRT display, and Teletype. The subroutine is called by the following format: JMP QAINIT +1 TXTSTR .+2 ANSWER • .+3 REFRESH return +4 DONE return . /POINTER TO TEXT STRING (HALF WORD ADDRESS) /POINTER TO ANSWER BUFFER (HALF WORD ADDRESS) The calling sequence must be in LINC mode, A JMP to QAINIT will initialize the subroutine and fill the answer buffer with the underline character initialized at least once. ( ). The subroutine must be QAINIT h located at the relative address 0 with respect to the beginning of the routine. -+l Points to the first character of the textual information to be displayed on the scope Characters in the text string which have special meaning are: Character Code RETURN 43 Meaning End of a line of display. next line < 74 Place next character on . Interpret the decimal number immediately following < as the number of characters in the question field (Range 1-9) \ 34 End of text string F 06 Treated as a special character only tf it appears at the beginning of a fine. If present, the entire line will be displayed in full-size character format. will not appear on the scope 1 F Code Character H 10 Meaning Treated as a special character only if it appears at the beginning of a line . If present , the entire line be displayed in half-size character format H will not appear on the scope If neither F nor H is present at the beginning of a line, half-size is assumed, and the first character of the line wi II appear on the scope Intermixing of half and full-size characters between lines is legal wi 1 1 . . . The 6-bit character string must conform to the character set accepted by DIAL. The "TEXT ” pseudo-op in DIAL may be used to create the text string . (See Table I.) For example, to display the following message on the scope in full-size character format: DATA AT BLOCK UNIT ___ the text string may be coded as: TXTSTR, TEXT -- ZFDATA AT BLOCK <3 FUNIT<] \Z and would be assembled as: TEXT, 0604 0124 0140 0124 4002 1417 0313 7463 4306 2516 1124 7461 3400 NOTE that the character "Z" before and after the text string is a delimiter for the assembler and does not appear in the assembled text string , (Any character not appearing in the text string may be used as a delimiter) 2 Note also that the character “TAB‘% if typed within the text string^ will appear in the assembled string and will not be Interpreted as a special character by DIAL. The use of within the text string should^ therefore^ be avoided. The subroutine wifi automatically place a space before all question fields on the scope. The text string will not be changed, .+2 Points to the first character of the answer buffer. The answer buffer need not be set up in any special way; it must be in length at least the number of half words equal to the sum of the number of characters in each question field plus one for each question field plus one. long: In the example above^ 7 half-»words 4 for the total number of characters In all question fields plus 2 for the number of question fields iM 1 for the terminator. Upon entry ^ QANDA will initialize the answer buffer as follows (see example above). All characters in each answer field are initialized to the underline character (00): ANSWER, 7400 0000 7400 3400 Code 74 precedes each answer field. Code 34 is the terminator buffer by . These codes are placed in the answer QANDA upon initialization. Characters, as they are received by QANDA from the Teletype, replace code 00 from left to right in each answer field. Conditions will always be such that the presence of a null value (00) in an answer field will guarantee that all remaining characters in that field will be set to 00 If the typist return is . Note that an all-null field is possible responds to the questions with the block number 43 and the unit 1 , when the "DO NE" taken , the buffer will show: ANSWER, 7464 6300 7461 3400 If the responses to questions are dealt with as received, the same answer buffer may be used with various text strings in sundry calls to QANDA, since it will be initialized by QANDA upon each initialization entry; the area reserved must, of course, be of sufficient length to accommodate the requirement among the text strings. 3 .+3 QANDA will refresh the scope once and then will return to this address not been typed . This return is , provided a LINE FEED has provided so that the calling program may periodically check externa I e .g . , a sense switch may be checked or; the program may display a message while await- conditions: ing completion of a tape instruction which it may check fo lowing each refresh I Examining a partial . answer buffer, however, is not recommended, because the answer buffer can be edited at any time by the typist To maintain the display on the scope, QANDA has another entry point, QARFSH , which will not reinitialize the answer buffer . It is QANDA must be entered at this point each time I ! always return to , +3 or . address of the instruction JMP QARFSH . to be refreshed. located at the relative address QAINIT +53. QANDA wi at it is +4 following the instruction JMP QAINIT, regardless of the . A common situation is to place the instruction JMP QARFSH +3 fo lowing JMP QAINIT I .+4 QANDA will return to this location only if either 1 . 2. LINE FEED is struck, or RETURN is struck and no question fields exist A return to this address signals that the typist has completed his input INPUT Input is received from the Teletype keyboard . equivalent and displayed on the scope . Legal keyboard characters are converted to their 6-bit Legal characters are shown in Table I . The following input characters are not displayed, but are treated as special characters Character Code Meaning \ 34 Ignored on input ALT MODE 36 The scope display is reinitialized All answer fields are reinitialized to the underline character RUBOUT 37 A cursor wi ( ) II always appear on the scope in front of the next character to be typed (unless there are no question fields) 4 Code Charaefrer Meaning Typing RUBOUT will delete the character preceding the cursor and will move all characters following the cursor one character to the left, unless the cursor is initially at the beginning of a question field, RETURN 43 The cursor is moved to the beginning of the next question field. in the last field, it If the will cursor is currently be moved to the beginning of the first field when RETURN is typed If there are no question fields, will LINE FEED RETURN have the same effect as LINE FEED. Causes QANDA to exit to the “DONE^^ 45 return TAB 47 < 74 Ignored on input Moves the cursor left one position. Subsequent typing of another legal character will cause the present character on the scope to the right of the cursor to be replaced by the charocter just typed > 76 Moves the cursor right one position unless that character is the underline character ( ). OUTPUT All output is to the scope, as described above. USAGE QANDA is written in LINC code. Along with the keyboard input subroutine, GETKBD, it occupies two blocks (512 words) of binary LINC tape. the source to the program. It If this is It may be assembled with the calling program by adding done, remove *1000 at the beginning of the subroutine. may also be called by reading the binary of the program into LINC location 1000 (memory blocks 2 and 3) and executing an effective JMP 1000 and JMP 1053 to refresh. Two blocks of the binary must be read into core memory, PROGRAMS CALLED A LINC Teletype input subroirflne, GETKID, Is called by QANDA and begins at location 121 of the second block of the binary. 5 It can be used independently of QANDA. GETKBD will accept ASCII input from the Teletype and convert it to 6-bit code as shown in Table I Its calling sequence is: JMP GETKBD RETURN address GETKBD returns with the 6-bit code in the accumulator. If the accumulator equals zero, a key was not struck , and no input was received; or an illegal character was typed GETKBD uses the LINC instruction lOB fol lowed by a PDP-8 Teletype lOT instruction to perform the Teletype input/output functions. The following instruction sequence is issued in the subroutine QATPE to echo a character: QATPE, lOB QATLS /EQUATED TO PDP-8 lOT TLS LDA 0 STC .+4/SAVE RETURN lOB QATSF JMP /WAIT FOR FLAG, PDP-8 lOT TSF .-2 JMP /EXIT This routine prints the ASCII character in the accumulator then waits for the printer flag to rise . The routine can be made more efficient by first waiting for the flag , then printing the character by changing the above routine as shown below: QATPE, STC QAACUM /SAVE AC ADD 0 STC QARETR /SAVE RETURN lOB QATSF QAACUM, JMP .-2 LDA I /WAIT FOR FLAG /GET CHAR 0 lOB 6 QATLS /PRINT IT CLR QARETR.JMP Subsequently, less flicker will /EXIT, AC-0 appear on the scope while characters are being typed* However, the calling program must initially cause the Teletype flag to raise when the program is first started. This may be accomplished by the following instruction sequence at the beginning of the programj lOB 6032 /PDP-8 lOT KCC /PDP-8 lOT TLS lOB 6046 Whatever method is used, the calling program must, of course, also conform to the same convention throughout the program whenever it is driving the Teletype. RESTRICTIONS QANDA must reside in the same LINC lower memory segment as the calling sequence. It uses, without restoring, index registers 1, 2, 3, 4, 5, 6. Further, these registers cannot be used by the calling program between the refresh return and the next call to the refresh entry unless they are first saved and then restored. The text string and answer buffer are separate from each other and from the calling sequence and may therefore be in upper memory. 2000 (e ,g string is . However, the text string may not start in the left half of LINC location the left half of the first word of the upper memory segment) unless the pointer to the text coded as 2\2000, or 2\TAG, where TAG -2000. QANDA will display a maximum of 44 "wrap-around “ will occur. half-size characters horizontally on a line before scope Likewise, a maximum of 22^^ full-size characters per line may be dis- played. A maximum of ^3 lines of text (either half-size of full-size) may be displayed vertically on the |q scope without wraparound. The initial Y-coordinate setting Is coded as 277g at location QARFSH + 1 This initial Y-coordinate setting may be changed by incrementing or decrementing this number by a 7 . number which is a multiple of 40^ . Thus, to raise the initial Y -coordinate one line and therefore at location increase the maximum number of lines to 14^^, the number 277^ may be changed to 33 7g QARFSH+1. Table I PDP-12 Character Set Character 6-bit Code Comments @ 00 Illegal A 01 B 02 03 C D G 04 05 06 07 H 10 I 11 J 12 K 13 L 14 M 15 N 16 E F O 17 P 20 Q 21 R 22 23 S X 24 25 26 27 30 Y 31 Z 32 33 T U V W [ \ SPACE 34 35 36 37 40 1 41 ] ALT MODE RUBOUT ti RETURN $ LINE FEED & Shift/K Shift/M 42 43 44 45 46 Illegal 8 Table I (Cont) PDP-12 Character Set Character TAB 6-bit Code ( 47 50 ) 51 k + / 0 52 54 55 56 57 60 1 61 62 63 4 8 64 65 66 67 70 9 71 5 6 7 Control/l 53 2 3 Comments 72 73 > 9 74 75 76 77 9 QANDA> LI 9J000 * 20 000 0002 0003 0004 /QANDA SUBROUTINE FOR THE /POP- 12 /RFMOVP *1000 BELOW IF /INSERTING SOURCE DIRECTLY /INTO YOUR PROGRAM SOURCE ^1000 /REMOVEWF DESIRED ’ 1 0 00 5 0006 0007 0010 001 / /TO HERE TO INITIALIZE THE ROUTINE / 1 000 00 1? 1 00 3 1001 0014 1002 1003 1 00 15 00 6 00 17 0020 002 0 022 0 02 3 1 1 1 004 100 5 00 6 020 0002 2000 1 OAI NIT^ ADD 0 STA I OAB^ /JMP 0 *3 ADD QAL4-3 10 16 1052 1017 020 0044 /PTR TO FIRST PARAM STC LDA /GET FIRST PARAM ADD QAO+ /PTR TO HALFWORDSTC GAC~3 LDA I STC QARFSH/XR6 USED AS A SWITCH. =08 STC 6 777 IF YES /XR3 TO PTR TO ANSWERS SET 3 QARFSHSET 4 /XR4 TO PTR TO QUESTIONS 1057 QAG-•3 0 4001 100 3 2 64 1011 5057 1 1 007 1 0 1 1 1 10 12 1013 0026 10 14 5052 400 6 0027 0030 003 0032 1015 0043 1 1 1 021 0 02 4 0 02 5 1 lELD^ 1 /SAVE JMP RETURN I 2 10 60 0000 3200 LDA 1 = 1 OACA;, /TO HERE IF 0033 FI RST TIME TH® CR 0034 0035 0036 0 03 7 0 0 40 0 0 41 0 0 42 0043 0044 0045 0046 0047 0050 0051 0052 0053 0054 0055 0056 0057 0060 0061 0 0 62 0 0 63 0 0 64 0065 00 66 1021 1022 1023 1 1 024 025 02 6 02 7 030 103 1032 1033 1034 I I 1 1 103 5 103 6 SET 0041 000 4 7270 001 6 132 4 723 1 GAD, 7035 7050 1 4 60 0043 702 6 1 771 7 1041 1042 10 43 0017 4006 1044 1045 1046 1047 0226 7043 10 50 10 51 343 0064 1 120 3 63 1323 7026 1 /E /H. BUMP PTR IE H OR F / 74 /34 /CR? JMP QAD /NO JMP QACA+4 /EXAMINE NEXT CHAR /INITIALIZE ANSWER BUFR STH 3 /74 TO ANSWERS LDH I 4 /NEXT HALFWORD ADA I ~60 COM STC 6 STH I 3 /0 IN AC XSK I 6 JMP . -2 LDH I 3 /BUMP PTR TO ANSWERS JMP QAD /ANSWER BUER IS INITIATED 1343 1324 10 40 JMP QAT NOP LDH I 4 JMP QAO JMP .4-6 JMP OAF SAE I 43 7021 1037 1 4 QAE, STH SET 3 4 I /XR4 TO PTR TO LAST TYPED® ER BfJFR 00 67 0 0 70 001 1 1 0 52 00 00 1 0 \ 0 / ‘ ) 3 020 UARE.SH, LDA R^E-FNTER /INITIAL I 10 Y HEIG>: POrjTION TO REFB a 0 0 72 0 0 73 1055 1054 1057 060 0074 0075 00 7 4 02 77 5113 0 54 1 i 0063 0000 0045 9.11 SIC QAH SET I 3 1 /XR3 TO PTR TO HALFWORD 00 0 SET 5 BUER QARFSHOAG, SET /XR5 TO PTR TO LAST DISPL0 SWFCR 0077 0100 1041 1062 0 101 0 I 02 0 10 3 0 04 0 105 0 104 10 70 0 107 107 0 110 0 111 0 1 2 0 113 10 72 10 73 10 7 4 10 7 5 0 43 10 44 1 1045 044 10 4 7 1 1 1 1 114 107 4 0 115 10 7 7 0 116 1 00 1101 102 103 0 117 0 1P0 1 1052 0041 1 0003 7270 7074 323 020 3 JMP QAT JMP + 7 LDH I 3 LDA BCL I STC OAM + 2 ADD OA W JMP 0AM LDH I 3 LDA I BSE I 1 1 5 40 7 10 1 1 1 1 1 0024 0 121 1 1 0 1 22 1 0 123 0 12 4 0 125 0 124 1105 1104 1107 1110 0 127 nil 30 1112 1113 1114 1115 1116 /H. RUMP PTR /MFITHFR. ASSUMF HALF SIZF I 5103 3512 32 3 020 420 5103 3 513 5245 /F . 1 /SET INSTH TO CLEAR EE FOi /NOP IN AC /BUMP PTR STC QAM-i-2 ADD QAW+ STC QAP+3 MSC I 4 BSE I /FAD CONTROL RFGI STER /THIS INSTR CHANGES. EITHB 200 MSC SET /AC TO CONTROL REGISTER /XRl TO INITIAL X POSITION /SET INSTR TO SET FF FOR E /ADD 9U IN AC 1 QAM, 620 J? o^ 0 1 0 1 3 1 0 1 32 0 1 33 0 1 34 104 0200 000 4 0061 0 00 020 7737 I i LDA I /V COORDINATE MULTIPLE I /Y “ 40 ADM 40 1 1 100 1 1 0000 323 7232 4 I COORDINATE 0 QAH, 7301 LDH I 3 JMP QAO-4* JMP QAZ 1 BUMP PTR TO NEXT CHARI /I r 0 135 0 136 1117 20 j 1 3 7 0 1 40 1121 22 123 : 0 141 0 1 /?2 0 1 43 0 14 4 1 ! 7134 420 4300 JMP QAJ SHD I 1 70 42 24 25 126 7242 7114 7242 520 JMP JMP JMP JMP SRO 1 1 1 1 1 1 1 1 /34 /NEITHER 43 00 1 QAG GAP QAH OAP I /CR. MOVE X AND Y COORDIN® /ISPLAY CHAR /PICK UP NEXT CHAR /TO HRRF IF DISPLAYING ANS /SWITCH TO DISPLAY CURSOR. EITHFR0 7777 0 1 45 0 1 46 0 I 47 0 1 50 0 151 0 1 52 0 1 53 0 54 0 55 0 15/^ 1 1 1 S7 0 1AM 0 I 41 0 42 0 1 43 0 44 1 1 27 1130 0000 0 751 6 JMP QAE 1131 32 113 3 325 7232 7114 34 7 114 1135 1134 1137 7125 1 1 /IFXR4=XR5, THEN SWITCH = 77 /QUESTION MODE 1 1 1 1 1 1 A0 I 752 1 0 4 70 700 4 u /n 1 I 1 42 43 14 12 1 1 1 44 73 1 1 45 1 1 402 I 1 422 QAI ^ OAJ, LDH JMP JMP JMP JMP JMP aZe JMP SET DAY SHD JMP SHD I 5 QAO-f- 1 QAH QAH /74 /34 /NEITHER. DISPLAY IT /TO HERE IF DISPLAYED RHER OA I - 4 GETKRD I OAR /MOTH MG T7PP0 I 1 2 OAK +4 I 11 . EXIT 2 2 /LF? /VFS, /C ? FXIT 0 1 <A 1 0 1 0 1 66 67 70 0 171 0 1 12 0 1 73 0 74 0 1 75 0 1 76 1 1 1 1 7223 020 6 7053 422 7175 422 7305 422 1 1 701 5 114 6 1147 50 1151 1 1 52 1 53 1 1 1 1 54 55 56 1 57 1 1 60 0200 1 1 61 0 20 1 1 1 1 1 ! 1 1 1 1 0 1 77 0202 0203 0204 0205 0206 0207 0210 02 1 1 0212 0213 021 4 021 5 021 6 021 7 62 63 64 65 1166 67 70 1171 72 1 73 1 1 1 1 1 1 1 1 1 1 1 74 1 75 1 76 77 1 200 1 1 0220 1201 0221 1202 1203 1204 1205 120 6 1207 1210 0222 0223 0224 0225 0226 0227 0230 023! 0232 0233 0 23 4 0 23 5 0236 0237 0240 121 1 1212 1213 1214 1215 1216 1217 1220 1221 0241 1222 0242 0243 0244 0245 0246 0247 1223 1224 1225 1226 0250 0251 0252 0253 0254 0255 0 2 56 0257 02 60 02 61 0 2 62 GAN "’.k* J "^2 /<? SHD I 2 JMP GAL />? SHD I 2 JMP OAK /ALT? SHD I 2 JMP QACA /REINITIALIZE /BACK SLASH? SHD I 2 JMP QARFSH /I GNORE SHD I 2 /RUBOUT? JMP GAL /IGNORE /TAB? SHD I 2 JMP QARFSH /I GNORE +5 /ACCEPTABLE CHAR STC JMP GAD /TEST NEXT CHAR JMP QAQ /I RACK PTR UP BY JMP QAQ /34 t /OK, STORE IT LDA I 1 1 I 422 7053 422 7175 422 7053 I 1 1 51 72 . 7231 72 63 72 63 1020 0000 1344 7053 1304 7232 7053 775 1302 /IS THERE AN ANSWER FIELD? / OARFSH 0 STH 4 GAL, JMP QARFSH LDH 4 JMP QAQ+ JMP QARFSH -6002 LDH 2 SAP I 14 60 0037 37 72 63 JMP QAQ SET 5 0045 0004 0043 0004 7213 SET 00^ 6 001 1 345 0450 7212 7263 AZE JMP -7 JMP QAQ 1 STH 1 /BUMP PTR /GET NEXT CHAR 1 /IF 74 OR 34^ REPLACE CURl 5 /WAS IT 74 OR 34? /NO, CONTINUE /BACK PTR UP BY /TO HERE IF CR • 1 122 7 7053 7051 1230 7225 ESTION FIELD JMP QAN + 2 1231 1324 420 7400 6000 12 40 12-'i^ GAN, 731 1 7231 00 3^^ 022 022 6000 1 3 JMP . + 2 LDH I 5 LDH I 3 JMP QAO+ NOP CLR 4 60 BACK PTR UP BY 4 325 323 7232 1 /TEST THE CHAR /RUBOUT? 4 1 1 < /74 IGNORE /NO, XSK JMP JMP JMP JMP 1232 1233 1234 1235 1236 1237 /RED! SPLAY /TO HERE IF RUBBOUT OR 1 1 0206 1 QAO^ 6 QAK+4 /EXIT ROUTINE IF NO ANSWEl QAO QARFSH QAE+ /74 MOVE PTR TO NEXT QUESl /34 END OF BUFR. MOVE PTRt LDH I 4 SHD I 7400 JMP 0 SAE I 34 XSK I 0 XSK I 0 JMP 0 12 1 /S\R / / / 74 BEGIN FIELD 34 END BUFR +3 NEITHER 74 NORa +1 -1-2 /S\R TO DISP LINC CHAR N0 /MULT BY 2 FOR INDFX TO At I 0 2 64 12 42 02 4! 0 2 65 12 43 3 430 02 66 2 44 12 4 5 4002 24 6 247 1250 3 50 6 QAP^ ROL 1 ABLE 0267 1 ADD QAX+4 STC 2 ADD QAU /ADDRESS OF CHAR TO DI SP i /THIS IMSTR CHANGFS. EITHi 1 ADD QAU ADD /ADD 1 STC 3 50 6 9U 0 2 70 0 2 71 ^A91o 0273 0274 0275 1 1 12 51 2 52 12 53 1 200 400 200 5 2004 0 4 50 0211 0300 1255 001 12 5 6 0 301 1257 5127 3113 0302 12 60 1 7 42 0 303 0 30 4 0 30 5 1261 1 7 62 0 30 6 0 30 7 0 310 12 64 0 3 1! 03 12 03 13 03 14 03 15 ! 1 40 0004 7053 JMP QARFSH /REDISPLAY LDH I SHD I 0 600 JMP 0 SAE I /S\R 1 1 1 321 1 420 0 3 16 1273 6000 12 7 4 12 75 12 7 6 12 77 0323 24 0 32 5 0 32 6 0 32 7 0 3 30 1 QAQi. 0334 0335 0336 0 33 7 0 3 40 0 34 1 0 3 42 v1 3 ^3 1 1 30 0 1 OAT. 4 60 0010 0220 0220 6000 0347 0350 1 / / / I I F 2 H ! -f 'i'3 NEITHER 0 0 0 JM!'^ 1 I 1 323 020 OAZ> LDH LDA I 3 I 13 0 3 0 0 40 40 1 304 7125 JMP QAI “4 1 30 5 32 4 0 4 70 /TO HERE IF 1 1 306 307 13 10 1311 1 3 1 2 13 13 13 14 13 15 1 QAK. 7263 7424 LDH I 4 AZE I JMP QAQ JMP QAX LDA 020 000 1140 1 1 6 1 320 4477 1 32 7744 517 7 1 1 0 3 53 03 4 1 1 1 1 3 22 32 3 32 4 32 5 32 6 32 7 1 330 1 I 1 /IS CURRENT CHAR BLANK? /YFS« IGNORE /MOVE DOT FORWARD /TO here to exit with SKIP I ADM QAB JMP QAB 00 4 70 0 4 13 17 3 QAV. 010 1 010 /CHARACTER PATTERNS /KRD 0> ILLEGAL. USED AS M 1 4477 7744 51 7 7 / \ tf\ /2: n 2651 413 6 22 4! / 3 : r: 4 77 41 77 / A 3 64i4 577 364 4577 /5tK 2 65 ! 41 36 22 4 1 1 > 1 1 0 10 0 10! 1 0352 0355 0 3 56 0 3 57 I / 30 130 2 1 0351 > /BACK UP PTR BY 10 XSK XSK 0344 0345 0 34 6 /DISPLAY CHAR 4 0331 0 332 0333 /switched or 7777 /Y COORDINATE IN AC / 1870 127 03! 7 0 322 4 12 66 12 67 6000 1020 3777 TO SPACE CHA /GET ADDRESS OF ANSWER BUR 5 1265 2 62 1 2 63 1 0 600 0 32 1 TO XR! STC QAI “2 ADD QAH“ DSC 2 DSC I 2 JMP 0 LDA I “4000 ADM 2 72 0320 4 1 ADD COM ADD AZE CLR 001 7 12 54 CO 1 1 13 0360 03 61 0 3 63 0363 0364 0365 0366 0367 0370 0371 0372 0373 0374 0375 0376 0377 0 400 0 401 0402 0403 0404 0 40 5 0 40 6 0 407 1331 332 333 1334 335 1336 337 1340 1 1 1 1 1341 1342 1343 13 44 1345 1346 1347 1350 1351 1352 1353 1354 1355 1356 1357 13 60 0410 1361 041 1 13 62 1 3 63 13 64 13 65 0412 0413 0414 0415 0416 4145 4477 4044 4136 2645 1077 7710 4145 4477 4044 4136 2645 1077 7710 7741 0041 4142 7741 0041 /! UI 4 1 42 40 7 6 /12s J 1077 4324 0177 0301 3077 7730 3077 7706 4177 1077 4324 0177 030! 3077 7730 3077 7706 /13SK 4! 77 / 1 7S0 7741 7741 4477 3044 4276 0376 4477 3146 4477 3044 4276 4076 4040 4077 041 7 0420 1371 7701 0 421 0176 7402 0677 0 42 7 1372 1373 374 1375 1376 1377 400 0430 1 0431 1 0 423 0424 0425 0426 0432 0433 0434 0435 0436 0437 0440 0441 0 442 0 443 0444 0445 0446 0447 0450 0451 0452 0453 0454 0455 0456 1 1 1 I 1 401 402 403 404 405 5121 4651 40 40 6314 0770 7007 4543 6151 6151 4! 77 1 4177 0000 1 424 7232 s /32s Z /33S/ /34S BACKSLASH IGNORED ON i /NOT USED /NOT USED 0000 GAY, 4543 74 7 6 3 63 4 3 63 4 3 747 422 423 /31 Y 0000 4543 7476 1 /24S T /30sX 14 63 6314 0770 7007 4543 1412 1413 1414 1415 1416 1417 420 1 /23S S /27S W 7701 463 7741 42! /22sR 0677 774! 1 /21 sQ /26S V 41 1 1 /20sP 7402 1 0000 0000 7500 0000 7000 0070 /! 6SN 0176 0 0 1 / 1 5SM /25s U 0000 0000 0000 1 / 1 4SL 01 77 7 701 406 407 1410 1 /10sH 4077 01 77 770 /7J G 3146 5121 465! 1366 1367 1370 0422 03 7 6 4477 /6s F 3747 0000 0000 7500 0000 7000 0070 /35S 3 /CODES 36SALT.. 37sRUBOUT 8 /LF^CR /<> > /ALT^ BACK53LASH /RUBOUTi. TAB /40s SPACE /41 sX ! /42s ” /CODES 43: > 44 QAX, JMP QAO+1 14 S , 45sLF NOl 0457 1 0 4 60 0 4 61 I 1 0 4 60 0 4 63 0 4 64 1 1 1 0 4 65 0 4 66 0 4 67 1 425 426 427 430 7263 7053 1316 0000 5166 43! 432 433 43 4 1 43 5 1 43 6 43 7 ! 0470 0471 1 0473 0474 0 475 1 440 1 441 0 476 0 477 0 500 442 443 1444 445 0 50 1 1 1 3 600 0041 4100 3 600 00 4 4100 0036 2050 0050 0404 0036 /5i : ) /52i* 20 50 0050 0 404 0437 0500 0006 /53: 0 40 4 0 40 4 /55: - 1 452 4 53 000 0000 0001 0000 /56: . 1 454 0 60 ! 0 60 i / 57: \ 455 40 3 1 456 457 1 4 60 1 3651 210! 4030 4536 365! 210 ^ 4536 0 77 0! 77 4 62 4 63 1 4 64 4523 215! 1465 466 1467 470 2651 4523 2151 4122 2651 241 4 ! 1 1 1 0 52 6 1 1 1 471 0527 0530 0531 1 472 473 474 475 I 476 0 532 I 1 1 477 500 1 501 I 4122 2414 0477 5172 ! 4225 4443 5126 2651 5122 365! 2200 0000 1 1 0537 0540 I 502 503 504 1 50 5 506 507 1510 0002 0000 1 151 1 /62 2 s / 63 s 3 / 64S 4 /65: 5 150 6 /66S6 /67s 7 /70S8 2 65! 5122 /71 S9 3 65! 2200 0000 /72s 4 601 4 60! /73S 1 0000 0000 QAU^ 1212 1212 1 /CODE 74S<N0T DISPLAYED /CONSTANT /NOT USED 1 1 / 61 : 1 5! 72 0 651 4225 4443 6050 5126 60 50 0 53 6 /60:0 0477 0651 506 0533 0534 0535 /54: > 1 1461 0522 0523 0524 0525 0542 0543 0544 0545 0 546 0547 0550 055! 0552 0553 0554 0555 /50: C 1 0 40 4 1 0 54 /CODE 47: TAB NOT DISPLAYED /NOT USED /NOT USED 451 1 0 521 0 0 1 0512 051 7 0000 0000 & 1 1 0520 0526 0006 0404 1 0515 0516 /46S 0 52 6 447 450 1 0 513 0 514 /NOT USFD 51 66 44 6 1 051 0 0 43 7 0 500 I 0 50P 0 503 0 50 4 0 50 5 0 50 6 0 50 7 0 510 JMP QAQ JMP QAQ JMP QARFSH QAV 72 63 2 0 1212 1212 /75f = /CODE 76:> NOT DISPLAYED 512 1513 1514 1 001 6 151 5 3506 4020 2055 151 6 1 QAW^ NQP ADD QAU 4020 2055 / 1 51 7 7 60 6000 QAr> DSC I 6000 15 /111 ? 0 520 1 JMP OAI 7131 0557 / /END Q+A 0 5 60 0561 / 0 5 62 / 0563 / 0 5 64 / 0565 0566 0567 0570 /KEYBOARD INPUT ROUTINE 0571 QATLS= 6046 0572 0573 0574 0575 0576 0577 0 600 0 601 0 602 0 603 0 60 4 0 60 5 0 60 6 0 607 0610 061 0 612 0 613 1 0614 / / 52 1 1000 1 0000 5643 0 2001 5640 ADD 1 52 6 52 7 1 530 2002 5642 5636 0415 6000 0500 6036 1 1 1 531 1 1 532 533 1 53 4 1 1 535 536 537 540 0000 1120 7540 1 541 0451 1 542 7604 1 543 544 545 546 547 550 0061 654 00 62 7770 1000 536 1 551 1 1 1 0617 1 1 1 1 1 1 1 0630 1 0 631 0 632 0 633 1 552 553 554 555 - 2 /GET TTY CHAR;» CLEAR FLAG /SAVE IT 0 ADA I ”237 APO JMP QACNTR SET I QACHAR”! SET I 2 1 /BETWEEN 200 AND 237? /CONTROL CHAR. CHECK FOR /NO ”7 LDA GATY SAE I JMP .+2 /ILLEGAL CHAR. DONT ECHO JMP QAEXIT XSK I 2 /CHECKED THEM ALL? JMP «”4 1 7551 / 556 557 1560 1 7572 1020 0334 7644 0645 0 646 1 571 7 63 7 1 1 ADA I ”337 APO JMP QALEGL 120 563 1 564 1565 1 566 1 567 570 /BETWEEN 240 AND 337? /YES. LEGAL CHAR / 1 1 SAE I JMP .+7 LDA I 334 JMP QATPE LDA I 37 JMP QAEXIT+2 1 1020 0037 0647 0 65 4 CATY^ 461 1 1461 0652 0653 2 lOB 7554 7635 0222 15 62. 0 650 0 651 1 QAEXIT+3 QAKRB STA I 1 561 0641 /SAVE RETURN AND /SAVE XRS QAEXIT+5 QAEXIT+1 /WAS SOMETHING TYPED? KST /NOs EXIT JMP 0 1 7440 0451 7575 0 642 0 643 0 644 STC ADD STC STC 1 / 1 0 63 4 STC QAEXIT+6 10 60 061 5 0 63 5 0 63 6 0 63 7 0 640 GETKBD ^ LDA 522 1 523 524 525 1 0 616 0 620 0 621 0 622 0 623 0 624 0 625 0 62 6 0 62 7 /POP- 8 lOT KBD /TSF /TLS QAKRB=: 6036 QATSF=: 6041 /NO. CHECK FURTHER. /RUBOUT /ECHO BACKSLASH /LEGAL EXIT / 1 572 573 7635 1 574 7637 1 1 SAE I JMP QAEXIT 461 1 JMP GAEXIT+2 / 16 /ILLEGAL /ALT /KXlls DONT ECHO 0655 0 65 6 0 657 I 575 1 57 6 0 6 60 1 577 600 0661 1 60 0 6 60 0 663 0 664 0 665 0 666 0 667 0 670 0671 0 67P 1 1 1 603 603 1 604 1 1000 536 7644 ! 3536 1 5 60 7700 7 63 7 1 460 1 60 5 1 60 6 60 7 7755 1 7621 1020 1 610 0043 43 ! 61 ! 5 63 6 STC QAEXI T+ LDA I 215 JMP QATPE 0 673 0 674 0 67 5 613 1613 0 676 1615 1616 1 1020 ! 61 7 0215 7644 020 0212 7644 1 1 630 7 63 5 3 703 1 63! 1 1 633 7752 63 3 63 4 7 62 7 1 ! 635 0 67 7 f4 70 0 0 70 0 703 0 70 4 0 70 5 0706 0 70 7 0 7 10 07 0 7 13 i 1 0 713 0 714 0 715 0716 0717 0 730 0 731 0 73 3 0733 0 73 4 0 73 5 0 73 6 QALEGL^ LDA OATY JMP QATPF /ECHO CHAR ADD QATY /STRIP IT TO 6-BIT BCL I 7700 JMP QAEXIT4-2 /TO HERE IF CONTROL CHAR QACNTR# SAE 1 7755 JMP QACKLE LDA I /CR 1 6! 4 LDA I 212 JMP QATPE JMP QAEXI 1 / 1 1 63 6 63 7 63 0 63 1 633 1 1 1 1 1 i 63 3 63 4 460 OAOKLF^ 020 00 45 1 775! 77S1 JMP QAEXIT LDA I 1020 00 47 QAFXIT^ LDA 63 5 63 6 1 63 7 1020 0000 0061 SET 1 640 0000 0 1 64 1 1 SET 1 0 73 0 1 64 4 0 500 0 73 1 645 60 4 6 1 0737 1 64 6 64 7 1 650 1 1 651 6 53 65 3 1 1 0740 1 654 0 74 0 743 1 65 5 0743 1 0 7 44 1 0745 1 656 657 660 ! 66! ! 663 i 6 63 1000 0 7 53 I 1 I 2 /RESTORE XRS JMP /EXIR S\R GETKBD /S\R TO PRINT C(AC) OATPF:. I OR /PDP-B lOT TLS QATL.S LDA 0000 5654 0500 0 STC »+4 /SAVE RETURN lOB QATSF /WAIT FOR FLAG JMP »-2 JMP /EXIT 60 41 765! 6000 / 1 0751 0753 /GET 6-BIT ASCII I 0 0 0 7 50 /£KIT^ DONT ECHO / 0000 6000 0 74 6 0 747 /ILLEGAL 47 JMP QAEXIT+2 7 63 7 00 62 0 73^? 0 73 5 0 73 6 0 73 7 /LE 7635 1 0733 0733 4 JMP OACNTR+5 SAE I 4 60 643 643 1 -h 45 7611 1 SAP I 7752 JMP « LDA I 1 1 664 665 0243 0244 0245 0247 0300 0336 0337 0040 003 6 OACHAR^ 243 244 245 247 300 336 337 40 /RUBOLIT /ALT OF S\R GETKBD 36 /F\*D /HASH /DOLLAR SIGN /PER CENT /APOSTROPHE /AT SIGN /UP ARROW /BACK ARROW 17 0000 r.FTKPn SS? 1 50 0 X OAR 50 5 OACA OACH AR 5 A5 5 OACKL 5 60 1 1 OACNTR 5 60 4 OAn 5006 5050 f)AF OAFXI OAF OAG OAH OAI OAINI OAJ OAK OAKRB (;AL 5 63 5 55 6 50 60 1 5114 513 500 0 1 5136 5305 60 3 6 51 75 TiALFCL 5575 (JAM OAN OAO rjAP 510 5003 503 1 1 50 40 50 63 OAO OARFSH 5053 5070 OAT OATL.S 60 4 6 OATPF OATFF OATY 5644 60 4 1 OAIJ 5536 5506 OAV 53 0AW 5510 OAX 5 40 4 r(AY 5410 OAZ 5301 1 6 RRRORS
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies