User Tools

Site Tools


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

Deck SFORM Part 002

49 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
Line S01381 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02830  M02S01381.ns2275  ---|*     EXIT    OPENSTAT   = 0 IF NO ERROR.
Line S01382 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02831  M02S01382.ns2275  ---|*                        = 7 IF UNSUPPORTED TERMINAL.
Line S01383 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02832  M02S01383.ns2275  ---|*             TERMMODEL  = TERMINAL MODEL ORDINAL, IF NO ERROR.
Line S01384 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02833  M02S01384.ns2275  ---|*                        = -1, ERROR.
Line S01385 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02834  M02S01385.ns2275  ---|*
Line S01386 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02835  M02S01386.ns2275  ---|*     CALLS   VDTGSL.
Line S01387 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02836  M02S01387.ns2275  ---|*
Line S01388 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02837  M02S01388.ns2275  ---|*     USES    TERMMODEL.
Line S01389 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02838  M02S01389.ns2275  ---|#
Line S01390 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02839  M02S01390.ns2275  ---|ITEM OPENSTAT     I;                 # STATUS OF TERMINAL IN USE #
Line S01391 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02840  M02S01391.ns2275  ---|
Line S01392 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02841  M02S01392.ns2275  ---|ITEM OSMODEFG     I;                 # OS SCREEN/LINE MODE FLAG #
Line S01393 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02842  M02S01393.ns2275  ---|
Line S01394 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02843  M02S01394.ns2275  ---|VDTGSL(TERMMODEL,OSMODEFG);          # GET MODEL AND SCREEN OR LINE #
Line S01395 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02844  M02S01395.ns2275  ---|
Line S01396 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02845  M02S01396.ns2275  ---|IF OSMODEFG NQ 1 THEN
Line S01397 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02846  M02S01397.ns2275  ---|  BEGIN                              # IF OS MODE IS LINE #
Line S01398 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02847  M02S01398.ns2275  ---|  OPENSTAT = 7;                      # TERMINAL IS NOT SUPPORTED #
Line S01399 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02848  M02S01399.ns2275  ---|  TERMMODEL = -1;
Line S01400 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02849  M02S01400.ns2275  ---|  END
Line S01401 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02850  M02S01401.ns2275  ---|
Line S01402 Modification History
M01 (Added by) sform
M02 (Updated by) ns2275
Seq #  *Modification Id* Act 
----------------------------+
02851  M02S01402.ns2275  ---|END  # CHKTRM #
02852  M01S01403.sform   +++|CONTROL EJECT;
02853  M01S01404.sform   +++|
02854  M01S01405.sform   +++|PROC CLRLNS;
02855  M01S01406.sform   +++|
02856  M01S01407.sform   +++|# TITLE CLRLNS - CLEAR LINES. #
02857  M01S01408.sform   +++|
02858  M01S01409.sform   +++|BEGIN  # CLRLNS #
02859  M01S01410.sform   +++|
02860  M01S01411.sform   +++|#
02861  M01S01412.sform   +++|**    CLRLNS - CLEAR LINES.
02862  M01S01413.sform   +++|*
02863  M01S01414.sform   +++|*     THIS PROCEDURE CLEARS THE PROPER LINES BEFORE AN OVERLAY
02864  M01S01415.sform   +++|*     WRITE.
02865  M01S01416.sform   +++|*
02866  M01S01417.sform   +++|*     PROC CLRLNS
02867  M01S01418.sform   +++|*
02868  M01S01419.sform   +++|*     EXIT    PROPER LINES CLEARED ON SCREEN.
02869  M01S01420.sform   +++|*
02870  M01S01421.sform   +++|*     CALLS   VDTCLL.
02871  M01S01422.sform   +++|#
02872  M01S01423.sform   +++|ITEM CURYCORD   I;                   # CURRENT Y COORDINATE #
02873  M01S01424.sform   +++|ITEM FLDINDEX   I;                   # INDEX INTO FIELD LIST #
02874  M01S01425.sform   +++|
02875  M01S01426.sform   +++|IF PANSTRFLD[0] EQ 0 THEN RETURN;
02876  M01S01427.sform   +++|
02877  M01S01428.sform   +++|CURYCORD = -1;                       # NO CURRENT Y COORDINATE YET #
02878  M01S01429.sform   +++|FOR FLDINDEX = 0 STEP 1 WHILE FLDENTRY[FLDINDEX] NQ 0 DO
02879  M01S01430.sform   +++|  BEGIN
02880  M01S01431.sform   +++|  IF FLDACTIVE[FLDINDEX] AND FLDYCORD[FLDINDEX] NQ CURYCORD THEN
02881  M01S01432.sform   +++|    BEGIN                            # IF ACTIVE FIELD ON NEW LINE #
02882  M01S01433.sform   +++|    CURYCORD = FLDYCORD[FLDINDEX];   # RESET CURRENT Y COORDINATE #
02883  M01S01434.sform   +++|    VDTCLL(0,CURYCORD);              # CLEAR LINE #
02884  M01S01435.sform   +++|    END
02885  M01S01436.sform   +++|  END
02886  M01S00135.252l678 +++|IF TERNOTCHAR[0] THEN VDTCAA(0);     # IF LINE OR PAGE TYPE ATTRS. #
02887  M01S01437.sform   +++|
02888  M01S01438.sform   +++|END  # CLRLNS #
02889  M01S01439.sform   +++|CONTROL EJECT;
02890  M01S01440.sform   +++|
02891  M01S01441.sform   +++|PROC CPANEL;
02892  M01S01442.sform   +++|
02893  M01S01443.sform   +++|# TITLE CPANEL - CLEAN PANEL. #
02894  M01S01444.sform   +++|
02895  M01S01445.sform   +++|BEGIN  # CPANEL #
02896  M01S01446.sform   +++|
02897  M01S01447.sform   +++|#
02898  M01S01448.sform   +++|**    CPANEL - CLEAN PANEL.
02899  M01S01449.sform   +++|*
02900  M01S01450.sform   +++|*     THIS PROCEDURE CHECKS FLAGS PERTAINING TO REWRITING THE
02901  M01S01451.sform   +++|*     SCREEN AND THEN CALLS THE APPROPRIATE PROCEDURES.
02902  M01S01452.sform   +++|*
02903  M01S01453.sform   +++|*     PROC CPANEL
02904  M01S01454.sform   +++|*
02905  M01S01455.sform   +++|*     ENTRY    TERMESWRIT = TRUE, IF THE MESSAGE CONTAINS A MESSAGE.
02906  M01S01456.sform   +++|*              TERMESREAD = TRUE, IF THE MESSAGE AREA CAN BE CLEARED.
Line S01457 Modification History
M01 (Added by) sform
M02 (Updated by) sform24
Seq #  *Modification Id* Act 
----------------------------+
02907  M02S01457.sform24 ---|*              TERREWFLDS = TRUE, IF AT LEAST ONE INPUT FIELD NEEDS
Line S01458 Modification History
M01 (Added by) sform
M02 (Updated by) sform24
Seq #  *Modification Id* Act 
----------------------------+
02908  M02S01458.sform24 ---|*                           TO BE REWRITTEN.
02909  M01S00002.sform24 +++|*              TERREWFLDS = TRUE, IF ONE OR MORE FIELDS NEED REWRITING.
02910  M01S00003.sform24 +++|*              TERREWSCRN = TRUE, IF THE ENTIRE SCREEN NEEDS REWRITING.
02911  M01S01459.sform   +++|*
02912  M01S01460.sform   +++|*     EXIT     TERMESREAD = FALSE.
02913  M01S01461.sform   +++|*              TERREWFLDS = FALSE.
02914  M01S00004.sform24 +++|*              TERREWSCRN = FALSE.
02915  M01S01462.sform   +++|*
Line S01463 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
02916  M02S01463.242l642 ---|*     CALLS    REWFLD, MCLEAN, VDTBOO, VDTCAA, VDTEOO, WRIALL.
Line S00797 Modification History
M01 (Added by) 242l642
M02 (Updated by) ns2346
Seq #  *Modification Id* Act 
----------------------------+
02917  M02S00797.ns2346  ---|*     CALLS    REWFLD, MCLEAN, VDTCAA, WRIALL.
02918  M01S00007.ns2346  +++|*     CALLS    REWFLD, MCLEAN, VDTSAM, WRIALL.
02919  M01S01464.sform   +++|*
Line S01465 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
02920  M02S01465.242l642 ---|*     USES     TERDONTCLR, TERMESREAD, TERREWFLDS, TERREWSCRN,
Line S01466 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
02921  M02S01466.242l642 ---|*              TERREWVARS.
02922  M01S00798.242l642 +++|*     USES     TERDONTCLR, TERMESREAD, TERNOREWRT, TERREWFLDS,
02923  M01S00799.242l642 +++|*              TERREWSCRN.
02924  M01S01467.sform   +++|#
02925  M01S01468.sform   +++|ITEM I          I;                   # LOOP COUNTER #
02926  M01S01469.sform   +++|
02927  M01S01470.sform   +++|IF TERMESWRIT[0] AND TERMESREAD[0] AND NOT TERREWSCRN[0] THEN
02928  M01S01471.sform   +++|  BEGIN                              # CLEAR MESSAGE AREA #
Line S01472 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
02929  M02S01472.242l642 ---|  VDTBOO;
02930  M01S01473.sform   +++|  MCLEAN(DUMMY,DUMMY);               # CLEAN MESSAGE LINE #
Line S01474 Modification History
M01 (Added by) sform
M02 (Updated by) ns2346
Seq #  *Modification Id* Act 
----------------------------+
02931  M02S01474.ns2346  ---|  VDTCAA;                            # CLEAR ALL ATTRIBUTES #
Line S00008 Modification History
M01 (Added by) ns2346
M02 (Updated by) ns2356
Seq #  *Modification Id* Act 
----------------------------+
02932  M02S00008.ns2356  ---|  VDTSAM(0);                         # CLEAR ALL ATTRIBUTES #
02933  M01S00001.ns2356  +++|  IF NOT TERBLCKMDE[0] THEN
02934  M01S00002.ns2356  +++|    BEGIN
02935  M01S00003.ns2356  +++|    VDTSAM(0);
02936  M01S00004.ns2356  +++|    END
02937  M01S00005.ns2356  +++|  ELSE
02938  M01S00006.ns2356  +++|    BEGIN
02939  M01S00007.ns2356  +++|    VDTSAM(O"6001");
02940  M01S00008.ns2356  +++|    END
Line S01475 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
02941  M02S01475.242l642 ---|  VDTEOO;
02942  M01S01476.sform   +++|  END
02943  M01S01477.sform   +++|
Line S01478 Modification History
M01 (Added by) sform
M02 (Updated by) sform24
Seq #  *Modification Id* Act 
----------------------------+
02944  M02S01478.sform24 ---|IF TERREWFLDS[0] THEN
02945  M01S00005.sform24 +++|IF TERREWFLDS[0] OR TERREWSCRN[0] THEN
02946  M01S01479.sform   +++|  BEGIN                              # REWRITE FLAGGED FIELDS #
02947  M01S01480.sform   +++|  TERREADFLG[0] = TRUE;
02948  M01S01481.sform   +++|  TERDONTCLR[0] = TRUE;              # DO NOT CLEAR REWRITE/ENTERED #
02949  M01S01482.sform   +++|  IF TERREWSCRN[0] THEN
02950  M01S01483.sform   +++|    BEGIN                            # FULL REWRITE OF SCREEN #
02951  M01S01484.sform   +++|    WRIALL;
02952  M01S01485.sform   +++|    TERREWSCRN[0] = FALSE;
02953  M01S01486.sform   +++|    END
02954  M01S01487.sform   +++|  ELSE                               # REWRITE FLAGGED FIELDS #
02955  M01S01488.sform   +++|    BEGIN
Line S01489 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
02956  M02S01489.242l642 ---|    TERREWVARS[0] = FALSE;
02957  M01S00800.242l642 +++|    TERNOREWRT[0] = TRUE;
Line S01490 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
02958  M02S01490.242l642 ---|    VDTBOO;
02959  M01S01491.sform   +++|    REWFLD;                          # REWRITE FIELDS #
Line S01492 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
02960  M02S01492.242l642 ---|    VDTEOO;
Line S01493 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
02961  M02S01493.242l642 ---|    TERREWVARS[0] = TRUE;
02962  M01S00801.242l642 +++|    TERNOREWRT[0] = FALSE;
02963  M01S01494.sform   +++|    END
02964  M01S01495.sform   +++|  TERDONTCLR[0] = FALSE;
02965  M01S01496.sform   +++|  TERREADFLG[0] = FALSE;
02966  M01S01497.sform   +++|  END
02967  M01S01498.sform   +++|
02968  M01S01499.sform   +++|TERMESREAD[0] = FALSE;
02969  M01S01500.sform   +++|TERREWFLDS[0] = FALSE;
02970  M01S01501.sform   +++|
02971  M01S01502.sform   +++|END  # CPANEL #
02972  M01S01503.sform   +++|CONTROL EJECT;
02973  M01S01504.sform   +++|
02974  M01S01505.sform   +++|PROC DATEVL(FLDIND,IVAL);
02975  M01S01506.sform   +++|
02976  M01S01507.sform   +++|# TITLE DATEVL - DATE VALIDATION. #
02977  M01S01508.sform   +++|
02978  M01S01509.sform   +++|BEGIN  # DATEVL #
02979  M01S01510.sform   +++|
02980  M01S01511.sform   +++|#
02981  M01S01512.sform   +++|**    DATEVL - DATE VALIDATION.
02982  M01S01513.sform   +++|*
02983  M01S01514.sform   +++|*     THIS PROCEDURE CHECKS THAT THE INPUT IS A VALID DATE.
02984  M01S01515.sform   +++|*
02985  M01S01516.sform   +++|*     PROC DATEVL(FLDIND,IVAL)
02986  M01S01517.sform   +++|*
02987  M01S01518.sform   +++|*     ENTRY   FLDIND     = INDEX OF CURRENT FIELD IN FLDLIST.
02988  M01S01519.sform   +++|*
02989  M01S01520.sform   +++|*     EXIT    IVAL       = INTEGER VALUE OF INPUT.
02990  M01S01521.sform   +++|*             FLDVALID[FLDIND] = FALSE, IF INVALID INPUT.
02991  M01S01522.sform   +++|*
02992  M01S01523.sform   +++|*     CALLS   GETNUM, SKPBLK.
02993  M01S01524.sform   +++|#
02994  M01S01525.sform   +++|ITEM FLDIND     I;                   # VARIABLE TO BE VALIDATED #
02995  M01S01526.sform   +++|ITEM IVAL       I;                   # INTEGER VALUE OF INPUT #
02996  M01S01527.sform   +++|
02997  M01S01528.sform   +++|ITEM CHAR       I;                   # INPUT CHARACTER #
02998  M01S01529.sform   +++|ITEM CHARPOS    I;                   # CHARACTER POSITION IN FIELD #
02999  M01S01530.sform   +++|ITEM DATEIND    I;                   # INDEX TO DATEARRAY #
03000  M01S01531.sform   +++|ITEM DD         I;                   # DAY #
03001  M01S01532.sform   +++|ITEM DIGITS     I;                   # NUMBER OF DIGITS IN SUBFIELD #
03002  M01S01533.sform   +++|ITEM FVAL       I;                   # SUBFIELD VALUE #
03003  M01S01534.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03004  M01S01535.sform   +++|ITEM INPIND     I;                   # INDEX TO NEXT INPUT CHARACTER #
03005  M01S01536.sform   +++|ITEM MM         I;                   # MONTH #
03006  M01S01537.sform   +++|ITEM TEMP1      I;                   # USED FOR LEAP YEAR CALCULATION #
03007  M01S01538.sform   +++|ITEM VARIND     I;                   # INDEX INTO VARLIST #
03008  M01S01539.sform   +++|ITEM YY         I;                   # YEAR #
03009  M01S01540.sform   +++|
03010  M01S01541.sform   +++|ARRAY DATEARRAY[0:7] P(1);
03011  M01S01542.sform   +++|  BEGIN
03012  M01S01543.sform   +++|  ITEM DATECHAR   U(00,00,60);       # HOLDS INPUT CHARACTERS #
03013  M01S01544.sform   +++|  END
03014  M01S01545.sform   +++|
03015  M01S01546.sform   +++|ARRAY DATEDELS[0:2] P(1);
03016  M01S01547.sform   +++|  BEGIN
03017  M01S01548.sform   +++|  ITEM DATEDEL    U(00,00,60);       # DATE DELIMETER #
03018  M01S01549.sform   +++|  END
03019  M01S01550.sform   +++|
03020  M01S01551.sform   +++|ARRAY FIELDARRAY[0:2] P(1);
03021  M01S01552.sform   +++|  BEGIN
03022  M01S01553.sform   +++|  ITEM FIELD      U(00,00,60);       # HOLDS MONTH, DAY, YEAR FIELDS #
03023  M01S01554.sform   +++|  END
03024  M01S01555.sform   +++|
03025  M01S01556.sform   +++|ARRAY MONTHS [0:12] P(1);            # NUMBER OF DAYS IN EACH MONTH #
03026  M01S01557.sform   +++|  BEGIN                              # 0TH MONTH = LEAP YEAR FEBRUARY #
03027  M01S01558.sform   +++|  ITEM MONLENGTH  U(00,00,60) =
03028  M01S01559.sform   +++|                 [29,31,28,31,30,31,30,31,31,30,31,30,31];
03029  M01S01560.sform   +++|  END
03030  M01S01561.sform   +++|
03031  M01S01562.sform   +++|SWITCH DATETYPE:FORMTYPE
03032  M01S01563.sform   +++|  YYMMDD : Y,
03033  M01S01564.sform   +++|  MMDDYY : M,
03034  M01S01565.sform   +++|  DDMMYY : D;
03035  M01S01566.sform   +++|
03036  M01S01567.sform   +++|DATEIND = 0;
03037  M01S01568.sform   +++|INPIND = 0;
03038  M01S01569.sform   +++|CHARPOS = 0;
03039  M01S01570.sform   +++|
03040  M01S01571.sform   +++|VARIND = FLDVARORD[FLDIND];          # SET INDEX TO VARLIST #
03041  M01S01572.sform   +++|IVAL = 0;
03042  M01S01573.sform   +++|SKPBLK(FLDIND,CHARPOS,CHAR);
03043  M01S01574.sform   +++|IF CHARPOS GQ FLDLENGTH[FLDIND] THEN
03044  M01S01575.sform   +++|  BEGIN                              # BLANK FIELD #
03045  M01S01576.sform   +++|  FLDVALID[FLDIND] = FALSE;
03046  M01S01577.sform   +++|  RETURN;
03047  M01S01578.sform   +++|  END
03048  M01S01579.sform   +++|
03049  M01S01580.sform   +++|FOR I = 0 STEP 1 UNTIL 2 DO
03050  M01S01581.sform   +++|  BEGIN
03051  M01S01582.sform   +++|  FVAL = 0;
03052  M01S01583.sform   +++|  GETNUM(FLDIND,CHARPOS,FVAL,DIGITS);
03053  M01S01584.sform   +++|  IF I NQ 2 THEN
03054  M01S01585.sform   +++|    BEGIN
03055  M01S01586.sform   +++|    CHAR = NEXTCHAR(FLDIND,CHARPOS);
03056  M01S01587.sform   +++|    DATEDEL[I] = CHAR;
03057  M01S01588.sform   +++|    END
03058  M01S01589.sform   +++|  ELSE CHARPOS = CHARPOS -1;
03059  M01S01590.sform   +++|  IF NOT(DIGITS EQ 1 OR DIGITS EQ 2) THEN
03060  M01S01591.sform   +++|    BEGIN
03061  M01S01592.sform   +++|    FLDVALID[FLDIND] = FALSE;
03062  M01S01593.sform   +++|    RETURN;
03063  M01S01594.sform   +++|    END
03064  M01S01595.sform   +++|  CHARPOS = CHARPOS + 1;
03065  M01S01596.sform   +++|  FIELD[I] = FVAL;
03066  M01S01597.sform   +++|  END
03067  M01S01598.sform   +++|
03068  M01S01599.sform   +++|IF CHARPOS NQ FLDLENGTH[FLDIND] THEN
03069  M01S01600.sform   +++|  BEGIN                              # CHECK FOR EXTRA CHARACTERS #
03070  M01S01601.sform   +++|  SKPBLK(FLDIND,CHARPOS,CHAR);
03071  M01S01602.sform   +++|  IF CHARPOS LQ FLDLENGTH[FLDIND] - 1 THEN
03072  M01S01603.sform   +++|    BEGIN                            # NON-BLANK CHAR AFTER DATE #
03073  M01S01604.sform   +++|    FLDVALID[FLDIND] = FALSE;
03074  M01S01605.sform   +++|    RETURN;
03075  M01S01606.sform   +++|    END
03076  M01S01607.sform   +++|  END
03077  M01S01608.sform   +++|
03078  M01S01609.sform   +++|IF DATEDEL[1] NQ DATEDEL[0] THEN
03079  M01S01610.sform   +++|  BEGIN
03080  M01S01611.sform   +++|  FLDVALID[FLDIND] = FALSE;
03081  M01S01612.sform   +++|  RETURN;
03082  M01S01613.sform   +++|  END
03083  M01S01614.sform   +++|GOTO DATETYPE[VARPICTYPE[VARIND]];
03084  M01S01615.sform   +++|
03085  M01S01616.sform   +++|MMDDYY:                              # SET MONTH, DAY, YEAR VALUES #
03086  M01S01617.sform   +++|
03087  M01S01618.sform   +++|  MM = FIELD[0];
03088  M01S01619.sform   +++|  DD = FIELD[1];
03089  M01S01620.sform   +++|  YY = FIELD[2];
03090  M01S01621.sform   +++|  GOTO CHECKDATE;
03091  M01S01622.sform   +++|
03092  M01S01623.sform   +++|YYMMDD:                              # SET MONTH, DAY, YEAR VALUES #
03093  M01S01624.sform   +++|
03094  M01S01625.sform   +++|  YY = FIELD[0];
03095  M01S01626.sform   +++|  MM = FIELD[1];
03096  M01S01627.sform   +++|  DD = FIELD[2];
03097  M01S01628.sform   +++|  GOTO CHECKDATE;
03098  M01S01629.sform   +++|
03099  M01S01630.sform   +++|DDMMYY:                              # SET MONTH, DAY, YEAR VALUES #
03100  M01S01631.sform   +++|
03101  M01S01632.sform   +++|  DD = FIELD[0];
03102  M01S01633.sform   +++|  MM = FIELD[1];
03103  M01S01634.sform   +++|  YY = FIELD[2];
03104  M01S01635.sform   +++|
03105  M01S01636.sform   +++|CHECKDATE:                           # CHECK FOR VALID DATE VALUE #
03106  M01S01637.sform   +++|
03107  M01S01638.sform   +++|  IF MM GR 12 OR MM LS 1 THEN
03108  M01S01639.sform   +++|    BEGIN                            # INVALID MONTH #
03109  M01S01640.sform   +++|    FLDVALID[FLDIND] = FALSE;
03110  M01S01641.sform   +++|    RETURN;
03111  M01S01642.sform   +++|    END
03112  M01S01643.sform   +++|
03113  M01S01644.sform   +++|  IF MM EQ 2 THEN                    # CHECK IF LEAP YEAR FEBRUARY #
03114  M01S01645.sform   +++|    BEGIN
03115  M01S01646.sform   +++|    TEMP1 = YY / 4;
03116  M01S01647.sform   +++|    TEMP1 = YY - (4 * TEMP1);
03117  M01S01648.sform   +++|    IF TEMP1 EQ 0 THEN MM = 0;
03118  M01S01649.sform   +++|    END
03119  M01S01650.sform   +++|
03120  M01S01651.sform   +++|  IF DD GR MONLENGTH[MM] OR DD LS 1 THEN
03121  M01S01652.sform   +++|    BEGIN                            # INVALID DAY #
03122  M01S01653.sform   +++|    FLDVALID[FLDIND] = FALSE;
03123  M01S01654.sform   +++|    RETURN;
03124  M01S01655.sform   +++|    END
03125  M01S01656.sform   +++|
03126  M01S01657.sform   +++|  IF MM EQ 0 THEN MM = 2;
03127  M01S01658.sform   +++|  IVAL = YY*10000 + MM*100 + DD;
03128  M01S01659.sform   +++|
03129  M01S01660.sform   +++|END  # DATEVL #
03130  M01S01661.sform   +++|CONTROL EJECT;
03131  M01S01662.sform   +++|
03132  M01S01663.sform   +++|PROC ERRMSG(PANELNAME,PROCNAME,PROCMSG,FATAL);
03133  M01S01664.sform   +++|
03134  M01S01665.sform   +++|# TITLE ERRMSG - ERROR MESSAGE PROCEDURE. #
03135  M01S01666.sform   +++|
03136  M01S01667.sform   +++|BEGIN  # ERRMSG #
03137  M01S01668.sform   +++|
03138  M01S01669.sform   +++|#
03139  M01S01670.sform   +++|**    ERRMSG - ERROR MESSAGE PROCEDURE.
03140  M01S01671.sform   +++|*
03141  M01S01672.sform   +++|*     THIS PROCEDURE ISSUES A DAYFILE MESSAGE INDICATING WHICH
03142  M01S01673.sform   +++|*     PANEL CAUSED AN ERROR AND THE PROCEDURE THAT DETECTED IT.
03143  M01S01674.sform   +++|*     IT ALSO TERMINATES THE PROGRAM IF THE ERROR IS FATAL.
03144  M01S01675.sform   +++|*
03145  M01S01676.sform   +++|*     PROC ERRMSG(PANELNAME,PROCNAME,PROCMSG,FATAL)
03146  M01S01677.sform   +++|*
03147  M01S01678.sform   +++|*     ENTRY   PANELNAME  = THE NAME OF THE PANEL.
03148  M01S01679.sform   +++|*             PROCNAME   = THE NAME OF THE EXTERNAL PROCEDURE
03149  M01S01680.sform   +++|*                          THAT DETECTED THE ERROR.
03150  M01S01681.sform   +++|*             PROCMSG    = THE ERROR MESSAGE.
03151  M01S01682.sform   +++|*             FATAL      = TRUE IF THE ERROR IS FATAL, FALSE OTHERWISE.
03152  M01S01683.sform   +++|*
03153  M01S01684.sform   +++|*     EXIT    MESSAGE ISSUED TO DAYFILE, PROGRAM TERMINATED IF FATAL
03154  M01S01685.sform   +++|*             IS TRUE.
03155  M01S01686.sform   +++|*
Line S01687 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03156  M02S01687.242l642 ---|*     CALLS   VDTCLO, VDTCLS, VDTMSG$, VDTSTM.
03157  M01S00802.242l642 +++|*IF UNDEF,QTRM
03158  M01S00803.242l642 +++|*     CALLS   VDTCLO, VDTCLS, VDTMSG$, VDTSTM.
03159  M01S00804.242l642 +++|*ELSE
03160  M01S00805.242l642 +++|*ENDIF
03161  M01S01688.sform   +++|*
03162  M01S01689.sform   +++|*     USES    TERACTIVEP, TERACTPANI, TERCNWRIOV, TERMESREAD,
03163  M01S01690.sform   +++|*             TERMESWRIT, TERSCREENM, TERSHOWFLG.
03164  M01S01691.sform   +++|*
03165  M01S01692.sform   +++|*     NOTES   THIS PROCEDURE IS CALLED BY SFCLOS WHEN A PANEL CANNOT BE
03166  M01S01693.sform   +++|*             CLOSED (INFORMATIVE MESSAGE ONLY), BY GETADD WHEN A READ,
03167  M01S01694.sform   +++|*             WRITE, OR SHOW OF A PANEL THAT IS NOT IN THE PANEL LOAD
03168  M01S01695.sform   +++|*             TABLE IS ATTEMPTED (INFORMATIVE MESSAGE AND TERMINATION
03169  M01S01696.sform   +++|*             OF PROGRAM), BY WRIPAN WHEN AN ATTEMPT IS MADE TO WRITE
03170  M01S01697.sform   +++|*             AN OVERLAY PANEL BEFORE A PRIMARY PANEL (INFORMATIVE
03171  M01S01698.sform   +++|*             MESSAGE AND TERMINATION OF PROGRAM) AND BY SFLOAD IF
03172  M01S01699.sform   +++|*             AN INTERNAL FAST DYNAMIC LOADER ERROR HAS OCCURRED
03173  M01S01700.sform   +++|*             (INFORMATIVE MESSAGE ONLY).
03174  M01S01701.sform   +++|#
03175  M01S01702.sform   +++|ITEM PANELNAME  C(7);                # PANEL NAME #
03176  M01S01703.sform   +++|ITEM PROCNAME   C(6);                # PROCEDURE NAME #
03177  M01S01704.sform   +++|ITEM PROCMSG    C(20);               # DAYFILE ERROR MESSAGE #
03178  M01S01705.sform   +++|ITEM FATAL      B;                   # PANEL NAME #
03179  M01S01706.sform   +++|
03180  M01S01707.sform   +++|ITEM DAYFILE    I = 0;               # ISSUE MESSAGE TO DAYFILE #
03181  M01S01708.sform   +++|ITEM DAYMESSAGE C(41) = " XXXXXX - PANEL                          ";
03182  M01S00001.sform19 +++|ITEM EMPTY      I = O"00";           # OCTAL ZERO / COLON #
03183  M01S00806.242l642 +++|*IF UNDEF,QTRM
03184  M01S01709.sform   +++|ITEM LINE       I = 0;               # INDICATES LINE MODE TO VDT #
03185  M01S01710.sform   +++|ITEM NOMSG      I = 0;               # NO B-DISPLAY MESSAGE #
03186  M01S00807.242l642 +++|*ENDIF
03187  M01S01711.sform   +++|ITEM NONAME     C(25) = "NAME IS BLANK.           ";  # ERROR MSG. #
Line S01712 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03188  M02S01712.242l642 ---|ITEM RECALL     I = 1;               # RECALL PARAMTER FOR VDTCLO #
03189  M01S00808.242l642 +++|*IF UNDEF,QTRM
03190  M01S00809.242l642 +++|ITEM RECALL     I = 1;               # RECALL PARAMETER FOR VDTCLO #
03191  M01S00810.242l642 +++|*ENDIF
03192  M01S01713.sform   +++|ITEM PANINDEX   I;                   # INDEX INTO PANEL NAME #
03193  M01S01714.sform   +++|ITEM PANLEN     I;                   # LENGTH OF PANEL NAME #
03194  M01S00811.242l642 +++|*IF UNDEF,QTRM
03195  M01S01715.sform   +++|ITEM PLTCOUNT   I;                   # COUNTER TO CLEAR PLT #
03196  M01S00812.242l642 +++|*ENDIF
03197  M01S01716.sform   +++|ITEM SPACE      I = O"55";           # DISPLAY CODE BLANK #
03198  M01S01717.sform   +++|
03199  M01S01718.sform   +++|C<1,6>DAYMESSAGE = PROCNAME;         # PUT IN PROCEDURE NAME #
03200  M01S01719.sform   +++|
03201  M01S01720.sform   +++|PANLEN = 0;
03202  M01S01721.sform   +++|FOR PANINDEX = 0 STEP 1 UNTIL 6 DO
03203  M01S01722.sform   +++|  BEGIN                              # FIND PANEL NAME LENGTH #
Line S01723 Modification History
M01 (Added by) sform
M02 (Updated by) sform19
Seq #  *Modification Id* Act 
----------------------------+
03204  M02S01723.sform19 ---|  IF C<PANINDEX,1>PANELNAME NQ SPACE THEN PANLEN = PANINDEX + 1;
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  M01S01724.sform   +++|  END
03211  M01S01725.sform   +++|
03212  M01S01726.sform   +++|IF PANLEN EQ 0 OR PANELNAME EQ 0 THEN
03213  M01S01727.sform   +++|  BEGIN                              # IF BLANK PANEL NAME #
03214  M01S01728.sform   +++|  C<16,25>DAYMESSAGE = NONAME;       # OVER RIDE PROCEDURE MSG. #
03215  M01S01729.sform   +++|  END
03216  M01S01730.sform   +++|ELSE
03217  M01S01731.sform   +++|  BEGIN                              # PUT IN NAME AND MESSAGE #
03218  M01S01732.sform   +++|  C<16,PANLEN>DAYMESSAGE = PANELNAME;
03219  M01S01733.sform   +++|  C<16+PANLEN,25-PANLEN>DAYMESSAGE = PROCMSG;
03220  M01S01734.sform   +++|  END
03221  M01S01735.sform   +++|
03222  M01S01736.sform   +++|VDTMSG$(DAYMESSAGE,DAYFILE,1);       # ISSUE DAYFILE MESSAGE #
03223  M01S01737.sform   +++|
03224  M01S01738.sform   +++|IF FATAL THEN
03225  M01S01739.sform   +++|  BEGIN                              # IF FATAL ERROR #
03226  M01S00813.242l642 +++|*IF UNDEF,QTRM
03227  M01S01740.sform   +++|    IF TERSCREENM[0] THEN
03228  M01S01741.sform   +++|      BEGIN                          # IF IN SCREEN MODE #
Line S01742 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03229  M02S01742.242l642 ---|      TERSCREENM[0] = FALSE;         # SET LINE MODE #
Line S00814 Modification History
M01 (Added by) 242l642
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03230  M02S00814.252l678 ---|      IF FIRSTWRITE THEN
03231  M01S00136.252l678 +++|      IF NOT TERVDTBOOC[0] THEN
03232  M01S00815.242l642 +++|        BEGIN                        # IF FIRST WRITE #
03233  M01S00816.242l642 +++|        VDTBOO;                      # BEGIN OUTPUT SEQUENCE #
03234  M01S00817.242l642 +++|        END
03235  M01S01743.sform   +++|      VDTCLS;                        # CLEAR SCREEN #
03236  M01S01744.sform   +++|      FOR PLTCOUNT = 1 STEP 1 UNTIL PLTNUMENT[0] DO
03237  M01S01745.sform   +++|        BEGIN                        # CLEAR SEQUENCE NUMBERS #
03238  M01S01746.sform   +++|        PLTENTRYNM[PLTCOUNT] = 0;
03239  M01S01747.sform   +++|        END
03240  M01S01748.sform   +++|      PLTNUMONSC[0] = 0;             # NO PANELS ON SCREEN #
03241  M01S01749.sform   +++|      TERMESWRIT[0] = FALSE;
03242  M01S01750.sform   +++|      TERMESREAD[0] = FALSE;
Line S01751 Modification History
M01 (Added by) sform
M02 (Updated by) ns2231
Seq #  *Modification Id* Act 
----------------------------+
03243  M02S01751.ns2231  ---|      VDTSTM(TERMMODEL,LINE);        # SET LINE MODE #
03244  M01S00002.ns2231  +++|      VDTSTM(LINE,DUMMY);            # SET LINE MODE #
Line S00818 Modification History
M01 (Added by) 242l642
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03245  M02S00818.252l678 ---|      VDTEOO;                        # END OUTPUT SEQUENCE #
03246  M01S00137.252l678 +++|      IF NOT TERNOVDTEO[0] THEN VDTEOO;
Line S00819 Modification History
M01 (Added by) 242l642
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03247  M02S00819.252l678 ---|      FIRSTWRITE = TRUE;
03248  M01S00138.252l678 +++|      TERVDTBOOC[0] = FALSE;
03249  M01S01752.sform   +++|      VDTCLO(RECALL);                # FLUSH OUTPUT, RECALL #
03250  M01S01753.sform   +++|      END
Line S01754 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03251  M02S01754.242l642 ---|    ACTIVEPAN = "       ";           # CLEAR ACTIVE PANEL NAME #
Line S01755 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03252  M02S01755.242l642 ---|    ACTPANPLTI = 0;                  # CLEAR PLT INDEX #
03253  M01S00820.242l642 +++|    TERACTPANL[0] = "       ";       # CLEAR ACTIVE PANEL NAME #
03254  M01S00821.242l642 +++|    TERACTPLTI[0] = 0;               # CLEAR PLT INDEX #
03255  M01S01756.sform   +++|    TERCNWRIOV[0] = FALSE;           # DO NOT ALLOW OVERLAY WRITE #
03256  M01S01757.sform   +++|    VDTMSG$(NOMSG,1,1);              # CLEAR B-DISPLAY #
03257  M01S01758.sform   +++|    TERSHOWFLG[0] = FALSE;
03258  M01S01759.sform   +++|    TERREADFLG[0] = FALSE;
Line S01760 Modification History
M01 (Added by) sform
M02 (Updated by) sform21
Seq #  *Modification Id* Act 
----------------------------+
03259  M02S01760.sform21 ---|  STOP;                              # TERMINATE PROGRAM #
03260  M01S00002.sform21 +++|  ABORT;                             # ABORT THE PROGRAM #
03261  M01S00822.242l642 +++|*ELSE
Line S00823 Modification History
M01 (Added by) 242l642
M02 (Updated by) sform21
Seq #  *Modification Id* Act 
----------------------------+
03262  M02S00823.sform21 ---|  STOP;                              # ABORT THE USER #
03263  M01S00003.sform21 +++|  ABORT;                             # ABORT THE USER #
03264  M01S00824.242l642 +++|*ENDIF
03265  M01S01761.sform   +++|  END
03266  M01S01762.sform   +++|
03267  M01S01763.sform   +++|END  # ERRMSG #
03268  M01S01764.sform   +++|CONTROL EJECT;
03269  M01S01765.sform   +++|
03270  M01S01766.sform   +++|PROC FFIELD(INPOS,FIELD,OFFSET,OUTFLAG);
03271  M01S01767.sform   +++|
03272  M01S01768.sform   +++|# TITLE FFIELD - FIND INPUT FIELD. #
03273  M01S01769.sform   +++|
03274  M01S01770.sform   +++|BEGIN  # FFIELD #
03275  M01S01771.sform   +++|
03276  M01S01772.sform   +++|#
03277  M01S01773.sform   +++|**    FFIELD - FIND INPUT FIELD.
03278  M01S01774.sform   +++|*
03279  M01S01775.sform   +++|*     THIS PROCEDURE FINDS THE ACTIVE INPUT FIELD ASSOCIATED WITH
03280  M01S01776.sform   +++|*     THE INPUT RECEIVED FROM SCREEN POSITION INPOS.
03281  M01S01777.sform   +++|*
03282  M01S01778.sform   +++|*     PROC FFIELD(INPOS,FIELD,OFFSET)
03283  M01S01779.sform   +++|*
03284  M01S01780.sform   +++|*     ENTRY   INPOS      = X/Y POSITION
03285  M01S01781.sform   +++|*             OUTFLAG    = TRUE, INCLUDE ACTIVE OUTPUT ONLY
03286  M01S01782.sform   +++|*                          FIELDS IN THE SEARCH.
03287  M01S01783.sform   +++|*
03288  M01S01784.sform   +++|*     EXIT    FIELD      = FIELD ASSOCIATED WITH INPUT.
03289  M01S01785.sform   +++|*                        = -1 IF NOT IN A FIELD.
03290  M01S01786.sform   +++|*             OFFSET     = OFFSET OF INPUT INTO FIELD.
03291  M01S01787.sform   +++|*
03292  M01S01788.sform   +++|*     NOTES   FFIELD ASSUMES THAT FIELDS DO NOT SPAN LINES.
03293  M01S01789.sform   +++|#
03294  M01S01790.sform   +++|ITEM INPOS      I;                   # X/Y POSITION #
03295  M01S01791.sform   +++|ITEM FIELD      I;                   # INDEX INTO FLDLIST #
03296  M01S01792.sform   +++|ITEM OFFSET     I;                   # OFFSET INTO FIELD #
03297  M01S01793.sform   +++|ITEM OUTFLAG    B;                   # INCLUDE OUT-ONLY FIELDS #
03298  M01S01794.sform   +++|
03299  M01S01795.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03300  M01S01796.sform   +++|ITEM NOTEND     B;                   # NOT END OF SEARCH #
03301  M01S01797.sform   +++|
03302  M01S01798.sform   +++|FIELD = -1;                          # NOT FOUND UNTIL PROVEN FOUND #
03303  M01S01799.sform   +++|NOTEND = TRUE;
03304  M01S01800.sform   +++|OFFSET = 0;
03305  M01S01801.sform   +++|
03306  M01S01802.sform   +++|FOR I = 0 STEP 1 WHILE NOTEND
03307  M01S01803.sform   +++|  AND FLDENTRY[I] NQ 0 DO
03308  M01S01804.sform   +++|  BEGIN                              # FIND FIELD CHAR WAS ENTERED IN #
03309  M01S01805.sform   +++|  IF INPOS LS FLDPOS[I] AND FLDACTIVE[I] THEN NOTEND = FALSE;
03310  M01S01806.sform   +++|  ELSE
03311  M01S01807.sform   +++|    BEGIN
03312  M01S01808.sform   +++|    IF (FLDINPUTV[I] AND FLDACTIVE[I])
03313  M01S01809.sform   +++|      OR (FLDVARFLAG[I] AND OUTFLAG AND FLDACTIVE[I]) THEN
03314  M01S01810.sform   +++|      BEGIN
03315  M01S01811.sform   +++|      FIELD = I;
03316  M01S01812.sform   +++|      END
03317  M01S01813.sform   +++|    END
03318  M01S01814.sform   +++|  END
03319  M01S01815.sform   +++|
03320  M01S01816.sform   +++|IF VALIDFIELD THEN
03321  M01S01817.sform   +++|  BEGIN                              # IF VALID FIELD FOUND #
03322  M01S01818.sform   +++|  OFFSET = INPOS - FLDPOS[FIELD];
03323  M01S01819.sform   +++|  IF OFFSET GQ FLDLENGTH[FIELD] THEN
03324  M01S01820.sform   +++|    BEGIN                            # INPUT BEYOND END OF FIELD #
03325  M01S01821.sform   +++|    OFFSET = 0;
03326  M01S01822.sform   +++|    FIELD = -1;
03327  M01S01823.sform   +++|    END
03328  M01S01824.sform   +++|  END
03329  M01S01825.sform   +++|
03330  M01S01826.sform   +++|END  # FFIELD #
03331  M01S01827.sform   +++|CONTROL EJECT;
03332  M01S01828.sform   +++|
03333  M01S01829.sform   +++|PROC FFIRST(FLDIND);
03334  M01S01830.sform   +++|
03335  M01S01831.sform   +++|# TITLE FFIRST - FIND FIRST INPUT FIELD. #
03336  M01S01832.sform   +++|
03337  M01S01833.sform   +++|BEGIN  # FFIRST #
03338  M01S01834.sform   +++|
03339  M01S01835.sform   +++|#
03340  M01S01836.sform   +++|**    FFIRST - FIND FIRST INPUT FIELD.
03341  M01S01837.sform   +++|*
03342  M01S01838.sform   +++|*     THIS PROCEDURE FINDS THE FIRST ACTIVE INPUT FIELD IN THE PANEL
03343  M01S01839.sform   +++|*     THAT DOES NOT HAVE A VALID ENTRY.  IF ALL INPUT FIELDS ARE BOTH
03344  M01S01840.sform   +++|*     ENTERED AND VALID THEN THE FIRST ACTIVE INPUT FIELD IS RETURNED.
03345  M01S01841.sform   +++|*
03346  M01S01842.sform   +++|*     PROC FFIRST(FLDIND)
03347  M01S01843.sform   +++|*
03348  M01S01844.sform   +++|*     EXIT     FLDIND    = INDEX OF FIRST INPUT FIELD
03349  M01S01845.sform   +++|*                        = -1, IF NO INPUT FIELD FOUND.
03350  M01S01846.sform   +++|#
03351  M01S01847.sform   +++|ITEM FLDIND     I;                   # FIELD INDEX #
03352  M01S01848.sform   +++|
03353  M01S01849.sform   +++|ITEM FIRST      B;                   # STILL LOOKING FOR FIRST FIELD #
03354  M01S01850.sform   +++|ITEM FOUND      B;                   # FOUND AN UNENTERED INPUT FIELD #
03355  M01S01851.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03356  M01S01852.sform   +++|
03357  M01S01853.sform   +++|FLDIND = -1;
03358  M01S01854.sform   +++|FIRST = TRUE;
03359  M01S01855.sform   +++|FOUND = FALSE;
03360  M01S01856.sform   +++|
03361  M01S01857.sform   +++|FOR I = 0 STEP 1 WHILE NOT FOUND AND FLDENTRY[I] NQ 0 DO
03362  M01S01858.sform   +++|  BEGIN                              # SEARCH FIELD LIST #
03363  M01S01859.sform   +++|  IF FLDINPUTV[I] AND NOT FOUND AND FLDACTIVE[I]
03364  M01S01860.sform   +++|    AND (NOT FLDENTERED[I] OR NOT FLDVALID[I]) THEN
03365  M01S01861.sform   +++|    BEGIN                            # FIRST AVAILABLE FIELD #
03366  M01S01862.sform   +++|    FIRST = FALSE;
03367  M01S01863.sform   +++|    FOUND = TRUE;
03368  M01S01864.sform   +++|    FLDIND = I;
03369  M01S01865.sform   +++|    END
03370  M01S01866.sform   +++|  ELSE IF FIRST AND FLDINPUTV[I] AND FLDACTIVE[I] THEN
03371  M01S01867.sform   +++|    BEGIN                            # FIRST INPUT FIELD #
03372  M01S01868.sform   +++|    FIRST = FALSE;
03373  M01S01869.sform   +++|    FLDIND = I;
03374  M01S01870.sform   +++|    END
03375  M01S01871.sform   +++|  END
03376  M01S01872.sform   +++|
03377  M01S01873.sform   +++|END  # FFIRST #
03378  M01S01874.sform   +++|CONTROL EJECT;
03379  M01S01875.sform   +++|
03380  M01S01876.sform   +++|PROC FMATCH(FLDIND,MATCHIND,MATCHCOUNT);
03381  M01S01877.sform   +++|
03382  M01S01878.sform   +++|# TITLE FMATCH - FIND ENTRY IN MATCH LIST. #
03383  M01S01879.sform   +++|
03384  M01S01880.sform   +++|BEGIN  # FMATCH #
03385  M01S01881.sform   +++|
03386  M01S01882.sform   +++|#
03387  M01S01883.sform   +++|**    FMATCH - FIND ENTRY IN MATCH LIST.
03388  M01S01884.sform   +++|*
03389  M01S01885.sform   +++|*     THIS PROCEDURE FINDS THE FIRST ENTRY IN THE VARIABLE MATCH LIST
03390  M01S01886.sform   +++|*     WHICH MATCHES THE ENTERED CHARACTERS COMPLETELY OR IN PART.
03391  M01S01887.sform   +++|*
03392  M01S01888.sform   +++|*     PROC FMATCH(FLDIND,MATCHIND,MATCHCOUNT)
03393  M01S01889.sform   +++|*
03394  M01S01890.sform   +++|*     ENTRY   FLDIND     = POINTER INTO FLDLIST OF CURRENT FIELD.
03395  M01S01891.sform   +++|*
03396  M01S01892.sform   +++|*     EXIT    MATCHIND   = INDEX INTO MATCHLIST OF FIRST VALID MATCH.
03397  M01S01893.sform   +++|*                        = -1 IF NO VALID MATCH FOUND.
03398  M01S01894.sform   +++|*             MATCHCOUNT = NUMBER OF VALID MATCHES FOUND.
03399  M01S01895.sform   +++|*                          -1 IF EXACT (TO 10 CHARACTERS) MATCH FOUND.
03400  M01S01896.sform   +++|#
03401  M01S01897.sform   +++|ITEM FLDIND     I;                   # INDEX OF FIELD IN FLDLIST #
03402  M01S01898.sform   +++|ITEM MATCHIND   I;                   # INDEX OF MATCH IN MATCHLIST #
03403  M01S01899.sform   +++|ITEM MATCHCOUNT I;                   # NUMBER OF VALID MATCHES FOUND #
03404  M01S01900.sform   +++|
03405  M01S01901.sform   +++|ITEM CHARPOS    I;                   # INPUT CHAR POSITION IN FIELD #
03406  M01S01902.sform   +++|ITEM EXACT      B;                   # EXACT MATCH FOUND #
03407  M01S01903.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03408  M01S01904.sform   +++|ITEM INPCHAR    I;                   # INPUT CHARACTER #
03409  M01S01905.sform   +++|ITEM LASTCHARP  I;                   # LAST INPUT CHARACTER POSITION #
03410  M01S01906.sform   +++|ITEM MATCHCHAR  I;                   # MATCH CHARACTER #
03411  M01S01907.sform   +++|ITEM MATCHCI    I;                   # CHAR INDEX OF MATCH CHARACTER #
03412  M01S01908.sform   +++|ITEM MATCHED    B;                   # INPUT MATCHED LIST ENTRY #
03413  M01S01909.sform   +++|ITEM MATCHLEN   I;                   # LENGTH OF MATCH STRING #
03414  M01S00001.ns2612  +++|ITEM MATCHMAX   I;                   # EXACT MATCH CHARACTER COUNT   #
03415  M01S00002.ns2612  +++|ITEM MATCHWDS   I;                   # NUMBER OF WORDS TO HOLD FIELD #
03416  M01S01910.sform   +++|ITEM MATCHWI    I;                   # WORD INDEX OF MATCH CHARACTER #
03417  M01S01911.sform   +++|ITEM STARTCHARP I;                   # FIRST INPUT CHARACTER POSITION #
03418  M01S01912.sform   +++|ITEM VARIND     I;                   # INDEX INTO VARLIST #
03419  M01S01913.sform   +++|
03420  M01S01914.sform   +++|VARIND = FLDVARORD[FLDIND];
03421  M01S01915.sform   +++|P<MATCHLIST> = LOC(RECWORDC[0]) + VARVALOS[VARIND];
03422  M01S01916.sform   +++|MATCHCHAR = 0;
03423  M01S01917.sform   +++|
03424  M01S01918.sform   +++|LASTCHARP = -1;
03425  M01S01919.sform   +++|STARTCHARP = -1;
03426  M01S01920.sform   +++|
03427  M01S01921.sform   +++|FOR I = 0 STEP 1 UNTIL FLDLENGTH[FLDIND] - 1 DO
03428  M01S01922.sform   +++|  BEGIN                              # LOOK FOR FIRST AND LAST CHAR #
03429  M01S01923.sform   +++|  IF NEXTCHAR(FLDIND,I) NQ BLANK THEN
03430  M01S01924.sform   +++|    BEGIN                            # NON-BLANK CHARACTER #
03431  M01S01925.sform   +++|    LASTCHARP = I;
03432  M01S01926.sform   +++|    IF STARTCHARP EQ -1 THEN STARTCHARP = I;
03433  M01S01927.sform   +++|    END
03434  M01S01928.sform   +++|  END
03435  M01S01929.sform   +++|
03436  M01S01930.sform   +++|IF STARTCHARP EQ -1 THEN
03437  M01S01931.sform   +++|  BEGIN                              # NO CHARACTERS FOUND #
03438  M01S01932.sform   +++|  STARTCHARP = 0;
03439  M01S01933.sform   +++|  LASTCHARP = 0;
03440  M01S01934.sform   +++|  END
03441  M01S01935.sform   +++|MATCHLEN = LASTCHARP - STARTCHARP + 1;
Line S01936 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03442  M02S01936.ns2612  ---|IF MATCHLEN GR 10 THEN MATCHLEN = 10;
Line S01937 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03443  M02S01937.ns2612  ---|MATCHIND = -1;                       # DEFAULT INDEX IF MISSING #
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  M01S01938.sform   +++|MATCHCOUNT = 0;
03456  M01S01939.sform   +++|
Line S01940 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03457  M02S01940.ns2612  ---|FOR MATCHWI = 0 STEP 1 WHILE MATCHWORD[MATCHWI] NQ 0
03458  M01S00014.ns2612  +++|FOR MATCHWI = 0 STEP MATCHWDS WHILE MATCHWORD[MATCHWI] NQ 0
03459  M01S01941.sform   +++|  AND MATCHCOUNT GQ 0 DO
03460  M01S01942.sform   +++|  BEGIN
03461  M01S01943.sform   +++|  MATCHED = TRUE;
03462  M01S01944.sform   +++|  CHARPOS = STARTCHARP;
Line S01945 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03463  M02S01945.ns2612  ---|  FOR MATCHCI = 0 STEP 1 UNTIL MATCHLEN - 1 DO
03464  M01S00015.ns2612  +++|  FOR MATCHCI = 0 STEP 1 WHILE MATCHED AND MATCHCI LS MATCHLEN DO
03465  M01S01946.sform   +++|    BEGIN                            # CHECK CHARACTERS FOR MATCH #
03466  M01S01947.sform   +++|    B<48,12>MATCHCHAR = C<MATCHCI*2,2>MATCH[MATCHWI];
03467  M01S01948.sform   +++|    INPCHAR = NEXTCHAR(FLDIND,CHARPOS);
03468  M01S01949.sform   +++|    IF UPPER(MATCHCHAR) NQ UPPER(INPCHAR) THEN MATCHED = FALSE;
03469  M01S01950.sform   +++|    CHARPOS = CHARPOS + 1;
03470  M01S01951.sform   +++|    END
03471  M01S01952.sform   +++|  IF MATCHED THEN
03472  M01S01953.sform   +++|    BEGIN                            # FIRST (MATCHLEN) CHARS MATCH #
03473  M01S01954.sform   +++|    EXACT = TRUE;
Line S01955 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03474  M02S01955.ns2612  ---|    IF MATCHLEN LS 10 THEN
03475  M01S00016.ns2612  +++|    FOR MATCHCI = MATCHLEN STEP 1 UNTIL MATCHMAX-1 DO
03476  M01S01956.sform   +++|      BEGIN                          # CHECK REST OF CHARS FOR BLANKS #
Line S01957 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03477  M02S01957.ns2612  ---|      FOR MATCHCI = MATCHLEN STEP 1 UNTIL 9 DO
Line S01958 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03478  M02S01958.ns2612  ---|        BEGIN
Line S01959 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03479  M02S01959.ns2612  ---|        IF C<MATCHCI*2,2>MATCH[MATCHWI] NQ BLANK THEN EXACT = FALSE;
Line S01960 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03480  M02S01960.ns2612  ---|        END
03481  M01S00017.ns2612  +++|      IF C<MATCHCI*2,2>MATCH[MATCHWI] NQ BLANK THEN EXACT = FALSE;
03482  M01S01961.sform   +++|      END
03483  M01S01962.sform   +++|    IF EXACT THEN
03484  M01S01963.sform   +++|      BEGIN                          # EXACT MATCH FOUND #
03485  M01S01964.sform   +++|      MATCHCOUNT = -1;               # FLAG ENTRY FOUND #
03486  M01S01965.sform   +++|      MATCHIND = MATCHWI;
03487  M01S01966.sform   +++|      END
03488  M01S01967.sform   +++|    ELSE
Line S01968 Modification History
M01 (Added by) sform
M02 (Updated by) ns2249
Seq #  *Modification Id* Act 
----------------------------+
03489  M02S01968.ns2249  ---|      BEGIN                        # PARTIAL MATCH FOUND #
03490  M01S00002.ns2249  +++|      BEGIN                          # PARTIAL MATCH FOUND #
03491  M01S01969.sform   +++|      MATCHCOUNT = MATCHCOUNT + 1;
03492  M01S01970.sform   +++|      IF MATCHCOUNT EQ 1 THEN MATCHIND = MATCHWI;  # IF FIRST ONE #
03493  M01S01971.sform   +++|      END
03494  M01S01972.sform   +++|    END
03495  M01S01973.sform   +++|  END
03496  M01S01974.sform   +++|
03497  M01S01975.sform   +++|END  # FMATCH #
03498  M01S01976.sform   +++|CONTROL EJECT;
03499  M01S01977.sform   +++|
03500  M01S01978.sform   +++|PROC FUNKEY(INPOS,OFFSET,FUNTYPE,ORDINAL,FIELD);
03501  M01S01979.sform   +++|
03502  M01S01980.sform   +++|# TITLE FUNKEY - PROCESS FUNCTION KEY ACTION. #
03503  M01S01981.sform   +++|
03504  M01S01982.sform   +++|BEGIN  # FUNKEY #
03505  M01S01983.sform   +++|
03506  M01S01984.sform   +++|#
03507  M01S01985.sform   +++|**    FUNKEY - PROCESS FUNCTION KEY ACTION.
03508  M01S01986.sform   +++|*
03509  M01S01987.sform   +++|*     THIS PROCEDURE SEARCHES THE FUNCTION LIST TO FIND THE ACTION TO
03510  M01S01988.sform   +++|*     AKE FOR THE FUNCTION KEY, IF ANY.  IT THEN TAKES THE DEFINED
03511  M01S01989.sform   +++|*     ACTION IF NO SOFT TABS ARE PENDING.  IF SOFT TABS ARE PENDING
03512  M01S01990.sform   +++|*     THE FUNCTION IS IGNORED AND IF THE FUNCTION KEY DOES NOT HAVE
03513  M01S01991.sform   +++|*     A DEFINED ACTION THE SOFT TAB COUNTER WILL BE INCREMENTED.  THE
03514  M01S01992.sform   +++|*     ONLY EXCEPTION IS A HELP REQUEST WHICH WILL SET HELP PENDING
03515  M01S01993.sform   +++|*     TO BE PROCESSED AFTER ALL SOFT TABS HAVE BEEN PROCESSED.
03516  M01S01994.sform   +++|*
03517  M01S01995.sform   +++|*     PROC FUNKEY(INPOS,OFFSET,FUNTYPE,ORDINAL,FIELD)
03518  M01S01996.sform   +++|*
03519  M01S01997.sform   +++|*     ENTRY   INPOS      = X/Y POSITION WHERE FUNCTION WAS ENTERED.
03520  M01S01998.sform   +++|*             OFFSET     = OFFSET INTO FIELD WHERE FUNCTION WAS ENTERED.
03521  M01S01999.sform   +++|*             FUNTYPE    = 24, GENERIC FUNCTION KEY.
03522  M01S02000.sform   +++|*                        = 23, APPLICATION FUNCTION KEY.
03523  M01S02001.sform   +++|*             ORDINAL    = FUNCTION KEY ORDINAL.
03524  M01S02002.sform   +++|*             FIELD      = FIELD WHERE FIELD WAS ENTERED.
Line S02003 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03525  M02S02003.242l642 ---|*             SOFTTAB    = COUNT OF CURRENT SOFT TABS PENDING.
03526  M01S00825.242l642 +++|*             TERSOFTTAB = COUNT OF CURRENT SOFT TABS PENDING.
03527  M01S02004.sform   +++|*
03528  M01S02005.sform   +++|*     EXIT    INPOS      = NEW X/Y POSITION
03529  M01S02006.sform   +++|*             FIELD      = NEW FIELD POSITION
Line S02007 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03530  M02S02007.242l642 ---|*             SOFTTAB    = UPDATED SOFT TAB COUNT
Line S02008 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03531  M02S02008.242l642 ---|*             SOFTPOS    = INPOS IF FIRST SOFT TAB CREATED
03532  M01S00826.242l642 +++|*             TERSOFTTAB = UPDATED SOFT TAB COUNT
03533  M01S00827.242l642 +++|*             TERSOFTPOS = INPOS IF FIRST SOFT TAB CREATED
03534  M01S02009.sform   +++|*             TERABNTERM = TRUE, TERMINATE INPUT ABNORMALLY
03535  M01S02010.sform   +++|*             TERNRMTERM = TRUE, TERMINATE INPUT NORMALLY
Line S02011 Modification History
M01 (Added by) sform
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03536  M02S02011.252l678 ---|*             TERRETRNOS = TRUE, RETURN CONTROL TO OPERATING SYSTEM
Line S02012 Modification History
M01 (Added by) sform
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03537  M02S02012.252l678 ---|*                        = FALSE, RETURN CONTROL TO APPLICATION
03538  M01S02013.sform   +++|*
03539  M01S02014.sform   +++|*     CALLS   FMATCH, MMATCH, TABKEY.
03540  M01S02015.sform   +++|*
03541  M01S02016.sform   +++|*     USES    TERABNTERM, TERFUNCGEN, TERFUNCORD, TERFUNCPOS,
03542  M01S02017.sform   +++|*             TERHELPFLD, TERHELPREQ, TERNRMTERM, TERPENDHLP,
Line S02018 Modification History
M01 (Added by) sform
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03543  M02S02018.252l678 ---|*             TERRETRNOS, TERSOFTPOS, TERSOFTTAB.
03544  M01S00139.252l678 +++|*             TERSOFTPOS, TERSOFTTAB.
03545  M01S02019.sform   +++|*
03546  M01S02020.sform   +++|*     NOTES   FLDENTERED, FLDVALID, FLDREWRITE, TERREWFLDS AND VARDATA
03547  M01S02021.sform   +++|*             UPDATED IF MATCH ADVANCE OCCURRED.  SWITCH ACTTYPE MUST
03548  M01S02022.sform   +++|*             PARALLEL PDU DEFINITION FOR FUNCTION KEY ACTIONS.
03549  M01S02023.sform   +++|#
03550  M01S02024.sform   +++|ITEM INPOS      I;                   # X/Y POSITION OF CURSOR #
03551  M01S02025.sform   +++|ITEM OFFSET     I;                   # OFFSET INTO FIELD #
03552  M01S02026.sform   +++|ITEM FUNTYPE    I;                   # APPLICATION OR GENERIC #
03553  M01S02027.sform   +++|ITEM ORDINAL    I;                   # FUNCTION KEY ORDINAL #
03554  M01S02028.sform   +++|ITEM FIELD      I;                   # INDEX OF FIELD #
03555  M01S02029.sform   +++|
03556  M01S02030.sform   +++|DEF  FH         #9#;                 # ORDINAL FOR HELP AS AN ACTION #
03557  M01S02031.sform   +++|DEF  FM         #10#;                # ORDINAL FOR MATCH ADVANCE #
03558  M01S02032.sform   +++|
03559  M01S02033.sform   +++|ITEM ACTION     I;                   # ORDINAL OF ACTION #
03560  M01S02034.sform   +++|ITEM CHAR       I;                   # 12-BIT CHARACTER #
03561  M01S02035.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03562  M01S02036.sform   +++|ITEM MATCHCOUNT I;                   # NUMBER OF VALID MATCHES #
03563  M01S02037.sform   +++|ITEM MATCHIND   I;                   # INDEX INTO MATCHLIST #
03564  M01S02038.sform   +++|ITEM NOTDONE    B;                   # FUNCTION LIST ENTRY NOT FOUND #
03565  M01S02039.sform   +++|ITEM SCRPOS     I;                   # SCRATCH POSITION FOR TABKEY #
03566  M01S02040.sform   +++|ITEM VARIND     I;                   # INDEX INTO VARLIST #
03567  M01S02041.sform   +++|
03568  M01S02042.sform   +++|SWITCH ACTTYPE                       # TYPE OF ACTION TO TAKE #
03569  M01S02043.sform   +++|  TABSOFTLY,                         # PROCESS SOFT TAB #
03570  M01S02044.sform   +++|  NORMTOAPP,                         # RETURN NORMALLY TO APPLICATION #
03571  M01S02045.sform   +++|  NORMTONOS,                         # RETURN NORMALLY TO OPER. SYS. #
03572  M01S02046.sform   +++|  ABNORTOAPP,                        # RETURN ABNORMALLY TO APPL. #
03573  M01S02047.sform   +++|  ABNORTONOS,                        # RETURN ABNORMALLY TO OPER. SYS #
03574  M01S02048.sform   +++|  PAGEFORWARD,                       # PAGE TABLE FORWARD #
03575  M01S02049.sform   +++|  PAGEBAKWARD,                       # PAGE TABLE BACKWARD #
03576  M01S02050.sform   +++|  INSERTROW,                         # INSERT ROW IN TABLE #
03577  M01S02051.sform   +++|  DELETEROW,                         # DELETE ROW IN TABLE #
03578  M01S02052.sform   +++|  GIVEHELP,                          # PROVIDE HELP #
03579  M01S02053.sform   +++|  MATCHADV;                          # ADVANCE MATCH ENTRY #
03580  M01S02054.sform   +++|
03581  M01S02055.sform   +++|# SAVE FUNCTION KEY ORDINAL AND KEY TYPE #
03582  M01S02056.sform   +++|
Line S02057 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03583  M02S02057.242l642 ---|FUNCORD = ORDINAL;
03584  M01S00828.242l642 +++|TERFUNCORD[0] = ORDINAL;
03585  M01S02058.sform   +++|TERFUNCGEN[0] = FUNTYPE EQ SCREENST"GKEY";
Line S02059 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03586  M02S02059.242l642 ---|FUNCPOS = INPOS;
03587  M01S00829.242l642 +++|TERFUNCPOS[0] = INPOS;
03588  M01S02060.sform   +++|
Line S02061 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03589  M02S02061.242l642 ---|IF SOFTTAB NQ 0 AND TERFUNCGEN[0]
03590  M01S00830.242l642 +++|IF TERSOFTTAB[0] NQ 0 AND TERFUNCGEN[0]
03591  M01S02062.sform   +++|  AND ORDINAL EQ GENERICST"GNEXT" THEN
03592  M01S02063.sform   +++|  BEGIN                              # NEXT FOLLOWING SOFT TAB #
03593  M01S02064.sform   +++|  GOTO NOACTION;
03594  M01S02065.sform   +++|  END
03595  M01S02066.sform   +++|
03596  M01S02067.sform   +++|IF PANSTRFUN[0] EQ 0 THEN
03597  M01S02068.sform   +++|  BEGIN                              # NO FUNCTION LIST #
03598  M01S02069.sform   +++|  IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GSTOP" THEN
03599  M01S02070.sform   +++|    BEGIN                            # DEFAULT STOP ACTION #
Line S02071 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03600  M02S02071.242l642 ---|    IF SOFTTAB EQ 0 THEN
03601  M01S00831.242l642 +++|    IF TERSOFTTAB[0] EQ 0 THEN
03602  M01S02072.sform   +++|      BEGIN                          # IF NO SOFT TABS PENDING #
03603  M01S02073.sform   +++|      GOTO ABNORTOAPP;
03604  M01S02074.sform   +++|      END
03605  M01S02075.sform   +++|    ELSE
03606  M01S02076.sform   +++|      BEGIN                          # IF SOFT TABS PENDING #
03607  M01S02077.sform   +++|      GOTO NOACTION;
03608  M01S02078.sform   +++|      END
03609  M01S02079.sform   +++|    END
03610  M01S02080.sform   +++|  IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GHELP" THEN
03611  M01S02081.sform   +++|     BEGIN                           # IF HELP REQUESTED #
03612  M01S02082.sform   +++|     GOTO GIVEHELP;                  # PROVIDE HELP #
03613  M01S02083.sform   +++|     END
03614  M01S02084.sform   +++|  GOTO NORMTOAPP;                    # TAKE DEFAULT ACTION #
03615  M01S02085.sform   +++|  END
03616  M01S02086.sform   +++|
03617  M01S02087.sform   +++|NOTDONE = TRUE;
03618  M01S02088.sform   +++|FOR I = 0 STEP 1 WHILE NOTDONE AND FUNWORD[I] NQ 0 DO
03619  M01S02089.sform   +++|  BEGIN                              # LOOK FOR ENTRY IN FUNLIST #
03620  M01S02090.sform   +++|  IF ((FUNGENERIC[I] AND TERFUNCGEN[0])
03621  M01S02091.sform   +++|    OR (NOT FUNGENERIC[I] AND NOT TERFUNCGEN[0]))
03622  M01S02092.sform   +++|    AND FUNNUMBER[I] EQ ORDINAL THEN
03623  M01S02093.sform   +++|    BEGIN                            # FOUND FUNLIST ENTRY #
03624  M01S02094.sform   +++|    NOTDONE = FALSE;
03625  M01S02095.sform   +++|    ACTION = FUNACT[I];              # ASSIGN DEFINED ACTION #
03626  M01S02096.sform   +++|    END
03627  M01S02097.sform   +++|  END
03628  M01S02098.sform   +++|
03629  M01S02099.sform   +++|IF NOTDONE THEN
03630  M01S02100.sform   +++|  BEGIN                              # NOT IN LIST #
03631  M01S02101.sform   +++|  IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GHELP" THEN
03632  M01S02102.sform   +++|    BEGIN
03633  M01S02103.sform   +++|    GOTO GIVEHELP;
03634  M01S02104.sform   +++|    END
03635  M01S02105.sform   +++|  ELSE GOTO TABSOFTLY;               # PROCESS SOFT TAB #
03636  M01S02106.sform   +++|  END
03637  M01S02107.sform   +++|IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GHELP"
03638  M01S02108.sform   +++|  AND FIELD NQ -1 THEN
03639  M01S02109.sform   +++|  BEGIN                              # HELP KEY ENTERED IN A FIELD #
03640  M01S02110.sform   +++|  IF VARHSOS[FLDVARORD[FIELD]] NQ 0 THEN
03641  M01S02111.sform   +++|    BEGIN                            # HELP STRING DEFINED #
03642  M01S02112.sform   +++|    GOTO GIVEHELP;                   # GIVE HELP #
03643  M01S02113.sform   +++|    END
03644  M01S02114.sform   +++|  END
Line S02115 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03645  M02S02115.242l642 ---|IF SOFTTAB NQ 0 AND ACTION NQ FM AND ACTION NQ FH THEN
03646  M01S00832.242l642 +++|IF TERSOFTTAB[0] NQ 0 AND ACTION NQ FM AND ACTION NQ FH THEN
03647  M01S02116.sform   +++|  BEGIN                              # IF SOFT TABS PENDING #
03648  M01S02117.sform   +++|  GOTO NOACTION;                     # IGNORE UNLESS MATCH OR HELP #
03649  M01S02118.sform   +++|  END
03650  M01S02119.sform   +++|ELSE
03651  M01S02120.sform   +++|  BEGIN                              # NO SOFT TABS PENDING #
03652  M01S02121.sform   +++|  GOTO ACTTYPE[ACTION];              # GO TO ASSIGNED ACTION #
03653  M01S02122.sform   +++|  END
03654  M01S02123.sform   +++|
03655  M01S02124.sform   +++|PAGEFORWARD:                         # CURRENTLY A NO-OP #
03656  M01S02125.sform   +++|PAGEBAKWARD:                         # CURRENTLY A NO-OP #
03657  M01S02126.sform   +++|INSERTROW:                           # CURRENTLY A NO-OP #
03658  M01S02127.sform   +++|DELETEROW:                           # CURRENTLY A NO-OP #
03659  M01S02128.sform   +++|
03660  M01S02129.sform   +++|  TERNRMTERM[0] = FALSE;
03661  M01S02130.sform   +++|  TERABNTERM[0] = FALSE;
Line S02131 Modification History
M01 (Added by) sform
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03662  M02S02131.252l678 ---|  TERRETRNOS[0] = FALSE;
03663  M01S02132.sform   +++|  RETURN;
03664  M01S02133.sform   +++|
03665  M01S02134.sform   +++|TABSOFTLY:                           # PROCESS SOFT TAB #
03666  M01S02135.sform   +++|
Line S02136 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03667  M02S02136.242l642 ---|  IF SOFTTAB EQ 0 THEN SOFTPOS = INPOS;
Line S02137 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03668  M02S02137.242l642 ---|  SOFTTAB = SOFTTAB + 1;             # INCREMENT TAB COUNT #
03669  M01S00833.242l642 +++|  IF TERSOFTTAB[0] EQ 0 THEN TERSOFTPOS[0] = INPOS;
03670  M01S00834.242l642 +++|  TERSOFTTAB[0] = TERSOFTTAB[0] + 1; # INCREMENT TAB COUNT #
03671  M01S02138.sform   +++|
03672  M01S02139.sform   +++|NOACTION:                            # NO ACTION TO OCCUR #
03673  M01S02140.sform   +++|
03674  M01S02141.sform   +++|  TERNRMTERM[0] = FALSE;
03675  M01S02142.sform   +++|  TERABNTERM[0] = FALSE;
Line S02143 Modification History
M01 (Added by) sform
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03676  M02S02143.252l678 ---|  TERRETRNOS[0] = FALSE;
03677  M01S02144.sform   +++|  RETURN;
03678  M01S02145.sform   +++|
03679  M01S02146.sform   +++|NORMTOAPP:                           # NORMAL TERMINATION AND #
03680  M01S02147.sform   +++|                                     # RETURN TO APPLICATION #
03681  M01S02148.sform   +++|  TERNRMTERM[0] = TRUE;
03682  M01S02149.sform   +++|  TERABNTERM[0] = FALSE;
Line S02150 Modification History
M01 (Added by) sform
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03683  M02S02150.252l678 ---|  TERRETRNOS[0] = FALSE;
03684  M01S02151.sform   +++|  RETURN;
03685  M01S02152.sform   +++|
03686  M01S02153.sform   +++|NORMTONOS:                           # NORMAL TERMINATION AND RETURN #
03687  M01S02154.sform   +++|                                     # TO OPERATING SYSTEM #
03688  M01S02155.sform   +++|  TERNRMTERM[0] = TRUE;
03689  M01S02156.sform   +++|  TERABNTERM[0] = FALSE;
Line S02157 Modification History
M01 (Added by) sform
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03690  M02S02157.252l678 ---|  TERRETRNOS[0] = TRUE;
03691  M01S02158.sform   +++|  RETURN;
03692  M01S02159.sform   +++|
03693  M01S02160.sform   +++|ABNORTOAPP:                          # ABNORMAL TERMINATION AND #
03694  M01S02161.sform   +++|                                     # RETURN TO APPLICATION #
03695  M01S02162.sform   +++|  TERNRMTERM[0] = FALSE;
03696  M01S02163.sform   +++|  TERABNTERM[0] = TRUE;
Line S02164 Modification History
M01 (Added by) sform
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03697  M02S02164.252l678 ---|  TERRETRNOS[0] = FALSE;
03698  M01S02165.sform   +++|  RETURN;
03699  M01S02166.sform   +++|
03700  M01S02167.sform   +++|ABNORTONOS:                          # ABNORMAL TERMINATION AND #
03701  M01S02168.sform   +++|                                     # RETURN TO OPERATING SYSTEM #
03702  M01S02169.sform   +++|  TERNRMTERM[0] = FALSE;
03703  M01S02170.sform   +++|  TERABNTERM[0] = TRUE;
Line S02171 Modification History
M01 (Added by) sform
M02 (Updated by) 252l678
Seq #  *Modification Id* Act 
----------------------------+
03704  M02S02171.252l678 ---|  TERRETRNOS[0] = TRUE;
03705  M01S02172.sform   +++|  RETURN;
03706  M01S02173.sform   +++|
03707  M01S02174.sform   +++|GIVEHELP:                            # PROVIDE HELP #
03708  M01S02175.sform   +++|
Line S02176 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03709  M02S02176.242l642 ---|  IF SOFTTAB NQ 0 THEN
03710  M01S00835.242l642 +++|  IF TERSOFTTAB[0] NQ 0 THEN
03711  M01S02177.sform   +++|    BEGIN                            # IF SOFT TABS PENDING #
03712  M01S02178.sform   +++|    TERPENDHLP[0] = TRUE;            # SET HELP PENDING FLAG #
03713  M01S02179.sform   +++|    END
03714  M01S02180.sform   +++|  ELSE
03715  M01S02181.sform   +++|    BEGIN                            # NO SOFT TABS PENDING #
03716  M01S02182.sform   +++|    IF FIELD EQ -1 THEN
03717  M01S02183.sform   +++|      BEGIN
03718  M01S02184.sform   +++|      TABKEY(SCREENST"FTAB",INPOS,FIELD,SCRPOS);  # TAB TO NEXT FIELD #
03719  M01S02185.sform   +++|      IF FIELD EQ -1 THEN TABKEY(SCREENST"FTAB",SCRPOS,FIELD,SCRPOS);
03720  M01S02186.sform   +++|      TERHELPFLD[0] = FIELD;
03721  M01S02187.sform   +++|      FIELD = -1;
03722  M01S02188.sform   +++|      END
03723  M01S02189.sform   +++|    ELSE
03724  M01S02190.sform   +++|      BEGIN                          # GIVE HELP FOR THIS FIELD #
03725  M01S02191.sform   +++|      TERHELPFLD[0] = FIELD;
03726  M01S02192.sform   +++|      END
03727  M01S02193.sform   +++|    TERHELPREQ[0] = TRUE;
03728  M01S02194.sform   +++|    END
03729  M01S02195.sform   +++|  RETURN;
03730  M01S02196.sform   +++|
03731  M01S02197.sform   +++|MATCHADV:                            # ADVANCE MATCH ENTRY #
03732  M01S02198.sform   +++|
Line S02199 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03733  M02S02199.242l642 ---|  IF SOFTTAB NQ 0 OR NOT VALIDFIELD THEN GOTO TABSOFTLY;
03734  M01S00836.242l642 +++|  IF TERSOFTTAB[0] NQ 0 OR NOT VALIDFIELD THEN GOTO TABSOFTLY;
03735  M01S02200.sform   +++|  IF FIELD EQ -1 THEN GOTO TABSOFTLY;
03736  M01S02201.sform   +++|  VARIND = FLDVARORD[FIELD];
03737  M01S02202.sform   +++|  IF (NOT VARVALM[VARIND]) OR (VARVALOS[VARIND] EQ 0)
03738  M01S02203.sform   +++|    THEN GOTO TABSOFTLY;
03739  M01S02204.sform   +++|  FMATCH(FIELD,MATCHIND,MATCHCOUNT);
Line S02205 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
03740  M02S02205.ns2612  ---|  MATCHIND = MATCHIND + 1;           # ADVANCE ENTRY OR START AT 0 #
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  M01S02206.sform   +++|  IF MATCHWORD[MATCHIND] EQ 0 THEN MATCHIND = 0;  # IF WRAPAROUND #
03750  M01S02207.sform   +++|  MMATCH(MATCHIND,FIELD);            # MOVE MATCH ENTRY TO FIELD #
03751  M01S02208.sform   +++|  RETURN;
03752  M01S02209.sform   +++|
03753  M01S02210.sform   +++|END  # FUNKEY#
03754  M01S02211.sform   +++|CONTROL EJECT;
03755  M01S02212.sform   +++|
03756  M01S02213.sform   +++|PROC GETADD(PANELNAME,PANELADDR,PLTINDEX);
03757  M01S02214.sform   +++|
03758  M01S02215.sform   +++|# TITLE GETADD - GETS PANEL ADDRESS. #
03759  M01S02216.sform   +++|
03760  M01S02217.sform   +++|BEGIN  # GETADD #
03761  M01S02218.sform   +++|
03762  M01S02219.sform   +++|#
03763  M01S02220.sform   +++|**    GETADD - GET ADDRESS.
03764  M01S02221.sform   +++|*
03765  M01S02222.sform   +++|*     THIS PROCEDURE GETS THE MEMORY ADDRESS FOR THE SPECIFIED
03766  M01S02223.sform   +++|*     PANEL FROM THE PANEL LOAD TABLE.  IF THE PANEL IS NOT IN
03767  M01S02224.sform   +++|*     THE PANEL LOAD TABLE OR HAS NOT BEEN OPENED FOR USE THEN
03768  M01S02225.sform   +++|*     A DAYFILE MESSAGE WILL BE ISSUED AND CONTROL WILL BE RE-
03769  M01S02226.sform   +++|*     TURNED TO THE OPERATING SYSTEM.
03770  M01S02227.sform   +++|*
03771  M01S02228.sform   +++|*     PROC GETADD(PANELNAME,PANELADDR,PLTINDEX)
03772  M01S02229.sform   +++|*
03773  M01S02230.sform   +++|*     ENTRY   PANELNAME  = THE NAME OF THE PANEL.
03774  M01S02231.sform   +++|*
03775  M01S02232.sform   +++|*     EXIT    PANELADDR  = THE ADDRESS OF THE PANEL RECORD.
03776  M01S02233.sform   +++|*                          TO O.S. IF THE ADDRESS IS NOT FOUND
03777  M01S02234.sform   +++|*                          OR THE PANEL IS NOT OPEN.
03778  M01S02235.sform   +++|*             PLTINDEX   = THE PANEL LOAD TABLE INDEX FOR THE PANEL.
03779  M01S02236.sform   +++|*
03780  M01S02237.sform   +++|*     CALLS   ERRMSG.
03781  M01S02238.sform   +++|*
03782  M01S02239.sform   +++|*     NOTES   IF THE PANEL IS NOT IN THE PANEL LOAD TABLE THEN
03783  M01S02240.sform   +++|*             THE APPLICATION HAS NOT OPENED THE PANEL FOR USE
03784  M01S02241.sform   +++|*             OR HAS IGNORED AN ERROR RETURN FROM SFOPEN AFTER
03785  M01S02242.sform   +++|*             ATTEMPTING TO DO SO.  IF THE PANEL IS IN THE LOAD
03786  M01S02243.sform   +++|*             TABLE BUT NOT OPEN IT IS A STATICALLY LOADED PANEL
03787  M01S02244.sform   +++|*             THAT THE APPLICATION HAS NOT YET OPENED.  IN EITHER
03788  M01S02245.sform   +++|*             CASE PROCEDURE ERRMSG IS CALLED TO ISSUE A DAYFILE
03789  M01S02246.sform   +++|*             MESSAGE AND RETURN CONTROL TO THE OPERATING SYSTEM.
03790  M01S02247.sform   +++|#
03791  M01S02248.sform   +++|ITEM PANELNAME  C(7);                # PANEL NAME #
03792  M01S02249.sform   +++|ITEM PANELADDR  I;                   # PANEL ADDRESS #
03793  M01S02250.sform   +++|ITEM PLTINDEX   I;                   # PANEL LOAD TABLE INDEX #
03794  M01S02251.sform   +++|
03795  M01S02252.sform   +++|ITEM CHARINDEX  I;                   # CHARACTER INDEX #
03796  M01S02253.sform   +++|ITEM FATAL      B = TRUE;            # FATAL ERROR #
03797  M01S02254.sform   +++|ITEM INDEX      I;                   # INDEX INTO PANEL LOAD TABLE #
03798  M01S02255.sform   +++|ITEM MSG        C(25) = " NOT OPENED.             ";  # ERROR MSG. #
03799  M01S02256.sform   +++|ITEM PNAME      C(6);                # PROCEDURE NAME #
03800  M01S02257.sform   +++|
03801  M01S02258.sform   +++|PANELADDR = 0;
03802  M01S02259.sform   +++|FOR INDEX = 1 STEP 1 WHILE PANELADDR EQ 0
03803  M01S02260.sform   +++|  AND INDEX LQ PLTNUMENT[0] DO
03804  M01S02261.sform   +++|  BEGIN                              # FIND SPECIFIED PANEL #
03805  M01S02262.sform   +++|  IF PLTENAME[INDEX] EQ PANELNAME
03806  M01S02263.sform   +++|    AND PLTOPENFLG[INDEX] THEN
03807  M01S02264.sform   +++|    BEGIN                            # IF SPECIFIED PANEL FOUND #
03808  M01S02265.sform   +++|    PANELADDR = PLTADDR[INDEX];      # RETURN ADDRESS #
03809  M01S02266.sform   +++|    PLTINDEX = INDEX;
03810  M01S02267.sform   +++|    RETURN;
03811  M01S02268.sform   +++|    END
03812  M01S02269.sform   +++|  END
03813  M01S02270.sform   +++|
03814  M01S02271.sform   +++|IF TERSHOWFLG[0] THEN
03815  M01S02272.sform   +++|  BEGIN                              # IF SFSSHO CALL #
03816  M01S02273.sform   +++|  PNAME = "SFSSHO";
03817  M01S02274.sform   +++|  END
03818  M01S02275.sform   +++|ELSE
03819  M01S02276.sform   +++|  BEGIN                              # IF SFSREA CALL #
03820  M01S02277.sform   +++|  IF TERREADFLG[0] THEN
03821  M01S02278.sform   +++|    BEGIN
03822  M01S02279.sform   +++|    PNAME = "SFSREA";
03823  M01S02280.sform   +++|    END
03824  M01S02281.sform   +++|  ELSE                               # SFSWRI CALL #
03825  M01S02282.sform   +++|    BEGIN
03826  M01S02283.sform   +++|    PNAME = "SFSWRI";
03827  M01S02284.sform   +++|    END
03828  M01S02285.sform   +++|  END
03829  M01S02286.sform   +++|ERRMSG(PANELNAME,PNAME,MSG,FATAL);   # ISSUE MESSAGE AND ABORT #
03830  M01S02287.sform   +++|
03831  M01S02288.sform   +++|END  # GETADD #
03832  M01S02289.sform   +++|CONTROL EJECT;
03833  M01S02290.sform   +++|
03834  M01S02291.sform   +++|PROC GETNUM(FLDIND,CHARPOS,VALUE,NUMDIG);
03835  M01S02292.sform   +++|
03836  M01S02293.sform   +++|# TITLE GETNUM - GET NUMERIC VALUE OF SUBFIELD. #
03837  M01S02294.sform   +++|
03838  M01S02295.sform   +++|BEGIN  # GETNUM #
03839  M01S02296.sform   +++|
03840  M01S02297.sform   +++|#
03841  M01S02298.sform   +++|**    GETNUM - GET NUMERIC VALUE OF SUBFIELD.
03842  M01S02299.sform   +++|*
03843  M01S02300.sform   +++|*     GETNUM GETS THE NUMERIC VALUE OF A SUBFIELD STARTING AT
03844  M01S02301.sform   +++|*     CHARPOS AND ENDING AT THE FIRST NON-NUMERIC INPUT OR AT
03845  M01S02302.sform   +++|*     THE END OF THE FIELD.
03846  M01S02303.sform   +++|*
03847  M01S02304.sform   +++|*     PROC GETNUM(FLDIND,CHARPOS,VALUE,NUMDIG)
03848  M01S02305.sform   +++|*
03849  M01S02306.sform   +++|*     ENTRY   FLDIND     = INDEX IN FLDLIST.
03850  M01S02307.sform   +++|*             CHARPOS    = STARTING CHARACTER POSITION IN FIELD.
03851  M01S02308.sform   +++|*             VALUE      = STARTING VALUE.
03852  M01S02309.sform   +++|*
03853  M01S02310.sform   +++|*     EXIT    CHARPOS    = ENDING CHARACTER POSITION IN FIELD.
03854  M01S02311.sform   +++|*             VALUE      = ENDING VALUE.
03855  M01S02312.sform   +++|*             NUMDIG     = NUMBER OF DIGITS IN SUBFIELD.
03856  M01S02313.sform   +++|#
03857  M01S02314.sform   +++|ITEM FLDIND     I;                   # INDEX IN FLDLIST #
03858  M01S02315.sform   +++|ITEM CHARPOS    I;                   # POSITION OF CHARACTER IN FIELD #
03859  M01S02316.sform   +++|ITEM VALUE      I;                   # NUMERIC VALUE OF SUBFIELD #
03860  M01S02317.sform   +++|ITEM NUMDIG     I;                   # NUMBER OF DIGITS IN SUBFIELD #
03861  M01S02318.sform   +++|
03862  M01S02319.sform   +++|ITEM CHAR       I;                   # INPUT CHARACTER #
03863  M01S02320.sform   +++|ITEM SAMESUBFLD B;                   # STILL IN SAME SUBFIELD #
03864  M01S02321.sform   +++|
03865  M01S02322.sform   +++|SAMESUBFLD = TRUE;
03866  M01S02323.sform   +++|NUMDIG = 0;
03867  M01S02324.sform   +++|
03868  M01S02325.sform   +++|WHYLE SAMESUBFLD AND CHARPOS LQ FLDLENGTH[FLDIND] -1 DO
03869  M01S02326.sform   +++|  BEGIN
03870  M01S02327.sform   +++|  CHAR = NEXTCHAR(FLDIND,CHARPOS);
03871  M01S02328.sform   +++|  IF CHAR GQ ZEROCH AND CHAR LQ NINECH THEN
03872  M01S02329.sform   +++|    BEGIN                            # IF CHARACTER IS NUMERIC #
03873  M01S02330.sform   +++|    VALUE = 10 * VALUE + (CHAR LXR ZEROCH);
03874  M01S02331.sform   +++|    NUMDIG = NUMDIG + 1;
03875  M01S02332.sform   +++|    CHARPOS = CHARPOS + 1;
03876  M01S02333.sform   +++|    END
03877  M01S02334.sform   +++|  ELSE
03878  M01S02335.sform   +++|    BEGIN                            # END OF SUBFIELD #
03879  M01S02336.sform   +++|    SAMESUBFLD = FALSE;
03880  M01S02337.sform   +++|    END
03881  M01S02338.sform   +++|  END
03882  M01S02339.sform   +++|
03883  M01S02340.sform   +++|END  # GETNUM #
03884  M01S02341.sform   +++|CONTROL EJECT;
03885  M01S02342.sform   +++|
03886  M01S02343.sform   +++|PROC GFIELD(VARNAME,USEROW,FLDIND);
03887  M01S02344.sform   +++|
03888  M01S02345.sform   +++|# TITLE GFIELD - GET FIELD INDEX. #
03889  M01S02346.sform   +++|
03890  M01S02347.sform   +++|BEGIN  # GFIELD #
03891  M01S02348.sform   +++|
03892  M01S02349.sform   +++|#
03893  M01S02350.sform   +++|**    GFIELD - GET FIELD INDEX.
03894  M01S02351.sform   +++|*
03895  M01S02352.sform   +++|*     THIS PROCEDURE GETS THE FIELD INDEX FOR THE VARIABLE VARNAME.
03896  M01S02353.sform   +++|*
03897  M01S02354.sform   +++|*     PROC GFIELD(VARNAME,USEROW,FLDIND)
03898  M01S02355.sform   +++|*
03899  M01S02356.sform   +++|*     ENTRY   VARNAME    = VARIABLE NAME OF FIELD.
Line S02357 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03900  M02S02357.242l642 ---|*             USEROW     = TRUE, USE CURSORROW.
03901  M01S00837.242l642 +++|*             USEROW     = TRUE, USE TERCURSROW.
03902  M01S02358.sform   +++|*                        = FALSE, USE ARRCURROW.
03903  M01S02359.sform   +++|*
03904  M01S02360.sform   +++|*     EXIT    FLDIND     = FIELD INDEX.
03905  M01S02361.sform   +++|*                        = -1 IF NOT FOUND.
03906  M01S02362.sform   +++|#
03907  M01S02363.sform   +++|ITEM VARNAME    C(7);                # VARIABLE NAME OF FIELD #
Line S02364 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03908  M02S02364.242l642 ---|ITEM USEROW     B;                   # USE CURSORROW #
03909  M01S00838.242l642 +++|ITEM USEROW     B;                   # USE TERCURSROW #
03910  M01S02365.sform   +++|ITEM FLDIND     I;                   # POINTER TO FIELD LIST #
03911  M01S02366.sform   +++|
03912  M01S02367.sform   +++|ITEM ARRAYORD   I;                   # ARRAY ORDINAL #
03913  M01S02368.sform   +++|ITEM FOUND      B;                   # FIELD HAS BEEN FOUND #
03914  M01S02369.sform   +++|ITEM I          I;                   # LOOP COUNTER #
03915  M01S02370.sform   +++|ITEM ROWNUMBER  I;                   # ROW NUMBER #
03916  M01S02371.sform   +++|ITEM VARIND     I;                   # POINTER TO VARIABLE LIST #
03917  M01S02372.sform   +++|
03918  M01S02373.sform   +++|FLDIND = -1;
03919  M01S02374.sform   +++|FOUND = FALSE;
03920  M01S02375.sform   +++|
03921  M01S02376.sform   +++|FOR I = 0 STEP 1 WHILE VARTYPE[I] NQ 0 AND NOT FOUND DO
03922  M01S02377.sform   +++|  BEGIN                              # LOOK FOR VARIABLE VARNAME #
03923  M01S02378.sform   +++|  IF VARNME[I] EQ VARNAME THEN
03924  M01S02379.sform   +++|    BEGIN                            # FOUND SPECIFIED VARIABLE #
03925  M01S02380.sform   +++|    FOUND = TRUE;
03926  M01S02381.sform   +++|    VARIND = I;
03927  M01S02382.sform   +++|    END
03928  M01S02383.sform   +++|  END
03929  M01S02384.sform   +++|
03930  M01S02385.sform   +++|IF FOUND THEN
03931  M01S02386.sform   +++|  BEGIN
03932  M01S02387.sform   +++|  ARRAYORD = VARARRORD[VARIND];
03933  M01S02388.sform   +++|  IF ARRAYORD NQ 0 THEN
03934  M01S02389.sform   +++|    BEGIN                            # ARRAY MEMBER #
03935  M01S02390.sform   +++|    ROWNUMBER = 0;
03936  M01S02391.sform   +++|    IF USEROW THEN
Line S02392 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03937  M02S02392.242l642 ---|      BEGIN                          # USE CURSORROW #
Line S02393 Modification History
M01 (Added by) sform
M02 (Updated by) sform6
M03 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03938  M03S02393.242l642 ---|      IF TERCURSSET[0] AND CURSORROW LS ARRNUMROWS[ARRAYORD] THEN
Line S00002 Modification History
M01 (Added by) sform6
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03939  M02S00002.242l642 ---|      IF TERCURSSET[0] AND CURSORROW LS ARRNUMROWS[ARRAYORD-1] THEN
03940  M01S00839.242l642 +++|      BEGIN                          # USE TERCURSROW #
03941  M01S00840.242l642 +++|      IF TERCURSSET[0] AND TERCURSROW[0] LS ARRNUMROWS[ARRAYORD-1] THEN
03942  M01S02394.sform   +++|        BEGIN                        # VALID ROW NUMBER #
Line S02395 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
03943  M02S02395.242l642 ---|        ROWNUMBER = CURSORROW;
03944  M01S00841.242l642 +++|        ROWNUMBER = TERCURSROW[0];
03945  M01S02396.sform   +++|        END
03946  M01S02397.sform   +++|      END
03947  M01S02398.sform   +++|    ELSE
03948  M01S02399.sform   +++|      BEGIN                          # USE CURRENT ROW #
Line S02400 Modification History
M01 (Added by) sform
M02 (Updated by) sform6
Seq #  *Modification Id* Act 
----------------------------+
03949  M02S02400.sform6  ---|      ROWNUMBER = ARRCURROW[ARRAYORD];
03950  M01S00003.sform6  +++|      ROWNUMBER = ARRCURROW[ARRAYORD-1];
03951  M01S02401.sform   +++|      END
Line S02402 Modification History
M01 (Added by) sform
M02 (Updated by) sform6
Seq #  *Modification Id* Act 
----------------------------+
03952  M02S02402.sform6  ---|    VARIND = VARIND + ARRNUMVARS[ARRAYORD]*ROWNUMBER;
03953  M01S00004.sform6  +++|    VARIND = VARIND + ARRNUMVARS[ARRAYORD-1]*ROWNUMBER;
03954  M01S02403.sform   +++|    END
03955  M01S02404.sform   +++|  FLDIND = VARFLDNUM[VARIND] - 1;    # ADJUST PDU VALUE #
03956  M01S02405.sform   +++|  END
03957  M01S02406.sform   +++|
03958  M01S02407.sform   +++|END  # GFIELD #
03959  M01S02408.sform   +++|CONTROL EJECT;
03960  M01S02409.sform   +++|
03961  M01S02410.sform   +++|PROC IRANGE(FLDIND,VALUE,EVALUE);
03962  M01S02411.sform   +++|
03963  M01S02412.sform   +++|# TITLE IRANGE - RANGE VALIDATION FOR INTEGER VARIABLES. #
03964  M01S02413.sform   +++|
03965  M01S02414.sform   +++|BEGIN  # IRANGE #
03966  M01S02415.sform   +++|
03967  M01S02416.sform   +++|#
03968  M01S02417.sform   +++|**    IRANGE - RANGE VALIDATION FOR INTEGER VARIABLES.
03969  M01S02418.sform   +++|*
03970  M01S02419.sform   +++|*     THIS PROCEDURE VALIDATES THAT INPUT TO THE FIELD POINTED TO
03971  M01S02420.sform   +++|*     BY FLDIND IS WITHIN THE RANGE SPECIFIED IN THE PANEL RECORD.
03972  M01S02421.sform   +++|*
03973  M01S02422.sform   +++|*     PROC IRANGE(FLDIND,VALUE,EVALUE)
03974  M01S02423.sform   +++|*
03975  M01S02424.sform   +++|*     ENTRY   FLDIND     = INDEX OF CURRENT FIELD IN FLDLIST.
03976  M01S02425.sform   +++|*             VALUE      = THE INTEGER VALUE OF THE INPUT.
03977  M01S02426.sform   +++|*             EVALUE     = THE EXPONENT VALUE OF THE INPUT
03978  M01S02427.sform   +++|*
03979  M01S02428.sform   +++|*     EXIT    FLDVALID[FLDIND] = FALSE, IF INPUT IS INVALID.
03980  M01S02429.sform   +++|#
03981  M01S02430.sform   +++|ITEM FLDIND     I;                   # INDEX OF VARIABLE TO VALIDATE #
03982  M01S02431.sform   +++|ITEM VALUE      I;                   # INTEGER VALUE OF INPUT #
03983  M01S02432.sform   +++|ITEM EVALUE     I;                   # EXPONENT VALUE OF INPUT #
03984  M01S02433.sform   +++|
03985  M01S02434.sform   +++|ITEM MAXVAL     I;                   # MAXIMUM ALLOWED VALUE #
03986  M01S02435.sform   +++|ITEM MINVAL     I;                   # MINIMUM ALLOWED VALUE #
03987  M01S02436.sform   +++|ITEM OFFSET     I;                   # OFFSET OF VALIDATION IN RECORD #
03988  M01S02437.sform   +++|ITEM VARIND     I;                   # INDEX INTO VARLIST #
03989  M01S02438.sform   +++|
03990  M01S02439.sform   +++|VARIND = FLDVARORD[FLDIND];
03991  M01S02440.sform   +++|OFFSET = VARVALOS[VARIND];
03992  M01S02441.sform   +++|MINVAL = RECWORDU[OFFSET];           # MINIMUM VALID VALUE #
03993  M01S02442.sform   +++|MAXVAL = RECWORDU[OFFSET + 1];       # MAXIMUM VALID VALUE #
03994  M01S02443.sform   +++|
03995  M01S02444.sform   +++|IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"$" THEN
03996  M01S02445.sform   +++|  BEGIN                              # WEIGHT CURRENCY INPUT #
03997  M01S02446.sform   +++|  IF EVALUE EQ 0 THEN
03998  M01S02447.sform   +++|    BEGIN
03999  M01S02448.sform   +++|    VALUE = VALUE * 100;
04000  M01S02449.sform   +++|    END
04001  M01S02450.sform   +++|  ELSE
04002  M01S02451.sform   +++|    BEGIN
04003  M01S02452.sform   +++|    IF EVALUE EQ -1 THEN VALUE = VALUE * 10;
04004  M01S02453.sform   +++|    END
04005  M01S02454.sform   +++|  END
04006  M01S02455.sform   +++|
04007  M01S02456.sform   +++|IF VALUE LS MINVAL OR VALUE GR MAXVAL THEN
04008  M01S02457.sform   +++|  BEGIN                              # IF VALUE OUTSIDE OF RANGE #
04009  M01S02458.sform   +++|  FLDVALID[FLDIND] = FALSE;
04010  M01S02459.sform   +++|  END
04011  M01S02460.sform   +++|
04012  M01S02461.sform   +++|END  # IRANGE #
04013  M01S02462.sform   +++|CONTROL EJECT;
04014  M01S02463.sform   +++|
04015  M01S02464.sform   +++|PROC MATCHV(FLDIND);
04016  M01S02465.sform   +++|
04017  M01S02466.sform   +++|# TITLE MATCHV - MATCH VALIDATION. #
04018  M01S02467.sform   +++|
04019  M01S02468.sform   +++|BEGIN  # MATCHV #
04020  M01S02469.sform   +++|
04021  M01S02470.sform   +++|#
04022  M01S02471.sform   +++|**    MATCHV - MATCH VALIDATION.
04023  M01S02472.sform   +++|*
04024  M01S02473.sform   +++|*     THIS PROCEDURE PERFORMS MATCH VALIDATION FOR THE VARIABLE
04025  M01S02474.sform   +++|*     USING THE MATCH LIST IN THE PANEL RECORD.
04026  M01S02475.sform   +++|*
04027  M01S02476.sform   +++|*     PROC MATCHV(FLDIND)
04028  M01S02477.sform   +++|*
04029  M01S02478.sform   +++|*     ENTRY   FLDIND     = POINTER INTO FLDLIST OF CURRENT FIELD.
04030  M01S02479.sform   +++|*
04031  M01S02480.sform   +++|*     EXIT    FLDVALID[FLDIND] = FALSE, IF INPUT IS INVALID.
04032  M01S02481.sform   +++|*
04033  M01S02482.sform   +++|*     CALLS   FMATCH, MMATCH.
04034  M01S02483.sform   +++|#
04035  M01S02484.sform   +++|ITEM FLDIND     I;                   # INDEX OF FIELD IN FLDLIST #
04036  M01S02485.sform   +++|
04037  M01S02486.sform   +++|ITEM MATCHIND   I;                   # INDEX INTO MATCHLIST #
04038  M01S02487.sform   +++|ITEM MATCHCOUNT I;                   # NUMBER OF VALID MATCHES #
04039  M01S02488.sform   +++|
04040  M01S02489.sform   +++|IF VARVALOS[FLDVARORD[FLDIND]]
04041  M01S02490.sform   +++|  EQ 0 THEN RETURN;                  # IF NO VALIDATION REQUIRED #
04042  M01S02491.sform   +++|
04043  M01S02492.sform   +++|FMATCH(FLDIND,MATCHIND,MATCHCOUNT);  # FIND MATCH #
04044  M01S02493.sform   +++|
04045  M01S02494.sform   +++|IF ABS(MATCHCOUNT) NQ 1 THEN
04046  M01S02495.sform   +++|  BEGIN                              # NO MATCH OR TOO MANY MATCHES #
04047  M01S02496.sform   +++|  FLDVALID[FLDIND] = FALSE;
04048  M01S02497.sform   +++|  END
04049  M01S02498.sform   +++|ELSE
04050  M01S02499.sform   +++|  BEGIN                              # EXACT OR PARTIAL MATCH FOUND #
04051  M01S02500.sform   +++|  MMATCH(MATCHIND,FLDIND);           # RETURN IDENTICAL MATCH VALUE #
04052  M01S02501.sform   +++|  END
04053  M01S02502.sform   +++|
04054  M01S02503.sform   +++|END  # MATCHV #
04055  M01S02504.sform   +++|CONTROL EJECT;
04056  M01S02505.sform   +++|
04057  M01S02506.sform   +++|PROC MCLEAN(MCOUNT,MSGFIT);
04058  M01S02507.sform   +++|
04059  M01S02508.sform   +++|# TITLE MCLEAN - MESSAGE CLEAN. #
04060  M01S02509.sform   +++|
04061  M01S02510.sform   +++|BEGIN  # MCLEAN #
04062  M01S02511.sform   +++|
04063  M01S02512.sform   +++|#
04064  M01S02513.sform   +++|**    MCLEAN - MESSAGE CLEAN.
04065  M01S02514.sform   +++|*
04066  M01S02515.sform   +++|*     THIS PROCEDURE CLEANS THE MESSAGE AREA.
04067  M01S02516.sform   +++|*
04068  M01S02517.sform   +++|*     PROC MCLEAN(MCOUNT,MSGFIT)
04069  M01S02518.sform   +++|*
04070  M01S02519.sform   +++|*     EXIT    MCOUNT     = THE LENGTH OF THE MESSAGE AREA.
04071  M01S02520.sform   +++|*             MSGFIT     = TRUE, IF LONGEST MESSAGE WILL FIT.
04072  M01S02521.sform   +++|*
04073  M01S02522.sform   +++|*     CALLS     VDTCHR, VDTCLL, VDTPOS, VDTSAM.
04074  M01S02523.sform   +++|*
04075  M01S02524.sform   +++|*     USES      TERMESWRIT.
04076  M01S02525.sform   +++|#
04077  M01S02526.sform   +++|ITEM MCOUNT     I;                   # LENGTH OF MESSAGE AREA #
04078  M01S02527.sform   +++|ITEM MSGFIT     B;                   # TRUNCATION FLAG #
04079  M01S02528.sform   +++|
04080  M01S02529.sform   +++|ITEM I          I;                   # LOOP VARIABLE #
04081  M01S02530.sform   +++|
Line S02531 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
04082  M02S02531.242l642 ---|IF PANMSGLEN[0] LS NUMCOLS THEN
04083  M01S00842.242l642 +++|IF PANMSGLEN[0] LS TERNUMCOLS[0] THEN
04084  M01S02532.sform   +++|  BEGIN                              # IF LONGEST MESSAGE FITS #
04085  M01S02533.sform   +++|  MSGFIT = TRUE;
04086  M01S02534.sform   +++|  MCOUNT = PANMSGLEN[0] -1;
04087  M01S02535.sform   +++|  IF MCOUNT LS 24 THEN MCOUNT = 24;  # LONGEST SMF MESSAGE #
04088  M01S02536.sform   +++|  END
04089  M01S02537.sform   +++|ELSE
04090  M01S02538.sform   +++|  BEGIN                              # USER HELP MAY NEED TRUNCATION #
04091  M01S02539.sform   +++|  MSGFIT = FALSE;
Line S02540 Modification History
M01 (Added by) sform
M02 (Updated by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
04092  M02S02540.242l642 ---|  MCOUNT = NUMCOLS -1;
04093  M01S00843.242l642 +++|  MCOUNT = TERNUMCOLS[0] - 1;
04094  M01S02541.sform   +++|  END
04095  M01S02542.sform   +++|
04096  M01S00001.sform5  +++|VDTSAM(ATTMASK[0]);                  # SET MESSAGE ATTRIBUTES #
Line S02543 Modification History
M01 (Added by) sform
M02 (Updated by) ns2346
Seq #  *Modification Id* Act 
----------------------------+
04097  M02S02543.ns2346  ---|IF TERPROTECT[0] THEN
Line S02544 Modification History
M01 (Added by) sform
M02 (Updated by) ns2346
Seq #  *Modification Id* Act 
----------------------------+
04098  M02S02544.ns2346  ---|  BEGIN                              # IF TERMINAL HAS PROTECT #
04099  M01S00009.ns2346  +++|IF TERTABPROT[0] THEN
04100  M01S00010.ns2346  +++|  BEGIN                              # IF TABS TO UNPROTECTED TRUE #
04101  M01S02545.sform   +++|  VDTPOS(0,0);                       # POSITION TO MESSAGE AREA #
04102  M01S02546.sform   +++|  FOR I = 0 STEP 1 UNTIL MCOUNT DO
Line S02547 Modification History
M01 (Added by) sform
M02 (Updated by) sform5
Seq #  *Modification Id* Act 
----------------------------+
04103  M02S02547.sform5  ---|  FOR I = 0 STEP 1 UNTIL MCOUNT - 1 DO
04104  M01S02548.sform   +++|    BEGIN                            # BLANK OUT MESSAGE AREA #
04105  M01S02549.sform   +++|    VDTCHR(BLANK);
04106  M01S02550.sform   +++|    END
Line S02551 Modification History
M01 (Added by) sform
M02 (Updated by) sform5
Seq #  *Modification Id* Act 
----------------------------+
04107  M02S02551.sform5  ---|  VDTPOS(0,0);                       # REPOSITION #
04108  M01S02552.sform   +++|  END
04109  M01S02553.sform   +++|ELSE
04110  M01S02554.sform   +++|  BEGIN                              # NO PROTECT #
Line S02555 Modification History
M01 (Added by) sform
M02 (Updated by) sform5
Seq #  *Modification Id* Act 
----------------------------+
04111  M02S02555.sform5  ---|  VDTCLL(0,0);                       # POSITON AND CLEAR LINE #
Line S02556 Modification History
M01 (Added by) sform
M02 (Updated by) sform5
Seq #  *Modification Id* Act 
----------------------------+
04112  M02S02556.sform5  ---|  VDTSAM(ATTMASK[0]);                # SET ATTRIBUTES #
04113  M01S00002.sform5  +++|  VDTCLL(0,0);                       # POSITION AND CLEAR LINE #
04114  M01S02557.sform   +++|  END
04115  M01S02558.sform   +++|
04116  M01S02559.sform   +++|TERMESWRIT[0] = FALSE;               # CLEAR MESSAGE WRITTEN FLAG #
04117  M01S02560.sform   +++|
04118  M01S02561.sform   +++|END  # MCLEAN #
04119  M01S02562.sform   +++|CONTROL EJECT;
04120  M01S02563.sform   +++|
04121  M01S02564.sform   +++|PROC MMATCH(MATCHIND,FIELD);
04122  M01S02565.sform   +++|
04123  M01S02566.sform   +++|# TITLE MMATCH - MOVE MATCH VALUE INTO VARIABLE FIELD . #
04124  M01S02567.sform   +++|
04125  M01S02568.sform   +++|BEGIN  # MMATCH #
04126  M01S02569.sform   +++|
04127  M01S02570.sform   +++|#
04128  M01S02571.sform   +++|**    MMATCH - MOVE MATCH VALUE INTO VARIABLE FIELD.
04129  M01S02572.sform   +++|*
04130  M01S02573.sform   +++|*     THIS PROCEDURE MOES THE MATCH VALUE INTO THE VARIABLE FIELD
04131  M01S02574.sform   +++|*     IN VARDATA.
04132  M01S02575.sform   +++|*
04133  M01S02576.sform   +++|*     PROC MMATCH(MATCHIND,FIELD)
04134  M01S02577.sform   +++|*
04135  M01S02578.sform   +++|*     ENTRY   MATCHIND   = INDEX INTO MATCHLIST FOR MATCH TO MOVE.
04136  M01S02579.sform   +++|*             FIELD      = INDEX OF FIELD TO RECEIVE MATCH VALUE.
04137  M01S02580.sform   +++|*
04138  M01S02581.sform   +++|*     EXIT    FLDENTERED, FLDVALID AND FLDREWRITE FLAGS SET FOR
04139  M01S02582.sform   +++|*             VARIABLE, AS WELL AS TERREWFLDS, MATCH VALUE MOVED.
04140  M01S02583.sform   +++|*
04141  M01S02584.sform   +++|*     CALLS   WRIVCH.
04142  M01S02585.sform   +++|*
04143  M01S02586.sform   +++|*     USES    TERREWFLDS.
04144  M01S02587.sform   +++|#
04145  M01S02588.sform   +++|ITEM MATCHIND   I;                   # INDEX INTO MATCHLIST #
04146  M01S00026.ns2612  +++|ITEM MATCHLEN   I;                   # MATCH ENTRY LENGTH #
04147  M01S02589.sform   +++|ITEM FIELD      I;                   # INDEX OF FIELD IN FLDLIST #
04148  M01S02590.sform   +++|
04149  M01S02591.sform   +++|ITEM CHAR       I;                   # 12-BIT CHARACTER #
04150  M01S02592.sform   +++|ITEM I          I;                   # CHARACTER INDEX #
04151  M01S02593.sform   +++|
04152  M01S00027.ns2612  +++|MATCHLEN = FLDLENGTH[FIELD];
04153  M01S00028.ns2612  +++|IF PANVERSION[0] EQ 0 THEN MATCHLEN = 10;
04154  M01S02594.sform   +++|FOR I = 0 STEP 1 UNTIL FLDLENGTH[FIELD] - 1 DO
04155  M01S02595.sform   +++|  BEGIN                              # MOVE MATCH ENTRY TO FIELD #
Line S02596 Modification History
M01 (Added by) sform
M02 (Updated by) ns2612
Seq #  *Modification Id* Act 
----------------------------+
04156  M02S02596.ns2612  ---|  IF I LS 10 THEN
04157  M01S00029.ns2612  +++|  IF I LS MATCHLEN THEN
04158  M01S02597.sform   +++|    BEGIN                            # IF NO BLANK FILL NEEDED #
04159  M01S02598.sform   +++|    CHAR = C<I*2,2>MATCH[MATCHIND];
04160  M01S02599.sform   +++|    END
04161  M01S02600.sform   +++|  ELSE
04162  M01S02601.sform   +++|    BEGIN                            # MORE THAN TEN CHARACTERS #
04163  M01S02602.sform   +++|    CHAR = BLANK;
04164  M01S02603.sform   +++|    END
04165  M01S02604.sform   +++|  WRIVCH(FIELD,I,CHAR);              # WRITE CHARACTER INTO VARDATA #
04166  M01S02605.sform   +++|  END
04167  M01S02606.sform   +++|
04168  M01S02607.sform   +++|TERREWFLDS[0] = TRUE;                # SET REWRITE, ENTERED AND VALID #
04169  M01S02608.sform   +++|FLDVALID[FIELD] = TRUE;
04170  M01S02609.sform   +++|FLDENTERED[FIELD] = TRUE;
04171  M01S02610.sform   +++|FLDREWRITE[FIELD] = TRUE;
04172  M01S02611.sform   +++|
04173  M01S02612.sform   +++|END  # MMATCH #
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  M01S02613.sform   +++|CONTROL EJECT;
04300  M01S02614.sform   +++|
04301  M01S02615.sform   +++|PROC MOVEST(STRINGADDR,STRINGOS,SLENGTH);
04302  M01S02616.sform   +++|
04303  M01S02617.sform   +++|# TITLE MOVEST - MOVE STRING. #
04304  M01S02618.sform   +++|
04305  M01S02619.sform   +++|BEGIN  # MOVEST #
04306  M01S02620.sform   +++|
04307  M01S02621.sform   +++|#
04308  M01S02622.sform   +++|**    MOVEST - MOVE STRING.
04309  M01S02623.sform   +++|*
04310  M01S02624.sform   +++|*     THIS PROCEDURE POSITIONS THE BASED ARRAYS TOSTRING
04311  M01S02625.sform   +++|*     AND FROMSTRING AND THEN CALLS THE PROPER PROCEDURE
04312  M01S02626.sform   +++|*     TO DO THE ACTUAL TRANSLATION AND TO MOVE THE STRING
04313  M01S02627.sform   +++|*     FROM OUTSTRING TO VARDATA (IF A WRITE OPERATION IS
04314  M01S02628.sform   +++|*     STARTING) OR FROM VARDATA TO INSTRING (IF A READ
04315  M01S02629.sform   +++|*     OPERATION IS FINISHED).
04316  M01S02630.sform   +++|*
04317  M01S02631.sform   +++|*     PROC MOVEST(STRINGADDR,STRINGOS,SLENGTH)
04318  M01S02632.sform   +++|*
04319  M01S02633.sform   +++|*     ENTRY   STRINGADDR = THE FIRST WORD ADDRESS OF INSTRING
04320  M01S02634.sform   +++|*                          OR OUTSTRING (DEPENDING ON WHICH
04321  M01S02635.sform   +++|*                          DIRECTION THE CHARACTER DATA IS
04322  M01S02636.sform   +++|*                          BEING MOVED).
04323  M01S02637.sform   +++|*             STRINGOS   = CHARACTER OFFSET (IN SIX BIT CHAR-
04324  M01S02638.sform   +++|*                          CTERS) INTO EITHER INSTRING OR OUT-
04325  M01S02639.sform   +++|*                          STRING (DEPENDING ON WHICH DIRECTION
04326  M01S02640.sform   +++|*                          THE CHARACTER DATA IS BEING MOVED).
04327  M01S02641.sform   +++|*             SLENGTH    = LENGTH IN SIX BIT CHARACTERS.
04328  M01S02642.sform   +++|*             TERREADFLG = TRUE, IF MOVING FROM VARDATA TO INSTRING
04329  M01S02643.sform   +++|*                          DURING AN SFSREA CALL, FALSE IF MOVING
04330  M01S02644.sform   +++|*                          FROM OUTSTRING TO VARDATA DURING AN SFS-
04331  M01S02645.sform   +++|*                          WRI CALL.
04332  M01S02646.sform   +++|*
04333  M01S02647.sform   +++|*     EXIT    STRING MOVED, AND TRANSLATED IF NECESSARY.
04334  M01S02648.sform   +++|*
04335  M01S02649.sform   +++|*     CALLS   MVASA8, MVA8AS, MVA8A8, MVA8DC, MVDCA8.
04336  M01S02650.sform   +++|#
04337  M01S02651.sform   +++|ITEM STRINGADDR I;                   # ADDRESS OF IN/OUTSTRING #
04338  M01S02652.sform   +++|ITEM STRINGOS   I;                   # CHARACTER OFFSET INTO STRING #
04339  M01S02653.sform   +++|ITEM SLENGTH    I;                   # LENGTH IN SIX BIT CHARACTERS #
04340  M01S02654.sform   +++|
04341  M01S02655.sform   +++|ITEM FROMCHAROS I;                   # CHARACTER OFFSET / FROM STRING #
04342  M01S02656.sform   +++|ITEM TOCHAROS   I;                   # CHARACTER OFFSET / TO STRING #
04343  M01S02657.sform   +++|
04344  M01S02658.sform   +++|IF NOT TERREADFLG[0] THEN
04345  M01S02659.sform   +++|  BEGIN                              # IF MOVING OUTSTRING TO VARDATA #
04346  M01S02660.sform   +++|  P<FROMSTRING> = STRINGADDR;        # POSITION FROM AND TO STRING #
04347  M01S02661.sform   +++|  P<TOSTRING> = LOC(VDATAU[0]);
04348  M01S02662.sform   +++|  FROMCHAROS = STRINGOS;             # CHARACTER OFFSET / FROM STRING #
04349  M01S00242.ns2605  +++|  TOCHAROS = 0;                      # NO CHARACTER OFFSET / VARDATA #
04350  M01S02663.sform   +++|  IF TERAS8FLAG[0] THEN
04351  M01S02664.sform   +++|    BEGIN                            # IF NO TRANSLATION REQUIRED #
Line S02665 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04352  M02S02665.ns2605  ---|    TOCHAROS = 0;                    # NO CHARACTER OFFSET / VARDATA #
Line S02666 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04353  M02S02666.ns2605  ---|    MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH);  # MOVE OUTSTRING TO VARDATA #
04354  M01S00243.ns2605  +++|    IF SLENGTH LQ 0 THEN SLENGTH = PANNUMBYTE[0] * 2;
04355  M01S00244.ns2605  +++|    MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0]*2,FALSE);
04356  M01S02667.sform   +++|    END
04357  M01S02668.sform   +++|  ELSE
04358  M01S02669.sform   +++|    BEGIN
04359  M01S02670.sform   +++|    IF TERASCFLAG[0] THEN
04360  M01S02671.sform   +++|      BEGIN                          # IF SIX TWELVE ASCII #
Line S02672 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04361  M02S02672.ns2605  ---|      MVASA8(FROMCHAROS,SLENGTH);    # MOVE OUTSTRING TO VARDATA #
04362  M01S00245.ns2605  +++|      MVASA8(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04363  M01S02673.sform   +++|      END
04364  M01S02674.sform   +++|    ELSE
04365  M01S02675.sform   +++|      BEGIN                          # IF SIX BIT DISPLAY CODE #
Line S02676 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04366  M02S02676.ns2605  ---|      MVDCA8(FROMCHAROS,SLENGTH);    # MOVE OUTSTRING TO VARDATA #
04367  M01S00246.ns2605  +++|        MVDCA8(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04368  M01S02677.sform   +++|      END
04369  M01S02678.sform   +++|    END
04370  M01S02679.sform   +++|  END
04371  M01S02680.sform   +++|ELSE
04372  M01S02681.sform   +++|  BEGIN                              # IF MOVING VARDATA TO INSTRING #
04373  M01S02682.sform   +++|  P<FROMSTRING> = LOC(VDATAU[0]);    # POSITION FROM AND TO STRING #
04374  M01S02683.sform   +++|  P<TOSTRING> = STRINGADDR;
04375  M01S02684.sform   +++|  TOCHAROS = STRINGOS;               # CHARACTER OFFSET / TO STRING #
04376  M01S00247.ns2605  +++|  FROMCHAROS = 0;                    # NO CHARACTER OFFSET / VARDATA #
04377  M01S02685.sform   +++|  IF TERAS8FLAG[0] THEN
04378  M01S02686.sform   +++|    BEGIN                            # IF NO TRANSLATION REQUIRED #
Line S02687 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04379  M02S02687.ns2605  ---|    FROMCHAROS = 0;                  # NO CHARACTER OFFSET / VARDATA #
Line S02688 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04380  M02S02688.ns2605  ---|    MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH);  # MOVE VARDATA TO INSTRING #
04381  M01S00248.ns2605  +++|    IF SLENGTH LQ 0 THEN SLENGTH = PANNUMBYTE[0] * 2;
04382  M01S00249.ns2605  +++|    MVA8A8(FROMCHAROS,TOCHAROS,PANNUMBYTE[0]*2,SLENGTH,FALSE);
04383  M01S02689.sform   +++|    END
04384  M01S02690.sform   +++|  ELSE
04385  M01S02691.sform   +++|    BEGIN
04386  M01S02692.sform   +++|    IF TERASCFLAG[0] THEN
04387  M01S02693.sform   +++|      BEGIN                          # IF SIX TWELVE ASCII #
Line S02694 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04388  M02S02694.ns2605  ---|      MVA8AS(TOCHAROS,SLENGTH);      # MOVE VARDATA TO INSTRING #
Line S00250 Modification History
M01 (Added by) ns2605
M02 (Updated by) ns2605a
Seq #  *Modification Id* Act 
----------------------------+
04389  M02S00250.ns2605a ---|      MVA8AS(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04390  M01S00001.ns2605a +++|      MVA8AS(TOCHAROS,FROMCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04391  M01S02695.sform   +++|      END
04392  M01S02696.sform   +++|    ELSE
04393  M01S02697.sform   +++|      BEGIN                          # IF SIX BIT DISPLAY CODE #
Line S02698 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04394  M02S02698.ns2605  ---|      MVA8DC(TOCHAROS,SLENGTH);      # MOVE VARDATA TO INSTRING #
Line S00251 Modification History
M01 (Added by) ns2605
M02 (Updated by) ns2605a
Seq #  *Modification Id* Act 
----------------------------+
04395  M02S00251.ns2605a ---|      MVA8DC(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04396  M01S00002.ns2605a +++|      MVA8DC(TOCHAROS,FROMCHAROS,SLENGTH,PANNUMBYTE[0],FALSE);
04397  M01S02699.sform   +++|      END
04398  M01S02700.sform   +++|    END
04399  M01S02701.sform   +++|  END
04400  M01S02702.sform   +++|
04401  M01S02703.sform   +++|END  # MOVEST #
04402  M01S00252.ns2605  +++|CONTROL EJECT;
04403  M01S00253.ns2605  +++|
Line S02704 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04404  M02S02704.ns2605  ---|CONTROL EJECT;
Line S02705 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04405  M02S02705.ns2605  ---|
Line S02706 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04406  M02S02706.ns2605  ---|PROC MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH);
04407  M01S00254.ns2605  +++|PROC MVA8A8(FROMCHAROS,TOCHAROS,FROMLENGTH,TOLENGTH,FILL);
04408  M01S02707.sform   +++|
04409  M01S02708.sform   +++|# TITLE MVA8A8 - MOVE ASCII8 STRING. #
04410  M01S02709.sform   +++|
04411  M01S02710.sform   +++|BEGIN  # MVA8A8 #
04412  M01S02711.sform   +++|
04413  M01S02712.sform   +++|#
04414  M01S02713.sform   +++|**    MVA8A8 - MOVE ASCII8 STRING.
04415  M01S02714.sform   +++|*
04416  M01S02715.sform   +++|*     THIS PROCEDURE MOVES THE ASCII8 CHARACTER DATA FROM OUTSTRING
04417  M01S02716.sform   +++|*     TO VARDATA BEFORE A WRITE, OR FROM VARDATA TO INSTRING AFTER
Line S02717 Modification History
M01 (Added by) sform
M02 (Updated by) sform8
Seq #  *Modification Id* Act 
----------------------------+
04418  M02S02717.sform8  ---|*     A READ, USING THE BASED ARRAYS FROMSTRING AND TO STRING.
Line S00001 Modification History
M01 (Added by) sform8
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04419  M02S00001.ns2605  ---|*     A READ, USING THE BASED ARRAYS FROMSTRING AND TOSTRING.
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  M01S02718.sform   +++|*
Line S02719 Modification History
M01 (Added by) sform
M02 (Updated by) ns2605
Seq #  *Modification Id* Act 
----------------------------+
04425  M02S02719.ns2605  ---|*     PROC MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH)
Proceed to Part 3
cdc/nos2.source/opl.opl871/deck/sform.002.txt ยท Last modified: by 127.0.0.1