Deck SFORM Part 002

49 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
03176  M00S01703.sform   +++|ITEM PROCNAME   C(6);                # PROCEDURE NAME #
03177  M00S01704.sform   +++|ITEM PROCMSG    C(20);               # DAYFILE ERROR MESSAGE #
03178  M00S01705.sform   +++|ITEM FATAL      B;                   # PANEL NAME #
03179  M00S01706.sform   +++|
03180  M00S01707.sform   +++|ITEM DAYFILE    I = 0;               # ISSUE MESSAGE TO DAYFILE #
03181  M00S01708.sform   +++|ITEM DAYMESSAGE C(41) = " XXXXXX - PANEL                          ";
Line S00001 Modification History
M01 (Added by) sform19
Seq #  *Modification Id* Act 
----------------------------+
03182  M01S00001.sform19 +++|ITEM EMPTY      I = O"00";           # OCTAL ZERO / COLON #
Line S00806 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03183  M01S00806.242l642 +++|*IF UNDEF,QTRM
03184  M00S01709.sform   +++|ITEM LINE       I = 0;               # INDICATES LINE MODE TO VDT #
03185  M00S01710.sform   +++|ITEM NOMSG      I = 0;               # NO B-DISPLAY MESSAGE #
03186  M01S00807.242l642 +++|*ENDIF
03187  M00S01711.sform   +++|ITEM NONAME     C(25) = "NAME IS BLANK.           ";  # ERROR MSG. #
Line S01712 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03188  M01S01712.242l642 ---|ITEM RECALL     I = 1;               # RECALL PARAMTER FOR VDTCLO #
Line S00808 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03189  M01S00808.242l642 +++|*IF UNDEF,QTRM
03190  M01S00809.242l642 +++|ITEM RECALL     I = 1;               # RECALL PARAMETER FOR VDTCLO #
03191  M01S00810.242l642 +++|*ENDIF
03192  M00S01713.sform   +++|ITEM PANINDEX   I;                   # INDEX INTO PANEL NAME #
03193  M00S01714.sform   +++|ITEM PANLEN     I;                   # LENGTH OF PANEL NAME #
03194  M01S00811.242l642 +++|*IF UNDEF,QTRM
03195  M00S01715.sform   +++|ITEM PLTCOUNT   I;                   # COUNTER TO CLEAR PLT #
03196  M01S00812.242l642 +++|*ENDIF
03197  M00S01716.sform   +++|ITEM SPACE      I = O"55";           # DISPLAY CODE BLANK #
03198  M00S01717.sform   +++|
03199  M00S01718.sform   +++|C<1,6>DAYMESSAGE = PROCNAME;         # PUT IN PROCEDURE NAME #
03200  M00S01719.sform   +++|
03201  M00S01720.sform   +++|PANLEN = 0;
03202  M00S01721.sform   +++|FOR PANINDEX = 0 STEP 1 UNTIL 6 DO
03203  M00S01722.sform   +++|  BEGIN                              # FIND PANEL NAME LENGTH #
Line S01723 Modification History
M01 (Removed by) sform19
Seq #  *Modification Id* Act 
----------------------------+
03204  M01S01723.sform19 ---|  IF C<PANINDEX,1>PANELNAME NQ SPACE THEN PANLEN = PANINDEX + 1;
Line S00002 Modification History
M01 (Added by) sform19
Seq #  *Modification Id* Act 
----------------------------+
03205  M01S00002.sform19 +++|  IF C<PANINDEX,1>PANELNAME NQ SPACE
03206  M01S00003.sform19 +++|    AND C<PANINDEX,1>PANELNAME NQ EMPTY THEN
03207  M01S00004.sform19 +++|    BEGIN                            # IF NOT AT END OF PANEL NAME #
03208  M01S00005.sform19 +++|    PANLEN = PANINDEX + 1;
03209  M01S00006.sform19 +++|    END
03210  M00S01724.sform   +++|  END
03211  M00S01725.sform   +++|
03212  M00S01726.sform   +++|IF PANLEN EQ 0 OR PANELNAME EQ 0 THEN
03213  M00S01727.sform   +++|  BEGIN                              # IF BLANK PANEL NAME #
03214  M00S01728.sform   +++|  C<16,25>DAYMESSAGE = NONAME;       # OVER RIDE PROCEDURE MSG. #
03215  M00S01729.sform   +++|  END
03216  M00S01730.sform   +++|ELSE
03217  M00S01731.sform   +++|  BEGIN                              # PUT IN NAME AND MESSAGE #
03218  M00S01732.sform   +++|  C<16,PANLEN>DAYMESSAGE = PANELNAME;
03219  M00S01733.sform   +++|  C<16+PANLEN,25-PANLEN>DAYMESSAGE = PROCMSG;
03220  M00S01734.sform   +++|  END
03221  M00S01735.sform   +++|
03222  M00S01736.sform   +++|VDTMSG$(DAYMESSAGE,DAYFILE,1);       # ISSUE DAYFILE MESSAGE #
03223  M00S01737.sform   +++|
03224  M00S01738.sform   +++|IF FATAL THEN
03225  M00S01739.sform   +++|  BEGIN                              # IF FATAL ERROR #
Line S00813 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03226  M01S00813.242l642 +++|*IF UNDEF,QTRM
03227  M00S01740.sform   +++|    IF TERSCREENM[0] THEN
03228  M00S01741.sform   +++|      BEGIN                          # IF IN SCREEN MODE #
Line S01742 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03229  M01S01742.242l642 ---|      TERSCREENM[0] = FALSE;         # SET LINE MODE #
Line S00814 Modification History
M01 (Added by) 242l642
M02 (Removed by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03230  M02S00814.252l678 ---|      IF FIRSTWRITE THEN
Line S00136 Modification History
M01 (Added by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03231  M01S00136.252l678 +++|      IF NOT TERVDTBOOC[0] THEN
Line S00815 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03232  M01S00815.242l642 +++|        BEGIN                        # IF FIRST WRITE #
03233  M01S00816.242l642 +++|        VDTBOO;                      # BEGIN OUTPUT SEQUENCE #
03234  M01S00817.242l642 +++|        END
03235  M00S01743.sform   +++|      VDTCLS;                        # CLEAR SCREEN #
03236  M00S01744.sform   +++|      FOR PLTCOUNT = 1 STEP 1 UNTIL PLTNUMENT[0] DO
03237  M00S01745.sform   +++|        BEGIN                        # CLEAR SEQUENCE NUMBERS #
03238  M00S01746.sform   +++|        PLTENTRYNM[PLTCOUNT] = 0;
03239  M00S01747.sform   +++|        END
03240  M00S01748.sform   +++|      PLTNUMONSC[0] = 0;             # NO PANELS ON SCREEN #
03241  M00S01749.sform   +++|      TERMESWRIT[0] = FALSE;
03242  M00S01750.sform   +++|      TERMESREAD[0] = FALSE;
Line S01751 Modification History
M01 (Removed by) ns2231
Seq #  *Modification Id* Act 
----------------------------+
03243  M01S01751.ns2231  ---|      VDTSTM(TERMMODEL,LINE);        # SET LINE MODE #
Line S00002 Modification History
M01 (Added by) ns2231
Seq #  *Modification Id* Act 
----------------------------+
03244  M01S00002.ns2231  +++|      VDTSTM(LINE,DUMMY);            # SET LINE MODE #
Line S00818 Modification History
M01 (Added by) 242l642
M02 (Removed by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03245  M02S00818.252l678 ---|      VDTEOO;                        # END OUTPUT SEQUENCE #
Line S00137 Modification History
M01 (Added by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03246  M01S00137.252l678 +++|      IF NOT TERNOVDTEO[0] THEN VDTEOO;
Line S00819 Modification History
M01 (Added by) 242l642
M02 (Removed by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03247  M02S00819.252l678 ---|      FIRSTWRITE = TRUE;
Line S00138 Modification History
M01 (Added by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03248  M01S00138.252l678 +++|      TERVDTBOOC[0] = FALSE;
03249  M00S01752.sform   +++|      VDTCLO(RECALL);                # FLUSH OUTPUT, RECALL #
03250  M00S01753.sform   +++|      END
Line S01754 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03251  M01S01754.242l642 ---|    ACTIVEPAN = "       ";           # CLEAR ACTIVE PANEL NAME #
03252  M01S01755.242l642 ---|    ACTPANPLTI = 0;                  # CLEAR PLT INDEX #
Line S00820 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03253  M01S00820.242l642 +++|    TERACTPANL[0] = "       ";       # CLEAR ACTIVE PANEL NAME #
03254  M01S00821.242l642 +++|    TERACTPLTI[0] = 0;               # CLEAR PLT INDEX #
03255  M00S01756.sform   +++|    TERCNWRIOV[0] = FALSE;           # DO NOT ALLOW OVERLAY WRITE #
03256  M00S01757.sform   +++|    VDTMSG$(NOMSG,1,1);              # CLEAR B-DISPLAY #
03257  M00S01758.sform   +++|    TERSHOWFLG[0] = FALSE;
03258  M00S01759.sform   +++|    TERREADFLG[0] = FALSE;
Line S01760 Modification History
M01 (Removed by) sform21
Seq #  *Modification Id* Act 
----------------------------+
03259  M01S01760.sform21 ---|  STOP;                              # TERMINATE PROGRAM #
Line S00002 Modification History
M01 (Added by) sform21
Seq #  *Modification Id* Act 
----------------------------+
03260  M01S00002.sform21 +++|  ABORT;                             # ABORT THE PROGRAM #
Line S00822 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03261  M01S00822.242l642 +++|*ELSE
Line S00823 Modification History
M01 (Added by) 242l642
M02 (Removed by) sform21
Seq #  *Modification Id* Act 
----------------------------+
03262  M02S00823.sform21 ---|  STOP;                              # ABORT THE USER #
Line S00003 Modification History
M01 (Added by) sform21
Seq #  *Modification Id* Act 
----------------------------+
03263  M01S00003.sform21 +++|  ABORT;                             # ABORT THE USER #
Line S00824 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03264  M01S00824.242l642 +++|*ENDIF
03265  M00S01761.sform   +++|  END
03266  M00S01762.sform   +++|
03267  M00S01763.sform   +++|END  # ERRMSG #
03268  M00S01764.sform   +++|CONTROL EJECT;
03269  M00S01765.sform   +++|
03270  M00S01766.sform   +++|PROC FFIELD(INPOS,FIELD,OFFSET,OUTFLAG);
03271  M00S01767.sform   +++|
03272  M00S01768.sform   +++|# TITLE FFIELD - FIND INPUT FIELD. #
03273  M00S01769.sform   +++|
03274  M00S01770.sform   +++|BEGIN  # FFIELD #
03275  M00S01771.sform   +++|
03276  M00S01772.sform   +++|#
03277  M00S01773.sform   +++|**    FFIELD - FIND INPUT FIELD.
03278  M00S01774.sform   +++|*
03279  M00S01775.sform   +++|*     THIS PROCEDURE FINDS THE ACTIVE INPUT FIELD ASSOCIATED WITH
03280  M00S01776.sform   +++|*     THE INPUT RECEIVED FROM SCREEN POSITION INPOS.
03281  M00S01777.sform   +++|*
03282  M00S01778.sform   +++|*     PROC FFIELD(INPOS,FIELD,OFFSET)
03283  M00S01779.sform   +++|*
03284  M00S01780.sform   +++|*     ENTRY   INPOS      = X/Y POSITION
03285  M00S01781.sform   +++|*             OUTFLAG    = TRUE, INCLUDE ACTIVE OUTPUT ONLY
03286  M00S01782.sform   +++|*                          FIELDS IN THE SEARCH.
03287  M00S01783.sform   +++|*
03288  M00S01784.sform   +++|*     EXIT    FIELD      = FIELD ASSOCIATED WITH INPUT.
03289  M00S01785.sform   +++|*                        = -1 IF NOT IN A FIELD.
03290  M00S01786.sform   +++|*             OFFSET     = OFFSET OF INPUT INTO FIELD.
03291  M00S01787.sform   +++|*
03292  M00S01788.sform   +++|*     NOTES   FFIELD ASSUMES THAT FIELDS DO NOT SPAN LINES.
03293  M00S01789.sform   +++|#
03294  M00S01790.sform   +++|ITEM INPOS      I;                   # X/Y POSITION #
03295  M00S01791.sform   +++|ITEM FIELD      I;                   # INDEX INTO FLDLIST #
03296  M00S01792.sform   +++|ITEM OFFSET     I;                   # OFFSET INTO FIELD #
03297  M00S01793.sform   +++|ITEM OUTFLAG    B;                   # INCLUDE OUT-ONLY FIELDS #
03298  M00S01794.sform   +++|
03299  M00S01795.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03300  M00S01796.sform   +++|ITEM NOTEND     B;                   # NOT END OF SEARCH #
03301  M00S01797.sform   +++|
03302  M00S01798.sform   +++|FIELD = -1;                          # NOT FOUND UNTIL PROVEN FOUND #
03303  M00S01799.sform   +++|NOTEND = TRUE;
03304  M00S01800.sform   +++|OFFSET = 0;
03305  M00S01801.sform   +++|
03306  M00S01802.sform   +++|FOR I = 0 STEP 1 WHILE NOTEND
03307  M00S01803.sform   +++|  AND FLDENTRY[I] NQ 0 DO
03308  M00S01804.sform   +++|  BEGIN                              # FIND FIELD CHAR WAS ENTERED IN #
03309  M00S01805.sform   +++|  IF INPOS LS FLDPOS[I] AND FLDACTIVE[I] THEN NOTEND = FALSE;
03310  M00S01806.sform   +++|  ELSE
03311  M00S01807.sform   +++|    BEGIN
03312  M00S01808.sform   +++|    IF (FLDINPUTV[I] AND FLDACTIVE[I])
03313  M00S01809.sform   +++|      OR (FLDVARFLAG[I] AND OUTFLAG AND FLDACTIVE[I]) THEN
03314  M00S01810.sform   +++|      BEGIN
03315  M00S01811.sform   +++|      FIELD = I;
03316  M00S01812.sform   +++|      END
03317  M00S01813.sform   +++|    END
03318  M00S01814.sform   +++|  END
03319  M00S01815.sform   +++|
03320  M00S01816.sform   +++|IF VALIDFIELD THEN
03321  M00S01817.sform   +++|  BEGIN                              # IF VALID FIELD FOUND #
03322  M00S01818.sform   +++|  OFFSET = INPOS - FLDPOS[FIELD];
03323  M00S01819.sform   +++|  IF OFFSET GQ FLDLENGTH[FIELD] THEN
03324  M00S01820.sform   +++|    BEGIN                            # INPUT BEYOND END OF FIELD #
03325  M00S01821.sform   +++|    OFFSET = 0;
03326  M00S01822.sform   +++|    FIELD = -1;
03327  M00S01823.sform   +++|    END
03328  M00S01824.sform   +++|  END
03329  M00S01825.sform   +++|
03330  M00S01826.sform   +++|END  # FFIELD #
03331  M00S01827.sform   +++|CONTROL EJECT;
03332  M00S01828.sform   +++|
03333  M00S01829.sform   +++|PROC FFIRST(FLDIND);
03334  M00S01830.sform   +++|
03335  M00S01831.sform   +++|# TITLE FFIRST - FIND FIRST INPUT FIELD. #
03336  M00S01832.sform   +++|
03337  M00S01833.sform   +++|BEGIN  # FFIRST #
03338  M00S01834.sform   +++|
03339  M00S01835.sform   +++|#
03340  M00S01836.sform   +++|**    FFIRST - FIND FIRST INPUT FIELD.
03341  M00S01837.sform   +++|*
03342  M00S01838.sform   +++|*     THIS PROCEDURE FINDS THE FIRST ACTIVE INPUT FIELD IN THE PANEL
03343  M00S01839.sform   +++|*     THAT DOES NOT HAVE A VALID ENTRY.  IF ALL INPUT FIELDS ARE BOTH
03344  M00S01840.sform   +++|*     ENTERED AND VALID THEN THE FIRST ACTIVE INPUT FIELD IS RETURNED.
03345  M00S01841.sform   +++|*
03346  M00S01842.sform   +++|*     PROC FFIRST(FLDIND)
03347  M00S01843.sform   +++|*
03348  M00S01844.sform   +++|*     EXIT     FLDIND    = INDEX OF FIRST INPUT FIELD
03349  M00S01845.sform   +++|*                        = -1, IF NO INPUT FIELD FOUND.
03350  M00S01846.sform   +++|#
03351  M00S01847.sform   +++|ITEM FLDIND     I;                   # FIELD INDEX #
03352  M00S01848.sform   +++|
03353  M00S01849.sform   +++|ITEM FIRST      B;                   # STILL LOOKING FOR FIRST FIELD #
03354  M00S01850.sform   +++|ITEM FOUND      B;                   # FOUND AN UNENTERED INPUT FIELD #
03355  M00S01851.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03356  M00S01852.sform   +++|
03357  M00S01853.sform   +++|FLDIND = -1;
03358  M00S01854.sform   +++|FIRST = TRUE;
03359  M00S01855.sform   +++|FOUND = FALSE;
03360  M00S01856.sform   +++|
03361  M00S01857.sform   +++|FOR I = 0 STEP 1 WHILE NOT FOUND AND FLDENTRY[I] NQ 0 DO
03362  M00S01858.sform   +++|  BEGIN                              # SEARCH FIELD LIST #
03363  M00S01859.sform   +++|  IF FLDINPUTV[I] AND NOT FOUND AND FLDACTIVE[I]
03364  M00S01860.sform   +++|    AND (NOT FLDENTERED[I] OR NOT FLDVALID[I]) THEN
03365  M00S01861.sform   +++|    BEGIN                            # FIRST AVAILABLE FIELD #
03366  M00S01862.sform   +++|    FIRST = FALSE;
03367  M00S01863.sform   +++|    FOUND = TRUE;
03368  M00S01864.sform   +++|    FLDIND = I;
03369  M00S01865.sform   +++|    END
03370  M00S01866.sform   +++|  ELSE IF FIRST AND FLDINPUTV[I] AND FLDACTIVE[I] THEN
03371  M00S01867.sform   +++|    BEGIN                            # FIRST INPUT FIELD #
03372  M00S01868.sform   +++|    FIRST = FALSE;
03373  M00S01869.sform   +++|    FLDIND = I;
03374  M00S01870.sform   +++|    END
03375  M00S01871.sform   +++|  END
03376  M00S01872.sform   +++|
03377  M00S01873.sform   +++|END  # FFIRST #
03378  M00S01874.sform   +++|CONTROL EJECT;
03379  M00S01875.sform   +++|
03380  M00S01876.sform   +++|PROC FMATCH(FLDIND,MATCHIND,MATCHCOUNT);
03381  M00S01877.sform   +++|
03382  M00S01878.sform   +++|# TITLE FMATCH - FIND ENTRY IN MATCH LIST. #
03383  M00S01879.sform   +++|
03384  M00S01880.sform   +++|BEGIN  # FMATCH #
03385  M00S01881.sform   +++|
03386  M00S01882.sform   +++|#
03387  M00S01883.sform   +++|**    FMATCH - FIND ENTRY IN MATCH LIST.
03388  M00S01884.sform   +++|*
03389  M00S01885.sform   +++|*     THIS PROCEDURE FINDS THE FIRST ENTRY IN THE VARIABLE MATCH LIST
03390  M00S01886.sform   +++|*     WHICH MATCHES THE ENTERED CHARACTERS COMPLETELY OR IN PART.
03391  M00S01887.sform   +++|*
03392  M00S01888.sform   +++|*     PROC FMATCH(FLDIND,MATCHIND,MATCHCOUNT)
03393  M00S01889.sform   +++|*
03394  M00S01890.sform   +++|*     ENTRY   FLDIND     = POINTER INTO FLDLIST OF CURRENT FIELD.
03395  M00S01891.sform   +++|*
03396  M00S01892.sform   +++|*     EXIT    MATCHIND   = INDEX INTO MATCHLIST OF FIRST VALID MATCH.
03397  M00S01893.sform   +++|*                        = -1 IF NO VALID MATCH FOUND.
03398  M00S01894.sform   +++|*             MATCHCOUNT = NUMBER OF VALID MATCHES FOUND.
03399  M00S01895.sform   +++|*                          -1 IF EXACT (TO 10 CHARACTERS) MATCH FOUND.
03400  M00S01896.sform   +++|#
03401  M00S01897.sform   +++|ITEM FLDIND     I;                   # INDEX OF FIELD IN FLDLIST #
03402  M00S01898.sform   +++|ITEM MATCHIND   I;                   # INDEX OF MATCH IN MATCHLIST #
03403  M00S01899.sform   +++|ITEM MATCHCOUNT I;                   # NUMBER OF VALID MATCHES FOUND #
03404  M00S01900.sform   +++|
03405  M00S01901.sform   +++|ITEM CHARPOS    I;                   # INPUT CHAR POSITION IN FIELD #
03406  M00S01902.sform   +++|ITEM EXACT      B;                   # EXACT MATCH FOUND #
03407  M00S01903.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03408  M00S01904.sform   +++|ITEM INPCHAR    I;                   # INPUT CHARACTER #
03409  M00S01905.sform   +++|ITEM LASTCHARP  I;                   # LAST INPUT CHARACTER POSITION #
03410  M00S01906.sform   +++|ITEM MATCHCHAR  I;                   # MATCH CHARACTER #
03411  M00S01907.sform   +++|ITEM MATCHCI    I;                   # CHAR INDEX OF MATCH CHARACTER #
03412  M00S01908.sform   +++|ITEM MATCHED    B;                   # INPUT MATCHED LIST ENTRY #
03413  M00S01909.sform   +++|ITEM MATCHLEN   I;                   # LENGTH OF MATCH STRING #
Line S00001 Modification History
M01 (Added by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03414  M01S00001.ns2612  +++|ITEM MATCHMAX   I;                   # EXACT MATCH CHARACTER COUNT   #
03415  M01S00002.ns2612  +++|ITEM MATCHWDS   I;                   # NUMBER OF WORDS TO HOLD FIELD #
03416  M00S01910.sform   +++|ITEM MATCHWI    I;                   # WORD INDEX OF MATCH CHARACTER #
03417  M00S01911.sform   +++|ITEM STARTCHARP I;                   # FIRST INPUT CHARACTER POSITION #
03418  M00S01912.sform   +++|ITEM VARIND     I;                   # INDEX INTO VARLIST #
03419  M00S01913.sform   +++|
03420  M00S01914.sform   +++|VARIND = FLDVARORD[FLDIND];
03421  M00S01915.sform   +++|P<MATCHLIST> = LOC(RECWORDC[0]) + VARVALOS[VARIND];
03422  M00S01916.sform   +++|MATCHCHAR = 0;
03423  M00S01917.sform   +++|
03424  M00S01918.sform   +++|LASTCHARP = -1;
03425  M00S01919.sform   +++|STARTCHARP = -1;
03426  M00S01920.sform   +++|
03427  M00S01921.sform   +++|FOR I = 0 STEP 1 UNTIL FLDLENGTH[FLDIND] - 1 DO
03428  M00S01922.sform   +++|  BEGIN                              # LOOK FOR FIRST AND LAST CHAR #
03429  M00S01923.sform   +++|  IF NEXTCHAR(FLDIND,I) NQ BLANK THEN
03430  M00S01924.sform   +++|    BEGIN                            # NON-BLANK CHARACTER #
03431  M00S01925.sform   +++|    LASTCHARP = I;
03432  M00S01926.sform   +++|    IF STARTCHARP EQ -1 THEN STARTCHARP = I;
03433  M00S01927.sform   +++|    END
03434  M00S01928.sform   +++|  END
03435  M00S01929.sform   +++|
03436  M00S01930.sform   +++|IF STARTCHARP EQ -1 THEN
03437  M00S01931.sform   +++|  BEGIN                              # NO CHARACTERS FOUND #
03438  M00S01932.sform   +++|  STARTCHARP = 0;
03439  M00S01933.sform   +++|  LASTCHARP = 0;
03440  M00S01934.sform   +++|  END
03441  M00S01935.sform   +++|MATCHLEN = LASTCHARP - STARTCHARP + 1;
Line S01936 Modification History
M01 (Removed by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03442  M01S01936.ns2612  ---|IF MATCHLEN GR 10 THEN MATCHLEN = 10;
03443  M01S01937.ns2612  ---|MATCHIND = -1;                       # DEFAULT INDEX IF MISSING #
Line S00003 Modification History
M01 (Added by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03444  M01S00003.ns2612  +++|MATCHMAX = FLDLENGTH[FLDIND];
03445  M01S00004.ns2612  +++|IF PANVERSION[0] EQ 0 THEN
03446  M01S00005.ns2612  +++|  BEGIN                              # IF MATCH ENTRIES ONLY 10 CHAR. #
03447  M01S00006.ns2612  +++|  IF MATCHMAX GR 10 THEN
03448  M01S00007.ns2612  +++|    BEGIN
03449  M01S00008.ns2612  +++|    MATCHMAX = 10;
03450  M01S00009.ns2612  +++|    IF MATCHLEN GR 10 THEN MATCHLEN = 10;
03451  M01S00010.ns2612  +++|    END
03452  M01S00011.ns2612  +++|  END
03453  M01S00012.ns2612  +++|MATCHWDS = (MATCHMAX+9)/10;          # WORDS PER MATCH ENTRY #
03454  M01S00013.ns2612  +++|MATCHIND = -MATCHWDS;                # DEFAULT INDEX IF NO MATCH #
03455  M00S01938.sform   +++|MATCHCOUNT = 0;
03456  M00S01939.sform   +++|
Line S01940 Modification History
M01 (Removed by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03457  M01S01940.ns2612  ---|FOR MATCHWI = 0 STEP 1 WHILE MATCHWORD[MATCHWI] NQ 0
Line S00014 Modification History
M01 (Added by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03458  M01S00014.ns2612  +++|FOR MATCHWI = 0 STEP MATCHWDS WHILE MATCHWORD[MATCHWI] NQ 0
03459  M00S01941.sform   +++|  AND MATCHCOUNT GQ 0 DO
03460  M00S01942.sform   +++|  BEGIN
03461  M00S01943.sform   +++|  MATCHED = TRUE;
03462  M00S01944.sform   +++|  CHARPOS = STARTCHARP;
Line S01945 Modification History
M01 (Removed by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03463  M01S01945.ns2612  ---|  FOR MATCHCI = 0 STEP 1 UNTIL MATCHLEN - 1 DO
Line S00015 Modification History
M01 (Added by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03464  M01S00015.ns2612  +++|  FOR MATCHCI = 0 STEP 1 WHILE MATCHED AND MATCHCI LS MATCHLEN DO
03465  M00S01946.sform   +++|    BEGIN                            # CHECK CHARACTERS FOR MATCH #
03466  M00S01947.sform   +++|    B<48,12>MATCHCHAR = C<MATCHCI*2,2>MATCH[MATCHWI];
03467  M00S01948.sform   +++|    INPCHAR = NEXTCHAR(FLDIND,CHARPOS);
03468  M00S01949.sform   +++|    IF UPPER(MATCHCHAR) NQ UPPER(INPCHAR) THEN MATCHED = FALSE;
03469  M00S01950.sform   +++|    CHARPOS = CHARPOS + 1;
03470  M00S01951.sform   +++|    END
03471  M00S01952.sform   +++|  IF MATCHED THEN
03472  M00S01953.sform   +++|    BEGIN                            # FIRST (MATCHLEN) CHARS MATCH #
03473  M00S01954.sform   +++|    EXACT = TRUE;
Line S01955 Modification History
M01 (Removed by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03474  M01S01955.ns2612  ---|    IF MATCHLEN LS 10 THEN
Line S00016 Modification History
M01 (Added by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03475  M01S00016.ns2612  +++|    FOR MATCHCI = MATCHLEN STEP 1 UNTIL MATCHMAX-1 DO
03476  M00S01956.sform   +++|      BEGIN                          # CHECK REST OF CHARS FOR BLANKS #
Line S01957 Modification History
M01 (Removed by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03477  M01S01957.ns2612  ---|      FOR MATCHCI = MATCHLEN STEP 1 UNTIL 9 DO
03478  M01S01958.ns2612  ---|        BEGIN
03479  M01S01959.ns2612  ---|        IF C<MATCHCI*2,2>MATCH[MATCHWI] NQ BLANK THEN EXACT = FALSE;
03480  M01S01960.ns2612  ---|        END
Line S00017 Modification History
M01 (Added by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03481  M01S00017.ns2612  +++|      IF C<MATCHCI*2,2>MATCH[MATCHWI] NQ BLANK THEN EXACT = FALSE;
03482  M00S01961.sform   +++|      END
03483  M00S01962.sform   +++|    IF EXACT THEN
03484  M00S01963.sform   +++|      BEGIN                          # EXACT MATCH FOUND #
03485  M00S01964.sform   +++|      MATCHCOUNT = -1;               # FLAG ENTRY FOUND #
03486  M00S01965.sform   +++|      MATCHIND = MATCHWI;
03487  M00S01966.sform   +++|      END
03488  M00S01967.sform   +++|    ELSE
Line S01968 Modification History
M01 (Removed by) ns2249
Seq #  *Modification Id* Act 
----------------------------+
03489  M01S01968.ns2249  ---|      BEGIN                        # PARTIAL MATCH FOUND #
Line S00002 Modification History
M01 (Added by) ns2249
Seq #  *Modification Id* Act 
----------------------------+
03490  M01S00002.ns2249  +++|      BEGIN                          # PARTIAL MATCH FOUND #
03491  M00S01969.sform   +++|      MATCHCOUNT = MATCHCOUNT + 1;
03492  M00S01970.sform   +++|      IF MATCHCOUNT EQ 1 THEN MATCHIND = MATCHWI;  # IF FIRST ONE #
03493  M00S01971.sform   +++|      END
03494  M00S01972.sform   +++|    END
03495  M00S01973.sform   +++|  END
03496  M00S01974.sform   +++|
03497  M00S01975.sform   +++|END  # FMATCH #
03498  M00S01976.sform   +++|CONTROL EJECT;
03499  M00S01977.sform   +++|
03500  M00S01978.sform   +++|PROC FUNKEY(INPOS,OFFSET,FUNTYPE,ORDINAL,FIELD);
03501  M00S01979.sform   +++|
03502  M00S01980.sform   +++|# TITLE FUNKEY - PROCESS FUNCTION KEY ACTION. #
03503  M00S01981.sform   +++|
03504  M00S01982.sform   +++|BEGIN  # FUNKEY #
03505  M00S01983.sform   +++|
03506  M00S01984.sform   +++|#
03507  M00S01985.sform   +++|**    FUNKEY - PROCESS FUNCTION KEY ACTION.
03508  M00S01986.sform   +++|*
03509  M00S01987.sform   +++|*     THIS PROCEDURE SEARCHES THE FUNCTION LIST TO FIND THE ACTION TO
03510  M00S01988.sform   +++|*     AKE FOR THE FUNCTION KEY, IF ANY.  IT THEN TAKES THE DEFINED
03511  M00S01989.sform   +++|*     ACTION IF NO SOFT TABS ARE PENDING.  IF SOFT TABS ARE PENDING
03512  M00S01990.sform   +++|*     THE FUNCTION IS IGNORED AND IF THE FUNCTION KEY DOES NOT HAVE
03513  M00S01991.sform   +++|*     A DEFINED ACTION THE SOFT TAB COUNTER WILL BE INCREMENTED.  THE
03514  M00S01992.sform   +++|*     ONLY EXCEPTION IS A HELP REQUEST WHICH WILL SET HELP PENDING
03515  M00S01993.sform   +++|*     TO BE PROCESSED AFTER ALL SOFT TABS HAVE BEEN PROCESSED.
03516  M00S01994.sform   +++|*
03517  M00S01995.sform   +++|*     PROC FUNKEY(INPOS,OFFSET,FUNTYPE,ORDINAL,FIELD)
03518  M00S01996.sform   +++|*
03519  M00S01997.sform   +++|*     ENTRY   INPOS      = X/Y POSITION WHERE FUNCTION WAS ENTERED.
03520  M00S01998.sform   +++|*             OFFSET     = OFFSET INTO FIELD WHERE FUNCTION WAS ENTERED.
03521  M00S01999.sform   +++|*             FUNTYPE    = 24, GENERIC FUNCTION KEY.
03522  M00S02000.sform   +++|*                        = 23, APPLICATION FUNCTION KEY.
03523  M00S02001.sform   +++|*             ORDINAL    = FUNCTION KEY ORDINAL.
03524  M00S02002.sform   +++|*             FIELD      = FIELD WHERE FIELD WAS ENTERED.
Line S02003 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03525  M01S02003.242l642 ---|*             SOFTTAB    = COUNT OF CURRENT SOFT TABS PENDING.
Line S00825 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03526  M01S00825.242l642 +++|*             TERSOFTTAB = COUNT OF CURRENT SOFT TABS PENDING.
03527  M00S02004.sform   +++|*
03528  M00S02005.sform   +++|*     EXIT    INPOS      = NEW X/Y POSITION
03529  M00S02006.sform   +++|*             FIELD      = NEW FIELD POSITION
Line S02007 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03530  M01S02007.242l642 ---|*             SOFTTAB    = UPDATED SOFT TAB COUNT
03531  M01S02008.242l642 ---|*             SOFTPOS    = INPOS IF FIRST SOFT TAB CREATED
Line S00826 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03532  M01S00826.242l642 +++|*             TERSOFTTAB = UPDATED SOFT TAB COUNT
03533  M01S00827.242l642 +++|*             TERSOFTPOS = INPOS IF FIRST SOFT TAB CREATED
03534  M00S02009.sform   +++|*             TERABNTERM = TRUE, TERMINATE INPUT ABNORMALLY
03535  M00S02010.sform   +++|*             TERNRMTERM = TRUE, TERMINATE INPUT NORMALLY
Line S02011 Modification History
M01 (Removed by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03536  M01S02011.252l678 ---|*             TERRETRNOS = TRUE, RETURN CONTROL TO OPERATING SYSTEM
03537  M01S02012.252l678 ---|*                        = FALSE, RETURN CONTROL TO APPLICATION
03538  M00S02013.sform   ---|*
03539  M00S02014.sform   ---|*     CALLS   FMATCH, MMATCH, TABKEY.
03540  M00S02015.sform   ---|*
03541  M00S02016.sform   ---|*     USES    TERABNTERM, TERFUNCGEN, TERFUNCORD, TERFUNCPOS,
03542  M00S02017.sform   ---|*             TERHELPFLD, TERHELPREQ, TERNRMTERM, TERPENDHLP,
03543  M01S02018.252l678 ---|*             TERRETRNOS, TERSOFTPOS, TERSOFTTAB.
Line S00139 Modification History
M01 (Added by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03544  M01S00139.252l678 +++|*             TERSOFTPOS, TERSOFTTAB.
03545  M00S02019.sform   +++|*
03546  M00S02020.sform   +++|*     NOTES   FLDENTERED, FLDVALID, FLDREWRITE, TERREWFLDS AND VARDATA
03547  M00S02021.sform   +++|*             UPDATED IF MATCH ADVANCE OCCURRED.  SWITCH ACTTYPE MUST
03548  M00S02022.sform   +++|*             PARALLEL PDU DEFINITION FOR FUNCTION KEY ACTIONS.
03549  M00S02023.sform   +++|#
03550  M00S02024.sform   +++|ITEM INPOS      I;                   # X/Y POSITION OF CURSOR #
03551  M00S02025.sform   +++|ITEM OFFSET     I;                   # OFFSET INTO FIELD #
03552  M00S02026.sform   +++|ITEM FUNTYPE    I;                   # APPLICATION OR GENERIC #
03553  M00S02027.sform   +++|ITEM ORDINAL    I;                   # FUNCTION KEY ORDINAL #
03554  M00S02028.sform   +++|ITEM FIELD      I;                   # INDEX OF FIELD #
03555  M00S02029.sform   +++|
03556  M00S02030.sform   +++|DEF  FH         #9#;                 # ORDINAL FOR HELP AS AN ACTION #
03557  M00S02031.sform   +++|DEF  FM         #10#;                # ORDINAL FOR MATCH ADVANCE #
03558  M00S02032.sform   +++|
03559  M00S02033.sform   +++|ITEM ACTION     I;                   # ORDINAL OF ACTION #
03560  M00S02034.sform   +++|ITEM CHAR       I;                   # 12-BIT CHARACTER #
03561  M00S02035.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03562  M00S02036.sform   +++|ITEM MATCHCOUNT I;                   # NUMBER OF VALID MATCHES #
03563  M00S02037.sform   +++|ITEM MATCHIND   I;                   # INDEX INTO MATCHLIST #
03564  M00S02038.sform   +++|ITEM NOTDONE    B;                   # FUNCTION LIST ENTRY NOT FOUND #
03565  M00S02039.sform   +++|ITEM SCRPOS     I;                   # SCRATCH POSITION FOR TABKEY #
03566  M00S02040.sform   +++|ITEM VARIND     I;                   # INDEX INTO VARLIST #
03567  M00S02041.sform   +++|
03568  M00S02042.sform   +++|SWITCH ACTTYPE                       # TYPE OF ACTION TO TAKE #
03569  M00S02043.sform   +++|  TABSOFTLY,                         # PROCESS SOFT TAB #
03570  M00S02044.sform   +++|  NORMTOAPP,                         # RETURN NORMALLY TO APPLICATION #
03571  M00S02045.sform   +++|  NORMTONOS,                         # RETURN NORMALLY TO OPER. SYS. #
03572  M00S02046.sform   +++|  ABNORTOAPP,                        # RETURN ABNORMALLY TO APPL. #
03573  M00S02047.sform   +++|  ABNORTONOS,                        # RETURN ABNORMALLY TO OPER. SYS #
03574  M00S02048.sform   +++|  PAGEFORWARD,                       # PAGE TABLE FORWARD #
03575  M00S02049.sform   +++|  PAGEBAKWARD,                       # PAGE TABLE BACKWARD #
03576  M00S02050.sform   +++|  INSERTROW,                         # INSERT ROW IN TABLE #
03577  M00S02051.sform   +++|  DELETEROW,                         # DELETE ROW IN TABLE #
03578  M00S02052.sform   +++|  GIVEHELP,                          # PROVIDE HELP #
03579  M00S02053.sform   +++|  MATCHADV;                          # ADVANCE MATCH ENTRY #
03580  M00S02054.sform   +++|
03581  M00S02055.sform   +++|# SAVE FUNCTION KEY ORDINAL AND KEY TYPE #
03582  M00S02056.sform   +++|
Line S02057 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03583  M01S02057.242l642 ---|FUNCORD = ORDINAL;
Line S00828 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03584  M01S00828.242l642 +++|TERFUNCORD[0] = ORDINAL;
03585  M00S02058.sform   +++|TERFUNCGEN[0] = FUNTYPE EQ SCREENST"GKEY";
Line S02059 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03586  M01S02059.242l642 ---|FUNCPOS = INPOS;
Line S00829 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03587  M01S00829.242l642 +++|TERFUNCPOS[0] = INPOS;
03588  M00S02060.sform   +++|
Line S02061 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03589  M01S02061.242l642 ---|IF SOFTTAB NQ 0 AND TERFUNCGEN[0]
Line S00830 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03590  M01S00830.242l642 +++|IF TERSOFTTAB[0] NQ 0 AND TERFUNCGEN[0]
03591  M00S02062.sform   +++|  AND ORDINAL EQ GENERICST"GNEXT" THEN
03592  M00S02063.sform   +++|  BEGIN                              # NEXT FOLLOWING SOFT TAB #
03593  M00S02064.sform   +++|  GOTO NOACTION;
03594  M00S02065.sform   +++|  END
03595  M00S02066.sform   +++|
03596  M00S02067.sform   +++|IF PANSTRFUN[0] EQ 0 THEN
03597  M00S02068.sform   +++|  BEGIN                              # NO FUNCTION LIST #
03598  M00S02069.sform   +++|  IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GSTOP" THEN
03599  M00S02070.sform   +++|    BEGIN                            # DEFAULT STOP ACTION #
Line S02071 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03600  M01S02071.242l642 ---|    IF SOFTTAB EQ 0 THEN
Line S00831 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03601  M01S00831.242l642 +++|    IF TERSOFTTAB[0] EQ 0 THEN
03602  M00S02072.sform   +++|      BEGIN                          # IF NO SOFT TABS PENDING #
03603  M00S02073.sform   +++|      GOTO ABNORTOAPP;
03604  M00S02074.sform   +++|      END
03605  M00S02075.sform   +++|    ELSE
03606  M00S02076.sform   +++|      BEGIN                          # IF SOFT TABS PENDING #
03607  M00S02077.sform   +++|      GOTO NOACTION;
03608  M00S02078.sform   +++|      END
03609  M00S02079.sform   +++|    END
03610  M00S02080.sform   +++|  IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GHELP" THEN
03611  M00S02081.sform   +++|     BEGIN                           # IF HELP REQUESTED #
03612  M00S02082.sform   +++|     GOTO GIVEHELP;                  # PROVIDE HELP #
03613  M00S02083.sform   +++|     END
03614  M00S02084.sform   +++|  GOTO NORMTOAPP;                    # TAKE DEFAULT ACTION #
03615  M00S02085.sform   +++|  END
03616  M00S02086.sform   +++|
03617  M00S02087.sform   +++|NOTDONE = TRUE;
03618  M00S02088.sform   +++|FOR I = 0 STEP 1 WHILE NOTDONE AND FUNWORD[I] NQ 0 DO
03619  M00S02089.sform   +++|  BEGIN                              # LOOK FOR ENTRY IN FUNLIST #
03620  M00S02090.sform   +++|  IF ((FUNGENERIC[I] AND TERFUNCGEN[0])
03621  M00S02091.sform   +++|    OR (NOT FUNGENERIC[I] AND NOT TERFUNCGEN[0]))
03622  M00S02092.sform   +++|    AND FUNNUMBER[I] EQ ORDINAL THEN
03623  M00S02093.sform   +++|    BEGIN                            # FOUND FUNLIST ENTRY #
03624  M00S02094.sform   +++|    NOTDONE = FALSE;
03625  M00S02095.sform   +++|    ACTION = FUNACT[I];              # ASSIGN DEFINED ACTION #
03626  M00S02096.sform   +++|    END
03627  M00S02097.sform   +++|  END
03628  M00S02098.sform   +++|
03629  M00S02099.sform   +++|IF NOTDONE THEN
03630  M00S02100.sform   +++|  BEGIN                              # NOT IN LIST #
03631  M00S02101.sform   +++|  IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GHELP" THEN
03632  M00S02102.sform   +++|    BEGIN
03633  M00S02103.sform   +++|    GOTO GIVEHELP;
03634  M00S02104.sform   +++|    END
03635  M00S02105.sform   +++|  ELSE GOTO TABSOFTLY;               # PROCESS SOFT TAB #
03636  M00S02106.sform   +++|  END
03637  M00S02107.sform   +++|IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GHELP"
03638  M00S02108.sform   +++|  AND FIELD NQ -1 THEN
03639  M00S02109.sform   +++|  BEGIN                              # HELP KEY ENTERED IN A FIELD #
03640  M00S02110.sform   +++|  IF VARHSOS[FLDVARORD[FIELD]] NQ 0 THEN
03641  M00S02111.sform   +++|    BEGIN                            # HELP STRING DEFINED #
03642  M00S02112.sform   +++|    GOTO GIVEHELP;                   # GIVE HELP #
03643  M00S02113.sform   +++|    END
03644  M00S02114.sform   +++|  END
Line S02115 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03645  M01S02115.242l642 ---|IF SOFTTAB NQ 0 AND ACTION NQ FM AND ACTION NQ FH THEN
Line S00832 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03646  M01S00832.242l642 +++|IF TERSOFTTAB[0] NQ 0 AND ACTION NQ FM AND ACTION NQ FH THEN
03647  M00S02116.sform   +++|  BEGIN                              # IF SOFT TABS PENDING #
03648  M00S02117.sform   +++|  GOTO NOACTION;                     # IGNORE UNLESS MATCH OR HELP #
03649  M00S02118.sform   +++|  END
03650  M00S02119.sform   +++|ELSE
03651  M00S02120.sform   +++|  BEGIN                              # NO SOFT TABS PENDING #
03652  M00S02121.sform   +++|  GOTO ACTTYPE[ACTION];              # GO TO ASSIGNED ACTION #
03653  M00S02122.sform   +++|  END
03654  M00S02123.sform   +++|
03655  M00S02124.sform   +++|PAGEFORWARD:                         # CURRENTLY A NO-OP #
03656  M00S02125.sform   +++|PAGEBAKWARD:                         # CURRENTLY A NO-OP #
03657  M00S02126.sform   +++|INSERTROW:                           # CURRENTLY A NO-OP #
03658  M00S02127.sform   +++|DELETEROW:                           # CURRENTLY A NO-OP #
03659  M00S02128.sform   +++|
03660  M00S02129.sform   +++|  TERNRMTERM[0] = FALSE;
03661  M00S02130.sform   +++|  TERABNTERM[0] = FALSE;
Line S02131 Modification History
M01 (Removed by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03662  M01S02131.252l678 ---|  TERRETRNOS[0] = FALSE;
03663  M00S02132.sform   ---|  RETURN;
03664  M00S02133.sform   ---|
03665  M00S02134.sform   ---|TABSOFTLY:                           # PROCESS SOFT TAB #
03666  M00S02135.sform   ---|
Line S02136 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03667  M01S02136.242l642 ---|  IF SOFTTAB EQ 0 THEN SOFTPOS = INPOS;
03668  M01S02137.242l642 ---|  SOFTTAB = SOFTTAB + 1;             # INCREMENT TAB COUNT #
Line S00833 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03669  M01S00833.242l642 +++|  IF TERSOFTTAB[0] EQ 0 THEN TERSOFTPOS[0] = INPOS;
03670  M01S00834.242l642 +++|  TERSOFTTAB[0] = TERSOFTTAB[0] + 1; # INCREMENT TAB COUNT #
03671  M00S02138.sform   +++|
03672  M00S02139.sform   +++|NOACTION:                            # NO ACTION TO OCCUR #
03673  M00S02140.sform   +++|
03674  M00S02141.sform   +++|  TERNRMTERM[0] = FALSE;
03675  M00S02142.sform   +++|  TERABNTERM[0] = FALSE;
Line S02143 Modification History
M01 (Removed by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03676  M01S02143.252l678 ---|  TERRETRNOS[0] = FALSE;
03677  M00S02144.sform   ---|  RETURN;
03678  M00S02145.sform   ---|
03679  M00S02146.sform   ---|NORMTOAPP:                           # NORMAL TERMINATION AND #
03680  M00S02147.sform   ---|                                     # RETURN TO APPLICATION #
03681  M00S02148.sform   ---|  TERNRMTERM[0] = TRUE;
03682  M00S02149.sform   ---|  TERABNTERM[0] = FALSE;
03683  M01S02150.252l678 ---|  TERRETRNOS[0] = FALSE;
03684  M00S02151.sform   ---|  RETURN;
03685  M00S02152.sform   ---|
03686  M00S02153.sform   ---|NORMTONOS:                           # NORMAL TERMINATION AND RETURN #
03687  M00S02154.sform   ---|                                     # TO OPERATING SYSTEM #
03688  M00S02155.sform   ---|  TERNRMTERM[0] = TRUE;
03689  M00S02156.sform   ---|  TERABNTERM[0] = FALSE;
03690  M01S02157.252l678 ---|  TERRETRNOS[0] = TRUE;
03691  M00S02158.sform   ---|  RETURN;
03692  M00S02159.sform   ---|
03693  M00S02160.sform   ---|ABNORTOAPP:                          # ABNORMAL TERMINATION AND #
03694  M00S02161.sform   ---|                                     # RETURN TO APPLICATION #
03695  M00S02162.sform   ---|  TERNRMTERM[0] = FALSE;
03696  M00S02163.sform   ---|  TERABNTERM[0] = TRUE;
03697  M01S02164.252l678 ---|  TERRETRNOS[0] = FALSE;
03698  M00S02165.sform   ---|  RETURN;
03699  M00S02166.sform   ---|
03700  M00S02167.sform   ---|ABNORTONOS:                          # ABNORMAL TERMINATION AND #
03701  M00S02168.sform   ---|                                     # RETURN TO OPERATING SYSTEM #
03702  M00S02169.sform   ---|  TERNRMTERM[0] = FALSE;
03703  M00S02170.sform   ---|  TERABNTERM[0] = TRUE;
03704  M01S02171.252l678 ---|  TERRETRNOS[0] = TRUE;
03705  M00S02172.sform   ---|  RETURN;
03706  M00S02173.sform   ---|
03707  M00S02174.sform   ---|GIVEHELP:                            # PROVIDE HELP #
03708  M00S02175.sform   ---|
Line S02176 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03709  M01S02176.242l642 ---|  IF SOFTTAB NQ 0 THEN
Line S00835 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03710  M01S00835.242l642 +++|  IF TERSOFTTAB[0] NQ 0 THEN
03711  M00S02177.sform   +++|    BEGIN                            # IF SOFT TABS PENDING #
03712  M00S02178.sform   +++|    TERPENDHLP[0] = TRUE;            # SET HELP PENDING FLAG #
03713  M00S02179.sform   +++|    END
03714  M00S02180.sform   +++|  ELSE
03715  M00S02181.sform   +++|    BEGIN                            # NO SOFT TABS PENDING #
03716  M00S02182.sform   +++|    IF FIELD EQ -1 THEN
03717  M00S02183.sform   +++|      BEGIN
03718  M00S02184.sform   +++|      TABKEY(SCREENST"FTAB",INPOS,FIELD,SCRPOS);  # TAB TO NEXT FIELD #
03719  M00S02185.sform   +++|      IF FIELD EQ -1 THEN TABKEY(SCREENST"FTAB",SCRPOS,FIELD,SCRPOS);
03720  M00S02186.sform   +++|      TERHELPFLD[0] = FIELD;
03721  M00S02187.sform   +++|      FIELD = -1;
03722  M00S02188.sform   +++|      END
03723  M00S02189.sform   +++|    ELSE
03724  M00S02190.sform   +++|      BEGIN                          # GIVE HELP FOR THIS FIELD #
03725  M00S02191.sform   +++|      TERHELPFLD[0] = FIELD;
03726  M00S02192.sform   +++|      END
03727  M00S02193.sform   +++|    TERHELPREQ[0] = TRUE;
03728  M00S02194.sform   +++|    END
03729  M00S02195.sform   +++|  RETURN;
03730  M00S02196.sform   +++|
03731  M00S02197.sform   +++|MATCHADV:                            # ADVANCE MATCH ENTRY #
03732  M00S02198.sform   +++|
Line S02199 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03733  M01S02199.242l642 ---|  IF SOFTTAB NQ 0 OR NOT VALIDFIELD THEN GOTO TABSOFTLY;
Line S00836 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03734  M01S00836.242l642 +++|  IF TERSOFTTAB[0] NQ 0 OR NOT VALIDFIELD THEN GOTO TABSOFTLY;
03735  M00S02200.sform   +++|  IF FIELD EQ -1 THEN GOTO TABSOFTLY;
03736  M00S02201.sform   +++|  VARIND = FLDVARORD[FIELD];
03737  M00S02202.sform   +++|  IF (NOT VARVALM[VARIND]) OR (VARVALOS[VARIND] EQ 0)
03738  M00S02203.sform   +++|    THEN GOTO TABSOFTLY;
03739  M00S02204.sform   +++|  FMATCH(FIELD,MATCHIND,MATCHCOUNT);
Line S02205 Modification History
M01 (Removed by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03740  M01S02205.ns2612  ---|  MATCHIND = MATCHIND + 1;           # ADVANCE ENTRY OR START AT 0 #
Line S00018 Modification History
M01 (Added by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03741  M01S00018.ns2612  +++|  IF PANVERSION[0] GR 0 THEN
03742  M01S00019.ns2612  +++|    BEGIN                            # IF ENTRIES CAN BE ANY LENGTH #
03743  M01S00020.ns2612  +++|    MATCHIND = MATCHIND + (FLDLENGTH[FIELD]+9)/10;
03744  M01S00021.ns2612  +++|    END
03745  M01S00022.ns2612  +++|  ELSE
03746  M01S00023.ns2612  +++|    BEGIN                            # IF ENTRIES ONLY 10 CHARACTERS #
03747  M01S00024.ns2612  +++|    MATCHIND = MATCHIND + 1;
03748  M01S00025.ns2612  +++|    END
03749  M00S02206.sform   +++|  IF MATCHWORD[MATCHIND] EQ 0 THEN MATCHIND = 0;  # IF WRAPAROUND #
03750  M00S02207.sform   +++|  MMATCH(MATCHIND,FIELD);            # MOVE MATCH ENTRY TO FIELD #
03751  M00S02208.sform   +++|  RETURN;
03752  M00S02209.sform   +++|
03753  M00S02210.sform   +++|END  # FUNKEY#
03754  M00S02211.sform   +++|CONTROL EJECT;
03755  M00S02212.sform   +++|
03756  M00S02213.sform   +++|PROC GETADD(PANELNAME,PANELADDR,PLTINDEX);
03757  M00S02214.sform   +++|
03758  M00S02215.sform   +++|# TITLE GETADD - GETS PANEL ADDRESS. #
03759  M00S02216.sform   +++|
03760  M00S02217.sform   +++|BEGIN  # GETADD #
03761  M00S02218.sform   +++|
03762  M00S02219.sform   +++|#
03763  M00S02220.sform   +++|**    GETADD - GET ADDRESS.
03764  M00S02221.sform   +++|*
03765  M00S02222.sform   +++|*     THIS PROCEDURE GETS THE MEMORY ADDRESS FOR THE SPECIFIED
03766  M00S02223.sform   +++|*     PANEL FROM THE PANEL LOAD TABLE.  IF THE PANEL IS NOT IN
03767  M00S02224.sform   +++|*     THE PANEL LOAD TABLE OR HAS NOT BEEN OPENED FOR USE THEN
03768  M00S02225.sform   +++|*     A DAYFILE MESSAGE WILL BE ISSUED AND CONTROL WILL BE RE-
03769  M00S02226.sform   +++|*     TURNED TO THE OPERATING SYSTEM.
03770  M00S02227.sform   +++|*
03771  M00S02228.sform   +++|*     PROC GETADD(PANELNAME,PANELADDR,PLTINDEX)
03772  M00S02229.sform   +++|*
03773  M00S02230.sform   +++|*     ENTRY   PANELNAME  = THE NAME OF THE PANEL.
03774  M00S02231.sform   +++|*
03775  M00S02232.sform   +++|*     EXIT    PANELADDR  = THE ADDRESS OF THE PANEL RECORD.
03776  M00S02233.sform   +++|*                          TO O.S. IF THE ADDRESS IS NOT FOUND
03777  M00S02234.sform   +++|*                          OR THE PANEL IS NOT OPEN.
03778  M00S02235.sform   +++|*             PLTINDEX   = THE PANEL LOAD TABLE INDEX FOR THE PANEL.
03779  M00S02236.sform   +++|*
03780  M00S02237.sform   +++|*     CALLS   ERRMSG.
03781  M00S02238.sform   +++|*
03782  M00S02239.sform   +++|*     NOTES   IF THE PANEL IS NOT IN THE PANEL LOAD TABLE THEN
03783  M00S02240.sform   +++|*             THE APPLICATION HAS NOT OPENED THE PANEL FOR USE
03784  M00S02241.sform   +++|*             OR HAS IGNORED AN ERROR RETURN FROM SFOPEN AFTER
03785  M00S02242.sform   +++|*             ATTEMPTING TO DO SO.  IF THE PANEL IS IN THE LOAD
03786  M00S02243.sform   +++|*             TABLE BUT NOT OPEN IT IS A STATICALLY LOADED PANEL
03787  M00S02244.sform   +++|*             THAT THE APPLICATION HAS NOT YET OPENED.  IN EITHER
03788  M00S02245.sform   +++|*             CASE PROCEDURE ERRMSG IS CALLED TO ISSUE A DAYFILE
03789  M00S02246.sform   +++|*             MESSAGE AND RETURN CONTROL TO THE OPERATING SYSTEM.
03790  M00S02247.sform   +++|#
03791  M00S02248.sform   +++|ITEM PANELNAME  C(7);                # PANEL NAME #
03792  M00S02249.sform   +++|ITEM PANELADDR  I;                   # PANEL ADDRESS #
03793  M00S02250.sform   +++|ITEM PLTINDEX   I;                   # PANEL LOAD TABLE INDEX #
03794  M00S02251.sform   +++|
03795  M00S02252.sform   +++|ITEM CHARINDEX  I;                   # CHARACTER INDEX #
03796  M00S02253.sform   +++|ITEM FATAL      B = TRUE;            # FATAL ERROR #
03797  M00S02254.sform   +++|ITEM INDEX      I;                   # INDEX INTO PANEL LOAD TABLE #
03798  M00S02255.sform   +++|ITEM MSG        C(25) = " NOT OPENED.             ";  # ERROR MSG. #
03799  M00S02256.sform   +++|ITEM PNAME      C(6);                # PROCEDURE NAME #
03800  M00S02257.sform   +++|
03801  M00S02258.sform   +++|PANELADDR = 0;
03802  M00S02259.sform   +++|FOR INDEX = 1 STEP 1 WHILE PANELADDR EQ 0
03803  M00S02260.sform   +++|  AND INDEX LQ PLTNUMENT[0] DO
03804  M00S02261.sform   +++|  BEGIN                              # FIND SPECIFIED PANEL #
03805  M00S02262.sform   +++|  IF PLTENAME[INDEX] EQ PANELNAME
03806  M00S02263.sform   +++|    AND PLTOPENFLG[INDEX] THEN
03807  M00S02264.sform   +++|    BEGIN                            # IF SPECIFIED PANEL FOUND #
03808  M00S02265.sform   +++|    PANELADDR = PLTADDR[INDEX];      # RETURN ADDRESS #
03809  M00S02266.sform   +++|    PLTINDEX = INDEX;
03810  M00S02267.sform   +++|    RETURN;
03811  M00S02268.sform   +++|    END
03812  M00S02269.sform   +++|  END
03813  M00S02270.sform   +++|
03814  M00S02271.sform   +++|IF TERSHOWFLG[0] THEN
03815  M00S02272.sform   +++|  BEGIN                              # IF SFSSHO CALL #
03816  M00S02273.sform   +++|  PNAME = "SFSSHO";
03817  M00S02274.sform   +++|  END
03818  M00S02275.sform   +++|ELSE
03819  M00S02276.sform   +++|  BEGIN                              # IF SFSREA CALL #
03820  M00S02277.sform   +++|  IF TERREADFLG[0] THEN
03821  M00S02278.sform   +++|    BEGIN
03822  M00S02279.sform   +++|    PNAME = "SFSREA";
03823  M00S02280.sform   +++|    END
03824  M00S02281.sform   +++|  ELSE                               # SFSWRI CALL #
03825  M00S02282.sform   +++|    BEGIN
03826  M00S02283.sform   +++|    PNAME = "SFSWRI";
03827  M00S02284.sform   +++|    END
03828  M00S02285.sform   +++|  END
03829  M00S02286.sform   +++|ERRMSG(PANELNAME,PNAME,MSG,FATAL);   # ISSUE MESSAGE AND ABORT #
03830  M00S02287.sform   +++|
03831  M00S02288.sform   +++|END  # GETADD #
03832  M00S02289.sform   +++|CONTROL EJECT;
03833  M00S02290.sform   +++|
03834  M00S02291.sform   +++|PROC GETNUM(FLDIND,CHARPOS,VALUE,NUMDIG);
03835  M00S02292.sform   +++|
03836  M00S02293.sform   +++|# TITLE GETNUM - GET NUMERIC VALUE OF SUBFIELD. #
03837  M00S02294.sform   +++|
03838  M00S02295.sform   +++|BEGIN  # GETNUM #
03839  M00S02296.sform   +++|
03840  M00S02297.sform   +++|#
03841  M00S02298.sform   +++|**    GETNUM - GET NUMERIC VALUE OF SUBFIELD.
03842  M00S02299.sform   +++|*
03843  M00S02300.sform   +++|*     GETNUM GETS THE NUMERIC VALUE OF A SUBFIELD STARTING AT
03844  M00S02301.sform   +++|*     CHARPOS AND ENDING AT THE FIRST NON-NUMERIC INPUT OR AT
03845  M00S02302.sform   +++|*     THE END OF THE FIELD.
03846  M00S02303.sform   +++|*
03847  M00S02304.sform   +++|*     PROC GETNUM(FLDIND,CHARPOS,VALUE,NUMDIG)
03848  M00S02305.sform   +++|*
03849  M00S02306.sform   +++|*     ENTRY   FLDIND     = INDEX IN FLDLIST.
03850  M00S02307.sform   +++|*             CHARPOS    = STARTING CHARACTER POSITION IN FIELD.
03851  M00S02308.sform   +++|*             VALUE      = STARTING VALUE.
03852  M00S02309.sform   +++|*
03853  M00S02310.sform   +++|*     EXIT    CHARPOS    = ENDING CHARACTER POSITION IN FIELD.
03854  M00S02311.sform   +++|*             VALUE      = ENDING VALUE.
03855  M00S02312.sform   +++|*             NUMDIG     = NUMBER OF DIGITS IN SUBFIELD.
03856  M00S02313.sform   +++|#
03857  M00S02314.sform   +++|ITEM FLDIND     I;                   # INDEX IN FLDLIST #
03858  M00S02315.sform   +++|ITEM CHARPOS    I;                   # POSITION OF CHARACTER IN FIELD #
03859  M00S02316.sform   +++|ITEM VALUE      I;                   # NUMERIC VALUE OF SUBFIELD #
03860  M00S02317.sform   +++|ITEM NUMDIG     I;                   # NUMBER OF DIGITS IN SUBFIELD #
03861  M00S02318.sform   +++|
03862  M00S02319.sform   +++|ITEM CHAR       I;                   # INPUT CHARACTER #
03863  M00S02320.sform   +++|ITEM SAMESUBFLD B;                   # STILL IN SAME SUBFIELD #
03864  M00S02321.sform   +++|
03865  M00S02322.sform   +++|SAMESUBFLD = TRUE;
03866  M00S02323.sform   +++|NUMDIG = 0;
03867  M00S02324.sform   +++|
03868  M00S02325.sform   +++|WHYLE SAMESUBFLD AND CHARPOS LQ FLDLENGTH[FLDIND] -1 DO
03869  M00S02326.sform   +++|  BEGIN
03870  M00S02327.sform   +++|  CHAR = NEXTCHAR(FLDIND,CHARPOS);
03871  M00S02328.sform   +++|  IF CHAR GQ ZEROCH AND CHAR LQ NINECH THEN
03872  M00S02329.sform   +++|    BEGIN                            # IF CHARACTER IS NUMERIC #
03873  M00S02330.sform   +++|    VALUE = 10 * VALUE + (CHAR LXR ZEROCH);
03874  M00S02331.sform   +++|    NUMDIG = NUMDIG + 1;
03875  M00S02332.sform   +++|    CHARPOS = CHARPOS + 1;
03876  M00S02333.sform   +++|    END
03877  M00S02334.sform   +++|  ELSE
03878  M00S02335.sform   +++|    BEGIN                            # END OF SUBFIELD #
03879  M00S02336.sform   +++|    SAMESUBFLD = FALSE;
03880  M00S02337.sform   +++|    END
03881  M00S02338.sform   +++|  END
03882  M00S02339.sform   +++|
03883  M00S02340.sform   +++|END  # GETNUM #
03884  M00S02341.sform   +++|CONTROL EJECT;
03885  M00S02342.sform   +++|
03886  M00S02343.sform   +++|PROC GFIELD(VARNAME,USEROW,FLDIND);
03887  M00S02344.sform   +++|
03888  M00S02345.sform   +++|# TITLE GFIELD - GET FIELD INDEX. #
03889  M00S02346.sform   +++|
03890  M00S02347.sform   +++|BEGIN  # GFIELD #
03891  M00S02348.sform   +++|
03892  M00S02349.sform   +++|#
03893  M00S02350.sform   +++|**    GFIELD - GET FIELD INDEX.
03894  M00S02351.sform   +++|*
03895  M00S02352.sform   +++|*     THIS PROCEDURE GETS THE FIELD INDEX FOR THE VARIABLE VARNAME.
03896  M00S02353.sform   +++|*
03897  M00S02354.sform   +++|*     PROC GFIELD(VARNAME,USEROW,FLDIND)
03898  M00S02355.sform   +++|*
03899  M00S02356.sform   +++|*     ENTRY   VARNAME    = VARIABLE NAME OF FIELD.
Line S02357 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03900  M01S02357.242l642 ---|*             USEROW     = TRUE, USE CURSORROW.
Line S00837 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03901  M01S00837.242l642 +++|*             USEROW     = TRUE, USE TERCURSROW.
03902  M00S02358.sform   +++|*                        = FALSE, USE ARRCURROW.
03903  M00S02359.sform   +++|*
03904  M00S02360.sform   +++|*     EXIT    FLDIND     = FIELD INDEX.
03905  M00S02361.sform   +++|*                        = -1 IF NOT FOUND.
03906  M00S02362.sform   +++|#
03907  M00S02363.sform   +++|ITEM VARNAME    C(7);                # VARIABLE NAME OF FIELD #
Line S02364 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03908  M01S02364.242l642 ---|ITEM USEROW     B;                   # USE CURSORROW #
Line S00838 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03909  M01S00838.242l642 +++|ITEM USEROW     B;                   # USE TERCURSROW #
03910  M00S02365.sform   +++|ITEM FLDIND     I;                   # POINTER TO FIELD LIST #
03911  M00S02366.sform   +++|
03912  M00S02367.sform   +++|ITEM ARRAYORD   I;                   # ARRAY ORDINAL #
03913  M00S02368.sform   +++|ITEM FOUND      B;                   # FIELD HAS BEEN FOUND #
03914  M00S02369.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03915  M00S02370.sform   +++|ITEM ROWNUMBER  I;                   # ROW NUMBER #
03916  M00S02371.sform   +++|ITEM VARIND     I;                   # POINTER TO VARIABLE LIST #
03917  M00S02372.sform   +++|
03918  M00S02373.sform   +++|FLDIND = -1;
03919  M00S02374.sform   +++|FOUND = FALSE;
03920  M00S02375.sform   +++|
03921  M00S02376.sform   +++|FOR I = 0 STEP 1 WHILE VARTYPE[I] NQ 0 AND NOT FOUND DO
03922  M00S02377.sform   +++|  BEGIN                              # LOOK FOR VARIABLE VARNAME #
03923  M00S02378.sform   +++|  IF VARNME[I] EQ VARNAME THEN
03924  M00S02379.sform   +++|    BEGIN                            # FOUND SPECIFIED VARIABLE #
03925  M00S02380.sform   +++|    FOUND = TRUE;
03926  M00S02381.sform   +++|    VARIND = I;
03927  M00S02382.sform   +++|    END
03928  M00S02383.sform   +++|  END
03929  M00S02384.sform   +++|
03930  M00S02385.sform   +++|IF FOUND THEN
03931  M00S02386.sform   +++|  BEGIN
03932  M00S02387.sform   +++|  ARRAYORD = VARARRORD[VARIND];
03933  M00S02388.sform   +++|  IF ARRAYORD NQ 0 THEN
03934  M00S02389.sform   +++|    BEGIN                            # ARRAY MEMBER #
03935  M00S02390.sform   +++|    ROWNUMBER = 0;
03936  M00S02391.sform   +++|    IF USEROW THEN
Line S02392 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03937  M01S02392.242l642 ---|      BEGIN                          # USE CURSORROW #
Line S02393 Modification History
M01 (Removed by) sform6
M02 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03938  M02S02393.242l642 ---|      IF TERCURSSET[0] AND CURSORROW LS ARRNUMROWS[ARRAYORD] THEN
Line S00002 Modification History
M01 (Added by) sform6
M02 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03939  M02S00002.242l642 ---|      IF TERCURSSET[0] AND CURSORROW LS ARRNUMROWS[ARRAYORD-1] THEN
Line S00839 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03940  M01S00839.242l642 +++|      BEGIN                          # USE TERCURSROW #
03941  M01S00840.242l642 +++|      IF TERCURSSET[0] AND TERCURSROW[0] LS ARRNUMROWS[ARRAYORD-1] THEN
03942  M00S02394.sform   +++|        BEGIN                        # VALID ROW NUMBER #
Line S02395 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03943  M01S02395.242l642 ---|        ROWNUMBER = CURSORROW;
Line S00841 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03944  M01S00841.242l642 +++|        ROWNUMBER = TERCURSROW[0];
03945  M00S02396.sform   +++|        END
03946  M00S02397.sform   +++|      END
03947  M00S02398.sform   +++|    ELSE
03948  M00S02399.sform   +++|      BEGIN                          # USE CURRENT ROW #
Line S02400 Modification History
M01 (Removed by) sform6
Seq #  *Modification Id* Act 
----------------------------+
03949  M01S02400.sform6  ---|      ROWNUMBER = ARRCURROW[ARRAYORD];
Line S00003 Modification History
M01 (Added by) sform6
Seq #  *Modification Id* Act 
----------------------------+
03950  M01S00003.sform6  +++|      ROWNUMBER = ARRCURROW[ARRAYORD-1];
03951  M00S02401.sform   +++|      END
Line S02402 Modification History
M01 (Removed by) sform6
Seq #  *Modification Id* Act 
----------------------------+
03952  M01S02402.sform6  ---|    VARIND = VARIND + ARRNUMVARS[ARRAYORD]*ROWNUMBER;
Line S00004 Modification History
M01 (Added by) sform6
Seq #  *Modification Id* Act 
----------------------------+
03953  M01S00004.sform6  +++|    VARIND = VARIND + ARRNUMVARS[ARRAYORD-1]*ROWNUMBER;
03954  M00S02403.sform   +++|    END
03955  M00S02404.sform   +++|  FLDIND = VARFLDNUM[VARIND] - 1;    # ADJUST PDU VALUE #
03956  M00S02405.sform   +++|  END
03957  M00S02406.sform   +++|
03958  M00S02407.sform   +++|END  # GFIELD #
03959  M00S02408.sform   +++|CONTROL EJECT;
03960  M00S02409.sform   +++|
03961  M00S02410.sform   +++|PROC IRANGE(FLDIND,VALUE,EVALUE);
03962  M00S02411.sform   +++|
03963  M00S02412.sform   +++|# TITLE IRANGE - RANGE VALIDATION FOR INTEGER VARIABLES. #
03964  M00S02413.sform   +++|
03965  M00S02414.sform   +++|BEGIN  # IRANGE #
03966  M00S02415.sform   +++|
03967  M00S02416.sform   +++|#
03968  M00S02417.sform   +++|**    IRANGE - RANGE VALIDATION FOR INTEGER VARIABLES.
03969  M00S02418.sform   +++|*
03970  M00S02419.sform   +++|*     THIS PROCEDURE VALIDATES THAT INPUT TO THE FIELD POINTED TO
03971  M00S02420.sform   +++|*     BY FLDIND IS WITHIN THE RANGE SPECIFIED IN THE PANEL RECORD.
03972  M00S02421.sform   +++|*
03973  M00S02422.sform   +++|*     PROC IRANGE(FLDIND,VALUE,EVALUE)
03974  M00S02423.sform   +++|*
03975  M00S02424.sform   +++|*     ENTRY   FLDIND     = INDEX OF CURRENT FIELD IN FLDLIST.
03976  M00S02425.sform   +++|*             VALUE      = THE INTEGER VALUE OF THE INPUT.
03977  M00S02426.sform   +++|*             EVALUE     = THE EXPONENT VALUE OF THE INPUT
03978  M00S02427.sform   +++|*
03979  M00S02428.sform   +++|*     EXIT    FLDVALID[FLDIND] = FALSE, IF INPUT IS INVALID.
03980  M00S02429.sform   +++|#
03981  M00S02430.sform   +++|ITEM FLDIND     I;                   # INDEX OF VARIABLE TO VALIDATE #
03982  M00S02431.sform   +++|ITEM VALUE      I;                   # INTEGER VALUE OF INPUT #
03983  M00S02432.sform   +++|ITEM EVALUE     I;                   # EXPONENT VALUE OF INPUT #
03984  M00S02433.sform   +++|
03985  M00S02434.sform   +++|ITEM MAXVAL     I;                   # MAXIMUM ALLOWED VALUE #
03986  M00S02435.sform   +++|ITEM MINVAL     I;                   # MINIMUM ALLOWED VALUE #
03987  M00S02436.sform   +++|ITEM OFFSET     I;                   # OFFSET OF VALIDATION IN RECORD #
03988  M00S02437.sform   +++|ITEM VARIND     I;                   # INDEX INTO VARLIST #
03989  M00S02438.sform   +++|
03990  M00S02439.sform   +++|VARIND = FLDVARORD[FLDIND];
03991  M00S02440.sform   +++|OFFSET = VARVALOS[VARIND];
03992  M00S02441.sform   +++|MINVAL = RECWORDU[OFFSET];           # MINIMUM VALID VALUE #
03993  M00S02442.sform   +++|MAXVAL = RECWORDU[OFFSET + 1];       # MAXIMUM VALID VALUE #
03994  M00S02443.sform   +++|
03995  M00S02444.sform   +++|IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"$" THEN
03996  M00S02445.sform   +++|  BEGIN                              # WEIGHT CURRENCY INPUT #
03997  M00S02446.sform   +++|  IF EVALUE EQ 0 THEN
03998  M00S02447.sform   +++|    BEGIN
03999  M00S02448.sform   +++|    VALUE = VALUE * 100;
04000  M00S02449.sform   +++|    END
04001  M00S02450.sform   +++|  ELSE
04002  M00S02451.sform   +++|    BEGIN
04003  M00S02452.sform   +++|    IF EVALUE EQ -1 THEN VALUE = VALUE * 10;
04004  M00S02453.sform   +++|    END
04005  M00S02454.sform   +++|  END
04006  M00S02455.sform   +++|
04007  M00S02456.sform   +++|IF VALUE LS MINVAL OR VALUE GR MAXVAL THEN
04008  M00S02457.sform   +++|  BEGIN                              # IF VALUE OUTSIDE OF RANGE #
04009  M00S02458.sform   +++|  FLDVALID[FLDIND] = FALSE;
04010  M00S02459.sform   +++|  END
04011  M00S02460.sform   +++|
04012  M00S02461.sform   +++|END  # IRANGE #
04013  M00S02462.sform   +++|CONTROL EJECT;
04014  M00S02463.sform   +++|
04015  M00S02464.sform   +++|PROC MATCHV(FLDIND);
04016  M00S02465.sform   +++|
04017  M00S02466.sform   +++|# TITLE MATCHV - MATCH VALIDATION. #
04018  M00S02467.sform   +++|
04019  M00S02468.sform   +++|BEGIN  # MATCHV #
04020  M00S02469.sform   +++|
04021  M00S02470.sform   +++|#
04022  M00S02471.sform   +++|**    MATCHV - MATCH VALIDATION.
04023  M00S02472.sform   +++|*
04024  M00S02473.sform   +++|*     THIS PROCEDURE PERFORMS MATCH VALIDATION FOR THE VARIABLE
04025  M00S02474.sform   +++|*     USING THE MATCH LIST IN THE PANEL RECORD.
04026  M00S02475.sform   +++|*
04027  M00S02476.sform   +++|*     PROC MATCHV(FLDIND)
04028  M00S02477.sform   +++|*
04029  M00S02478.sform   +++|*     ENTRY   FLDIND     = POINTER INTO FLDLIST OF CURRENT FIELD.
04030  M00S02479.sform   +++|*
04031  M00S02480.sform   +++|*     EXIT    FLDVALID[FLDIND] = FALSE, IF INPUT IS INVALID.
04032  M00S02481.sform   +++|*
04033  M00S02482.sform   +++|*     CALLS   FMATCH, MMATCH.
04034  M00S02483.sform   +++|#
04035  M00S02484.sform   +++|ITEM FLDIND     I;                   # INDEX OF FIELD IN FLDLIST #
04036  M00S02485.sform   +++|
04037  M00S02486.sform   +++|ITEM MATCHIND   I;                   # INDEX INTO MATCHLIST #
04038  M00S02487.sform   +++|ITEM MATCHCOUNT I;                   # NUMBER OF VALID MATCHES #
04039  M00S02488.sform   +++|
04040  M00S02489.sform   +++|IF VARVALOS[FLDVARORD[FLDIND]]
04041  M00S02490.sform   +++|  EQ 0 THEN RETURN;                  # IF NO VALIDATION REQUIRED #
04042  M00S02491.sform   +++|
04043  M00S02492.sform   +++|FMATCH(FLDIND,MATCHIND,MATCHCOUNT);  # FIND MATCH #
04044  M00S02493.sform   +++|
04045  M00S02494.sform   +++|IF ABS(MATCHCOUNT) NQ 1 THEN
04046  M00S02495.sform   +++|  BEGIN                              # NO MATCH OR TOO MANY MATCHES #
04047  M00S02496.sform   +++|  FLDVALID[FLDIND] = FALSE;
04048  M00S02497.sform   +++|  END
04049  M00S02498.sform   +++|ELSE
04050  M00S02499.sform   +++|  BEGIN                              # EXACT OR PARTIAL MATCH FOUND #
04051  M00S02500.sform   +++|  MMATCH(MATCHIND,FLDIND);           # RETURN IDENTICAL MATCH VALUE #
04052  M00S02501.sform   +++|  END
04053  M00S02502.sform   +++|
04054  M00S02503.sform   +++|END  # MATCHV #
04055  M00S02504.sform   +++|CONTROL EJECT;
04056  M00S02505.sform   +++|
04057  M00S02506.sform   +++|PROC MCLEAN(MCOUNT,MSGFIT);
04058  M00S02507.sform   +++|
04059  M00S02508.sform   +++|# TITLE MCLEAN - MESSAGE CLEAN. #
04060  M00S02509.sform   +++|
04061  M00S02510.sform   +++|BEGIN  # MCLEAN #
04062  M00S02511.sform   +++|
04063  M00S02512.sform   +++|#
04064  M00S02513.sform   +++|**    MCLEAN - MESSAGE CLEAN.
04065  M00S02514.sform   +++|*
04066  M00S02515.sform   +++|*     THIS PROCEDURE CLEANS THE MESSAGE AREA.
04067  M00S02516.sform   +++|*
04068  M00S02517.sform   +++|*     PROC MCLEAN(MCOUNT,MSGFIT)
04069  M00S02518.sform   +++|*
04070  M00S02519.sform   +++|*     EXIT    MCOUNT     = THE LENGTH OF THE MESSAGE AREA.
04071  M00S02520.sform   +++|*             MSGFIT     = TRUE, IF LONGEST MESSAGE WILL FIT.
04072  M00S02521.sform   +++|*
04073  M00S02522.sform   +++|*     CALLS     VDTCHR, VDTCLL, VDTPOS, VDTSAM.
04074  M00S02523.sform   +++|*
04075  M00S02524.sform   +++|*     USES      TERMESWRIT.
04076  M00S02525.sform   +++|#
04077  M00S02526.sform   +++|ITEM MCOUNT     I;                   # LENGTH OF MESSAGE AREA #
04078  M00S02527.sform   +++|ITEM MSGFIT     B;                   # TRUNCATION FLAG #
04079  M00S02528.sform   +++|
04080  M00S02529.sform   +++|ITEM I          I;                   # LOOP VARIABLE #
04081  M00S02530.sform   +++|
Line S02531 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
04082  M01S02531.242l642 ---|IF PANMSGLEN[0] LS NUMCOLS THEN
Line S00842 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
04083  M01S00842.242l642 +++|IF PANMSGLEN[0] LS TERNUMCOLS[0] THEN
04084  M00S02532.sform   +++|  BEGIN                              # IF LONGEST MESSAGE FITS #
04085  M00S02533.sform   +++|  MSGFIT = TRUE;
04086  M00S02534.sform   +++|  MCOUNT = PANMSGLEN[0] -1;
04087  M00S02535.sform   +++|  IF MCOUNT LS 24 THEN MCOUNT = 24;  # LONGEST SMF MESSAGE #
04088  M00S02536.sform   +++|  END
04089  M00S02537.sform   +++|ELSE
04090  M00S02538.sform   +++|  BEGIN                              # USER HELP MAY NEED TRUNCATION #
04091  M00S02539.sform   +++|  MSGFIT = FALSE;
Line S02540 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
04092  M01S02540.242l642 ---|  MCOUNT = NUMCOLS -1;
Line S00843 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
04093  M01S00843.242l642 +++|  MCOUNT = TERNUMCOLS[0] - 1;
04094  M00S02541.sform   +++|  END
04095  M00S02542.sform   +++|
Line S00001 Modification History
M01 (Added by) sform5
Seq #  *Modification Id* Act 
----------------------------+
04096  M01S00001.sform5  +++|VDTSAM(ATTMASK[0]);                  # SET MESSAGE ATTRIBUTES #
Line S02543 Modification History
M01 (Removed by) ns2346
Seq #  *Modification Id* Act 
----------------------------+
04097  M01S02543.ns2346  ---|IF TERPROTECT[0] THEN
04098  M01S02544.ns2346  ---|  BEGIN                              # IF TERMINAL HAS PROTECT #
Line S00009 Modification History
M01 (Added by) ns2346
Seq #  *Modification Id* Act 
----------------------------+
04099  M01S00009.ns2346  +++|IF TERTABPROT[0] THEN
04100  M01S00010.ns2346  +++|  BEGIN                              # IF TABS TO UNPROTECTED TRUE #
04101  M00S02545.sform   +++|  VDTPOS(0,0);                       # POSITION TO MESSAGE AREA #
04102  M00S02546.sform   +++|  FOR I = 0 STEP 1 UNTIL MCOUNT DO
Line S02547 Modification History
M01 (Removed by) sform5
Seq #  *Modification Id* Act 
----------------------------+
04103  M01S02547.sform5  ---|  FOR I = 0 STEP 1 UNTIL MCOUNT - 1 DO
04104  M00S02548.sform   ---|    BEGIN                            # BLANK OUT MESSAGE AREA #
04105  M00S02549.sform   ---|    VDTCHR(BLANK);
04106  M00S02550.sform   ---|    END
04107  M01S02551.sform5  ---|  VDTPOS(0,0);                       # REPOSITION #
04108  M00S02552.sform   ---|  END
04109  M00S02553.sform   ---|ELSE
04110  M00S02554.sform   ---|  BEGIN                              # NO PROTECT #
04111  M01S02555.sform5  ---|  VDTCLL(0,0);                       # POSITON AND CLEAR LINE #
04112  M01S02556.sform5  ---|  VDTSAM(ATTMASK[0]);                # SET ATTRIBUTES #
Line S00002 Modification History
M01 (Added by) sform5
Seq #  *Modification Id* Act 
----------------------------+
04113  M01S00002.sform5  +++|  VDTCLL(0,0);                       # POSITION AND CLEAR LINE #
04114  M00S02557.sform   +++|  END
04115  M00S02558.sform   +++|
04116  M00S02559.sform   +++|TERMESWRIT[0] = FALSE;               # CLEAR MESSAGE WRITTEN FLAG #
04117  M00S02560.sform   +++|
04118  M00S02561.sform   +++|END  # MCLEAN #
04119  M00S02562.sform   +++|CONTROL EJECT;
04120  M00S02563.sform   +++|
04121  M00S02564.sform   +++|PROC MMATCH(MATCHIND,FIELD);
04122  M00S02565.sform   +++|
04123  M00S02566.sform   +++|# TITLE MMATCH - MOVE MATCH VALUE INTO VARIABLE FIELD . #
04124  M00S02567.sform   +++|
04125  M00S02568.sform   +++|BEGIN  # MMATCH #
04126  M00S02569.sform   +++|
04127  M00S02570.sform   +++|#
04128  M00S02571.sform   +++|**    MMATCH - MOVE MATCH VALUE INTO VARIABLE FIELD.
04129  M00S02572.sform   +++|*
04130  M00S02573.sform   +++|*     THIS PROCEDURE MOES THE MATCH VALUE INTO THE VARIABLE FIELD
04131  M00S02574.sform   +++|*     IN VARDATA.
04132  M00S02575.sform   +++|*
04133  M00S02576.sform   +++|*     PROC MMATCH(MATCHIND,FIELD)
04134  M00S02577.sform   +++|*
04135  M00S02578.sform   +++|*     ENTRY   MATCHIND   = INDEX INTO MATCHLIST FOR MATCH TO MOVE.
04136  M00S02579.sform   +++|*             FIELD      = INDEX OF FIELD TO RECEIVE MATCH VALUE.
04137  M00S02580.sform   +++|*
04138  M00S02581.sform   +++|*     EXIT    FLDENTERED, FLDVALID AND FLDREWRITE FLAGS SET FOR
04139  M00S02582.sform   +++|*             VARIABLE, AS WELL AS TERREWFLDS, MATCH VALUE MOVED.
04140  M00S02583.sform   +++|*
04141  M00S02584.sform   +++|*     CALLS   WRIVCH.
04142  M00S02585.sform   +++|*
04143  M00S02586.sform   +++|*     USES    TERREWFLDS.
04144  M00S02587.sform   +++|#
04145  M00S02588.sform   +++|ITEM MATCHIND   I;                   # INDEX INTO MATCHLIST #
Line S00026 Modification History
M01 (Added by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
04146  M01S00026.ns2612  +++|ITEM MATCHLEN   I;                   # MATCH ENTRY LENGTH #
04147  M00S02589.sform   +++|ITEM FIELD      I;                   # INDEX OF FIELD IN FLDLIST #
04148  M00S02590.sform   +++|
04149  M00S02591.sform   +++|ITEM CHAR       I;                   # 12-BIT CHARACTER #
04150  M00S02592.sform   +++|ITEM I          I;                   # CHARACTER INDEX #
04151  M00S02593.sform   +++|
04152  M01S00027.ns2612  +++|MATCHLEN = FLDLENGTH[FIELD];
04153  M01S00028.ns2612  +++|IF PANVERSION[0] EQ 0 THEN MATCHLEN = 10;
04154  M00S02594.sform   +++|FOR I = 0 STEP 1 UNTIL FLDLENGTH[FIELD] - 1 DO
04155  M00S02595.sform   +++|  BEGIN                              # MOVE MATCH ENTRY TO FIELD #
Line S02596 Modification History
M01 (Removed by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
04156  M01S02596.ns2612  ---|  IF I LS 10 THEN
Line S00029 Modification History
M01 (Added by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
04157  M01S00029.ns2612  +++|  IF I LS MATCHLEN THEN
04158  M00S02597.sform   +++|    BEGIN                            # IF NO BLANK FILL NEEDED #
04159  M00S02598.sform   +++|    CHAR = C<I*2,2>MATCH[MATCHIND];
04160  M00S02599.sform   +++|    END
04161  M00S02600.sform   +++|  ELSE
04162  M00S02601.sform   +++|    BEGIN                            # MORE THAN TEN CHARACTERS #
04163  M00S02602.sform   +++|    CHAR = BLANK;
04164  M00S02603.sform   +++|    END
04165  M00S02604.sform   +++|  WRIVCH(FIELD,I,CHAR);              # WRITE CHARACTER INTO VARDATA #
04166  M00S02605.sform   +++|  END
04167  M00S02606.sform   +++|
04168  M00S02607.sform   +++|TERREWFLDS[0] = TRUE;                # SET REWRITE, ENTERED AND VALID #
04169  M00S02608.sform   +++|FLDVALID[FIELD] = TRUE;
04170  M00S02609.sform   +++|FLDENTERED[FIELD] = TRUE;
04171  M00S02610.sform   +++|FLDREWRITE[FIELD] = TRUE;
04172  M00S02611.sform   +++|
04173  M00S02612.sform   +++|END  # MMATCH #
Line S00117 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04174  M01S00117.ns2605  +++|CONTROL EJECT;
04175  M01S00118.ns2605  +++|
04176  M01S00119.ns2605  +++|PROC MOVEFLD(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,IOSTAT);
04177  M01S00120.ns2605  +++|  BEGIN
04178  M01S00121.ns2605  +++|#
04179  M01S00122.ns2605  +++|**    MOVEFLD - MOVE FIELD.
04180  M01S00123.ns2605  +++|*
04181  M01S00124.ns2605  +++|*     MOVEFLD TRANSFERS CHARACTERS TO/FROM A SPECIFIED PANEL FIELD
04182  M01S00125.ns2605  +++|*     FROM/TO A SPECIFIED STRING.
04183  M01S00126.ns2605  +++|*
04184  M01S00127.ns2605  +++|*     PROC MOVEFLD(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,IOSTAT)
04185  M01S00128.ns2605  +++|*
04186  M01S00129.ns2605  +++|*     ENTRY   VNAME     = VARIABLE NAME OF FIELD.
04187  M01S00130.ns2605  +++|*             VLEN      = LENGTH OF VARNAME PARAMETER.
04188  M01S00131.ns2605  +++|*             VOS       = OFFSET OF VARNAME PARAMETER.
04189  M01S00132.ns2605  +++|*             STRG      = VARIABLE FIELD STRING.
04190  M01S00133.ns2605  +++|*             SLEN      = LENGTH OF STRING PARAMETER.
04191  M01S00134.ns2605  +++|*             SOS       = OFFSET OF STRING PARAMETER.
04192  M01S00135.ns2605  +++|*             CSET      = CHARACTER SET OF STRING (SEE SFCSET$).
04193  M01S00136.ns2605  +++|*             CLEN      = LENGTH OF CSET PARAMETER.
04194  M01S00137.ns2605  +++|*             COS       = OFFSET OF CSET PARAMETER.
04195  M01S00138.ns2605  +++|*             IOSTAT    = 0, CALL WAS SFGETF.
04196  M01S00139.ns2605  +++|*                       = 1, CALL WAS SFSETF.
04197  M01S00140.ns2605  +++|*
04198  M01S00141.ns2605  +++|*     EXIT    STRING MOVED, AND TRANSLATED IF NECESSARY.
04199  M01S00142.ns2605  +++|*             IOSTAT   GQ 0, NUMBER OF 6 BIT CHARACTERS MOVED.
04200  M01S00143.ns2605  +++|*                      LS 0, VARIABLE NOT FOUND IN ACTIVE PANELS.
04201  M01S00144.ns2605  +++|#
04202  M01S00145.ns2605  +++|
04203  M01S00146.ns2605  +++|  ITEM VNAME      C(11);             # VARIABLE NAME #
04204  M01S00147.ns2605  +++|  ITEM VLEN       I;                 # LENGTH OF VARNAME PARAMETER #
04205  M01S00148.ns2605  +++|  ITEM VOS        I;                 # OFFSET INTO VARNAME PARAMETER #
04206  M01S00149.ns2605  +++|  ITEM STRG       C(11);             # INSTRING PARAMETER #
04207  M01S00150.ns2605  +++|  ITEM SLEN       I;                 # LENGTH OF INSTRING #
04208  M01S00151.ns2605  +++|  ITEM SOS        I;                 # OFFSET INTO INSTRING #
04209  M01S00152.ns2605  +++|  ITEM CSET       C(11);             # CHARACTER SET #
04210  M01S00153.ns2605  +++|  ITEM CLEN       I;                 # LENGTH OF CHARACTER SET #
04211  M01S00154.ns2605  +++|  ITEM COS        I;                 # OFFSET INTO CHARACTER SET #
04212  M01S00155.ns2605  +++|  ITEM IOSTAT     I;                 # MOVE DIRECTION, STATUS RETURN #
04213  M01S00156.ns2605  +++|
04214  M01S00157.ns2605  +++|  ITEM ASCFLAG    B;                 # CURRENT DEFAULT CHARACTER SET #
04215  M01S00158.ns2605  +++|  ITEM AS8FLAG    B;                 # FLAGS #
04216  M01S00159.ns2605  +++|  ITEM CHARIND    I;                 # VARDATA WORD CHARACTER INDEX #
04217  M01S00160.ns2605  +++|  ITEM CHARNUM    I;                 # START OF FIELD IN VARDATA #
04218  M01S00161.ns2605  +++|  ITEM FLDIND     I;                 # FIELD ORDINAL #
04219  M01S00162.ns2605  +++|  ITEM FLDLEN     I;                 # FIELD LENGTH #
04220  M01S00163.ns2605  +++|  ITEM FROMCHAROS I;                 # SOURCE STRING OFFSET #
04221  M01S00164.ns2605  +++|  ITEM I          I;                 # LOOP COUNTER #
04222  M01S00165.ns2605  +++|  ITEM TOCHAROS   I;                 # DESTINATION STRING OFFSET #
04223  M01S00166.ns2605  +++|  ITEM USEROW     B = FALSE;         # DON-T USE CURSORROW #
04224  M01S00167.ns2605  +++|  ITEM VAR        C(7);              # VARIABLE NAME LEFT JUSTIFIED #
04225  M01S00168.ns2605  +++|  ITEM WORDIND    I;                 # WORD INDEX INTO VARDATA #
04226  M01S00169.ns2605  +++|
04227  M01S00170.ns2605  +++|
04228  M01S00171.ns2605  +++|  IF VLEN LS 1 THEN VLEN = 7;
04229  M01S00172.ns2605  +++|  VAR = C<VOS,VLEN>VNAME;
04230  M01S00173.ns2605  +++|  GFIELD(VAR,USEROW,FLDIND);         # GET ASSOCIATED FIELD #
04231  M01S00174.ns2605  +++|  IF FLDIND LS 0 THEN
04232  M01S00175.ns2605  +++|    BEGIN                            # IF FIELD NOT FOUND #
04233  M01S00176.ns2605  +++|    IOSTAT = -1;
04234  M01S00177.ns2605  +++|    RETURN;
04235  M01S00178.ns2605  +++|    END
04236  M01S00179.ns2605  +++|  ASCFLAG = TERASCFLAG[0];           # SAVE CURRENT CHARACTER SET #
04237  M01S00180.ns2605  +++|  AS8FLAG = TERAS8FLAG[0];
04238  M01S00181.ns2605  +++|  IF C<COS,1>CSET NQ " " THEN SFCSET$(CSET,CLEN,COS);
04239  M01S00182.ns2605  +++|  CHARNUM = FLDVDTCORD[FLDIND];      # START OF FIELD IN VARDATA #
04240  M01S00183.ns2605  +++|  WORDIND = CHARNUM/5;               # WORD INDEX INTO VARDATA #
04241  M01S00184.ns2605  +++|  CHARIND = CHARNUM - (5 * WORDIND); # VARDATA WORD CHARACTER INDEX #
04242  M01S00185.ns2605  +++|  FLDLEN = FLDLENGTH[FLDIND];
04243  M01S00186.ns2605  +++|  IF IOSTAT EQ 0 THEN
04244  M01S00187.ns2605  +++|    BEGIN                            # IF MOVING VARDATA TO INSTRING #
04245  M01S00188.ns2605  +++|    P<FROMSTRING> = LOC(VDATAU[WORDIND]);
04246  M01S00189.ns2605  +++|    P<TOSTRING> = LOC(STRG);
04247  M01S00190.ns2605  +++|    TOCHAROS = SOS;                  # CHARACTER OFFSET / TO STRING #
04248  M01S00191.ns2605  +++|    FROMCHAROS = CHARIND*2;          # CHARACTER OFFSET / VARDATA   #
04249  M01S00192.ns2605  +++|    IF TERAS8FLAG[0] THEN
04250  M01S00193.ns2605  +++|      BEGIN                          # IF NO TRANSLATION REQUIRED #
04251  M01S00194.ns2605  +++|      IF SLEN LQ 0 THEN SLEN = FLDLEN * 2;
04252  M01S00195.ns2605  +++|      MVA8A8(FROMCHAROS,TOCHAROS,FLDLEN*2,SLEN,TRUE);
04253  M01S00196.ns2605  +++|      END
04254  M01S00197.ns2605  +++|    ELSE
04255  M01S00198.ns2605  +++|      BEGIN
04256  M01S00199.ns2605  +++|      IF TERASCFLAG[0] THEN
04257  M01S00200.ns2605  +++|        BEGIN                        # IF 6/12 ASCII #
04258  M01S00201.ns2605  +++|        MVA8AS(TOCHAROS,FROMCHAROS,SLEN,FLDLEN,TRUE);
04259  M01S00202.ns2605  +++|        END
04260  M01S00203.ns2605  +++|      ELSE
04261  M01S00204.ns2605  +++|        BEGIN                        # IF SIX BIT DISPLAY CODE #
04262  M01S00205.ns2605  +++|        MVA8DC(TOCHAROS,FROMCHAROS,SLEN,FLDLEN,TRUE);
04263  M01S00206.ns2605  +++|        END
04264  M01S00207.ns2605  +++|      END
04265  M01S00208.ns2605  +++|    END
04266  M01S00209.ns2605  +++|  ELSE
04267  M01S00210.ns2605  +++|    BEGIN                            # IF MOVING OUTSTRING TO VARDATA #
04268  M01S00211.ns2605  +++|    P<FROMSTRING> = LOC(STRG);
04269  M01S00212.ns2605  +++|    FROMCHAROS = SOS;                # CHARACTER OFFSET / FROM STRING #
04270  M01S00213.ns2605  +++|    P<TOSTRING> = LOC(VDATAU[WORDIND]);
04271  M01S00214.ns2605  +++|    TOCHAROS = CHARIND * 2;          # CHARACTER OFFSET / VARDATA #
04272  M01S00215.ns2605  +++|    IF TERAS8FLAG[0] THEN
04273  M01S00216.ns2605  +++|      BEGIN                          # IF NO TRANSLATION REQUIRED #
04274  M01S00217.ns2605  +++|      IF SLEN LQ 0 THEN SLEN = FLDLEN * 2;
04275  M01S00218.ns2605  +++|      MVA8A8(FROMCHAROS,TOCHAROS,SLEN,FLDLEN*2,TRUE);
04276  M01S00219.ns2605  +++|      END
04277  M01S00220.ns2605  +++|    ELSE
04278  M01S00221.ns2605  +++|      BEGIN
04279  M01S00222.ns2605  +++|      IF TERASCFLAG[0] THEN
04280  M01S00223.ns2605  +++|        BEGIN                        # IF 6/12 ASCII #
04281  M01S00224.ns2605  +++|        MVASA8(FROMCHAROS,TOCHAROS,SLEN,FLDLEN,TRUE);
04282  M01S00225.ns2605  +++|        END
04283  M01S00226.ns2605  +++|      ELSE
04284  M01S00227.ns2605  +++|        BEGIN                        # IF SIX BIT DISPLAY CODE #
04285  M01S00228.ns2605  +++|        MVDCA8(FROMCHAROS,TOCHAROS,SLEN,FLDLEN,TRUE);
04286  M01S00229.ns2605  +++|        END
04287  M01S00230.ns2605  +++|      END
04288  M01S00231.ns2605  +++|    FLDREWRITE[FLDIND] = TRUE;
04289  M01S00232.ns2605  +++|    TERREWFLDS[0] = FALSE;           # REWRITE UPDATED FIELD #
04290  M01S00233.ns2605  +++|    REWFLD;
04291  M01S00234.ns2605  +++|    TERREWFLDS[0] = TRUE;            # RESET FLAG TO DEFAULT #
04292  M01S00235.ns2605  +++|    END
04293  M01S00236.ns2605  +++|  TERASCFLAG[0] = ASCFLAG;           # RESTORE INITIAL VALUES #
04294  M01S00237.ns2605  +++|  TERAS8FLAG[0] = AS8FLAG;
04295  M01S00238.ns2605  +++|  IOSTAT = SLEN;
04296  M01S00239.ns2605  +++|  RETURN;
04297  M01S00240.ns2605  +++|
04298  M01S00241.ns2605  +++|END  # MOVEFLD#
04299  M00S02613.sform   +++|CONTROL EJECT;
04300  M00S02614.sform   +++|
04301  M00S02615.sform   +++|PROC MOVEST(STRINGADDR,STRINGOS,SLENGTH);
04302  M00S02616.sform   +++|
04303  M00S02617.sform   +++|# TITLE MOVEST - MOVE STRING. #
04304  M00S02618.sform   +++|
04305  M00S02619.sform   +++|BEGIN  # MOVEST #
04306  M00S02620.sform   +++|
04307  M00S02621.sform   +++|#
04308  M00S02622.sform   +++|**    MOVEST - MOVE STRING.
04309  M00S02623.sform   +++|*
04310  M00S02624.sform   +++|*     THIS PROCEDURE POSITIONS THE BASED ARRAYS TOSTRING
04311  M00S02625.sform   +++|*     AND FROMSTRING AND THEN CALLS THE PROPER PROCEDURE
04312  M00S02626.sform   +++|*     TO DO THE ACTUAL TRANSLATION AND TO MOVE THE STRING
04313  M00S02627.sform   +++|*     FROM OUTSTRING TO VARDATA (IF A WRITE OPERATION IS
04314  M00S02628.sform   +++|*     STARTING) OR FROM VARDATA TO INSTRING (IF A READ
04315  M00S02629.sform   +++|*     OPERATION IS FINISHED).
04316  M00S02630.sform   +++|*
04317  M00S02631.sform   +++|*     PROC MOVEST(STRINGADDR,STRINGOS,SLENGTH)
04318  M00S02632.sform   +++|*
04319  M00S02633.sform   +++|*     ENTRY   STRINGADDR = THE FIRST WORD ADDRESS OF INSTRING
04320  M00S02634.sform   +++|*                          OR OUTSTRING (DEPENDING ON WHICH
04321  M00S02635.sform   +++|*                          DIRECTION THE CHARACTER DATA IS
04322  M00S02636.sform   +++|*                          BEING MOVED).
04323  M00S02637.sform   +++|*             STRINGOS   = CHARACTER OFFSET (IN SIX BIT CHAR-
04324  M00S02638.sform   +++|*                          CTERS) INTO EITHER INSTRING OR OUT-
04325  M00S02639.sform   +++|*                          STRING (DEPENDING ON WHICH DIRECTION
04326  M00S02640.sform   +++|*                          THE CHARACTER DATA IS BEING MOVED).
04327  M00S02641.sform   +++|*             SLENGTH    = LENGTH IN SIX BIT CHARACTERS.
04328  M00S02642.sform   +++|*             TERREADFLG = TRUE, IF MOVING FROM VARDATA TO INSTRING
04329  M00S02643.sform   +++|*                          DURING AN SFSREA CALL, FALSE IF MOVING
04330  M00S02644.sform   +++|*                          FROM OUTSTRING TO VARDATA DURING AN SFS-
04331  M00S02645.sform   +++|*                          WRI CALL.
04332  M00S02646.sform   +++|*
04333  M00S02647.sform   +++|*     EXIT    STRING MOVED, AND TRANSLATED IF NECESSARY.
04334  M00S02648.sform   +++|*
04335  M00S02649.sform   +++|*     CALLS   MVASA8, MVA8AS, MVA8A8, MVA8DC, MVDCA8.
04336  M00S02650.sform   +++|#
04337  M00S02651.sform   +++|ITEM STRINGADDR I;                   # ADDRESS OF IN/OUTSTRING #
04338  M00S02652.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET INTO STRING #
04339  M00S02653.sform   +++|ITEM SLENGTH    I;                   # LENGTH IN SIX BIT CHARACTERS #
04340  M00S02654.sform   +++|
04341  M00S02655.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROM STRING #
04342  M00S02656.sform   +++|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TO STRING #
04343  M00S02657.sform   +++|
04344  M00S02658.sform   +++|IF NOT TERREADFLG[0] THEN
04345  M00S02659.sform   +++|  BEGIN                              # IF MOVING OUTSTRING TO VARDATA #
04346  M00S02660.sform   +++|  P<FROMSTRING> = STRINGADDR;        # POSITION FROM AND TO STRING #
04347  M00S02661.sform   +++|  P<TOSTRING> = LOC(VDATAU[0]);
04348  M00S02662.sform   +++|  FROMCHAROS = STRINGOS;             # CHARACTER OFFSET / FROM STRING #
04349  M01S00242.ns2605  +++|  TOCHAROS = 0;                      # NO CHARACTER OFFSET / VARDATA #
04350  M00S02663.sform   +++|  IF TERAS8FLAG[0] THEN
04351  M00S02664.sform   +++|    BEGIN                            # IF NO TRANSLATION REQUIRED #
Line S02665 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04352  M01S02665.ns2605  ---|    TOCHAROS = 0;                    # NO CHARACTER OFFSET / VARDATA #
04353  M01S02666.ns2605  ---|    MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH);  # MOVE OUTSTRING TO VARDATA #
Line S00243 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04354  M01S00243.ns2605  +++|    IF SLENGTH LQ 0 THEN SLENGTH = PANNUMBYTE[0] * 2;
04355  M01S00244.ns2605  +++|    MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0]*2,FALSE);
04356  M00S02667.sform   +++|    END
04357  M00S02668.sform   +++|  ELSE
04358  M00S02669.sform   +++|    BEGIN
04359  M00S02670.sform   +++|    IF TERASCFLAG[0] THEN
04360  M00S02671.sform   +++|      BEGIN                          # IF SIX TWELVE ASCII #
Line S02672 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04361  M01S02672.ns2605  ---|      MVASA8(FROMCHAROS,SLENGTH);    # MOVE OUTSTRING TO VARDATA #
Line S00245 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04362  M01S00245.ns2605  +++|      MVASA8(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04363  M00S02673.sform   +++|      END
04364  M00S02674.sform   +++|    ELSE
04365  M00S02675.sform   +++|      BEGIN                          # IF SIX BIT DISPLAY CODE #
Line S02676 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04366  M01S02676.ns2605  ---|      MVDCA8(FROMCHAROS,SLENGTH);    # MOVE OUTSTRING TO VARDATA #
Line S00246 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04367  M01S00246.ns2605  +++|        MVDCA8(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04368  M00S02677.sform   +++|      END
04369  M00S02678.sform   +++|    END
04370  M00S02679.sform   +++|  END
04371  M00S02680.sform   +++|ELSE
04372  M00S02681.sform   +++|  BEGIN                              # IF MOVING VARDATA TO INSTRING #
04373  M00S02682.sform   +++|  P<FROMSTRING> = LOC(VDATAU[0]);    # POSITION FROM AND TO STRING #
04374  M00S02683.sform   +++|  P<TOSTRING> = STRINGADDR;
04375  M00S02684.sform   +++|  TOCHAROS = STRINGOS;               # CHARACTER OFFSET / TO STRING #
04376  M01S00247.ns2605  +++|  FROMCHAROS = 0;                    # NO CHARACTER OFFSET / VARDATA #
04377  M00S02685.sform   +++|  IF TERAS8FLAG[0] THEN
04378  M00S02686.sform   +++|    BEGIN                            # IF NO TRANSLATION REQUIRED #
Line S02687 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04379  M01S02687.ns2605  ---|    FROMCHAROS = 0;                  # NO CHARACTER OFFSET / VARDATA #
04380  M01S02688.ns2605  ---|    MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH);  # MOVE VARDATA TO INSTRING #
Line S00248 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04381  M01S00248.ns2605  +++|    IF SLENGTH LQ 0 THEN SLENGTH = PANNUMBYTE[0] * 2;
04382  M01S00249.ns2605  +++|    MVA8A8(FROMCHAROS,TOCHAROS,PANNUMBYTE[0]*2,SLENGTH,FALSE);
04383  M00S02689.sform   +++|    END
04384  M00S02690.sform   +++|  ELSE
04385  M00S02691.sform   +++|    BEGIN
04386  M00S02692.sform   +++|    IF TERASCFLAG[0] THEN
04387  M00S02693.sform   +++|      BEGIN                          # IF SIX TWELVE ASCII #
Line S02694 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04388  M01S02694.ns2605  ---|      MVA8AS(TOCHAROS,SLENGTH);      # MOVE VARDATA TO INSTRING #
Line S00250 Modification History
M01 (Added by) ns2605
M02 (Removed by) ns2605a
Seq #  *Modification Id* Act 
----------------------------+
04389  M02S00250.ns2605a ---|      MVA8AS(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
Line S00001 Modification History
M01 (Added by) ns2605a
Seq #  *Modification Id* Act 
----------------------------+
04390  M01S00001.ns2605a +++|      MVA8AS(TOCHAROS,FROMCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04391  M00S02695.sform   +++|      END
04392  M00S02696.sform   +++|    ELSE
04393  M00S02697.sform   +++|      BEGIN                          # IF SIX BIT DISPLAY CODE #
Line S02698 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04394  M01S02698.ns2605  ---|      MVA8DC(TOCHAROS,SLENGTH);      # MOVE VARDATA TO INSTRING #
Line S00251 Modification History
M01 (Added by) ns2605
M02 (Removed by) ns2605a
Seq #  *Modification Id* Act 
----------------------------+
04395  M02S00251.ns2605a ---|      MVA8DC(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
Line S00002 Modification History
M01 (Added by) ns2605a
Seq #  *Modification Id* Act 
----------------------------+
04396  M01S00002.ns2605a +++|      MVA8DC(TOCHAROS,FROMCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04397  M00S02699.sform   +++|      END
04398  M00S02700.sform   +++|    END
04399  M00S02701.sform   +++|  END
04400  M00S02702.sform   +++|
04401  M00S02703.sform   +++|END  # MOVEST #
Line S00252 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04402  M01S00252.ns2605  +++|CONTROL EJECT;
04403  M01S00253.ns2605  +++|
Line S02704 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04404  M01S02704.ns2605  ---|CONTROL EJECT;
04405  M01S02705.ns2605  ---|
04406  M01S02706.ns2605  ---|PROC MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH);
Line S00254 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04407  M01S00254.ns2605  +++|PROC MVA8A8(FROMCHAROS,TOCHAROS,FROMLENGTH,TOLENGTH,FILL);
04408  M00S02707.sform   +++|
04409  M00S02708.sform   +++|# TITLE MVA8A8 - MOVE ASCII8 STRING. #
04410  M00S02709.sform   +++|
04411  M00S02710.sform   +++|BEGIN  # MVA8A8 #
04412  M00S02711.sform   +++|
04413  M00S02712.sform   +++|#
04414  M00S02713.sform   +++|**    MVA8A8 - MOVE ASCII8 STRING.
04415  M00S02714.sform   +++|*
04416  M00S02715.sform   +++|*     THIS PROCEDURE MOVES THE ASCII8 CHARACTER DATA FROM OUTSTRING
04417  M00S02716.sform   +++|*     TO VARDATA BEFORE A WRITE, OR FROM VARDATA TO INSTRING AFTER
Line S02717 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04418  M01S02717.sform8  ---|*     A READ, USING THE BASED ARRAYS FROMSTRING AND TO STRING.
Line S00001 Modification History
M01 (Added by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04419  M02S00001.ns2605  ---|*     A READ, USING THE BASED ARRAYS FROMSTRING AND TOSTRING.
Line S00255 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04420  M01S00255.ns2605  +++|*     A READ, USING THE BASED ARRAYS FROMSTRING AND TOSTRING.  IF THE
04421  M01S00256.ns2605  +++|*     DESTINATION FIELD IS SHORTER THAN THE SOURCE FIELD, THE STRING
04422  M01S00257.ns2605  +++|*     WILL BE TRUNCATED.  IF THE SOURCE FIELD IS SHORTER AND *FILL* IS
04423  M01S00258.ns2605  +++|*     *TRUE*, THE DESTINATION FIELD WILL BE BLANK FILLED.
04424  M00S02718.sform   +++|*
Line S02719 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04425  M01S02719.ns2605  ---|*     PROC MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH)
Line S00259 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04426  M01S00259.ns2605  +++|*     PROC MVA8A8(FROMCHAROS,TOCHAROS,FROMLENGTH,TOLENGTH,FILL)
04427  M00S02720.sform   +++|*
04428  M00S02721.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04429  M00S02722.sform   +++|*             FROMCHAROS = THE CHARACTER OFFSET INTO FROMSTRING.
04430  M00S02723.sform   +++|*             TOCHAROS   = THE CHARACTER OFFSET INTO TOSTRING.
Line S02724 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04431  M01S02724.ns2605  ---|*             SLENGTH    = LENGTH OF APPLICATION STRING IN SIX
04432  M01S02725.ns2605  ---|*                          CHARACTERS.
Line S00260 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
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  M00S02726.sform   +++|*
04437  M00S02727.sform   +++|*     EXIT    STRING MOVED.
04438  M00S02728.sform   +++|*
Line S02729 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04439  M01S02729.ns2605  ---|*     NOTES   SINCE ONE OF THE TWO STRINGS IS DEFINED IN THE APP-
04440  M01S02730.ns2605  ---|*             LICATION PROGRAM AND THUS DOES NOT NECESSARILY START
04441  M01S02731.ns2605  ---|*             ON A WORD BOUNDARY THE DATA MUST BE TRANSFERED SIX
04442  M01S02732.ns2605  ---|*             BITS AT A TIME EVEN THOUGH IT IS TWELVE BIT ASCII8
04443  M01S02733.ns2605  ---|*             CHARACTER DATA.  ALSO SLENGTH IS NOT THE NUMBER OF
04444  M01S02734.ns2605  ---|*             CHARACTERS (SINCE THEY ARE TWELVE BITS EACH) BUT THE
04445  M01S02735.ns2605  ---|*             NUMBER OF SIX BIT PARCELS TO MOVE.
Line S00263 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
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  M00S02736.sform   +++|#
04449  M00S02737.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROM STRING #
04450  M00S02738.sform   +++|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TO STRING #
Line S02739 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04451  M01S02739.ns2605  ---|ITEM SLENGTH    I;                   # LENGTH IN SIX BIT CHARACTERS #
Line S00265 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
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  M00S02740.sform   +++|
04456  M00S02741.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S02742 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04457  M01S02742.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
04458  M00S02743.sform   ---|ITEM NUMCHARS   I;                   # NUMBER OF PARCELS TO MOVE #
Line S00268 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04459  M01S00268.ns2605  +++|ITEM SPACE      I = BLANK;           # ASCII SPACE FOR BLANK FILL #
04460  M00S02744.sform   +++|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
Line S02745 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04461  M01S02745.sform8  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TO STRING #
04462  M00S02746.sform   ---|
04463  M00S02747.sform   ---|FROMINDEX = 0;                       # GET FIRST WORD FROM FROMSTRING #
04464  M01S02748.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
04465  M00S02749.sform   ---|TOINDEX = 0;                         # SET TOSTRING INDEX #
Line S02750 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04466  M01S02750.ns2605  ---|IF SLENGTH GR PANNUMBYTE[0] * 2
04467  M01S02751.ns2605  ---|   OR SLENGTH EQ 0 THEN
04468  M01S02752.ns2605  ---|  BEGIN                              # IF STRING EXCEEDS VARDATA #
04469  M01S02753.ns2605  ---|  SLENGTH = PANNUMBYTE[0] * 2;       # RESET NUMBER OF CHARS. TO MOVE #
04470  M01S02754.ns2605  ---|  END
04471  M01S02755.ns2605  ---|FOR NUMCHARS = 0 STEP 1 UNTIL SLENGTH - 1 DO
Line S00269 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
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 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04474  M01S02756.sform8  ---|  BEGIN                              # TRANSFER SIX BIT PARCELS #
04475  M01S02757.sform8  ---|  B<6*TOCHAROS,6>TOWORD = B<6*FROMCHAROS,6>FROMWORD;
Line S00002 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04476  M01S00002.sform8  +++|  BEGIN                              # TRANSFER SIX BIT PARCELS #
Line S00003 Modification History
M01 (Added by) sform8
M02 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04477  M02S00003.ns2605  ---|  C<TOCHAROS,1>TOSTRIU[TOINDEX] =
04478  M02S00004.ns2605  ---|    C<FROMCHAROS,1>FROMSTRIU[FROMINDEX];
Line S02758 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04479  M01S02758.ns2605  ---|  FROMCHAROS = FROMCHAROS + 1;       # UPDATE FROMSTRING CHAR. OFFSET #
Line S00271 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
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  M00S02759.sform   +++|  IF FROMCHAROS EQ 10 THEN
04484  M00S02760.sform   +++|    BEGIN                            # IF FROMSTRING WORD IS EMPTY #
04485  M00S02761.sform   +++|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
04486  M00S02762.sform   +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
Line S02763 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04487  M01S02763.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX]; # GET NEXT WORD FROM FROMSTRING #
04488  M00S02764.sform   ---|    END
Line S02765 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04489  M01S02765.ns2605  ---|  TOCHAROS = TOCHAROS + 1;           # UPDATE TOSTRING CHAR. OFFSET #
Line S00274 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04490  M01S00274.ns2605  +++|  TOCHAROS = TOCHAROS + 2;           # INCREMENT TOSTRING OFFSET #
04491  M00S02766.sform   +++|  IF TOCHAROS EQ 10 THEN
04492  M00S02767.sform   +++|    BEGIN                            # IF TOSTRING WORD IS FULL #
04493  M00S02768.sform   +++|    TOCHAROS = 0;                    # RESET CHARACTER OFFSET #
Line S02769 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04494  M01S02769.sform8  ---|    TOSTRIU[TOINDEX] = TOWORD;       # STORE WORD INTO TOSTRING #
04495  M01S02770.sform8  ---|    TOINDEX = TOINDEX + 1;           # UPDATE TOWORD INDEX #
Line S00005 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04496  M01S00005.sform8  +++|    TOINDEX = TOINDEX + 1;           # UPDATE TOSTRING WORD INDEX #
Line S02771 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04497  M01S02771.sform8  ---|    END
04498  M01S02772.sform8  ---|  END
04499  M01S02773.sform8  ---|IF TOCHAROS NQ 0 THEN
04500  M01S02774.sform8  ---|  BEGIN                              # IF PARTIAL WORD TO MOVE #
04501  M01S02775.sform8  ---|  FOR NUMCHARS = 0 STEP 1 UNTIL TOCHAROS -1 DO
04502  M01S02776.sform8  ---|    BEGIN                            # MOVE ONLY REQUIRED CHARACTERS #
04503  M01S02777.sform8  ---|    B<6*NUMCHARS,6>TOSTRIU[TOINDEX] = B<6*NUMCHARS,6>TOWORD;
04504  M00S02778.sform   ---|    END
04505  M00S02779.sform   ---|  END
Line S00275 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
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  M00S02780.sform   +++|
04518  M00S02781.sform   +++|END  # MVA8A8 #
04519  M00S02782.sform   +++|CONTROL EJECT;
04520  M00S02783.sform   +++|
Line S02784 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04521  M01S02784.ns2605  ---|PROC MVASA8(STRINGOS,SLENGTH);
Line S00286 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04522  M01S00286.ns2605  +++|PROC MVASA8(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL);
04523  M00S02785.sform   +++|
04524  M00S02786.sform   +++|# TITLE MVASA8 - MOVE AND TRANSLATE ASCII TO ASCII8. #
04525  M00S02787.sform   +++|
04526  M00S02788.sform   +++|BEGIN  # MVASA8 #
04527  M00S02789.sform   +++|
04528  M00S02790.sform   +++|#
04529  M00S02791.sform   +++|**    MVASA8 - MOVE AND TRANSLATE ASCII TO ASCII8.
04530  M00S02792.sform   +++|*
04531  M00S02793.sform   +++|*     THIS PROCEDURE MOVES THE CHARACTER DATA FROM OUTSTRING TO
04532  M00S02794.sform   +++|*     VARDATA BEFORE A WRITE, USING THE BASED ARRAYS FROMSTRING
04533  M00S02795.sform   +++|*     AND TOSTRING, TRANSLATING FROM ASCII TO ASCII8.
04534  M00S02796.sform   +++|*
Line S02797 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04535  M01S02797.ns2605  ---|*     PROC MVASA8(STRINGOS,SLENGTH)
Line S00287 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04536  M01S00287.ns2605  +++|*     PROC MVASA8(STRINGOS,VAROS,SLENGTH,NUMVDCHARS,FILL)
04537  M00S02798.sform   +++|*
04538  M00S02799.sform   +++|*     ENTRY   BASED ARRAYS FROMSTRING AND TOSTRING POSITIONED.
04539  M00S02800.sform   +++|*             STRINGOS   = THE CHARACTER OFFSET INTO OUTSTRING.
04540  M01S00288.ns2605  +++|*             VAROS      = THE CHARACTER OFFSET INTO VARDATA.
04541  M00S02801.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  M00S02802.sform   +++|*
04545  M00S02803.sform   +++|*     EXIT    STRING MOVED AND TRANSLATED.
04546  M00S02804.sform   +++|*
Line S02805 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04547  M01S02805.ns2605  ---|*     NOTES   SINCE OUTSTRING IS DEFINED IN THE APPLICATION PROGRAM
04548  M01S02806.ns2605  ---|*             AND THUS DOES NOT NECESSARILY START ON A WORD BOUNDARY
04549  M01S02807.ns2605  ---|*             FROMCHAROS IS SET TO STRINGOS BEFORE THE LOOP IS BEGUN.
04550  M01S02808.ns2605  ---|*             ALSO SLENGTH IS NOT NECESSARILY THE NUMBER OF CHARACTERS
Line S00291 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04551  M01S00291.ns2605  +++|*     NOTE    SLENGTH IS NOT NECESSARILY THE NUMBER OF CHARACTERS
04552  M00S02809.sform   +++|*             (SINCE THEY CAN BE EITHER SIX OR TWELVE BITS LONG) BUT
04553  M00S02810.sform   +++|*             RATHER THE NUMBER OF SIX BIT PARCELS IN OUTSTRING.
04554  M00S02811.sform   +++|#
04555  M00S02812.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET / OUTSTRING #
04556  M00S02813.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  M00S02814.sform   +++|
04561  M00S02815.sform   +++|ITEM ASCIICHR   I;                   # HOLDS AN ASCII CHARACTER #
04562  M00S02816.sform   +++|ITEM ASCII8CHR  I;                   # HOLDS AN ASCII8 CHARACTER #
Line S00006 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04563  M01S00006.sform8  +++|ITEM ESCAPECODE I;                   # ESCAPE CODE FOR 12 BIT CHARS. #
04564  M00S02817.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROMSTRING #
04565  M00S02818.sform   +++|ITEM FROMINDEX  I;                   # INDEX INTO FROMSTRING #
Line S02819 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04566  M01S02819.sform8  ---|ITEM FROMWORD   I;                   # HOLDS A WORD FROM FROMSTRING #
Line S02820 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04567  M01S02820.ns2605  ---|ITEM NUMVDCHARS I;                   # NUMBER OF CHARS. IN VARDATA #
04568  M00S02821.sform   ---|ITEM NUMOTCHARS I;                   # NUMBER OF CHARS. IN OUTSTRING #
Line S00295 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04569  M01S00295.ns2605  +++|ITEM SPACE      I = BLANK;           # ASCII SPACE FOR BLANK FILL #
Line S02822 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04570  M01S02822.sform8  ---|ITEM ESCAPECODE I;                   # ESCAPE CODE FOR 12 BIT CHARS. #
04571  M00S02823.sform   ---|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TOSTRING #
04572  M00S02824.sform   ---|ITEM TOINDEX    I;                   # INDEX INTO TOSTRING #
04573  M01S02825.sform8  ---|ITEM TOWORD     I;                   # HOLDS A WORD FOR TOSTRING #
04574  M00S02826.sform   ---|
04575  M00S02827.sform   ---|FROMINDEX = 0;                       # GET FIRST WORD FROM FROMSTRING #
04576  M01S02828.sform8  ---|FROMWORD = FROMSTRIU[FROMINDEX];
04577  M00S02829.sform   ---|FROMCHAROS = STRINGOS;               # CHARACTER OFFSET IN FROMSTRING #
04578  M00S02830.sform   ---|TOINDEX = 0;                         # START AT BEGINNING OF VARDATA #
Line S02831 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04579  M01S02831.ns2605  ---|TOCHAROS = 0;
Line S00296 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04580  M01S00296.ns2605  +++|TOCHAROS = VAROS;                    # CHARACTER OFFSET IN VARDATA #
04581  M00S02832.sform   +++|ESCAPECODE = 0;                      # CLEAR ESCAPE CODE #
Line S02833 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04582  M01S02833.ns2605  ---|NUMVDCHARS = PANNUMBYTE[0];          # SET VARDATA CHARACTER COUNT #
04583  M01S02834.ns2605  ---|IF SLENGTH EQ 0 THEN
04584  M01S02835.ns2605  ---|  BEGIN                              # IF ZERO OUTSTRING COUNT #
04585  M01S02836.ns2605  ---|  NUMOTCHARS = PANNUMBYTE[0] * 2;    # ASSUME WORST CASE #
04586  M01S02837.ns2605  ---|  END
04587  M01S02838.ns2605  ---|ELSE
04588  M01S02839.ns2605  ---|  BEGIN
04589  M01S02840.ns2605  ---|  NUMOTCHARS = SLENGTH;              # SET NUMBER OF CHARACTERS #
04590  M01S02841.ns2605  ---|  END
Line S00297 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
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 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04593  M01S02842.ns2605  ---|WHYLE NUMOTCHARS NQ 0 AND NUMVDCHARS NQ 0 DO
Line S00299 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04594  M01S00299.ns2605  +++|NUMOTCHARS = 0;                      # INITIALIZE LOOP #
04595  M01S00300.ns2605  +++|WHYLE NUMOTCHARS LS SLENGTH AND NUMVDCHARS GR 0 DO
04596  M00S02843.sform   +++|  BEGIN                              # TRANSLATE CHARACTERS #
Line S02844 Modification History
M01 (Removed by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04597  M01S02844.ns2605  ---|  NUMOTCHARS = NUMOTCHARS - 1;       # DECREMENT OUTSTRING COUNT #
Line S00301 Modification History
M01 (Added by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04598  M01S00301.ns2605  +++|  NUMOTCHARS = NUMOTCHARS + 1;       # INCREMENT OUTSTRING COUNT #
Line S02845 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04599  M01S02845.sform8  ---|  ASCIICHR = B<6*FROMCHAROS,6>FROMWORD;
Line S00007 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04600  M01S00007.sform8  +++|  ASCIICHR = B<6*FROMCHAROS,6>FROMSTRIU[FROMINDEX];
04601  M00S02846.sform   +++|  FROMCHAROS = FROMCHAROS + 1;       # UPDATE FROMSTRING CHAR. OFFSET #
04602  M00S02847.sform   +++|  IF FROMCHAROS EQ 10 THEN
04603  M00S02848.sform   +++|    BEGIN                            # IF FROMSTRING WORD EXHAUSTED #
Line S02849 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04604  M01S02849.sform8  ---|    FROMINDEX = FROMINDEX + 1;       # GET NEXT WORD FROM FROMSTRING #
04605  M01S02850.sform8  ---|    FROMWORD = FROMSTRIU[FROMINDEX];
04606  M01S02851.sform8  ---|    FROMCHAROS = 0;                  # RESET CHARACTER OFFSET #
Line S00008 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04607  M01S00008.sform8  +++|    FROMINDEX = FROMINDEX + 1;       # UPDATE FROMSTRING WORD INDEX #
04608  M01S00009.sform8  +++|    FROMCHAROS = 0;
04609  M00S02852.sform   +++|    END
04610  M00S02853.sform   +++|  IF ESCAPECODE NQ 0 THEN
04611  M00S02854.sform   +++|    BEGIN                            # IF HALF WAY THROUGH TWELVE BIT #
04612  M00S02855.sform   +++|    IF ESCAPECODE EQ 62 THEN
04613  M00S02856.sform   +++|      BEGIN                          # IF LOWER CASE ALPHABETIC #
04614  M00S02857.sform   +++|      ASCII8CHR = ASCIICHR + 96;
04615  M00S02858.sform   +++|      END
04616  M00S02859.sform   +++|    ELSE
04617  M00S02860.sform   +++|      BEGIN                          # IF SPECIAL ASCII CHARACTER #
04618  M00S02861.sform   +++|      ASCII8CHR = AS2A8[ASCIICHR];
04619  M00S02862.sform   +++|      END
04620  M00S02863.sform   +++|    ESCAPECODE = 0;                  # CLEAR ESCAPE CODE #
04621  M00S02864.sform   +++|    END
04622  M00S02865.sform   +++|  ELSE
04623  M00S02866.sform   +++|    BEGIN                            # IF SIX BIT ASCII CHARACTER #
04624  M00S02867.sform   +++|    IF ASCIICHR NQ 60 AND ASCIICHR NQ 62 THEN
04625  M00S02868.sform   +++|      BEGIN                          # IF NOT ESCAPE CODE #
04626  M00S02869.sform   +++|      ASCII8CHR = DC2A8[ASCIICHR];
04627  M00S02870.sform   +++|      END
04628  M00S02871.sform   +++|    ELSE
04629  M00S02872.sform   +++|      BEGIN
04630  M00S02873.sform   +++|      ESCAPECODE = ASCIICHR;         # SAVE ESCAPE CODE #
04631  M00S02874.sform   +++|      END
04632  M00S02875.sform   +++|    END
04633  M00S02876.sform   +++|  IF ESCAPECODE EQ 0 THEN
04634  M00S02877.sform   +++|    BEGIN                            # IF CHARACTER TO MOVE #
04635  M00S02878.sform   +++|    NUMVDCHARS = NUMVDCHARS - 1;     # DECREMENT VARDATA COUNT #
Line S02879 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04636  M01S02879.sform8  ---|    B<6*TOCHAROS,12>TOWORD = ASCII8CHR;
Line S00010 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04637  M01S00010.sform8  +++|    B<6*TOCHAROS,12>TOSTRIU[TOINDEX] = ASCII8CHR;
04638  M00S02880.sform   +++|    TOCHAROS = TOCHAROS + 2;         # UPDATE TOSTRING CHAR. OFFSET #
04639  M00S02881.sform   +++|    IF TOCHAROS EQ 10 THEN
04640  M00S02882.sform   +++|      BEGIN                          # IF TOSTRING WORD IS FULL #
Line S02883 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04641  M01S02883.sform8  ---|      TOSTRIU[TOINDEX] = TOWORD;     # STORE NEXT WORD INTO TOSTRING #
04642  M01S02884.sform8  ---|      TOINDEX = TOINDEX + 1;
Line S00011 Modification History
M01 (Added by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04643  M01S00011.sform8  +++|      TOINDEX = TOINDEX + 1;         # UPDATE TOSTRING WORD INDEX #
04644  M00S02885.sform   +++|      TOCHAROS = 0;                  # RESET CHARACTER OFFSET #
04645  M00S02886.sform   +++|      END
Line S02887 Modification History
M01 (Removed by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04646  M01S02887.sform8  ---|    END
Proceed to Part 3