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