File: CHARS.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text)
RALF V50A 8-APR-92 PAGE 1 /CHARS: CPUT, CGET, CPUT3, CGET3(A,I,R) / / / VERSION 50A 24-MAY-80 WVDM / / /CALL CGET (STRING,N,CHAR) /CALL CPUT (STRING,N,CHAR) STRING= ADDRESS OF A6 STRING /CALL CGET3(STRING,N,CHAR) /CALL CPUT3(STRING,N,CHAR) STRING= ADDRESS OF A3 STRING / N= POSITION IN STRING / CHAR= I/O CHARACTER / BSW= 7002 SECT CHARS ENTRY CGET ENTRY CPUT ENTRY CGET3 ENTRY CPUT3 EXTERN #ARGER 00000 4000 CHERR, TRAP4 #ARGER 00001 0000 00002 0310 TEXT +CHARS + 00003 0122 00004 2340 00005 1100 CHARXR, SETX XRCHAR 00006 0014 00007 1110 SETB BPCHAR 00010 0011 00011 0000 BPCHAR, F 0. 00012 0000 00013 0000 00014 0000 XRCHAR, F 0. 00015 0000 00016 0000 00017 0000 FROM, F 0. 00020 0000 00021 0000 00022 0000 NCHAR, F 0. 00023 0000 00024 0000 ORG 10*3+BPCHAR 00041 0040 FNOP 00042 1030 JA CHARXR 00043 0005 00044 0000 0 00045 1030 CHARTN, JA . 00046 0045 BASE 0 RALF V50A 8-APR-92 PAGE 2 00047 1030 SETUP, JA . 00050 0047 00051 0006 STARTD 00052 0210 FLDA 10*3 00053 6400 FSTA CHARTN 00054 0045 00055 0200 FLDA 0 00056 1100 SETX XRCHAR 00057 0014 00060 1110 SETB BPCHAR 00061 0011 BASE BPCHAR 00062 0101 LDX 1,1 00063 0001 00064 6200 FSTA BPCHAR /ARGS SAVED IN BPCHAR 00065 0610 FLDA% BPCHAR,1 00066 6400 FSTA# STR /STR IN SECT8 PIECE 00067 0116 00070 0710 FLDA% BPCHAR,1+ 00071 6203 FSTA NCHAR 00072 0710 FLDA% BPCHAR,1+ 00073 6202 FSTA FROM /ADDR OF CHAR 00074 1100 SETX XRN /XR'S IN SECT8 00075 0120 00076 0005 STARTF 00077 0603 FLDA% NCHAR 00100 1000 JEQ CHERR /POSITION 0 BAD 00101 0000 00102 0020 ATX 0 /POSITION IN XR 0 00103 0602 FLDA% FROM 00104 0021 ATX 1 /CHAR IN XR 1 00105 0002 FCLA 00106 1030 JA SETUP 00107 0047 00110 1120 CGET, JSA SETUP 00111 0047 00112 4000 TRAP4 CGET86 00113 0000 00114 1030 JA GETO 00115 0122 00116 1120 CGET3, JSA SETUP 00117 0047 00120 4000 TRAP4 CGET83 00121 0033 00122 0031 GETO, XTA 1 /CHAR IN XR 1 00123 6602 FSTA% FROM /TO 3 WORDS 00124 1030 JA CHARTN 00125 0045 00126 1120 CPUT, JSA SETUP 00127 0047 00130 4000 TRAP4 CPUT86 00131 0012 RALF V50A 8-APR-92 PAGE 2-1 00132 1030 JA CHARTN 00133 0045 00134 1120 CPUT3, JSA SETUP 00135 0047 00136 4000 TRAP4 CPUT83 00137 0047 00140 1030 JA CHARTN 00141 0045 RALF V50A 8-APR-92 PAGE 3 SECT8 CHAR /ALL IN 1 PAGE 00000 0000 CGET86, 0 00001 7120 CLL CML /TELL A6 00002 4261 JMS FLDRTN 00003 1717 TAD% STR+1 00004 2314 ISZ RIGHT /RIGHT OR LEFT? 00005 7002 BSW /LEFT 00006 0311 AND P77 00007 3321 DCA XRFR /PASS TO FPP 00010 6203 CDF CIF 0 00011 5600 JMP% CGET86 00012 0000 CPUT86, 0 00013 7120 CLL CML 00014 4261 JMS FLDRTN 00015 1314 TAD RIGHT /RIGHT=7777, LEFT=0 00016 0306 AND P7700 00017 7450 SNA 00020 1311 TAD P77 /MAKE CORRECT MASK FOR KEEP 00021 0717 AND% STR+1 /PICK-OUT KEEP 00022 3304 DCA PFLD /SAVE 00023 1321 TAD XRFR /GET CHAR 00024 0311 AND P77 /6 BITS 00025 2314 ISZ RIGHT /POSITION 00026 7002 BSW 00027 1304 TAD PFLD /ADD KEEP 00030 3717 DCA% STR+1 00031 6203 CIF CDF 0 00032 5612 JMP% CPUT86 RALF V50A 8-APR-92 PAGE 4 00033 0000 CGET83, 0 00034 7100 CLL /SIGNAL A3 00035 4261 JMS FLDRTN 00036 1717 TAD% STR+1 00037 0307 AND P377 00040 3321 DCA XRFR /PASS TO FPP 00041 1321 TAD XRFR /TEST FOR 200 NULL 00042 1313 TAD M200 00043 7650 SNA CLA 00044 3321 DCA XRFR /GIVE BACK 0 IF NULL 00045 6203 CDF CIF 0 00046 5633 JMP% CGET83 00047 0000 CPUT83, 0 00050 7100 CLL 00051 4261 JMS FLDRTN 00052 1321 TAD XRFR /GET CHAR 00053 0307 AND P377 /8 BITS 00054 7450 SNA /TEST FOR ZERO 00055 1310 TAD P200 /SET NULL IF ZERO 00056 3717 DCA% STR+1 00057 6203 CIF CDF 0 00060 5647 JMP% CPUT83 RALF V50A 8-APR-92 PAGE 5 00061 0000 FLDRTN, 0 00062 7240 CLA CMA 00063 3314 DCA RIGHT /INIT R/L SWITCH 00064 7240 CLA CMA /FORTRAN STARTS AT 1 00065 1320 TAD XRN /POSITION 0-4095 00066 7420 SNL /L=1 NOW IS A3 00067 7110 CLL RAR /FORT EVEN IN LINK= RIGHT 00070 7420 SNL 00071 2314 ISZ RIGHT /CLEAR RIGHT IF LEFT 00072 7100 CLL /SKIP OK 00073 1317 TAD STR+1 /ADD START OF STR 00074 3317 DCA STR+1 /SAVE WORD POSITION 00075 7004 RAL /OVERFLOW= NEXT FIELD 00076 1316 TAD STR 00077 0312 AND P7 00100 7104 CLL RAL 00101 7006 RTL 00102 1315 TAD CDFINS 00103 3304 DCA PFLD /STR FLD 00104 7402 PFLD, HLT 00105 5661 JMP% FLDRTN 00106 7700 P7700, 7700 00107 0377 P377, 377 00110 0200 P200, 200 00111 0077 P77, 77 00112 0007 P7, 7 00113 7600 M200, -200 00114 7777 RIGHT, 7777 00115 6201 CDFINS, CDF 0 00116 0000 STR, 0 00117 0000 0 00120 0000 XRN, 0 00121 0000 XRFR, 0 RALF V50A 8-APR-92 PAGE 5-1 NO ERRORS 34 SYMBOLS, NO ABS REFS # C 00000 #ARGER X 00000 #MAIN S 00000 BPCHAR 00011 BSW 07002 CDFINS 00115 CGET 00110 CGET3 00116 CGET83 00033 CGET86 00000 CHAR 8 00122 CHARS S 00142 CHARTN 00045 CHARXR 00005 CHERR 00000 CPUT 00126 CPUT3 00134 CPUT83 00047 CPUT86 00012 FLDRTN 00061 FROM 00017 GETO 00122 M200 00113 NCHAR 00022 PFLD 00104 P200 00110 P377 00107 P7 00112 P77 00111 P7700 00106 RIGHT 00114 SETUP 00047 STR 00116 XRCHAR 00014 XRFR 00121 XRN 00120