User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:sform.003

Deck SFORM Part 003

49 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
04426  M01S00259.ns2605  +++|*     PROC MVA8A8(FROMCHAROS,TOCHAROS,FROMLENGTH,TOLENGTH,FILL)
04427  M01S02720.sform   +++|*
04428  M01S02721.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04429  M01S02722.sform   +++|*             FROMCHAROS = THE CHARACTER OFFSET INTO FROMSTRING.
04430  M01S02723.sform   +++|*             TOCHAROS   = THE CHARACTER OFFSET INTO TOSTRING.
Line S02724 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04431  M02S02724.ns2605  ---|*             SLENGTH    = LENGTH OF APPLICATION STRING IN SIX
Line S02725 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04432  M02S02725.ns2605  ---|*                          CHARACTERS.
04433  M01S00260.ns2605  +++|*             FROMLENGTH = LENGTH OF SOURCE FIELD.
04434  M01S00261.ns2605  +++|*             TOLENGTH   = LENGTH OF DESTINATION FIELD.
04435  M01S00262.ns2605  +++|*             FILL       = TRUE IF BLANK FILL REQUIRED.
04436  M01S02726.sform   +++|*
04437  M01S02727.sform   +++|*     EXIT    STRING MOVED.
04438  M01S02728.sform   +++|*
Line S02729 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04439  M02S02729.ns2605  ---|*     NOTES   SINCE ONE OF THE TWO STRINGS IS DEFINED IN THE APP-
Line S02730 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04440  M02S02730.ns2605  ---|*             LICATION PROGRAM AND THUS DOES NOT NECESSARILY START
Line S02731 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04441  M02S02731.ns2605  ---|*             ON A WORD BOUNDARY THE DATA MUST BE TRANSFERED SIX
Line S02732 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04442  M02S02732.ns2605  ---|*             BITS AT A TIME EVEN THOUGH IT IS TWELVE BIT ASCII8
Line S02733 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04443  M02S02733.ns2605  ---|*             CHARACTER DATA.  ALSO SLENGTH IS NOT THE NUMBER OF
Line S02734 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04444  M02S02734.ns2605  ---|*             CHARACTERS (SINCE THEY ARE TWELVE BITS EACH) BUT THE
Line S02735 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04445  M02S02735.ns2605  ---|*             NUMBER OF SIX BIT PARCELS TO MOVE.
04446  M01S00263.ns2605  +++|*     NOTE    THE FIELD LENGTHS SPECIFY THE NUMBER OF SIX-BIT PARCELS
04447  M01S00264.ns2605  +++|*             RATHER THAN THE NUMBER OF TWELVE-BIT CHARACTERS.
04448  M01S02736.sform   +++|#
04449  M01S02737.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROM STRING #
04450  M01S02738.sform   +++|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TO STRING #
Line S02739 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04451  M02S02739.ns2605  ---|ITEM SLENGTH    I;                   # LENGTH IN SIX BIT CHARACTERS #
04452  M01S00265.ns2605  +++|ITEM FROMLENGTH I;                   # FROM STRING LENGTH #
04453  M01S00266.ns2605  +++|ITEM TOLENGTH   I;                   # TO STRING LENGTH #
04454  M01S00267.ns2605  +++|ITEM FILL       B;                   # TRUE IF BLANK FILL REQUIRED #
04455  M01S02740.sform   +++|
04456  M01S02741.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S02742 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04457  M02S02742.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
04458  M01S02743.sform   +++|ITEM NUMCHARS   I;                   # NUMBER OF PARCELS TO MOVE #
04459  M01S00268.ns2605  +++|ITEM SPACE      I = BLANK;           # ASCII SPACE FOR BLANK FILL #
04460  M01S02744.sform   +++|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
Line S02745 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04461  M02S02745.sform8  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TO STRING #
04462  M01S02746.sform   +++|
04463  M01S02747.sform   +++|FROMINDEX = 0;                       # GET FIRST WORD FROM FROMSTRING #
Line S02748 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04464  M02S02748.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
04465  M01S02749.sform   +++|TOINDEX = 0;                         # SET TOSTRING INDEX #
Line S02750 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04466  M02S02750.ns2605  ---|IF SLENGTH GR PANNUMBYTE[0] * 2
Line S02751 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04467  M02S02751.ns2605  ---|   OR SLENGTH EQ 0 THEN
Line S02752 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04468  M02S02752.ns2605  ---|  BEGIN                              # IF STRING EXCEEDS VARDATA #
Line S02753 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04469  M02S02753.ns2605  ---|  SLENGTH = PANNUMBYTE[0] * 2;       # RESET NUMBER OF CHARS. TO MOVE #
Line S02754 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04470  M02S02754.ns2605  ---|  END
Line S02755 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04471  M02S02755.ns2605  ---|FOR NUMCHARS = 0 STEP 1 UNTIL SLENGTH - 1 DO
04472  M01S00269.ns2605  +++|IF TOLENGTH LS FROMLENGTH THEN FROMLENGTH = TOLENGTH;
04473  M01S00270.ns2605  +++|FOR NUMCHARS = 1 STEP 2 UNTIL FROMLENGTH DO
Line S02756 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04474  M02S02756.sform8  ---|  BEGIN                              # TRANSFER SIX BIT PARCELS #
Line S02757 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04475  M02S02757.sform8  ---|  B<6*TOCHAROS,6>TOWORD = B<6*FROMCHAROS,6>FROMWORD;
04476  M01S00002.sform8  +++|  BEGIN                              # TRANSFER SIX BIT PARCELS #
Line S00003 Modification History
M01 (Added by) sform8
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04477  M02S00003.ns2605  ---|  C<TOCHAROS,1>TOSTRIU[TOINDEX] =
Line S00004 Modification History
M01 (Added by) sform8
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04478  M02S00004.ns2605  ---|    C<FROMCHAROS,1>FROMSTRIU[FROMINDEX];
Line S02758 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04479  M02S02758.ns2605  ---|  FROMCHAROS = FROMCHAROS + 1;       # UPDATE FROMSTRING CHAR. OFFSET #
04480  M01S00271.ns2605  +++|  C<TOCHAROS,2>TOSTRIU[TOINDEX] =
04481  M01S00272.ns2605  +++|    C<FROMCHAROS,2>FROMSTRIU[FROMINDEX];
04482  M01S00273.ns2605  +++|  FROMCHAROS = FROMCHAROS + 2;       # INCREMENT FROMSTRING OFFSET #
04483  M01S02759.sform   +++|  IF FROMCHAROS EQ 10 THEN
04484  M01S02760.sform   +++|    BEGIN                            # IF FROMSTRING WORD IS EMPTY #
04485  M01S02761.sform   +++|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
04486  M01S02762.sform   +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
Line S02763 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04487  M02S02763.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX]; # GET NEXT WORD FROM FROMSTRING #
04488  M01S02764.sform   +++|    END
Line S02765 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04489  M02S02765.ns2605  ---|  TOCHAROS = TOCHAROS + 1;           # UPDATE TOSTRING CHAR. OFFSET #
04490  M01S00274.ns2605  +++|  TOCHAROS = TOCHAROS + 2;           # INCREMENT TOSTRING OFFSET #
04491  M01S02766.sform   +++|  IF TOCHAROS EQ 10 THEN
04492  M01S02767.sform   +++|    BEGIN                            # IF TOSTRING WORD IS FULL #
04493  M01S02768.sform   +++|    TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
Line S02769 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04494  M02S02769.sform8  ---|    TOSTRIU[TOINDEX] = TOWORD;       # STORE WORD INTO TOSTRING #
Line S02770 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04495  M02S02770.sform8  ---|    TOINDEX = TOINDEX + 1;           # UPDATE TOWORD INDEX #
04496  M01S00005.sform8  +++|    TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
Line S02771 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04497  M02S02771.sform8  ---|    END
Line S02772 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04498  M02S02772.sform8  ---|  END
Line S02773 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04499  M02S02773.sform8  ---|IF TOCHAROS NQ 0 THEN
Line S02774 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04500  M02S02774.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
Line S02775 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04501  M02S02775.sform8  ---|  FOR NUMCHARS = 0 STEP 1 UNTIL TOCHAROS -1 DO
Line S02776 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04502  M02S02776.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
Line S02777 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04503  M02S02777.sform8  ---|    B<6*NUMCHARS,6>TOSTRIU[TOINDEX] = B<6*NUMCHARS,6>TOWORD;
04504  M01S02778.sform   +++|    END
04505  M01S02779.sform   +++|  END
04506  M01S00275.ns2605  +++|WHYLE FILL AND FROMLENGTH LS TOLENGTH DO
04507  M01S00276.ns2605  +++|  BEGIN
04508  M01S00277.ns2605  +++|  TOLENGTH = TOLENGTH - 2;
04509  M01S00278.ns2605  +++|  C<TOCHAROS,2>TOSTRIU[TOINDEX] = B<48,12>SPACE;
04510  M01S00279.ns2605  +++|  TOCHAROS = TOCHAROS + 2;           # UPDATE TOSTRING OFFSET #
04511  M01S00280.ns2605  +++|  IF TOCHAROS EQ 10 THEN
04512  M01S00281.ns2605  +++|    BEGIN                            # IF TOSTRING WORD EXHAUSTED #
04513  M01S00282.ns2605  +++|    TOINDEX = TOINDEX + 2;           # UPDATE TOSTRING WORD INDEX #
04514  M01S00283.ns2605  +++|    TOCHAROS = 0;
04515  M01S00284.ns2605  +++|    END
04516  M01S00285.ns2605  +++|  END
04517  M01S02780.sform   +++|
04518  M01S02781.sform   +++|END  # MVA8A8 #
04519  M01S02782.sform   +++|CONTROL EJECT;
04520  M01S02783.sform   +++|
Line S02784 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04521  M02S02784.ns2605  ---|PROC MVASA8(STRINGOS,SLENGTH);
04522  M01S00286.ns2605  +++|PROC MVASA8(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL);
04523  M01S02785.sform   +++|
04524  M01S02786.sform   +++|# TITLE MVASA8 - MOVE AND TRANSLATE ASCII TO ASCII8. #
04525  M01S02787.sform   +++|
04526  M01S02788.sform   +++|BEGIN  # MVASA8 #
04527  M01S02789.sform   +++|
04528  M01S02790.sform   +++|#
04529  M01S02791.sform   +++|**    MVASA8 - MOVE AND TRANSLATE ASCII TO ASCII8.
04530  M01S02792.sform   +++|*
04531  M01S02793.sform   +++|*     THIS PROCEDURE MOVES THE CHARACTER DATA FROM OUTSTRING TO
04532  M01S02794.sform   +++|*     VARDATA BEFORE A WRITE, USING THE BASED ARRAYS FROMSTRING
04533  M01S02795.sform   +++|*     AND TOSTRING, TRANSLATING FROM ASCII TO ASCII8.
04534  M01S02796.sform   +++|*
Line S02797 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04535  M02S02797.ns2605  ---|*     PROC MVASA8(STRINGOS,SLENGTH)
04536  M01S00287.ns2605  +++|*     PROC MVASA8(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL)
04537  M01S02798.sform   +++|*
04538  M01S02799.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04539  M01S02800.sform   +++|*             STRINGOS   = THE CHARACTER OFFSET INTO OUTSTRING.
04540  M01S00288.ns2605  +++|*             VAROS      = THE CHARACTER OFFSET INTO VARDATA.
04541  M01S02801.sform   +++|*             SLENGTH    = OUTSTRING LENGTH IN SIX BIT CHARACTERS.
04542  M01S00289.ns2605  +++|*             NUMVDCHARS = NUMBER OF CHARACTERS IN VARDATA.
04543  M01S00290.ns2605  +++|*             FILL       = TRUE IF BLANK FILL REQUIRED.
04544  M01S02802.sform   +++|*
04545  M01S02803.sform   +++|*     EXIT    STRING MOVED AND TRANSLATED.
04546  M01S02804.sform   +++|*
Line S02805 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04547  M02S02805.ns2605  ---|*     NOTES   SINCE OUTSTRING IS DEFINED IN THE APPLICATION PROGRAM
Line S02806 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04548  M02S02806.ns2605  ---|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY
Line S02807 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04549  M02S02807.ns2605  ---|*             FROMCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
Line S02808 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04550  M02S02808.ns2605  ---|*             ALSO SLENGTH IS NOT NECESSARILY THE NUMBER OF CHARACTERS
04551  M01S00291.ns2605  +++|*     NOTE    SLENGTH IS NOT NECESSARILY THE NUMBER OF CHARACTERS
04552  M01S02809.sform   +++|*             (SINCE THEY CAN BE EITHER SIX OR TWELVE BITS LONG) BUT
04553  M01S02810.sform   +++|*             RATHER THE NUMBER OF SIX BIT PARCELS IN OUTSTRING.
04554  M01S02811.sform   +++|#
04555  M01S02812.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET / OUTSTRING #
04556  M01S02813.sform   +++|ITEM SLENGTH    I;                   # LENGTH IN SIX BIT CHARACTERS #
04557  M01S00292.ns2605  +++|ITEM VAROS      I;                   # CHARACTER OFFSET / VARDATA #
04558  M01S00293.ns2605  +++|ITEM NUMVDCHARS I;                   # NUMBER OF CHARS. IN VARDATA #
04559  M01S00294.ns2605  +++|ITEM FILL       B;                   # TRUE IF BLANK FILL REQUIRED #
04560  M01S02814.sform   +++|
04561  M01S02815.sform   +++|ITEM ASCIICHR   I;                   # HOLDS AN ASCII CHARACTER #
04562  M01S02816.sform   +++|ITEM ASCII8CHR  I;                   # HOLDS AN ASCII8 CHARACTER #
04563  M01S00006.sform8  +++|ITEM ESCAPECODE I;                   # ESCAPE CODE FOR 12 BIT CHARS. #
04564  M01S02817.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROMSTRING #
04565  M01S02818.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S02819 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04566  M02S02819.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
Line S02820 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04567  M02S02820.ns2605  ---|ITEM NUMVDCHARS I;                   # NUMBER OF CHARS. IN VARDATA #
04568  M01S02821.sform   +++|ITEM NUMOTCHARS I;                   # NUMBER OF CHARS. IN OUTSTRING #
04569  M01S00295.ns2605  +++|ITEM SPACE      I = BLANK;           # ASCII SPACE FOR BLANK FILL #
Line S02822 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04570  M02S02822.sform8  ---|ITEM ESCAPECODE I;                   # ESCAPE CODE FOR 12 BIT CHARS. #
04571  M01S02823.sform   +++|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TOSTRING #
04572  M01S02824.sform   +++|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
Line S02825 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04573  M02S02825.sform8  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TOSTRING #
04574  M01S02826.sform   +++|
04575  M01S02827.sform   +++|FROMINDEX = 0;                       # GET FIRST WORD FROM FROMSTRING #
Line S02828 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04576  M02S02828.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
04577  M01S02829.sform   +++|FROMCHAROS = STRINGOS;               # CHARACTER OFFSET IN FROMSTRING #
04578  M01S02830.sform   +++|TOINDEX = 0;                         # START AT BEGINNING OF VARDATA #
Line S02831 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04579  M02S02831.ns2605  ---|TOCHAROS = 0;
04580  M01S00296.ns2605  +++|TOCHAROS = VAROS;                    # CHARACTER OFFSET IN VARDATA #
04581  M01S02832.sform   +++|ESCAPECODE = 0;                      # CLEAR ESCAPE CODE #
Line S02833 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04582  M02S02833.ns2605  ---|NUMVDCHARS = PANNUMBYTE[0];          # SET VARDATA CHARACTER COUNT #
Line S02834 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04583  M02S02834.ns2605  ---|IF SLENGTH EQ 0 THEN
Line S02835 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04584  M02S02835.ns2605  ---|  BEGIN                              # IF ZERO OUTSTRING COUNT #
Line S02836 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04585  M02S02836.ns2605  ---|  NUMOTCHARS = PANNUMBYTE[0] * 2;    # ASSUME WORST CASE #
Line S02837 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04586  M02S02837.ns2605  ---|  END
Line S02838 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04587  M02S02838.ns2605  ---|ELSE
Line S02839 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04588  M02S02839.ns2605  ---|  BEGIN
Line S02840 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04589  M02S02840.ns2605  ---|  NUMOTCHARS = SLENGTH;              # SET NUMBER OF CHARACTERS #
Line S02841 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04590  M02S02841.ns2605  ---|  END
04591  M01S00297.ns2605  +++|IF SLENGTH GR NUMVDCHARS * 2 OR SLENGTH LQ 0 THEN
04592  M01S00298.ns2605  +++|  SLENGTH = NUMVDCHARS * 2;          # IF LENGTH ADJUSTMENT NEEDED #
Line S02842 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04593  M02S02842.ns2605  ---|WHYLE NUMOTCHARS NQ 0 AND NUMVDCHARS NQ 0 DO
04594  M01S00299.ns2605  +++|NUMOTCHARS = 0;                      # INITIALIZE LOOP #
04595  M01S00300.ns2605  +++|WHYLE NUMOTCHARS LS SLENGTH AND NUMVDCHARS GR 0 DO
04596  M01S02843.sform   +++|  BEGIN                              # TRANSLATE CHARACTERS #
Line S02844 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04597  M02S02844.ns2605  ---|  NUMOTCHARS = NUMOTCHARS - 1;       # DECREMENT OUTSTRING COUNT #
04598  M01S00301.ns2605  +++|  NUMOTCHARS = NUMOTCHARS + 1;       # INCREMENT OUTSTRING COUNT #
Line S02845 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04599  M02S02845.sform8  ---|  ASCIICHR = B<6*FROMCHAROS,6>FROMWORD;
04600  M01S00007.sform8  +++|  ASCIICHR = B<6*FROMCHAROS,6>FROMSTRIU[FROMINDEX];
04601  M01S02846.sform   +++|  FROMCHAROS = FROMCHAROS + 1;       # UPDATE FROMSTRING CHAR. OFFSET #
04602  M01S02847.sform   +++|  IF FROMCHAROS EQ 10 THEN
04603  M01S02848.sform   +++|    BEGIN                            # IF FROMSTRING WORD EXHAUSTED #
Line S02849 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04604  M02S02849.sform8  ---|    FROMINDEX = FROMINDEX + 1;       # GET NEXT WORD FROM FROMSTRING #
Line S02850 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04605  M02S02850.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX];
Line S02851 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04606  M02S02851.sform8  ---|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
04607  M01S00008.sform8  +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
04608  M01S00009.sform8  +++|    FROMCHAROS = 0;
04609  M01S02852.sform   +++|    END
04610  M01S02853.sform   +++|  IF ESCAPECODE NQ 0 THEN
04611  M01S02854.sform   +++|    BEGIN                            # IF HALF WAY THROUGH TWELVE BIT #
04612  M01S02855.sform   +++|    IF ESCAPECODE EQ 62 THEN
04613  M01S02856.sform   +++|      BEGIN                          # IF LOWER CASE ALPHABETIC #
04614  M01S02857.sform   +++|      ASCII8CHR = ASCIICHR + 96;
04615  M01S02858.sform   +++|      END
04616  M01S02859.sform   +++|    ELSE
04617  M01S02860.sform   +++|      BEGIN                          # IF SPECIAL ASCII CHARACTER #
04618  M01S02861.sform   +++|      ASCII8CHR = AS2A8[ASCIICHR];
04619  M01S02862.sform   +++|      END
04620  M01S02863.sform   +++|    ESCAPECODE = 0;                  # CLEAR ESCAPE CODE #
04621  M01S02864.sform   +++|    END
04622  M01S02865.sform   +++|  ELSE
04623  M01S02866.sform   +++|    BEGIN                            # IF SIX BIT ASCII CHARACTER #
04624  M01S02867.sform   +++|    IF ASCIICHR NQ 60 AND ASCIICHR NQ 62 THEN
04625  M01S02868.sform   +++|      BEGIN                          # IF NOT ESCAPE CODE #
04626  M01S02869.sform   +++|      ASCII8CHR = DC2A8[ASCIICHR];
04627  M01S02870.sform   +++|      END
04628  M01S02871.sform   +++|    ELSE
04629  M01S02872.sform   +++|      BEGIN
04630  M01S02873.sform   +++|      ESCAPECODE = ASCIICHR;         # SAVE ESCAPE CODE #
04631  M01S02874.sform   +++|      END
04632  M01S02875.sform   +++|    END
04633  M01S02876.sform   +++|  IF ESCAPECODE EQ 0 THEN
04634  M01S02877.sform   +++|    BEGIN                            # IF CHARACTER TO MOVE #
04635  M01S02878.sform   +++|    NUMVDCHARS = NUMVDCHARS - 1;     # DECREMENT VARDATA COUNT #
Line S02879 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04636  M02S02879.sform8  ---|    B<6*TOCHAROS,12>TOWORD = ASCII8CHR;
04637  M01S00010.sform8  +++|    B<6*TOCHAROS,12>TOSTRIU[TOINDEX] = ASCII8CHR;
04638  M01S02880.sform   +++|    TOCHAROS = TOCHAROS + 2;         # UPDATE TOSTRING CHAR. OFFSET #
04639  M01S02881.sform   +++|    IF TOCHAROS EQ 10 THEN
04640  M01S02882.sform   +++|      BEGIN                          # IF TOSTRING WORD IS FULL #
Line S02883 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04641  M02S02883.sform8  ---|      TOSTRIU[TOINDEX] = TOWORD;     # STORE NEXT WORD INTO TOSTRING #
Line S02884 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04642  M02S02884.sform8  ---|      TOINDEX = TOINDEX + 1;
04643  M01S00011.sform8  +++|      TOINDEX = TOINDEX + 1;         # UPDATE TOSTRING WORD INDEX #
04644  M01S02885.sform   +++|      TOCHAROS = 0;                  # RESET CHARACTER OFFSET #
04645  M01S02886.sform   +++|      END
Line S02887 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04646  M02S02887.sform8  ---|    END
Line S02888 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04647  M02S02888.sform8  ---|  END
Line S02889 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04648  M02S02889.sform8  ---|IF TOCHAROS NQ 0 THEN
Line S02890 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04649  M02S02890.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
Line S02891 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04650  M02S02891.sform8  ---|  FOR NUMVDCHARS = 0 STEP 2 UNTIL TOCHAROS - 2 DO
Line S02892 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04651  M02S02892.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
Line S02893 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04652  M02S02893.sform8  ---|    B<6*NUMVDCHARS,12>TOSTRIU[TOINDEX] = B<6*NUMVDCHARS,12>TOWORD;
04653  M01S02894.sform   +++|    END
04654  M01S02895.sform   +++|  END
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  M01S02896.sform   +++|
04667  M01S02897.sform   +++|END  # MVASA8 #
04668  M01S02898.sform   +++|CONTROL EJECT;
04669  M01S02899.sform   +++|
Line S02900 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04670  M02S02900.ns2605  ---|PROC MVA8AS(STRINGOS,SLENGTH);
04671  M01S00313.ns2605  +++|PROC MVA8AS(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL);
04672  M01S02901.sform   +++|
04673  M01S02902.sform   +++|# TITLE MVA8AS - MOVE AND TRANSLATE ASCII8 TO ASCII. #
04674  M01S02903.sform   +++|
04675  M01S02904.sform   +++|BEGIN  # MVA8AS #
04676  M01S02905.sform   +++|
04677  M01S02906.sform   +++|#
04678  M01S02907.sform   +++|**    MVA8AS - MOVE AND TRANSLATE ASCII8 TO ASCII.
04679  M01S02908.sform   +++|*
04680  M01S02909.sform   +++|*     THIS PROCEDURE MOVES THE CHARACTER DATA FROM VARDATA TO
04681  M01S02910.sform   +++|*     INSTRING AFTER A READ, USING THE BASED ARRAYS FROMSTRING
04682  M01S02911.sform   +++|*     AND TOSTRING, TRANSLATING FROM ASCII8 TO ASCII.
04683  M01S02912.sform   +++|*
Line S02913 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04684  M02S02913.ns2605  ---|*     PROC MVA8AS(STRINGOS,SLENGTH)
04685  M01S00314.ns2605  +++|*     PROC MVA8AS(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL)
04686  M01S02914.sform   +++|*
04687  M01S02915.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04688  M01S02916.sform   +++|*             STRINGOS   = THE CHARACTER OFFSET INTO INSTRING.
04689  M01S00315.ns2605  +++|*             VAROS      = THE CHARACTER OFFSET INTO VARDATA.
04690  M01S02917.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  M01S02918.sform   +++|*
04694  M01S02919.sform   +++|*     EXIT    STRING MOVED AND TRANSLATED.
04695  M01S02920.sform   +++|*
Line S02921 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04696  M02S02921.ns2605  ---|*     NOTES   SINCE INSTRING IS DEFINED IN THE APPLICATION PROGRAM
Line S02922 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
M03 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04697  M03S02922.ns2605  ---|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY
Line S02923 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
M03 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04698  M03S02923.ns2605  ---|*             FROMCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
Line S00012 Modification History
M01 (Added by) sform8
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04699  M02S00012.ns2605  ---|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY,
Line S00013 Modification History
M01 (Added by) sform8
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04700  M02S00013.ns2605  ---|*             TOCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
Line S02924 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04701  M02S02924.ns2605  ---|*             ALSO SLENGTH IS NOT NECESSARILY THE NUMBER OF CHARACTERS
04702  M01S00318.ns2605  +++|*     NOTE    SLENGTH IS NOT NECESSARILY THE NUMBER OF CHARACTERS
04703  M01S02925.sform   +++|*             (SINCE THEY CAN BE EITHER SIX OR TWELVE BITS LONG) BUT
04704  M01S02926.sform   +++|*             RATHER THE NUMBER OF SIX BIT PARCELS IN INSTRING.
04705  M01S02927.sform   +++|#
04706  M01S02928.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET / OUTSTRING #
04707  M01S02929.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  M01S02930.sform   +++|
04712  M01S02931.sform   +++|ITEM ASCIICHR   I;                   # HOLDS AN ASCII CHARACTER #
04713  M01S02932.sform   +++|ITEM ASCII8CHR  I;                   # HOLDS AN ASCII8 CHARACTER #
04714  M01S00014.sform8  +++|ITEM ESCAPECODE I;                   # ESCAPE CODE #
04715  M01S02933.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROMSTRING #
04716  M01S02934.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S02935 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04717  M02S02935.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
Line S02936 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04718  M02S02936.ns2605  ---|ITEM NUMVDCHARS I;                   # NUMBER OF CHARS. IN VARDATA #
04719  M01S02937.sform   +++|ITEM NUMINCHARS I;                   # NUMBER OF CHARS. IN INSTRING #
Line S02938 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04720  M02S02938.sform8  ---|ITEM ESCAPECODE I;                   # ESCAPE CODE #
04721  M01S02939.sform   +++|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TOSTRING #
04722  M01S02940.sform   +++|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
Line S02941 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
M03 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04723  M03S02941.ns2605  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TOSTRING #
04724  M01S02942.sform   +++|
04725  M01S02943.sform   +++|FROMINDEX = 0;                       # GET FIRST WORD FROM FROMSTRING #
Line S02944 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04726  M02S02944.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
Line S02945 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04727  M02S02945.ns2605  ---|FROMCHAROS = 0;                      # NO CHARACTER OFFSET / VARDATA #
04728  M01S00322.ns2605  +++|FROMCHAROS = VAROS;                  # CHARACTER OFFSET / VARDATA #
04729  M01S02946.sform   +++|TOINDEX = 0;
04730  M01S02947.sform   +++|TOCHAROS = STRINGOS;                 # CHARACTER OFFSET / INSTRING #
04731  M01S02948.sform   +++|ESCAPECODE = 0;                      # CLEAR ESCAPE CODE #
Line S02949 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04732  M02S02949.ns2605  ---|NUMVDCHARS = PANNUMBYTE[0];          # SET VARDATA CHARACTER COUNT #
Line S02950 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04733  M02S02950.ns2605  ---|IF SLENGTH EQ 0 THEN
Line S02951 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04734  M02S02951.ns2605  ---|  BEGIN                              # IF ZERO INSTRING COUNT #
Line S02952 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04735  M02S02952.ns2605  ---|  NUMINCHARS = PANNUMBYTE[0] * 2;    # ASSUME WORST CASE #
Line S02953 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04736  M02S02953.ns2605  ---|  END
Line S02954 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04737  M02S02954.ns2605  ---|ELSE
Line S02955 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04738  M02S02955.ns2605  ---|  BEGIN
Line S02956 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04739  M02S02956.ns2605  ---|  NUMINCHARS = SLENGTH;              # SET NUMBER OF CHARACTERS #
Line S02957 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04740  M02S02957.ns2605  ---|  END
Line S02958 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04741  M02S02958.ns2605  ---|WHYLE NUMINCHARS NQ 0 AND NUMVDCHARS NQ 0 DO
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  M01S02959.sform   +++|  BEGIN                              # TRANSLATE CHARACTERS #
Line S02960 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04746  M02S02960.sform8  ---|  ASCII8CHR = B<6*FROMCHAROS,12>FROMWORD;
04747  M01S00015.sform8  +++|  ASCII8CHR = B<6*FROMCHAROS,12>FROMSTRIU[FROMINDEX];
04748  M01S02961.sform   +++|  NUMVDCHARS = NUMVDCHARS - 1;       # DECREMENT VARDATA COUNT #
04749  M01S02962.sform   +++|  FROMCHAROS = FROMCHAROS + 2;       # UPDATE FROMSTRING CHAR. OFFSET #
04750  M01S02963.sform   +++|  IF FROMCHAROS EQ 10 THEN
04751  M01S02964.sform   +++|    BEGIN                            # IF FROMSTRING WORD IS EMPTY #
Line S02965 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04752  M02S02965.sform8  ---|    FROMINDEX = FROMINDEX + 1;       # GET NEXT WORD FROM FROMSTRING #
04753  M01S00016.sform8  +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
Line S02966 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04754  M02S02966.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX];
04755  M01S02967.sform   +++|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
04756  M01S02968.sform   +++|    END
Line S02969 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04757  M02S02969.ns2605  ---|  IF ASCII8CHR EQ 58 THEN            # CHECK FOR COLON #
Line S02970 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04758  M02S02970.ns2605  ---|    BEGIN
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  M01S02971.sform   +++|    ESCAPECODE = 60;                 # SET ESCAPE CODE AND CHAR. #
04767  M01S02972.sform   +++|    ASCIICHR = 04;
04768  M01S02973.sform   +++|    END
Line S02974 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04769  M02S02974.ns2605  ---|  IF ASCII8CHR EQ 64 THEN            # CHECK FOR AT SIGN #
Line S02975 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04770  M02S02975.ns2605  ---|    BEGIN
04771  M01S00333.ns2605  +++|  ELSE IF ASCII8CHR EQ 64 THEN
04772  M01S00334.ns2605  +++|    BEGIN                            # IF AT SIGN #
04773  M01S02976.sform   +++|    ESCAPECODE = 60;                 # SET ESCAPE CODE AND CHAR. #
04774  M01S02977.sform   +++|    ASCIICHR = 01;
04775  M01S02978.sform   +++|    END
Line S02979 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04776  M02S02979.ns2605  ---|  IF ASCII8CHR EQ 94 THEN            # CHECK FOR CIRCUMFLEX #
Line S02980 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04777  M02S02980.ns2605  ---|    BEGIN
04778  M01S00335.ns2605  +++|  ELSE IF ASCII8CHR EQ 94 THEN
04779  M01S00336.ns2605  +++|    BEGIN                            # IF CIRCUMFLEX #
04780  M01S02981.sform   +++|    ESCAPECODE = 60;                 # SET ESCAPE CODE AND CHAR. #
04781  M01S02982.sform   +++|    ASCIICHR = 02;
04782  M01S02983.sform   +++|    END
Line S02984 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04783  M02S02984.ns2605  ---|  IF ASCII8CHR EQ 96 THEN            # CHECK FOR REVERSE SLANT #
Line S02985 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04784  M02S02985.ns2605  ---|    BEGIN
04785  M01S00337.ns2605  +++|  ELSE IF ASCII8CHR EQ 96 THEN
04786  M01S00338.ns2605  +++|    BEGIN                            # IF REVERSE SLANT #
04787  M01S02986.sform   +++|    ESCAPECODE = 60;                 # SET ESCAPE CODE AND CHAR. #
04788  M01S02987.sform   +++|    ASCIICHR = 07;
04789  M01S02988.sform   +++|    END
Line S02989 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04790  M02S02989.ns2605  ---|  IF ASCII8CHR GQ 97 THEN            # CHECK FOR UPPER CASE #
Line S02990 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04791  M02S02990.ns2605  ---|    BEGIN
Line S02991 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04792  M02S02991.ns2605  ---|    ESCAPECODE = 62;
Line S02992 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04793  M02S02992.ns2605  ---|    ASCIICHR = ASCII8CHR - 96;       # CONVERT TO LOWER CASE #
Line S02993 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04794  M02S02993.ns2605  ---|    END
04795  M01S02994.sform   +++|  IF ESCAPECODE NQ 0 THEN
04796  M01S02995.sform   +++|    BEGIN                            # IF TWELVE BIT CHARACTER #
Line S02996 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04797  M02S02996.ns2605  ---|    NUMINCHARS = NUMINCHARS - 1;     # DECREMENT CHARACTER COUNT #
Line S02997 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04798  M02S02997.ns2605  ---|    IF NUMINCHARS NQ 0 THEN
04799  M01S00339.ns2605  +++|    IF NUMINCHARS LS SLENGTH-1 THEN
04800  M01S02998.sform   +++|      BEGIN                          # IF ROOM FOR ALL TWELVE BITS #
04801  M01S00340.ns2605  +++|      NUMINCHARS = NUMINCHARS + 1;   # INCREMENT CHARACTER COUNT #
Line S02999 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04802  M02S02999.sform8  ---|      B<6*TOCHAROS,6>TOWORD = ESCAPECODE;
04803  M01S00017.sform8  +++|      B<6*TOCHAROS,6>TOSTRIU[TOINDEX] = ESCAPECODE;
04804  M01S03000.sform   +++|      TOCHAROS = TOCHAROS + 1;       # UPDATE TOSTRING CHAR. OFFSET #
04805  M01S03001.sform   +++|      IF TOCHAROS EQ 10 THEN
04806  M01S03002.sform   +++|        BEGIN                        # IF TOSTRING WORD IS FULL #
04807  M01S03003.sform   +++|        TOCHAROS = 0;                # RESET CHARACTER OFFSET #
Line S03004 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04808  M02S03004.sform8  ---|        TOSTRIU[TOINDEX] = TOWORD;   # STORE WORD INTO TOSTRING #
Line S03005 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04809  M02S03005.sform8  ---|        TOINDEX = TOINDEX + 1;       # UPDATE TOWORD INDEX #
04810  M01S00018.sform8  +++|        TOINDEX = TOINDEX + 1;       # UPDATE TOSTRING WORD INDEX #
04811  M01S03006.sform   +++|        END
Line S03007 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04812  M02S03007.ns2605  ---|      NUMINCHARS = NUMINCHARS - 1;   # DECREMENT CHARACTER COUNT #
Line S03008 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
M03 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04813  M03S03008.ns2605  ---|      B<6*TOCHAROS,6>TOWORD = ASCIICHR;
Line S00019 Modification History
M01 (Added by) sform8
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04814  M02S00019.ns2605  ---|      B<6*TOCHAROS,6>TOSTRIU[TOINDEX] = ASCIICHR;
Line S03009 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04815  M02S03009.ns2605  ---|      TOCHAROS = TOCHAROS + 1;       # UPDATE TOSTRING CHAR. OFFSET #
Line S03010 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04816  M02S03010.ns2605  ---|      IF TOCHAROS EQ 10 THEN
Line S03011 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04817  M02S03011.ns2605  ---|        BEGIN                        # IF TOSTRING WORD IS FULL #
Line S03012 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04818  M02S03012.ns2605  ---|        TOCHAROS = 0;                # RESET CHARACTER OFFSET #
Line S03013 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
M03 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04819  M03S03013.ns2605  ---|        TOSTRIU[TOINDEX] = TOWORD;   # STORE WORD INTO TOSTRING #
Line S03014 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
M03 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04820  M03S03014.ns2605  ---|        TOINDEX = TOINDEX + 1;       # UPDATE TOWORD INDEX #
Line S00020 Modification History
M01 (Added by) sform8
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04821  M02S00020.ns2605  ---|        TOINDEX = TOINDEX + 1;       # UPDATE TOSTRING WORD INDEX #
Line S03015 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04822  M02S03015.ns2605  ---|        END
04823  M01S03016.sform   +++|      END
04824  M01S03017.sform   +++|    ESCAPECODE = 0;                  # CLEAR ESCAPE CODE #
04825  M01S03018.sform   +++|    END
04826  M01S03019.sform   +++|  ELSE
04827  M01S03020.sform   +++|    BEGIN
04828  M01S03021.sform   +++|    ASCIICHR = A82DC[ASCII8CHR];     # TRANSLATE CHARACTER #
Line S03022 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04829  M02S03022.ns2605  ---|    NUMINCHARS = NUMINCHARS - 1;     # DECREMENT CHARACTER COUNT #
Line S03023 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
M03 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04830  M03S03023.ns2605  ---|    B<6*TOCHAROS,6>TOWORD = ASCIICHR;
Line S00021 Modification History
M01 (Added by) sform8
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04831  M02S00021.ns2605  ---|    B<6*TOCHAROS,6>TOSTRIU[TOINDEX] = ASCIICHR;
Line S03024 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04832  M02S03024.ns2605  ---|    TOCHAROS = TOCHAROS + 1;         # UPDATE TOSTRING CHAR. OFFSET #
Line S03025 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04833  M02S03025.ns2605  ---|    IF TOCHAROS EQ 10 THEN
Line S03026 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04834  M02S03026.ns2605  ---|      BEGIN                          # IF TOSTRING WORD IS FULL #
Line S03027 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04835  M02S03027.ns2605  ---|      TOCHAROS = 0;                  # RESET CHARACTER OFFSET #
Line S03028 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
M03 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04836  M03S03028.ns2605  ---|      TOSTRIU[TOINDEX] = TOWORD;     # STORE WORD INTO TOSTRING #
Line S03029 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
M03 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04837  M03S03029.ns2605  ---|      TOINDEX = TOINDEX + 1;         # UPDATE TOWORD INDEX #
Line S00022 Modification History
M01 (Added by) sform8
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04838  M02S00022.ns2605  ---|      TOINDEX = TOINDEX + 1;         # UPDATE TOSTRING WORD INDEX #
Line S03030 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04839  M02S03030.ns2605  ---|      END
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 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04862  M02S03031.sform8  ---|    END
Line S03032 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04863  M02S03032.sform8  ---|  END
Line S03033 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04864  M02S03033.sform8  ---|IF TOCHAROS NQ 0 THEN
Line S03034 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04865  M02S03034.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
Line S03035 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04866  M02S03035.sform8  ---|  FOR NUMINCHARS = 0 STEP 1 UNTIL TOCHAROS -1 DO
Line S03036 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04867  M02S03036.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
Line S03037 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04868  M02S03037.sform8  ---|    B<6*NUMINCHARS,6>TOSTRIU[TOINDEX] = B<6*NUMINCHARS,6>TOWORD;
04869  M01S03038.sform   +++|    END
04870  M01S03039.sform   +++|  END
04871  M01S03040.sform   +++|
04872  M01S03041.sform   +++|END  # MVA8AS #
04873  M01S03042.sform   +++|CONTROL EJECT;
04874  M01S03043.sform   +++|
Line S03044 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04875  M02S03044.ns2605  ---|PROC MVA8DC(STRINGOS,SLENGTH);
04876  M01S00363.ns2605  +++|PROC MVA8DC(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL);
04877  M01S03045.sform   +++|
04878  M01S03046.sform   +++|# TITLE MVA8DC - MOVE AND TRANSLATE ASCII8 TO DISPLAY CODE. #
04879  M01S03047.sform   +++|
04880  M01S03048.sform   +++|BEGIN  # MVA8DC #
04881  M01S03049.sform   +++|
04882  M01S03050.sform   +++|#
04883  M01S03051.sform   +++|**    MVA8DC - MOVE AND TRANSLATE ASCII8 TO DISPLAY CODE.
04884  M01S03052.sform   +++|*
04885  M01S03053.sform   +++|*     THIS PROCEDURE MOVES THE CHARACTER DATA FROM VARDATA TO
04886  M01S03054.sform   +++|*     INSTRING AFTER A READ, USING THE BASED ARRAYS FROMSTRING
04887  M01S03055.sform   +++|*     AND TOSTRING, TRANSLATING FROM ASCII8 TO DISPLAY CODE.
04888  M01S03056.sform   +++|*
Line S03057 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04889  M02S03057.ns2605  ---|*     PROC MVA8DC(STRINGOS,SLENGTH)
04890  M01S00364.ns2605  +++|*     PROC MVA8DC(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL)
04891  M01S03058.sform   +++|*
04892  M01S03059.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04893  M01S03060.sform   +++|*             STRINGOS   = THE CHARACTER OFFSET INTO INSTRING.
04894  M01S00365.ns2605  +++|*             VAROS      = THE CHARACTER OFFSET INTO VARDATA.
04895  M01S03061.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  M01S03062.sform   +++|*
04899  M01S03063.sform   +++|*     EXIT    STRING MOVED AND TRANSLATED.
04900  M01S03064.sform   +++|*
04901  M01S03065.sform   +++|*     NOTES   SINCE INSTRING IS DEFINED IN THE APPLICATION PROGRAM
04902  M01S03066.sform   +++|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY
04903  M01S03067.sform   +++|*             TOCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
04904  M01S03068.sform   +++|#
04905  M01S03069.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET / OUTSTRING #
04906  M01S03070.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  M01S03071.sform   +++|
04911  M01S03072.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROMSTRING #
04912  M01S03073.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S03074 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04913  M02S03074.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
04914  M01S03075.sform   +++|ITEM NUMCHARS   I;                   # NUMBER OF CHARACTERS TO TRANS. #
04915  M01S03076.sform   +++|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TOSTRING #
04916  M01S03077.sform   +++|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
Line S03078 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04917  M02S03078.sform8  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TOSTRING #
04918  M01S03079.sform   +++|
Line S03080 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04919  M02S03080.ns2605  ---|FROMCHAROS = 0;                      # NO CHARACTER OFFSET / VARDATA #
04920  M01S00371.ns2605  +++|FROMCHAROS = VAROS;                  # CHARACTER OFFSET / VARDATA #
04921  M01S03081.sform   +++|FROMINDEX = 0;                       # GET FIRST WORD FROM VARDATA #
Line S03082 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04922  M02S03082.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
04923  M01S03083.sform   +++|TOINDEX = 0;
04924  M01S03084.sform   +++|TOCHAROS = STRINGOS;                 # CHARACTER OFFSET / INSTRING #
Line S03085 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04925  M02S03085.ns2605  ---|
Line S03086 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04926  M02S03086.ns2605  ---|IF SLENGTH GR PANNUMBYTE[0]
Line S03087 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04927  M02S03087.ns2605  ---|   OR SLENGTH EQ 0 THEN
Line S03088 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04928  M02S03088.ns2605  ---|  BEGIN                              # IF INSTRING EXCEEDS VARDATA #
Line S03089 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04929  M02S03089.ns2605  ---|  SLENGTH = PANNUMBYTE[0];           # RESET NUMBER OF CHARS. TO MOVE #
Line S03090 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04930  M02S03090.ns2605  ---|  END
Line S03091 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04931  M02S03091.ns2605  ---|FOR NUMCHARS = 0 STEP 1 UNTIL SLENGTH - 1 DO
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 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04936  M02S03092.sform8  ---|  BEGIN                              # TRANSLATE CHARACTERS #
Line S03093 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04937  M02S03093.sform8  ---|  B<6*TOCHAROS,6>TOWORD = A82DC[B<6*FROMCHAROS,12>FROMWORD];
04938  M01S00023.sform8  +++|  BEGIN                              # MOVE AND TRANSLATE CHARACTER #
04939  M01S00376.ns2605  +++|  NUMCHARS = NUMCHARS +1;            # INCREMENT CHARACTER COUNT #
04940  M01S00024.sform8  +++|  B<6*TOCHAROS,6>TOSTRIU[TOINDEX] =
04941  M01S00025.sform8  +++|    A82DC[B<6*FROMCHAROS,12>FROMSTRIU[FROMINDEX]];
04942  M01S03094.sform   +++|  FROMCHAROS = FROMCHAROS + 2;       # UPDATE FROMSTRING CHAR. OFFSET #
04943  M01S03095.sform   +++|  IF FROMCHAROS EQ 10 THEN
04944  M01S03096.sform   +++|    BEGIN                            # IF FROMSTRING WORD IS EMPTY #
04945  M01S03097.sform   +++|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
04946  M01S03098.sform   +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
Line S03099 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04947  M02S03099.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX]; # GET NEXT WORD FROM FROMSTRING #
04948  M01S03100.sform   +++|    END
04949  M01S03101.sform   +++|  TOCHAROS = TOCHAROS + 1;           # UPDATE TOSTRING CHAR. OFFSET #
04950  M01S03102.sform   +++|  IF TOCHAROS EQ 10 THEN
04951  M01S03103.sform   +++|    BEGIN                            # IF TOSTRING WORD IS FULL #
04952  M01S03104.sform   +++|    TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
Line S03105 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04953  M02S03105.sform8  ---|    TOSTRIU[TOINDEX] = TOWORD;       # STORE WORD INTO TOSTRING #
Line S03106 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04954  M02S03106.sform8  ---|    TOINDEX = TOINDEX + 1;           # UPDATE TOWORD INDEX #
04955  M01S00026.sform8  +++|    TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
Line S03107 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04956  M02S03107.sform8  ---|    END
Line S03108 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04957  M02S03108.sform8  ---|  END
Line S03109 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04958  M02S03109.sform8  ---|IF TOCHAROS NQ 0 THEN
Line S03110 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04959  M02S03110.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
Line S03111 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04960  M02S03111.sform8  ---|  FOR NUMCHARS = 0 STEP 1 UNTIL TOCHAROS - 1 DO
Line S03112 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04961  M02S03112.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
Line S03113 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04962  M02S03113.sform8  ---|    B<6*NUMCHARS,6>TOSTRIU[TOINDEX] = B<6*NUMCHARS,6>TOWORD;
04963  M01S03114.sform   +++|    END
04964  M01S03115.sform   +++|  END
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  M01S03116.sform   +++|
04977  M01S03117.sform   +++|END  # MVA8DC #
04978  M01S03118.sform   +++|CONTROL EJECT;
04979  M01S03119.sform   +++|
Line S03120 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04980  M02S03120.ns2605  ---|PROC MVDCA8(STRINGOS,SLENGTH);
04981  M01S00388.ns2605  +++|PROC MVDCA8(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL);
04982  M01S03121.sform   +++|
04983  M01S03122.sform   +++|# TITLE MVDCA8 - MOVE AND TRANSLATE DISPLAY CODE TO ASCII8. #
04984  M01S03123.sform   +++|
04985  M01S03124.sform   +++|BEGIN  # MVDCA8 #
04986  M01S03125.sform   +++|
04987  M01S03126.sform   +++|#
04988  M01S03127.sform   +++|**    MVDCA8 - MOVE AND TRANSLATE DISPLAY CODE TO ASCII8.
04989  M01S03128.sform   +++|*
04990  M01S03129.sform   +++|*     THIS PROCEDURE MOVES THE CHARACTER DATA FROM OUTSTRING TO
04991  M01S03130.sform   +++|*     VARDATA BEFORE A WRITE, USING THE BASED ARRAYS FROMSTRING
04992  M01S03131.sform   +++|*     AND TOSTRING, TRANSLATING FROM DISPLAY CODE TO ASCII8.
04993  M01S03132.sform   +++|*
Line S03133 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04994  M02S03133.ns2605  ---|*     PROC MVDCA8(STRINGOS,SLENGTH)
04995  M01S00389.ns2605  +++|*     PROC MVDCA8(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL)
04996  M01S03134.sform   +++|*
04997  M01S03135.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04998  M01S03136.sform   +++|*             STRINGOS   = THE CHARACTER OFFSET INTO OUTSTRING.
04999  M01S00390.ns2605  +++|*             VAROS      = THE CHARACTER OFFSET INTO VARDATA.
05000  M01S03137.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  M01S03138.sform   +++|*
05004  M01S03139.sform   +++|*     EXIT    STRING MOVED AND TRANSLATED.
05005  M01S03140.sform   +++|*
05006  M01S03141.sform   +++|*     NOTES   SINCE OUTSTRING IS DEFINED IN THE APPLICATION PROGRAM
05007  M01S03142.sform   +++|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY
05008  M01S03143.sform   +++|*             FROMCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
05009  M01S03144.sform   +++|#
05010  M01S03145.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET / OUTSTRING #
05011  M01S03146.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  M01S03147.sform   +++|
05016  M01S03148.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROMSTRING #
05017  M01S03149.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S03150 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05018  M02S03150.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
05019  M01S03151.sform   +++|ITEM NUMCHARS   I;                   # NUMBER OF CHARACTERS TO TRANS. #
05020  M01S00396.ns2605  +++|ITEM SPACE      I = BLANK;           # ASCII SPACE FOR BLANK FILL #
05021  M01S03152.sform   +++|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TOSTRING #
05022  M01S03153.sform   +++|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
Line S03154 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05023  M02S03154.sform8  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TOSTRING #
05024  M01S03155.sform   +++|
05025  M01S03156.sform   +++|FROMCHAROS = STRINGOS;               # CHARACTER OFFSET / OUTSTRING #
05026  M01S03157.sform   +++|FROMINDEX = 0;                       # GET FIRST WORD FROM FROMSTRING #
Line S03158 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05027  M02S03158.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
05028  M01S03159.sform   +++|TOINDEX = 0;
Line S03160 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05029  M02S03160.ns2605  ---|TOCHAROS = 0;                        # NO CHARACTER OFFSET / VARDATA  #
Line S03161 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05030  M02S03161.ns2605  ---|                                     # TRANSLATE PANNUMBYTE CHARS. #
Line S03162 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05031  M02S03162.ns2605  ---|IF SLENGTH GR PANNUMBYTE[0]
Line S03163 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05032  M02S03163.ns2605  ---|   OR SLENGTH EQ 0 THEN
Line S03164 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05033  M02S03164.ns2605  ---|  BEGIN                              # IF OUTSTRING EXCEEDS VARDATA #
Line S03165 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05034  M02S03165.ns2605  ---|  SLENGTH = PANNUMBYTE[0];           # RESET NUMBER OF CHARS. TO MOVE #
Line S03166 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05035  M02S03166.ns2605  ---|  END
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 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
05039  M02S03167.ns2605  ---|FOR NUMCHARS = 0 STEP 1 UNTIL SLENGTH - 1 DO
05040  M01S00400.ns2605  +++|FOR NUMCHARS = 1 STEP 1 UNTIL SLENGTH DO
05041  M01S03168.sform   +++|  BEGIN                              # TRANSLATE CHARACTERS #
Line S03169 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05042  M02S03169.sform8  ---|  B<6*TOCHAROS,12>TOWORD = DC2A8[B<6*FROMCHAROS,6>FROMWORD];
05043  M01S00027.sform8  +++|  B<6*TOCHAROS,12>TOSTRIU[TOINDEX] =
05044  M01S00028.sform8  +++|    DC2A8[B<6*FROMCHAROS,6>FROMSTRIU[FROMINDEX]];
05045  M01S03170.sform   +++|  FROMCHAROS = FROMCHAROS + 1;       # UPDATE FROMSTRING CHAR. OFFSET #
05046  M01S03171.sform   +++|  IF FROMCHAROS EQ 10 THEN
05047  M01S03172.sform   +++|    BEGIN                            # IF FROMSTRING WORD IS EMPTY #
05048  M01S03173.sform   +++|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
05049  M01S03174.sform   +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
Line S03175 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05050  M02S03175.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX]; # GET NEXT WORD FROM FROMSTRING #
05051  M01S03176.sform   +++|    END
05052  M01S03177.sform   +++|  TOCHAROS = TOCHAROS + 2;           # UPDATE TOSTRING CHAR. OFFSET #
05053  M01S03178.sform   +++|  IF TOCHAROS EQ 10 THEN
05054  M01S03179.sform   +++|    BEGIN                            # IF TOSTRING WORD IS FULL #
05055  M01S03180.sform   +++|    TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
Line S03181 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05056  M02S03181.sform8  ---|    TOSTRIU[TOINDEX] = TOWORD;       # STORE WORD INTO TOSTRING #
Line S03182 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05057  M02S03182.sform8  ---|    TOINDEX = TOINDEX + 1;           # UPDATE TOWORD INDEX #
05058  M01S00029.sform8  +++|    TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
Line S03183 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05059  M02S03183.sform8  ---|    END
Line S03184 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05060  M02S03184.sform8  ---|  END
Line S03185 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05061  M02S03185.sform8  ---|IF TOCHAROS NQ 0 THEN
Line S03186 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05062  M02S03186.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
Line S03187 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05063  M02S03187.sform8  ---|  FOR NUMCHARS = 0 STEP 1 UNTIL TOCHAROS -1 DO
Line S03188 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05064  M02S03188.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
Line S03189 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
05065  M02S03189.sform8  ---|    B<6*NUMCHARS,6>TOSTRIU[TOINDEX] = B<6*NUMCHARS,6>TOWORD;
05066  M01S03190.sform   +++|    END
05067  M01S03191.sform   +++|  END
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  M01S03192.sform   +++|
05080  M01S03193.sform   +++|END  # MVDCA8 #
05081  M01S03194.sform   +++|CONTROL EJECT;
05082  M01S03195.sform   +++|
05083  M01S03196.sform   +++|PROC NCHECK(FLDIND,IVAL,EVAL,INPUTTYPE,DOLLARSIGN);
05084  M01S03197.sform   +++|
05085  M01S03198.sform   +++|# TITLE NCHECK - NUMERIC CHECK OF INPUT FIELD. #
05086  M01S03199.sform   +++|
05087  M01S03200.sform   +++|BEGIN  # NCHECK #
05088  M01S03201.sform   +++|
05089  M01S03202.sform   +++|#
05090  M01S03203.sform   +++|**    NCHECK - CHECK NUMERIC FIELD.
05091  M01S03204.sform   +++|*
05092  M01S03205.sform   +++|*     THIS PROCEDURE CHECKS THAT THE INPUT FITS THE FORMAT SPECIFIED
05093  M01S03206.sform   +++|*     FOR THE FIELD AND CALULATES THE NUMERIC  VALUE OF THE INPUT.
05094  M01S03207.sform   +++|*
05095  M01S03208.sform   +++|*     PROC NCHECK(FLDIND,IVAL,EVAL,INPUTTYPE,DOLLARSIGN)
05096  M01S03209.sform   +++|*
05097  M01S03210.sform   +++|*     ENTRY   FLDIND     = INDEX OF CURRENT FIELD IN FLDLIST.
05098  M01S03211.sform   +++|*
05099  M01S03212.sform   +++|*     EXIT    IVAL       = INTEGER VALUE OF INPUT.
05100  M01S03213.sform   +++|*             EVAL       = EXPONENT VALUE OF INPUT.
05101  M01S03214.sform   +++|*             INPUTTYPE  = FORMAT TYPE OF INPUT.
05102  M01S03215.sform   +++|*             DOLLARSIGN = TRUE IF $ IN INPUT.
05103  M01S03216.sform   +++|*             FLDVALID[FLDIND] = FALSE, IF INVALID INPUT.
05104  M01S03217.sform   +++|*
05105  M01S03218.sform   +++|*     CALLS   GETNUM, SKPBLK.
05106  M01S03219.sform   +++|#
05107  M01S03220.sform   +++|ITEM FLDIND     I;                   # INDEX IN FLDLIST #
05108  M01S03221.sform   +++|ITEM IVAL       I;                   # INTEGER VALUE #
05109  M01S03222.sform   +++|ITEM EVAL       I;                   # EXPONENT VALUE #
05110  M01S03223.sform   +++|ITEM INPUTTYPE  I;                   # FORMAT TYPE (9 N $ E BAD)#
05111  M01S03224.sform   +++|ITEM DOLLARSIGN B;                   # $ IN INPUT #
05112  M01S03225.sform   +++|
05113  M01S03226.sform   +++|ITEM CHAR       I;                   # INPUT CHARACTER #
05114  M01S03227.sform   +++|ITEM CHARPOS    I;                   # CHARACTER POSITION IN FIELD #
05115  M01S03228.sform   +++|ITEM COMMADEL   I = O"0054";         # COMMA DELIMETER #
05116  M01S03229.sform   +++|ITEM COMMATHERE B;                   # COMMA PRESENT FLAG #
05117  M01S03230.sform   +++|ITEM DECIMALPT  B;                   # DECIMAL POINT IN INPUT #
05118  M01S03231.sform   +++|ITEM DIGITINT   I;                   # NUMBER OF DIGITS IN INTEGER #
05119  M01S03232.sform   +++|ITEM DIGITLIMIT I=17;                # MAXIMUM DIGITS ALLOWED #
05120  M01S03233.sform   +++|ITEM DIGITS     I;                   # NUMBER OF DIGITS IN SUBFIELD #
05121  M01S03234.sform   +++|ITEM DVAL       I;                   # DECIMAL VALUE #
05122  M01S03235.sform   +++|ITEM ESIGN      I;                   # EXPONENT SIGN VALUE #
05123  M01S03236.sform   +++|ITEM EXPONLIMIT I=322;               # MAXIMUM EXPONENT ALLOWED #
05124  M01S03237.sform   +++|ITEM I          I;                   # LOOP COUNTER #
05125  M01S03238.sform   +++|ITEM ISIGN      I;                   # INTEGER SIGN VALUE #
Line S03239 Modification History
M01 (Added by) sform
M02 (Updated by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05126  M02S03239.sform25 ---|ITEM PERIODDEL  I = O"0056";         # PERIOD DELIMETER #
05127  M01S00001.sform25 +++|ITEM PERIODDEL  I = O"0056";         # PERIOD DELIMITER #
05128  M01S03240.sform   +++|ITEM SOMEDIGITS B;                   # IF ANY NUMERIC INPUT #
05129  M01S03241.sform   +++|ITEM TVAL       I;                   # TEMPORARY VALUE #
05130  M01S00002.sform25 +++|ITEM VARIND     I;                   # INDEX INTO VARLIST OF VARIABLE #
05131  M01S03242.sform   +++|
05132  M01S03243.sform   +++|SOMEDIGITS = FALSE;                  # INITIAL VALUES #
05133  M01S03244.sform   +++|COMMATHERE = FALSE;
05134  M01S03245.sform   +++|DOLLARSIGN = FALSE;
05135  M01S03246.sform   +++|DECIMALPT = FALSE;
05136  M01S00003.sform25 +++|VARIND = FLDVARORD[FLDIND];
05137  M01S03247.sform   +++|
05138  M01S03248.sform   +++|CONTROL IFEQ EUROPEAN,1;             # IF EUROPEAN CURRENCY FORMAT #
Line S03249 Modification History
M01 (Added by) sform
M02 (Updated by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05139  M02S03249.sform25 ---|  IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"$" THEN
05140  M01S00004.sform25 +++|  IF VARPICTYPE[VARIND] EQ FORMTYPE"$" THEN
05141  M01S03250.sform   +++|    BEGIN                            # CURRENCY FORMAT #
05142  M01S03251.sform   +++|    COMMADEL = PERIOD;
05143  M01S03252.sform   +++|    PERIODDEL = COMMA;
05144  M01S03253.sform   +++|    END
05145  M01S03254.sform   +++|  ELSE
05146  M01S03255.sform   +++|    BEGIN                            # NOT CURRENCY FORMAT #
05147  M01S03256.sform   +++|    COMMADEL = COMMA;
05148  M01S03257.sform   +++|    PERIODDEL = PERIOD;
05149  M01S03258.sform   +++|    END
05150  M01S03259.sform   +++|CONTROL FI;                          # END EUROPEAN #
05151  M01S03260.sform   +++|
05152  M01S03261.sform   +++|INPUTTYPE = FORMTYPE"BAD";
05153  M01S03262.sform   +++|IVAL = 0;
05154  M01S03263.sform   +++|DVAL = 0;
05155  M01S03264.sform   +++|EVAL = 0;
05156  M01S03265.sform   +++|TVAL = 0;
05157  M01S03266.sform   +++|ISIGN = 1;
05158  M01S03267.sform   +++|ESIGN = 1;
05159  M01S03268.sform   +++|CHARPOS = 0;
05160  M01S03269.sform   +++|DIGITINT = 0;
05161  M01S03270.sform   +++|
05162  M01S03271.sform   +++|SKPBLK(FLDIND,CHARPOS,CHAR);         # FIND START OF FIELD #
05163  M01S03272.sform   +++|
05164  M01S03273.sform   +++|IF UPPER(CHAR) EQ CAPE THEN GOTO EXPSUBFLD;  # START OF EXPONENT #
05165  M01S03274.sform   +++|
05166  M01S03275.sform   +++|IF CHAR EQ DOLLAR THEN
05167  M01S03276.sform   +++|  BEGIN                              # CURRENCY INPUT #
05168  M01S03277.sform   +++|  DOLLARSIGN = TRUE;
05169  M01S03278.sform   +++|  INPUTTYPE = FORMTYPE"$";
05170  M01S03279.sform   +++|  CHARPOS = CHARPOS + 1;
05171  M01S03280.sform   +++|  END
05172  M01S03281.sform   +++|
05173  M01S03282.sform   +++|IF CHAR EQ PLUS OR CHAR EQ MINUS THEN
05174  M01S03283.sform   +++|  BEGIN                              # SIGNED INPUT #
05175  M01S03284.sform   +++|  INPUTTYPE = FORMTYPE"N";
05176  M01S03285.sform   +++|  IF CHAR EQ MINUS THEN ISIGN = -1;
05177  M01S03286.sform   +++|  CHARPOS = CHARPOS + 1;
05178  M01S03287.sform   +++|  END
05179  M01S03288.sform   +++|
05180  M01S03289.sform   +++|IF CHAR EQ PERIODDEL THEN GOTO DECSUBFLD;  # START OF DECIMAL #
05181  M01S03290.sform   +++|
05182  M01S03291.sform   +++|INTSUBFLD:                           # GET VALUE OF INTEGER SUBFIELD #
05183  M01S03292.sform   +++|
05184  M01S03293.sform   +++|  GETNUM(FLDIND,CHARPOS,IVAL,DIGITS);
05185  M01S03294.sform   +++|  DIGITINT = DIGITINT + DIGITS;
Line S03295 Modification History
M01 (Added by) sform
M02 (Updated by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05186  M02S03295.sform25 ---|  IF (COMMATHERE AND DIGITS NQ 3) OR DIGITINT GR DIGITLIMIT THEN
05187  M01S00005.sform25 +++|  IF (COMMATHERE AND DIGITS NQ 3)
05188  M01S00006.sform25 +++|    OR (DIGITINT GR DIGITLIMIT AND VARTYPE[VARIND] GR 1) THEN
05189  M01S03296.sform   +++|    BEGIN
05190  M01S03297.sform   +++|    INPUTTYPE = FORMTYPE"BAD";
05191  M01S03298.sform   +++|    RETURN;
05192  M01S03299.sform   +++|    END
05193  M01S03300.sform   +++|  IF DIGITS NQ 0 THEN SOMEDIGITS = TRUE;
05194  M01S03301.sform   +++|  IF NEXTCHAR(FLDIND,CHARPOS) EQ COMMADEL THEN
05195  M01S03302.sform   +++|    BEGIN                            # CURRENCY TYPE INPUT #
05196  M01S03303.sform   +++|    IF (NOT COMMATHERE AND DIGITS GR 3) OR DIGITS LS 1 THEN
05197  M01S03304.sform   +++|      BEGIN
05198  M01S03305.sform   +++|      INPUTTYPE = FORMTYPE"BAD";
05199  M01S03306.sform   +++|      RETURN;
05200  M01S03307.sform   +++|      END
05201  M01S03308.sform   +++|    DOLLARSIGN = TRUE;
05202  M01S03309.sform   +++|    COMMATHERE = TRUE;
05203  M01S03310.sform   +++|    IF CHARPOS GQ FLDLENGTH[FLDIND] - 1 THEN GOTO ENDOFFLD;
05204  M01S03311.sform   +++|    CHARPOS = CHARPOS + 1;
05205  M01S03312.sform   +++|    CHAR = NEXTCHAR(FLDIND,CHARPOS);
05206  M01S03313.sform   +++|    IF CHAR LS ZEROCH OR CHAR GR NINECH THEN
05207  M01S03314.sform   +++|      BEGIN                          # INVALID CHARACTER #
05208  M01S03315.sform   +++|      INPUTTYPE = FORMTYPE"BAD";
05209  M01S03316.sform   +++|      RETURN;
05210  M01S03317.sform   +++|      END
05211  M01S03318.sform   +++|    INPUTTYPE = FORMTYPE"$";
05212  M01S03319.sform   +++|    GOTO INTSUBFLD;
05213  M01S03320.sform   +++|    END
Line S03321 Modification History
M01 (Added by) sform
M02 (Updated by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05214  M02S03321.sform25 ---|  IVAL = ISIGN * IVAL;
Line S00007 Modification History
M01 (Added by) sform25
M02 (Updated by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05215  M02S00007.sfor25a ---|  IF VARTYPE[VARIND] GR 1 THEN IVAL = ISIGN * IVAL;
05216  M01S00001.sfor25a +++|  IVAL = ISIGN * IVAL;
05217  M01S03322.sform   +++|  IF CHARPOS GQ FLDLENGTH[FLDIND] THEN GOTO ENDOFFLD;
05218  M01S03323.sform   +++|  CHAR = NEXTCHAR(FLDIND,CHARPOS);   # LOOK AT NEXT CHARACTER #
05219  M01S03324.sform   +++|  IF UPPER(CHAR) EQ CAPE THEN GOTO EXPSUBFLD;  # START OF EXPONENT #
05220  M01S03325.sform   +++|  IF CHAR EQ PERIODDEL THEN GOTO DECSUBFLD;  # START OF DECIMAL #
05221  M01S03326.sform   +++|  IF CHAR EQ MINUS OR CHAR EQ PLUS AND SOMEDIGITS THEN
05222  M01S03327.sform   +++|    BEGIN                            # START OF EXPONENT #
05223  M01S03328.sform   +++|    GOTO EXPSUBFLD;
05224  M01S03329.sform   +++|    END
05225  M01S03330.sform   +++|  IF CHAR EQ BLANK THEN GOTO ENDOFFLD;  # END OF FIELD #
05226  M01S03331.sform   +++|  INPUTTYPE = FORMTYPE"BAD";         # BAD INPUT #
05227  M01S03332.sform   +++|  RETURN;
05228  M01S03333.sform   +++|
05229  M01S03334.sform   +++|DECSUBFLD:                           # GET VALUE OF DECIMAL SUBFIELD #
05230  M01S03335.sform   +++|
05231  M01S03336.sform   +++|  DECIMALPT = TRUE;
05232  M01S03337.sform   +++|  INPUTTYPE = FORMTYPE"$";
05233  M01S03338.sform   +++|  CHARPOS = CHARPOS + 1;
05234  M01S03339.sform   +++|  IF CHARPOS GQ FLDLENGTH[FLDIND] THEN GOTO ENDOFFLD;
05235  M01S03340.sform   +++|  GETNUM(FLDIND,CHARPOS,DVAL,DIGITS);
Line S03341 Modification History
M01 (Added by) sform
M02 (Updated by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05236  M02S03341.sform25 ---|  DIGITINT = DIGITINT + DIGITS;
Line S03342 Modification History
M01 (Added by) sform
M02 (Updated by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05237  M02S03342.sform25 ---|  IF DIGITINT GR DIGITLIMIT THEN
Line S00008 Modification History
M01 (Added by) sform25
M02 (Updated by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05238  M02S00008.sfor25a ---|  IF DIGITINT+DIGITS GR DIGITLIMIT AND VARTYPE[VARIND] GR 1 THEN
05239  M01S00002.sfor25a +++|  DIGITINT = DIGITINT + DIGITS;
05240  M01S00003.sfor25a +++|  IF DIGITINT GR DIGITLIMIT AND VARTYPE[VARIND] GR 1 THEN
05241  M01S03343.sform   +++|    BEGIN                            # TOO MANY DIGITS ENTERED #
05242  M01S03344.sform   +++|    INPUTTYPE = FORMTYPE"BAD";
05243  M01S03345.sform   +++|    RETURN;
05244  M01S03346.sform   +++|    END
05245  M01S03347.sform   +++|  IF DIGITS NQ 0 THEN
05246  M01S03348.sform   +++|    BEGIN                            # SOME DECIMAL DIGITS ENTERED #
Line S03349 Modification History
M01 (Added by) sform
M02 (Updated by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05247  M02S03349.sform25 ---|    FOR I = 1 STEP 1 UNTIL DIGITS DO
Line S00009 Modification History
M01 (Added by) sform25
M02 (Updated by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05248  M02S00009.sfor25a ---|    FOR I = 1 STEP 1 WHILE I LQ DIGITS AND DIGITINT+I LQ DIGITLIMIT DO
05249  M01S00004.sfor25a +++|    IF DIGITINT LQ DIGITLIMIT THEN
05250  M01S03350.sform   +++|      BEGIN
Line S03351 Modification History
M01 (Added by) sform
M02 (Updated by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05251  M02S03351.sfor25a ---|      IVAL = IVAL * 10;
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  M01S03352.sform   +++|      END
Line S03353 Modification History
M01 (Added by) sform
M02 (Updated by) sform25
Seq #  *Modification Id* Act 
----------------------------+
05258  M02S03353.sform25 ---|    IVAL = IVAL + DVAL*ISIGN;
Line S00010 Modification History
M01 (Added by) sform25
M02 (Updated by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05259  M02S00010.sfor25a ---|    DIGITINT = DIGITINT + DIGITS;
Line S00011 Modification History
M01 (Added by) sform25
M02 (Updated by) sfor25a
Seq #  *Modification Id* Act 
----------------------------+
05260  M02S00011.sfor25a ---|    IF DIGITINT LQ DIGITLIMIT THEN IVAL = IVAL + DVAL*ISIGN;
05261  M01S03354.sform   +++|    SOMEDIGITS = TRUE;
05262  M01S03355.sform   +++|    END
05263  M01S03356.sform   +++|  EVAL = -DIGITS;
05264  M01S03357.sform   +++|  IF DIGITS GR 2 THEN INPUTTYPE = FORMTYPE"E";
05265  M01S03358.sform   +++|  IF CHARPOS GQ FLDLENGTH[FLDIND] THEN GOTO ENDOFFLD;  # END OF FIELD #
05266  M01S03359.sform   +++|  CHAR = NEXTCHAR(FLDIND,CHARPOS);
05267  M01S03360.sform   +++|  IF CHAR EQ PLUS OR CHAR EQ MINUS
05268  M01S03361.sform   +++|    OR UPPER(CHAR) EQ CAPE THEN
05269  M01S03362.sform   +++|    BEGIN                            # START OF EXPONENT #
05270  M01S03363.sform   +++|    GOTO EXPSUBFLD;
05271  M01S03364.sform   +++|    END
05272  M01S03365.sform   +++|  IF CHAR EQ BLANK THEN GOTO ENDOFFLD;  # END OF FIELD #
05273  M01S03366.sform   +++|  INPUTTYPE = FORMTYPE"BAD";
05274  M01S03367.sform   +++|  RETURN;
05275  M01S03368.sform   +++|
05276  M01S03369.sform   +++|EXPSUBFLD:                           # GET VALUE OF EXPONENT SUBFIELD #
05277  M01S03370.sform   +++|
05278  M01S03371.sform   +++|  INPUTTYPE = FORMTYPE"E";
05279  M01S03372.sform   +++|  IF UPPER(CHAR) EQ CAPE THEN
05280  M01S03373.sform   +++|    BEGIN                            # SKIP E CHARACTER #
05281  M01S03374.sform   +++|    CHARPOS = CHARPOS + 1;
05282  M01S03375.sform   +++|    CHAR = NEXTCHAR(FLDIND,CHARPOS);
05283  M01S03376.sform   +++|    END
05284  M01S03377.sform   +++|  IF CHAR EQ MINUS THEN
05285  M01S03378.sform   +++|    BEGIN                            # NEGATIVE EXPONENT #
05286  M01S03379.sform   +++|    ESIGN = -1;
05287  M01S03380.sform   +++|    CHARPOS = CHARPOS + 1;
05288  M01S03381.sform   +++|    CHAR = NEXTCHAR(FLDIND,CHARPOS);
05289  M01S03382.sform   +++|    END
05290  M01S03383.sform   +++|  ELSE IF CHAR EQ PLUS THEN
05291  M01S03384.sform   +++|    BEGIN                            # POSITIVE EXPONENT #
05292  M01S03385.sform   +++|    CHARPOS = CHARPOS + 1;
05293  M01S03386.sform   +++|    CHAR = NEXTCHAR(FLDIND,CHARPOS);
05294  M01S03387.sform   +++|    END
05295  M01S03388.sform   +++|  GETNUM(FLDIND,CHARPOS,TVAL,DIGITS);
05296  M01S03389.sform   +++|  IF DIGITS EQ 0 OR DIGITS GR DIGITLIMIT THEN
05297  M01S03390.sform   +++|    BEGIN                            # TOO MANY OR NO DIGITS IN EXP #
05298  M01S03391.sform   +++|    INPUTTYPE = FORMTYPE"BAD";
05299  M01S03392.sform   +++|    RETURN;
05300  M01S03393.sform   +++|    END
05301  M01S03394.sform   +++|  EVAL = ESIGN * TVAL + EVAL;
05302  M01S03395.sform   +++|
05303  M01S03396.sform   +++|ENDOFFLD:                            # END OF INPUT FIELD #
05304  M01S03397.sform   +++|
05305  M01S03398.sform   +++|  IF ABS(EVAL) + DIGITINT GR EXPONLIMIT THEN
05306  M01S03399.sform   +++|    BEGIN                            # INPUT NUMBER TOO LARGE #
05307  M01S03400.sform   +++|    INPUTTYPE = FORMTYPE"BAD";
05308  M01S03401.sform   +++|    RETURN;
05309  M01S03402.sform   +++|    END
05310  M01S03403.sform   +++|
05311  M01S03404.sform   +++|  IF (DOLLARSIGN AND (INPUTTYPE EQ FORMTYPE"E")) OR NOT SOMEDIGITS THEN
05312  M01S03405.sform   +++|    BEGIN                            # REAL INPUT WITH $ OR NO DIGITS #
05313  M01S03406.sform   +++|    INPUTTYPE = FORMTYPE"BAD";
05314  M01S03407.sform   +++|    RETURN;
05315  M01S03408.sform   +++|    END
05316  M01S03409.sform   +++|
05317  M01S03410.sform   +++|  IF SOMEDIGITS AND (FORMTYPE"NINE" GR INPUTTYPE) THEN
05318  M01S03411.sform   +++|    BEGIN                            # UNSIGNED INTEGER INPUT #
05319  M01S03412.sform   +++|    INPUTTYPE = FORMTYPE"NINE";
05320  M01S03413.sform   +++|    END
05321  M01S03414.sform   +++|
05322  M01S03415.sform   +++|  IF CHARPOS LQ FLDLENGTH[FLDIND] -1 THEN
05323  M01S03416.sform   +++|    BEGIN                            # CHECK FOR EXTRA CHARACTERS #
05324  M01S03417.sform   +++|    FOR I = CHARPOS STEP 1 UNTIL FLDLENGTH[FLDIND] -1 DO
05325  M01S03418.sform   +++|      BEGIN
05326  M01S03419.sform   +++|      IF NEXTCHAR(FLDIND,I) NQ BLANK THEN INPUTTYPE = FORMTYPE"BAD";
05327  M01S03420.sform   +++|      END
05328  M01S03421.sform   +++|    END
05329  M01S03422.sform   +++|
05330  M01S03423.sform   +++|END  # NCHECK #
05331  M01S03424.sform   +++|CONTROL EJECT;
05332  M01S03425.sform   +++|
05333  M01S03426.sform   +++|PROC PICVAL(FLDIND);
05334  M01S03427.sform   +++|
05335  M01S03428.sform   +++|# TITLE PICVAL - PERFORM PICTURE VALIDATION. #
05336  M01S03429.sform   +++|
05337  M01S03430.sform   +++|BEGIN  # PICVAL #
05338  M01S03431.sform   +++|
05339  M01S03432.sform   +++|#
05340  M01S03433.sform   +++|**    PICVAL - PERFORM PICTURE VALIDATION.
05341  M01S03434.sform   +++|*
05342  M01S03435.sform   +++|*     THIS PROCEDURE VALIDATES THAT INPUT TO THE VARIABLE POINTED TO
05343  M01S03436.sform   +++|*     BY FLDIND CONFORMS WITH THE PICTURE TYPE SPECIFIED IN VARLIST.
05344  M01S03437.sform   +++|*
05345  M01S03438.sform   +++|*     PROC PICVAL(FLDIND)
05346  M01S03439.sform   +++|*
05347  M01S03440.sform   +++|*     ENTRY   FLDIND     = FLDLIST INDEX FOR FIELD TO BE CHECKED.
05348  M01S03441.sform   +++|*
05349  M01S03442.sform   +++|*     EXIT    FLDVALID[FLDIND] = FALSE, IF INPUT IS INVALID.
05350  M01S03443.sform   +++|*
05351  M01S03444.sform   +++|*     CALLS   DATEVL, NCHECK.
05352  M01S03445.sform   +++|#
05353  M01S03446.sform   +++|ITEM FLDIND     I;                   # INDEX OF VARIABLE TO VALIDATE #
05354  M01S03447.sform   +++|
05355  M01S03448.sform   +++|ITEM DOLLARSIGN B;                   # $ IN INPUT #
05356  M01S03449.sform   +++|ITEM EVAL       I;                   # EXPONENT VALUE OF INPUT #
05357  M01S03450.sform   +++|ITEM INPIND     I;                   # INDEX OF CHARACTER IN INPUT #
05358  M01S03451.sform   +++|ITEM INPTYPE    I;                   # FORMAT TYPE OF INPUT #
05359  M01S03452.sform   +++|ITEM IVAL       I;                   # INTEGER VALUE OF INPUT #
05360  M01S03453.sform   +++|ITEM NCHAR      I;                   # NEXT CHARACTER IN VARDATA #
05361  M01S03454.sform   +++|ITEM PTYPE      I;                   # PICTURE TYPE #
05362  M01S03455.sform   +++|ITEM VARIND     I;                   # INDEX INTO VARLIST OF VARIABLE #
05363  M01S03456.sform   +++|
05364  M01S03457.sform   +++|SWITCH PICTURTYPE                    # PICTURE TYPE SWITCH #
05365  M01S03458.sform   +++|  ,
05366  M01S03459.sform   +++|  PICX,                              # X PICTURE(DEFAULT) #
05367  M01S03460.sform   +++|  PICA,                              # ALPHA PICTURE #
05368  M01S03461.sform   +++|  PIC9,                              # INTEGER PICTURE #
05369  M01S03462.sform   +++|  PICN,                              # NUMERIC PICTURE #
05370  M01S03463.sform   +++|  PIC$,                              # DOLLAR PICTURE #
05371  M01S03464.sform   +++|  PICE,                              # REAL PICTURE #
05372  M01S03465.sform   +++|  PICY,                              # YYMMDD DATE PICTURE #
05373  M01S03466.sform   +++|  PICM,                              # MMDDYY DATE PICTURE #
05374  M01S03467.sform   +++|  PICD;                              # DDMMYY DATE PICTURE #
05375  M01S03468.sform   +++|
05376  M01S03469.sform   +++|VARIND = FLDVARORD[FLDIND];
05377  M01S03470.sform   +++|PTYPE = VARPICTYPE[VARIND] ;
05378  M01S03471.sform   +++|
05379  M01S03472.sform   +++|GOTO PICTURTYPE[PTYPE];
05380  M01S03473.sform   +++|
05381  M01S03474.sform   +++|PICX:                                # DISPLAYABLE CHARACTER TYPE #
05382  M01S03475.sform   +++|
05383  M01S03476.sform   +++|  RETURN;
05384  M01S03477.sform   +++|
05385  M01S03478.sform   +++|PICA:                                # ALPHABETIC FORMAT #
05386  M01S03479.sform   +++|
05387  M01S03480.sform   +++|  FOR INPIND = 0 STEP 1 UNTIL FLDLENGTH[FLDIND] -1 DO
05388  M01S03481.sform   +++|    BEGIN
05389  M01S03482.sform   +++|    NCHAR = NEXTCHAR(FLDIND,INPIND);
05390  M01S03483.sform   +++|    IF NOT(NCHAR GQ CAPA AND NCHAR LQ CAPZ)
05391  M01S03484.sform   +++|       AND NOT(NCHAR GQ LOWA AND NCHAR LQ LOWZ)
05392  M01S03485.sform   +++|       AND NOT(NCHAR EQ BLANK) THEN
05393  M01S03486.sform   +++|      BEGIN                          # NOT ALPHABETIC INPUT #
05394  M01S03487.sform   +++|      FLDVALID[FLDIND] = FALSE;
05395  M01S03488.sform   +++|      END
05396  M01S03489.sform   +++|    END
05397  M01S03490.sform   +++|
05398  M01S03491.sform   +++|  RETURN;
05399  M01S03492.sform   +++|
05400  M01S03493.sform   +++|PICY:
05401  M01S03494.sform   +++|PICM:
05402  M01S03495.sform   +++|PICD:                                # DATE FORMATS #
05403  M01S03496.sform   +++|
05404  M01S03497.sform   +++|  DATEVL(FLDIND,IVAL,EVAL);
05405  M01S03498.sform   +++|  RETURN;
05406  M01S03499.sform   +++|
05407  M01S03500.sform   +++|PICE:                                # REAL FORMAT #
05408  M01S03501.sform   +++|PIC9:                                # INTEGER FORMAT #
05409  M01S03502.sform   +++|PICN:                                # SIGNED INTEGER FORMAT #
05410  M01S03503.sform   +++|PIC$:                                # CURRENCY FORMAT #
05411  M01S03504.sform   +++|
05412  M01S03505.sform   +++|  NCHECK(FLDIND,IVAL,EVAL,INPTYPE,DOLLARSIGN);
05413  M01S03506.sform   +++|  IF (VARPICTYPE[VARIND] EQ FORMTYPE"E" AND DOLLARSIGN)
05414  M01S03507.sform   +++|    OR INPTYPE GR VARPICTYPE[VARIND] OR INPTYPE EQ FORMTYPE"BAD" THEN
05415  M01S03508.sform   +++|    BEGIN
05416  M01S03509.sform   +++|    FLDVALID[FLDIND] = FALSE;
05417  M01S03510.sform   +++|    END
05418  M01S03511.sform   +++|  RETURN;
05419  M01S03512.sform   +++|
05420  M01S03513.sform   +++|END  # PICVAL #
05421  M01S03514.sform   +++|CONTROL EJECT;
05422  M01S03515.sform   +++|
05423  M01S03516.sform   +++|PROC POSARR(PANELADDR);
05424  M01S03517.sform   +++|
Line S03518 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
05425  M02S03518.242l642 ---|# TITLE POSARR - POSITON PANEL RECORD BASED ARRAYS. #
05426  M01S00844.242l642 +++|# TITLE POSARR - POSITION PANEL RECORD BASED ARRAYS. #
05427  M01S03519.sform   +++|
05428  M01S03520.sform   +++|BEGIN  # POSARR #
05429  M01S03521.sform   +++|
05430  M01S03522.sform   +++|#
05431  M01S03523.sform   +++|**    POSARR - POSITION PANEL RECORD BASED ARRAYS.
05432  M01S03524.sform   +++|*
05433  M01S03525.sform   +++|*     THIS PROCEDURE POSITIONS THE BASED ARRAYS THAT DESCRIBE THE
05434  M01S03526.sform   +++|*     FORMAT OF THE INFORMATION IN PANEL RECORD USING THE ADDRESS
05435  M01S03527.sform   +++|*     PASSED IN PANELADDR.
05436  M01S03528.sform   +++|*
05437  M01S03529.sform   +++|*     PROC POSARR(PANELADDR)
05438  M01S03530.sform   +++|*
05439  M01S03531.sform   +++|*     ENTRY   PANELADDR  = FWA OF THE PANEL RECORD IN MEMORY.
05440  M01S03532.sform   +++|*
05441  M01S03533.sform   +++|*     EXIT    ALL PANEL RECORD BASED ARRAYS POSITIONED.
05442  M01S03534.sform   +++|#
05443  M01S03535.sform   +++|ITEM PANELADDR  I;                   # THE ADDRESS OF THE PANEL #
05444  M01S03536.sform   +++|
05445  M01S03537.sform   +++|ITEM ZEROWORD   I = 0;               # DUMMY FIELD LIST #
05446  M01S03538.sform   +++|
05447  M01S03539.sform   +++|P<RECORD> = PANELADDR;               # POSITION BASED ARRAYS #
05448  M01S03540.sform   +++|P<PANELHEADR> = PANELADDR;
05449  M01S03541.sform   +++|P<VDATA> = PANELADDR + PANHEADLEN;
05450  M01S03542.sform   +++|
05451  M01S03543.sform   +++|IF PANSTRFLD[0] NQ 0 THEN
05452  M01S03544.sform   +++|  BEGIN                              # IF PANEL HAS FIELD LIST #
05453  M01S03545.sform   +++|  P<FLDLIST> = PANELADDR + PANSTRFLD[0];
05454  M01S03546.sform   +++|  END
05455  M01S03547.sform   +++|ELSE
05456  M01S03548.sform   +++|  BEGIN                              # NO FIELD LIST, ONLY BOXES #
05457  M01S03549.sform   +++|  P<FLDLIST> = LOC(ZEROWORD);
05458  M01S03550.sform   +++|  END
05459  M01S03551.sform   +++|
05460  M01S03552.sform   +++|P<VARLIST> = PANELADDR + PANSTRVAR[0];
05461  M01S03553.sform   +++|P<FUNLIST> = PANELADDR + PANSTRFUN[0];
05462  M01S03554.sform   +++|P<ATTLIST> = PANELADDR + PANSTRATT[0];
05463  M01S03555.sform   +++|P<ARRLIST> = PANELADDR + PANSTRARR[0];
05464  M01S03556.sform   +++|P<BOXLIST> = PANELADDR + PANSTRBOX[0];
05465  M01S03557.sform   +++|
05466  M01S03558.sform   +++|END  # POSARR #
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];
Proceed to Part 4
cdc/nos2.source/opl.opl871/deck/sform.003.txt ยท Last modified: by 127.0.0.1