File: SPEAK.LS of Disk: V50/Source/Source-Listing-FORTRAN-2
(Source file text)
RALF V50A 24-JUL-20 PAGE 1 / SPEAK - Types out messages from the database / Also includes TTY output routines that unpack / packed sixbit into mixed case ASCII. / FIELD1 ADVTTY 00000 0000 TTY, 0 / TTY Output routine, dupe of FRTS 00001 6002 IOF / Protect from race conditions 00002 7450 SNA / Input or output? 00003 5235 JMP KBD / Input - read character 00004 3261 DCA HANGPT / Output - save char 00005 6214 RDF 00006 1226 TAD CDIF00 00007 3224 DCA CDFX 00010 6201 CDF 0 00011 1657 TAD% TOCHR / Output character status in FRTS 00012 7740 SMA SZA CLA / If gt 0, char backed up 00013 5227 JMP BUSY / Else must wait 00014 1657 LOOP, TAD% TOCHR / Get the status 00015 7104 CLL RAL /Busy flag in link 00016 7230 CLA CML RAR /Complement of busy in sign 00017 1261 TAD HANGPT 00020 7510 SPA /If tty not busy, 00021 6046 TLS /Send it 00022 3657 DCA% TOCHR /Store pos or neg, backed up or busy 00023 6001 TTYRET, ION /Interrupts back on 00024 7402 CDFX, HLT /Caller's field 00025 5600 JMP% TTY /Return 00026 6203 CDIF00, CIF CDF 00027 6211 BUSY, CDF 10 /Busy, must wait. Call Field 0 HANG routine 00030 6202 CIF 0 00031 4662 JMS% HANGPT+1 00032 0451 0451 / TTUHNG 00033 6201 CDF 0 00034 5214 JMP LOOP / Try output again 00035 6214 KBD, RDF 00036 1226 TAD CDIF00 00037 3224 DCA CDFX 00040 6201 CDF 0 00041 1660 TAD% TICHR / Any input? 00042 7650 SNA CLA 00043 5251 JMP WAIT / No, wait 00044 1660 GETIN, TAD% TICHR / Get character 00045 3261 DCA HANGPT / Save 00046 3660 DCA% TICHR / Clear buffer 00047 1261 TAD HANGPT 00050 5223 JMP TTYRET / Return 00051 6211 WAIT, CDF 10 00052 6202 CIF 0 00053 4662 JMS% HANGPT+1 /Hang 00054 0465 465 /KBUHNG 00055 6201 CDF 0 RALF V50A 24-JUL-20 PAGE 1-1 00056 5244 JMP GETIN /Get input 00057 0004 TOCHR, 4 00060 0005 TICHR, 5 00061 0000 HANGPT, ADDR #HANG 00062 0000 / / Terminal line input routine. Used because the FRTS input is quite limited. / This one handles scope rubouts and allows lower case input. / Inputs: Array Returned characters, stored one sixbit per array word / (The FORTRAN input routine is set up this way to unpack) / Size Number of characters to allow / Prompt Prompt string FIELD1 RDLIN / ENTRY RDLINE 00000 1030 RDLINE, JA #RLST 00001 0063 #RLXR, ORG .+10 00012 2204 TEXT +RDLINE+ 00013 1411 00014 1605 00015 1100 #RLRET, SETX #RLXR 00016 0002 00017 1110 SETB #RLBAS 00020 0023 00021 1030 JA .+3 00022 0024 #RLBAS, ORG .+6 BUFPT, ORG .+3 BUFLEN, ORG .+3 ORG #RLBAS+30 00053 0040 FNOP 00054 1030 JA #RLRET 00055 0015 00056 0040 FNOP 00057 0000 #RGOBK, 0;0 00060 0000 #RLRTN, BASE #RLBAS 00061 1030 JA #RGOBK 00062 0057 00063 0006 #RLST, STARTD 00064 0210 0210 00065 6400 FSTA #RGOBK,0 00066 0057 00067 0200 0200 00070 1100 SETX #RLXR 00071 0002 00072 1110 SETB #RLBAS 00073 0023 00074 0101 LDX 0,1 00075 0000 00076 6200 FSTA #RLBAS 00077 0710 FLDA% #RLBAS,1+ 00100 6202 FSTA BUFPT 00101 0710 FLDA% #RLBAS,1+ RALF V50A 24-JUL-20 PAGE 1-2 00102 6203 FSTA BUFLEN 00103 0005 STARTF / / Pass down size to '8' code / 00104 1100 SETX BUFSIZ 00105 0147 00106 0603 FLDA% BUFLEN 00107 0003 FNEG / Make it negative 00110 0020 ATX 0 / Pass buffer len 00111 1100 SETX #RLXR 00112 0002 00113 4000 TRAP4 GETLIN / Get input line 00114 0000 00115 1030 JA #RLRTN / And return 00116 0061 / Input reader FIELD1 GETLN 00000 0000 GETLIN, 0 00001 7200 CLA 00002 3366 DCA OFFSET / Start at offset zero 00003 1750 TAD% SCOPT 00004 0351 AND K200 00005 3364 DCA SCOPE 00006 1763 TAD% BUFFLD+1 / Get CDF for buffer 00007 0376 AND FLDMSK 00010 7106 CLL RTL 00011 7004 RAL 00012 1373 TAD CDFG 00013 3275 DCA BUFCDF / / Go get an input character / 00014 4767 GETNXT, JMS% PTTY+1 / Called with zero to get char 00015 3377 DCA INCH / Save input / / Specials? / 00016 1377 TAD INCH 00017 1352 TAD MDEL / Delete? 00020 7650 SNA CLA 00021 5310 JMP DELETE / Handle that 00022 1377 TAD INCH 00023 1353 TAD MCR / CR? 00024 7650 SNA CLA 00025 5333 JMP ENTER / End of line, let's go. 00026 1377 TAD INCH 00027 1355 TAD MSPC / Less than space? 00030 7710 SPA CLA 00031 5305 JMP BELL / Nope, ignore 00032 1377 TAD INCH 00033 1357 TAD LWRA / Is it lowercase? 00034 7710 SPA CLA 00035 5245 JMP UPPER / No, store it RALF V50A 24-JUL-20 PAGE 1-3 00036 1377 TAD INCH 00037 1360 TAD LWRZ 00040 7700 SMA CLA 00041 5245 JMP UPPER / More than lowercase z 00042 1377 TAD INCH 00043 1361 TAD AMINA / Adjust to uppercase 00044 3377 DCA INCH 00045 1366 UPPER, TAD OFFSET 00046 1347 TAD BUFSIZ / Room left? 00047 7700 SMA CLA 00050 5305 JMP BELL / Bell if not 00051 1377 TAD INCH 00052 4767 JMS% PTTY+1 / Echo it 00053 4255 JMS STORE / Store this character 00054 5214 JMP GETNXT / Get more / Store a character in the output buffer / using the current offset / 00055 0000 STORE, 0 00056 1366 TAD OFFSET 00057 1366 TAD OFFSET 00060 1366 TAD OFFSET / Count FPP words 00061 1765 TAD% BUFPTR+1 / Pointer to exponent word 00062 3362 DCA BPT 00063 1374 TAD K27 / Exponent 27 for integer 00064 4274 JMS STO 00065 4274 JMS STO / Zero high word 00066 1377 TAD INCH / Char value 00067 0375 AND SIXMSK / Convert to sixbit 00070 4274 JMS STO / Store in buffer 00071 6211 CDF 10 / Back to my field 00072 2366 ISZ OFFSET / One more in the buffer / NOP / Really shouldn't overflow 00073 5655 JMP% STORE / Return 00074 0000 STO, 0 00075 7402 BUFCDF, HLT / Gets CDF for buffer field 00076 3762 DCA% BPT 00077 2362 ISZ BPT / Next word 00100 5674 JMP% STO / Return if no skip 00101 1275 TAD BUFCDF 00102 1370 TAD BS / Next field 00103 3275 DCA BUFCDF 00104 5674 JMP% STO 00105 1356 BELL, TAD BEL / Warn the user 00106 4767 JMS% PTTY+1 00107 5214 JMP GETNXT 00110 1366 DELETE, TAD OFFSET / How far into the buffer are we? 00111 7650 SNA CLA 00112 5305 JMP BELL / Ignore extra deletes 00113 1364 TAD SCOPE 00114 7650 SNA CLA 00115 5325 JMP DUMBDL / Simple fortran-format delete RALF V50A 24-JUL-20 PAGE 1-4 00116 1370 TAD BS 00117 4767 JMS% PTTY+1 00120 1371 TAD SPC 00121 4767 JMS% PTTY+1 00122 1370 TAD BS 00123 4767 JMS% PTTY+1 00124 5327 JMP FIXOFF / Fix the offset 00125 1372 DUMBDL, TAD K334 / Backslash 00126 4767 JMS% PTTY+1 00127 7240 FIXOFF, CLA CMA 00130 1366 TAD OFFSET 00131 3366 DCA OFFSET 00132 5214 JMP GETNXT 00133 1354 ENTER, TAD CR / Send a RETURN 00134 4767 JMS% PTTY+1 00135 1366 CLRLP, TAD OFFSET / Is there space available? 00136 1347 TAD BUFSIZ 00137 7700 SMA CLA 00140 5345 JMP CLRDN 00141 1371 TAD SPC 00142 3377 DCA INCH 00143 4255 JMS STORE 00144 5335 JMP CLRLP 00145 6203 CLRDN, CIF CDF 0 00146 5600 JMP% GETLIN 00147 0000 BUFSIZ, 0 00150 7726 SCOPT, 7726 / Scope flag in OS/8 00151 0200 K200, 200 00152 7401 MDEL, -377 / Delete 00153 7563 MCR, -215 00154 0215 CR, 215 00155 7540 MSPC, -240 00156 0207 BEL, 207 00157 7437 LWRA, -341 00160 7405 LWRZ, -373 00161 7740 AMINA, -40 / Add to "a" to make "A" BPT, 00162 0000 BUFFLD, ADDR BUFPT+1 00163 0032 SCOPE, 00164 0000 BUFPTR, ADDR BUFPT+2 00165 0033 OFFSET, 00166 0000 PTTY, ADDR TTY 00167 0000 00170 0010 BS, 10 00171 0240 SPC, 240 00172 0334 K334, 334 00173 6201 CDFG, CDF 0 00174 0027 K27, 27 00175 0077 SIXMSK, 77 00176 0007 FLDMSK, 7 00177 0000 INCH, 0 / RALF V50A 24-JUL-20 PAGE 1-5 / Fortran-callable message printer / Put here to avoid wasting the rest of the page. / ENTRY SIXOUT 00200 1030 SIXOUT, JA #STRT 00201 0263 #SXR, ORG .+10 00212 2311 TEXT +SIXOUT+ 00213 3017 00214 2524 00215 1100 #SRET, SETX #SXR 00216 0202 00217 1110 SETB #SBASE 00220 0223 00221 1030 JA .+3 00222 0224 #SBASE, ORG .+6 CNT, ORG .+3 SFLAG, ORG .+3 ORG #SBASE+30 00253 0040 FNOP 00254 1030 JA #SRET 00255 0215 00256 0040 FNOP 00257 0000 #SGOBK, 0;0 00260 0000 #SRTN, BASE #SBASE 00261 1030 JA #SGOBK 00262 0257 00263 0006 #STRT, STARTD 00264 0210 0210 00265 6400 FSTA #SGOBK,0 00266 0257 00267 0200 0200 00270 1100 SETX #SXR 00271 0202 00272 1110 SETB #SBASE 00273 0223 00274 0101 LDX 0,1 00275 0000 00276 6200 FSTA #SBASE 00277 0710 FLDA% #SBASE,1+ 00300 6400 FSTA BUF / Buffer pointer 00301 0152 00302 0710 FLDA% #SBASE,1+ / Count 00303 6202 FSTA CNT 00304 0710 FLDA% #SBASE,1+ / Carriage control flag 00305 6203 FSTA SFLAG 00306 0005 STARTF 00307 0602 FLDA% CNT 00310 1100 SETX COUNT 00311 0144 00312 0020 ATX 0 00313 0603 FLDA% SFLAG 00314 0021 ATX 1 RALF V50A 24-JUL-20 PAGE 1-6 00315 1100 SETX #SXR 00316 0202 00317 4000 TRAP4 SIX8 /Call the 8-mode output routine 00320 0000 00321 1030 JA #SRTN 00322 0261 FIELD1 SXOUT ENTRY SIX8 / Mixed case output routine 00000 0000 SIX8, 0 00001 1345 TAD CRFLAG /Suppresss carriage control? 00002 7010 RAR /Low bit suppresses lead LF 00003 7630 SZL CLA 00004 5210 JMP .+4 /No leading LF 00005 6211 CDF 10 / My field 00006 1350 TAD LF /Linefeed 00007 4742 JMS% TTYPTR+1 /Output it 00010 1362 TAD HUN /Reset conversion factor 00011 3343 DCA SHIFT 00012 1352 TAD BUF /Buffer field 00013 0357 AND K7 /Just the field bits 00014 7104 CLL RAL 00015 7006 RTL /Into place 00016 1361 TAD CDF0 /Into CDF instruction 00017 3234 DCA CDF1 00020 1234 TAD CDF1 00021 3255 DCA CDF2 00022 1344 TAD COUNT /Get buffer length 00023 7450 SNA 00024 5253 JMP NOTRIM /Zero means it has a terminating "@" / / Find the end of the string / 00025 7240 CLA CMA /End is start + len - 1 00026 1344 TAD COUNT /String len in words 00027 1353 TAD BUF+1 /End of the string 00030 3346 DCA PTR /Pointer to end 00031 1344 TAD COUNT /Invert count 00032 7041 CMA IAC 00033 3344 DCA COUNT 00034 7402 CDF1, HLT 00035 1746 FNDEND, TAD% PTR 00036 1351 TAD K3740 / - ' ' (two spaces) 00037 7640 SZA CLA / Skip if blank 00040 5250 JMP NONBLK 00041 2344 ISZ COUNT /Count another 00042 7410 SKP 00043 5250 JMP NONBLK /If empty, done 00044 7240 CLA CMA / -1 00045 1346 TAD PTR 00046 3346 DCA PTR /Back pointer up 00047 5235 JMP FNDEND /Keep looking 00050 1344 NONBLK, TAD COUNT 00051 7650 SNA CLA /Skip if output left RALF V50A 24-JUL-20 PAGE 1-7 00052 5274 JMP DONE /Nothing if count zero already 00053 1353 NOTRIM, TAD BUF+1 /Reset pointer to start 00054 3346 DCA PTR 00055 7402 CDF2, HLT 00056 1746 TAD% PTR /Get word 00057 3355 DCA STEMP /Save 00060 1355 TAD STEMP 00061 7012 RTR 00062 7012 RTR 00063 7012 RTR /First sixbit 00064 4314 JMS OUTONE /Convert and output it 00065 1355 TAD STEMP /Second sixbit 00066 4314 JMS OUTONE 00067 2346 ISZ PTR /Bump pointer 00070 7410 SKP /OK if no skip 00071 5306 JMP NEWFLD /Next field otherwise 00072 2344 INCCNT, ISZ COUNT 00073 5255 JMP CDF2 /Keep outputting 00074 7200 DONE, CLA 00075 1345 TAD CRFLAG /Suppress trailing CR? 00076 7012 RTR /2 bit suppresses trailing CR 00077 7630 SZL CLA /If zero, write it. 00100 5304 JMP OUT /Yes, leave now 00101 6211 CDF 10 /My field 00102 1347 TAD CRTN 00103 4742 JMS% TTYPTR+1 00104 6203 OUT, CIF CDF 0 00105 5600 JMP% SIX8 00106 1234 NEWFLD, TAD CDF1 00107 1365 TAD K10 /Next field 00110 3234 DCA CDF1 00111 1234 TAD CDF1 00112 3255 DCA CDF2 00113 5272 JMP INCCNT 00114 0000 OUTONE, 0 00115 0356 AND K77 /Mask 00116 7450 SNA 00117 5274 JMP DONE / End of string 00120 1363 TAD K7743 / minus '[' 00121 7450 SNA 00122 5335 JMP SETLWR /Set to lowercase shift 00123 1366 TAD K2 / ok, ']'? 00124 7450 SNA 00125 5336 JMP SETUPR /Set to uppercase 00126 1364 TAD K7773 /Restore 00127 7510 SPA 00130 1343 TAD SHIFT /For positive, shift it 00131 1360 TAD K40 /Else it's not alphabetic 00132 6211 CDF 10 /My field 00133 4742 JMS% TTYPTR+1 /Output it 00134 5714 JMP% OUTONE /Done 00135 1360 SETLWR, TAD K40 /Reset shift 00136 1362 SETUPR, TAD HUN /For upper/lower RALF V50A 24-JUL-20 PAGE 1-8 00137 3343 DCA SHIFT 00140 5714 JMP% OUTONE 00141 0000 TTYPTR, ADDR TTY 00142 0000 00143 0140 SHIFT, 140 /Shift value / COUNT and CRFLAG must stay together 00144 0000 COUNT, 0 /Num words to output. 00145 0000 CRFLAG, 0 /1 - no leading LF, 2 no trailing CR 00146 0000 PTR, 0 00147 0015 CRTN, 15 00150 0012 LF, 12 00151 3740 K3740, 3740 /minus blank 00152 0000 BUF, 0;0;0 /Buffer 15-bit address 00153 0000 00154 0000 00155 0000 STEMP, 0 00156 0077 K77, 77 /sixbit mask 00157 0007 K7, 7 00160 0040 K40, 40 00161 6201 CDF0, CDF 00162 0100 HUN, 100 00163 7743 K7743, 7743 00164 7773 K7773, 7773 00165 0010 K10, 10 /Field increment 00166 0002 K2, 2 SECT SPEAK /C / SUBROUTINE SPEAK(N) /C /C PRINT THE MESSAGE IN RECORD N OF THE RANDOM ACCESS MESSAGE FILE. /C / IMPLICIT INTEGER (A-Z) / COMMON /TXTCOM/ RTEXT,LINES,ASCVAR / COMMON /ALPHAS/ BLANK,EOF / DIMENSION RTEXT(205),LINES(36) /C EXTERN IO EXTERN #HANG 00000 1030 JA #ST 00001 0074 #XR, ORG .+10 00012 2320 TEXT +SPEAK+ 00013 0501 00014 1300 00015 1100 #RET, SETX #XR 00016 0002 00017 1110 SETB #BASE 00020 0023 00021 1030 JA .+3 00022 0024 #BASE, ORG .+6 N, ORG .+3 #DOTMP, ORG .+3 00037 4040 BLANK, TEXT + + RALF V50A 24-JUL-20 PAGE 1-9 00040 4040 00041 4040 00042 7644 EOF, TEXT +>$< + 00043 7440 00044 4040 00045 0001 ONE, F 1.0 00046 2000 00047 0000 00050 0003 FOUR, F 4.0 00051 2000 00052 0000 ORG #BASE+30 00053 0040 FNOP 00054 1030 JA #RET 00055 0015 00056 0040 FNOP 00057 0000 #GOBAK, 0;0 00060 0000 I, ORG .+0003 L, ORG .+0003 OLDLOC, ORG .+0003 #LBL=. COMMON TXTCOM RTEXT, ORG .+1147 LINES, ORG .+0044 ASCVAR, ORG .+0003 TXTLOC, ORG .+0003 DATA, ORG .+0352 ORG #LBL #RTN, BASE #BASE 00072 1030 JA #GOBAK 00073 0057 00074 0006 #ST, STARTD 00075 0210 0210 00076 6400 FSTA #GOBAK,0 00077 0057 00100 0200 0200 00101 1100 SETX #XR 00102 0002 00103 1110 SETB #BASE 00104 0023 00105 0101 LDX 0,1 00106 0000 00107 6200 FSTA #BASE 00110 0710 FLDA% #BASE,1+ 00111 6202 FSTA N 00112 0005 STARTF / IF(N.EQ.0)RETURN 00113 0602 FLDA% N 00114 1000 JEQ #RTN 00115 0072 / READ(2'N) LOC,LINES 00116 0202 FLDA N 00117 0006 STARTD 00120 6400 FSTA #G0002 00121 0127 RALF V50A 24-JUL-20 PAGE 1-10 00122 0005 STARTF 00123 1130 JSR IO 00124 0000 00125 1030 JA .+0004 00126 0131 00127 1030 #G0002, JA . 00130 0127 / IF(LINES(1).EQ.EOF)RETURN 00131 0206 FLDA ONE 00132 0027 ATX 7 00133 0470 FLDA LINES-0003,7 00134 1144 00135 2205 FSUB EOF 00136 1000 JEQ #RTN 00137 0072 /1 OLDLOC = LOC 00140 0400 #1, FLDA TXTLOC 00141 1216 00142 6214 FSTA OLDLOC 00143 0206 FLDA ONE 00144 6212 FSTA I / DO 3 I=36,1,-1 / Set COUNT to the number of words (36 or 44 octal) 00145 1100 SETX COUNT 00146 0144 00147 0100 LDX 44,0 /44 words 00150 0044 00151 0101 LDX 0,1 /With carriage control 00152 0000 00153 1100 SETX #XR 00154 0002 / L=I /3 CONTINUE /5 TYPE 2,(LINES(I),I=1,L) 00155 0400 #5, FLDA LINEPT 00156 0222 00157 6400 FSTA BUF /Set buffer pointer 00160 0152 00161 4000 TRAP4 SIX8 00162 0000 00163 0602 FLDA% N 00164 1206 FADD ONE 00165 6602 FSTA% N 00166 0202 FLDA N / READ(2'ASCVAR) LOC,LINES 00167 0006 STARTD 00170 6400 FSTA #G0006 00171 0177 00172 0005 STARTF 00173 1130 JSR IO 00174 0000 00175 1030 JA .+0004 00176 0201 00177 1030 #G0006, JA . RALF V50A 24-JUL-20 PAGE 1-11 00200 0177 / IF(LOC .EQ. OLDLOC) GO TO 1 00201 0400 FLDA TXTLOC 00202 1216 00203 2214 FSUB OLDLOC 00204 1000 JEQ #1 00205 0140 EXTERN #WRITO 00206 3000 TRAP3 #WRITO 00207 0000 00210 1030 JA FOUR 00211 0050 00212 1030 JA #10+2 00213 0220 EXTERN #RENDO 00214 3000 TRAP3 #RENDO 00215 0000 /10 RETURN 00216 1030 #10, JA #RTN 00217 0072 / (1X) 00220 5061 5061 00221 3051 3051 /2 FORMAT(' ',36A2) PDP/8: (' ',12A6) 00222 0000 LINEPT, ADDR LINES 00223 1147 00224 0000 0 RALF V50A 24-JUL-20 PAGE 1-12 NO ERRORS 137 SYMBOLS, NO ABS REFS # C 00000 #BASE 00023 #DOTMP 00034 #GOBAK 00057 #G0002 00127 #G0006 00177 #HANG X 00000 #LBL 00072 #MAIN S 00000 #RENDO X 00000 #RET 00015 #RGOBK 00057 #RLBAS 00023 #RLRET 00015 #RLRTN 00061 #RLST 00063 #RLXR 00002 #RTN 00072 #SBASE 00223 #SGOBK 00257 #SRET 00215 #SRTN 00261 #ST 00074 #STRT 00263 #SXR 00202 #WRITO X 00000 #XR 00002 #1 00140 #10 00216 #5 00155 ADVTTY F 00063 AMINA 00161 ASCVAR 01213 BEL 00156 BELL 00105 BLANK 00037 BPT 00162 BS 00170 BUF 00152 BUFCDF 00075 BUFFLD 00162 BUFLEN 00034 BUFPT 00031 BUFPTR 00164 BUFSIZ 00147 BUSY 00027 CDFG 00173 CDFX 00024 CDF0 00161 CDF1 00034 CDF2 00055 CDIF00 00026 CLRDN 00145 CLRLP 00135 CNT 00231 COUNT 00144 CR 00154 CRFLAG 00145 CRTN 00147 DATA 01221 DELETE 00110 DONE 00074 DUMBDL 00125 ENTER 00133 EOF 00042 FIXOFF 00127 FLDMSK 00176 FNDEND 00035 FOUR 00050 GETIN 00044 GETLIN 00000 GETLN F 00323 GETNXT 00014 HANGPT 00061 HUN 00162 I 00061 INCCNT 00072 INCH 00177 IO X 00000 KBD 00035 K10 00165 K2 00166 K200 00151 K27 00174 K334 00172 K3740 00151 K40 00160 K7 00157 K77 00156 K7743 00163 K7773 00164 L 00064 LF 00150 LINEPT 00222 LINES 01147 LOOP 00014 LWRA 00157 LWRZ 00160 MCR 00153 MDEL 00152 MSPC 00155 N 00031 NEWFLD 00106 NONBLK 00050 NOTRIM 00053 OFFSET 00166 OLDLOC 00067 ONE 00045 OUT 00104 OUTONE 00114 PTR 00146 PTTY 00166 RDLIN F 00117 RDLINE 00000 RTEXT 00000 SCOPE 00164 SCOPT 00150 SETLWR 00135 SETUPR 00136 SFLAG 00234 SHIFT 00143 SIXMSK 00175 SIXOUT 00200 SIX8 00000 SPC 00171 SPEAK S 00225 STEMP 00155 STO 00074 STORE 00055 SXOUT F 00167 TICHR 00060 TOCHR 00057 TTY 00000 TTYPTR 00141 TTYRET 00023 TXTCOM C 01573 TXTLOC 01216 UPPER 00045 WAIT 00051