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