cdc:nos2.source:opl.opl871:deck:sform.001
Deck SFORM Part 001
49 Modifications
Listing Sections
- Deck SFORM Start
- Deck SFORM Part 1 (Line 1152)
- Deck SFORM Part 2 (Line 2830)
- Deck SFORM Part 3 (Line 4426)
- Deck SFORM Part 4 (Line 5497)
- Deck SFORM Part 5 (Line 6487)
- Deck SFORM Part 6 (Line 7627)
Source
Seq # *Modification Id* Act ----------------------------+
Line S00573 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01152 M02S00573.242l642 ---| VDTPOS(0,NUMLINES); 01153 M01S00179.242l642 +++| VDTPOS(0,TERNUMLNES[0]); 01154 M01S00574.sform +++| END 01155 M01S00575.sform +++| FOR PLTCOUNT = 1 STEP 1 UNTIL PLTNUMENT[0] DO 01156 M01S00576.sform +++| BEGIN # CLEAR SEQUENCE NUMBERS # 01157 M01S00577.sform +++| PLTENTRYNM[PLTCOUNT] = 0; 01158 M01S00578.sform +++| END 01159 M01S00579.sform +++| PLTNUMONSC[0] = 0; # NO PANELS ON SCREEN # 01160 M01S00580.sform +++| TERMESWRIT[0] = FALSE; 01161 M01S00581.sform +++| TERMESREAD[0] = FALSE;
Line S00582 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2231 |
Seq # *Modification Id* Act ----------------------------+ 01162 M02S00582.ns2231 ---| VDTSTM(TERMMODEL,LINE); # SET LINE MODE # 01163 M01S00001.ns2231 +++| VDTSTM(LINE,DUMMY); # SET LINE MODE #
Line S00583 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01164 M02S00583.242l642 ---| VDTCLO(RECALL); # FLUSH OUTPUT, RECALL # 01165 M01S00180.242l642 +++|*IF UNDEF,QTRM
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2524a |
M02 (Updated by) | ns2524b |
Seq # *Modification Id* Act ----------------------------+ 01166 M02S00001.ns2524b ---| IF NOT TERNOVDTEO[0] THEN VDTEOO;
Line S00002 Modification History | |
---|---|
M01 (Added by) | ns2524a |
M02 (Updated by) | ns2524b |
Seq # *Modification Id* Act ----------------------------+ 01167 M02S00002.ns2524b ---| TERVDTBOOC[0] = FALSE; 01168 M01S00181.242l642 +++| VDTCLO(RECALL); # FLUSH OUTPUT WITH RECALL # 01169 M01S00001.ns2524b +++| IF TERBLCKMDE[0] THEN TERVDTBOOC[0] = FALSE; 01170 M01S00182.242l642 +++|*ENDIF 01171 M01S00584.sform +++| END
Line S00585 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01172 M02S00585.242l642 ---| ACTIVEPAN = " "; # CLEAR ACTIVE PANEL NAME #
Line S00586 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01173 M02S00586.242l642 ---| ACTPANPLTI = 0; # CLEAR PLT INDEX # 01174 M01S00183.242l642 +++| TERACTPANL[0] = " "; # CLEAR ACTIVE PANEL NAME # 01175 M01S00184.242l642 +++| TERACTPLTI[0] = 0; # CLEAR PLT INDEX # 01176 M01S00587.sform +++| TERCNWRIOV[0] = FALSE; # DO NOT ALLOW OVERLAY WRITE # 01177 M01S00588.sform +++| VDTMSG$(MSGB,1,1); # BLANK B DISPLAY MESSAGE # 01178 M01S00589.sform +++| TERSHOWFLG[0] = FALSE; 01179 M01S00590.sform +++| TERREADFLG[0] = FALSE; 01180 M01S00591.sform +++| END 01181 M01S00592.sform +++| 01182 M01S00593.sform +++|END # SFCLOS$ # 01183 M01S00594.sform +++|CONTROL EJECT; 01184 M01S00595.sform +++| 01185 M01S00596.sform +++|PROC SFCSET$(CSET,CLENGTH,COFFSET); 01186 M01S00597.sform +++| 01187 M01S00598.sform +++|# TITLE SFCSET$ - SET CHARACTER SET. # 01188 M01S00599.sform +++| 01189 M01S00600.sform +++|BEGIN # SFCSET$ # 01190 M01S00601.sform +++| 01191 M01S00602.sform +++|# 01192 M01S00603.sform +++|** SFCSET$ - SET CHARACTER SET. 01193 M01S00604.sform +++|* 01194 M01S00605.sform +++|* THIS PROCEDURE SETS AND CLEARS THE GLOBAL FLAGS THAT INDICATE 01195 M01S00606.sform +++|* WHAT CHARACTER SET IS IN USE BY THE APPLICATION CALLING THE 01196 M01S00607.sform +++|* SCREEN FORMATTING OBJECT ROUTINES. IT INTERFACES TO COBOL AND 01197 M01S00608.sform +++|* FORTRAN APPLICATION PROGRAMS THROUGH A COMPASS INTERFACE MOD- 01198 M01S00609.sform +++|* ULE CALLED SFCSET. 01199 M01S00610.sform +++|* 01200 M01S00611.sform +++|* PROC SFCSET$(CSET,CLENGTH,COFFSET) 01201 M01S00612.sform +++|* 01202 M01S00613.sform +++|* ENTRY CSET = "DISPLAY", "ASCII", OR "ASCII8", 01203 M01S00614.sform +++|* IN DISPLAY CODE. 01204 M01S00615.sform +++|* CLENGTH = LENGTH IN SIX BIT CHARACTERS IN CHARSET. 01205 M01S00616.sform +++|* COFFSET = OFFSET INTO CHARSET. 01206 M01S00617.sform +++|* 01207 M01S00618.sform +++|* EXIT CORRECT CHARACTER SET FLAG SET, OTHERS CLEARED. 01208 M01S00619.sform +++|*
Line S00620 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01209 M02S00620.242l642 ---|* USES TERASCFLAG, TERAS8FLAG, TERDISFLAG. 01210 M01S00185.242l642 +++|* USES TERASCFLAG, TERAS8FLAG. 01211 M01S00621.sform +++|* 01212 M01S00622.sform +++|* NOTES IF SFCSET$ IS CALLED WITH AN UNRECOGNIZABLE 01213 M01S00623.sform +++|* CHARACTER SET THEN THE DEFAULT CHARACTER SET 01214 M01S00624.sform +++|* (DISPLAY) WILL BE SET AND ALL OTHERS CLEARED. 01215 M01S00625.sform +++|* SFCSET$ ACCEPTS ONLY BLANK FILLED DISPLAY CODE 01216 M01S00626.sform +++|* STRINGS FOR THE CHARACTER SET. 01217 M01S00627.sform +++|# 01218 M01S00628.sform +++|ITEM CSET C(11); # CHAR. SET NAME IN DISPLAY CODE # 01219 M01S00629.sform +++|ITEM CLENGTH I; # LENGTH IN SIX BIT CHARACTERS # 01220 M01S00630.sform +++|ITEM COFFSET I; # OFFSET INTO CSET # 01221 M01S00631.sform +++| 01222 M01S00632.sform +++|ITEM ASCII C(7) = "ASCII "; # ASCII (IN DISPLAY CODE ) # 01223 M01S00633.sform +++|ITEM ASCII8 C(7) = "ASCII8 "; # ASCII8 (IN DISPLAY CODE) # 01224 M01S00634.sform +++|ITEM SET C(7); # CHARACTER SET, LEFT JUSTIFIED # 01225 M01S00635.sform +++|
Line S00636 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01226 M02S00636.242l642 ---|IF CLENGTH LS 1 THEN CLENGTH = 7; # CRACK PARAMTER # 01227 M01S00186.242l642 +++|IF CLENGTH LS 1 THEN CLENGTH = 7; # CRACK PARAMETER # 01228 M01S00637.sform +++|SET = C<COFFSET,CLENGTH>CSET; 01229 M01S00638.sform +++| 01230 M01S00639.sform +++|IF SET EQ ASCII THEN 01231 M01S00640.sform +++| BEGIN # IF SIX TWELVE ASCII # 01232 M01S00641.sform +++| TERASCFLAG[0] = TRUE; 01233 M01S00642.sform +++| TERAS8FLAG[0] = FALSE;
Line S00643 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01234 M02S00643.242l642 ---| TERDISFLAG[0] = FALSE; 01235 M01S00644.sform +++| END 01236 M01S00645.sform +++|ELSE 01237 M01S00646.sform +++| BEGIN 01238 M01S00647.sform +++| IF SET EQ ASCII8 THEN 01239 M01S00648.sform +++| BEGIN # IF TWELVE BIT ASCII # 01240 M01S00649.sform +++| TERASCFLAG[0] = FALSE; 01241 M01S00650.sform +++| TERAS8FLAG[0] = TRUE;
Line S00651 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01242 M02S00651.242l642 ---| TERDISFLAG[0] = FALSE; 01243 M01S00652.sform +++| END 01244 M01S00653.sform +++| ELSE 01245 M01S00654.sform +++| BEGIN # SET DISPLAY CODE # 01246 M01S00655.sform +++| TERASCFLAG[0] = FALSE; 01247 M01S00656.sform +++| TERAS8FLAG[0] = FALSE;
Line S00657 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01248 M02S00657.242l642 ---| TERDISFLAG[0] = TRUE; 01249 M01S00658.sform +++| END 01250 M01S00659.sform +++| END 01251 M01S00660.sform +++| 01252 M01S00661.sform +++|END # SFCSET$ # 01253 M01S00010.ns2605 +++|CONTROL EJECT; 01254 M01S00011.ns2605 +++| 01255 M01S00012.ns2605 +++|PROC SFGETF$(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,STAT); 01256 M01S00013.ns2605 +++| BEGIN 01257 M01S00014.ns2605 +++|# 01258 M01S00015.ns2605 +++|** SFGETF$ - GET FIELD CHARACTER STRING. 01259 M01S00016.ns2605 +++|* 01260 M01S00017.ns2605 +++|* SFGETF$ TRANSFERS CHARACTERS FROM A SPECIFIED PANEL FIELD TO 01261 M01S00018.ns2605 +++|* A SPECIFIED STRING, USING *MOVEFLD*. 01262 M01S00019.ns2605 +++|* 01263 M01S00020.ns2605 +++|* PROC SFGETF$(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,STAT) 01264 M01S00021.ns2605 +++|* 01265 M01S00022.ns2605 +++|* ENTRY VNAME = VARIABLE NAME OF FIELD. 01266 M01S00023.ns2605 +++|* VLEN = LENGTH OF VARNAME PARAMETER. 01267 M01S00024.ns2605 +++|* VOS = OFFSET OF VARNAME PARAMETER. 01268 M01S00025.ns2605 +++|* STRG = VARIABLE FIELD STRING. 01269 M01S00026.ns2605 +++|* SLEN = LENGTH OF STRING PARAMETER. 01270 M01S00027.ns2605 +++|* SOS = OFFSET OF STRING PARAMETER. 01271 M01S00028.ns2605 +++|* CSET = CHARACTER SET OF STRING (SEE SFCSET$). 01272 M01S00029.ns2605 +++|* CLEN = LENGTH OF CSET PARAMETER. 01273 M01S00030.ns2605 +++|* COS = OFFSET OF CSET PARAMETER. 01274 M01S00031.ns2605 +++|* 01275 M01S00032.ns2605 +++|* EXIT STAT GQ 0, NUMBER OF 6 BIT CHARACTERS MOVED. 01276 M01S00033.ns2605 +++|* LS 0, VARIABLE NOT FOUND IN ACTIVE PANELS. 01277 M01S00034.ns2605 +++|* 01278 M01S00035.ns2605 +++|* CALLS MOVEFLD. 01279 M01S00036.ns2605 +++|# 01280 M01S00037.ns2605 +++| 01281 M01S00038.ns2605 +++| ITEM VNAME I; # VARIABLE NAME # 01282 M01S00039.ns2605 +++| ITEM VLEN I; # LENGTH OF VARNAME PARAMETER # 01283 M01S00040.ns2605 +++| ITEM VOS I; # OFFSET INTO VARNAME PARAMETER # 01284 M01S00041.ns2605 +++| ITEM STRG I; # INSTRING PARAMETER # 01285 M01S00042.ns2605 +++| ITEM SLEN I; # LENGTH OF INSTRING # 01286 M01S00043.ns2605 +++| ITEM SOS I; # OFFSET INTO INSTRING # 01287 M01S00044.ns2605 +++| ITEM CSET I; # CHARACTER SET # 01288 M01S00045.ns2605 +++| ITEM CLEN I; # LENGTH OF CHARACTER SET # 01289 M01S00046.ns2605 +++| ITEM COS I; # OFFSET INTO CHARACTER SET # 01290 M01S00047.ns2605 +++| ITEM STAT I; # STATUS FIELD # 01291 M01S00048.ns2605 +++| 01292 M01S00049.ns2605 +++| 01293 M01S00050.ns2605 +++| STAT = 0; 01294 M01S00051.ns2605 +++| MOVEFLD(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,STAT); 01295 M01S00052.ns2605 +++| RETURN; 01296 M01S00053.ns2605 +++| 01297 M01S00054.ns2605 +++|END # SFGETF$# 01298 M01S00187.242l642 +++|*IF DEF,QTRM 01299 M01S00188.242l642 +++|CONTROL EJECT; 01300 M01S00189.242l642 +++| 01301 M01S00190.242l642 +++|PROC SFDQUE$(QNAME,QLEN,QOFF,BUFFER,RC,LENGTH); 01302 M01S00191.242l642 +++| 01303 M01S00192.242l642 +++|# TITLE SFDQUE$ - DEQUEUE A PIECE OF DATA FOR THIS TERMINAL. # 01304 M01S00193.242l642 +++| 01305 M01S00194.242l642 +++|BEGIN # SFDQUE$ # 01306 M01S00195.242l642 +++| 01307 M01S00196.242l642 +++|# 01308 M01S00197.242l642 +++|** SFDQUE$ - DEQUEUE A PIECE OF DATA FOR THIS TERMINAL. 01309 M01S00198.242l642 +++|* 01310 M01S00199.242l642 +++|* THIS PROCEDURE REMOVES *LENGTH* CHARACTERS FROM THE SPECIFIED 01311 M01S00200.242l642 +++|* QUEUE AND PLACES THE CHARACTERS INTO *BUFFER*. IT INTERFACES 01312 M01S00201.242l642 +++|* TO COBOL5 AND FTN5 APPLICATION PROGRAMS THROUGH A COMPASS 01313 M01S00202.242l642 +++|* INTERFACE CALLED SFDQUE. 01314 M01S00203.242l642 +++|* 01315 M01S00204.242l642 +++|* PROC SFDQUE$(QNAME,QLEN,QOFF,BUFFER,RC,LENGTH) 01316 M01S00205.242l642 +++|* 01317 M01S00206.242l642 +++|* ENTRY QNAME = QUEUE TO PLACE DATA INTO (GET OR PUT). 01318 M01S00207.242l642 +++|* QLEN = LENGTH OF QUEUE NAME. 01319 M01S00208.242l642 +++|* QOFF = OFFSET OF QUEUE NAME. 01320 M01S00209.242l642 +++|* LENGTH = BUFFER SIZE IN 12 BIT CHARACTERS. 01321 M01S00210.242l642 +++|* 01322 M01S00211.242l642 +++|* EXIT NIT$CTLC = COUNT OF CHARACTERS DEQUEUED. 01323 M01S00212.242l642 +++|* RC = 0, IF DATA DEQUEUED (NO ERROR). 01324 M01S00213.242l642 +++|* 1, IF MORE DATA AVAILABLE. 01325 M01S00214.242l642 +++|* 2, IF NO MESSAGES IN THE QUEUE. 01326 M01S00215.242l642 +++|* BUFFER = DEQUEUED DATA. 01327 M01S00216.242l642 +++|* 01328 M01S00217.242l642 +++|* CALLS CMMFRF. 01329 M01S00218.242l642 +++|# 01330 M01S00219.242l642 +++|ITEM QNAME C(7); # QUEUE NAME # 01331 M01S00220.242l642 +++|ITEM QLEN I; # QUEUE NAME LENGTH # 01332 M01S00221.242l642 +++|ITEM QOFF I; # QUEUE NAME OFFSET # 01333 M01S00222.242l642 +++|ARRAY BUFFER [0:0] P(1); # BUFFER # 01334 M01S00223.242l642 +++| BEGIN 01335 M01S00224.242l642 +++| ITEM B$WD0 U(00,00,60); # BUFFER WORD (INTEGER) # 01336 M01S00225.242l642 +++| END 01337 M01S00226.242l642 +++|ITEM RC I; # RETURN CODE # 01338 M01S00227.242l642 +++|ITEM LENGTH I; # BUFFER SIZE IN CHARACTERS # 01339 M01S00228.242l642 +++| 01340 M01S00229.242l642 +++|ITEM BIT I; # BIT POSITION # 01341 M01S00230.242l642 +++|ITEM B$CURBIT I; # CURRENT BIT # 01342 M01S00231.242l642 +++|ITEM B$CURWORD I; # CURRENT WORD # 01343 M01S00232.242l642 +++|ITEM I I; # LOOP VARIABLE # 01344 M01S00233.242l642 +++|ITEM J I; # LOOP VARIABLE # 01345 M01S00234.242l642 +++|ITEM MAX$CHARS I; # MAXIMUM NUMBER OF CHARACTERS # 01346 M01S00235.242l642 +++|ITEM QUEUENAME C(7); # QUEUE NAME # 01347 M01S00236.242l642 +++|ITEM RCC I; # RETURN CODE # 01348 M01S00237.242l642 +++|ITEM WORD I; # BUFFER WORD # 01349 M01S00238.242l642 +++| 01350 M01S00239.242l642 +++|B$CURBIT = 0; # POSITION TO START OF BUFFER # 01351 M01S00240.242l642 +++|B$CURWORD = 0; 01352 M01S00241.242l642 +++|P<Q$HEADER> = CHAIN; 01353 M01S00242.242l642 +++| 01354 M01S00243.242l642 +++|IF QLEN LS 1 THEN QLEN = 7; # CRACK PARAMETER # 01355 M01S00244.242l642 +++|QUEUENAME = C<QOFF,QLEN>QNAME; 01356 M01S00245.242l642 +++| 01357 M01S00246.242l642 +++|WHYLE P<Q$HEADER> NQ 0 DO 01358 M01S00247.242l642 +++| BEGIN # SEARCH FOR QUEUE FOR THIS ACN # 01359 M01S00248.242l642 +++| IF (( NIT$CON EQ Q$ACN ) AND 01360 M01S00249.242l642 +++| ( C<0,3>QNAME EQ C<0,3>Q$NAME )) THEN 01361 M01S00250.242l642 +++| IF NIT$CON EQ Q$ACN AND QUEUENAME EQ Q$NAME THEN 01362 M01S00251.242l642 +++| BEGIN # IF QUEUE IS FOUND # 01363 M01S00252.242l642 +++| P<Q$BUFFER> = P<Q$HEADER> + Q$HEADLEN; 01364 M01S00253.242l642 +++| FOR I = 1 STEP 1 UNTIL LENGTH DO 01365 M01S00254.242l642 +++| BEGIN # MOVE THIS USER-S DATA # 01366 M01S00255.242l642 +++| WORD = Q$OUTCHAR / 5; 01367 M01S00256.242l642 +++| BIT = (Q$OUTCHAR - (WORD * 5)) * 12; 01368 M01S00257.242l642 +++| B<B$CURBIT,12> B$WD0[B$CURWORD] = B<BIT,12>Q$WORD[WORD]; 01369 M01S00258.242l642 +++| Q$OUTCHAR = Q$OUTCHAR + 1; 01370 M01S00259.242l642 +++| B$CURBIT = B$CURBIT + 12; 01371 M01S00260.242l642 +++| IF B$CURBIT GQ 60 THEN 01372 M01S00261.242l642 +++| BEGIN # IF COMPLETE WORD MOVED # 01373 M01S00262.242l642 +++| B$CURBIT = 0; 01374 M01S00263.242l642 +++| B$CURWORD = B$CURWORD + 1; 01375 M01S00264.242l642 +++| END 01376 M01S00265.242l642 +++| 01377 M01S00266.242l642 +++| IF Q$OUTCHAR GR Q$INCHAR THEN 01378 M01S00267.242l642 +++| BEGIN # IF # 01379 M01S00268.242l642 +++| NIT$CTLC = I - 1; 01380 M01S00269.242l642 +++| RC = 0; 01381 M01S00270.242l642 +++| Q$INCHAR = 0; 01382 M01S00271.242l642 +++| Q$OUTCHAR = 0; 01383 M01S00272.242l642 +++| RCC = P<Q$HEADER>; # ADDRESS FOR CMM # 01384 M01S00273.242l642 +++| I = Q$BACK; # BACK POINTER # 01385 M01S00274.242l642 +++| J = Q$FORWARD; # FORWARD POINTER # 01386 M01S00275.242l642 +++| P<Q$HEADER> = I; # SET TO PREVIOUS PTR WORD # 01387 M01S00276.242l642 +++| Q$FORWARD = J; # AND SET TO NEXT PTR WORD # 01388 M01S00277.242l642 +++| IF J NQ 0 THEN 01389 M01S00278.242l642 +++| BEGIN # IF NEXT PTR WORD EXISTS # 01390 M01S00279.242l642 +++| P<Q$HEADER> = J; # SET PTR TO PREVIOUS PTR WORD # 01391 M01S00280.242l642 +++| Q$BACK = I; 01392 M01S00281.242l642 +++| END 01393 M01S00282.242l642 +++| CMMFRF (RCC); # RELEASE BUFFER # 01394 M01S00283.242l642 +++| RETURN; # RETURN # 01395 M01S00284.242l642 +++| END 01396 M01S00285.242l642 +++| END 01397 M01S00286.242l642 +++| 01398 M01S00287.242l642 +++| RC = 1; # USER-S BUFFER IS FULL # 01399 M01S00288.242l642 +++| NIT$CTLC = LENGTH; 01400 M01S00289.242l642 +++| RETURN; # RETURN # 01401 M01S00290.242l642 +++| END 01402 M01S00291.242l642 +++| P<Q$HEADER> = Q$FORWARD; 01403 M01S00292.242l642 +++| END 01404 M01S00293.242l642 +++| 01405 M01S00294.242l642 +++|RC = 2; # NOTHING TO DEQUEUE # 01406 M01S00295.242l642 +++| 01407 M01S00296.242l642 +++|END # SFDQUE$ # 01408 M01S00297.242l642 +++|*ENDIF 01409 M01S00662.sform +++|CONTROL EJECT; 01410 M01S00663.sform +++| 01411 M01S00664.sform +++|PROC SFGETI$(VARNAME,VLEN,VOFF,VALUE); 01412 M01S00665.sform +++| 01413 M01S00666.sform +++|# TITLE SFGETI$ - GET INTEGER VALUE. # 01414 M01S00667.sform +++| 01415 M01S00668.sform +++|BEGIN # SFGETI$ # 01416 M01S00669.sform +++| 01417 M01S00670.sform +++|# 01418 M01S00671.sform +++|** SFGETI$ - GET INTEGER VALUE. 01419 M01S00672.sform +++|* 01420 M01S00673.sform +++|* SFGETI$ RETURNS THE INTEGER NUMERIC VALUE OF THE FIELD 01421 M01S00674.sform +++|* SPECIFIED BY VARNAME AND ROWNUM. 01422 M01S00675.sform +++|* 01423 M01S00676.sform +++|* PROC SFGETI$(VARNAME,VLEN,VOFF,VALUE) 01424 M01S00677.sform +++|* 01425 M01S00678.sform +++|* ENTRY VARNAME = VARIABLE NAME OF FIELD. 01426 M01S00679.sform +++|* VLEN = LENGTH OF VARP. 01427 M01S00680.sform +++|* VOFF = OFFSET OF VARP. 01428 M01S00681.sform +++|* 01429 M01S00682.sform +++|* EXIT VALUE = INTEGER VALUE OF SPECIFIED FIELD. 01430 M01S00683.sform +++|* 01431 M01S00684.sform +++|* CALLS DATEVL, GFIELD, NCHECK. 01432 M01S00685.sform +++|# 01433 M01S00686.sform +++|ITEM VARNAME C(11); # VARIABLE NAME # 01434 M01S00687.sform +++|ITEM VLEN I; # LENGTH OF VARNAME PARAMETER # 01435 M01S00688.sform +++|ITEM VOFF I; # OFFSET INTO VARNAME PARAMETER # 01436 M01S00689.sform +++|ITEM VALUE I; # VALUE OF INPUT # 01437 M01S00690.sform +++| 01438 M01S00691.sform +++|ITEM ALLBLANK B; # ALL BLANK CHARACTERS IN FIELD # 01439 M01S00692.sform +++|ITEM CURRENCY B; # TRUE IF DOLLAR SIGN INPUT # 01440 M01S00693.sform +++|ITEM ERRORVAL I = 0; # RETURNED IF ERROR IN FIELD # 01441 M01S00694.sform +++|ITEM EVALUE I; # EXPONENT VALUE # 01442 M01S00695.sform +++|ITEM FLDIND I; # FIELD ORDINAL # 01443 M01S00696.sform +++|ITEM FORMAT I; # FORMAT OF INPUT # 01444 M01S00697.sform +++|ITEM HOLDVALID B; # SAVE FLDVALID VALUE # 01445 M01S00698.sform +++|ITEM I I; # LOOP COUNTER # 01446 M01S00699.sform +++|ITEM IVALUE I; # INTEGER VALUE #
Line S00700 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01447 M02S00700.242l642 ---|ITEM USEROW B = FALSE; # DO NOT USE CURSORROW # 01448 M01S00298.242l642 +++|ITEM USEROW B = FALSE; # DO NOT USE TERCURSROW # 01449 M01S00701.sform +++|ITEM VNAME C(7); # VARIABLE NAME LEFT JUSTIFIED # 01450 M01S00702.sform +++| 01451 M01S00703.sform +++|IF VLEN LS 1 THEN VLEN = 7; # CRACK PARAMETER # 01452 M01S00704.sform +++|VNAME = C<VOFF,VLEN>VARNAME; 01453 M01S00705.sform +++| 01454 M01S00706.sform +++|GFIELD(VNAME,USEROW,FLDIND); # GET ASSOCIATED FIELD # 01455 M01S00707.sform +++|IF FLDIND EQ -1 THEN GOTO INTERROR; # FIELD NOT FOUND # 01456 M01S00708.sform +++| 01457 M01S00709.sform +++|ALLBLANK = TRUE; 01458 M01S00710.sform +++|FOR I = 0 STEP 1 WHILE ALLBLANK AND I LQ FLDLENGTH[FLDIND] -1 DO 01459 M01S00711.sform +++| BEGIN # CHECK IF BLANK FIELD # 01460 M01S00712.sform +++| IF NEXTCHAR(FLDIND,I) NQ BLANK THEN ALLBLANK = FALSE; 01461 M01S00713.sform +++| END 01462 M01S00714.sform +++|IF ALLBLANK THEN 01463 M01S00715.sform +++| BEGIN # BLANK FIELD # 01464 M01S00716.sform +++| VALUE = 0; 01465 M01S00717.sform +++| RETURN; 01466 M01S00718.sform +++| END 01467 M01S00719.sform +++| 01468 M01S00720.sform +++|HOLDVALID = FLDVALID[FLDIND]; # SAVE VALID FLAG # 01469 M01S00721.sform +++|FLDVALID[FLDIND] = TRUE; 01470 M01S00722.sform +++|IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"Y" 01471 M01S00723.sform +++| OR VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"M" 01472 M01S00724.sform +++| OR VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"D" THEN 01473 M01S00725.sform +++| BEGIN # DATE FORMAT FIELD # 01474 M01S00001.sform10 +++| FORMAT = VARPICTYPE[FLDVARORD[FLDIND]]; # SET FORMAT TYPE # 01475 M01S00726.sform +++| DATEVL(FLDIND,IVALUE); # GET VALUE # 01476 M01S00727.sform +++| END 01477 M01S00728.sform +++|ELSE 01478 M01S00729.sform +++| BEGIN # NUMERIC FIELD # 01479 M01S00730.sform +++| NCHECK(FLDIND,IVALUE,EVALUE,FORMAT,CURRENCY); 01480 M01S00731.sform +++| IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"$" THEN 01481 M01S00732.sform +++| BEGIN # WEIGHT CURRENCY INPUT # 01482 M01S00733.sform +++| IF EVALUE EQ 0 THEN IVALUE = IVALUE * 100; 01483 M01S00734.sform +++| ELSE IF EVALUE EQ -1 THEN IVALUE = IVALUE * 10; 01484 M01S00735.sform +++| END 01485 M01S00736.sform +++| ELSE 01486 M01S00737.sform +++| BEGIN # NOT CURRENCY # 01487 M01S00738.sform +++| IF EVALUE LS 0 THEN 01488 M01S00739.sform +++| BEGIN # TRUNCATE DECIMAL DIGITS # 01489 M01S00740.sform +++| FOR I = -1 STEP -1 UNTIL EVALUE DO IVALUE = IVALUE/10; 01490 M01S00741.sform +++| END 01491 M01S00742.sform +++| ELSE 01492 M01S00743.sform +++| BEGIN # RAISE TO POWER OF EXPONENT # 01493 M01S00744.sform +++| FOR I = 1 STEP 1 UNTIL EVALUE DO IVALUE = IVALUE*10; 01494 M01S00745.sform +++| END 01495 M01S00746.sform +++| END 01496 M01S00747.sform +++| END 01497 M01S00748.sform +++| 01498 M01S00749.sform +++|IF NOT FLDVALID[FLDIND] OR FORMAT EQ FORMTYPE"BAD"THEN 01499 M01S00750.sform +++| BEGIN # ERRORS IN INPUT # 01500 M01S00751.sform +++| GOTO INTERROR; 01501 M01S00752.sform +++| END 01502 M01S00753.sform +++|FLDVALID[FLDIND] = HOLDVALID; # RESET VALID FLAG # 01503 M01S00754.sform +++|VALUE = IVALUE; 01504 M01S00755.sform +++|RETURN; 01505 M01S00756.sform +++| 01506 M01S00757.sform +++|INTERROR: # CANNOT RETURN VALUE # 01507 M01S00758.sform +++| 01508 M01S00759.sform +++| IF FLDIND NQ -1 THEN FLDVALID[FLDIND] = HOLDVALID; 01509 M01S00760.sform +++| VALUE = ERRORVAL; 01510 M01S00761.sform +++| 01511 M01S00762.sform +++|END # SFGETI$ # 01512 M01S00763.sform +++|CONTROL EJECT; 01513 M01S00764.sform +++| 01514 M01S00765.sform +++|PROC SFGETK(GENERIC,ORDINAL); 01515 M01S00766.sform +++| 01516 M01S00767.sform +++|# TITLE SFGETK - GET FUNCTION KEY. # 01517 M01S00768.sform +++| 01518 M01S00769.sform +++|BEGIN # SFGETK # 01519 M01S00770.sform +++| 01520 M01S00771.sform +++|# 01521 M01S00772.sform +++|** SFGETK - GET FUNCTION KEY. 01522 M01S00773.sform +++|* 01523 M01S00774.sform +++|* SFGETK RETURNS THE ORDINAL OF THE LAST FUNCTION KEY PROCESSED. 01524 M01S00775.sform +++|* 01525 M01S00776.sform +++|* PROC SFGETK(GENERIC,ORDINAL) 01526 M01S00777.sform +++|* 01527 M01S00778.sform +++|* ENTRY TERFUNCGEN = TRUE IF GENERIC FUNCTION KEY.
Line S00779 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01528 M02S00779.242l642 ---|* FUNCORD = ORDINAL OF FUNCTION KEY. 01529 M01S00299.242l642 +++|* TERFUNCORD = ORDINAL OF FUNCTION KEY. 01530 M01S00780.sform +++|* 01531 M01S00781.sform +++|* EXIT GENERIC = TRUE IF GENERIC FUNCTION KEY. 01532 M01S00782.sform +++|* ORDINAL = ORDINAL OF FUNCTION KEY. 01533 M01S00783.sform +++|# 01534 M01S00784.sform +++|ITEM GENERIC B; # GENERIC/APPLICATION KEY FLAG # 01535 M01S00785.sform +++|ITEM ORDINAL I; # FUNCTION KEY ORDINAL # 01536 M01S00786.sform +++| 01537 M01S00787.sform +++|GENERIC = TERFUNCGEN[0]; # RETURN GENERIC FLAG #
Line S00788 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01538 M02S00788.242l642 ---|ORDINAL = FUNCORD; # RETURN FUNCTION ORDINAL # 01539 M01S00300.242l642 +++|ORDINAL = TERFUNCORD[0]; # RETURN FUNCTION ORDINAL #
Line S00789 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform9 |
Seq # *Modification Id* Act ----------------------------+ 01540 M02S00789.sform9 ---|IF TERFUNCGEN[0] AND FUNCORD GR 16 THEN ORDINAL = 1; # RETURN NEXT # 01541 M01S00790.sform +++| 01542 M01S00791.sform +++|END # SFGETK # 01543 M01S00792.sform +++|CONTROL EJECT; 01544 M01S00793.sform +++| 01545 M01S00002.241l630 +++|PROC SFGETN$(MODEL,MLEN,MOFF); 01546 M01S00003.241l630 +++| 01547 M01S00004.241l630 +++|# TITLE SFGETN$ - GET TERMINAL MODEL NAME. # 01548 M01S00005.241l630 +++| 01549 M01S00006.241l630 +++|BEGIN # SFGETN$ # 01550 M01S00007.241l630 +++| 01551 M01S00008.241l630 +++|# 01552 M01S00009.241l630 +++|** SFGETN$ - GET TERMINAL MODEL NAME. 01553 M01S00010.241l630 +++|*
Line S00011 Modification History | |
---|---|
M01 (Added by) | 241l630 |
M02 (Updated by) | sform17 |
Seq # *Modification Id* Act ----------------------------+ 01554 M02S00011.sform17 ---|* SFGETN$ RETURNS THE TERMINAL MODEL NAME. 01555 M01S00001.sform17 +++|* SFGETN$ RETURNS THE TERMINAL MODEL NAME LEFT JUSTIFIED BLANK 01556 M01S00002.sform17 +++|* FILLED. IF MODEL NAME IS NOT FOUND, SPACES ARE RETURNED. 01557 M01S00012.241l630 +++|* 01558 M01S00013.241l630 +++|* PROC SFGETN$(MODEL,MLEN,MOFF) 01559 M01S00014.241l630 +++|* 01560 M01S00003.sform17 +++|* ENTRY MLEN = LENGTH OF MODEL NAME FIELD. 01561 M01S00004.sform17 +++|* MOFF = OFFSET OF MODEL NAME FIELD. 01562 M01S00005.sform17 +++|* 01563 M01S00015.241l630 +++|* EXIT MODEL = TERMINAL MODEL NAME.
Line S00016 Modification History | |
---|---|
M01 (Added by) | 241l630 |
M02 (Updated by) | sform17 |
Seq # *Modification Id* Act ----------------------------+ 01564 M02S00016.sform17 ---|* MLEN = LENGTH OF MODEL NAME.
Line S00017 Modification History | |
---|---|
M01 (Added by) | 241l630 |
M02 (Updated by) | sform17 |
Seq # *Modification Id* Act ----------------------------+ 01565 M02S00017.sform17 ---|* MOFF = OFFSET OF MODEL NAME. 01566 M01S00018.241l630 +++|* 01567 M01S00019.241l630 +++|* CALLS VDTITD. 01568 M01S00020.241l630 +++|# 01569 M01S00006.sform17 +++| 01570 M01S00007.sform17 +++|BASED ARRAY TEMP [0:0]; 01571 M01S00008.sform17 +++| BEGIN 01572 M01S00009.sform17 +++| ITEM STRING C(00,00,10); # MODEL NAME TEMPLATE # 01573 M01S00010.sform17 +++| END 01574 M01S00021.241l630 +++|ITEM MODEL C(6); # TERMINAL MODEL NAME # 01575 M01S00022.241l630 +++|ITEM MLEN I; # LENGTH OF MODEL PARAMETER # 01576 M01S00023.241l630 +++|ITEM MOFF I; # OFFSET INTO MODEL PARAMETER # 01577 M01S00011.sform17 +++|ITEM RETVAL C(6); # RETURNED VALUE # 01578 M01S00012.sform17 +++|ITEM OFFIND I; # OFFSET INDEX # 01579 M01S00013.sform17 +++|ITEM I I; # LOOP INDEX # 01580 M01S00024.241l630 +++|
Line S00025 Modification History | |
---|---|
M01 (Added by) | 241l630 |
M02 (Updated by) | sform17 |
Seq # *Modification Id* Act ----------------------------+ 01581 M02S00025.sform17 ---|MLEN = 6; # SET LENGTH #
Line S00026 Modification History | |
---|---|
M01 (Added by) | 241l630 |
M02 (Updated by) | sform17 |
Seq # *Modification Id* Act ----------------------------+ 01582 M02S00026.sform17 ---|VDTITD(MODEL); # GET MODEL NAME #
Line S00027 Modification History | |
---|---|
M01 (Added by) | 241l630 |
M02 (Updated by) | sform17 |
Seq # *Modification Id* Act ----------------------------+ 01583 M02S00027.sform17 ---|FOR MOFF = MLEN - 1 STEP -1 WHILE MOFF GQ 1 AND C<MOFF,1>MODEL EQ 0 DO 01584 M01S00014.sform17 +++|VDTITD(RETVAL); # GET MODEL NAME # 01585 M01S00015.sform17 +++|P<TEMP> = LOC(MODEL); 01586 M01S00016.sform17 +++|OFFIND = MOFF; 01587 M01S00017.sform17 +++|FOR I = 0 STEP 1 UNTIL MLEN - 1 DO 01588 M01S00028.241l630 +++| BEGIN # BLANK FILL MODEL NAME #
Line S00029 Modification History | |
---|---|
M01 (Added by) | 241l630 |
M02 (Updated by) | sform17 |
Seq # *Modification Id* Act ----------------------------+ 01589 M02S00029.sform17 ---| C<MOFF,1>MODEL = " ";
Line S00030 Modification History | |
---|---|
M01 (Added by) | 241l630 |
M02 (Updated by) | sform17 |
Seq # *Modification Id* Act ----------------------------+ 01590 M02S00030.sform17 ---| END
Line S00031 Modification History | |
---|---|
M01 (Added by) | 241l630 |
M02 (Updated by) | sform17 |
Seq # *Modification Id* Act ----------------------------+ 01591 M02S00031.sform17 ---|MOFF = 0; # SET OFFSET # 01592 M01S00018.sform17 +++| IF I GR 6 THEN # IF BEYOND POSSIBLE MODEL NAME # 01593 M01S00019.sform17 +++| C<OFFIND,1>STRING = " "; 01594 M01S00020.sform17 +++| ELSE 01595 M01S00021.sform17 +++| IF C<I,1>RETVAL EQ 0 THEN # IF BEYOND ACTUAL MODEL NAME # 01596 M01S00022.sform17 +++| C<OFFIND,1>STRING = " "; 01597 M01S00023.sform17 +++| ELSE 01598 M01S00024.sform17 +++| C<OFFIND,1>STRING = C<I,1>RETVAL; 01599 M01S00025.sform17 +++| OFFIND = OFFIND + 1; 01600 M01S00026.sform17 +++| IF (OFFIND GR 9) THEN 01601 M01S00027.sform17 +++| BEGIN # IF END OF CURRENT WORD # 01602 M01S00028.sform17 +++| OFFIND = 0; 01603 M01S00029.sform17 +++| P<TEMP> = P<TEMP> + 1; 01604 M01S00030.sform17 +++| END 01605 M01S00031.sform17 +++| END 01606 M01S00032.241l630 +++| 01607 M01S00033.241l630 +++|END # SFGETN$ # 01608 M01S00034.241l630 +++|CONTROL EJECT; 01609 M01S00035.241l630 +++| 01610 M01S00794.sform +++|PROC SFGETP$(VARNAME,VLEN,VOFF,OFFSET,ROWNUM); 01611 M01S00795.sform +++| 01612 M01S00796.sform +++|# TITLE SFGETP$ - GET LAST CURSOR POSITION. # 01613 M01S00797.sform +++| 01614 M01S00798.sform +++|BEGIN # SFGETP$ # 01615 M01S00799.sform +++| 01616 M01S00800.sform +++|# 01617 M01S00801.sform +++|** SFGETP$ - GET LAST CURSOR POSITION. 01618 M01S00036.241l630 +++|* 01619 M01S00037.241l630 +++|* SFGETP$ RETURNS VALUES THAT DEFINE THE LAST POSITION OF THE 01620 M01S00038.241l630 +++|* SCREEN CURSOR. 01621 M01S00802.sform +++|* 01622 M01S00803.sform +++|* PROC SFGETP$(VARNAME,VLEN,VOFF,OFFSET,ROWNUM) 01623 M01S00804.sform +++|* 01624 M01S00805.sform +++|* ENTRY VARNAME = LOCATION OF VARIABLE PARAMETER. 01625 M01S00806.sform +++|* VLEN = LENGTH OF VARNAME. 01626 M01S00807.sform +++|* VOFF = OFFSET OF VARNAME. 01627 M01S00808.sform +++|* 01628 M01S00809.sform +++|* EXIT VARNAME = VARIABLE NAME OF FIELD. 01629 M01S00810.sform +++|* OFFSET = OFFSET OF CURSOR IN FIELD. 01630 M01S00811.sform +++|* ROWNUM = ROW NUMBER OF FIELD. 01631 M01S00812.sform +++|* 01632 M01S00813.sform +++|* CALLS FFIELD. 01633 M01S00814.sform +++|# 01634 M01S00815.sform +++|ITEM VARNAME C(11); # VARIABLE NAME # 01635 M01S00816.sform +++|ITEM VLEN I; # LENGTH OF VARNAME PARAMETER # 01636 M01S00817.sform +++|ITEM VOFF I; # OFFSET INTO VARNAME PARAMETER # 01637 M01S00818.sform +++|ITEM OFFSET I; # OFFSET INTO FIELD # 01638 M01S00819.sform +++|ITEM ROWNUM I; # ROW NUMBER IN ARRAY # 01639 M01S00820.sform +++| 01640 M01S00821.sform +++|ITEM FIELD I; # FUNCTION FIELD # 01641 M01S00822.sform +++|ITEM I I; # LOOP COUNTER # 01642 M01S00823.sform +++|ITEM OUTSEARCH B=TRUE; # INCLUDE OUTPUT ONLY FIELDS # 01643 M01S00824.sform +++|ITEM VARIND I; # VARIABLE ORDINAL OF FIELD # 01644 M01S00825.sform +++| 01645 M01S00826.sform +++|IF VLEN LS 1 THEN VLEN = 7; # CRACK PARAMETER # 01646 M01S00827.sform +++|C<VOFF,VLEN>VARNAME = " "; 01647 M01S00828.sform +++| 01648 M01S00829.sform +++|ROWNUM = 0; # FIND FIELD #
Line S00830 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01649 M02S00830.242l642 ---|FFIELD(FUNCPOS,FIELD,OFFSET,OUTSEARCH); 01650 M01S00301.242l642 +++|FFIELD(TERFUNCPOS[0],FIELD,OFFSET,OUTSEARCH); 01651 M01S00831.sform +++| 01652 M01S00832.sform +++|IF VALIDFIELD THEN 01653 M01S00833.sform +++| BEGIN # IF FIELD FOUND # 01654 M01S00834.sform +++| OFFSET = OFFSET + 1; 01655 M01S00835.sform +++| VARIND = FLDVARORD[FIELD]; 01656 M01S00836.sform +++| C<VOFF,VLEN>VARNAME = VARNME[VARIND]; 01657 M01S00837.sform +++| IF VARARRORD[VARIND] NQ 0 THEN 01658 M01S00838.sform +++| BEGIN # IF ARRAY MEMBER # 01659 M01S00839.sform +++| ROWNUM = VARROWNUM[VARIND] + 1; 01660 M01S00840.sform +++| END 01661 M01S00841.sform +++| END 01662 M01S00842.sform +++| 01663 M01S00843.sform +++|END # SFGETP$ # 01664 M01S00844.sform +++|CONTROL EJECT; 01665 M01S00845.sform +++| 01666 M01S00846.sform +++|PROC SFGETR$(VARNAME,VLEN,VOFF,VALUE); 01667 M01S00847.sform +++| 01668 M01S00848.sform +++|# TITLE SFGETR$ - GET REAL VALUE. # 01669 M01S00849.sform +++| 01670 M01S00850.sform +++|BEGIN # SFGETR$ # 01671 M01S00851.sform +++| 01672 M01S00852.sform +++|# 01673 M01S00853.sform +++|** SFGETR$ - GET REAL VALUE. 01674 M01S00854.sform +++|* 01675 M01S00855.sform +++|* SFGETR$ RETURNS THE REAL NUMERIC VALUE OF THE FIELD 01676 M01S00856.sform +++|* SPECIFIED BY VARNAME. 01677 M01S00857.sform +++|* 01678 M01S00858.sform +++|* PROC SFGETR$(VARNAME,VLEN,VOFF,VALUE) 01679 M01S00859.sform +++|* 01680 M01S00860.sform +++|* ENTRY VARNAME = VARIABLE NAME OF FIELD. 01681 M01S00861.sform +++|* VLEN = LENGTH OF VARNAME. 01682 M01S00862.sform +++|* VOFF = OFFSET OF VARNAME. 01683 M01S00863.sform +++|* 01684 M01S00864.sform +++|* EXIT VALUE = REAL VALUE OF SPECIFIED FIELD. 01685 M01S00865.sform +++|* 01686 M01S00866.sform +++|* CALLS DATEVL, GFIELD, NCHECK. 01687 M01S00867.sform +++|# 01688 M01S00868.sform +++|ITEM VARNAME C(11); # VARIABLE NAME # 01689 M01S00869.sform +++|ITEM VLEN I; # LENGTH OF VARNAME PARAMETER # 01690 M01S00870.sform +++|ITEM VOFF I; # OFFSET INTO VARNAME PARAMETER # 01691 M01S00871.sform +++|ITEM VALUE R; # VALUE OF INPUT # 01692 M01S00872.sform +++| 01693 M01S00873.sform +++|ITEM ALLBLANK B; # ALL CHARACTERS IN FIELD BLANK # 01694 M01S00874.sform +++|ITEM CURRENCY B; # TRUE IF DOLLAR SIGN INPUT # 01695 M01S00875.sform +++|ITEM ERRORVAL R = 0; # RETURNED IF ERROR IN FIELD # 01696 M01S00876.sform +++|ITEM EVALUE I; # EXPONENT VALUE # 01697 M01S00877.sform +++|ITEM FLDIND I; # FIELD ORDINAL # 01698 M01S00878.sform +++|ITEM FORMAT I; # FORMAT OF INPUT # 01699 M01S00879.sform +++|ITEM FPSTAT I; # GFP OVERFLOW STATUS # 01700 M01S00880.sform +++|ITEM HOLDVALID B; # HOLD FLDVALID VALUE # 01701 M01S00881.sform +++|ITEM I I; # LOOP COUNTER # 01702 M01S00882.sform +++|ITEM IVALUE I; # INTEGER VALUE #
Line S00883 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 01703 M02S00883.242l642 ---|ITEM USEROW B = FALSE; # DO NOT USE CURSORROW # 01704 M01S00302.242l642 +++|ITEM USEROW B = FALSE; # DO NOT USE TERCURSROW # 01705 M01S00884.sform +++|ITEM VNAME C(7); # VARIABLE NAME LEFT JUSTIFIED # 01706 M01S00885.sform +++| 01707 M01S00886.sform +++|IF VLEN LS 1 THEN VLEN = 7; # CRACK PARAMETER # 01708 M01S00887.sform +++|VNAME = C<VOFF,VLEN>VARNAME; 01709 M01S00888.sform +++| 01710 M01S00889.sform +++|GFIELD(VNAME,USEROW,FLDIND); # GET ASSOCIATED FIELD # 01711 M01S00890.sform +++|IF FLDIND EQ -1 THEN GOTO REALERROR; # FIELD NOT FOUND # 01712 M01S00891.sform +++| 01713 M01S00892.sform +++|ALLBLANK = TRUE; 01714 M01S00893.sform +++|FOR I = 0 STEP 1 WHILE ALLBLANK AND I LQ FLDLENGTH[FLDIND] -1 DO 01715 M01S00894.sform +++| BEGIN # CHECK IF BLANK FIELD # 01716 M01S00895.sform +++| IF NEXTCHAR(FLDIND,I) NQ BLANK THEN ALLBLANK = FALSE; 01717 M01S00896.sform +++| END 01718 M01S00897.sform +++|IF ALLBLANK THEN 01719 M01S00898.sform +++| BEGIN # BLANK FIELD # 01720 M01S00899.sform +++| VALUE = 0; 01721 M01S00900.sform +++| RETURN; 01722 M01S00901.sform +++| END 01723 M01S00902.sform +++| 01724 M01S00903.sform +++|HOLDVALID = FLDVALID[FLDIND]; # SAVE FLDVALID # 01725 M01S00904.sform +++|FLDVALID[FLDIND] = TRUE; 01726 M01S00905.sform +++| 01727 M01S00906.sform +++|IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"Y" 01728 M01S00907.sform +++| OR VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"M" 01729 M01S00908.sform +++| OR VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"D" THEN 01730 M01S00909.sform +++| BEGIN # IF DATE FORMAT # 01731 M01S00910.sform +++| DATEVL(FLDIND,IVALUE); # GET VALUE # 01732 M01S00911.sform +++| EVALUE = 0; 01733 M01S00912.sform +++| END 01734 M01S00913.sform +++|ELSE 01735 M01S00914.sform +++| BEGIN # GET NUMERIC VALUE # 01736 M01S00915.sform +++| NCHECK(FLDIND,IVALUE,EVALUE,FORMAT,CURRENCY); 01737 M01S00916.sform +++| END 01738 M01S00917.sform +++| 01739 M01S00918.sform +++|IF NOT FLDVALID[FLDIND] OR FORMAT EQ FORMTYPE"BAD"THEN 01740 M01S00919.sform +++| BEGIN # ERRORS IN INPUT # 01741 M01S00920.sform +++| GOTO REALERROR; 01742 M01S00921.sform +++| END 01743 M01S00922.sform +++|FLDVALID[FLDIND] = HOLDVALID; 01744 M01S00923.sform +++| 01745 M01S00924.sform +++|FPSTAT = GFP(IVALUE,EVALUE,VALUE); # GENERATE REAL VALUE # 01746 M01S00925.sform +++|IF FPSTAT EQ 0 THEN RETURN; # IF NO OVERFLOW ERROR # 01747 M01S00926.sform +++| 01748 M01S00927.sform +++|REALERROR: # CANNOT RETURN VALUE # 01749 M01S00928.sform +++| 01750 M01S00929.sform +++| IF FLDIND NQ -1 THEN FLDVALID[FLDIND] = HOLDVALID; 01751 M01S00930.sform +++| VALUE = ERRORVAL; 01752 M01S00931.sform +++| 01753 M01S00932.sform +++|END # SFGETR$ # 01754 M01S00303.242l642 +++|*IF DEF,QTRM 01755 M01S00304.242l642 +++|CONTROL EJECT; 01756 M01S00305.242l642 +++| 01757 M01S00306.242l642 +++|PROC SFMODE$(MODE,MODEL,MLEN,MOFF); 01758 M01S00307.242l642 +++| 01759 M01S00308.242l642 +++|# TITLE SFMODE$ - QTRM MODE SWITCHING FUNCTION. # 01760 M01S00309.242l642 +++| 01761 M01S00310.242l642 +++|BEGIN # SFMODE$ # 01762 M01S00311.242l642 +++| 01763 M01S00312.242l642 +++|# 01764 M01S00313.242l642 +++|** SFMODE$ - QTRM MODE SWITCHING FUNCTION. 01765 M01S00314.242l642 +++|* 01766 M01S00315.242l642 +++|* THIS PROCEDURE SWITCHES A TERMINAL TO AND FROM SCREEN MODE. IT 01767 M01S00316.242l642 +++|* INTERFACES TO COBOL5 AND FTN5 APPLICATION PROGRAMS THROUGH A 01768 M01S00317.242l642 +++|* COMPASS INTERFACE CALLED SFMODE. 01769 M01S00318.242l642 +++|* 01770 M01S00319.242l642 +++|* PROC SFMODE$(MODE,MODEL,MLEN,MOFF) 01771 M01S00320.242l642 +++|* 01772 M01S00321.242l642 +++|* ENTRY MODE = 0, IF REQUESTED MODE IS SCREEN. 01773 M01S00322.242l642 +++|* 1, IF REQUESTED MODE IS LINE. 01774 M01S00323.242l642 +++|* MODEL = TERMINAL MODEL NAME. 01775 M01S00324.242l642 +++|* MLEN = LENGTH OF MODEL NAME. 01776 M01S00325.242l642 +++|* MOFF = OFFSET OF MODEL NAME. 01777 M01S00326.242l642 +++|* 01778 M01S00327.242l642 +++|* EXIT THE NIT RETURN CODE FIELD IN THE NIT WILL BE SET TO 0 IF 01779 M01S00328.242l642 +++|* THE REQUEST WAS SUCCESSFUL, NON-ZERO IF NOT. 01780 M01S00329.242l642 +++|# 01781 M01S00330.242l642 +++|ITEM MODE I; # REQUESTED MODE # 01782 M01S00331.242l642 +++|ITEM MODEL C(7); # TERMINAL MODEL (OR 'NONE') # 01783 M01S00332.242l642 +++|ITEM MLEN I; # LENGTH OF MODEL NAME # 01784 M01S00333.242l642 +++|ITEM MOFF I; # OFFSET OF MODEL NAME # 01785 M01S00334.242l642 +++| 01786 M01S00335.242l642 +++|ITEM I I; # SCRATCH VARIABLE # 01787 M01S00336.242l642 +++|ITEM MODELNAME C(7); # TERMINAL MODEL NAME # 01788 M01S00337.242l642 +++| 01789 M01S00338.242l642 +++|IF MLEN LS 1 THEN MLEN = 7; # CRACK PARAMETER # 01790 M01S00339.242l642 +++|MODELNAME = C<MOFF,MLEN>MODEL; 01791 M01S00340.242l642 +++| 01792 M01S00341.242l642 +++|IF NIT$STATE[NIT$CON] NQ 2 THEN 01793 M01S00342.242l642 +++| BEGIN # IF CMM BLOCKS TO CLEAR UP # 01794 M01S00343.242l642 +++| NIT$RC = NITRTC"OK"; 01795 M01S00344.242l642 +++| IF NIT$PCT [NIT$CON] EQ 0 THEN RETURN; 01796 M01S00345.242l642 +++| P<PCT> = NIT$PCT [NIT$CON]; 01797 M01S00346.242l642 +++| IF PCT$VRDATA NQ 0 THEN CMMFRF (PCT$VRDATA); 01798 M01S00347.242l642 +++| PCT$VRDATA = 0; # INSURE THIS IS DONE ONLY ONCE # 01799 M01S00348.242l642 +++| CMMFRF (NIT$PCT[NIT$CON]); 01800 M01S00349.242l642 +++| NIT$PCT[NIT$CON] = 0; 01801 M01S00350.242l642 +++| RETURN; # RETURN # 01802 M01S00351.242l642 +++| END 01803 M01S00352.242l642 +++| 01804 M01S00353.242l642 +++|IF NIT$PCT[NIT$CON] EQ 0 THEN 01805 M01S00354.242l642 +++| BEGIN # IF CMM BLOCK NEEDED # 01806 M01S00355.242l642 +++| CMMALF (PCTSIZE,0,0,I); # GET A BLOCK FOR THE PCT # 01807 M01S00356.242l642 +++| NIT$PCT[NIT$CON] = I; 01808 M01S00357.242l642 +++| P<PCT> = I; 01809 M01S00358.242l642 +++| FOR I = 0 STEP 1 UNTIL PCTSIZE - 1 DO 01810 M01S00359.242l642 +++| BEGIN # ZERO THE ENTIRE PCT # 01811 M01S00360.242l642 +++| PCT$WD0[I] = 0; 01812 M01S00361.242l642 +++| END 01813 M01S00362.242l642 +++| 01814 M01S00363.242l642 +++| FOR I = 0 STEP 1 UNTIL SFORMSIZE - 1 DO 01815 M01S00364.242l642 +++| BEGIN # INITIALIZE TERMSTAT AREA # 01816 M01S00365.242l642 +++| TERMSTATWD[I] = TERINITHLD[I]; 01817 M01S00366.242l642 +++| END 01818 M01S00367.242l642 +++| FOR I = 0 STEP 1 UNTIL VTERMSIZE - 1 DO 01819 M01S00368.242l642 +++| BEGIN 01820 M01S00369.242l642 +++| COMVDT$WD0[I] = VDTINITHLD[I]; # INIT VDT AREAS # 01821 M01S00370.242l642 +++| END 01822 M01S00371.242l642 +++| 01823 M01S00372.242l642 +++| TERMODNAME[0] = " "; 01824 M01S00373.242l642 +++| TERACTPANL[0] = " "; 01825 M01S00374.242l642 +++| TERACTPLTI[0] = 0; 01826 M01S00375.242l642 +++| TERFUNCPOS[0] = 0; 01827 M01S00376.242l642 +++| TERNUMCOLS[0] = 0; 01828 M01S00377.242l642 +++| TERNUMLNES[0] = 0; 01829 M01S00378.242l642 +++| 01830 M01S00379.242l642 +++| P<PLTABLE> = LOC(PLT); # INITIALIZE THE NIT PLT AREA # 01831 M01S00380.242l642 +++| I = PLTNUMENT[0]; 01832 M01S00381.242l642 +++| P<PLTABLE> = NIT$PCT[NIT$CON] + PLTOFFSET; 01833 M01S00382.242l642 +++| FOR I = 1 STEP 1 UNTIL 10 DO 01834 M01S00383.242l642 +++| BEGIN # ZERO PLT WORD # 01835 M01S00384.242l642 +++| PLTWORDONE[I] = 0; 01836 M01S00385.242l642 +++| PLTWORDTWO[I] = 0; 01837 M01S00386.242l642 +++| END 01838 M01S00387.242l642 +++| PLTENTRYNM[0] = 10; 01839 M01S00388.242l642 +++| IF MODELNAME NQ "NONE" THEN # SET MODEL # 01840 M01S00389.242l642 +++| NIT$TRNAM[NIT$CON] = MODELNAME; 01841 M01S00390.242l642 +++| IF MODELNAME EQ "NONE " THEN NIT$MODEL [NIT$CON] = 0; 01842 M01S00391.242l642 +++| ELSE IF MODELNAME EQ "721 " THEN NIT$MODEL [NIT$CON] = 2; 01843 M01S00392.242l642 +++| ELSE NIT$MODEL [NIT$CON] = 1; 01844 M01S00393.242l642 +++| 01845 M01S00394.242l642 +++| TERQTRMSOL[0] = MODE NQ 1; # SAVE SCREEN/LINE MODE # 01846 M01S00395.242l642 +++| END 01847 M01S00396.242l642 +++| 01848 M01S00397.242l642 +++|END # SFMODE$ # 01849 M01S00398.242l642 +++|CONTROL EJECT; 01850 M01S00399.242l642 +++| 01851 M01S00400.242l642 +++|PROC SFNQUE$(QNAME,QLEN,QOFF,BUFFER,RC); 01852 M01S00401.242l642 +++| 01853 M01S00402.242l642 +++|# TITLE SFNQUE$ - ENQUEUE A BLOCK FOR A TERMINAL (ACN). # 01854 M01S00403.242l642 +++| 01855 M01S00404.242l642 +++|BEGIN # SFNQUE$ # 01856 M01S00405.242l642 +++| 01857 M01S00406.242l642 +++|# 01858 M01S00407.242l642 +++|** SFNQUE$ - ENQUEUE A BLOCK FOR A TERMINAL (ACN). 01859 M01S00408.242l642 +++|* 01860 M01S00409.242l642 +++|* THIS PROCEDURE ACCUMULATES DATA INTO A QUEUE FOR A SPECIFIED 01861 M01S00410.242l642 +++|* TERMINAL. VALID QUEUE NAMES ARE *GET* AND *PUT*. A BLOCK OF 01862 M01S00411.242l642 +++|* 1600 WORDS IS ALLOCATED FOR EACH QUEUE. EACH SFNQUE$ CALL ADDS 01863 M01S00412.242l642 +++|* DATA TO THE QUEUE WITH THE SPECIFIED QNAME AND TERMINAL NUMBER. 01864 M01S00413.242l642 +++|* IT INTERFACES TO COBOL5 AND FTN5 APPLICATION PROGRAMS THROUGH 01865 M01S00414.242l642 +++|* A COMPASS INTERFACE CALLED SFNQUE. 01866 M01S00415.242l642 +++|* 01867 M01S00416.242l642 +++|* PROC SFNQUE$(QNAME,QLEN,QOFF,BUFFER,RC) 01868 M01S00417.242l642 +++|* 01869 M01S00418.242l642 +++|* ENTRY QNAME = QUEUE TO PLACE DATA INTO (GET OR PUT). 01870 M01S00419.242l642 +++|* QLEN = LENGTH OF QUEUE NAME. 01871 M01S00420.242l642 +++|* QOFF = OFFSET OF QUEUE NAME. 01872 M01S00421.242l642 +++|* BUFFER = DATA TO ADD TO THE QUEUE. 01873 M01S00422.242l642 +++|* RC = RETURN CODE. 01874 M01S00423.242l642 +++|* NIT$CTLC = COUNT (IN 12 BIT CHARACTERS) IN BUFFER. 01875 M01S00424.242l642 +++|* 01876 M01S00425.242l642 +++|* EXIT RC = 0, IF DATA ENQUEUED (NO ERROR). 01877 M01S00426.242l642 +++|* 1, IF DATA NOT ENQUEUED. 01878 M01S00427.242l642 +++|* 01879 M01S00428.242l642 +++|* CALLS CMMALF. 01880 M01S00429.242l642 +++|# 01881 M01S00430.242l642 +++|ITEM QNAME C(7); # QUEUE TO PLACE DATA # 01882 M01S00431.242l642 +++|ITEM QLEN I; # LENGTH OF QUEUE NAME # 01883 M01S00432.242l642 +++|ITEM QOFF I; # OFFSET OF QUEUE NAME # 01884 M01S00433.242l642 +++|ITEM BUFFER U; # DATA TO ADD TO QUEUE # 01885 M01S00434.242l642 +++|ITEM RC I; # RETURN CODE # 01886 M01S00435.242l642 +++| 01887 M01S00436.242l642 +++|BASED ARRAY B$BUFF [0:0] P(1); # BUFFER # 01888 M01S00437.242l642 +++| BEGIN 01889 M01S00438.242l642 +++| ITEM B$WD0 U(00,00,60); # BUFFER WORD (INTEGER) # 01890 M01S00439.242l642 +++| END 01891 M01S00440.242l642 +++| 01892 M01S00441.242l642 +++|ITEM BIT I; # BIT POSITION # 01893 M01S00442.242l642 +++|ITEM B$CURBIT I; # CURRENT BIT # 01894 M01S00443.242l642 +++|ITEM B$CURWORD I; # CURRENT WORD # 01895 M01S00444.242l642 +++|ITEM ENTCT I = 0; # QTRM # 01896 M01S00445.242l642 +++|ITEM I I = 0; # LOOP VARIABLE # 01897 M01S00446.242l642 +++|ITEM QUEUENAME C(7); # QUEUE TO PLACE DATA # 01898 M01S00447.242l642 +++|ITEM RCC I; # RETURN CODE # 01899 M01S00448.242l642 +++|ITEM WORD I; # BUFFER WORD # 01900 M01S00449.242l642 +++| 01901 M01S00450.242l642 +++|IF QLEN LS 1 THEN QLEN = 7; # LEFT JUSTIFY QUEUE NAME # 01902 M01S00451.242l642 +++|QUEUENAME = C<QOFF,QLEN>QNAME; 01903 M01S00452.242l642 +++| 01904 M01S00453.242l642 +++|P<B$BUFF> = LOC(BUFFER); 01905 M01S00454.242l642 +++|B$CURBIT = 0; # START AT BEGINNING OF BUFFER # 01906 M01S00455.242l642 +++|B$CURWORD = 0; 01907 M01S00456.242l642 +++|ENTCT = ENTCT + 1; 01908 M01S00457.242l642 +++| 01909 M01S00458.242l642 +++|SFNQUE1: 01910 M01S00459.242l642 +++| 01911 M01S00460.242l642 +++| I = 0; 01912 M01S00461.242l642 +++| P<Q$HEADER> = CHAIN; 01913 M01S00462.242l642 +++| WHYLE P<Q$HEADER> NQ 0 DO 01914 M01S00463.242l642 +++| BEGIN # FIND QUEUE NAME FOR THIS ACN # 01915 M01S00464.242l642 +++| IF (( NIT$CON EQ Q$ACN ) AND 01916 M01S00465.242l642 +++| ( C<0,3>QNAME EQ C<0,3>Q$NAME )) THEN 01917 M01S00466.242l642 +++| IF NIT$CON EQ Q$ACN AND QUEUENAME EQ Q$NAME THEN 01918 M01S00467.242l642 +++| BEGIN # IF FOUND # 01919 M01S00468.242l642 +++| P<Q$BUFFER> = P<Q$HEADER> + Q$HEADLEN; 01920 M01S00469.242l642 +++| FOR I = 1 STEP 1 UNTIL NIT$CTLC DO 01921 M01S00470.242l642 +++| BEGIN # ADD DATA TO QUEUE # 01922 M01S00471.242l642 +++| WORD = Q$INCHAR / 5; 01923 M01S00472.242l642 +++| IF WORD GQ Q$SIZE THEN 01924 M01S00473.242l642 +++| BEGIN # IF BLOCK OVERFLOW # 01925 M01S00474.242l642 +++| RC = 1; # SET ERROR # 01926 M01S00475.242l642 +++| RETURN; # RETURN # 01927 M01S00476.242l642 +++| END 01928 M01S00477.242l642 +++| BIT = (Q$INCHAR - (WORD * 5)) * 12; 01929 M01S00478.242l642 +++| B<BIT,12>Q$WORD[WORD] = B<B$CURBIT,12>B$WD0[B$CURWORD]; 01930 M01S00479.242l642 +++| Q$INCHAR = Q$INCHAR + 1; 01931 M01S00480.242l642 +++| B$CURBIT = B$CURBIT + 12; 01932 M01S00481.242l642 +++| IF B$CURBIT GQ 60 THEN 01933 M01S00482.242l642 +++| BEGIN # IF FULL WORD # 01934 M01S00483.242l642 +++| B$CURBIT = 0; 01935 M01S00484.242l642 +++| B$CURWORD = B$CURWORD + 1; 01936 M01S00485.242l642 +++| END 01937 M01S00486.242l642 +++| END 01938 M01S00487.242l642 +++| RC = 0; # CLEAR RETURN CODE # 01939 M01S00488.242l642 +++| RETURN; # RETURN # 01940 M01S00489.242l642 +++| END 01941 M01S00490.242l642 +++| 01942 M01S00491.242l642 +++| I = P<Q$HEADER>; # QUEUE DOESN-T EXIST, CREATE IT # 01943 M01S00492.242l642 +++| P<Q$HEADER> = Q$FORWARD; # ADD BLOCK TO END OF CHAIN # 01944 M01S00493.242l642 +++| END 01945 M01S00494.242l642 +++| 01946 M01S00495.242l642 +++| IF CHAIN EQ 0 THEN 01947 M01S00496.242l642 +++| BEGIN # IF NO CHAIN HEADER # 01948 M01S00497.242l642 +++| P<Q$HEADER> = LOC(CHAIN); 01949 M01S00498.242l642 +++| END 01950 M01S00499.242l642 +++| ELSE 01951 M01S00500.242l642 +++| BEGIN # CHAIN HEADER EXISTS # 01952 M01S00501.242l642 +++| P<Q$HEADER> = I; 01953 M01S00502.242l642 +++| END 01954 M01S00503.242l642 +++| 01955 M01S00504.242l642 +++| CMMALF (Q$BLKSIZE,0,0,RCC); 01956 M01S00505.242l642 +++| Q$FORWARD = RCC; 01957 M01S00506.242l642 +++| I = P<Q$HEADER>; 01958 M01S00507.242l642 +++| P<Q$HEADER> = Q$FORWARD; 01959 M01S00508.242l642 +++| Q$WD0 = 0; # CLEAR THE ENTRY HEADER AREA # 01960 M01S00509.242l642 +++| Q$WD1 = 0; 01961 M01S00510.242l642 +++| Q$WD2 = 0; 01962 M01S00511.242l642 +++| Q$BACK = I; # SET THE BACKWARD POINTER # 01963 M01S00512.242l642 +++| Q$ACN = NIT$CON; # SET THE TERMINAL ACN # 01964 M01S00513.242l642 +++| Q$NAME = QUEUENAME; # SET QUEUE NAME # 01965 M01S00514.242l642 +++| Q$SIZE = Q$BLKSIZE - Q$HEADLEN; 01966 M01S00515.242l642 +++| Q$CHARSET = NIT$CH$SET; # DEFAULT IS 12 BIT ASCII # 01967 M01S00516.242l642 +++| 01968 M01S00517.242l642 +++| GOTO SFNQUE1; # ADD THE DATA TO THE QUEUE # 01969 M01S00518.242l642 +++| 01970 M01S00519.242l642 +++|END # SFNQUE$ # 01971 M01S00520.242l642 +++|*ENDIF 01972 M01S00933.sform +++|CONTROL EJECT; 01973 M01S00934.sform +++| 01974 M01S00003.ns2619 +++|PROC SFLUSH$; 01975 M01S00004.ns2619 +++| 01976 M01S00005.ns2619 +++|# TITLE SFLUSH$ - FLUSH DATA ALREADY WRITTEN TO SCREEN # 01977 M01S00006.ns2619 +++| 01978 M01S00007.ns2619 +++|BEGIN # SFLUSH$ # 01979 M01S00008.ns2619 +++| 01980 M01S00009.ns2619 +++|# 01981 M01S00010.ns2619 +++|** SFLUSH$ - FLUSH DATA ALREADY WRITTEN TO SCREEN. 01982 M01S00011.ns2619 +++|* 01983 M01S00012.ns2619 +++|* THIS PROCEDURE FORCES DATA WHICH HAS ALREADY BEEN WRITTEN TO THE 01984 M01S00013.ns2619 +++|* SCREEN BY MEANS OF *SFSWRI$* TO BE DISPLAYED UPON THE SCREEN, BY 01985 M01S00014.ns2619 +++|* WRITING AN *EOR* TO THE SCREEN. NO PARAMETERS ARE REQUIRED. 01986 M01S00015.ns2619 +++|* 01987 M01S00016.ns2619 +++|* PROC SFLUSH$ 01988 M01S00017.ns2619 +++|* 01989 M01S00018.ns2619 +++|* ENTRY NONE. 01990 M01S00019.ns2619 +++|* 01991 M01S00020.ns2619 +++|* EXIT PREVIOUSLY WRITTEN PANEL DATA FLUSHED TO SCREEN. 01992 M01S00021.ns2619 +++|* 01993 M01S00022.ns2619 +++|* CALLS VDTFOS. 01994 M01S00023.ns2619 +++|* 01995 M01S00024.ns2619 +++|* USES TERVDTBOOC. 01996 M01S00025.ns2619 +++|* 01997 M01S00026.ns2619 +++|# 01998 M01S00027.ns2619 +++|*IF UNDEF,QTRM 01999 M01S00028.ns2619 +++|ITEM RECALL I = 1; # RECALL PARAMETER FOR VDTFOS # 02000 M01S00029.ns2619 +++| 02001 M01S00030.ns2619 +++|IF TERVDTBOOC[0] THEN 02002 M01S00031.ns2619 +++| BEGIN # IF DATA IN BUFFER TO FLUSH # 02003 M01S00032.ns2619 +++| IF NOT TERNOVDTEO[0] THEN VDTEOO; 02004 M01S00033.ns2619 +++| TERVDTBOOC[0] = FALSE; 02005 M01S00034.ns2619 +++| VDTFOS(RECALL); # FLUSH OUTPUT TO SCREEN, RECALL # 02006 M01S00035.ns2619 +++| END 02007 M01S00036.ns2619 +++|*ELSE 02008 M01S00037.ns2619 +++| 02009 M01S00038.ns2619 +++|NIT$RC = NITRTC"OK"; # SET RETURN CODE # 02010 M01S00039.ns2619 +++|*ENDIF 02011 M01S00040.ns2619 +++| 02012 M01S00041.ns2619 +++|END # SFLUSH$ # 02013 M01S00042.ns2619 +++|CONTROL EJECT; 02014 M01S00043.ns2619 +++| 02015 M01S00935.sform +++|PROC SFOPEN$(NAME,NLENGTH,NOFFSET,OPENSTAT); 02016 M01S00936.sform +++| 02017 M01S00937.sform +++|# TITLE SFOPEN$ - OPEN PANEL. # 02018 M01S00938.sform +++| 02019 M01S00939.sform +++|BEGIN # SFOPEN$ # 02020 M01S00940.sform +++| 02021 M01S00941.sform +++|# 02022 M01S00942.sform +++|** SFOPEN$ - OPEN PANEL. 02023 M01S00943.sform +++|*
Line S00944 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform9 |
Seq # *Modification Id* Act ----------------------------+ 02024 M02S00944.sform9 ---|* THIS PROCEDURE CALLS *CHKTRM* TO CHECK TO SEE IF THE TERMINAL 02025 M01S00001.sform9 +++|* THIS PROCEDURE CHECKS (VIA VDTGSL/VDTITD) TO SEE IF THE TERMINAL 02026 M01S00945.sform +++|* IN USE IS SUPPORTED UNDER SCREEN FORMATTING (UNLESS THIS HAS 02027 M01S00946.sform +++|* ALREADY BEEN DONE BY A PREVIOUS CALL TO SFOPEN.) IF THE TERM- 02028 M01S00947.sform +++|* INAL IS SUPPORTED THEN *SFLOAD* IS CALLED TO LOAD THE PANEL 02029 M01S00948.sform +++|* VIA THE FAST DYNAMIC LOADER (EXCEPT FOR THOSE PANELS THAT ARE 02030 M01S00949.sform +++|* STATICALLY LOADED AND THUS ALWAYS PRESENT IN MEMORY) AND THE 02031 M01S00950.sform +++|* PANEL LOAD TABLE IS UPDATED IF THE LOAD WAS SUCCESSFUL. THE 02032 M01S00951.sform +++|* STATUS OF THE OPEN IS RETURNED TO THE CALLING APPLICATION IN 02033 M01S00952.sform +++|* ALL CASES INDICATING THAT THE OPEN WAS SUCCESSFUL OR AN ERROR 02034 M01S00953.sform +++|* CODE INDICATING WHY NOT. SFOPEN$ INTERFACES TO COBOL AND FOR- 02035 M01S00954.sform +++|* TRAN PROGRAMS THROUGH A COMPASS INTERFACE MODULE CALLED SFOPEN. 02036 M01S00955.sform +++|* 02037 M01S00956.sform +++|* PROC SFOPEN$(NAME,NLENGTH,NOFFSET,OPENSTAT) 02038 M01S00957.sform +++|* 02039 M01S00958.sform +++|* ENTRY NAME = NAME OF PANEL TO BE OPENED. 02040 M01S00959.sform +++|* NLENGTH = LENGTH IN SIX BIT CHARACTERS. 02041 M01S00960.sform +++|* NOFFSET = OFFSET INTO NAME. 02042 M01S00961.sform +++|* 02043 M01S00962.sform +++|* EXIT PANEL OPENED IF POSSIBLE, OPENSTAT SET REGARDLESS. 02044 M01S00963.sform +++|*
Line S00964 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02045 M02S00964.242l642 ---|* CALLS CHKTRM, SETSRN, SFLOAD. 02046 M01S00521.242l642 +++|*IF UNDEF,QTRM 02047 M01S00522.242l642 +++|* CALLS SETSRN, SFLOAD, VDTITD, VDTGSL. 02048 M01S00523.242l642 +++|*ELSE 02049 M01S00524.242l642 +++|* CALLS SETFSF, SETSRN, SFLOAD, VDTITD. 02050 M01S00525.242l642 +++|*ENDIF 02051 M01S00965.sform +++|* 02052 M01S00966.sform +++|* NOTES OPENSTAT IS SET BY SFOPEN IN SOME CASES AND IS ALSO 02053 M01S00967.sform +++|* A PARAMETER ON THE CALL TO SFLOAD IN THOSE INSTANCES 02054 M01S00968.sform +++|* WHERE THE FAST DYNAMIC LOADER IS TO BE CALLED. 02055 M01S00969.sform +++|* 02056 M01S00970.sform +++|* OPENSTAT SIGNIFICANCE PROCEDURE 02057 M01S00971.sform +++|* ..................................................... 02058 M01S00972.sform +++|* . 0 . NO ERROR . BOTH . 02059 M01S00973.sform +++|* . 1 . UNKNOWN PANEL NAME . SFLOAD . 02060 M01S00974.sform +++|* . 2 . INCORRECT CAPSULE FORMAT . SFLOAD . 02061 M01S00975.sform +++|* . 3 . PLT FULL (TOO MANY OPEN PANELS) . SFOPEN . 02062 M01S00976.sform +++|* . 4 . PANEL ALREADY OPEN . SFOPEN . 02063 M01S00977.sform +++|* . 5 . INTERNAL (FAST DYNAMIC LOADER) . SFLOAD . 02064 M01S00978.sform +++|* . 6 . NO SCREEN COMMAND ISSUED . SFOPEN . 02065 M01S00979.sform +++|* . 7 . UNSUPPORTED TERMINAL . SFOPEN . 02066 M01S00980.sform +++|* ..................................................... 02067 M01S00981.sform +++|# 02068 M01S00982.sform +++|ITEM NAME C(11); # NAME OF PANEL TO OPEN # 02069 M01S00983.sform +++|ITEM NLENGTH I; # LENGTH IN SIX BIT CHARACTERS # 02070 M01S00984.sform +++|ITEM NOFFSET I; # OFFSET INTO NAME # 02071 M01S00985.sform +++|ITEM OPENSTAT I; # RETURNS STATUS TO APPLICATION # 02072 M01S00986.sform +++| 02073 M01S00526.242l642 +++|ITEM MODELNAME C(7); # MODEL NAME FOR VDTITD CALL # 02074 M01S00987.sform +++|ITEM NAMEINDEX I; # INDEX OF PANEL IF FOUND # 02075 M01S00988.sform +++|ITEM PANELADDR I; # MEMORY ADDRESS OF PANEL # 02076 M01S00989.sform +++|ITEM PANELNAME C(7); # PANEL NAME, LEFT JUSTIFIED # 02077 M01S00990.sform +++|ITEM PLTINDEX I; # INDEX INTO PANEL LOAD TABLE # 02078 M01S00991.sform +++|ITEM SCREEN I = 1; # INDICATES SCREEN MODE TO VDT # 02079 M01S00992.sform +++|ITEM SCREENDIM I; # SCREEN DIMENSIONS FOR SETSRN # 02080 M01S00527.242l642 +++|*IF DEF,QTRM 02081 M01S00528.242l642 +++|ITEM QTPLTINDEX I; # INDEX INTO QTRM USERS PLT # 02082 M01S00529.242l642 +++|*ENDIF 02083 M01S00993.sform +++|
Line S00994 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02084 M02S00994.ns2275 ---|OPENSTAT = 0; # CLEAR OPEN STATUS #
Line S00995 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02085 M02S00995.ns2275 ---|IF TERMMODEL EQ -1 THEN
Line S00996 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02086 M02S00996.ns2275 ---| BEGIN # IF NO CHECK FOR SUPPORT YET #
Line S00997 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02087 M02S00997.ns2275 ---| CHKTRM(OPENSTAT); # CHECK FOR SUPPORTED TERMINAL # 02088 M01S00012.ns2275 +++|OPENSTAT = OPENSTATUS"NOERROR"; # CLEAR OPEN STATUS #
Line S00013 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02089 M02S00013.242l642 ---|IF TERMMODEL EQ " " THEN 02090 M01S00530.242l642 +++|IF TERMODNAME[0] EQ " " THEN 02091 M01S00014.ns2275 +++| BEGIN # IF *TDU* TABLE NOT YET READ #
Line S00015 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02092 M02S00015.242l642 ---| VDTGSL(DUMMY,OPENSTAT); # CHECK SYSTEM SCREEN/LINE # 02093 M01S00531.242l642 +++|*IF UNDEF,QTRM 02094 M01S00532.242l642 +++| VDTGSL(DUMMY,OPENSTAT); # CHECK SYSTEM SCREEN/LINE # 02095 M01S00533.242l642 +++|*ELSE 02096 M01S00534.242l642 +++| OPENSTAT = NIT$MODEL[NIT$CON]; # GET SCREEN MODE # 02097 M01S00535.242l642 +++| MODELNAME = NIT$TRNAM[NIT$CON]; # GET MODEL NAME # 02098 M01S00536.242l642 +++|*ENDIF
Line S00016 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02099 M02S00016.242l642 ---| IF OPENSTAT EQ 1 THEN
Line S00017 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02100 M02S00017.242l642 ---| BEGIN # IF SCREEN MODE # 02101 M01S00537.242l642 +++| IF OPENSTAT EQ 0 THEN 02102 M01S00538.242l642 +++| BEGIN # IF NO MODEL SPECIFIED # 02103 M01S00539.242l642 +++| OPENSTAT = OPENSTATUS"NOSCREEN"; # NONE SPECIFIED # 02104 M01S00540.242l642 +++| END 02105 M01S00541.242l642 +++| ELSE 02106 M01S00542.242l642 +++| BEGIN # MODEL SPECIFIED # 02107 M01S00018.ns2275 +++| OPENSTAT = OPENSTATUS"NOERROR"; # CLEAR OPEN STATUS #
Line S00019 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02108 M02S00019.242l642 ---| VDTITD(TERMMODEL); # INITIALIZE *TDU* TABLE #
Line S00020 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02109 M02S00020.242l642 ---| IF TERMMODEL EQ " " THEN OPENSTAT = OPENSTATUS"UNSPTERM"; 02110 M01S00543.242l642 +++| VDTITD(MODELNAME); # INITIALIZE *TDU* TABLE #
Line S00544 Modification History | |
---|---|
M01 (Added by) | 242l642 |
M02 (Updated by) | ns2671 |
Seq # *Modification Id* Act ----------------------------+ 02111 M02S00544.ns2671 ---| TERMODNAME[0] = MODELNAME;
Line S00021 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
M03 (Updated by) | ns2671 |
Seq # *Modification Id* Act ----------------------------+ 02112 M03S00021.ns2671 ---| END
Line S00022 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
M03 (Updated by) | ns2671 |
Seq # *Modification Id* Act ----------------------------+ 02113 M03S00022.ns2671 ---| ELSE
Line S00023 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
M03 (Updated by) | ns2671 |
Seq # *Modification Id* Act ----------------------------+ 02114 M03S00023.ns2671 ---| BEGIN # OS MODE IS LINE #
Line S00024 Modification History | |
---|---|
M01 (Added by) | ns2275 |
M02 (Updated by) | 242l642 |
M03 (Updated by) | ns2671 |
Seq # *Modification Id* Act ----------------------------+ 02115 M03S00024.ns2671 ---| OPENSTAT = OPENSTATUS"NOSCREEN"; # RETURN STATUS #
Line S00545 Modification History | |
---|---|
M01 (Added by) | 242l642 |
M02 (Updated by) | ns2605 |
M03 (Updated by) | ns2671 |
Seq # *Modification Id* Act ----------------------------+ 02116 M03S00545.ns2671 ---| IF TERMODNAME[0] EQ " " THEN OPENSTAT = OPENSTATUS"UNSPTERM";
Line S00055 Modification History | |
---|---|
M01 (Added by) | ns2605 |
M02 (Updated by) | ns2671 |
Seq # *Modification Id* Act ----------------------------+ 02117 M02S00055.ns2671 ---| IF TERMODNAME[0] EQ " " THEN 02118 M01S00001.ns2671 +++| IF C<0,6>MODELNAME EQ " " THEN 02119 M01S00056.ns2605 +++| BEGIN # IF TERMINAL UNDEFINED # 02120 M01S00002.ns2671 +++| TERMODNAME[0] = " "; 02121 M01S00057.ns2605 +++| OPENSTAT = OPENSTATUS"UNSPTERM"; 02122 M01S00058.ns2605 +++| END 02123 M01S00059.ns2605 +++| ELSE 02124 M01S00060.ns2605 +++| BEGIN # SUPPORTED TERMINAL # 02125 M01S00003.ns2671 +++| TERMODNAME[0] = MODELNAME; 02126 M01S00061.ns2605 +++| P<CORE>=0; 02127 M01S00062.ns2605 +++| IF COREWORD[CSMR] GQ 0 THEN 02128 M01S00063.ns2605 +++| BEGIN # IF 63 CHARACTER SET SYSTEM # 02129 M01S00064.ns2605 +++| DC2A8[00] = O"0040"; # 00B = UNDEFINED # 02130 M01S00065.ns2605 +++| DC2A8[51] = O"0072"; # 63B = COLON # 02131 M01S00066.ns2605 +++| A82DC[37] = O"0055"; # PERCENT = UNDEFINED # 02132 M01S00067.ns2605 +++| A82DC[58] = O"0063"; # COLON = 63B # 02133 M01S00068.ns2605 +++| AS2A8[03] = O"0045"; # 7404B = PERCENT # 02134 M01S00069.ns2605 +++| TERASC8ATD[0] = 37; # PERCENT = 7404B # 02135 M01S00070.ns2605 +++| END 02136 M01S00071.ns2605 +++| END 02137 M01S00025.ns2275 +++| END 02138 M01S00998.sform +++| END 02139 M01S00999.sform +++|
Line S01000 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform9 |
Seq # *Modification Id* Act ----------------------------+ 02140 M02S01000.sform9 ---|IF OPENSTAT EQ 0 THEN 02141 M01S00002.sform9 +++|IF OPENSTAT EQ OPENSTATUS"NOERROR" THEN 02142 M01S01001.sform +++| BEGIN # IF TERMINAL CAN BE USED # 02143 M01S01002.sform +++| IF NOT TERSCREENM[0] THEN 02144 M01S01003.sform +++| BEGIN # IF NOT IN SCREEN MODE # 02145 M01S01004.sform +++| SCREENDIM = 1; # ASK FOR SMALLEST SCREEN SIZE # 02146 M01S01005.sform +++| SETSRN(SCREENDIM,SCREENDIM); # SET SCREEN MODE # 02147 M01S01006.sform +++| END 02148 M01S01007.sform +++| IF NLENGTH LS 1 THEN NLENGTH = 7; # LEFT JUSTIFY PANEL NAME # 02149 M01S01008.sform +++| PANELNAME = C<NOFFSET,NLENGTH>NAME; 02150 M01S00546.242l642 +++|*IF DEF,QTRM 02151 M01S00547.242l642 +++| 02152 M01S00548.242l642 +++|# CHECK FOR PANEL IN THIS USERS PLT AREA # 02153 M01S00549.242l642 +++| 02154 M01S00550.242l642 +++| P<PLTABLE> = NIT$PCT[NIT$CON] + PLTOFFSET; 02155 M01S00551.242l642 +++| PANELADDR = 0; 02156 M01S00552.242l642 +++| QTPLTINDEX = 0; 02157 M01S00553.242l642 +++| FOR PLTINDEX = 1 STEP 1 WHILE 02158 M01S00554.242l642 +++| PANELADDR EQ 0 AND PLTINDEX LQ PLTNUMENT[0] DO 02159 M01S00555.242l642 +++| BEGIN 02160 M01S00556.242l642 +++| IF PLTENAME[PLTINDEX] EQ PANELNAME THEN 02161 M01S00557.242l642 +++| BEGIN 02162 M01S00558.242l642 +++| PANELADDR = PLTADDR[PLTINDEX]; 02163 M01S00559.242l642 +++| NAMEINDEX = PLTINDEX; 02164 M01S00560.242l642 +++| END 02165 M01S00561.242l642 +++| END 02166 M01S00562.242l642 +++| IF PANELADDR EQ 0 THEN 02167 M01S00563.242l642 +++| BEGIN # IF NOT IN USER PLT # 02168 M01S00564.242l642 +++| P<PLTABLE> = LOC(PLT); # CHECK GLOBAL PLT # 02169 M01S00565.242l642 +++| FOR PLTINDEX = 1 STEP 1 WHILE 02170 M01S00566.242l642 +++| PANELADDR EQ 0 AND PLTINDEX LQ PLTNUMENT[0] DO 02171 M01S00567.242l642 +++| BEGIN 02172 M01S00568.242l642 +++| IF PLTENAME[PLTINDEX] EQ PANELNAME THEN 02173 M01S00569.242l642 +++| BEGIN 02174 M01S00570.242l642 +++| PANELADDR = PLTADDR[PLTINDEX]; 02175 M01S00571.242l642 +++| NAMEINDEX = PLTINDEX; 02176 M01S00572.242l642 +++| END 02177 M01S00573.242l642 +++| END 02178 M01S00574.242l642 +++| END 02179 M01S00575.242l642 +++| IF PANELADDR NQ 0 THEN 02180 M01S00576.242l642 +++| BEGIN # UPDATE USER PLT FROM GLOBAL # 02181 M01S00577.242l642 +++| PLTNUMQTRM[NAMEINDEX] = PLTNUMQTRM[NAMEINDEX] + 1; 02182 M01S00578.242l642 +++| P<PLTABLE> = NIT$PCT[NIT$CON] + PLTOFFSET; 02183 M01S00579.242l642 +++| PLTNUMENT[0] = PLTNUMENT[0] + 1; 02184 M01S00580.242l642 +++| NAMEINDEX = PLTNUMENT[0]; 02185 M01S00581.242l642 +++| PLTENAME[NAMEINDEX] = PANELNAME; 02186 M01S00582.242l642 +++| PLTSLFLAG[NAMEINDEX] = FALSE; 02187 M01S00583.242l642 +++| PLTOPENFLG[NAMEINDEX] = TRUE; 02188 M01S00584.242l642 +++| PLTADDR[NAMEINDEX] = PANELADDR; 02189 M01S00585.242l642 +++| SETFSF(PANELADDR); # SET FIELD STATUS FLAGS # 02190 M01S00586.242l642 +++| RETURN; 02191 M01S00587.242l642 +++| END 02192 M01S00588.242l642 +++|*ENDIF 02193 M01S01009.sform +++| P<PLTABLE> = LOC(PLT); # REFERENCE PANEL LOAD TABLE # 02194 M01S01010.sform +++| PANELADDR = 0; # CHECK FOR PANEL NAME IN TABLE # 02195 M01S01011.sform +++| FOR PLTINDEX = 1 STEP 1 WHILE 02196 M01S01012.sform +++| PANELADDR EQ 0 AND PLTINDEX LQ PLTNUMENT[0] DO 02197 M01S01013.sform +++| BEGIN 02198 M01S01014.sform +++| IF PLTENAME[PLTINDEX] EQ PANELNAME THEN 02199 M01S01015.sform +++| BEGIN # IF PANEL NAME FOUND # 02200 M01S01016.sform +++| PANELADDR = PLTADDR[PLTINDEX]; # SET PANEL ADDRESS # 02201 M01S01017.sform +++| NAMEINDEX = PLTINDEX; # SET INDEX INTO PLT # 02202 M01S01018.sform +++| END 02203 M01S01019.sform +++| END 02204 M01S01020.sform +++| IF PANELADDR EQ 0 THEN 02205 M01S01021.sform +++| BEGIN # IF PANELNAME NOT IN PLT # 02206 M01S01022.sform +++| IF PLTNUMENT[0] GQ PLTENTRYNM[0] THEN 02207 M01S01023.sform +++| BEGIN # IF PANEL LOAD TABLE IS FULL #
Line S01024 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02208 M02S01024.ns2275 ---| OPENSTAT = 3; # PANEL LOAD TABLE FULL # 02209 M01S00026.ns2275 +++| OPENSTAT = OPENSTATUS"PLTFULL"; 02210 M01S01025.sform +++| END 02211 M01S01026.sform +++| ELSE 02212 M01S01027.sform +++| BEGIN # LOAD VIA FAST DYNAMIC LOADER # 02213 M01S01028.sform +++| SFLOAD(PANELNAME,PANELADDR,OPENSTAT); 02214 M01S00225.243l647 +++| IF OPENSTAT EQ 0 THEN 02215 M01S00226.243l647 +++| BEGIN # IF LOADED WITHOUT ERROR # 02216 M01S00227.243l647 +++| GETADD(PANELNAME,PANELADDR,NAMEINDEX); 02217 M01S00228.243l647 +++| POSTWO(PANELADDR); # POSITION SFATTR ARRAYS # 02218 M01S00229.243l647 +++| END 02219 M01S00589.242l642 +++|*IF DEF,QTRM 02220 M01S00590.242l642 +++| PLTNUMQTRM[PLTINDEX] = PLTNUMQTRM[PLTINDEX] + 1; # USER COUNT # 02221 M01S00591.242l642 +++| P<PLTABLE> = NIT$PCT[NIT$CON] + PLTOFFSET; 02222 M01S00592.242l642 +++| PLTNUMENT[0] = PLTNUMENT[0] + 1; 02223 M01S00593.242l642 +++| NAMEINDEX = PLTNUMENT[0]; 02224 M01S00594.242l642 +++| PLTENAME[NAMEINDEX] = PANELNAME; 02225 M01S00595.242l642 +++| PLTSLFLAG[NAMEINDEX] = FALSE; 02226 M01S00596.242l642 +++| PLTOPENFLG[NAMEINDEX] = TRUE; 02227 M01S00597.242l642 +++| PLTADDR[NAMEINDEX] = PANELADDR; 02228 M01S00598.242l642 +++|*ENDIF 02229 M01S01029.sform +++| END 02230 M01S01030.sform +++| END 02231 M01S01031.sform +++| ELSE 02232 M01S01032.sform +++| BEGIN # IF PANEL ALREADY IN PLT # 02233 M01S01033.sform +++| IF PLTOPENFLG[NAMEINDEX] THEN 02234 M01S01034.sform +++| BEGIN # IF PANEL IS ALREADY OPEN #
Line S01035 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02235 M02S01035.ns2275 ---| OPENSTAT = 4; # PANEL ALREADY OPEN # 02236 M01S00027.ns2275 +++| OPENSTAT = OPENSTATUS"PANELOPEN"; 02237 M01S01036.sform +++| END 02238 M01S01037.sform +++| ELSE 02239 M01S01038.sform +++| BEGIN # OPEN STATICALLY LOADED PANEL # 02240 M01S01039.sform +++| PLTOPENFLG[NAMEINDEX] = TRUE; # SET PANEL OPEN # 02241 M01S00599.242l642 +++|*IF DEF,QTRM 02242 M01S00600.242l642 +++| SETFSF(PANELADDR); # SET FIELD STATUS FLAGS # 02243 M01S00601.242l642 +++|*ENDIF 02244 M01S01040.sform +++| END 02245 M01S00230.243l647 +++| POSTWO(PANELADDR); # POSITION SFATTR ARRAYS # 02246 M01S01041.sform +++| END 02247 M01S01042.sform +++| END 02248 M01S01043.sform +++| 02249 M01S01044.sform +++|END # SFOPEN$ # 02250 M01S01045.sform +++|CONTROL EJECT; 02251 M01S01046.sform +++| 02252 M01S01047.sform +++|PROC SFPOSR$(TABLENAME,TLEN,TOFF,ROWNUMBER); 02253 M01S01048.sform +++| 02254 M01S01049.sform +++|# TITLE SFPOSR$ - POSITION TABLE ROW. # 02255 M01S01050.sform +++| 02256 M01S01051.sform +++|BEGIN # SFPOSR$ # 02257 M01S01052.sform +++| 02258 M01S01053.sform +++|# 02259 M01S01054.sform +++|** SFPOSR$ - POSITION TABLE ROW. 02260 M01S01055.sform +++|* 02261 M01S01056.sform +++|* SFPOSR$ POSITIONS TABLENAME TO ROWNUMBER. 02262 M01S01057.sform +++|* 02263 M01S01058.sform +++|* PROC SFPOSR$(TABLENAME,TLEN,TOFF,ROWNUMBER) 02264 M01S01059.sform +++|* 02265 M01S01060.sform +++|* ENTRY TABLENAME = TABLE NAME. 02266 M01S01061.sform +++|* TLEN = LENGTH OF TABLENAME. 02267 M01S01062.sform +++|* TOFF = OFFSET OF TABLENAME. 02268 M01S01063.sform +++|* ROWNUMBER = ROW NUMBER. 02269 M01S01064.sform +++|* 02270 M01S01065.sform +++|* EXIT ARRCURROW[TABLENAME] = ROWNUMBER. 02271 M01S01066.sform +++|# 02272 M01S01067.sform +++|ITEM TABLENAME C(11); # TABLE NAME # 02273 M01S01068.sform +++|ITEM TLEN I; # LENGTH OF TABLENAME PARAMETER # 02274 M01S01069.sform +++|ITEM TOFF I; # OFFSET IN TABLENAME PARAMETER # 02275 M01S01070.sform +++|ITEM ROWNUMBER I; # ROW NUMBER IN ARRAY # 02276 M01S01071.sform +++| 02277 M01S01072.sform +++|ITEM I I; # LOOP COUNTER # 02278 M01S01073.sform +++|ITEM NOTFOUND B; # TABLE NOT FOUND # 02279 M01S01074.sform +++|ITEM TNAME C(7); # TABLE NAME LEFT JUSTIFIED # 02280 M01S01075.sform +++| 02281 M01S01076.sform +++|IF PANSTRARR[0] EQ 0 THEN RETURN; # IF NO TABLES IN PANEL # 02282 M01S01077.sform +++| 02283 M01S01078.sform +++|IF TLEN LS 1 THEN TLEN = 7; # CRACK PARAMETER # 02284 M01S01079.sform +++|TNAME = C<TOFF,TLEN>TABLENAME; 02285 M01S01080.sform +++| 02286 M01S01081.sform +++|NOTFOUND = TRUE;
Line S01082 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform6 |
Seq # *Modification Id* Act ----------------------------+ 02287 M02S01082.sform6 ---|FOR I = 1 STEP 1 WHILE ARRNUMVARS[I] NQ 0 AND NOTFOUND DO 02288 M01S00001.sform6 +++|FOR I = 0 STEP 1 WHILE ARRNUMVARS[I] NQ 0 AND NOTFOUND DO 02289 M01S01083.sform +++| BEGIN # SEARCH ARRAY LIST FOR TABLE # 02290 M01S01084.sform +++| IF ARRNAME[I] EQ TNAME THEN 02291 M01S01085.sform +++| BEGIN # IF TABLE NAME FOUND # 02292 M01S01086.sform +++| NOTFOUND = FALSE; 02293 M01S01087.sform +++| IF ROWNUMBER LS 1 OR ROWNUMBER GR ARRNUMROWS[I] THEN 02294 M01S01088.sform +++| BEGIN # IF ILLEGAL ROW NUMBER # 02295 M01S01089.sform +++| ARRCURROW[I] = 0; 02296 M01S01090.sform +++| END 02297 M01S01091.sform +++| ELSE ARRCURROW[I] = ROWNUMBER - 1; 02298 M01S01092.sform +++| END 02299 M01S01093.sform +++| END 02300 M01S01094.sform +++| 02301 M01S01095.sform +++|END # SFPOSR$ # 02302 M01S00072.ns2605 +++|CONTROL EJECT; 02303 M01S00073.ns2605 +++| 02304 M01S00074.ns2605 +++|PROC SFSETF$(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,STAT); 02305 M01S00075.ns2605 +++| BEGIN 02306 M01S00076.ns2605 +++|# 02307 M01S00077.ns2605 +++|** SFSETF$ - SET FIELD CHARACTER STRING. 02308 M01S00078.ns2605 +++|* 02309 M01S00079.ns2605 +++|* SFGETF$ TRANSFERS CHARACTERS TO A SPECIFIED PANEL FIELD FROM 02310 M01S00080.ns2605 +++|* A SPECIFIED STRING, USING *MOVEFLD*. 02311 M01S00081.ns2605 +++|* 02312 M01S00082.ns2605 +++|* PROC SFGETF$(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,STAT) 02313 M01S00083.ns2605 +++|* 02314 M01S00084.ns2605 +++|* ENTRY VNAME = VARIABLE NAME OF FIELD. 02315 M01S00085.ns2605 +++|* VLEN = LENGTH OF VARNAME PARAMETER. 02316 M01S00086.ns2605 +++|* VOS = OFFSET OF VARNAME PARAMETER. 02317 M01S00087.ns2605 +++|* STRG = VARIABLE FIELD STRING. 02318 M01S00088.ns2605 +++|* SLEN = LENGTH OF STRING PARAMETER. 02319 M01S00089.ns2605 +++|* SOS = OFFSET OF STRING PARAMETER. 02320 M01S00090.ns2605 +++|* CSET = CHARACTER SET OF STRING (SEE SFCSET$). 02321 M01S00091.ns2605 +++|* CLEN = LENGTH OF CSET PARAMETER. 02322 M01S00092.ns2605 +++|* COS = OFFSET OF CSET PARAMETER. 02323 M01S00093.ns2605 +++|* 02324 M01S00094.ns2605 +++|* EXIT STAT GQ 0, NUMBER OF 6 BIT CHARACTERS MOVED. 02325 M01S00095.ns2605 +++|* LS 0, VARIABLE NOT FOUND IN ACTIVE PANELS. 02326 M01S00096.ns2605 +++|* 02327 M01S00097.ns2605 +++|* CALLS MOVEFLD. 02328 M01S00098.ns2605 +++|# 02329 M01S00099.ns2605 +++| 02330 M01S00100.ns2605 +++| ITEM VNAME I; # VARIABLE NAME # 02331 M01S00101.ns2605 +++| ITEM VLEN I; # LENGTH OF VARNAME PARAMETER # 02332 M01S00102.ns2605 +++| ITEM VOS I; # OFFSET INTO VARNAME PARAMETER # 02333 M01S00103.ns2605 +++| ITEM STRG I; # INSTRING PARAMETER # 02334 M01S00104.ns2605 +++| ITEM SLEN I; # LENGTH OF INSTRING # 02335 M01S00105.ns2605 +++| ITEM SOS I; # OFFSET INTO INSTRING # 02336 M01S00106.ns2605 +++| ITEM CSET I; # CHARACTER SET # 02337 M01S00107.ns2605 +++| ITEM CLEN I; # LENGTH OF CHARACTER SET # 02338 M01S00108.ns2605 +++| ITEM COS I; # OFFSET INTO CHARACTER SET # 02339 M01S00109.ns2605 +++| ITEM STAT I; # STATUS FIELD # 02340 M01S00110.ns2605 +++| 02341 M01S00111.ns2605 +++| 02342 M01S00112.ns2605 +++| STAT = 1; # INDICATE *SFSETF* # 02343 M01S00113.ns2605 +++| MOVEFLD(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,STAT); 02344 M01S00114.ns2605 +++| RETURN; 02345 M01S00115.ns2605 +++| 02346 M01S00116.ns2605 +++|END # SFSETF$# 02347 M01S00602.242l642 +++|*IF DEF,QTRM 02348 M01S00603.242l642 +++|CONTROL EJECT; 02349 M01S00604.242l642 +++| 02350 M01S00605.242l642 +++|PROC SFQTRM$(NITADDR,BUFFER); 02351 M01S00606.242l642 +++| 02352 M01S00607.242l642 +++|# TITLE SFQTRM$ - INTERFACE BETWEEN QTRM AND SFORM # 02353 M01S00608.242l642 +++| 02354 M01S00609.242l642 +++|BEGIN # SFQTRM$ # 02355 M01S00610.242l642 +++| 02356 M01S00611.242l642 +++|# 02357 M01S00612.242l642 +++|** SFQTRM$ - INTERFACE BETWEEN QTRM AND SFORM. 02358 M01S00613.242l642 +++|* 02359 M01S00614.242l642 +++|* THIS PROCEDURE IS THE INTERFACE BETWEEN QTRM AND SFORM THAT 02360 M01S00615.242l642 +++|* IDENTIFIES THE QTRM NETWORK INFORMATION TABLE, DATA BUFFER, 02361 M01S00616.242l642 +++|* AND CURRENT TERMINAL TO SFORM. SFQTRM$ INTERFACES TO COBOL 02362 M01S00617.242l642 +++|* AND FORTRAN PROGRAMS THROUGH A COMPASS INTERFACE MODULE 02363 M01S00618.242l642 +++|* CALLED SFQTRM. 02364 M01S00619.242l642 +++|* 02365 M01S00620.242l642 +++|* PROC SFQTRM$(NITADDR,BUFFER) 02366 M01S00621.242l642 +++|* 02367 M01S00622.242l642 +++|* ENTRY NITADDR = ADDRESS OF QTRM USER-S QTRM NETWORK 02368 M01S00623.242l642 +++|* INFORMATION TABLE. 02369 M01S00624.242l642 +++|* BUFFER = ADDRESS OF BUFFER FOR THE SCREEN FORMATTING 02370 M01S00625.242l642 +++|* ROUTINES SFSREA AND SFSWRI TO USE. THE 02371 M01S00626.242l642 +++|* 02372 M01S00627.242l642 +++|* EXIT POINTERS TO BUFFER INITIALIZED. 02373 M01S00628.242l642 +++|# 02374 M01S00629.242l642 +++|ITEM NITADDR U; # ADDRESS OF THE USERS NIT # 02375 M01S00630.242l642 +++|ARRAY BUFFER [0:0] P(1);; # BUFFER # 02376 M01S00631.242l642 +++| 02377 M01S00632.242l642 +++|ITEM CHARIND I = 0; # CHAR INDEX FOR FLAG MOVE # 02378 M01S00633.242l642 +++|ITEM CURRNT$ACN I = 0; # CURRENT ACN POINTER # 02379 M01S00634.242l642 +++|ITEM I I; # LOOP COUNTER # 02380 M01S00635.242l642 +++|ITEM HOLDADR U; # HOLDS BUFFER ADDRESS # 02381 M01S00636.242l642 +++|ITEM PANELNAME C(7); # PANEL NAME FOR ARRAY RESET # 02382 M01S00637.242l642 +++|ITEM PANELADDR I; # PANEL ADDR FOR ARRAY RESET # 02383 M01S00638.242l642 +++|ITEM VDATALEN I; # VARDATA LENGTH # 02384 M01S00639.242l642 +++|ITEM PLTINDEX I; # ACTIVE PANEL INDEX TO RESET # 02385 M01S00640.242l642 +++|ITEM WORDIND I = 0; # WORD INDEX FOR FLAG MOVE # 02386 M01S00641.242l642 +++| 02387 M01S00642.242l642 +++|HOLDADR = LOC(BUFFER); # SAVE BUFFER ADDRESS # 02388 M01S00643.242l642 +++|P<NIT> = LOC(NITADDR); # SAVE NIT ADDRESS # 02389 M01S00644.242l642 +++|IF CURRNT$ACN EQ 0 THEN 02390 M01S00645.242l642 +++| BEGIN # IF FIRST CALL TO SFQTRM$ # 02391 M01S00646.242l642 +++| CURRNT$ACN = NIT$CON[0]; 02392 M01S00647.242l642 +++| P<QTRM$BUFFER> = LOC(BUFFER); 02393 M01S00648.242l642 +++| FOR I = 0 STEP 1 UNTIL SFORMSIZE -1 DO 02394 M01S00649.242l642 +++| BEGIN # SAVE TERMSTAT DEFAULTS # 02395 M01S00650.242l642 +++| TERINITHLD[I] = TERMSTATWD[I]; 02396 M01S00651.242l642 +++| END 02397 M01S00652.242l642 +++| FOR I = 0 STEP 1 UNTIL VTERMSIZE -1 DO 02398 M01S00653.242l642 +++| BEGIN # SAVE VDT AREA DEFAULTS # 02399 M01S00654.242l642 +++| VDTINITHLD[I] = COMVDT$WD0[I]; 02400 M01S00655.242l642 +++| END 02401 M01S00656.242l642 +++| RETURN; 02402 M01S00657.242l642 +++| END 02403 M01S00658.242l642 +++| 02404 M01S00659.242l642 +++|IF CURRNT$ACN NQ NIT$CON[0] THEN 02405 M01S00660.242l642 +++|BEGIN # IF NEW USER # 02406 M01S00661.242l642 +++| IF CURRNT$ACN NQ 0 AND NIT$PCT[CURRNT$ACN] NQ 0 THEN 02407 M01S00662.242l642 +++| BEGIN # IF THERE IS A CURRENT USER # 02408 M01S00663.242l642 +++| P<PCT> = NIT$PCT[CURRNT$ACN]; # SAVE PREVIOUS TERMINAL-S STATE # 02409 M01S00664.242l642 +++| TERFLDADDR = P<FLDLIST>; # SAVE FIELD LIST ADDRESS # 02410 M01S00665.242l642 +++| P<QTRM$BUFFER> = P<PCT> + SFORMOFFSET; 02411 M01S00666.242l642 +++| FOR I = 0 STEP 1 UNTIL SFORMSIZE -1 DO 02412 M01S00667.242l642 +++| BEGIN # MOVE SFORM DATA # 02413 M01S00668.242l642 +++| QTRM$WD0[I] = TERMSTATWD[I]; 02414 M01S00669.242l642 +++| END 02415 M01S00670.242l642 +++| P<QTRM$BUFFER> = P<PCT> + VTERMOFFSET; 02416 M01S00671.242l642 +++| FOR I = 0 STEP 1 UNTIL VTERMSIZE - 1 DO 02417 M01S00672.242l642 +++| BEGIN # MOVE VIRTERM DATA # 02418 M01S00673.242l642 +++| QTRM$WD0[I] = COMVDT$WD0[I]; 02419 M01S00674.242l642 +++| END 02420 M01S00675.242l642 +++| P<QTRM$BUFFER> = P<PCT> + FDAOFFSET; 02421 M01S00676.242l642 +++| IF TERFLDADDR[0] NQ 0 THEN 02422 M01S00677.242l642 +++| BEGIN # IF FIELD STATUS FLAGS EXIST # 02423 M01S00678.242l642 +++| FOR I = 0 STEP 1 WHILE FLDENTRY[I] NQ 0 DO 02424 M01S00679.242l642 +++| BEGIN # MOVE FIELD STATUS FLAGS # 02425 M01S00680.242l642 +++| WORDIND = I / 15; 02426 M01S00681.242l642 +++| CHARIND = I - 15*WORDIND; 02427 M01S00682.242l642 +++| B<CHARIND*4,4>QTRM$WD0[WORDIND] = FLDSTFLAGS[I]; 02428 M01S00683.242l642 +++| END 02429 M01S00684.242l642 +++| END 02430 M01S00685.242l642 +++| P<QTRM$BUFFER> = P<PCT> + VDTAOFFSET; 02431 M01S00686.242l642 +++| PANELADDR = P<VDATA> - PANHEADLEN; 02432 M01S00687.242l642 +++| IF PANSTRFLD[0] NQ 0 THEN 02433 M01S00688.242l642 +++| BEGIN # IF FIELDS EXISTS # 02434 M01S00689.242l642 +++| VDATALEN = P<FLDLIST> - (PANELADDR + PANHEADLEN); 02435 M01S00690.242l642 +++| END 02436 M01S00691.242l642 +++| ELSE 02437 M01S00692.242l642 +++| BEGIN # NO FIELDS # 02438 M01S00693.242l642 +++| VDATALEN = P<VARLIST> - (PANELADDR + PANHEADLEN); 02439 M01S00694.242l642 +++| END 02440 M01S00695.242l642 +++| FOR I = 0 STEP 1 UNTIL VDATALEN -1 DO 02441 M01S00696.242l642 +++| BEGIN 02442 M01S00697.242l642 +++| QTRM$WD0[I] = VDATAU[I]; 02443 M01S00698.242l642 +++| END 02444 M01S00699.242l642 +++| END 02445 M01S00700.242l642 +++| CURRNT$ACN = NIT$CON[0]; # LOAD ITEMS FOR NEW TERMINAL # 02446 M01S00701.242l642 +++| IF NIT$PCT[CURRNT$ACN] NQ 0 THEN 02447 M01S00702.242l642 +++| BEGIN # IF USER HAS A PCT # 02448 M01S00703.242l642 +++| P<PCT> = NIT$PCT[CURRNT$ACN]; 02449 M01S00704.242l642 +++| P<PLTABLE> = NIT$PCT[CURRNT$ACN] + PLTOFFSET; 02450 M01S00705.242l642 +++| P<QTRM$BUFFER> = P<PCT> + SFORMOFFSET; 02451 M01S00706.242l642 +++| FOR I = 0 STEP 1 UNTIL SFORMSIZE - 1 DO 02452 M01S00707.242l642 +++| BEGIN # MOVE SFORM DATA # 02453 M01S00708.242l642 +++| TERMSTATWD[I] = QTRM$WD0[I]; 02454 M01S00709.242l642 +++| END 02455 M01S00710.242l642 +++| P<FLDLIST> = TERFLDADDR; # FLDLIST ADDRESS # 02456 M01S00711.242l642 +++| P<QTRM$BUFFER> = P<PCT> + VTERMOFFSET; 02457 M01S00712.242l642 +++| FOR I = 0 STEP 1 UNTIL VTERMSIZE - 1 DO 02458 M01S00713.242l642 +++| BEGIN # MOVE VIRTERM DATA # 02459 M01S00714.242l642 +++| COMVDT$WD0[I] = QTRM$WD0[I]; 02460 M01S00715.242l642 +++| END 02461 M01S00716.242l642 +++| IF TERACTPANL[0] NQ " " THEN 02462 M01S00717.242l642 +++| BEGIN # IF PANEL ACTIVE # 02463 M01S00718.242l642 +++| P<QTRM$BUFFER> = P<PCT> + FDAOFFSET; 02464 M01S00719.242l642 +++| IF TERFLDADDR[0] NQ 0 THEN 02465 M01S00720.242l642 +++| BEGIN # IF FIELD STATUS FLAGS EXIST # 02466 M01S00721.242l642 +++| FOR I = 0 STEP 1 WHILE FLDENTRY[I] NQ 0 DO 02467 M01S00722.242l642 +++| BEGIN # MOVE FIELD STATUS FLAGS # 02468 M01S00723.242l642 +++| WORDIND = I / 15; 02469 M01S00724.242l642 +++| CHARIND = I - 15*WORDIND; 02470 M01S00725.242l642 +++| FLDSTFLAGS[I] = B<CHARIND*4,4>QTRM$WD0[WORDIND]; 02471 M01S00726.242l642 +++| END 02472 M01S00727.242l642 +++| END 02473 M01S00728.242l642 +++| PANELNAME = TERACTPANL[0]; # GET PANEL NAME # 02474 M01S00729.242l642 +++| GETADD(PANELNAME,PANELADDR,PLTINDEX); 02475 M01S00730.242l642 +++| POSARR(PANELADDR); 02476 M01S00731.242l642 +++| P<QTRM$BUFFER> = P<PCT> + VDTAOFFSET; 02477 M01S00732.242l642 +++| PANELADDR = P<VDATA> - PANHEADLEN; 02478 M01S00733.242l642 +++| IF PANSTRFLD[0] NQ 0 THEN 02479 M01S00734.242l642 +++| BEGIN 02480 M01S00735.242l642 +++| VDATALEN = P<FLDLIST> - (PANELADDR + PANHEADLEN); 02481 M01S00736.242l642 +++| END 02482 M01S00737.242l642 +++| ELSE 02483 M01S00738.242l642 +++| BEGIN 02484 M01S00739.242l642 +++| VDATALEN = P<VARLIST> - (PANELADDR + PANHEADLEN); 02485 M01S00740.242l642 +++| END 02486 M01S00741.242l642 +++| FOR I = 0 STEP 1 UNTIL VDATALEN -1 DO 02487 M01S00742.242l642 +++| BEGIN 02488 M01S00743.242l642 +++| VDATAU[I] = QTRM$WD0[I]; 02489 M01S00744.242l642 +++| END 02490 M01S00745.242l642 +++| END 02491 M01S00746.242l642 +++| END 02492 M01S00747.242l642 +++| ELSE 02493 M01S00748.242l642 +++| BEGIN # NO PCT FOR THIS USER # 02494 M01S00749.242l642 +++| FOR I = 0 STEP 1 UNTIL SFORMSIZE -1 DO 02495 M01S00750.242l642 +++| BEGIN # INITIALIZE TERMSTAT # 02496 M01S00751.242l642 +++| TERMSTATWD[I] = TERINITHLD[I]; 02497 M01S00752.242l642 +++| END 02498 M01S00753.242l642 +++| FOR I = 0 STEP 1 UNTIL VTERMSIZE -1 DO 02499 M01S00754.242l642 +++| BEGIN # INITIALIZE VDT AREA # 02500 M01S00755.242l642 +++| COMVDT$WD0[I] = VDTINITHLD[I]; 02501 M01S00756.242l642 +++| END 02502 M01S00757.242l642 +++| TERMODNAME[0] = " "; 02503 M01S00758.242l642 +++| TERACTPANL[0] = " "; 02504 M01S00759.242l642 +++| TERACTPLTI[0] = 0; 02505 M01S00760.242l642 +++| TERFUNCPOS[0] = 0; 02506 M01S00761.242l642 +++| TERNUMCOLS[0] = 0; 02507 M01S00762.242l642 +++| TERNUMLNES[0] = 0; 02508 M01S00763.242l642 +++| END 02509 M01S00764.242l642 +++| P<QTRM$BUFFER> = HOLDADR; 02510 M01S00765.242l642 +++| END 02511 M01S00766.242l642 +++| 02512 M01S00767.242l642 +++|END # SFQTRM$ # 02513 M01S00768.242l642 +++|*ENDIF 02514 M01S01096.sform +++|CONTROL EJECT; 02515 M01S01097.sform +++| 02516 M01S01098.sform +++|PROC SFSETP$(VARNAME,VLEN,VOFF,OFFSET,ROWNUM); 02517 M01S01099.sform +++| 02518 M01S01100.sform +++|# TITLE SFSETP$ - SET CURSOR POSITION. # 02519 M01S01101.sform +++| 02520 M01S01102.sform +++|BEGIN # SFSETP$ # 02521 M01S01103.sform +++| 02522 M01S01104.sform +++|# 02523 M01S01105.sform +++|** SFSETP$ - SET CURSOR POSITION. 02524 M01S01106.sform +++|* 02525 M01S01107.sform +++|* SFSETP$ SPECIFIES WHAT FIELD THE CURSOR WILL 02526 M01S01108.sform +++|* BE POSITIONED AT FOR THE NEXT READ. 02527 M01S01109.sform +++|* 02528 M01S01110.sform +++|* PROC SFSETP$(VARNAME,VLEN,VOFF,OFFSET,ROWNUM) 02529 M01S01111.sform +++|* 02530 M01S01112.sform +++|* ENTRY VARNAME = VARIABLE NAME OF FIELD. 02531 M01S01113.sform +++|* VLEN = LENGTH OF VARP. 02532 M01S01114.sform +++|* VOFF = OFFSET OF VARP. 02533 M01S01115.sform +++|* OFFSET = OFFSET INTO SPECIFIED FIELD. 02534 M01S01116.sform +++|* ROWNUM = ROW NUMBER OF SPECIFIED FIELD. 02535 M01S01117.sform +++|*
Line S01118 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02536 M02S01118.242l642 ---|* EXIT CURSORVAR = VARIABLE NAME OF SPECIFIED FIELD.
Line S01119 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02537 M02S01119.242l642 ---|* CURSORROW = ROW NUMBER OF SPECIFIED FIELD.
Line S01120 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02538 M02S01120.242l642 ---|* CURSOROFF = OFFSET OF SPECIFIED FIELD.
Line S01121 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02539 M02S01121.242l642 ---|* CURSORSET = TRUE. 02540 M01S00769.242l642 +++|* EXIT TERCURSVAR = VARIABLE NAME OF SPECIFIED FIELD. 02541 M01S00770.242l642 +++|* TERCURSROW = ROW NUMBER OF SPECIFIED FIELD. 02542 M01S00771.242l642 +++|* TERCURSOFF = OFFSET OF SPECIFIED FIELD. 02543 M01S00772.242l642 +++|* TERCURSSET = TRUE. 02544 M01S01122.sform +++|*
Line S01123 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02545 M02S01123.242l642 ---|* USES CURSOROFF, CURSORROW, CURSORSET, CURSORVAR. 02546 M01S00773.242l642 +++|* USES TERCURSOFF, TERCURSROW, TERCURSSET, TERCURSVAR. 02547 M01S01124.sform +++|* 02548 M01S01125.sform +++|* NOTES ROUTINE READSF WILL SET THE ACTUAL CURSOR POSITION. 02549 M01S01126.sform +++|# 02550 M01S01127.sform +++|ITEM VARNAME C(11); # VARIABLE NAME # 02551 M01S01128.sform +++|ITEM VLEN I; # LENGTH OF VARNAME PARAMETER # 02552 M01S01129.sform +++|ITEM VOFF I; # OFFSET INTO VARNAME PARAMETER # 02553 M01S01130.sform +++|ITEM OFFSET I; # OFFSET INTO FIELD # 02554 M01S01131.sform +++|ITEM ROWNUM I; # ROW NUMBER IN ARRAY # 02555 M01S01132.sform +++| 02556 M01S01133.sform +++|IF VLEN LS 1 THEN VLEN = 7; # CRACK PARAMETER #
Line S01134 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02557 M02S01134.242l642 ---|CURSORVAR = C<VOFF,VLEN>VARNAME; 02558 M01S00774.242l642 +++|TERCURSVAR[0] = C<VOFF,VLEN>VARNAME; 02559 M01S01135.sform +++| 02560 M01S01136.sform +++|TERCURSSET[0] = TRUE; # SET GLOBAL VARIABLES #
Line S01137 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02561 M02S01137.242l642 ---|IF OFFSET GR 0 THEN CURSOROFF = OFFSET - 1;
Line S01138 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02562 M02S01138.242l642 ---| ELSE CURSOROFF = 0;
Line S01139 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02563 M02S01139.242l642 ---|IF ROWNUM LS 1 THEN CURSORROW = 0;
Line S01140 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02564 M02S01140.242l642 ---| ELSE CURSORROW = ROWNUM - 1; 02565 M01S00775.242l642 +++|IF OFFSET GR 0 THEN TERCURSOFF[0] = OFFSET - 1; 02566 M01S00776.242l642 +++| ELSE TERCURSOFF[0] = 0; 02567 M01S00777.242l642 +++|IF ROWNUM LS 1 THEN TERCURSROW[0] = 0; 02568 M01S00778.242l642 +++| ELSE TERCURSROW[0] = ROWNUM - 1; 02569 M01S01141.sform +++| 02570 M01S01142.sform +++|END # SFSETP$ # 02571 M01S01143.sform +++|CONTROL EJECT; 02572 M01S01144.sform +++| 02573 M01S01145.sform +++|PROC SFSREA$(PANELP,PANLEN,PANOFF,INSP,INSLEN,INSOFF); 02574 M01S01146.sform +++| 02575 M01S01147.sform +++|# TITLE SFSREA$ - READ PANEL USING INSTRING. # 02576 M01S01148.sform +++| 02577 M01S01149.sform +++|BEGIN # SFSREA$ # 02578 M01S01150.sform +++| 02579 M01S01151.sform +++|# 02580 M01S01152.sform +++|** SFSREA$ - READ PANEL USING INSTRING. 02581 M01S01153.sform +++|* 02582 M01S01154.sform +++|* SFSREA$ READS A PANEL AND PLACES THE INPUT IN 02583 M01S01155.sform +++|* INSTRING. 02584 M01S01156.sform +++|* 02585 M01S01157.sform +++|* PROC SFSREA$(PANELP,PANLEN,PANOFF,INSP,INSLEN,INSOFF) 02586 M01S01158.sform +++|* 02587 M01S01159.sform +++|* ENTRY PANELP = NAME OF PANEL TO READ. 02588 M01S01160.sform +++|* PANLEN = LENGTH OF PANELP. 02589 M01S01161.sform +++|* PANOFF = OFFSET OF PANELP. 02590 M01S01162.sform +++|* INSP = INSTRING TO RECEIVE DATA. 02591 M01S01163.sform +++|* INSLEN = LENGTH OF INSP. 02592 M01S01164.sform +++|* INSOFF = OFFSET OF INSP. 02593 M01S01165.sform +++|* 02594 M01S01166.sform +++|* EXIT INSP CONTAINS INPUT DATA. 02595 M01S01167.sform +++|* 02596 M01S01168.sform +++|* CALLS CPANEL, MOVEST, READSF. 02597 M01S01169.sform +++|*
Line S01170 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform24 |
Seq # *Modification Id* Act ----------------------------+ 02598 M02S01170.sform24 ---|* UESE TERREADFLG. 02599 M01S00001.sform24 +++|* USES TERREADFLG. 02600 M01S01171.sform +++|# 02601 M01S01172.sform +++|ITEM PANELP C(11); # PANEL PARAMETER # 02602 M01S01173.sform +++|ITEM PANLEN I; # LENGTH OF PANEL PARAMETER # 02603 M01S01174.sform +++|ITEM PANOFF I; # OFFSET OF PANEL PARAMETER # 02604 M01S01175.sform +++|ITEM INSP I; # ADDRESS OF INSTRING # 02605 M01S01176.sform +++|ITEM INSLEN I; # LENGTH OF INSTRING # 02606 M01S01177.sform +++|ITEM INSOFF I; # OFFSET OF INSTRING # 02607 M01S01178.sform +++| 02608 M01S01179.sform +++|ITEM PANEL C(7); # NAME OF INPUT PANEL # 02609 M01S01180.sform +++| 02610 M01S00779.242l642 +++|*IF DEF,QTRM 02611 M01S00780.242l642 +++|NIT$RC = NITRTC"OK"; # SET STATUS OK # 02612 M01S00781.242l642 +++| 02613 M01S00782.242l642 +++|*ENDIF 02614 M01S01181.sform +++|IF PANLEN LS 1 THEN PANLEN = 7; # CRACK PARAMETER # 02615 M01S01182.sform +++|PANEL = C<PANOFF,PANLEN>PANELP; 02616 M01S01183.sform +++| 02617 M01S01184.sform +++|READSF(PANEL); # READ PANEL # 02618 M01S01185.sform +++|CPANEL; # REWRITE SCREEN AS NEEDED # 02619 M01S01186.sform +++| 02620 M01S01187.sform +++|IF PANNUMBYTE[0] NQ 0 THEN 02621 M01S01188.sform +++| BEGIN # IF VARIABLES IN PANEL # 02622 M01S01189.sform +++| TERREADFLG[0] = TRUE; 02623 M01S01190.sform +++| MOVEST(LOC(INSP),INSOFF,INSLEN); # MOVE VARDATA TO INSTRING # 02624 M01S01191.sform +++| TERREADFLG[0] = FALSE; 02625 M01S01192.sform +++| END 02626 M01S01193.sform +++| 02627 M01S01194.sform +++|END # SFSREA$ # 02628 M01S00783.242l642 +++|*IF UNDEF, QTRM 02629 M01S01195.sform +++|CONTROL EJECT; 02630 M01S01196.sform +++| 02631 M01S01197.sform +++|PROC SFSSHO$(PANELP,PANLEN,PANOFF,OUTP,OLEN,OOFF,INSP,ILEN,IOFF); 02632 M01S01198.sform +++| 02633 M01S01199.sform +++|# TITLE SFSSHO$ - SHOW PANEL USING INSTRING AND OUTSTRING. # 02634 M01S01200.sform +++| 02635 M01S01201.sform +++|BEGIN # SFSSHO$ # 02636 M01S01202.sform +++| 02637 M01S01203.sform +++|# 02638 M01S01204.sform +++|** SFSSHO - SHOW PANEL USING INSTRING AND OUTSTRING. 02639 M01S01205.sform +++|* 02640 M01S01206.sform +++|* THIS PROCEDURE CALLS SFSWRI$ AND SFSREA$. 02641 M01S01207.sform +++|* 02642 M01S01208.sform +++|* PROC SFSSHO$(PANELP,PANLEN,PANOFF,OUTP,OLEN,OOFF,INSP,ILEN,IOFF) 02643 M01S01209.sform +++|* 02644 M01S01210.sform +++|* ENTRY PANELP = NAME OF PANEL TO READ. 02645 M01S01211.sform +++|* PANLEN = LENGTH OF PANELP. 02646 M01S01212.sform +++|* PANOFF = OFFSET OF PANELP. 02647 M01S01213.sform +++|* OUTP = OUTSTRING DISPLAY DATA. 02648 M01S01214.sform +++|* OLEN = LENGTH OF OUTP. 02649 M01S01215.sform +++|* OOFF = OFFSET OF OUTP. 02650 M01S01216.sform +++|* ILEN = LENGTH OF INSP. 02651 M01S01217.sform +++|* IOFF = OFFSET OF INSP. 02652 M01S01218.sform +++|* 02653 M01S01219.sform +++|* EXIT INSP = CONTAINS INPUT DATA. 02654 M01S01220.sform +++|* 02655 M01S01221.sform +++|* CALLS SFSREA$, SFSWRI$. 02656 M01S01222.sform +++|* 02657 M01S01223.sform +++|* USES TERSHOWFLG. 02658 M01S01224.sform +++|# 02659 M01S01225.sform +++|ITEM PANELP I; # NAME OF PANEL TO READ # 02660 M01S01226.sform +++|ITEM PANLEN I; # LENGTH OF PANELP # 02661 M01S01227.sform +++|ITEM PANOFF I; # OFFSET OF PANELP # 02662 M01S01228.sform +++|ITEM OUTP I; # OUTSTRING DISPLAY DATA # 02663 M01S01229.sform +++|ITEM OLEN I; # LENGTH OF OUTP # 02664 M01S01230.sform +++|ITEM OOFF I; # OFFSET OF OUTP # 02665 M01S01231.sform +++|ITEM INSP I; # INSTRING TO RECEIVE DATA # 02666 M01S01232.sform +++|ITEM ILEN I; # LENGTH OF INSP # 02667 M01S01233.sform +++|ITEM IOFF I; # OFFSET OF INSP # 02668 M01S01234.sform +++| 02669 M01S01235.sform +++|TERSHOWFLG[0] = TRUE; 02670 M01S01236.sform +++|SFSWRI$(PANELP,PANLEN,PANOFF,OUTP,OLEN,OOFF); # WRITE PANEL # 02671 M01S01237.sform +++|SFSREA$(PANELP,PANLEN,PANOFF,INSP,ILEN,IOFF); # READ PANEL # 02672 M01S01238.sform +++|TERSHOWFLG[0] = FALSE; 02673 M01S01239.sform +++| 02674 M01S01240.sform +++|END # SFSSHO$ # 02675 M01S00784.242l642 +++|*ENDIF 02676 M01S01241.sform +++|CONTROL EJECT; 02677 M01S01242.sform +++| 02678 M01S01243.sform +++|PROC SFSWRI$(NAME,NLENGTH,NOFFSET,STRING,SLENGTH,SOFFSET); 02679 M01S01244.sform +++| 02680 M01S01245.sform +++|# TITLE SFSWRI$ - SCREEN FORMAT STRING WRITE FUNCTION. # 02681 M01S01246.sform +++| 02682 M01S01247.sform +++|BEGIN # SFSWRI$ # 02683 M01S01248.sform +++| 02684 M01S01249.sform +++|# 02685 M01S01250.sform +++|** SFSWRI$ - SCREEN FORMAT WRITE FUNCTION. 02686 M01S01251.sform +++|* 02687 M01S01252.sform +++|* THIS PROCEDURE WRITES THE SPECIFIED PANEL USING THE CONCATENATED 02688 M01S01253.sform +++|* VARIABLE DATA FOUND IN OUTSTRING (OR IN THE CASE OF AN ATTEMPTED 02689 M01S01254.sform +++|* READ BEFORE WRITE USING THE VARIABLE DATA ALREADY PRESENT IN THE 02690 M01S01255.sform +++|* VARDATA SECTION OF THE PANEL RECORD) AND THE CONSTANT DATA FOUND 02691 M01S01256.sform +++|* IN THE PANEL RECORD. IT INTERFACES TO COBOL AND FORTRAN APPLICA- 02692 M01S01257.sform +++|* TION PROGRAMS THROUGH A COMPASS INTERFACE MODULE CALLED SFSWRI. 02693 M01S01258.sform +++|* 02694 M01S01259.sform +++|* PROC SFSWRI$(NAME,NLENGTH,NOFFSET,STRING,SLENGTH,SOFFSET) 02695 M01S01260.sform +++|* 02696 M01S01261.sform +++|* ENTRY NAME = THE NAME OF THE PANEL TO BE WRITTEN. 02697 M01S01262.sform +++|* NLENGTH = LENGTH IN SIX BIT CHARACTERS. 02698 M01S01263.sform +++|* NOFFSET = OFFSET INTO NAME. 02699 M01S01264.sform +++|* STRING = CONTAINS THE CONCATENATED VARIABLE DATA. 02700 M01S01265.sform +++|* SLENGTH = LENGTH IN SIX BIT CHARACTERS. 02701 M01S01266.sform +++|* SOFFSET = OFFSET INTO STRING. 02702 M01S01267.sform +++|* 02703 M01S01268.sform +++|* EXIT PANEL WRITTEN TO SCREEN. 02704 M01S01269.sform +++|* 02705 M01S01270.sform +++|* CALLS GETADD, MOVEST, POSARR, WRIPAN. 02706 M01S01271.sform +++|* 02707 M01S01272.sform +++|* USES TERACTIVEP, TERACTPANI. 02708 M01S01273.sform +++|* 02709 M01S01274.sform +++|* NOTES IF TERREADFLG IS SET SFSWRI HAS BEEN CALLED BY SFSREA 02710 M01S01275.sform +++|* AND HENCE THERE IS NO OUTSTRING TO MOVE INTO VARDATA 02711 M01S01276.sform +++|* AND WHATEVER VARIABLE DATA IS PRESENTLY THERE WILL BE 02712 M01S01277.sform +++|* WRITTEN TO THE SCREEN. 02713 M01S01278.sform +++|# 02714 M01S01279.sform +++|ITEM NAME C(11); # NAME OF PANEL TO BE WRITTEN # 02715 M01S01280.sform +++|ITEM NLENGTH I; # LENGTH IN SIX BIT CHARACTERS # 02716 M01S01281.sform +++|ITEM NOFFSET I; # OFFSET INTO NAME # 02717 M01S01282.sform +++|ITEM STRING I; # OUTSTRING PARAMETER # 02718 M01S01283.sform +++|ITEM SLENGTH I; # LENGTH IN SIX BIT CHARACTERS # 02719 M01S01284.sform +++|ITEM SOFFSET I; # OFFSET INTO OUTSTRING # 02720 M01S01285.sform +++| 02721 M01S01286.sform +++|ITEM PANELNAME C(7); # PANEL NAME, LEFT JUSTIFIED # 02722 M01S01287.sform +++|ITEM PANELADDR I; # ADDRESS OF PANEL RECORD # 02723 M01S01288.sform +++|ITEM PLTINDEX I; # PANEL LOAD TABLE INDEX # 02724 M01S01289.sform +++|ITEM STRINGADDR I; # ADDRESS OF OUTSTRING # 02725 M01S01290.sform +++| 02726 M01S00785.242l642 +++|*IF DEF,QTRM 02727 M01S00786.242l642 +++|NIT$RC = NITRTC"OK"; # SET RETURN CODE # 02728 M01S00787.242l642 +++|TERMODNAME[0] = NIT$MODEL[NIT$CON]; # GET THE USERS MODEL FROM NIT # 02729 M01S00788.242l642 +++|*ENDIF 02730 M01S01291.sform +++|IF NLENGTH LS 1 THEN NLENGTH = 7; # CRACK PARAMETER # 02731 M01S01292.sform +++|PANELNAME = C<NOFFSET,NLENGTH>NAME; # LEFT JUSTIFY PANEL NAME # 02732 M01S01293.sform +++|
Line S01294 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02733 M02S01294.242l642 ---|IF PANELNAME NQ ACTIVEPAN THEN 02734 M01S00789.242l642 +++|IF PANELNAME NQ TERACTPANL[0] THEN 02735 M01S01295.sform +++| BEGIN # IF NOT THE ACTIVE PANEL #
Line S01296 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02736 M02S01296.242l642 ---| ACTIVEPAN = PANELNAME; # UPDATE ACTIVE PANEL NAME # 02737 M01S00790.242l642 +++| TERACTPANL[0] = PANELNAME; # UPDATE ACTIVE PANEL NAME # 02738 M01S01297.sform +++| GETADD(PANELNAME,PANELADDR,PLTINDEX);
Line S01298 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02739 M02S01298.242l642 ---| ACTPANPLTI = PLTINDEX; 02740 M01S00791.242l642 +++| TERACTPLTI[0] = PLTINDEX; 02741 M01S01299.sform +++| POSARR(PANELADDR); # POSITION BASED ARRAYS # 02742 M01S01300.sform +++| END 02743 M01S01301.sform +++| 02744 M01S01302.sform +++|IF PANNUMBYTE[0] NQ 0 AND NOT TERREADFLG[0] THEN 02745 M01S01303.sform +++| BEGIN # IF VARIABLE DATA PRESENT # 02746 M01S01304.sform +++| STRINGADDR = LOC(STRING); # ADDRESS OF OUTSTRING # 02747 M01S01305.sform +++| MOVEST(STRINGADDR,SOFFSET,SLENGTH); # MOVE OUTSTRING TO VARDATA # 02748 M01S01306.sform +++| END 02749 M01S01307.sform +++|
Line S00792 Modification History | |
---|---|
M01 (Added by) | 242l642 |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 02750 M02S00792.252l678 ---|IF FIRSTWRITE THEN 02751 M01S00133.252l678 +++|IF NOT TERVDTBOOC[0] THEN 02752 M01S00793.242l642 +++| BEGIN # IF FIRST WRITE #
Line S00794 Modification History | |
---|---|
M01 (Added by) | 242l642 |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 02753 M02S00794.252l678 ---| FIRSTWRITE = FALSE; 02754 M01S00134.252l678 +++| TERVDTBOOC[0] = TRUE; 02755 M01S00795.242l642 +++| VDTBOO; # BEGIN OUTPUT SEQUENCE # 02756 M01S00796.242l642 +++| END 02757 M01S01308.sform +++|WRIPAN; # WRITE PANEL # 02758 M01S01309.sform +++| 02759 M01S01310.sform +++|END # SFSWRI$ # 02760 M01S01311.sform +++|CONTROL EJECT; 02761 M01S01312.sform +++| 02762 M01S01313.sform +++|PROC BFIELD(FIELD,STARTCHAR,LASTDIRTY); 02763 M01S01314.sform +++| 02764 M01S01315.sform +++|# TITLE BFIELD - BLANK FIELD IN VARDATA. # 02765 M01S01316.sform +++| 02766 M01S01317.sform +++|BEGIN # BFIELD # 02767 M01S01318.sform +++| 02768 M01S01319.sform +++|# 02769 M01S01320.sform +++|** BFIELD - BLANK FIELD IN VARDATA. 02770 M01S01321.sform +++|* 02771 M01S01322.sform +++|* THIS PROCEDURE BLANK FILLS A FIELD IN VARDATA. 02772 M01S01323.sform +++|* 02773 M01S01324.sform +++|* PROC BFIELD(FIELD,STARTCHAR,LASTDIRTY) 02774 M01S01325.sform +++|* 02775 M01S01326.sform +++|* ENTRY FIELD = INDEX OF FIELD IN FLDLIST. 02776 M01S01327.sform +++|* STARTCHAR = POSITION TO START BLANK FILL. 02777 M01S01328.sform +++|* 02778 M01S01329.sform +++|* EXIT LASTDIRTY = LAST POSITION WITH PREVIOUS 02779 M01S01330.sform +++|* NON-BLANK CHARACTER. 02780 M01S01331.sform +++|# 02781 M01S01332.sform +++|ITEM FIELD I; # FIELD TO INITIALIZE # 02782 M01S01333.sform +++|ITEM STARTCHAR I; # STARTING CHARACTER POSITION # 02783 M01S01334.sform +++|ITEM LASTDIRTY I; # LAST NON-BLANK CHARACTER # 02784 M01S01335.sform +++| 02785 M01S01336.sform +++|ITEM CHARNUM I; # CHARACTER POSITION IN VARDATA # 02786 M01S01337.sform +++|ITEM CHARIND I; # CHARACTER INDEX IN VARDATA # 02787 M01S01338.sform +++|ITEM I I; # LOOP COUNTER # 02788 M01S01339.sform +++|ITEM WORDIND I; # WORD INDEX IN VARDATA # 02789 M01S01340.sform +++| 02790 M01S01341.sform +++|LASTDIRTY = -1; 02791 M01S01342.sform +++|CHARNUM = FLDVDTCORD[FIELD] + STARTCHAR; 02792 M01S01343.sform +++|WORDIND = CHARNUM / 5; 02793 M01S01344.sform +++|CHARIND = CHARNUM - (5 * WORDIND); 02794 M01S01345.sform +++| 02795 M01S01346.sform +++|FOR I = STARTCHAR STEP 1 UNTIL FLDLENGTH[FIELD] -1 DO 02796 M01S01347.sform +++| BEGIN # BLANK FILL FIELD IN VDATA # 02797 M01S01348.sform +++| IF NEXTCHAR(FIELD,I) NQ BLANK THEN 02798 M01S01349.sform +++| BEGIN # NON-BLANK CHARACTER # 02799 M01S01350.sform +++| LASTDIRTY = I; # UPDATE LAST DIRTY CHARACTER # 02800 M01S01351.sform +++| END 02801 M01S01352.sform +++| B<CHARIND*12,12>VDATAU[WORDIND] = BLANK; # BLANK CHARACTER POS # 02802 M01S01353.sform +++| CHARIND = CHARIND + 1; 02803 M01S01354.sform +++| IF CHARIND EQ 5 THEN 02804 M01S01355.sform +++| BEGIN 02805 M01S01356.sform +++| CHARIND = 0; 02806 M01S01357.sform +++| WORDIND = WORDIND + 1; 02807 M01S01358.sform +++| END 02808 M01S01359.sform +++| END 02809 M01S01360.sform +++| 02810 M01S01361.sform +++|END # BFIELD #
Line S01362 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02811 M02S01362.ns2275 ---|CONTROL EJECT;
Line S01363 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02812 M02S01363.ns2275 ---|
Line S01364 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02813 M02S01364.ns2275 ---|PROC CHKTRM(OPENSTAT);
Line S01365 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02814 M02S01365.ns2275 ---|
Line S01366 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02815 M02S01366.ns2275 ---|# TITLE CHKTRM - CHECK FOR SUPPORTED TERMINAL. #
Line S01367 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02816 M02S01367.ns2275 ---|
Line S01368 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02817 M02S01368.ns2275 ---|BEGIN # CHKTRM #
Line S01369 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02818 M02S01369.ns2275 ---|
Line S01370 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02819 M02S01370.ns2275 ---|#
Line S01371 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02820 M02S01371.ns2275 ---|** CHKTRM - CHECK FOR SUPPORTED TERMINAL.
Line S01372 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02821 M02S01372.ns2275 ---|*
Line S01373 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02822 M02S01373.ns2275 ---|* THIS PROCEDURE CHECKS TO SEE IF THE TERMINAL IN USE SUPPORTS
Line S01374 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02823 M02S01374.ns2275 ---|* SCREEN FORMATTING.
Line S01375 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02824 M02S01375.ns2275 ---|*
Line S01376 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02825 M02S01376.ns2275 ---|* PROC CHKTRM(OPENSTAT)
Line S01377 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02826 M02S01377.ns2275 ---|*
Line S01378 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02827 M02S01378.ns2275 ---|* ENTRY OPENSTAT = 0.
Line S01379 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02828 M02S01379.ns2275 ---|* TERMMODEL = -1.
Line S01380 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02829 M02S01380.ns2275 ---|*
Proceed to Part 2
cdc/nos2.source/opl.opl871/deck/sform.001.txt ยท Last modified: by 127.0.0.1