Deck SFORM Part 003

49 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
04647  M01S02888.sform8  ---|  END
04648  M01S02889.sform8  ---|IF TOCHAROS NQ 0 THEN
04649  M01S02890.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
04650  M01S02891.sform8  ---|  FOR NUMVDCHARS = 0 STEP 2 UNTIL TOCHAROS - 2 DO
04651  M01S02892.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
04652  M01S02893.sform8  ---|    B<6*NUMVDCHARS,12>TOSTRIU[TOINDEX] = B<6*NUMVDCHARS,12>TOWORD;
04653  M00S02894.sform   ---|    END
04654  M00S02895.sform   ---|  END
Line S00302 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04655  M01S00302.ns2605  +++|WHYLE FILL AND NUMVDCHARS GR 0 DO
04656  M01S00303.ns2605  +++|  BEGIN
04657  M01S00304.ns2605  +++|  NUMVDCHARS = NUMVDCHARS - 1;
04658  M01S00305.ns2605  +++|  C<TOCHAROS,2>TOSTRIU[TOINDEX] = B<48,12>SPACE;
04659  M01S00306.ns2605  +++|  TOCHAROS = TOCHAROS + 2;           # UPDATE TOSTRING OFFSET #
04660  M01S00307.ns2605  +++|  IF TOCHAROS EQ 10 THEN
04661  M01S00308.ns2605  +++|    BEGIN                            # IF TOSTRING WORD EXHAUSTED #
04662  M01S00309.ns2605  +++|    TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
04663  M01S00310.ns2605  +++|    TOCHAROS = 0;
04664  M01S00311.ns2605  +++|    END
04665  M01S00312.ns2605  +++|  END
04666  M00S02896.sform   +++|
04667  M00S02897.sform   +++|END  # MVASA8 #
04668  M00S02898.sform   +++|CONTROL EJECT;
04669  M00S02899.sform   +++|
Line S02900 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04670  M01S02900.ns2605  ---|PROC MVA8AS(STRINGOS,SLENGTH);
Line S00313 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04671  M01S00313.ns2605  +++|PROC MVA8AS(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL);
04672  M00S02901.sform   +++|
04673  M00S02902.sform   +++|# TITLE MVA8AS - MOVE AND TRANSLATE ASCII8 TO ASCII. #
04674  M00S02903.sform   +++|
04675  M00S02904.sform   +++|BEGIN  # MVA8AS #
04676  M00S02905.sform   +++|
04677  M00S02906.sform   +++|#
04678  M00S02907.sform   +++|**    MVA8AS - MOVE AND TRANSLATE ASCII8 TO ASCII.
04679  M00S02908.sform   +++|*
04680  M00S02909.sform   +++|*     THIS PROCEDURE MOVES THE CHARACTER DATA FROM VARDATA TO
04681  M00S02910.sform   +++|*     INSTRING AFTER A READ, USING THE BASED ARRAYS FROMSTRING
04682  M00S02911.sform   +++|*     AND TOSTRING, TRANSLATING FROM ASCII8 TO ASCII.
04683  M00S02912.sform   +++|*
Line S02913 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04684  M01S02913.ns2605  ---|*     PROC MVA8AS(STRINGOS,SLENGTH)
Line S00314 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04685  M01S00314.ns2605  +++|*     PROC MVA8AS(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL)
04686  M00S02914.sform   +++|*
04687  M00S02915.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04688  M00S02916.sform   +++|*             STRINGOS   = THE CHARACTER OFFSET INTO INSTRING.
04689  M01S00315.ns2605  +++|*             VAROS      = THE CHARACTER OFFSET INTO VARDATA.
04690  M00S02917.sform   +++|*             SLENGTH    = INSTRING LENGTH IN SIX BIT CHARACTERS.
04691  M01S00316.ns2605  +++|*             NUMVDCHARS = NUMBER OF CHARACTERS IN VARDATA.
04692  M01S00317.ns2605  +++|*             FILL       = TRUE IF BLANK FILL REQUIRED.
04693  M00S02918.sform   +++|*
04694  M00S02919.sform   +++|*     EXIT    STRING MOVED AND TRANSLATED.
04695  M00S02920.sform   +++|*
Line S02921 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04696  M01S02921.ns2605  ---|*     NOTES   SINCE INSTRING IS DEFINED IN THE APPLICATION PROGRAM
Line S02922 Modification History
M01 (Removed by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04697  M02S02922.ns2605  ---|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY
04698  M02S02923.ns2605  ---|*             FROMCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
Line S00012 Modification History
M01 (Added by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04699  M02S00012.ns2605  ---|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY,
04700  M02S00013.ns2605  ---|*             TOCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
Line S02924 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04701  M01S02924.ns2605  ---|*             ALSO SLENGTH IS NOT NECESSARILY THE NUMBER OF CHARACTERS
Line S00318 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04702  M01S00318.ns2605  +++|*     NOTE    SLENGTH IS NOT NECESSARILY THE NUMBER OF CHARACTERS
04703  M00S02925.sform   +++|*             (SINCE THEY CAN BE EITHER SIX OR TWELVE BITS LONG) BUT
04704  M00S02926.sform   +++|*             RATHER THE NUMBER OF SIX BIT PARCELS IN INSTRING.
04705  M00S02927.sform   +++|#
04706  M00S02928.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET / OUTSTRING #
04707  M00S02929.sform   +++|ITEM SLENGTH    I;                   # LENGTH IN SIX BIT CHARACTERS #
04708  M01S00319.ns2605  +++|ITEM VAROS      I;                   # CHARACTER OFFSET / VARDATA #
04709  M01S00320.ns2605  +++|ITEM NUMVDCHARS I;                   # NUMBER OF CHARS. IN VARDATA #
04710  M01S00321.ns2605  +++|ITEM FILL       B;                   # TRUE IF BLANK FILL REQUIRED #
04711  M00S02930.sform   +++|
04712  M00S02931.sform   +++|ITEM ASCIICHR   I;                   # HOLDS AN ASCII CHARACTER #
04713  M00S02932.sform   +++|ITEM ASCII8CHR  I;                   # HOLDS AN ASCII8 CHARACTER #
Line S00014 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04714  M01S00014.sform8  +++|ITEM ESCAPECODE I;                   # ESCAPE CODE #
04715  M00S02933.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROMSTRING #
04716  M00S02934.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S02935 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04717  M01S02935.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
Line S02936 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04718  M01S02936.ns2605  ---|ITEM NUMVDCHARS I;                   # NUMBER OF CHARS. IN VARDATA #
04719  M00S02937.sform   ---|ITEM NUMINCHARS I;                   # NUMBER OF CHARS. IN INSTRING #
Line S02938 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04720  M01S02938.sform8  ---|ITEM ESCAPECODE I;                   # ESCAPE CODE #
04721  M00S02939.sform   ---|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TOSTRING #
04722  M00S02940.sform   ---|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
Line S02941 Modification History
M01 (Removed by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04723  M02S02941.ns2605  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TOSTRING #
04724  M00S02942.sform   ---|
04725  M00S02943.sform   ---|FROMINDEX = 0;                       # GET FIRST WORD FROM FROMSTRING #
Line S02944 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04726  M01S02944.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
Line S02945 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04727  M01S02945.ns2605  ---|FROMCHAROS = 0;                      # NO CHARACTER OFFSET / VARDATA #
Line S00322 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04728  M01S00322.ns2605  +++|FROMCHAROS = VAROS;                  # CHARACTER OFFSET / VARDATA #
04729  M00S02946.sform   +++|TOINDEX = 0;
04730  M00S02947.sform   +++|TOCHAROS = STRINGOS;                 # CHARACTER OFFSET / INSTRING #
04731  M00S02948.sform   +++|ESCAPECODE = 0;                      # CLEAR ESCAPE CODE #
Line S02949 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04732  M01S02949.ns2605  ---|NUMVDCHARS = PANNUMBYTE[0];          # SET VARDATA CHARACTER COUNT #
04733  M01S02950.ns2605  ---|IF SLENGTH EQ 0 THEN
04734  M01S02951.ns2605  ---|  BEGIN                              # IF ZERO INSTRING COUNT #
04735  M01S02952.ns2605  ---|  NUMINCHARS = PANNUMBYTE[0] * 2;    # ASSUME WORST CASE #
04736  M01S02953.ns2605  ---|  END
04737  M01S02954.ns2605  ---|ELSE
04738  M01S02955.ns2605  ---|  BEGIN
04739  M01S02956.ns2605  ---|  NUMINCHARS = SLENGTH;              # SET NUMBER OF CHARACTERS #
04740  M01S02957.ns2605  ---|  END
04741  M01S02958.ns2605  ---|WHYLE NUMINCHARS NQ 0 AND NUMVDCHARS NQ 0 DO
Line S00323 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04742  M01S00323.ns2605  +++|IF SLENGTH LQ 0 THEN SLENGTH = NUMVDCHARS * 2;
04743  M01S00324.ns2605  +++|NUMINCHARS = 0;                      # INITIALIZE LOOP #
04744  M01S00325.ns2605  +++|WHYLE NUMINCHARS LS SLENGTH AND NUMVDCHARS GR 0 DO
04745  M00S02959.sform   +++|  BEGIN                              # TRANSLATE CHARACTERS #
Line S02960 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04746  M01S02960.sform8  ---|  ASCII8CHR = B<6*FROMCHAROS,12>FROMWORD;
Line S00015 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04747  M01S00015.sform8  +++|  ASCII8CHR = B<6*FROMCHAROS,12>FROMSTRIU[FROMINDEX];
04748  M00S02961.sform   +++|  NUMVDCHARS = NUMVDCHARS - 1;       # DECREMENT VARDATA COUNT #
04749  M00S02962.sform   +++|  FROMCHAROS = FROMCHAROS + 2;       # UPDATE FROMSTRING CHAR. OFFSET #
04750  M00S02963.sform   +++|  IF FROMCHAROS EQ 10 THEN
04751  M00S02964.sform   +++|    BEGIN                            # IF FROMSTRING WORD IS EMPTY #
Line S02965 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04752  M01S02965.sform8  ---|    FROMINDEX = FROMINDEX + 1;       # GET NEXT WORD FROM FROMSTRING #
Line S00016 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04753  M01S00016.sform8  +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
Line S02966 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04754  M01S02966.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX];
04755  M00S02967.sform   ---|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
04756  M00S02968.sform   ---|    END
Line S02969 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04757  M01S02969.ns2605  ---|  IF ASCII8CHR EQ 58 THEN            # CHECK FOR COLON #
04758  M01S02970.ns2605  ---|    BEGIN
Line S00326 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04759  M01S00326.ns2605  +++|  IF ASCII8CHR GQ 97 THEN
04760  M01S00327.ns2605  +++|    BEGIN                            # IF LOWER CASE #
04761  M01S00328.ns2605  +++|    ESCAPECODE = 62;
04762  M01S00329.ns2605  +++|    ASCIICHR = ASCII8CHR - 96;       # CONVERT TO UPPER CASE #
04763  M01S00330.ns2605  +++|    END
04764  M01S00331.ns2605  +++|  ELSE IF ASCII8CHR EQ TERASC8ATD[0] THEN
04765  M01S00332.ns2605  +++|    BEGIN                            # IF 64-COLON OR 63-PERCENT #
04766  M00S02971.sform   +++|    ESCAPECODE = 60;                 # SET ESCAPE CODE AND CHAR. #
04767  M00S02972.sform   +++|    ASCIICHR = 04;
04768  M00S02973.sform   +++|    END
Line S02974 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04769  M01S02974.ns2605  ---|  IF ASCII8CHR EQ 64 THEN            # CHECK FOR AT SIGN #
04770  M01S02975.ns2605  ---|    BEGIN
Line S00333 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04771  M01S00333.ns2605  +++|  ELSE IF ASCII8CHR EQ 64 THEN
04772  M01S00334.ns2605  +++|    BEGIN                            # IF AT SIGN #
04773  M00S02976.sform   +++|    ESCAPECODE = 60;                 # SET ESCAPE CODE AND CHAR. #
04774  M00S02977.sform   +++|    ASCIICHR = 01;
04775  M00S02978.sform   +++|    END
Line S02979 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04776  M01S02979.ns2605  ---|  IF ASCII8CHR EQ 94 THEN            # CHECK FOR CIRCUMFLEX #
04777  M01S02980.ns2605  ---|    BEGIN
Line S00335 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04778  M01S00335.ns2605  +++|  ELSE IF ASCII8CHR EQ 94 THEN
04779  M01S00336.ns2605  +++|    BEGIN                            # IF CIRCUMFLEX #
04780  M00S02981.sform   +++|    ESCAPECODE = 60;                 # SET ESCAPE CODE AND CHAR. #
04781  M00S02982.sform   +++|    ASCIICHR = 02;
04782  M00S02983.sform   +++|    END
Line S02984 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04783  M01S02984.ns2605  ---|  IF ASCII8CHR EQ 96 THEN            # CHECK FOR REVERSE SLANT #
04784  M01S02985.ns2605  ---|    BEGIN
Line S00337 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04785  M01S00337.ns2605  +++|  ELSE IF ASCII8CHR EQ 96 THEN
04786  M01S00338.ns2605  +++|    BEGIN                            # IF REVERSE SLANT #
04787  M00S02986.sform   +++|    ESCAPECODE = 60;                 # SET ESCAPE CODE AND CHAR. #
04788  M00S02987.sform   +++|    ASCIICHR = 07;
04789  M00S02988.sform   +++|    END
Line S02989 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04790  M01S02989.ns2605  ---|  IF ASCII8CHR GQ 97 THEN            # CHECK FOR UPPER CASE #
04791  M01S02990.ns2605  ---|    BEGIN
04792  M01S02991.ns2605  ---|    ESCAPECODE = 62;
04793  M01S02992.ns2605  ---|    ASCIICHR = ASCII8CHR - 96;       # CONVERT TO LOWER CASE #
04794  M01S02993.ns2605  ---|    END
04795  M00S02994.sform   ---|  IF ESCAPECODE NQ 0 THEN
04796  M00S02995.sform   ---|    BEGIN                            # IF TWELVE BIT CHARACTER #
04797  M01S02996.ns2605  ---|    NUMINCHARS = NUMINCHARS - 1;     # DECREMENT CHARACTER COUNT #
04798  M01S02997.ns2605  ---|    IF NUMINCHARS NQ 0 THEN
Line S00339 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04799  M01S00339.ns2605  +++|    IF NUMINCHARS LS SLENGTH-1 THEN
04800  M00S02998.sform   +++|      BEGIN                          # IF ROOM FOR ALL TWELVE BITS #
04801  M01S00340.ns2605  +++|      NUMINCHARS = NUMINCHARS + 1;   # INCREMENT CHARACTER COUNT #
Line S02999 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04802  M01S02999.sform8  ---|      B<6*TOCHAROS,6>TOWORD = ESCAPECODE;
Line S00017 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04803  M01S00017.sform8  +++|      B<6*TOCHAROS,6>TOSTRIU[TOINDEX] = ESCAPECODE;
04804  M00S03000.sform   +++|      TOCHAROS = TOCHAROS + 1;       # UPDATE TOSTRING CHAR. OFFSET #
04805  M00S03001.sform   +++|      IF TOCHAROS EQ 10 THEN
04806  M00S03002.sform   +++|        BEGIN                        # IF TOSTRING WORD IS FULL #
04807  M00S03003.sform   +++|        TOCHAROS = 0;                # RESET CHARACTER OFFSET #
Line S03004 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04808  M01S03004.sform8  ---|        TOSTRIU[TOINDEX] = TOWORD;   # STORE WORD INTO TOSTRING #
04809  M01S03005.sform8  ---|        TOINDEX = TOINDEX + 1;       # UPDATE TOWORD INDEX #
Line S00018 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04810  M01S00018.sform8  +++|        TOINDEX = TOINDEX + 1;       # UPDATE TOSTRING WORD INDEX #
04811  M00S03006.sform   +++|        END
Line S03007 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04812  M01S03007.ns2605  ---|      NUMINCHARS = NUMINCHARS - 1;   # DECREMENT CHARACTER COUNT #
Line S03008 Modification History
M01 (Removed by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04813  M02S03008.ns2605  ---|      B<6*TOCHAROS,6>TOWORD = ASCIICHR;
Line S00019 Modification History
M01 (Added by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04814  M02S00019.ns2605  ---|      B<6*TOCHAROS,6>TOSTRIU[TOINDEX] = ASCIICHR;
Line S03009 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04815  M01S03009.ns2605  ---|      TOCHAROS = TOCHAROS + 1;       # UPDATE TOSTRING CHAR. OFFSET #
04816  M01S03010.ns2605  ---|      IF TOCHAROS EQ 10 THEN
04817  M01S03011.ns2605  ---|        BEGIN                        # IF TOSTRING WORD IS FULL #
04818  M01S03012.ns2605  ---|        TOCHAROS = 0;                # RESET CHARACTER OFFSET #
Line S03013 Modification History
M01 (Removed by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04819  M02S03013.ns2605  ---|        TOSTRIU[TOINDEX] = TOWORD;   # STORE WORD INTO TOSTRING #
04820  M02S03014.ns2605  ---|        TOINDEX = TOINDEX + 1;       # UPDATE TOWORD INDEX #
Line S00020 Modification History
M01 (Added by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04821  M02S00020.ns2605  ---|        TOINDEX = TOINDEX + 1;       # UPDATE TOSTRING WORD INDEX #
Line S03015 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04822  M01S03015.ns2605  ---|        END
04823  M00S03016.sform   ---|      END
04824  M00S03017.sform   ---|    ESCAPECODE = 0;                  # CLEAR ESCAPE CODE #
04825  M00S03018.sform   ---|    END
04826  M00S03019.sform   ---|  ELSE
04827  M00S03020.sform   ---|    BEGIN
04828  M00S03021.sform   ---|    ASCIICHR = A82DC[ASCII8CHR];     # TRANSLATE CHARACTER #
04829  M01S03022.ns2605  ---|    NUMINCHARS = NUMINCHARS - 1;     # DECREMENT CHARACTER COUNT #
Line S03023 Modification History
M01 (Removed by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04830  M02S03023.ns2605  ---|    B<6*TOCHAROS,6>TOWORD = ASCIICHR;
Line S00021 Modification History
M01 (Added by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04831  M02S00021.ns2605  ---|    B<6*TOCHAROS,6>TOSTRIU[TOINDEX] = ASCIICHR;
Line S03024 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04832  M01S03024.ns2605  ---|    TOCHAROS = TOCHAROS + 1;         # UPDATE TOSTRING CHAR. OFFSET #
04833  M01S03025.ns2605  ---|    IF TOCHAROS EQ 10 THEN
04834  M01S03026.ns2605  ---|      BEGIN                          # IF TOSTRING WORD IS FULL #
04835  M01S03027.ns2605  ---|      TOCHAROS = 0;                  # RESET CHARACTER OFFSET #
Line S03028 Modification History
M01 (Removed by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04836  M02S03028.ns2605  ---|      TOSTRIU[TOINDEX] = TOWORD;     # STORE WORD INTO TOSTRING #
04837  M02S03029.ns2605  ---|      TOINDEX = TOINDEX + 1;         # UPDATE TOWORD INDEX #
Line S00022 Modification History
M01 (Added by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04838  M02S00022.ns2605  ---|      TOINDEX = TOINDEX + 1;         # UPDATE TOSTRING WORD INDEX #
Line S03030 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04839  M01S03030.ns2605  ---|      END
Line S00341 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04840  M01S00341.ns2605  +++|    END
04841  M01S00342.ns2605  +++|  IF ESCAPECODE EQ 0 THEN
04842  M01S00343.ns2605  +++|    BEGIN
04843  M01S00344.ns2605  +++|    NUMINCHARS = NUMINCHARS + 1;       # INCREMENT CHARACTER COUNT #
04844  M01S00345.ns2605  +++|    B<6*TOCHAROS,6>TOSTRIU[TOINDEX] = ASCIICHR;
04845  M01S00346.ns2605  +++|    TOCHAROS = TOCHAROS + 1;           # UPDATE TOSTRING CHAR. OFFSET #
04846  M01S00347.ns2605  +++|    IF TOCHAROS EQ 10 THEN
04847  M01S00348.ns2605  +++|      BEGIN                            # IF TOSTRING WORD IS FULL #
04848  M01S00349.ns2605  +++|      TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
04849  M01S00350.ns2605  +++|      TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
04850  M01S00351.ns2605  +++|      END
04851  M01S00352.ns2605  +++|    END
04852  M01S00353.ns2605  +++|  END
04853  M01S00354.ns2605  +++|WHYLE FILL AND NUMINCHARS LS SLENGTH DO
04854  M01S00355.ns2605  +++|  BEGIN                              # IF BLANK FILL REQUIRED #
04855  M01S00356.ns2605  +++|  B<6*TOCHAROS,6>TOSTRIU[TOINDEX] = O"55";
04856  M01S00357.ns2605  +++|  SLENGTH = SLENGTH - 1;             # DECREMENT CHARACTER COUNT #
04857  M01S00358.ns2605  +++|  TOCHAROS = TOCHAROS + 1;           # UPDATE TOSTRING CHAR. OFFSET #
04858  M01S00359.ns2605  +++|  IF TOCHAROS EQ 10 THEN
04859  M01S00360.ns2605  +++|    BEGIN                            # IF TOSTRING WORD IS FULL #
04860  M01S00361.ns2605  +++|    TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
04861  M01S00362.ns2605  +++|    TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
Line S03031 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04862  M01S03031.sform8  ---|    END
04863  M01S03032.sform8  ---|  END
04864  M01S03033.sform8  ---|IF TOCHAROS NQ 0 THEN
04865  M01S03034.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
04866  M01S03035.sform8  ---|  FOR NUMINCHARS = 0 STEP 1 UNTIL TOCHAROS -1 DO
04867  M01S03036.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
04868  M01S03037.sform8  ---|    B<6*NUMINCHARS,6>TOSTRIU[TOINDEX] = B<6*NUMINCHARS,6>TOWORD;
04869  M00S03038.sform   ---|    END
04870  M00S03039.sform   ---|  END
04871  M00S03040.sform   ---|
04872  M00S03041.sform   ---|END  # MVA8AS #
04873  M00S03042.sform   ---|CONTROL EJECT;
04874  M00S03043.sform   ---|
Line S03044 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04875  M01S03044.ns2605  ---|PROC MVA8DC(STRINGOS,SLENGTH);
Line S00363 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04876  M01S00363.ns2605  +++|PROC MVA8DC(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL);
04877  M00S03045.sform   +++|
04878  M00S03046.sform   +++|# TITLE MVA8DC - MOVE AND TRANSLATE ASCII8 TO DISPLAY CODE. #
04879  M00S03047.sform   +++|
04880  M00S03048.sform   +++|BEGIN  # MVA8DC #
04881  M00S03049.sform   +++|
04882  M00S03050.sform   +++|#
04883  M00S03051.sform   +++|**    MVA8DC - MOVE AND TRANSLATE ASCII8 TO DISPLAY CODE.
04884  M00S03052.sform   +++|*
04885  M00S03053.sform   +++|*     THIS PROCEDURE MOVES THE CHARACTER DATA FROM VARDATA TO
04886  M00S03054.sform   +++|*     INSTRING AFTER A READ, USING THE BASED ARRAYS FROMSTRING
04887  M00S03055.sform   +++|*     AND TOSTRING, TRANSLATING FROM ASCII8 TO DISPLAY CODE.
04888  M00S03056.sform   +++|*
Line S03057 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04889  M01S03057.ns2605  ---|*     PROC MVA8DC(STRINGOS,SLENGTH)
Line S00364 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04890  M01S00364.ns2605  +++|*     PROC MVA8DC(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL)
04891  M00S03058.sform   +++|*
04892  M00S03059.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04893  M00S03060.sform   +++|*             STRINGOS   = THE CHARACTER OFFSET INTO INSTRING.
04894  M01S00365.ns2605  +++|*             VAROS      = THE CHARACTER OFFSET INTO VARDATA.
04895  M00S03061.sform   +++|*             SLENGTH    = INSTRING LENGTH IN SIX BIT CHARACTERS.
04896  M01S00366.ns2605  +++|*             NUMVDCHARS = LENGTH OF FIELD OR PANEL STRING.
04897  M01S00367.ns2605  +++|*             FILL       = TRUE IF BLANK FILL REQUIRED.
04898  M00S03062.sform   +++|*
04899  M00S03063.sform   +++|*     EXIT    STRING MOVED AND TRANSLATED.
04900  M00S03064.sform   +++|*
04901  M00S03065.sform   +++|*     NOTES   SINCE INSTRING IS DEFINED IN THE APPLICATION PROGRAM
04902  M00S03066.sform   +++|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY
04903  M00S03067.sform   +++|*             TOCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
04904  M00S03068.sform   +++|#
04905  M00S03069.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET / OUTSTRING #
04906  M00S03070.sform   +++|ITEM SLENGTH    I;                   # LENGTH IN SIX BIT CHARACTERS #
04907  M01S00368.ns2605  +++|ITEM VAROS      I;                   # VARIABLE CHARACTER OFFSET #
04908  M01S00369.ns2605  +++|ITEM NUMVDCHARS I;                   # FIELD/PANEL STRING LENGTH #
04909  M01S00370.ns2605  +++|ITEM FILL       B;                   # TRUE IF BLANK FILL REQUIRED #
04910  M00S03071.sform   +++|
04911  M00S03072.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROMSTRING #
04912  M00S03073.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S03074 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04913  M01S03074.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
04914  M00S03075.sform   ---|ITEM NUMCHARS   I;                   # NUMBER OF CHARACTERS TO TRANS. #
04915  M00S03076.sform   ---|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TOSTRING #
04916  M00S03077.sform   ---|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
04917  M01S03078.sform8  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TOSTRING #
04918  M00S03079.sform   ---|
Line S03080 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04919  M01S03080.ns2605  ---|FROMCHAROS = 0;                      # NO CHARACTER OFFSET / VARDATA #
Line S00371 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04920  M01S00371.ns2605  +++|FROMCHAROS = VAROS;                  # CHARACTER OFFSET / VARDATA #
04921  M00S03081.sform   +++|FROMINDEX = 0;                       # GET FIRST WORD FROM VARDATA #
Line S03082 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04922  M01S03082.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
04923  M00S03083.sform   ---|TOINDEX = 0;
04924  M00S03084.sform   ---|TOCHAROS = STRINGOS;                 # CHARACTER OFFSET / INSTRING #
Line S03085 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04925  M01S03085.ns2605  ---|
04926  M01S03086.ns2605  ---|IF SLENGTH GR PANNUMBYTE[0]
04927  M01S03087.ns2605  ---|   OR SLENGTH EQ 0 THEN
04928  M01S03088.ns2605  ---|  BEGIN                              # IF INSTRING EXCEEDS VARDATA #
04929  M01S03089.ns2605  ---|  SLENGTH = PANNUMBYTE[0];           # RESET NUMBER OF CHARS. TO MOVE #
04930  M01S03090.ns2605  ---|  END
04931  M01S03091.ns2605  ---|FOR NUMCHARS = 0 STEP 1 UNTIL SLENGTH - 1 DO
Line S00372 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04932  M01S00372.ns2605  +++|IF SLENGTH LQ 0 THEN SLENGTH = NUMVDCHARS;
04933  M01S00373.ns2605  +++|IF SLENGTH LS NUMVDCHARS THEN NUMVDCHARS = SLENGTH;
04934  M01S00374.ns2605  +++|NUMCHARS = 0;                        # INITIALIZE CHARACTER COUNT #
04935  M01S00375.ns2605  +++|WHYLE NUMCHARS LS NUMVDCHARS DO
Line S03092 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04936  M01S03092.sform8  ---|  BEGIN                              # TRANSLATE CHARACTERS #
04937  M01S03093.sform8  ---|  B<6*TOCHAROS,6>TOWORD = A82DC[B<6*FROMCHAROS,12>FROMWORD];
Line S00023 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04938  M01S00023.sform8  +++|  BEGIN                              # MOVE AND TRANSLATE CHARACTER #
Line S00376 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04939  M01S00376.ns2605  +++|  NUMCHARS = NUMCHARS +1;            # INCREMENT CHARACTER COUNT #
Line S00024 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04940  M01S00024.sform8  +++|  B<6*TOCHAROS,6>TOSTRIU[TOINDEX] =
04941  M01S00025.sform8  +++|    A82DC[B<6*FROMCHAROS,12>FROMSTRIU[FROMINDEX]];
04942  M00S03094.sform   +++|  FROMCHAROS = FROMCHAROS + 2;       # UPDATE FROMSTRING CHAR. OFFSET #
04943  M00S03095.sform   +++|  IF FROMCHAROS EQ 10 THEN
04944  M00S03096.sform   +++|    BEGIN                            # IF FROMSTRING WORD IS EMPTY #
04945  M00S03097.sform   +++|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
04946  M00S03098.sform   +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
Line S03099 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04947  M01S03099.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX]; # GET NEXT WORD FROM FROMSTRING #
04948  M00S03100.sform   ---|    END
04949  M00S03101.sform   ---|  TOCHAROS = TOCHAROS + 1;           # UPDATE TOSTRING CHAR. OFFSET #
04950  M00S03102.sform   ---|  IF TOCHAROS EQ 10 THEN
04951  M00S03103.sform   ---|    BEGIN                            # IF TOSTRING WORD IS FULL #
04952  M00S03104.sform   ---|    TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
04953  M01S03105.sform8  ---|    TOSTRIU[TOINDEX] = TOWORD;       # STORE WORD INTO TOSTRING #
04954  M01S03106.sform8  ---|    TOINDEX = TOINDEX + 1;           # UPDATE TOWORD INDEX #
Line S00026 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04955  M01S00026.sform8  +++|    TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
Line S03107 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04956  M01S03107.sform8  ---|    END
04957  M01S03108.sform8  ---|  END
04958  M01S03109.sform8  ---|IF TOCHAROS NQ 0 THEN
04959  M01S03110.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
04960  M01S03111.sform8  ---|  FOR NUMCHARS = 0 STEP 1 UNTIL TOCHAROS - 1 DO
04961  M01S03112.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
04962  M01S03113.sform8  ---|    B<6*NUMCHARS,6>TOSTRIU[TOINDEX] = B<6*NUMCHARS,6>TOWORD;
04963  M00S03114.sform   ---|    END
04964  M00S03115.sform   ---|  END
Line S00377 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04965  M01S00377.ns2605  +++|WHYLE FILL AND NUMCHARS LS SLENGTH DO
04966  M01S00378.ns2605  +++|  BEGIN                              # IF BLANK FILL REQUIRED #
04967  M01S00379.ns2605  +++|  SLENGTH = SLENGTH - 1;
04968  M01S00380.ns2605  +++|  B<6*TOCHAROS,6>TOSTRIU[TOINDEX] = O"55";
04969  M01S00381.ns2605  +++|  TOCHAROS = TOCHAROS + 1;           # UPDATE TOSTRING OFFSET #
04970  M01S00382.ns2605  +++|  IF TOCHAROS EQ 10 THEN
04971  M01S00383.ns2605  +++|    BEGIN                            # IF TOSTRING WORD IS FULL #
04972  M01S00384.ns2605  +++|    TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
04973  M01S00385.ns2605  +++|    TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
04974  M01S00386.ns2605  +++|    END
04975  M01S00387.ns2605  +++|  END
04976  M00S03116.sform   +++|
04977  M00S03117.sform   +++|END  # MVA8DC #
04978  M00S03118.sform   +++|CONTROL EJECT;
04979  M00S03119.sform   +++|
Line S03120 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04980  M01S03120.ns2605  ---|PROC MVDCA8(STRINGOS,SLENGTH);
Line S00388 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04981  M01S00388.ns2605  +++|PROC MVDCA8(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL);
04982  M00S03121.sform   +++|
04983  M00S03122.sform   +++|# TITLE MVDCA8 - MOVE AND TRANSLATE DISPLAY CODE TO ASCII8. #
04984  M00S03123.sform   +++|
04985  M00S03124.sform   +++|BEGIN  # MVDCA8 #
04986  M00S03125.sform   +++|
04987  M00S03126.sform   +++|#
04988  M00S03127.sform   +++|**    MVDCA8 - MOVE AND TRANSLATE DISPLAY CODE TO ASCII8.
04989  M00S03128.sform   +++|*
04990  M00S03129.sform   +++|*     THIS PROCEDURE MOVES THE CHARACTER DATA FROM OUTSTRING TO
04991  M00S03130.sform   +++|*     VARDATA BEFORE A WRITE, USING THE BASED ARRAYS FROMSTRING
04992  M00S03131.sform   +++|*     AND TOSTRING, TRANSLATING FROM DISPLAY CODE TO ASCII8.
04993  M00S03132.sform   +++|*
Line S03133 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04994  M01S03133.ns2605  ---|*     PROC MVDCA8(STRINGOS,SLENGTH)
Line S00389 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04995  M01S00389.ns2605  +++|*     PROC MVDCA8(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL)
04996  M00S03134.sform   +++|*
04997  M00S03135.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04998  M00S03136.sform   +++|*             STRINGOS   = THE CHARACTER OFFSET INTO OUTSTRING.
04999  M01S00390.ns2605  +++|*             VAROS      = THE CHARACTER OFFSET INTO VARDATA.
05000  M00S03137.sform   +++|*             SLENGTH    = OUTSTRING LENGTH IN SIX BIT CHARACTERS.
05001  M01S00391.ns2605  +++|*             NUMVDCHARS = LENGTH OF FIELD OR PANEL STRING.
05002  M01S00392.ns2605  +++|*             FILL       = TRUE IF BLANK FILL REQUIRED.
05003  M00S03138.sform   +++|*
05004  M00S03139.sform   +++|*     EXIT    STRING MOVED AND TRANSLATED.
05005  M00S03140.sform   +++|*
05006  M00S03141.sform   +++|*     NOTES   SINCE OUTSTRING IS DEFINED IN THE APPLICATION PROGRAM
05007  M00S03142.sform   +++|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY
05008  M00S03143.sform   +++|*             FROMCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
05009  M00S03144.sform   +++|#
05010  M00S03145.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET / OUTSTRING #
05011  M00S03146.sform   +++|ITEM SLENGTH    I;                   # LENGTH IN SIX BIT CHARACTERS #
05012  M01S00393.ns2605  +++|ITEM VAROS      I;                   # VARIABLE CHARACTER OFFSET #
05013  M01S00394.ns2605  +++|ITEM NUMVDCHARS I;                   # FIELD/PANEL STRING LENGTH #
05014  M01S00395.ns2605  +++|ITEM FILL       B;                   # TRUE IF BLANK FILL REQUIRED #
05015  M00S03147.sform   +++|
05016  M00S03148.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROMSTRING #
05017  M00S03149.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S03150 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05018  M01S03150.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
05019  M00S03151.sform   ---|ITEM NUMCHARS   I;                   # NUMBER OF CHARACTERS TO TRANS. #
Line S00396 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05020  M01S00396.ns2605  +++|ITEM SPACE      I = BLANK;           # ASCII SPACE FOR BLANK FILL #
05021  M00S03152.sform   +++|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TOSTRING #
05022  M00S03153.sform   +++|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
Line S03154 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05023  M01S03154.sform8  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TOSTRING #
05024  M00S03155.sform   ---|
05025  M00S03156.sform   ---|FROMCHAROS = STRINGOS;               # CHARACTER OFFSET / OUTSTRING #
05026  M00S03157.sform   ---|FROMINDEX = 0;                       # GET FIRST WORD FROM FROMSTRING #
05027  M01S03158.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
05028  M00S03159.sform   ---|TOINDEX = 0;
Line S03160 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05029  M01S03160.ns2605  ---|TOCHAROS = 0;                        # NO CHARACTER OFFSET / VARDATA  #
05030  M01S03161.ns2605  ---|                                     # TRANSLATE PANNUMBYTE CHARS. #
05031  M01S03162.ns2605  ---|IF SLENGTH GR PANNUMBYTE[0]
05032  M01S03163.ns2605  ---|   OR SLENGTH EQ 0 THEN
05033  M01S03164.ns2605  ---|  BEGIN                              # IF OUTSTRING EXCEEDS VARDATA #
05034  M01S03165.ns2605  ---|  SLENGTH = PANNUMBYTE[0];           # RESET NUMBER OF CHARS. TO MOVE #
05035  M01S03166.ns2605  ---|  END
Line S00397 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05036  M01S00397.ns2605  +++|TOCHAROS = VAROS;                    # CHARACTER OFFSET / VARDATA #
05037  M01S00398.ns2605  +++|IF SLENGTH GR NUMVDCHARS OR SLENGTH LQ 0 THEN
05038  M01S00399.ns2605  +++|  SLENGTH = NUMVDCHARS;              # IF LENGTH ADJUSTMENT NEEDED #
Line S03167 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05039  M01S03167.ns2605  ---|FOR NUMCHARS = 0 STEP 1 UNTIL SLENGTH - 1 DO
Line S00400 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05040  M01S00400.ns2605  +++|FOR NUMCHARS = 1 STEP 1 UNTIL SLENGTH DO
05041  M00S03168.sform   +++|  BEGIN                              # TRANSLATE CHARACTERS #
Line S03169 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05042  M01S03169.sform8  ---|  B<6*TOCHAROS,12>TOWORD = DC2A8[B<6*FROMCHAROS,6>FROMWORD];
Line S00027 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05043  M01S00027.sform8  +++|  B<6*TOCHAROS,12>TOSTRIU[TOINDEX] =
05044  M01S00028.sform8  +++|    DC2A8[B<6*FROMCHAROS,6>FROMSTRIU[FROMINDEX]];
05045  M00S03170.sform   +++|  FROMCHAROS = FROMCHAROS + 1;       # UPDATE FROMSTRING CHAR. OFFSET #
05046  M00S03171.sform   +++|  IF FROMCHAROS EQ 10 THEN
05047  M00S03172.sform   +++|    BEGIN                            # IF FROMSTRING WORD IS EMPTY #
05048  M00S03173.sform   +++|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
05049  M00S03174.sform   +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
Line S03175 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05050  M01S03175.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX]; # GET NEXT WORD FROM FROMSTRING #
05051  M00S03176.sform   ---|    END
05052  M00S03177.sform   ---|  TOCHAROS = TOCHAROS + 2;           # UPDATE TOSTRING CHAR. OFFSET #
05053  M00S03178.sform   ---|  IF TOCHAROS EQ 10 THEN
05054  M00S03179.sform   ---|    BEGIN                            # IF TOSTRING WORD IS FULL #
05055  M00S03180.sform   ---|    TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
05056  M01S03181.sform8  ---|    TOSTRIU[TOINDEX] = TOWORD;       # STORE WORD INTO TOSTRING #
05057  M01S03182.sform8  ---|    TOINDEX = TOINDEX + 1;           # UPDATE TOWORD INDEX #
Line S00029 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05058  M01S00029.sform8  +++|    TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
Line S03183 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05059  M01S03183.sform8  ---|    END
05060  M01S03184.sform8  ---|  END
05061  M01S03185.sform8  ---|IF TOCHAROS NQ 0 THEN
05062  M01S03186.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
05063  M01S03187.sform8  ---|  FOR NUMCHARS = 0 STEP 1 UNTIL TOCHAROS -1 DO
05064  M01S03188.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
05065  M01S03189.sform8  ---|    B<6*NUMCHARS,6>TOSTRIU[TOINDEX] = B<6*NUMCHARS,6>TOWORD;
05066  M00S03190.sform   ---|    END
05067  M00S03191.sform   ---|  END
Line S00401 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05068  M01S00401.ns2605  +++|WHYLE FILL AND SLENGTH LS NUMVDCHARS DO
05069  M01S00402.ns2605  +++|  BEGIN
05070  M01S00403.ns2605  +++|  NUMVDCHARS = NUMVDCHARS - 1;
05071  M01S00404.ns2605  +++|  B<6*TOCHAROS,12>TOSTRIU[TOINDEX] = B<48,12>SPACE;
05072  M01S00405.ns2605  +++|  TOCHAROS = TOCHAROS + 2;           # INCREMENT TOSTRING OFFSET #
05073  M01S00406.ns2605  +++|  IF TOCHAROS EQ 10 THEN
05074  M01S00407.ns2605  +++|    BEGIN                            # IF FROMSTRING WORD IS EMPTY #
05075  M01S00408.ns2605  +++|    TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
05076  M01S00409.ns2605  +++|    TOINDEX = TOINDEX + 1;           # UPDATE FROMSTRING WORD INDEX #
05077  M01S00410.ns2605  +++|    END
05078  M01S00411.ns2605  +++|  END
05079  M00S03192.sform   +++|
05080  M00S03193.sform   +++|END  # MVDCA8 #
05081  M00S03194.sform   +++|CONTROL EJECT;
05082  M00S03195.sform   +++|
05083  M00S03196.sform   +++|PROC NCHECK(FLDIND,IVAL,EVAL,INPUTTYPE,DOLLARSIGN);
05084  M00S03197.sform   +++|
05085  M00S03198.sform   +++|# TITLE NCHECK - NUMERIC CHECK OF INPUT FIELD. #
05086  M00S03199.sform   +++|
05087  M00S03200.sform   +++|BEGIN  # NCHECK #
05088  M00S03201.sform   +++|
05089  M00S03202.sform   +++|#
05090  M00S03203.sform   +++|**    NCHECK - CHECK NUMERIC FIELD.
05091  M00S03204.sform   +++|*
05092  M00S03205.sform   +++|*     THIS PROCEDURE CHECKS THAT THE INPUT FITS THE FORMAT SPECIFIED
05093  M00S03206.sform   +++|*     FOR THE FIELD AND CALULATES THE NUMERIC  VALUE OF THE INPUT.
05094  M00S03207.sform   +++|*
05095  M00S03208.sform   +++|*     PROC NCHECK(FLDIND,IVAL,EVAL,INPUTTYPE,DOLLARSIGN)
05096  M00S03209.sform   +++|*
05097  M00S03210.sform   +++|*     ENTRY   FLDIND     = INDEX OF CURRENT FIELD IN FLDLIST.
05098  M00S03211.sform   +++|*
05099  M00S03212.sform   +++|*     EXIT    IVAL       = INTEGER VALUE OF INPUT.
05100  M00S03213.sform   +++|*             EVAL       = EXPONENT VALUE OF INPUT.
05101  M00S03214.sform   +++|*             INPUTTYPE  = FORMAT TYPE OF INPUT.
05102  M00S03215.sform   +++|*             DOLLARSIGN = TRUE IF $ IN INPUT.
05103  M00S03216.sform   +++|*             FLDVALID[FLDIND] = FALSE, IF INVALID INPUT.
05104  M00S03217.sform   +++|*
05105  M00S03218.sform   +++|*     CALLS   GETNUM, SKPBLK.
05106  M00S03219.sform   +++|#
05107  M00S03220.sform   +++|ITEM FLDIND     I;                   # INDEX IN FLDLIST #
05108  M00S03221.sform   +++|ITEM IVAL       I;                   # INTEGER VALUE #
05109  M00S03222.sform   +++|ITEM EVAL       I;                   # EXPONENT VALUE #
05110  M00S03223.sform   +++|ITEM INPUTTYPE  I;                   # FORMAT TYPE (9 N $ E BAD)#
05111  M00S03224.sform   +++|ITEM DOLLARSIGN B;                   # $ IN INPUT #
05112  M00S03225.sform   +++|
05113  M00S03226.sform   +++|ITEM CHAR       I;                   # INPUT CHARACTER #
05114  M00S03227.sform   +++|ITEM CHARPOS    I;                   # CHARACTER POSITION IN FIELD #
05115  M00S03228.sform   +++|ITEM COMMADEL   I = O"0054";         # COMMA DELIMETER #
05116  M00S03229.sform   +++|ITEM COMMATHERE B;                   # COMMA PRESENT FLAG #
05117  M00S03230.sform   +++|ITEM DECIMALPT  B;                   # DECIMAL POINT IN INPUT #
05118  M00S03231.sform   +++|ITEM DIGITINT   I;                   # NUMBER OF DIGITS IN INTEGER #
05119  M00S03232.sform   +++|ITEM DIGITLIMIT I=17;                # MAXIMUM DIGITS ALLOWED #
05120  M00S03233.sform   +++|ITEM DIGITS     I;                   # NUMBER OF DIGITS IN SUBFIELD #
05121  M00S03234.sform   +++|ITEM DVAL       I;                   # DECIMAL VALUE #
05122  M00S03235.sform   +++|ITEM ESIGN      I;                   # EXPONENT SIGN VALUE #
05123  M00S03236.sform   +++|ITEM EXPONLIMIT I=322;               # MAXIMUM EXPONENT ALLOWED #
05124  M00S03237.sform   +++|ITEM I          I;                   # LOOP COUNTER #
05125  M00S03238.sform   +++|ITEM ISIGN      I;                   # INTEGER SIGN VALUE #
Line S03239 Modification History
M01 (Removed by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05126  M01S03239.sform25 ---|ITEM PERIODDEL  I = O"0056";         # PERIOD DELIMETER #
Line S00001 Modification History
M01 (Added by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05127  M01S00001.sform25 +++|ITEM PERIODDEL  I = O"0056";         # PERIOD DELIMITER #
05128  M00S03240.sform   +++|ITEM SOMEDIGITS B;                   # IF ANY NUMERIC INPUT #
05129  M00S03241.sform   +++|ITEM TVAL       I;                   # TEMPORARY VALUE #
05130  M01S00002.sform25 +++|ITEM VARIND     I;                   # INDEX INTO VARLIST OF VARIABLE #
05131  M00S03242.sform   +++|
05132  M00S03243.sform   +++|SOMEDIGITS = FALSE;                  # INITIAL VALUES #
05133  M00S03244.sform   +++|COMMATHERE = FALSE;
05134  M00S03245.sform   +++|DOLLARSIGN = FALSE;
05135  M00S03246.sform   +++|DECIMALPT = FALSE;
05136  M01S00003.sform25 +++|VARIND = FLDVARORD[FLDIND];
05137  M00S03247.sform   +++|
05138  M00S03248.sform   +++|CONTROL IFEQ EUROPEAN,1;             # IF EUROPEAN CURRENCY FORMAT #
Line S03249 Modification History
M01 (Removed by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05139  M01S03249.sform25 ---|  IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"$" THEN
Line S00004 Modification History
M01 (Added by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05140  M01S00004.sform25 +++|  IF VARPICTYPE[VARIND] EQ FORMTYPE"$" THEN
05141  M00S03250.sform   +++|    BEGIN                            # CURRENCY FORMAT #
05142  M00S03251.sform   +++|    COMMADEL = PERIOD;
05143  M00S03252.sform   +++|    PERIODDEL = COMMA;
05144  M00S03253.sform   +++|    END
05145  M00S03254.sform   +++|  ELSE
05146  M00S03255.sform   +++|    BEGIN                            # NOT CURRENCY FORMAT #
05147  M00S03256.sform   +++|    COMMADEL = COMMA;
05148  M00S03257.sform   +++|    PERIODDEL = PERIOD;
05149  M00S03258.sform   +++|    END
05150  M00S03259.sform   +++|CONTROL FI;                          # END EUROPEAN #
05151  M00S03260.sform   +++|
05152  M00S03261.sform   +++|INPUTTYPE = FORMTYPE"BAD";
05153  M00S03262.sform   +++|IVAL = 0;
05154  M00S03263.sform   +++|DVAL = 0;
05155  M00S03264.sform   +++|EVAL = 0;
05156  M00S03265.sform   +++|TVAL = 0;
05157  M00S03266.sform   +++|ISIGN = 1;
05158  M00S03267.sform   +++|ESIGN = 1;
05159  M00S03268.sform   +++|CHARPOS = 0;
05160  M00S03269.sform   +++|DIGITINT = 0;
05161  M00S03270.sform   +++|
05162  M00S03271.sform   +++|SKPBLK(FLDIND,CHARPOS,CHAR);         # FIND START OF FIELD #
05163  M00S03272.sform   +++|
05164  M00S03273.sform   +++|IF UPPER(CHAR) EQ CAPE THEN GOTO EXPSUBFLD;  # START OF EXPONENT #
05165  M00S03274.sform   +++|
05166  M00S03275.sform   +++|IF CHAR EQ DOLLAR THEN
05167  M00S03276.sform   +++|  BEGIN                              # CURRENCY INPUT #
05168  M00S03277.sform   +++|  DOLLARSIGN = TRUE;
05169  M00S03278.sform   +++|  INPUTTYPE = FORMTYPE"$";
05170  M00S03279.sform   +++|  CHARPOS = CHARPOS + 1;
05171  M00S03280.sform   +++|  END
05172  M00S03281.sform   +++|
05173  M00S03282.sform   +++|IF CHAR EQ PLUS OR CHAR EQ MINUS THEN
05174  M00S03283.sform   +++|  BEGIN                              # SIGNED INPUT #
05175  M00S03284.sform   +++|  INPUTTYPE = FORMTYPE"N";
05176  M00S03285.sform   +++|  IF CHAR EQ MINUS THEN ISIGN = -1;
05177  M00S03286.sform   +++|  CHARPOS = CHARPOS + 1;
05178  M00S03287.sform   +++|  END
05179  M00S03288.sform   +++|
05180  M00S03289.sform   +++|IF CHAR EQ PERIODDEL THEN GOTO DECSUBFLD;  # START OF DECIMAL #
05181  M00S03290.sform   +++|
05182  M00S03291.sform   +++|INTSUBFLD:                           # GET VALUE OF INTEGER SUBFIELD #
05183  M00S03292.sform   +++|
05184  M00S03293.sform   +++|  GETNUM(FLDIND,CHARPOS,IVAL,DIGITS);
05185  M00S03294.sform   +++|  DIGITINT = DIGITINT + DIGITS;
Line S03295 Modification History
M01 (Removed by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05186  M01S03295.sform25 ---|  IF (COMMATHERE AND DIGITS NQ 3) OR DIGITINT GR DIGITLIMIT THEN
Line S00005 Modification History
M01 (Added by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05187  M01S00005.sform25 +++|  IF (COMMATHERE AND DIGITS NQ 3)
05188  M01S00006.sform25 +++|    OR (DIGITINT GR DIGITLIMIT AND VARTYPE[VARIND] GR 1) THEN
05189  M00S03296.sform   +++|    BEGIN
05190  M00S03297.sform   +++|    INPUTTYPE = FORMTYPE"BAD";
05191  M00S03298.sform   +++|    RETURN;
05192  M00S03299.sform   +++|    END
05193  M00S03300.sform   +++|  IF DIGITS NQ 0 THEN SOMEDIGITS = TRUE;
05194  M00S03301.sform   +++|  IF NEXTCHAR(FLDIND,CHARPOS) EQ COMMADEL THEN
05195  M00S03302.sform   +++|    BEGIN                            # CURRENCY TYPE INPUT #
05196  M00S03303.sform   +++|    IF (NOT COMMATHERE AND DIGITS GR 3) OR DIGITS LS 1 THEN
05197  M00S03304.sform   +++|      BEGIN
05198  M00S03305.sform   +++|      INPUTTYPE = FORMTYPE"BAD";
05199  M00S03306.sform   +++|      RETURN;
05200  M00S03307.sform   +++|      END
05201  M00S03308.sform   +++|    DOLLARSIGN = TRUE;
05202  M00S03309.sform   +++|    COMMATHERE = TRUE;
05203  M00S03310.sform   +++|    IF CHARPOS GQ FLDLENGTH[FLDIND] - 1 THEN GOTO ENDOFFLD;
05204  M00S03311.sform   +++|    CHARPOS = CHARPOS + 1;
05205  M00S03312.sform   +++|    CHAR = NEXTCHAR(FLDIND,CHARPOS);
05206  M00S03313.sform   +++|    IF CHAR LS ZEROCH OR CHAR GR NINECH THEN
05207  M00S03314.sform   +++|      BEGIN                          # INVALID CHARACTER #
05208  M00S03315.sform   +++|      INPUTTYPE = FORMTYPE"BAD";
05209  M00S03316.sform   +++|      RETURN;
05210  M00S03317.sform   +++|      END
05211  M00S03318.sform   +++|    INPUTTYPE = FORMTYPE"$";
05212  M00S03319.sform   +++|    GOTO INTSUBFLD;
05213  M00S03320.sform   +++|    END
Line S03321 Modification History
M01 (Removed by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05214  M01S03321.sform25 ---|  IVAL = ISIGN * IVAL;
Line S00007 Modification History
M01 (Added by) sform25
M02 (Removed by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05215  M02S00007.sfor25a ---|  IF VARTYPE[VARIND] GR 1 THEN IVAL = ISIGN * IVAL;
Line S00001 Modification History
M01 (Added by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05216  M01S00001.sfor25a +++|  IVAL = ISIGN * IVAL;
05217  M00S03322.sform   +++|  IF CHARPOS GQ FLDLENGTH[FLDIND] THEN GOTO ENDOFFLD;
05218  M00S03323.sform   +++|  CHAR = NEXTCHAR(FLDIND,CHARPOS);   # LOOK AT NEXT CHARACTER #
05219  M00S03324.sform   +++|  IF UPPER(CHAR) EQ CAPE THEN GOTO EXPSUBFLD;  # START OF EXPONENT #
05220  M00S03325.sform   +++|  IF CHAR EQ PERIODDEL THEN GOTO DECSUBFLD;  # START OF DECIMAL #
05221  M00S03326.sform   +++|  IF CHAR EQ MINUS OR CHAR EQ PLUS AND SOMEDIGITS THEN
05222  M00S03327.sform   +++|    BEGIN                            # START OF EXPONENT #
05223  M00S03328.sform   +++|    GOTO EXPSUBFLD;
05224  M00S03329.sform   +++|    END
05225  M00S03330.sform   +++|  IF CHAR EQ BLANK THEN GOTO ENDOFFLD;  # END OF FIELD #
05226  M00S03331.sform   +++|  INPUTTYPE = FORMTYPE"BAD";         # BAD INPUT #
05227  M00S03332.sform   +++|  RETURN;
05228  M00S03333.sform   +++|
05229  M00S03334.sform   +++|DECSUBFLD:                           # GET VALUE OF DECIMAL SUBFIELD #
05230  M00S03335.sform   +++|
05231  M00S03336.sform   +++|  DECIMALPT = TRUE;
05232  M00S03337.sform   +++|  INPUTTYPE = FORMTYPE"$";
05233  M00S03338.sform   +++|  CHARPOS = CHARPOS + 1;
05234  M00S03339.sform   +++|  IF CHARPOS GQ FLDLENGTH[FLDIND] THEN GOTO ENDOFFLD;
05235  M00S03340.sform   +++|  GETNUM(FLDIND,CHARPOS,DVAL,DIGITS);
Line S03341 Modification History
M01 (Removed by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05236  M01S03341.sform25 ---|  DIGITINT = DIGITINT + DIGITS;
05237  M01S03342.sform25 ---|  IF DIGITINT GR DIGITLIMIT THEN
Line S00008 Modification History
M01 (Added by) sform25
M02 (Removed by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05238  M02S00008.sfor25a ---|  IF DIGITINT+DIGITS GR DIGITLIMIT AND VARTYPE[VARIND] GR 1 THEN
Line S00002 Modification History
M01 (Added by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05239  M01S00002.sfor25a +++|  DIGITINT = DIGITINT + DIGITS;
05240  M01S00003.sfor25a +++|  IF DIGITINT GR DIGITLIMIT AND VARTYPE[VARIND] GR 1 THEN
05241  M00S03343.sform   +++|    BEGIN                            # TOO MANY DIGITS ENTERED #
05242  M00S03344.sform   +++|    INPUTTYPE = FORMTYPE"BAD";
05243  M00S03345.sform   +++|    RETURN;
05244  M00S03346.sform   +++|    END
05245  M00S03347.sform   +++|  IF DIGITS NQ 0 THEN
05246  M00S03348.sform   +++|    BEGIN                            # SOME DECIMAL DIGITS ENTERED #
Line S03349 Modification History
M01 (Removed by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05247  M01S03349.sform25 ---|    FOR I = 1 STEP 1 UNTIL DIGITS DO
Line S00009 Modification History
M01 (Added by) sform25
M02 (Removed by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05248  M02S00009.sfor25a ---|    FOR I = 1 STEP 1 WHILE I LQ DIGITS AND DIGITINT+I LQ DIGITLIMIT DO
Line S00004 Modification History
M01 (Added by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05249  M01S00004.sfor25a +++|    IF DIGITINT LQ DIGITLIMIT THEN
05250  M00S03350.sform   +++|      BEGIN
Line S03351 Modification History
M01 (Removed by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05251  M01S03351.sfor25a ---|      IVAL = IVAL * 10;
Line S00005 Modification History
M01 (Added by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05252  M01S00005.sfor25a +++|      FOR I = 1 STEP 1 UNTIL DIGITS DO
05253  M01S00006.sfor25a +++|        BEGIN
05254  M01S00007.sfor25a +++|        IVAL = IVAL * 10;
05255  M01S00008.sfor25a +++|        END
05256  M01S00009.sfor25a +++|      IVAL = IVAL + DVAL*ISIGN;
05257  M00S03352.sform   +++|      END
Line S03353 Modification History
M01 (Removed by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05258  M01S03353.sform25 ---|    IVAL = IVAL + DVAL*ISIGN;
Line S00010 Modification History
M01 (Added by) sform25
M02 (Removed by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05259  M02S00010.sfor25a ---|    DIGITINT = DIGITINT + DIGITS;
05260  M02S00011.sfor25a ---|    IF DIGITINT LQ DIGITLIMIT THEN IVAL = IVAL + DVAL*ISIGN;
05261  M00S03354.sform   ---|    SOMEDIGITS = TRUE;
05262  M00S03355.sform   ---|    END
05263  M00S03356.sform   ---|  EVAL = -DIGITS;
05264  M00S03357.sform   ---|  IF DIGITS GR 2 THEN INPUTTYPE = FORMTYPE"E";
05265  M00S03358.sform   ---|  IF CHARPOS GQ FLDLENGTH[FLDIND] THEN GOTO ENDOFFLD;  # END OF FIELD #
05266  M00S03359.sform   ---|  CHAR = NEXTCHAR(FLDIND,CHARPOS);
05267  M00S03360.sform   ---|  IF CHAR EQ PLUS OR CHAR EQ MINUS
05268  M00S03361.sform   ---|    OR UPPER(CHAR) EQ CAPE THEN
05269  M00S03362.sform   ---|    BEGIN                            # START OF EXPONENT #
05270  M00S03363.sform   ---|    GOTO EXPSUBFLD;
05271  M00S03364.sform   ---|    END
05272  M00S03365.sform   ---|  IF CHAR EQ BLANK THEN GOTO ENDOFFLD;  # END OF FIELD #
05273  M00S03366.sform   ---|  INPUTTYPE = FORMTYPE"BAD";
05274  M00S03367.sform   ---|  RETURN;
05275  M00S03368.sform   ---|
05276  M00S03369.sform   ---|EXPSUBFLD:                           # GET VALUE OF EXPONENT SUBFIELD #
05277  M00S03370.sform   ---|
05278  M00S03371.sform   ---|  INPUTTYPE = FORMTYPE"E";
05279  M00S03372.sform   ---|  IF UPPER(CHAR) EQ CAPE THEN
05280  M00S03373.sform   ---|    BEGIN                            # SKIP E CHARACTER #
05281  M00S03374.sform   ---|    CHARPOS = CHARPOS + 1;
05282  M00S03375.sform   ---|    CHAR = NEXTCHAR(FLDIND,CHARPOS);
05283  M00S03376.sform   ---|    END
05284  M00S03377.sform   ---|  IF CHAR EQ MINUS THEN
05285  M00S03378.sform   ---|    BEGIN                            # NEGATIVE EXPONENT #
05286  M00S03379.sform   ---|    ESIGN = -1;
05287  M00S03380.sform   ---|    CHARPOS = CHARPOS + 1;
05288  M00S03381.sform   ---|    CHAR = NEXTCHAR(FLDIND,CHARPOS);
05289  M00S03382.sform   ---|    END
05290  M00S03383.sform   ---|  ELSE IF CHAR EQ PLUS THEN
05291  M00S03384.sform   ---|    BEGIN                            # POSITIVE EXPONENT #
05292  M00S03385.sform   ---|    CHARPOS = CHARPOS + 1;
05293  M00S03386.sform   ---|    CHAR = NEXTCHAR(FLDIND,CHARPOS);
05294  M00S03387.sform   ---|    END
05295  M00S03388.sform   ---|  GETNUM(FLDIND,CHARPOS,TVAL,DIGITS);
05296  M00S03389.sform   ---|  IF DIGITS EQ 0 OR DIGITS GR DIGITLIMIT THEN
05297  M00S03390.sform   ---|    BEGIN                            # TOO MANY OR NO DIGITS IN EXP #
05298  M00S03391.sform   ---|    INPUTTYPE = FORMTYPE"BAD";
05299  M00S03392.sform   ---|    RETURN;
05300  M00S03393.sform   ---|    END
05301  M00S03394.sform   ---|  EVAL = ESIGN * TVAL + EVAL;
05302  M00S03395.sform   ---|
05303  M00S03396.sform   ---|ENDOFFLD:                            # END OF INPUT FIELD #
05304  M00S03397.sform   ---|
05305  M00S03398.sform   ---|  IF ABS(EVAL) + DIGITINT GR EXPONLIMIT THEN
05306  M00S03399.sform   ---|    BEGIN                            # INPUT NUMBER TOO LARGE #
05307  M00S03400.sform   ---|    INPUTTYPE = FORMTYPE"BAD";
05308  M00S03401.sform   ---|    RETURN;
05309  M00S03402.sform   ---|    END
05310  M00S03403.sform   ---|
05311  M00S03404.sform   ---|  IF (DOLLARSIGN AND (INPUTTYPE EQ FORMTYPE"E")) OR NOT SOMEDIGITS THEN
05312  M00S03405.sform   ---|    BEGIN                            # REAL INPUT WITH $ OR NO DIGITS #
05313  M00S03406.sform   ---|    INPUTTYPE = FORMTYPE"BAD";
05314  M00S03407.sform   ---|    RETURN;
05315  M00S03408.sform   ---|    END
05316  M00S03409.sform   ---|
05317  M00S03410.sform   ---|  IF SOMEDIGITS AND (FORMTYPE"NINE" GR INPUTTYPE) THEN
05318  M00S03411.sform   ---|    BEGIN                            # UNSIGNED INTEGER INPUT #
05319  M00S03412.sform   ---|    INPUTTYPE = FORMTYPE"NINE";
05320  M00S03413.sform   ---|    END
05321  M00S03414.sform   ---|
05322  M00S03415.sform   ---|  IF CHARPOS LQ FLDLENGTH[FLDIND] -1 THEN
05323  M00S03416.sform   ---|    BEGIN                            # CHECK FOR EXTRA CHARACTERS #
05324  M00S03417.sform   ---|    FOR I = CHARPOS STEP 1 UNTIL FLDLENGTH[FLDIND] -1 DO
05325  M00S03418.sform   ---|      BEGIN
05326  M00S03419.sform   ---|      IF NEXTCHAR(FLDIND,I) NQ BLANK THEN INPUTTYPE = FORMTYPE"BAD";
05327  M00S03420.sform   ---|      END
05328  M00S03421.sform   ---|    END
05329  M00S03422.sform   ---|
05330  M00S03423.sform   ---|END  # NCHECK #
05331  M00S03424.sform   ---|CONTROL EJECT;
05332  M00S03425.sform   ---|
05333  M00S03426.sform   ---|PROC PICVAL(FLDIND);
05334  M00S03427.sform   ---|
05335  M00S03428.sform   ---|# TITLE PICVAL - PERFORM PICTURE VALIDATION. #
05336  M00S03429.sform   ---|
05337  M00S03430.sform   ---|BEGIN  # PICVAL #
05338  M00S03431.sform   ---|
05339  M00S03432.sform   ---|#
05340  M00S03433.sform   ---|**    PICVAL - PERFORM PICTURE VALIDATION.
05341  M00S03434.sform   ---|*
05342  M00S03435.sform   ---|*     THIS PROCEDURE VALIDATES THAT INPUT TO THE VARIABLE POINTED TO
05343  M00S03436.sform   ---|*     BY FLDIND CONFORMS WITH THE PICTURE TYPE SPECIFIED IN VARLIST.
05344  M00S03437.sform   ---|*
05345  M00S03438.sform   ---|*     PROC PICVAL(FLDIND)
05346  M00S03439.sform   ---|*
05347  M00S03440.sform   ---|*     ENTRY   FLDIND     = FLDLIST INDEX FOR FIELD TO BE CHECKED.
05348  M00S03441.sform   ---|*
05349  M00S03442.sform   ---|*     EXIT    FLDVALID[FLDIND] = FALSE, IF INPUT IS INVALID.
05350  M00S03443.sform   ---|*
05351  M00S03444.sform   ---|*     CALLS   DATEVL, NCHECK.
05352  M00S03445.sform   ---|#
05353  M00S03446.sform   ---|ITEM FLDIND     I;                   # INDEX OF VARIABLE TO VALIDATE #
05354  M00S03447.sform   ---|
05355  M00S03448.sform   ---|ITEM DOLLARSIGN B;                   # $ IN INPUT #
05356  M00S03449.sform   ---|ITEM EVAL       I;                   # EXPONENT VALUE OF INPUT #
05357  M00S03450.sform   ---|ITEM INPIND     I;                   # INDEX OF CHARACTER IN INPUT #
05358  M00S03451.sform   ---|ITEM INPTYPE    I;                   # FORMAT TYPE OF INPUT #
05359  M00S03452.sform   ---|ITEM IVAL       I;                   # INTEGER VALUE OF INPUT #
05360  M00S03453.sform   ---|ITEM NCHAR      I;                   # NEXT CHARACTER IN VARDATA #
05361  M00S03454.sform   ---|ITEM PTYPE      I;                   # PICTURE TYPE #
05362  M00S03455.sform   ---|ITEM VARIND     I;                   # INDEX INTO VARLIST OF VARIABLE #
05363  M00S03456.sform   ---|
05364  M00S03457.sform   ---|SWITCH PICTURTYPE                    # PICTURE TYPE SWITCH #
05365  M00S03458.sform   ---|  ,
05366  M00S03459.sform   ---|  PICX,                              # X PICTURE(DEFAULT) #
05367  M00S03460.sform   ---|  PICA,                              # ALPHA PICTURE #
05368  M00S03461.sform   ---|  PIC9,                              # INTEGER PICTURE #
05369  M00S03462.sform   ---|  PICN,                              # NUMERIC PICTURE #
05370  M00S03463.sform   ---|  PIC$,                              # DOLLAR PICTURE #
05371  M00S03464.sform   ---|  PICE,                              # REAL PICTURE #
05372  M00S03465.sform   ---|  PICY,                              # YYMMDD DATE PICTURE #
05373  M00S03466.sform   ---|  PICM,                              # MMDDYY DATE PICTURE #
05374  M00S03467.sform   ---|  PICD;                              # DDMMYY DATE PICTURE #
05375  M00S03468.sform   ---|
05376  M00S03469.sform   ---|VARIND = FLDVARORD[FLDIND];
05377  M00S03470.sform   ---|PTYPE = VARPICTYPE[VARIND] ;
05378  M00S03471.sform   ---|
05379  M00S03472.sform   ---|GOTO PICTURTYPE[PTYPE];
05380  M00S03473.sform   ---|
05381  M00S03474.sform   ---|PICX:                                # DISPLAYABLE CHARACTER TYPE #
05382  M00S03475.sform   ---|
05383  M00S03476.sform   ---|  RETURN;
05384  M00S03477.sform   ---|
05385  M00S03478.sform   ---|PICA:                                # ALPHABETIC FORMAT #
05386  M00S03479.sform   ---|
05387  M00S03480.sform   ---|  FOR INPIND = 0 STEP 1 UNTIL FLDLENGTH[FLDIND] -1 DO
05388  M00S03481.sform   ---|    BEGIN
05389  M00S03482.sform   ---|    NCHAR = NEXTCHAR(FLDIND,INPIND);
05390  M00S03483.sform   ---|    IF NOT(NCHAR GQ CAPA AND NCHAR LQ CAPZ)
05391  M00S03484.sform   ---|       AND NOT(NCHAR GQ LOWA AND NCHAR LQ LOWZ)
05392  M00S03485.sform   ---|       AND NOT(NCHAR EQ BLANK) THEN
05393  M00S03486.sform   ---|      BEGIN                          # NOT ALPHABETIC INPUT #
05394  M00S03487.sform   ---|      FLDVALID[FLDIND] = FALSE;
05395  M00S03488.sform   ---|      END
05396  M00S03489.sform   ---|    END
05397  M00S03490.sform   ---|
05398  M00S03491.sform   ---|  RETURN;
05399  M00S03492.sform   ---|
05400  M00S03493.sform   ---|PICY:
05401  M00S03494.sform   ---|PICM:
05402  M00S03495.sform   ---|PICD:                                # DATE FORMATS #
05403  M00S03496.sform   ---|
05404  M00S03497.sform   ---|  DATEVL(FLDIND,IVAL,EVAL);
05405  M00S03498.sform   ---|  RETURN;
05406  M00S03499.sform   ---|
05407  M00S03500.sform   ---|PICE:                                # REAL FORMAT #
05408  M00S03501.sform   ---|PIC9:                                # INTEGER FORMAT #
05409  M00S03502.sform   ---|PICN:                                # SIGNED INTEGER FORMAT #
05410  M00S03503.sform   ---|PIC$:                                # CURRENCY FORMAT #
05411  M00S03504.sform   ---|
05412  M00S03505.sform   ---|  NCHECK(FLDIND,IVAL,EVAL,INPTYPE,DOLLARSIGN);
05413  M00S03506.sform   ---|  IF (VARPICTYPE[VARIND] EQ FORMTYPE"E" AND DOLLARSIGN)
05414  M00S03507.sform   ---|    OR INPTYPE GR VARPICTYPE[VARIND] OR INPTYPE EQ FORMTYPE"BAD" THEN
05415  M00S03508.sform   ---|    BEGIN
05416  M00S03509.sform   ---|    FLDVALID[FLDIND] = FALSE;
05417  M00S03510.sform   ---|    END
05418  M00S03511.sform   ---|  RETURN;
05419  M00S03512.sform   ---|
05420  M00S03513.sform   ---|END  # PICVAL #
05421  M00S03514.sform   ---|CONTROL EJECT;
05422  M00S03515.sform   ---|
05423  M00S03516.sform   ---|PROC POSARR(PANELADDR);
05424  M00S03517.sform   ---|
Line S03518 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05425  M01S03518.242l642 ---|# TITLE POSARR - POSITON PANEL RECORD BASED ARRAYS. #
Line S00844 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05426  M01S00844.242l642 +++|# TITLE POSARR - POSITION PANEL RECORD BASED ARRAYS. #
05427  M00S03519.sform   +++|
05428  M00S03520.sform   +++|BEGIN  # POSARR #
05429  M00S03521.sform   +++|
05430  M00S03522.sform   +++|#
05431  M00S03523.sform   +++|**    POSARR - POSITION PANEL RECORD BASED ARRAYS.
05432  M00S03524.sform   +++|*
05433  M00S03525.sform   +++|*     THIS PROCEDURE POSITIONS THE BASED ARRAYS THAT DESCRIBE THE
05434  M00S03526.sform   +++|*     FORMAT OF THE INFORMATION IN PANEL RECORD USING THE ADDRESS
05435  M00S03527.sform   +++|*     PASSED IN PANELADDR.
05436  M00S03528.sform   +++|*
05437  M00S03529.sform   +++|*     PROC POSARR(PANELADDR)
05438  M00S03530.sform   +++|*
05439  M00S03531.sform   +++|*     ENTRY   PANELADDR  = FWA OF THE PANEL RECORD IN MEMORY.
05440  M00S03532.sform   +++|*
05441  M00S03533.sform   +++|*     EXIT    ALL PANEL RECORD BASED ARRAYS POSITIONED.
05442  M00S03534.sform   +++|#
05443  M00S03535.sform   +++|ITEM PANELADDR  I;                   # THE ADDRESS OF THE PANEL #
05444  M00S03536.sform   +++|
05445  M00S03537.sform   +++|ITEM ZEROWORD   I = 0;               # DUMMY FIELD LIST #
05446  M00S03538.sform   +++|
05447  M00S03539.sform   +++|P<RECORD> = PANELADDR;               # POSITION BASED ARRAYS #
05448  M00S03540.sform   +++|P<PANELHEADR> = PANELADDR;
05449  M00S03541.sform   +++|P<VDATA> = PANELADDR + PANHEADLEN;
05450  M00S03542.sform   +++|
05451  M00S03543.sform   +++|IF PANSTRFLD[0] NQ 0 THEN
05452  M00S03544.sform   +++|  BEGIN                              # IF PANEL HAS FIELD LIST #
05453  M00S03545.sform   +++|  P<FLDLIST> = PANELADDR + PANSTRFLD[0];
05454  M00S03546.sform   +++|  END
05455  M00S03547.sform   +++|ELSE
05456  M00S03548.sform   +++|  BEGIN                              # NO FIELD LIST, ONLY BOXES #
05457  M00S03549.sform   +++|  P<FLDLIST> = LOC(ZEROWORD);
05458  M00S03550.sform   +++|  END
05459  M00S03551.sform   +++|
05460  M00S03552.sform   +++|P<VARLIST> = PANELADDR + PANSTRVAR[0];
05461  M00S03553.sform   +++|P<FUNLIST> = PANELADDR + PANSTRFUN[0];
05462  M00S03554.sform   +++|P<ATTLIST> = PANELADDR + PANSTRATT[0];
05463  M00S03555.sform   +++|P<ARRLIST> = PANELADDR + PANSTRARR[0];
05464  M00S03556.sform   +++|P<BOXLIST> = PANELADDR + PANSTRBOX[0];
05465  M00S03557.sform   +++|
05466  M00S03558.sform   +++|END  # POSARR #
Line S00231 Modification History
M01 (Added by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
05467  M01S00231.243l647 +++|CONTROL EJECT;
05468  M01S00232.243l647 +++|
05469  M01S00233.243l647 +++|PROC POSTWO(PANELADDR);
05470  M01S00234.243l647 +++|
05471  M01S00235.243l647 +++|# TITLE POSTWO - POSITION PANEL RECORD BASED ARRAYS FOR SFATTR. #
05472  M01S00236.243l647 +++|
05473  M01S00237.243l647 +++|BEGIN  # POSTWO #
05474  M01S00238.243l647 +++|
05475  M01S00239.243l647 +++|#
05476  M01S00240.243l647 +++|**    POSTWO - POSITION PANEL RECORD BASED ARRAYS FOR SFATTR.
05477  M01S00241.243l647 +++|*
05478  M01S00242.243l647 +++|*     THIS PROCEDURE POSITIONS THE BASED ARRAYS THAT DESCRIBE THE
05479  M01S00243.243l647 +++|*     FORMAT OF THE INFORMATION IN PANEL RECORD USING THE ADDRESS
05480  M01S00244.243l647 +++|*     PASSED IN PANELADDR FOR USE BY SFATTR.
05481  M01S00245.243l647 +++|*
05482  M01S00246.243l647 +++|*     PROC POSTWO(PANELADDR)
05483  M01S00247.243l647 +++|*
05484  M01S00248.243l647 +++|*     ENTRY   PANELADDR  = FWA OF THE PANEL RECORD IN MEMORY.
05485  M01S00249.243l647 +++|*
05486  M01S00250.243l647 +++|*     EXIT    ALL PANEL RECORD BASED ARRAYS POSITIONED.
05487  M01S00251.243l647 +++|#
05488  M01S00252.243l647 +++|ITEM PANELADDR  I;                   # THE ADDRESS OF THE PANEL #
05489  M01S00253.243l647 +++|
05490  M01S00254.243l647 +++|ITEM ZEROWORD   I = 0;               # DUMMY FIELD LIST #
05491  M01S00255.243l647 +++|
05492  M01S00256.243l647 +++|P<PANEL2HEAD> = PANELADDR;
05493  M01S00257.243l647 +++|
05494  M01S00258.243l647 +++|IF PAN2STRFLD[0] NQ 0 THEN
05495  M01S00259.243l647 +++|  BEGIN                              # IF PANEL HAS FIELD LIST #
05496  M01S00260.243l647 +++|  P<FLD2LIST> = PANELADDR + PAN2STRFLD[0];
05497  M01S00261.243l647 +++|  END
05498  M01S00262.243l647 +++|ELSE
05499  M01S00263.243l647 +++|  BEGIN                              # NO FIELD LIST, ONLY BOXES #
05500  M01S00264.243l647 +++|  P<FLD2LIST> = LOC(ZEROWORD);
05501  M01S00265.243l647 +++|  END
05502  M01S00266.243l647 +++|
05503  M01S00267.243l647 +++|P<VAR2LIST> = PANELADDR + PAN2STRVAR[0];
05504  M01S00268.243l647 +++|P<ATT2LIST> = PANELADDR + PAN2STRATT[0];
Line S00001 Modification History
M01 (Added by) sform15
Seq #  *Modification Id* Act 
----------------------------+
05505  M01S00001.sform15 +++|P<ARR2LIST> = PANELADDR + PAN2STRARR[0];
Line S00269 Modification History
M01 (Added by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
05506  M01S00269.243l647 +++|
05507  M01S00270.243l647 +++|END  # POSTWO #
05508  M00S03559.sform   +++|CONTROL EJECT;
05509  M00S03560.sform   +++|
05510  M00S03561.sform   +++|PROC PSTRNG(FLDIND,MESSNUM);
05511  M00S03562.sform   +++|
05512  M00S03563.sform   +++|# TITLE PSTRNG - PRINT MESSAGE STRING. #
05513  M00S03564.sform   +++|
05514  M00S03565.sform   +++|BEGIN  # PSTRNG #
05515  M00S03566.sform   +++|
05516  M00S03567.sform   +++|#
05517  M00S03568.sform   +++|**    PSTRNG - PRINT MESSAGE STRING.
05518  M00S03569.sform   +++|*
05519  M00S03570.sform   +++|*     THIS PROCEDURE CLEARS THE MESSAGE AREA AND PRINTS A USER OR
05520  M00S03571.sform   +++|*     SMF MESSAGE.
05521  M00S03572.sform   +++|*
05522  M00S03573.sform   +++|*     PROC PSTRNG(FLDIND,MESSNUM)
05523  M00S03574.sform   +++|*
05524  M00S03575.sform   +++|*     ENTRY   FLDIND     = INDEX OF FIELD FOR HELP STRING.
05525  M00S03576.sform   +++|*             MESSNUM    = SWITCH VALUE FOR MESSAGE PROMPT.
05526  M00S03577.sform   +++|*
05527  M00S03578.sform   +++|*     EXIT    MESSAGE TRUNCATED IF NECESSARY AND WRITTEN.
05528  M00S03579.sform   +++|*
Line S03580 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05529  M01S03580.242l642 ---|*     CALLS   CPANEL, VDTBOO, VDTCHR, VDTCLL, VDTEOO, VDTPOS, VDTSAM
05530  M01S03581.242l642 ---|*             VDTSTR.
Line S00845 Modification History
M01 (Added by) 242l642
M02 (Removed by) ns2346
Seq #  *Modification Id* Act 
----------------------------+
05531  M02S00845.ns2346  ---|*     CALLS   CPANEL, MCLEAN, VDTCAA, VDTCHR, VDTSTR.
Line S00011 Modification History
M01 (Added by) ns2346
Seq #  *Modification Id* Act 
----------------------------+
05532  M01S00011.ns2346  +++|*     CALLS   CPANEL, MCLEAN, VDTCHR, VDTPOS, VDTSAM, VDTSTR.
05533  M00S03582.sform   +++|*
05534  M00S03583.sform   +++|*     USES    TERHELPREQ, TERMESREAD, TERMESWRIT.
05535  M00S03584.sform   +++|#
05536  M00S03585.sform   +++|ITEM FLDIND     I;                   # INDEX INTO FIELD LIST #
05537  M00S03586.sform   +++|ITEM MESSNUM    S:MESSSTAT;          # SWITCH FOR MESSAGE PROMPT #
05538  M00S03587.sform   +++|
05539  M00S03588.sform   +++|ITEM CINDEX     I;                   # CHARACTER INDEX INTO MESSAGE #
05540  M00S03589.sform   +++|ITEM I          I;                   # LOOP VARIABLE #
05541  M00S03590.sform   +++|ITEM MESCHR     I;                   # HOLDS ONE CHARACTER OF MESSAGE #
05542  M00S03591.sform   +++|ITEM MCOUNT     I;                   # CHARACTER COUNT FOR MESSAGE #
05543  M00S03592.sform   +++|ITEM MSGFIT     B;                   # MESSAGE TRUNCATION FLAG #
05544  M00S03593.sform   +++|ITEM VARIND     I;                   # INDEX INTO VARLIST #
05545  M00S03594.sform   +++|ITEM WINDEX     I;                   # WORD INDEX INTO MESSAGE #
05546  M00S03595.sform   +++|
Line S00846 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05547  M01S00846.242l642 +++|*IF UNDEF,QTRM
Line S03596 Modification History
M01 (Removed by) sform13
Seq #  *Modification Id* Act 
----------------------------+
05548  M01S03596.sform13 ---|ARRAY CONMESS[0:2] P(1);
Line S03597 Modification History
M01 (Removed by) 242l642
M02 (Removed by) sform13
Seq #  *Modification Id* Act 
----------------------------+
05549  M02S03597.sform13 ---|  BEGIN                              # :I PLEASE CONFIRM #
Line S00847 Modification History
M01 (Added by) 242l642
M02 (Removed by) sform13
Seq #  *Modification Id* Act 
----------------------------+
05550  M02S00847.sform13 ---|  BEGIN                              # :IPLEASE CONFIRM #
Line S03598 Modification History
M01 (Removed by) sform13
Seq #  *Modification Id* Act 
----------------------------+
05551  M01S03598.sform13 ---|  ITEM CONMESSAGE U(00,00,60) = [
05552  M01S03599.sform13 ---|    O"00112076147605760176",
05553  M01S03600.sform13 ---|    O"23760555760376177616",
05554  M01S03601.sform13 ---|    O"76067611762276150000"];
05555  M01S03602.sform13 ---|  END
05556  M01S03603.sform13 ---|
05557  M01S03604.sform13 ---|ARRAY CORMESS[0:2] P(1);
05558  M01S03605.sform13 ---|  BEGIN                              # :IPLEASE CORRECT #
05559  M01S03606.sform13 ---|  ITEM CORMESSAGE U(00,00,60) = [
05560  M01S03607.sform13 ---|    O"00112076147605760176",
05561  M01S03608.sform13 ---|    O"23760555760376177622",
05562  M01S03609.sform13 ---|    O"76227605760376240000"];
05563  M01S03610.sform13 ---|  END
05564  M01S03611.sform13 ---|
05565  M01S03612.sform13 ---|ARRAY DEFMESS[0:2] P(1);
05566  M01S03613.sform13 ---|  BEGIN                              # :IPLEASE ENTER #
05567  M01S03614.sform13 ---|  ITEM DEFMESSAGE U(00,00,60) = [
05568  M01S03615.sform13 ---|    O"00112076147605760176",
05569  M01S03616.sform13 ---|    O"23760555760576167624",
05570  M01S03617.sform13 ---|    O"76057622000000000000"];
05571  M01S03618.sform13 ---|  END
05572  M01S03619.sform13 ---|
05573  M01S03620.sform13 ---|ARRAY ERRMESS[0:4] P(1);
05574  M01S03621.sform13 ---|  BEGIN                              # :IPLEASE REENTER INPUT #
05575  M01S03622.sform13 ---|  ITEM ERRMESSAGE U(00,00,60) = [
05576  M01S03623.sform13 ---|    O"00112076147605760176",
05577  M01S03624.sform13 ---|    O"23760555762276057605",
05578  M01S03625.sform13 ---|    O"76167624760576225576",
05579  M01S03626.sform13 ---|    O"11761676207625762400",
05580  M01S03627.sform13 ---|    O"00000000000000000000"];
05581  M01S03628.sform13 ---|  END
05582  M01S03629.sform13 ---|
05583  M01S03630.sform13 ---|ARRAY FUNMESS[0:4] P(1);
05584  M01S03631.sform13 ---|  BEGIN                              # :IPLEASE PRESS FUNCTION KEY #
05585  M01S03632.sform13 ---|  ITEM FUNMESSAGE U(00,00,60) = [
05586  M01S03633.sform13 ---|    O"00112076147605760176",
05587  M01S03634.sform13 ---|    O"23760555762076227605",
05588  M01S03635.sform13 ---|    O"76237623557606762576",
05589  M01S03636.sform13 ---|    O"16760376247611761776",
05590  M01S03637.sform13 ---|    O"16557613760576310000"];
05591  M01S03638.sform13 ---|  END
Line S00001 Modification History
M01 (Added by) sform13
Seq #  *Modification Id* Act 
----------------------------+
05592  M01S00001.sform13 +++|ARRAY CONMESS[0:3] P(1);
05593  M01S00002.sform13 +++|  BEGIN                              # PLEASE CONFIRM #
05594  M01S00003.sform13 +++|  ITEM CONMESSAGE U(00,00,60) = [
05595  M01S00004.sform13 +++|    O"41204154414541414163",
05596  M01S00005.sform13 +++|    O"41454040414341574156",
05597  M01S00006.sform13 +++|    O"41464151416241550000"];
05598  M01S00007.sform13 +++|  END
05599  M01S00008.sform13 +++|
05600  M01S00009.sform13 +++|ARRAY CORMESS[0:3] P(1);
05601  M01S00010.sform13 +++|  BEGIN                              # PLEASE CORRECT #
05602  M01S00011.sform13 +++|  ITEM CORMESSAGE U(00,00,60) = [
05603  M01S00012.sform13 +++|    O"41204154414541414163",
05604  M01S00013.sform13 +++|    O"41454040414341574162",
05605  M01S00014.sform13 +++|    O"41624145414341640000"];
05606  M01S00015.sform13 +++|  END
05607  M01S00016.sform13 +++|
05608  M01S00017.sform13 +++|ARRAY DEFMESS[0:2] P(1);
05609  M01S00018.sform13 +++|  BEGIN                              # PLEASE ENTER #
05610  M01S00019.sform13 +++|  ITEM DEFMESSAGE U(00,00,60) = [
05611  M01S00020.sform13 +++|    O"41204154414541414163",
05612  M01S00021.sform13 +++|    O"41454040414541564164",
05613  M01S00022.sform13 +++|    O"41454162000000000000"];
05614  M01S00023.sform13 +++|  END
05615  M01S00024.sform13 +++|
05616  M01S00025.sform13 +++|ARRAY ERRMESS[0:4] P(1);
05617  M01S00026.sform13 +++|  BEGIN                              # PLEASE REENTER INPUT #
05618  M01S00027.sform13 +++|  ITEM ERRMESSAGE U(00,00,60) = [
05619  M01S00028.sform13 +++|    O"41204154414541414163",
05620  M01S00029.sform13 +++|    O"41454040416241454145",
05621  M01S00030.sform13 +++|    O"41564164414541624040",
05622  M01S00031.sform13 +++|    O"41514156416041654164",
05623  M01S00032.sform13 +++|    O"00000000000000000000"];
05624  M01S00033.sform13 +++|  END
05625  M01S00034.sform13 +++|
05626  M01S00035.sform13 +++|ARRAY FUNMESS[0:5] P(1);
05627  M01S00036.sform13 +++|  BEGIN                              # PLEASE PRESS FUNCTION KEY #
05628  M01S00037.sform13 +++|  ITEM FUNMESSAGE U(00,00,60) = [
05629  M01S00038.sform13 +++|    O"41204154414541414163",
05630  M01S00039.sform13 +++|    O"41454040416041624145",
05631  M01S00040.sform13 +++|    O"41634163404041464165",
05632  M01S00041.sform13 +++|    O"41564143416441514157",
05633  M01S00042.sform13 +++|    O"41564040415341454171",
05634  M01S00043.sform13 +++|    O"00000000000000000000"];
05635  M01S00044.sform13 +++|  END
Line S00848 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05636  M01S00848.242l642 +++|*ELSE
05637  M01S00849.242l642 +++|ARRAY CONMESS[0:3] P(1);
05638  M01S00850.242l642 +++|  BEGIN                              # PLEASE CONFIRM #
05639  M01S00851.242l642 +++|  ITEM CONMESSAGE U(00,00,60) = [
05640  M01S00852.242l642 +++|    O"40404040412041544145",
05641  M01S00853.242l642 +++|    O"41414163414540404143",
05642  M01S00854.242l642 +++|    O"41574156414641514162",
05643  M01S00855.242l642 +++|    O"41550000000000000000"];
05644  M01S00856.242l642 +++|  END
05645  M01S00857.242l642 +++|
05646  M01S00858.242l642 +++|ARRAY CORMESS[0:3] P(1);
05647  M01S00859.242l642 +++|  BEGIN                              # PLEASE CORRECT #
05648  M01S00860.242l642 +++|  ITEM CORMESSAGE U(00,00,60) = [
05649  M01S00861.242l642 +++|    O"40404040412041544145",
05650  M01S00862.242l642 +++|    O"41414163414540404143",
05651  M01S00863.242l642 +++|    O"41574162416241454143",
05652  M01S00864.242l642 +++|    O"41640000000000000000"];
05653  M01S00865.242l642 +++|  END
05654  M01S00866.242l642 +++|
05655  M01S00867.242l642 +++|ARRAY DEFMESS[0:2] P(1);
05656  M01S00868.242l642 +++|  BEGIN                              # PLEASE ENTER #
05657  M01S00869.242l642 +++|  ITEM DEFMESSAGE U(00,00,60) = [
05658  M01S00870.242l642 +++|    O"40404040412041544145",
05659  M01S00871.242l642 +++|    O"41414163414540404145",
05660  M01S00872.242l642 +++|    O"41564164414541620000"];
05661  M01S00873.242l642 +++|  END
05662  M01S00874.242l642 +++|
05663  M01S00875.242l642 +++|ARRAY ERRMESS[0:4] P(1);
05664  M01S00876.242l642 +++|  BEGIN                              # PLEASE REENTER INPUT #
05665  M01S00877.242l642 +++|  ITEM ERRMESSAGE U(00,00,60) = [
05666  M01S00878.242l642 +++|    O"40404040412041544145",
05667  M01S00879.242l642 +++|    O"41414163414540404162",
05668  M01S00880.242l642 +++|    O"41454145415641644145",
05669  M01S00881.242l642 +++|    O"41624040415141564160",
05670  M01S00882.242l642 +++|    O"41654164000000000000"];
05671  M01S00883.242l642 +++|  END
05672  M01S00884.242l642 +++|
05673  M01S00885.242l642 +++|ARRAY FUNMESS[0:5] P(1);
05674  M01S00886.242l642 +++|  BEGIN                              # PLEASE PRESS FUNCTION KEY #
05675  M01S00887.242l642 +++|  ITEM FUNMESSAGE U(00,00,60) = [
05676  M01S00888.242l642 +++|    O"40404040412041544145",
05677  M01S00889.242l642 +++|    O"41414163414540404160",
05678  M01S00890.242l642 +++|    O"41624145416341634040",
05679  M01S00891.242l642 +++|    O"41464165415641434164",
05680  M01S00892.242l642 +++|    O"41514157415640404153",
05681  M01S00893.242l642 +++|    O"41454171000000000000"];
05682  M01S00894.242l642 +++|  END
05683  M01S00895.242l642 +++|*ENDIF
05684  M00S03639.sform   +++|
05685  M00S03640.sform   +++|BASED ARRAY MESSNAME [0:0] P(1);     # MESSAGE STRING #
05686  M00S03641.sform   +++|  BEGIN
05687  M00S03642.sform   +++|  ITEM MESSWORD   U(00,00,60);       # MESSAGE WORD #
05688  M00S03643.sform   +++|  END
05689  M00S03644.sform   +++|
05690  M00S03645.sform   +++|SWITCH JUMPCASE:MESSSTAT
05691  M00S03646.sform   +++|       JUMPHELP:HELP,                # SMF OR USER HELP #
05692  M00S03647.sform   +++|       JUMPCONF:CONFIRM,             # PLEASE CONFIRM #
05693  M00S03648.sform   +++|       JUMPRENT:REENTER;             # PLEASE RENTER INPUT #
05694  M00S03649.sform   +++|
Line S03650 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05695  M01S03650.242l642 ---|VDTBOO;
05696  M00S03651.sform   ---|MCLEAN(MCOUNT,MSGFIT);               # CLEAN MESSAGE AREA #
05697  M00S03652.sform   ---|
05698  M00S03653.sform   ---|GOTO JUMPCASE[MESSNUM];              # ISSUE MESSAGE #
05699  M00S03654.sform   ---|
05700  M00S03655.sform   ---|JUMPHELP:                            # PRINT HELP MESSAGE #
05701  M00S03656.sform   ---|
05702  M00S03657.sform   ---|  IF FLDIND NQ -1 THEN
05703  M00S03658.sform   ---|    BEGIN                            # IF INPUT FIELD #
05704  M00S03659.sform   ---|    VARIND = FLDVARORD[FLDIND];
05705  M00S03660.sform   ---|    IF VARHSOS[VARIND] NQ 0 THEN
05706  M00S03661.sform   ---|      BEGIN                          # IF USER HELP MESSAGE DEFINED #
05707  M00S03662.sform   ---|      P<MESSNAME> = LOC(RECWORDU[0])+ VARHSOS[VARIND];
05708  M00S03663.sform   ---|      END
05709  M00S03664.sform   ---|    ELSE
05710  M00S03665.sform   ---|      BEGIN                          # NO USER HELP MESSAGE DEFINED #
05711  M00S03666.sform   ---|      MSGFIT = TRUE;                 # SMF MESSAGE WILL FIT #
05712  M00S03667.sform   ---|      IF NOT FLDENTERED[FLDIND] THEN
05713  M00S03668.sform   ---|        BEGIN                        # IF DATA NOT ENTERED IN FIELD #
05714  M00S03669.sform   ---|        P<MESSNAME> = LOC(DEFMESSAGE[0]);  # *PLEASE ENTER* #
05715  M00S03670.sform   ---|        END
05716  M00S03671.sform   ---|      ELSE
05717  M00S03672.sform   ---|        BEGIN                        # DATA ENTERED IN FIELD #
05718  M00S03673.sform   ---|        P<MESSNAME> = LOC(CORMESSAGE[0]);  # *PLEASE CORRECT* #
05719  M00S03674.sform   ---|        END
05720  M00S03675.sform   ---|      END
05721  M00S03676.sform   ---|    END
05722  M00S03677.sform   ---|  ELSE
05723  M00S03678.sform   ---|    BEGIN                            # NO INPUT FIELD #
05724  M00S03679.sform   ---|    MSGFIT = TRUE;                   # SMF MESSAGE WILL FIT #
05725  M00S03680.sform   ---|    P<MESSNAME> = LOC(FUNMESSAGE[0]);  # *PLEASE PRESS FUNCTION KEY* #
05726  M00S03681.sform   ---|    END
Line S03682 Modification History
M01 (Removed by) ns2231
Seq #  *Modification Id* Act 
----------------------------+
05727  M01S03682.ns2231  ---|  TERHELPREQ[0] = FALSE;     # XYZ # # HELP REQUEST HONORED #
Line S00003 Modification History
M01 (Added by) ns2231
Seq #  *Modification Id* Act 
----------------------------+
05728  M01S00003.ns2231  +++|  TERHELPREQ[0] = FALSE;             # HELP REQUEST HONORED #
05729  M00S03683.sform   +++|  GOTO PRINTMSG;
05730  M00S03684.sform   +++|
05731  M00S03685.sform   +++|JUMPRENT:
05732  M00S03686.sform   +++|
05733  M00S03687.sform   +++|  MSGFIT = TRUE;                     # SMF MESSAGE WILL FIT #
05734  M00S03688.sform   +++|  P<MESSNAME> = LOC(ERRMESSAGE[0]);  # *PLEASE REENTER INPUT* #
05735  M00S03689.sform   +++|  GOTO PRINTMSG;
05736  M00S03690.sform   +++|
05737  M00S03691.sform   +++|JUMPCONF:
05738  M00S03692.sform   +++|
05739  M00S03693.sform   +++|  MSGFIT = TRUE;                     # SMF MESSAGE WILL FIT #
05740  M00S03694.sform   +++|  IF FLDIND NQ -1 THEN
05741  M00S03695.sform   +++|    BEGIN                            # IF INPUT FIELD #
05742  M00S03696.sform   +++|    P<MESSNAME> = LOC(CONMESSAGE[0]);  # *PLEASE CONFIRM* #
05743  M00S03697.sform   +++|    END
05744  M00S03698.sform   +++|  ELSE
05745  M00S03699.sform   +++|    BEGIN                            # NO INPUT FIELD #
05746  M00S03700.sform   +++|    P<MESSNAME> = LOC(FUNMESSAGE[0]);  # *PLEASE PRESS FUNCTION KEY* #
05747  M00S03701.sform   +++|    END
05748  M00S03702.sform   +++|
05749  M00S03703.sform   +++|PRINTMSG:                            # PRINT MESSAGE #
05750  M00S03704.sform   +++|
Line S00003 Modification History
M01 (Added by) sform5
Seq #  *Modification Id* Act 
----------------------------+
05751  M01S00003.sform5  +++|  VDTPOS(0,0);                       # POSITION TO MESSAGE LINE #
05752  M00S03705.sform   +++|  IF MSGFIT THEN
05753  M00S03706.sform   +++|    BEGIN                            # IF MESSAGE WILL FIT #
05754  M00S03707.sform   +++|    VDTSTR(MESSNAME);                # PRINT ENTIRE MESSAGE #
05755  M00S03708.sform   +++|    END
05756  M00S03709.sform   +++|  ELSE
05757  M00S03710.sform   +++|    BEGIN                            # TRUNCATE AS NEEDED #
Line S03711 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05758  M01S03711.242l642 ---|    CINDEX = 2;                      # SKIP 0007 BYTE #
Line S00896 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05759  M01S00896.242l642 +++|    CONTROL IFEQ QTRMV,0;            # IF NOT QTRM VARIANT #
05760  M01S00897.242l642 +++|      CINDEX = 2;                    # SKIP 0007 BYTE #
05761  M01S00898.242l642 +++|   CONTROL FI;                       # END OF IF NOT QTRM #
05762  M01S00899.242l642 +++|   CONTROL IFEQ QTRMV,1;             # IF QTRM VARIANT #
05763  M01S00900.242l642 +++|     CINDEX = 0;                     # START AT BEGINNING OF LINE #
05764  M01S00901.242l642 +++|   CONTROL FI;                       # END OF IF QTRM #
05765  M00S03712.sform   +++|    WINDEX = 0;
05766  M00S03713.sform   +++|    MESCHR = C<CINDEX,2>MESSWORD[WINDEX];
05767  M00S03714.sform   +++|    FOR I = 0 STEP 1 WHILE MESCHR NQ 0 AND I LQ MCOUNT DO
05768  M00S03715.sform   +++|      BEGIN                          # WRITE MESSAGE #
05769  M00S03716.sform   +++|      VDTCHR(MESCHR);
05770  M00S03717.sform   +++|      CINDEX = CINDEX + 2;
05771  M00S03718.sform   +++|      IF CINDEX GQ 10 THEN
05772  M00S03719.sform   +++|        BEGIN                        # IF WORD EXHAUSTED #
05773  M00S03720.sform   +++|        CINDEX = 0;                  # RESET CHARACTER INDEX #
05774  M00S03721.sform   +++|        WINDEX = WINDEX + 1;         # GET NEXT WORD #
05775  M00S03722.sform   +++|        END
05776  M00S03723.sform   +++|      MESCHR = C<CINDEX,2>MESSWORD[WINDEX];
05777  M00S03724.sform   +++|      END
05778  M00S03725.sform   +++|    END
05779  M00S03726.sform   +++|
05780  M00S03727.sform   +++|  TERMESWRIT[0] = TRUE;              # MESSAGE WRITTEN #
05781  M00S03728.sform   +++|  TERMESREAD[0] = FALSE;             # MESSAGE NOT READ BY USER YET #
05782  M00S03729.sform   +++|
Line S03730 Modification History
M01 (Removed by) ns2346
Seq #  *Modification Id* Act 
----------------------------+
05783  M01S03730.ns2346  ---|  VDTCAA;                            # CLEAR ALL ATTRIBUTES #
Line S00012 Modification History
M01 (Added by) ns2346
M02 (Removed by) ns2356
Seq #  *Modification Id* Act 
----------------------------+
05784  M02S00012.ns2356  ---|  VDTSAM(0);                         # CLEAR ALL ATTRIBUTES #
Line S00009 Modification History
M01 (Added by) ns2356
Seq #  *Modification Id* Act 
----------------------------+
05785  M01S00009.ns2356  +++|  IF NOT TERBLCKMDE[0] THEN
05786  M01S00010.ns2356  +++|    BEGIN
05787  M01S00011.ns2356  +++|    VDTSAM(0);
05788  M01S00012.ns2356  +++|    END
05789  M01S00013.ns2356  +++|  ELSE
05790  M01S00014.ns2356  +++|    BEGIN
05791  M01S00015.ns2356  +++|    VDTSAM(O"6001");
05792  M01S00016.ns2356  +++|    END
Line S03731 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05793  M01S03731.242l642 ---|  VDTEOO;
05794  M00S03732.sform   ---|  CPANEL;                            # REWRITE SCREEN AS NEEDED #
05795  M00S03733.sform   ---|
05796  M00S03734.sform   ---|END  # PSTRNG #
05797  M00S03735.sform   ---|CONTROL EJECT;
05798  M00S03736.sform   ---|
05799  M00S03737.sform   ---|PROC READIN(FLDIND,COFFSET);
05800  M00S03738.sform   ---|
05801  M00S03739.sform   ---|# TITLE READIN - READ INPUT FROM TERMINAL. #
05802  M00S03740.sform   ---|
05803  M00S03741.sform   ---|BEGIN  # READIN #
05804  M00S03742.sform   ---|
05805  M00S03743.sform   ---|#
05806  M00S03744.sform   ---|**    READIN - READ INPUT FROM TERMINAL.
05807  M00S03745.sform   ---|*
05808  M00S03746.sform   ---|*     THIS PROCEDURE READS INPUT FROM THE TERMINAL AND STORES
05809  M00S03747.sform   ---|*     IT IN THE APPROPRIATE PLACE IN VARDATA.
05810  M00S03748.sform   ---|*
05811  M00S03749.sform   ---|*     PROC READIN(FLDIND,COFFSET)
05812  M00S03750.sform   ---|*
05813  M00S03751.sform   ---|*     ENTRY   FLDIND     = INDEX OF FIELD FOR STARTING CURSOR POSITION.
05814  M00S03752.sform   ---|*             COFFSET    = CURSOR OFFSET IN FIELD.
05815  M00S03753.sform   ---|*
05816  M00S03754.sform   ---|*     EXIT    FLDIND     = LAST FIELD ENTERED.
05817  M00S03755.sform   ---|*             VARDATA CONTAINS INPUT DATA.
05818  M00S03756.sform   ---|*
05819  M00S03757.sform   ---|*     CALLS   BFIELD, CPANEL, FFIELD, FUNKEY, PSTRNG, TABKEY, VDTBOI,
05820  M00S03758.sform   ---|*             VDTCOR, VDTEOO, VDTINP, VDTOUT, VDTPOS, WRIVCH.
05821  M00S03759.sform   ---|*
05822  M00S03760.sform   ---|*     USES    TERABNTERM, TERHELPFLD, TERHELPREQ, TERMESREAD,
05823  M00S03761.sform   ---|*             TERMISSINP, TERNRMTERM, TERPENDHLP, TERREWFLDS,
05824  M01S03762.242l642 ---|*             TERREWSCRN, TERSOFTPOS, TERSOFTTAB.
Line S00902 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05825  M01S00902.242l642 +++|*IF UNDEF,QTRM
05826  M01S00903.242l642 +++|*             TERREWSCRN, TERSOFTPOS, TERSOFTTAB.
05827  M01S00904.242l642 +++|*ELSE
05828  M01S00905.242l642 +++|*             TERREWSCRN, TERSOFTPOS, TERSOFTTAB, TERWAITINP.
05829  M01S00906.242l642 +++|*ENDIF
05830  M00S03763.sform   +++|#
05831  M00S03764.sform   +++|  ITEM FLDIND     I;                 # INDEX OF FIELD IN FLDLIST #
05832  M00S03765.sform   +++|  ITEM COFFSET    I;                 # CURSOR POSITION OFFSET #
05833  M00S03766.sform   +++|
05834  M00S03767.sform   +++|  ITEM CHAR       I;                 # VDT INPUT CHARACTER #
05835  M00S03768.sform   +++|  ITEM FIELD      I;                 # INDEX OF FIELD IN FLDLIST #
05836  M00S03769.sform   +++|  ITEM I          I;                 # LOOP COUNTER #
05837  M00S03770.sform   +++|  ITEM INPOS      U = 0;             # LINE AND COLUMN OF INPUT #
05838  M00S03771.sform   +++|  ITEM INPUTERROR B;                 # ERROR IN INPUT #
05839  M00S03772.sform   +++|  ITEM INSEARCH   B = FALSE;         # DO NOT INCLUDE OUT-ONLY FIELDS #
05840  M00S03773.sform   +++|  ITEM LASTFIELD  I;                 # LAST FIELD THAT RECEIVED INPUT #
05841  M00S03774.sform   +++|  ITEM LASTORD    I;                 # PREVIOUS INPUT ORDINAL #
05842  M00S03775.sform   +++|  ITEM LASTPOS    U = 0;             # LAST X AND Y POSITION #
05843  M00S03776.sform   +++|  ITEM OFFSET     I;                 # CHARACTER OFFSET WITHIN FIELD #
05844  M00S03777.sform   +++|  ITEM ORD        I;                 # VDT INPUT ORDINAL #
05845  M00S03778.sform   +++|  ITEM SKIPINP    B;                 # SKIP DATA TIL NEXT INPUT READ #
05846  M00S03779.sform   +++|  ITEM STARTFIELD I;                 # FIELD TO START SEARCH #
05847  M00S03780.sform   +++|  ITEM STARTPOS   I;                 # X/Y POSITION TO START SEARCH #
05848  M00S03781.sform   +++|  ITEM XPOS       I;                 # VDT INPUT COLUMN NUMBER #
05849  M00S03782.sform   +++|  ITEM YPOS       I;                 # VDT INPUT LINE NUMBER #
Line S03783 Modification History
M01 (Removed by) ns2231
Seq #  *Modification Id* Act 
----------------------------+
05850  M01S03783.ns2231  ---|  ITEM ZZZGKEY    I;                 # SYMPL IS CONFUSED #
05851  M01S03784.ns2231  ---|  ITEM ZZZNEXT    I;                 # SYMPL IS CONFUSED #
05852  M00S03785.sform   ---|
05853  M00S03786.sform   ---|  SWITCH INPUTTYPE:SCREENST          # VDT INPUT ORDINALS #
Line S03787 Modification History
M01 (Removed by) ns2641
Seq #  *Modification Id* Act 
----------------------------+
05854  M01S03787.ns2641  ---|    CONTINUE   : RESERV1,            # RESERVED #
Line S00001 Modification History
M01 (Added by) ns2641
Seq #  *Modification Id* Act 
----------------------------+
05855  M01S00001.ns2641  +++|    CONTINUE   : CLRALL,             # CLEAR ALL TABS - IGNORED #
05856  M00S03788.sform   +++|    CHARACTER  : CHAR,               # OVERSTRIKE CHARACTER #
05857  M00S03789.sform   +++|    INSERTCHAR : INSC,               # INSERT CHARACTER #
05858  M00S03790.sform   +++|    DELETECHAR : DELC,               # DELETE CHARACTER #
05859  M00S03791.sform   +++|    INSERTLINE : INSL,               # INSERT LINE #
05860  M00S03792.sform   +++|    DELETELINE : DELL,               # DELETE LINE #
05861  M00S03793.sform   +++|    CLEARPAGE  : CLRPAG,             # CLEAR PAGE #
Line S03794 Modification History
M01 (Removed by) ns2453
Seq #  *Modification Id* Act 
----------------------------+
05862  M01S03794.ns2453  ---|    CONTINUE   : CLREOP,             # CLEAR TO END OF PAGE #
Line S00001 Modification History
M01 (Added by) ns2453
Seq #  *Modification Id* Act 
----------------------------+
05863  M01S00001.ns2453  +++|    CLEARPAGE  : CLREOP,             # CLEAR TO END OF PAGE #
05864  M00S03795.sform   +++|    CLEARPAGE  : CLRUNP,             # CLEAR UNPROTECTED #
05865  M00S03796.sform   +++|    CLEAREOL   : CLREOL,             # CLEAR TO END OF LINE #
05866  M00S03797.sform   +++|    CONTINUE   : POS,                # POSITION CURSOR #
Line S03798 Modification History
M01 (Removed by) sform9
Seq #  *Modification Id* Act 
----------------------------+
05867  M01S03798.sform9  ---|    CONTINUE   : HOME,               # POSITION HOME #
Line S00003 Modification History
M01 (Added by) sform9
Seq #  *Modification Id* Act 
----------------------------+
05868  M01S00003.sform9  +++|    HOMEKEY    : HOME,               # POSITION HOME #
05869  M00S03799.sform   +++|    CONTINUE   : UP,                 # CURSOR UP #
05870  M00S03800.sform   +++|    CONTINUE   : DOWN,               # CURSOR DOWN #
Line S03801 Modification History
M01 (Removed by) sform9
Seq #  *Modification Id* Act 
----------------------------+
05871  M01S03801.sform9  ---|    CONTINUE   : LEFT,               # CURSOR LEFT #
05872  M01S03802.sform9  ---|    CONTINUE   : RIGHT,              # CURSOR RIGHT #
Line S00004 Modification History
M01 (Added by) sform9
Seq #  *Modification Id* Act 
----------------------------+
05873  M01S00004.sform9  +++|    LEFTKEY    : LEFT,               # CURSOR LEFT #
05874  M01S00005.sform9  +++|    RIGHTKEY   : RIGHT,              # CURSOR RIGHT #
05875  M00S03803.sform   +++|    FORWARDTAB : FTAB,               # TAB FORWARD #
05876  M00S03804.sform   +++|    BACKWRDTAB : BTAB,               # TAB BACKWARD #
05877  M00S03805.sform   +++|    CONTINUE   : RET,                # RETURN #
05878  M00S03806.sform   +++|    ERASECHAR  : ERAC,               # ERASE CHARACTER #
05879  M00S03807.sform   +++|    ERASELINE  : ERAL,               # ERASE LINE #
05880  M00S03808.sform   +++|    ENDOFINPUT : EOI,                # END OF INFORMATION #
05881  M00S03809.sform   +++|    CONTINUE   : RESET,              # RESET #
05882  M00S03810.sform   +++|    APPLICFUN  : FKEY,               # FUNCTION KEY #
05883  M00S03811.sform   +++|    GENERICFUN : GKEY,               # GENERIC KEY #
05884  M00S03812.sform   +++|    BADINPUT   : BAD,                # BAD #
05885  M00S03813.sform   +++|    CONTINUE   : NOOP,               # NOOP #
05886  M00S03814.sform   +++|    CONTINUE   : COORD,              # COORDINATES #
05887  M00S03815.sform   +++|    CONTINUE   : PROTECT,            # PROTECT ALL #
Line S03816 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05888  M01S03816.242l642 ---|    CONTINUE   : RESERV2,            # RESERVED #
Line S00907 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05889  M01S00907.242l642 +++|    NEWFIELD   : STRTFLD,            # START OF NEW FIELD #
Line S03817 Modification History
M01 (Removed by) ns2641
Seq #  *Modification Id* Act 
----------------------------+
05890  M01S03817.ns2641  ---|    CONTINUE   : RESERV3,            # RESERVED #
05891  M01S03818.ns2641  ---|    CONTINUE   : RESERV4;            # RESERVED #
Line S00002 Modification History
M01 (Added by) ns2641
Seq #  *Modification Id* Act 
----------------------------+
05892  M01S00002.ns2641  +++|    CONTINUE   : CLRTAB,             # CLEAR TAB STOP - IGNORED #
05893  M01S00003.ns2641  +++|    CONTINUE   : SETTAB;             # SET TAB STOP - IGNORED #
05894  M00S03819.sform   +++|
05895  M00S03820.sform   +++|INPOS = 0;
05896  M00S03821.sform   +++|FIELD = FLDIND;
05897  M00S03822.sform   +++|LASTFIELD = FLDIND;
05898  M00S03823.sform   +++|INPUTERROR = FALSE;
Line S03824 Modification History
M01 (Removed by) ns2231
Seq #  *Modification Id* Act 
----------------------------+
05899  M01S03824.ns2231  ---|TERHELPREQ[0] = FALSE;               # XYZ #
Line S00004 Modification History
M01 (Added by) ns2231
Seq #  *Modification Id* Act 
----------------------------+
05900  M01S00004.ns2231  +++|TERHELPREQ[0] = FALSE;
05901  M00S03825.sform   +++|
Line S00908 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05902  M01S00908.242l642 +++|*IF DEF,QTRM
05903  M01S00909.242l642 +++|IF TERWAITINP[0] THEN
05904  M01S00910.242l642 +++|  BEGIN                              # IF INPUT RECEIVED #
05905  M01S00911.242l642 +++|  TERWAITINP[0] = FALSE;             # CLEAR FLAG #
05906  M01S00912.242l642 +++|  GOTO DOREAD1;                      # CONTINUE #
05907  M01S00913.242l642 +++|  END
05908  M01S00914.242l642 +++|
05909  M01S00915.242l642 +++|*ENDIF
05910  M00S03826.sform   +++|DOREAD:                              # READ INPUT FROM TERMINAL #
05911  M00S03827.sform   +++|
Line S00004 Modification History
M01 (Added by) sform5
Seq #  *Modification Id* Act 
----------------------------+
05912  M01S00004.sform5  +++|  ORD = SCREENST"EOI";               # SET LAST ORDINAL TO EOI #
Line S03828 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05913  M01S03828.242l642 ---|  SOFTTAB = 0;                       # NUMBER OF SOFT TABS PENDING #
Line S00916 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05914  M01S00916.242l642 +++|  TERSOFTTAB[0] = 0;                 # NUMBER OF SOFT TABS PENDING #
05915  M00S03829.sform   +++|  SKIPINP = FALSE;
05916  M00S03830.sform   +++|  TERMISSINP[0] = FALSE;
05917  M00S03831.sform   +++|
05918  M00S03832.sform   +++|  IF INPUTERROR THEN
05919  M00S03833.sform   +++|    BEGIN                            # BAD INPUT #
05920  M00S03834.sform   +++|    PSTRNG(DUMMY,MESSSTAT"REENTER");
05921  M00S03835.sform   +++|    INPUTERROR = FALSE;
05922  M00S03836.sform   +++|    END
05923  M00S03837.sform   +++|  ELSE
05924  M00S03838.sform   +++|    BEGIN                            # NO INPUT ERROR #
05925  M00S03839.sform   +++|    IF TERHELPREQ[0] THEN
05926  M00S03840.sform   +++|      BEGIN                          # HELP REQUESTED FOR FIELD #
05927  M00S03841.sform   +++|      PSTRNG(TERHELPFLD[0],MESSSTAT"HELP");
Line S03842 Modification History
M01 (Removed by) ns2231
Seq #  *Modification Id* Act 
----------------------------+
05928  M01S03842.ns2231  ---|      TERHELPREQ[0] = FALSE;         # XYZ #
05929  M00S03843.sform   ---|      FIELD = TERHELPFLD[0];
05930  M00S03844.sform   ---|      END
05931  M00S03845.sform   ---|    ELSE
05932  M00S03846.sform   ---|      BEGIN                          # NO HELP REQUESTED #
05933  M00S03847.sform   ---|      CPANEL;                        # REWRITE SCREEN AS NEEDED #
05934  M00S03848.sform   ---|      END
05935  M00S03849.sform   ---|    END
05936  M00S03850.sform   ---|
05937  M00S03851.sform   ---|  IF VALIDFIELD THEN
05938  M00S03852.sform   ---|    BEGIN                            # VALID FIELD #
05939  M00S03853.sform   ---|    XPOS = COFFSET + FLDXCORD[FIELD];
05940  M00S03854.sform   ---|    YPOS = FLDYCORD[FIELD];
05941  M00S03855.sform   ---|    END
05942  M00S03856.sform   ---|  ELSE
05943  M00S03857.sform   ---|    BEGIN                            # INVALID FIELD #
05944  M00S03858.sform   ---|    XPOS = 0;
05945  M00S03859.sform   ---|    YPOS = 0;
05946  M00S03860.sform   ---|    END
05947  M00S03861.sform   ---|  VDTPOS(XPOS,YPOS);                 # POSITION CURSOR #
05948  M00S03862.sform   ---|  VDTEOO;
Line S00917 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05949  M01S00917.242l642 +++|*IF DEF,QTRM
05950  M01S00918.242l642 +++|  TERWAITINP[0] = TRUE;              # SET WAITING FOR INPUT #
05951  M01S00919.242l642 +++|  NIT$RC = 23;                       # SET RETURN CODE #
05952  M01S00920.242l642 +++|  RETURN;                            # RETURN #
05953  M01S00921.242l642 +++|
05954  M01S00922.242l642 +++|DOREAD1:                             # CONTINUE AFTER QTRM INPUT #
05955  M01S00923.242l642 +++|
05956  M01S00924.242l642 +++|*ENDIF
Line S03863 Modification History
M01 (Removed by) sform5
Seq #  *Modification Id* Act 
----------------------------+
05957  M01S03863.sform5  ---|  VDTBOI(ORD);                       # READ INPUT #
05958  M01S03864.sform5  ---|  IF ORD NQ 0 THEN
Line S00005 Modification History
M01 (Added by) sform5
Seq #  *Modification Id* Act 
----------------------------+
05959  M01S00005.sform5  +++|  VDTBOI(LASTORD);                   # CHECK FOR TYPE AHEAD #
Line S00925 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05960  M01S00925.242l642 +++|  VDTBOO;                            # BEGIN OUTPUT SEQUENCE #
Line S00006 Modification History
M01 (Added by) sform5
Seq #  *Modification Id* Act 
----------------------------+
05961  M01S00006.sform5  +++|  IF LASTORD NQ 0 THEN
05962  M00S03865.sform   +++|    BEGIN                            # TYPE AHEAD WAS ENTERED #
05963  M00S03866.sform   +++|    PSTRNG(FIELD,MESSSTAT"REENTER");  # PLEASE REENTER #
05964  M00S03867.sform   +++|    GOTO DOREAD;
05965  M00S03868.sform   +++|    END
05966  M00S03869.sform   +++|  COFFSET = 0;                       # OFFSET NO LONGER VALID #
05967  M00S03870.sform   +++|  TERMESREAD[0] = TRUE;              # MESSAGE HAS BEEN SEEN BY USER #
05968  M00S03871.sform   +++|  TERNRMTERM[0] = FALSE;
05969  M00S03872.sform   +++|  TERABNTERM[0] = FALSE;
05970  M00S03873.sform   +++|
05971  M00S03874.sform   +++|GETINP:                              # WHILE STILL LOOKING FOR INPUT #
05972  M00S03875.sform   +++|
Line S03876 Modification History
M01 (Removed by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
05973  M01S03876.252l678 ---|  YMASKOF LASTPOS = YPOS;            # RETAIN PREVIOUS Y POSITION #
05974  M01S03877.252l678 ---|  XMASKOF LASTPOS = XPOS;            # RETAIN PREVIOUS X POSITION #
Line S00140 Modification History
M01 (Added by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
05975  M01S00140.252l678 +++|  YMASKOF TERPREVPOS = YPOS;         # RETAIN PREVIOUS Y POSITION #
05976  M01S00141.252l678 +++|  XMASKOF TERPREVPOS = XPOS;         # RETAIN PREVIOUS X POSITION #
05977  M00S03878.sform   +++|  LASTORD = ORD;                     # RETAIN PREVIOUS ORDINAL #
05978  M00S03879.sform   +++|  VDTINP(ORD,XPOS,YPOS,CHAR,DUMMY);  # GET INPUT FROM BUFFER #
Line S00926 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05979  M01S00926.242l642 +++|
05980  M01S00927.242l642 +++|SKIPREAD:
05981  M01S00928.242l642 +++|
05982  M00S03880.sform   +++|  YMASKOF INPOS = YPOS;
05983  M00S03881.sform   +++|  XMASKOF INPOS = XPOS;
05984  M00S03882.sform   +++|  FFIELD(INPOS,FIELD,OFFSET,INSEARCH);  # FIND INPUT FIELD #
05985  M00S03883.sform   +++|  IF VALIDFIELD THEN LASTFIELD = FIELD;  # UPDATE LAST FIELD #
05986  M00S03884.sform   +++|
05987  M00S03885.sform   +++|  GOTO INPUTTYPE[ORD];               # PROCESS INPUT BY TYPE #
05988  M00S03886.sform   +++|
05989  M00S03887.sform   +++|CHARACTER:                           # DISPLAYABLE CHARACTER INPUT #
05990  M00S03888.sform   +++|
Line S03889 Modification History
M01 (Removed by) sform9
Seq #  *Modification Id* Act 
----------------------------+
05991  M01S03889.sform9  ---| IF NOT VALIDFIELD AND TERTABAUTO[0] THEN
05992  M01S03890.sform9  ---|   BEGIN                             # INPUT NOT IN FIELD AND AUTOTAB #
05993  M01S03891.sform9  ---|   TABKEY(SCREENST"FTAB",INPOS,FIELD,INPOS);  # SIMULATE TAB KEY #
05994  M01S03892.sform9  ---|   IF (INPOS EQ 0) AND NOT TERTABHOME[0] THEN
05995  M01S03893.sform9  ---|     BEGIN                           # IF TAB DOES NOT STOP AT HOME #
05996  M01S03894.sform9  ---|     TABKEY(SCREENST"FTAB",INPOS,FIELD,INPOS);
05997  M01S03895.sform9  ---|     END
05998  M01S03896.sform9  ---|   YPOS = YMASKOF INPOS;             # RESET INTERNAL POSITION #
05999  M01S03897.sform9  ---|   XPOS = XMASKOF INPOS;
06000  M01S03898.sform9  ---|   VDTCOR(YPOS,XPOS);
06001  M01S03899.sform9  ---|   END
06002  M01S03900.sform9  ---|
Line S03901 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
06003  M01S03901.242l642 ---|  IF (NOT SKIPINP) AND (SOFTTAB EQ 0) THEN
Line S00929 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
06004  M01S00929.242l642 +++|  IF (NOT SKIPINP) AND (TERSOFTTAB[0] EQ 0) THEN
06005  M00S03902.sform   +++|    BEGIN                            # PROCESS CHARACTER #
Line S00006 Modification History
M01 (Added by) sform24
Seq #  *Modification Id* Act 
----------------------------+
06006  M01S00006.sform24 +++|    IF NOT VALIDFIELD THEN
06007  M01S00007.sform24 +++|      BEGIN                          # CHAR NOT IN AN INPUT FIELD #
06008  M01S00008.sform24 +++|      IF TERTABAUTO[0] AND NOT TERNOINVRS[0] THEN
06009  M01S00009.sform24 +++|        BEGIN                        # IF AUTOMATIC TABBING #
06010  M01S00010.sform24 +++|        TABKEY(SCREENST"FTAB",INPOS,FIELD,INPOS);
06011  M01S00011.sform24 +++|        IF INPOS EQ 0 AND NOT TERTABHOME[0] THEN
06012  M01S00012.sform24 +++|          BEGIN                      # IF TAB DOES NOT STOP AT HOME #
06013  M01S00013.sform24 +++|          TABKEY(SCREENST"FTAB",INPOS,FIELD,INPOS);
06014  M01S00014.sform24 +++|          END
06015  M01S00015.sform24 +++|        OFFSET = 0;                  # CLEAR FIELD OFFSET #
06016  M01S00016.sform24 +++|        LASTFIELD = FIELD;           # UPDATE LAST VALID FIELD #
06017  M01S00017.sform24 +++|        XPOS = XMASKOF INPOS;        # RESET INTERNAL POSITION #
06018  M01S00018.sform24 +++|        YPOS = YMASKOF INPOS;
06019  M01S00019.sform24 +++|        VDTCOR(YPOS,XPOS);
06020  M01S00020.sform24 +++|        END
06021  M01S00021.sform24 +++|      END
06022  M00S03903.sform   +++|    IF VALIDFIELD THEN
06023  M00S03904.sform   +++|      BEGIN                          # CHAR IN AN INPUT FIELD #
06024  M00S03905.sform   +++|      WRIVCH(FIELD,OFFSET,CHAR);     # WRITE CHARACTER INTO VARDATA #
06025  M00S03906.sform   +++|      FLDENTERED[FIELD] = TRUE;
06026  M00S03907.sform   +++|      FLDVALID[FIELD] = FALSE;       # INVALID UNTIL PROVEN VALID #
06027  M00S03908.sform   +++|      IF NOT FLDOUTPUTV[FIELD] THEN
06028  M00S03909.sform   +++|        BEGIN                        # IF INPUT ONLY FIELD #
06029  M00S03910.sform   +++|        IF NOT TERGUARDMD[0] THEN
06030  M00S03911.sform   +++|          BEGIN                      # IF NO GUARD MODE AVAILABLE #
06031  M00S03912.sform   +++|          FLDREWRITE[FIELD] = TRUE;  # SET REWRITE BIT FOR FIELD #
06032  M00S03913.sform   +++|          TERREWFLDS[0] = TRUE;
06033  M00S03914.sform   +++|          END
06034  M00S03915.sform   +++|        END
Line S00006 Modification History
M01 (Added by) sform9
Seq #  *Modification Id* Act 
----------------------------+
06035  M01S00006.sform9  +++|      IF TERTABAUTO[0] THEN
06036  M01S00007.sform9  +++|        BEGIN                        # IF AUTOMATIC TABBING #
06037  M01S00008.sform9  +++|        IF OFFSET EQ FLDLENGTH[FIELD] - 1 THEN
06038  M01S00009.sform9  +++|          BEGIN                      # IF AUTO-TAB TO NEXT FIELD #
06039  M01S00010.sform9  +++|          TABKEY(SCREENST"FTAB",INPOS,FIELD,INPOS);
Line S00011 Modification History
M01 (Added by) sform9
M02 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
06040  M02S00011.242l642 ---|          IF INPOS EQ 0 AND NOT TERTABHOME[0] THEN
06041  M02S00012.242l642 ---|            BEGIN                    # IF TAB DOES NOT STOP AT HOME #
06042  M02S00013.242l642 ---|            TABKEY(SCREENST"FTAB",INPOS,FIELD,INPOS);
Line S00930 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
06043  M01S00930.242l642 +++|          IF INPOS EQ 0 THEN
06044  M01S00931.242l642 +++|            BEGIN                    # IF TABBING PAST LAST FIELD #
06045  M01S00932.242l642 +++|            IF TERPTDWFPG[0] THEN
06046  M01S00933.242l642 +++|              BEGIN                  # IF NO WRAP AROUND SCREEN #
06047  M01S00934.242l642 +++|              TABKEY(SCREENST"BTAB",INPOS,FIELD,INPOS);
06048  M01S00935.242l642 +++|              OFFSET = FLDLENGTH[FIELD] - 1;
06049  M01S00936.242l642 +++|              INPOS = INPOS + OFFSET;
06050  M01S00937.242l642 +++|              END
06051  M01S00938.242l642 +++|            ELSE
06052  M01S00939.242l642 +++|              BEGIN                  # WRAPPING TO FIRST FIELD #
06053  M01S00940.242l642 +++|              IF NOT TERTABHOME[0] THEN
06054  M01S00941.242l642 +++|                BEGIN                # IF TAB DOES NOT STOP AT HOME #
06055  M01S00942.242l642 +++|                TABKEY(SCREENST"FTAB",INPOS,FIELD,INPOS);
06056  M01S00943.242l642 +++|                END
06057  M01S00944.242l642 +++|              OFFSET = 0;
06058  M01S00945.242l642 +++|              END
Line S00014 Modification History
M01 (Added by) sform9
Seq #  *Modification Id* Act 
----------------------------+
06059  M01S00014.sform9  +++|            END
06060  M01S00015.sform9  +++|          OFFSET = 0;                # CLEAR FIELD OFFSET #
06061  M01S00016.sform9  +++|          LASTFIELD = FIELD;         # UPDATE LAST VALID FIELD #
06062  M01S00017.sform9  +++|          INPOS = INPOS - 1;         # RESET INTERNAL POSITION #
06063  M01S00018.sform9  +++|          YPOS = YMASKOF INPOS;
06064  M01S00019.sform9  +++|          XPOS = XMASKOF INPOS;
06065  M01S00020.sform9  +++|          VDTCOR(YPOS,XPOS);
06066  M01S00021.sform9  +++|          END
06067  M01S00022.sform9  +++|        END
06068  M00S03916.sform   +++|      END
06069  M00S03917.sform   +++|    ELSE
06070  M00S03918.sform   +++|      BEGIN                          # CHAR NOT IN AN INPUT FIELD #
Line S03919 Modification History
M01 (Removed by) sform9
Seq #  *Modification Id* Act 
----------------------------+
06071  M01S03919.sform9  ---|      IF CHAR NQ BLANK THEN
06072  M01S03920.sform9  ---|        BEGIN                        # IF CHARACTER IS NOT A BLANK #
06073  M01S03921.sform9  ---|        VDTPOS(XPOS,YPOS);           # ERASE CHARACTER #
Proceed to Part 4