Seq # *Modification Id* Act
----------------------------+
01453 M00S00705.sform +++|
01454 M00S00706.sform +++|GFIELD(VNAME,USEROW,FLDIND); # GET ASSOCIATED FIELD #
01455 M00S00707.sform +++|IF FLDIND EQ -1 THEN GOTO INTERROR; # FIELD NOT FOUND #
01456 M00S00708.sform +++|
01457 M00S00709.sform +++|ALLBLANK = TRUE;
01458 M00S00710.sform +++|FOR I = 0 STEP 1 WHILE ALLBLANK AND I LQ FLDLENGTH[FLDIND] -1 DO
01459 M00S00711.sform +++| BEGIN # CHECK IF BLANK FIELD #
01460 M00S00712.sform +++| IF NEXTCHAR(FLDIND,I) NQ BLANK THEN ALLBLANK = FALSE;
01461 M00S00713.sform +++| END
01462 M00S00714.sform +++|IF ALLBLANK THEN
01463 M00S00715.sform +++| BEGIN # BLANK FIELD #
01464 M00S00716.sform +++| VALUE = 0;
01465 M00S00717.sform +++| RETURN;
01466 M00S00718.sform +++| END
01467 M00S00719.sform +++|
01468 M00S00720.sform +++|HOLDVALID = FLDVALID[FLDIND]; # SAVE VALID FLAG #
01469 M00S00721.sform +++|FLDVALID[FLDIND] = TRUE;
01470 M00S00722.sform +++|IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"Y"
01471 M00S00723.sform +++| OR VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"M"
01472 M00S00724.sform +++| OR VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"D" THEN
01473 M00S00725.sform +++| BEGIN # DATE FORMAT FIELD #
Line S00001 Modification History |
M01 (Added by) | sform10 |
Seq # *Modification Id* Act
----------------------------+
01474 M01S00001.sform10 +++| FORMAT = VARPICTYPE[FLDVARORD[FLDIND]]; # SET FORMAT TYPE #
01475 M00S00726.sform +++| DATEVL(FLDIND,IVALUE); # GET VALUE #
01476 M00S00727.sform +++| END
01477 M00S00728.sform +++|ELSE
01478 M00S00729.sform +++| BEGIN # NUMERIC FIELD #
01479 M00S00730.sform +++| NCHECK(FLDIND,IVALUE,EVALUE,FORMAT,CURRENCY);
01480 M00S00731.sform +++| IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"$" THEN
01481 M00S00732.sform +++| BEGIN # WEIGHT CURRENCY INPUT #
01482 M00S00733.sform +++| IF EVALUE EQ 0 THEN IVALUE = IVALUE * 100;
01483 M00S00734.sform +++| ELSE IF EVALUE EQ -1 THEN IVALUE = IVALUE * 10;
01484 M00S00735.sform +++| END
01485 M00S00736.sform +++| ELSE
01486 M00S00737.sform +++| BEGIN # NOT CURRENCY #
01487 M00S00738.sform +++| IF EVALUE LS 0 THEN
01488 M00S00739.sform +++| BEGIN # TRUNCATE DECIMAL DIGITS #
01489 M00S00740.sform +++| FOR I = -1 STEP -1 UNTIL EVALUE DO IVALUE = IVALUE/10;
01490 M00S00741.sform +++| END
01491 M00S00742.sform +++| ELSE
01492 M00S00743.sform +++| BEGIN # RAISE TO POWER OF EXPONENT #
01493 M00S00744.sform +++| FOR I = 1 STEP 1 UNTIL EVALUE DO IVALUE = IVALUE*10;
01494 M00S00745.sform +++| END
01495 M00S00746.sform +++| END
01496 M00S00747.sform +++| END
01497 M00S00748.sform +++|
01498 M00S00749.sform +++|IF NOT FLDVALID[FLDIND] OR FORMAT EQ FORMTYPE"BAD"THEN
01499 M00S00750.sform +++| BEGIN # ERRORS IN INPUT #
01500 M00S00751.sform +++| GOTO INTERROR;
01501 M00S00752.sform +++| END
01502 M00S00753.sform +++|FLDVALID[FLDIND] = HOLDVALID; # RESET VALID FLAG #
01503 M00S00754.sform +++|VALUE = IVALUE;
01504 M00S00755.sform +++|RETURN;
01505 M00S00756.sform +++|
01506 M00S00757.sform +++|INTERROR: # CANNOT RETURN VALUE #
01507 M00S00758.sform +++|
01508 M00S00759.sform +++| IF FLDIND NQ -1 THEN FLDVALID[FLDIND] = HOLDVALID;
01509 M00S00760.sform +++| VALUE = ERRORVAL;
01510 M00S00761.sform +++|
01511 M00S00762.sform +++|END # SFGETI$ #
01512 M00S00763.sform +++|CONTROL EJECT;
01513 M00S00764.sform +++|
01514 M00S00765.sform +++|PROC SFGETK(GENERIC,ORDINAL);
01515 M00S00766.sform +++|
01516 M00S00767.sform +++|# TITLE SFGETK - GET FUNCTION KEY. #
01517 M00S00768.sform +++|
01518 M00S00769.sform +++|BEGIN # SFGETK #
01519 M00S00770.sform +++|
01520 M00S00771.sform +++|#
01521 M00S00772.sform +++|** SFGETK - GET FUNCTION KEY.
01522 M00S00773.sform +++|*
01523 M00S00774.sform +++|* SFGETK RETURNS THE ORDINAL OF THE LAST FUNCTION KEY PROCESSED.
01524 M00S00775.sform +++|*
01525 M00S00776.sform +++|* PROC SFGETK(GENERIC,ORDINAL)
01526 M00S00777.sform +++|*
01527 M00S00778.sform +++|* ENTRY TERFUNCGEN = TRUE IF GENERIC FUNCTION KEY.
Line S00779 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
01528 M01S00779.242l642 ---|* FUNCORD = ORDINAL OF FUNCTION KEY.
Line S00299 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
01529 M01S00299.242l642 +++|* TERFUNCORD = ORDINAL OF FUNCTION KEY.
01530 M00S00780.sform +++|*
01531 M00S00781.sform +++|* EXIT GENERIC = TRUE IF GENERIC FUNCTION KEY.
01532 M00S00782.sform +++|* ORDINAL = ORDINAL OF FUNCTION KEY.
01533 M00S00783.sform +++|#
01534 M00S00784.sform +++|ITEM GENERIC B; # GENERIC/APPLICATION KEY FLAG #
01535 M00S00785.sform +++|ITEM ORDINAL I; # FUNCTION KEY ORDINAL #
01536 M00S00786.sform +++|
01537 M00S00787.sform +++|GENERIC = TERFUNCGEN[0]; # RETURN GENERIC FLAG #
Line S00788 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
01538 M01S00788.242l642 ---|ORDINAL = FUNCORD; # RETURN FUNCTION ORDINAL #
Line S00300 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
01539 M01S00300.242l642 +++|ORDINAL = TERFUNCORD[0]; # RETURN FUNCTION ORDINAL #
Line S00789 Modification History |
M01 (Removed by) | sform9 |
Seq # *Modification Id* Act
----------------------------+
01540 M01S00789.sform9 ---|IF TERFUNCGEN[0] AND FUNCORD GR 16 THEN ORDINAL = 1; # RETURN NEXT #
01541 M00S00790.sform +++|
01542 M00S00791.sform +++|END # SFGETK #
01543 M00S00792.sform +++|CONTROL EJECT;
01544 M00S00793.sform +++|
Line S00002 Modification History |
M01 (Added by) | 241l630 |
Seq # *Modification Id* Act
----------------------------+
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 (Removed by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
01554 M02S00011.sform17 ---|* SFGETN$ RETURNS THE TERMINAL MODEL NAME.
Line S00001 Modification History |
M01 (Added by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
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.
Line S00012 Modification History |
M01 (Added by) | 241l630 |
Seq # *Modification Id* Act
----------------------------+
01557 M01S00012.241l630 +++|*
01558 M01S00013.241l630 +++|* PROC SFGETN$(MODEL,MLEN,MOFF)
01559 M01S00014.241l630 +++|*
Line S00003 Modification History |
M01 (Added by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
01560 M01S00003.sform17 +++|* ENTRY MLEN = LENGTH OF MODEL NAME FIELD.
01561 M01S00004.sform17 +++|* MOFF = OFFSET OF MODEL NAME FIELD.
01562 M01S00005.sform17 +++|*
Line S00015 Modification History |
M01 (Added by) | 241l630 |
Seq # *Modification Id* Act
----------------------------+
01563 M01S00015.241l630 +++|* EXIT MODEL = TERMINAL MODEL NAME.
Line S00016 Modification History |
M01 (Added by) | 241l630 |
M02 (Removed by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
01564 M02S00016.sform17 ---|* MLEN = LENGTH OF MODEL NAME.
01565 M02S00017.sform17 ---|* MOFF = OFFSET OF MODEL NAME.
Line S00018 Modification History |
M01 (Added by) | 241l630 |
Seq # *Modification Id* Act
----------------------------+
01566 M01S00018.241l630 +++|*
01567 M01S00019.241l630 +++|* CALLS VDTITD.
01568 M01S00020.241l630 +++|#
Line S00006 Modification History |
M01 (Added by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
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
Line S00021 Modification History |
M01 (Added by) | 241l630 |
Seq # *Modification Id* Act
----------------------------+
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 #
Line S00011 Modification History |
M01 (Added by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
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 #
Line S00024 Modification History |
M01 (Added by) | 241l630 |
Seq # *Modification Id* Act
----------------------------+
01580 M01S00024.241l630 +++|
Line S00025 Modification History |
M01 (Added by) | 241l630 |
M02 (Removed by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
01581 M02S00025.sform17 ---|MLEN = 6; # SET LENGTH #
01582 M02S00026.sform17 ---|VDTITD(MODEL); # GET MODEL NAME #
01583 M02S00027.sform17 ---|FOR MOFF = MLEN - 1 STEP -1 WHILE MOFF GQ 1 AND C<MOFF,1>MODEL EQ 0 DO
Line S00014 Modification History |
M01 (Added by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
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
Line S00028 Modification History |
M01 (Added by) | 241l630 |
Seq # *Modification Id* Act
----------------------------+
01588 M01S00028.241l630 +++| BEGIN # BLANK FILL MODEL NAME #
Line S00029 Modification History |
M01 (Added by) | 241l630 |
M02 (Removed by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
01589 M02S00029.sform17 ---| C<MOFF,1>MODEL = " ";
01590 M02S00030.sform17 ---| END
01591 M02S00031.sform17 ---|MOFF = 0; # SET OFFSET #
Line S00018 Modification History |
M01 (Added by) | sform17 |
Seq # *Modification Id* Act
----------------------------+
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
Line S00032 Modification History |
M01 (Added by) | 241l630 |
Seq # *Modification Id* Act
----------------------------+
01606 M01S00032.241l630 +++|
01607 M01S00033.241l630 +++|END # SFGETN$ #
01608 M01S00034.241l630 +++|CONTROL EJECT;
01609 M01S00035.241l630 +++|
01610 M00S00794.sform +++|PROC SFGETP$(VARNAME,VLEN,VOFF,OFFSET,ROWNUM);
01611 M00S00795.sform +++|
01612 M00S00796.sform +++|# TITLE SFGETP$ - GET LAST CURSOR POSITION. #
01613 M00S00797.sform +++|
01614 M00S00798.sform +++|BEGIN # SFGETP$ #
01615 M00S00799.sform +++|
01616 M00S00800.sform +++|#
01617 M00S00801.sform +++|** SFGETP$ - GET LAST CURSOR POSITION.
Line S00036 Modification History |
M01 (Added by) | 241l630 |
Seq # *Modification Id* Act
----------------------------+
01618 M01S00036.241l630 +++|*
01619 M01S00037.241l630 +++|* SFGETP$ RETURNS VALUES THAT DEFINE THE LAST POSITION OF THE
01620 M01S00038.241l630 +++|* SCREEN CURSOR.
01621 M00S00802.sform +++|*
01622 M00S00803.sform +++|* PROC SFGETP$(VARNAME,VLEN,VOFF,OFFSET,ROWNUM)
01623 M00S00804.sform +++|*
01624 M00S00805.sform +++|* ENTRY VARNAME = LOCATION OF VARIABLE PARAMETER.
01625 M00S00806.sform +++|* VLEN = LENGTH OF VARNAME.
01626 M00S00807.sform +++|* VOFF = OFFSET OF VARNAME.
01627 M00S00808.sform +++|*
01628 M00S00809.sform +++|* EXIT VARNAME = VARIABLE NAME OF FIELD.
01629 M00S00810.sform +++|* OFFSET = OFFSET OF CURSOR IN FIELD.
01630 M00S00811.sform +++|* ROWNUM = ROW NUMBER OF FIELD.
01631 M00S00812.sform +++|*
01632 M00S00813.sform +++|* CALLS FFIELD.
01633 M00S00814.sform +++|#
01634 M00S00815.sform +++|ITEM VARNAME C(11); # VARIABLE NAME #
01635 M00S00816.sform +++|ITEM VLEN I; # LENGTH OF VARNAME PARAMETER #
01636 M00S00817.sform +++|ITEM VOFF I; # OFFSET INTO VARNAME PARAMETER #
01637 M00S00818.sform +++|ITEM OFFSET I; # OFFSET INTO FIELD #
01638 M00S00819.sform +++|ITEM ROWNUM I; # ROW NUMBER IN ARRAY #
01639 M00S00820.sform +++|
01640 M00S00821.sform +++|ITEM FIELD I; # FUNCTION FIELD #
01641 M00S00822.sform +++|ITEM I I; # LOOP COUNTER #
01642 M00S00823.sform +++|ITEM OUTSEARCH B=TRUE; # INCLUDE OUTPUT ONLY FIELDS #
01643 M00S00824.sform +++|ITEM VARIND I; # VARIABLE ORDINAL OF FIELD #
01644 M00S00825.sform +++|
01645 M00S00826.sform +++|IF VLEN LS 1 THEN VLEN = 7; # CRACK PARAMETER #
01646 M00S00827.sform +++|C<VOFF,VLEN>VARNAME = " ";
01647 M00S00828.sform +++|
01648 M00S00829.sform +++|ROWNUM = 0; # FIND FIELD #
Line S00830 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
01649 M01S00830.242l642 ---|FFIELD(FUNCPOS,FIELD,OFFSET,OUTSEARCH);
Line S00301 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
01650 M01S00301.242l642 +++|FFIELD(TERFUNCPOS[0],FIELD,OFFSET,OUTSEARCH);
01651 M00S00831.sform +++|
01652 M00S00832.sform +++|IF VALIDFIELD THEN
01653 M00S00833.sform +++| BEGIN # IF FIELD FOUND #
01654 M00S00834.sform +++| OFFSET = OFFSET + 1;
01655 M00S00835.sform +++| VARIND = FLDVARORD[FIELD];
01656 M00S00836.sform +++| C<VOFF,VLEN>VARNAME = VARNME[VARIND];
01657 M00S00837.sform +++| IF VARARRORD[VARIND] NQ 0 THEN
01658 M00S00838.sform +++| BEGIN # IF ARRAY MEMBER #
01659 M00S00839.sform +++| ROWNUM = VARROWNUM[VARIND] + 1;
01660 M00S00840.sform +++| END
01661 M00S00841.sform +++| END
01662 M00S00842.sform +++|
01663 M00S00843.sform +++|END # SFGETP$ #
01664 M00S00844.sform +++|CONTROL EJECT;
01665 M00S00845.sform +++|
01666 M00S00846.sform +++|PROC SFGETR$(VARNAME,VLEN,VOFF,VALUE);
01667 M00S00847.sform +++|
01668 M00S00848.sform +++|# TITLE SFGETR$ - GET REAL VALUE. #
01669 M00S00849.sform +++|
01670 M00S00850.sform +++|BEGIN # SFGETR$ #
01671 M00S00851.sform +++|
01672 M00S00852.sform +++|#
01673 M00S00853.sform +++|** SFGETR$ - GET REAL VALUE.
01674 M00S00854.sform +++|*
01675 M00S00855.sform +++|* SFGETR$ RETURNS THE REAL NUMERIC VALUE OF THE FIELD
01676 M00S00856.sform +++|* SPECIFIED BY VARNAME.
01677 M00S00857.sform +++|*
01678 M00S00858.sform +++|* PROC SFGETR$(VARNAME,VLEN,VOFF,VALUE)
01679 M00S00859.sform +++|*
01680 M00S00860.sform +++|* ENTRY VARNAME = VARIABLE NAME OF FIELD.
01681 M00S00861.sform +++|* VLEN = LENGTH OF VARNAME.
01682 M00S00862.sform +++|* VOFF = OFFSET OF VARNAME.
01683 M00S00863.sform +++|*
01684 M00S00864.sform +++|* EXIT VALUE = REAL VALUE OF SPECIFIED FIELD.
01685 M00S00865.sform +++|*
01686 M00S00866.sform +++|* CALLS DATEVL, GFIELD, NCHECK.
01687 M00S00867.sform +++|#
01688 M00S00868.sform +++|ITEM VARNAME C(11); # VARIABLE NAME #
01689 M00S00869.sform +++|ITEM VLEN I; # LENGTH OF VARNAME PARAMETER #
01690 M00S00870.sform +++|ITEM VOFF I; # OFFSET INTO VARNAME PARAMETER #
01691 M00S00871.sform +++|ITEM VALUE R; # VALUE OF INPUT #
01692 M00S00872.sform +++|
01693 M00S00873.sform +++|ITEM ALLBLANK B; # ALL CHARACTERS IN FIELD BLANK #
01694 M00S00874.sform +++|ITEM CURRENCY B; # TRUE IF DOLLAR SIGN INPUT #
01695 M00S00875.sform +++|ITEM ERRORVAL R = 0; # RETURNED IF ERROR IN FIELD #
01696 M00S00876.sform +++|ITEM EVALUE I; # EXPONENT VALUE #
01697 M00S00877.sform +++|ITEM FLDIND I; # FIELD ORDINAL #
01698 M00S00878.sform +++|ITEM FORMAT I; # FORMAT OF INPUT #
01699 M00S00879.sform +++|ITEM FPSTAT I; # GFP OVERFLOW STATUS #
01700 M00S00880.sform +++|ITEM HOLDVALID B; # HOLD FLDVALID VALUE #
01701 M00S00881.sform +++|ITEM I I; # LOOP COUNTER #
01702 M00S00882.sform +++|ITEM IVALUE I; # INTEGER VALUE #
Line S00883 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
01703 M01S00883.242l642 ---|ITEM USEROW B = FALSE; # DO NOT USE CURSORROW #
Line S00302 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
01704 M01S00302.242l642 +++|ITEM USEROW B = FALSE; # DO NOT USE TERCURSROW #
01705 M00S00884.sform +++|ITEM VNAME C(7); # VARIABLE NAME LEFT JUSTIFIED #
01706 M00S00885.sform +++|
01707 M00S00886.sform +++|IF VLEN LS 1 THEN VLEN = 7; # CRACK PARAMETER #
01708 M00S00887.sform +++|VNAME = C<VOFF,VLEN>VARNAME;
01709 M00S00888.sform +++|
01710 M00S00889.sform +++|GFIELD(VNAME,USEROW,FLDIND); # GET ASSOCIATED FIELD #
01711 M00S00890.sform +++|IF FLDIND EQ -1 THEN GOTO REALERROR; # FIELD NOT FOUND #
01712 M00S00891.sform +++|
01713 M00S00892.sform +++|ALLBLANK = TRUE;
01714 M00S00893.sform +++|FOR I = 0 STEP 1 WHILE ALLBLANK AND I LQ FLDLENGTH[FLDIND] -1 DO
01715 M00S00894.sform +++| BEGIN # CHECK IF BLANK FIELD #
01716 M00S00895.sform +++| IF NEXTCHAR(FLDIND,I) NQ BLANK THEN ALLBLANK = FALSE;
01717 M00S00896.sform +++| END
01718 M00S00897.sform +++|IF ALLBLANK THEN
01719 M00S00898.sform +++| BEGIN # BLANK FIELD #
01720 M00S00899.sform +++| VALUE = 0;
01721 M00S00900.sform +++| RETURN;
01722 M00S00901.sform +++| END
01723 M00S00902.sform +++|
01724 M00S00903.sform +++|HOLDVALID = FLDVALID[FLDIND]; # SAVE FLDVALID #
01725 M00S00904.sform +++|FLDVALID[FLDIND] = TRUE;
01726 M00S00905.sform +++|
01727 M00S00906.sform +++|IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"Y"
01728 M00S00907.sform +++| OR VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"M"
01729 M00S00908.sform +++| OR VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"D" THEN
01730 M00S00909.sform +++| BEGIN # IF DATE FORMAT #
01731 M00S00910.sform +++| DATEVL(FLDIND,IVALUE); # GET VALUE #
01732 M00S00911.sform +++| EVALUE = 0;
01733 M00S00912.sform +++| END
01734 M00S00913.sform +++|ELSE
01735 M00S00914.sform +++| BEGIN # GET NUMERIC VALUE #
01736 M00S00915.sform +++| NCHECK(FLDIND,IVALUE,EVALUE,FORMAT,CURRENCY);
01737 M00S00916.sform +++| END
01738 M00S00917.sform +++|
01739 M00S00918.sform +++|IF NOT FLDVALID[FLDIND] OR FORMAT EQ FORMTYPE"BAD"THEN
01740 M00S00919.sform +++| BEGIN # ERRORS IN INPUT #
01741 M00S00920.sform +++| GOTO REALERROR;
01742 M00S00921.sform +++| END
01743 M00S00922.sform +++|FLDVALID[FLDIND] = HOLDVALID;
01744 M00S00923.sform +++|
01745 M00S00924.sform +++|FPSTAT = GFP(IVALUE,EVALUE,VALUE); # GENERATE REAL VALUE #
01746 M00S00925.sform +++|IF FPSTAT EQ 0 THEN RETURN; # IF NO OVERFLOW ERROR #
01747 M00S00926.sform +++|
01748 M00S00927.sform +++|REALERROR: # CANNOT RETURN VALUE #
01749 M00S00928.sform +++|
01750 M00S00929.sform +++| IF FLDIND NQ -1 THEN FLDVALID[FLDIND] = HOLDVALID;
01751 M00S00930.sform +++| VALUE = ERRORVAL;
01752 M00S00931.sform +++|
01753 M00S00932.sform +++|END # SFGETR$ #
Line S00303 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 M00S00933.sform +++|CONTROL EJECT;
01973 M00S00934.sform +++|
Line S00003 Modification History |
M01 (Added by) | ns2619 |
Seq # *Modification Id* Act
----------------------------+
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 M00S00935.sform +++|PROC SFOPEN$(NAME,NLENGTH,NOFFSET,OPENSTAT);
02016 M00S00936.sform +++|
02017 M00S00937.sform +++|# TITLE SFOPEN$ - OPEN PANEL. #
02018 M00S00938.sform +++|
02019 M00S00939.sform +++|BEGIN # SFOPEN$ #
02020 M00S00940.sform +++|
02021 M00S00941.sform +++|#
02022 M00S00942.sform +++|** SFOPEN$ - OPEN PANEL.
02023 M00S00943.sform +++|*
Line S00944 Modification History |
M01 (Removed by) | sform9 |
Seq # *Modification Id* Act
----------------------------+
02024 M01S00944.sform9 ---|* THIS PROCEDURE CALLS *CHKTRM* TO CHECK TO SEE IF THE TERMINAL
Line S00001 Modification History |
M01 (Added by) | sform9 |
Seq # *Modification Id* Act
----------------------------+
02025 M01S00001.sform9 +++|* THIS PROCEDURE CHECKS (VIA VDTGSL/VDTITD) TO SEE IF THE TERMINAL
02026 M00S00945.sform +++|* IN USE IS SUPPORTED UNDER SCREEN FORMATTING (UNLESS THIS HAS
02027 M00S00946.sform +++|* ALREADY BEEN DONE BY A PREVIOUS CALL TO SFOPEN.) IF THE TERM-
02028 M00S00947.sform +++|* INAL IS SUPPORTED THEN *SFLOAD* IS CALLED TO LOAD THE PANEL
02029 M00S00948.sform +++|* VIA THE FAST DYNAMIC LOADER (EXCEPT FOR THOSE PANELS THAT ARE
02030 M00S00949.sform +++|* STATICALLY LOADED AND THUS ALWAYS PRESENT IN MEMORY) AND THE
02031 M00S00950.sform +++|* PANEL LOAD TABLE IS UPDATED IF THE LOAD WAS SUCCESSFUL. THE
02032 M00S00951.sform +++|* STATUS OF THE OPEN IS RETURNED TO THE CALLING APPLICATION IN
02033 M00S00952.sform +++|* ALL CASES INDICATING THAT THE OPEN WAS SUCCESSFUL OR AN ERROR
02034 M00S00953.sform +++|* CODE INDICATING WHY NOT. SFOPEN$ INTERFACES TO COBOL AND FOR-
02035 M00S00954.sform +++|* TRAN PROGRAMS THROUGH A COMPASS INTERFACE MODULE CALLED SFOPEN.
02036 M00S00955.sform +++|*
02037 M00S00956.sform +++|* PROC SFOPEN$(NAME,NLENGTH,NOFFSET,OPENSTAT)
02038 M00S00957.sform +++|*
02039 M00S00958.sform +++|* ENTRY NAME = NAME OF PANEL TO BE OPENED.
02040 M00S00959.sform +++|* NLENGTH = LENGTH IN SIX BIT CHARACTERS.
02041 M00S00960.sform +++|* NOFFSET = OFFSET INTO NAME.
02042 M00S00961.sform +++|*
02043 M00S00962.sform +++|* EXIT PANEL OPENED IF POSSIBLE, OPENSTAT SET REGARDLESS.
02044 M00S00963.sform +++|*
Line S00964 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02045 M01S00964.242l642 ---|* CALLS CHKTRM, SETSRN, SFLOAD.
Line S00521 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 M00S00965.sform +++|*
02052 M00S00966.sform +++|* NOTES OPENSTAT IS SET BY SFOPEN IN SOME CASES AND IS ALSO
02053 M00S00967.sform +++|* A PARAMETER ON THE CALL TO SFLOAD IN THOSE INSTANCES
02054 M00S00968.sform +++|* WHERE THE FAST DYNAMIC LOADER IS TO BE CALLED.
02055 M00S00969.sform +++|*
02056 M00S00970.sform +++|* OPENSTAT SIGNIFICANCE PROCEDURE
02057 M00S00971.sform +++|* .....................................................
02058 M00S00972.sform +++|* . 0 . NO ERROR . BOTH .
02059 M00S00973.sform +++|* . 1 . UNKNOWN PANEL NAME . SFLOAD .
02060 M00S00974.sform +++|* . 2 . INCORRECT CAPSULE FORMAT . SFLOAD .
02061 M00S00975.sform +++|* . 3 . PLT FULL (TOO MANY OPEN PANELS) . SFOPEN .
02062 M00S00976.sform +++|* . 4 . PANEL ALREADY OPEN . SFOPEN .
02063 M00S00977.sform +++|* . 5 . INTERNAL (FAST DYNAMIC LOADER) . SFLOAD .
02064 M00S00978.sform +++|* . 6 . NO SCREEN COMMAND ISSUED . SFOPEN .
02065 M00S00979.sform +++|* . 7 . UNSUPPORTED TERMINAL . SFOPEN .
02066 M00S00980.sform +++|* .....................................................
02067 M00S00981.sform +++|#
02068 M00S00982.sform +++|ITEM NAME C(11); # NAME OF PANEL TO OPEN #
02069 M00S00983.sform +++|ITEM NLENGTH I; # LENGTH IN SIX BIT CHARACTERS #
02070 M00S00984.sform +++|ITEM NOFFSET I; # OFFSET INTO NAME #
02071 M00S00985.sform +++|ITEM OPENSTAT I; # RETURNS STATUS TO APPLICATION #
02072 M00S00986.sform +++|
Line S00526 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02073 M01S00526.242l642 +++|ITEM MODELNAME C(7); # MODEL NAME FOR VDTITD CALL #
02074 M00S00987.sform +++|ITEM NAMEINDEX I; # INDEX OF PANEL IF FOUND #
02075 M00S00988.sform +++|ITEM PANELADDR I; # MEMORY ADDRESS OF PANEL #
02076 M00S00989.sform +++|ITEM PANELNAME C(7); # PANEL NAME, LEFT JUSTIFIED #
02077 M00S00990.sform +++|ITEM PLTINDEX I; # INDEX INTO PANEL LOAD TABLE #
02078 M00S00991.sform +++|ITEM SCREEN I = 1; # INDICATES SCREEN MODE TO VDT #
02079 M00S00992.sform +++|ITEM SCREENDIM I; # SCREEN DIMENSIONS FOR SETSRN #
Line S00527 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02080 M01S00527.242l642 +++|*IF DEF,QTRM
02081 M01S00528.242l642 +++|ITEM QTPLTINDEX I; # INDEX INTO QTRM USERS PLT #
02082 M01S00529.242l642 +++|*ENDIF
02083 M00S00993.sform +++|
Line S00994 Modification History |
M01 (Removed by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02084 M01S00994.ns2275 ---|OPENSTAT = 0; # CLEAR OPEN STATUS #
02085 M01S00995.ns2275 ---|IF TERMMODEL EQ -1 THEN
02086 M01S00996.ns2275 ---| BEGIN # IF NO CHECK FOR SUPPORT YET #
02087 M01S00997.ns2275 ---| CHKTRM(OPENSTAT); # CHECK FOR SUPPORTED TERMINAL #
Line S00012 Modification History |
M01 (Added by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02088 M01S00012.ns2275 +++|OPENSTAT = OPENSTATUS"NOERROR"; # CLEAR OPEN STATUS #
Line S00013 Modification History |
M01 (Added by) | ns2275 |
M02 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02089 M02S00013.242l642 ---|IF TERMMODEL EQ " " THEN
Line S00530 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02090 M01S00530.242l642 +++|IF TERMODNAME[0] EQ " " THEN
Line S00014 Modification History |
M01 (Added by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02091 M01S00014.ns2275 +++| BEGIN # IF *TDU* TABLE NOT YET READ #
Line S00015 Modification History |
M01 (Added by) | ns2275 |
M02 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02092 M02S00015.242l642 ---| VDTGSL(DUMMY,OPENSTAT); # CHECK SYSTEM SCREEN/LINE #
Line S00531 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02099 M02S00016.242l642 ---| IF OPENSTAT EQ 1 THEN
02100 M02S00017.242l642 ---| BEGIN # IF SCREEN MODE #
Line S00537 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 #
Line S00018 Modification History |
M01 (Added by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02107 M01S00018.ns2275 +++| OPENSTAT = OPENSTATUS"NOERROR"; # CLEAR OPEN STATUS #
Line S00019 Modification History |
M01 (Added by) | ns2275 |
M02 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02108 M02S00019.242l642 ---| VDTITD(TERMMODEL); # INITIALIZE *TDU* TABLE #
02109 M02S00020.242l642 ---| IF TERMMODEL EQ " " THEN OPENSTAT = OPENSTATUS"UNSPTERM";
Line S00543 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02110 M01S00543.242l642 +++| VDTITD(MODELNAME); # INITIALIZE *TDU* TABLE #
Line S00544 Modification History |
M01 (Added by) | 242l642 |
M02 (Removed by) | ns2671 |
Seq # *Modification Id* Act
----------------------------+
02111 M02S00544.ns2671 ---| TERMODNAME[0] = MODELNAME;
Line S00021 Modification History |
M01 (Added by) | ns2275 |
M02 (Removed by) | 242l642 |
M03 (Removed by) | ns2671 |
Seq # *Modification Id* Act
----------------------------+
02112 M03S00021.ns2671 ---| END
02113 M03S00022.ns2671 ---| ELSE
02114 M03S00023.ns2671 ---| BEGIN # OS MODE IS LINE #
02115 M03S00024.ns2671 ---| OPENSTAT = OPENSTATUS"NOSCREEN"; # RETURN STATUS #
Line S00545 Modification History |
M01 (Added by) | 242l642 |
M02 (Removed by) | ns2605 |
M03 (Removed 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 (Removed by) | ns2671 |
Seq # *Modification Id* Act
----------------------------+
02117 M02S00055.ns2671 ---| IF TERMODNAME[0] EQ " " THEN
Line S00001 Modification History |
M01 (Added by) | ns2671 |
Seq # *Modification Id* Act
----------------------------+
02118 M01S00001.ns2671 +++| IF C<0,6>MODELNAME EQ " " THEN
Line S00056 Modification History |
M01 (Added by) | ns2605 |
Seq # *Modification Id* Act
----------------------------+
02119 M01S00056.ns2605 +++| BEGIN # IF TERMINAL UNDEFINED #
Line S00002 Modification History |
M01 (Added by) | ns2671 |
Seq # *Modification Id* Act
----------------------------+
02120 M01S00002.ns2671 +++| TERMODNAME[0] = " ";
Line S00057 Modification History |
M01 (Added by) | ns2605 |
Seq # *Modification Id* Act
----------------------------+
02121 M01S00057.ns2605 +++| OPENSTAT = OPENSTATUS"UNSPTERM";
02122 M01S00058.ns2605 +++| END
02123 M01S00059.ns2605 +++| ELSE
02124 M01S00060.ns2605 +++| BEGIN # SUPPORTED TERMINAL #
Line S00003 Modification History |
M01 (Added by) | ns2671 |
Seq # *Modification Id* Act
----------------------------+
02125 M01S00003.ns2671 +++| TERMODNAME[0] = MODELNAME;
Line S00061 Modification History |
M01 (Added by) | ns2605 |
Seq # *Modification Id* Act
----------------------------+
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
Line S00025 Modification History |
M01 (Added by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02137 M01S00025.ns2275 +++| END
02138 M00S00998.sform +++| END
02139 M00S00999.sform +++|
Line S01000 Modification History |
M01 (Removed by) | sform9 |
Seq # *Modification Id* Act
----------------------------+
02140 M01S01000.sform9 ---|IF OPENSTAT EQ 0 THEN
Line S00002 Modification History |
M01 (Added by) | sform9 |
Seq # *Modification Id* Act
----------------------------+
02141 M01S00002.sform9 +++|IF OPENSTAT EQ OPENSTATUS"NOERROR" THEN
02142 M00S01001.sform +++| BEGIN # IF TERMINAL CAN BE USED #
02143 M00S01002.sform +++| IF NOT TERSCREENM[0] THEN
02144 M00S01003.sform +++| BEGIN # IF NOT IN SCREEN MODE #
02145 M00S01004.sform +++| SCREENDIM = 1; # ASK FOR SMALLEST SCREEN SIZE #
02146 M00S01005.sform +++| SETSRN(SCREENDIM,SCREENDIM); # SET SCREEN MODE #
02147 M00S01006.sform +++| END
02148 M00S01007.sform +++| IF NLENGTH LS 1 THEN NLENGTH = 7; # LEFT JUSTIFY PANEL NAME #
02149 M00S01008.sform +++| PANELNAME = C<NOFFSET,NLENGTH>NAME;
Line S00546 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 M00S01009.sform +++| P<PLTABLE> = LOC(PLT); # REFERENCE PANEL LOAD TABLE #
02194 M00S01010.sform +++| PANELADDR = 0; # CHECK FOR PANEL NAME IN TABLE #
02195 M00S01011.sform +++| FOR PLTINDEX = 1 STEP 1 WHILE
02196 M00S01012.sform +++| PANELADDR EQ 0 AND PLTINDEX LQ PLTNUMENT[0] DO
02197 M00S01013.sform +++| BEGIN
02198 M00S01014.sform +++| IF PLTENAME[PLTINDEX] EQ PANELNAME THEN
02199 M00S01015.sform +++| BEGIN # IF PANEL NAME FOUND #
02200 M00S01016.sform +++| PANELADDR = PLTADDR[PLTINDEX]; # SET PANEL ADDRESS #
02201 M00S01017.sform +++| NAMEINDEX = PLTINDEX; # SET INDEX INTO PLT #
02202 M00S01018.sform +++| END
02203 M00S01019.sform +++| END
02204 M00S01020.sform +++| IF PANELADDR EQ 0 THEN
02205 M00S01021.sform +++| BEGIN # IF PANELNAME NOT IN PLT #
02206 M00S01022.sform +++| IF PLTNUMENT[0] GQ PLTENTRYNM[0] THEN
02207 M00S01023.sform +++| BEGIN # IF PANEL LOAD TABLE IS FULL #
Line S01024 Modification History |
M01 (Removed by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02208 M01S01024.ns2275 ---| OPENSTAT = 3; # PANEL LOAD TABLE FULL #
Line S00026 Modification History |
M01 (Added by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02209 M01S00026.ns2275 +++| OPENSTAT = OPENSTATUS"PLTFULL";
02210 M00S01025.sform +++| END
02211 M00S01026.sform +++| ELSE
02212 M00S01027.sform +++| BEGIN # LOAD VIA FAST DYNAMIC LOADER #
02213 M00S01028.sform +++| SFLOAD(PANELNAME,PANELADDR,OPENSTAT);
Line S00225 Modification History |
M01 (Added by) | 243l647 |
Seq # *Modification Id* Act
----------------------------+
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
Line S00589 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 M00S01029.sform +++| END
02230 M00S01030.sform +++| END
02231 M00S01031.sform +++| ELSE
02232 M00S01032.sform +++| BEGIN # IF PANEL ALREADY IN PLT #
02233 M00S01033.sform +++| IF PLTOPENFLG[NAMEINDEX] THEN
02234 M00S01034.sform +++| BEGIN # IF PANEL IS ALREADY OPEN #
Line S01035 Modification History |
M01 (Removed by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02235 M01S01035.ns2275 ---| OPENSTAT = 4; # PANEL ALREADY OPEN #
Line S00027 Modification History |
M01 (Added by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02236 M01S00027.ns2275 +++| OPENSTAT = OPENSTATUS"PANELOPEN";
02237 M00S01036.sform +++| END
02238 M00S01037.sform +++| ELSE
02239 M00S01038.sform +++| BEGIN # OPEN STATICALLY LOADED PANEL #
02240 M00S01039.sform +++| PLTOPENFLG[NAMEINDEX] = TRUE; # SET PANEL OPEN #
Line S00599 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02241 M01S00599.242l642 +++|*IF DEF,QTRM
02242 M01S00600.242l642 +++| SETFSF(PANELADDR); # SET FIELD STATUS FLAGS #
02243 M01S00601.242l642 +++|*ENDIF
02244 M00S01040.sform +++| END
Line S00230 Modification History |
M01 (Added by) | 243l647 |
Seq # *Modification Id* Act
----------------------------+
02245 M01S00230.243l647 +++| POSTWO(PANELADDR); # POSITION SFATTR ARRAYS #
02246 M00S01041.sform +++| END
02247 M00S01042.sform +++| END
02248 M00S01043.sform +++|
02249 M00S01044.sform +++|END # SFOPEN$ #
02250 M00S01045.sform +++|CONTROL EJECT;
02251 M00S01046.sform +++|
02252 M00S01047.sform +++|PROC SFPOSR$(TABLENAME,TLEN,TOFF,ROWNUMBER);
02253 M00S01048.sform +++|
02254 M00S01049.sform +++|# TITLE SFPOSR$ - POSITION TABLE ROW. #
02255 M00S01050.sform +++|
02256 M00S01051.sform +++|BEGIN # SFPOSR$ #
02257 M00S01052.sform +++|
02258 M00S01053.sform +++|#
02259 M00S01054.sform +++|** SFPOSR$ - POSITION TABLE ROW.
02260 M00S01055.sform +++|*
02261 M00S01056.sform +++|* SFPOSR$ POSITIONS TABLENAME TO ROWNUMBER.
02262 M00S01057.sform +++|*
02263 M00S01058.sform +++|* PROC SFPOSR$(TABLENAME,TLEN,TOFF,ROWNUMBER)
02264 M00S01059.sform +++|*
02265 M00S01060.sform +++|* ENTRY TABLENAME = TABLE NAME.
02266 M00S01061.sform +++|* TLEN = LENGTH OF TABLENAME.
02267 M00S01062.sform +++|* TOFF = OFFSET OF TABLENAME.
02268 M00S01063.sform +++|* ROWNUMBER = ROW NUMBER.
02269 M00S01064.sform +++|*
02270 M00S01065.sform +++|* EXIT ARRCURROW[TABLENAME] = ROWNUMBER.
02271 M00S01066.sform +++|#
02272 M00S01067.sform +++|ITEM TABLENAME C(11); # TABLE NAME #
02273 M00S01068.sform +++|ITEM TLEN I; # LENGTH OF TABLENAME PARAMETER #
02274 M00S01069.sform +++|ITEM TOFF I; # OFFSET IN TABLENAME PARAMETER #
02275 M00S01070.sform +++|ITEM ROWNUMBER I; # ROW NUMBER IN ARRAY #
02276 M00S01071.sform +++|
02277 M00S01072.sform +++|ITEM I I; # LOOP COUNTER #
02278 M00S01073.sform +++|ITEM NOTFOUND B; # TABLE NOT FOUND #
02279 M00S01074.sform +++|ITEM TNAME C(7); # TABLE NAME LEFT JUSTIFIED #
02280 M00S01075.sform +++|
02281 M00S01076.sform +++|IF PANSTRARR[0] EQ 0 THEN RETURN; # IF NO TABLES IN PANEL #
02282 M00S01077.sform +++|
02283 M00S01078.sform +++|IF TLEN LS 1 THEN TLEN = 7; # CRACK PARAMETER #
02284 M00S01079.sform +++|TNAME = C<TOFF,TLEN>TABLENAME;
02285 M00S01080.sform +++|
02286 M00S01081.sform +++|NOTFOUND = TRUE;
Line S01082 Modification History |
M01 (Removed by) | sform6 |
Seq # *Modification Id* Act
----------------------------+
02287 M01S01082.sform6 ---|FOR I = 1 STEP 1 WHILE ARRNUMVARS[I] NQ 0 AND NOTFOUND DO
Line S00001 Modification History |
M01 (Added by) | sform6 |
Seq # *Modification Id* Act
----------------------------+
02288 M01S00001.sform6 +++|FOR I = 0 STEP 1 WHILE ARRNUMVARS[I] NQ 0 AND NOTFOUND DO
02289 M00S01083.sform +++| BEGIN # SEARCH ARRAY LIST FOR TABLE #
02290 M00S01084.sform +++| IF ARRNAME[I] EQ TNAME THEN
02291 M00S01085.sform +++| BEGIN # IF TABLE NAME FOUND #
02292 M00S01086.sform +++| NOTFOUND = FALSE;
02293 M00S01087.sform +++| IF ROWNUMBER LS 1 OR ROWNUMBER GR ARRNUMROWS[I] THEN
02294 M00S01088.sform +++| BEGIN # IF ILLEGAL ROW NUMBER #
02295 M00S01089.sform +++| ARRCURROW[I] = 0;
02296 M00S01090.sform +++| END
02297 M00S01091.sform +++| ELSE ARRCURROW[I] = ROWNUMBER - 1;
02298 M00S01092.sform +++| END
02299 M00S01093.sform +++| END
02300 M00S01094.sform +++|
02301 M00S01095.sform +++|END # SFPOSR$ #
Line S00072 Modification History |
M01 (Added by) | ns2605 |
Seq # *Modification Id* Act
----------------------------+
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$#
Line S00602 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 M00S01096.sform +++|CONTROL EJECT;
02515 M00S01097.sform +++|
02516 M00S01098.sform +++|PROC SFSETP$(VARNAME,VLEN,VOFF,OFFSET,ROWNUM);
02517 M00S01099.sform +++|
02518 M00S01100.sform +++|# TITLE SFSETP$ - SET CURSOR POSITION. #
02519 M00S01101.sform +++|
02520 M00S01102.sform +++|BEGIN # SFSETP$ #
02521 M00S01103.sform +++|
02522 M00S01104.sform +++|#
02523 M00S01105.sform +++|** SFSETP$ - SET CURSOR POSITION.
02524 M00S01106.sform +++|*
02525 M00S01107.sform +++|* SFSETP$ SPECIFIES WHAT FIELD THE CURSOR WILL
02526 M00S01108.sform +++|* BE POSITIONED AT FOR THE NEXT READ.
02527 M00S01109.sform +++|*
02528 M00S01110.sform +++|* PROC SFSETP$(VARNAME,VLEN,VOFF,OFFSET,ROWNUM)
02529 M00S01111.sform +++|*
02530 M00S01112.sform +++|* ENTRY VARNAME = VARIABLE NAME OF FIELD.
02531 M00S01113.sform +++|* VLEN = LENGTH OF VARP.
02532 M00S01114.sform +++|* VOFF = OFFSET OF VARP.
02533 M00S01115.sform +++|* OFFSET = OFFSET INTO SPECIFIED FIELD.
02534 M00S01116.sform +++|* ROWNUM = ROW NUMBER OF SPECIFIED FIELD.
02535 M00S01117.sform +++|*
Line S01118 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02536 M01S01118.242l642 ---|* EXIT CURSORVAR = VARIABLE NAME OF SPECIFIED FIELD.
02537 M01S01119.242l642 ---|* CURSORROW = ROW NUMBER OF SPECIFIED FIELD.
02538 M01S01120.242l642 ---|* CURSOROFF = OFFSET OF SPECIFIED FIELD.
02539 M01S01121.242l642 ---|* CURSORSET = TRUE.
Line S00769 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 M00S01122.sform +++|*
Line S01123 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02545 M01S01123.242l642 ---|* USES CURSOROFF, CURSORROW, CURSORSET, CURSORVAR.
Line S00773 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02546 M01S00773.242l642 +++|* USES TERCURSOFF, TERCURSROW, TERCURSSET, TERCURSVAR.
02547 M00S01124.sform +++|*
02548 M00S01125.sform +++|* NOTES ROUTINE READSF WILL SET THE ACTUAL CURSOR POSITION.
02549 M00S01126.sform +++|#
02550 M00S01127.sform +++|ITEM VARNAME C(11); # VARIABLE NAME #
02551 M00S01128.sform +++|ITEM VLEN I; # LENGTH OF VARNAME PARAMETER #
02552 M00S01129.sform +++|ITEM VOFF I; # OFFSET INTO VARNAME PARAMETER #
02553 M00S01130.sform +++|ITEM OFFSET I; # OFFSET INTO FIELD #
02554 M00S01131.sform +++|ITEM ROWNUM I; # ROW NUMBER IN ARRAY #
02555 M00S01132.sform +++|
02556 M00S01133.sform +++|IF VLEN LS 1 THEN VLEN = 7; # CRACK PARAMETER #
Line S01134 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02557 M01S01134.242l642 ---|CURSORVAR = C<VOFF,VLEN>VARNAME;
Line S00774 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02558 M01S00774.242l642 +++|TERCURSVAR[0] = C<VOFF,VLEN>VARNAME;
02559 M00S01135.sform +++|
02560 M00S01136.sform +++|TERCURSSET[0] = TRUE; # SET GLOBAL VARIABLES #
Line S01137 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02561 M01S01137.242l642 ---|IF OFFSET GR 0 THEN CURSOROFF = OFFSET - 1;
02562 M01S01138.242l642 ---| ELSE CURSOROFF = 0;
02563 M01S01139.242l642 ---|IF ROWNUM LS 1 THEN CURSORROW = 0;
02564 M01S01140.242l642 ---| ELSE CURSORROW = ROWNUM - 1;
Line S00775 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 M00S01141.sform +++|
02570 M00S01142.sform +++|END # SFSETP$ #
02571 M00S01143.sform +++|CONTROL EJECT;
02572 M00S01144.sform +++|
02573 M00S01145.sform +++|PROC SFSREA$(PANELP,PANLEN,PANOFF,INSP,INSLEN,INSOFF);
02574 M00S01146.sform +++|
02575 M00S01147.sform +++|# TITLE SFSREA$ - READ PANEL USING INSTRING. #
02576 M00S01148.sform +++|
02577 M00S01149.sform +++|BEGIN # SFSREA$ #
02578 M00S01150.sform +++|
02579 M00S01151.sform +++|#
02580 M00S01152.sform +++|** SFSREA$ - READ PANEL USING INSTRING.
02581 M00S01153.sform +++|*
02582 M00S01154.sform +++|* SFSREA$ READS A PANEL AND PLACES THE INPUT IN
02583 M00S01155.sform +++|* INSTRING.
02584 M00S01156.sform +++|*
02585 M00S01157.sform +++|* PROC SFSREA$(PANELP,PANLEN,PANOFF,INSP,INSLEN,INSOFF)
02586 M00S01158.sform +++|*
02587 M00S01159.sform +++|* ENTRY PANELP = NAME OF PANEL TO READ.
02588 M00S01160.sform +++|* PANLEN = LENGTH OF PANELP.
02589 M00S01161.sform +++|* PANOFF = OFFSET OF PANELP.
02590 M00S01162.sform +++|* INSP = INSTRING TO RECEIVE DATA.
02591 M00S01163.sform +++|* INSLEN = LENGTH OF INSP.
02592 M00S01164.sform +++|* INSOFF = OFFSET OF INSP.
02593 M00S01165.sform +++|*
02594 M00S01166.sform +++|* EXIT INSP CONTAINS INPUT DATA.
02595 M00S01167.sform +++|*
02596 M00S01168.sform +++|* CALLS CPANEL, MOVEST, READSF.
02597 M00S01169.sform +++|*
Line S01170 Modification History |
M01 (Removed by) | sform24 |
Seq # *Modification Id* Act
----------------------------+
02598 M01S01170.sform24 ---|* UESE TERREADFLG.
Line S00001 Modification History |
M01 (Added by) | sform24 |
Seq # *Modification Id* Act
----------------------------+
02599 M01S00001.sform24 +++|* USES TERREADFLG.
02600 M00S01171.sform +++|#
02601 M00S01172.sform +++|ITEM PANELP C(11); # PANEL PARAMETER #
02602 M00S01173.sform +++|ITEM PANLEN I; # LENGTH OF PANEL PARAMETER #
02603 M00S01174.sform +++|ITEM PANOFF I; # OFFSET OF PANEL PARAMETER #
02604 M00S01175.sform +++|ITEM INSP I; # ADDRESS OF INSTRING #
02605 M00S01176.sform +++|ITEM INSLEN I; # LENGTH OF INSTRING #
02606 M00S01177.sform +++|ITEM INSOFF I; # OFFSET OF INSTRING #
02607 M00S01178.sform +++|
02608 M00S01179.sform +++|ITEM PANEL C(7); # NAME OF INPUT PANEL #
02609 M00S01180.sform +++|
Line S00779 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02610 M01S00779.242l642 +++|*IF DEF,QTRM
02611 M01S00780.242l642 +++|NIT$RC = NITRTC"OK"; # SET STATUS OK #
02612 M01S00781.242l642 +++|
02613 M01S00782.242l642 +++|*ENDIF
02614 M00S01181.sform +++|IF PANLEN LS 1 THEN PANLEN = 7; # CRACK PARAMETER #
02615 M00S01182.sform +++|PANEL = C<PANOFF,PANLEN>PANELP;
02616 M00S01183.sform +++|
02617 M00S01184.sform +++|READSF(PANEL); # READ PANEL #
02618 M00S01185.sform +++|CPANEL; # REWRITE SCREEN AS NEEDED #
02619 M00S01186.sform +++|
02620 M00S01187.sform +++|IF PANNUMBYTE[0] NQ 0 THEN
02621 M00S01188.sform +++| BEGIN # IF VARIABLES IN PANEL #
02622 M00S01189.sform +++| TERREADFLG[0] = TRUE;
02623 M00S01190.sform +++| MOVEST(LOC(INSP),INSOFF,INSLEN); # MOVE VARDATA TO INSTRING #
02624 M00S01191.sform +++| TERREADFLG[0] = FALSE;
02625 M00S01192.sform +++| END
02626 M00S01193.sform +++|
02627 M00S01194.sform +++|END # SFSREA$ #
Line S00783 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02628 M01S00783.242l642 +++|*IF UNDEF, QTRM
02629 M00S01195.sform +++|CONTROL EJECT;
02630 M00S01196.sform +++|
02631 M00S01197.sform +++|PROC SFSSHO$(PANELP,PANLEN,PANOFF,OUTP,OLEN,OOFF,INSP,ILEN,IOFF);
02632 M00S01198.sform +++|
02633 M00S01199.sform +++|# TITLE SFSSHO$ - SHOW PANEL USING INSTRING AND OUTSTRING. #
02634 M00S01200.sform +++|
02635 M00S01201.sform +++|BEGIN # SFSSHO$ #
02636 M00S01202.sform +++|
02637 M00S01203.sform +++|#
02638 M00S01204.sform +++|** SFSSHO - SHOW PANEL USING INSTRING AND OUTSTRING.
02639 M00S01205.sform +++|*
02640 M00S01206.sform +++|* THIS PROCEDURE CALLS SFSWRI$ AND SFSREA$.
02641 M00S01207.sform +++|*
02642 M00S01208.sform +++|* PROC SFSSHO$(PANELP,PANLEN,PANOFF,OUTP,OLEN,OOFF,INSP,ILEN,IOFF)
02643 M00S01209.sform +++|*
02644 M00S01210.sform +++|* ENTRY PANELP = NAME OF PANEL TO READ.
02645 M00S01211.sform +++|* PANLEN = LENGTH OF PANELP.
02646 M00S01212.sform +++|* PANOFF = OFFSET OF PANELP.
02647 M00S01213.sform +++|* OUTP = OUTSTRING DISPLAY DATA.
02648 M00S01214.sform +++|* OLEN = LENGTH OF OUTP.
02649 M00S01215.sform +++|* OOFF = OFFSET OF OUTP.
02650 M00S01216.sform +++|* ILEN = LENGTH OF INSP.
02651 M00S01217.sform +++|* IOFF = OFFSET OF INSP.
02652 M00S01218.sform +++|*
02653 M00S01219.sform +++|* EXIT INSP = CONTAINS INPUT DATA.
02654 M00S01220.sform +++|*
02655 M00S01221.sform +++|* CALLS SFSREA$, SFSWRI$.
02656 M00S01222.sform +++|*
02657 M00S01223.sform +++|* USES TERSHOWFLG.
02658 M00S01224.sform +++|#
02659 M00S01225.sform +++|ITEM PANELP I; # NAME OF PANEL TO READ #
02660 M00S01226.sform +++|ITEM PANLEN I; # LENGTH OF PANELP #
02661 M00S01227.sform +++|ITEM PANOFF I; # OFFSET OF PANELP #
02662 M00S01228.sform +++|ITEM OUTP I; # OUTSTRING DISPLAY DATA #
02663 M00S01229.sform +++|ITEM OLEN I; # LENGTH OF OUTP #
02664 M00S01230.sform +++|ITEM OOFF I; # OFFSET OF OUTP #
02665 M00S01231.sform +++|ITEM INSP I; # INSTRING TO RECEIVE DATA #
02666 M00S01232.sform +++|ITEM ILEN I; # LENGTH OF INSP #
02667 M00S01233.sform +++|ITEM IOFF I; # OFFSET OF INSP #
02668 M00S01234.sform +++|
02669 M00S01235.sform +++|TERSHOWFLG[0] = TRUE;
02670 M00S01236.sform +++|SFSWRI$(PANELP,PANLEN,PANOFF,OUTP,OLEN,OOFF); # WRITE PANEL #
02671 M00S01237.sform +++|SFSREA$(PANELP,PANLEN,PANOFF,INSP,ILEN,IOFF); # READ PANEL #
02672 M00S01238.sform +++|TERSHOWFLG[0] = FALSE;
02673 M00S01239.sform +++|
02674 M00S01240.sform +++|END # SFSSHO$ #
Line S00784 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02675 M01S00784.242l642 +++|*ENDIF
02676 M00S01241.sform +++|CONTROL EJECT;
02677 M00S01242.sform +++|
02678 M00S01243.sform +++|PROC SFSWRI$(NAME,NLENGTH,NOFFSET,STRING,SLENGTH,SOFFSET);
02679 M00S01244.sform +++|
02680 M00S01245.sform +++|# TITLE SFSWRI$ - SCREEN FORMAT STRING WRITE FUNCTION. #
02681 M00S01246.sform +++|
02682 M00S01247.sform +++|BEGIN # SFSWRI$ #
02683 M00S01248.sform +++|
02684 M00S01249.sform +++|#
02685 M00S01250.sform +++|** SFSWRI$ - SCREEN FORMAT WRITE FUNCTION.
02686 M00S01251.sform +++|*
02687 M00S01252.sform +++|* THIS PROCEDURE WRITES THE SPECIFIED PANEL USING THE CONCATENATED
02688 M00S01253.sform +++|* VARIABLE DATA FOUND IN OUTSTRING (OR IN THE CASE OF AN ATTEMPTED
02689 M00S01254.sform +++|* READ BEFORE WRITE USING THE VARIABLE DATA ALREADY PRESENT IN THE
02690 M00S01255.sform +++|* VARDATA SECTION OF THE PANEL RECORD) AND THE CONSTANT DATA FOUND
02691 M00S01256.sform +++|* IN THE PANEL RECORD. IT INTERFACES TO COBOL AND FORTRAN APPLICA-
02692 M00S01257.sform +++|* TION PROGRAMS THROUGH A COMPASS INTERFACE MODULE CALLED SFSWRI.
02693 M00S01258.sform +++|*
02694 M00S01259.sform +++|* PROC SFSWRI$(NAME,NLENGTH,NOFFSET,STRING,SLENGTH,SOFFSET)
02695 M00S01260.sform +++|*
02696 M00S01261.sform +++|* ENTRY NAME = THE NAME OF THE PANEL TO BE WRITTEN.
02697 M00S01262.sform +++|* NLENGTH = LENGTH IN SIX BIT CHARACTERS.
02698 M00S01263.sform +++|* NOFFSET = OFFSET INTO NAME.
02699 M00S01264.sform +++|* STRING = CONTAINS THE CONCATENATED VARIABLE DATA.
02700 M00S01265.sform +++|* SLENGTH = LENGTH IN SIX BIT CHARACTERS.
02701 M00S01266.sform +++|* SOFFSET = OFFSET INTO STRING.
02702 M00S01267.sform +++|*
02703 M00S01268.sform +++|* EXIT PANEL WRITTEN TO SCREEN.
02704 M00S01269.sform +++|*
02705 M00S01270.sform +++|* CALLS GETADD, MOVEST, POSARR, WRIPAN.
02706 M00S01271.sform +++|*
02707 M00S01272.sform +++|* USES TERACTIVEP, TERACTPANI.
02708 M00S01273.sform +++|*
02709 M00S01274.sform +++|* NOTES IF TERREADFLG IS SET SFSWRI HAS BEEN CALLED BY SFSREA
02710 M00S01275.sform +++|* AND HENCE THERE IS NO OUTSTRING TO MOVE INTO VARDATA
02711 M00S01276.sform +++|* AND WHATEVER VARIABLE DATA IS PRESENTLY THERE WILL BE
02712 M00S01277.sform +++|* WRITTEN TO THE SCREEN.
02713 M00S01278.sform +++|#
02714 M00S01279.sform +++|ITEM NAME C(11); # NAME OF PANEL TO BE WRITTEN #
02715 M00S01280.sform +++|ITEM NLENGTH I; # LENGTH IN SIX BIT CHARACTERS #
02716 M00S01281.sform +++|ITEM NOFFSET I; # OFFSET INTO NAME #
02717 M00S01282.sform +++|ITEM STRING I; # OUTSTRING PARAMETER #
02718 M00S01283.sform +++|ITEM SLENGTH I; # LENGTH IN SIX BIT CHARACTERS #
02719 M00S01284.sform +++|ITEM SOFFSET I; # OFFSET INTO OUTSTRING #
02720 M00S01285.sform +++|
02721 M00S01286.sform +++|ITEM PANELNAME C(7); # PANEL NAME, LEFT JUSTIFIED #
02722 M00S01287.sform +++|ITEM PANELADDR I; # ADDRESS OF PANEL RECORD #
02723 M00S01288.sform +++|ITEM PLTINDEX I; # PANEL LOAD TABLE INDEX #
02724 M00S01289.sform +++|ITEM STRINGADDR I; # ADDRESS OF OUTSTRING #
02725 M00S01290.sform +++|
Line S00785 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
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 M00S01291.sform +++|IF NLENGTH LS 1 THEN NLENGTH = 7; # CRACK PARAMETER #
02731 M00S01292.sform +++|PANELNAME = C<NOFFSET,NLENGTH>NAME; # LEFT JUSTIFY PANEL NAME #
02732 M00S01293.sform +++|
Line S01294 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02733 M01S01294.242l642 ---|IF PANELNAME NQ ACTIVEPAN THEN
Line S00789 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02734 M01S00789.242l642 +++|IF PANELNAME NQ TERACTPANL[0] THEN
02735 M00S01295.sform +++| BEGIN # IF NOT THE ACTIVE PANEL #
Line S01296 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02736 M01S01296.242l642 ---| ACTIVEPAN = PANELNAME; # UPDATE ACTIVE PANEL NAME #
Line S00790 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02737 M01S00790.242l642 +++| TERACTPANL[0] = PANELNAME; # UPDATE ACTIVE PANEL NAME #
02738 M00S01297.sform +++| GETADD(PANELNAME,PANELADDR,PLTINDEX);
Line S01298 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02739 M01S01298.242l642 ---| ACTPANPLTI = PLTINDEX;
Line S00791 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02740 M01S00791.242l642 +++| TERACTPLTI[0] = PLTINDEX;
02741 M00S01299.sform +++| POSARR(PANELADDR); # POSITION BASED ARRAYS #
02742 M00S01300.sform +++| END
02743 M00S01301.sform +++|
02744 M00S01302.sform +++|IF PANNUMBYTE[0] NQ 0 AND NOT TERREADFLG[0] THEN
02745 M00S01303.sform +++| BEGIN # IF VARIABLE DATA PRESENT #
02746 M00S01304.sform +++| STRINGADDR = LOC(STRING); # ADDRESS OF OUTSTRING #
02747 M00S01305.sform +++| MOVEST(STRINGADDR,SOFFSET,SLENGTH); # MOVE OUTSTRING TO VARDATA #
02748 M00S01306.sform +++| END
02749 M00S01307.sform +++|
Line S00792 Modification History |
M01 (Added by) | 242l642 |
M02 (Removed by) | 252l678 |
Seq # *Modification Id* Act
----------------------------+
02750 M02S00792.252l678 ---|IF FIRSTWRITE THEN
Line S00133 Modification History |
M01 (Added by) | 252l678 |
Seq # *Modification Id* Act
----------------------------+
02751 M01S00133.252l678 +++|IF NOT TERVDTBOOC[0] THEN
Line S00793 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02752 M01S00793.242l642 +++| BEGIN # IF FIRST WRITE #
Line S00794 Modification History |
M01 (Added by) | 242l642 |
M02 (Removed by) | 252l678 |
Seq # *Modification Id* Act
----------------------------+
02753 M02S00794.252l678 ---| FIRSTWRITE = FALSE;
Line S00134 Modification History |
M01 (Added by) | 252l678 |
Seq # *Modification Id* Act
----------------------------+
02754 M01S00134.252l678 +++| TERVDTBOOC[0] = TRUE;
Line S00795 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02755 M01S00795.242l642 +++| VDTBOO; # BEGIN OUTPUT SEQUENCE #
02756 M01S00796.242l642 +++| END
02757 M00S01308.sform +++|WRIPAN; # WRITE PANEL #
02758 M00S01309.sform +++|
02759 M00S01310.sform +++|END # SFSWRI$ #
02760 M00S01311.sform +++|CONTROL EJECT;
02761 M00S01312.sform +++|
02762 M00S01313.sform +++|PROC BFIELD(FIELD,STARTCHAR,LASTDIRTY);
02763 M00S01314.sform +++|
02764 M00S01315.sform +++|# TITLE BFIELD - BLANK FIELD IN VARDATA. #
02765 M00S01316.sform +++|
02766 M00S01317.sform +++|BEGIN # BFIELD #
02767 M00S01318.sform +++|
02768 M00S01319.sform +++|#
02769 M00S01320.sform +++|** BFIELD - BLANK FIELD IN VARDATA.
02770 M00S01321.sform +++|*
02771 M00S01322.sform +++|* THIS PROCEDURE BLANK FILLS A FIELD IN VARDATA.
02772 M00S01323.sform +++|*
02773 M00S01324.sform +++|* PROC BFIELD(FIELD,STARTCHAR,LASTDIRTY)
02774 M00S01325.sform +++|*
02775 M00S01326.sform +++|* ENTRY FIELD = INDEX OF FIELD IN FLDLIST.
02776 M00S01327.sform +++|* STARTCHAR = POSITION TO START BLANK FILL.
02777 M00S01328.sform +++|*
02778 M00S01329.sform +++|* EXIT LASTDIRTY = LAST POSITION WITH PREVIOUS
02779 M00S01330.sform +++|* NON-BLANK CHARACTER.
02780 M00S01331.sform +++|#
02781 M00S01332.sform +++|ITEM FIELD I; # FIELD TO INITIALIZE #
02782 M00S01333.sform +++|ITEM STARTCHAR I; # STARTING CHARACTER POSITION #
02783 M00S01334.sform +++|ITEM LASTDIRTY I; # LAST NON-BLANK CHARACTER #
02784 M00S01335.sform +++|
02785 M00S01336.sform +++|ITEM CHARNUM I; # CHARACTER POSITION IN VARDATA #
02786 M00S01337.sform +++|ITEM CHARIND I; # CHARACTER INDEX IN VARDATA #
02787 M00S01338.sform +++|ITEM I I; # LOOP COUNTER #
02788 M00S01339.sform +++|ITEM WORDIND I; # WORD INDEX IN VARDATA #
02789 M00S01340.sform +++|
02790 M00S01341.sform +++|LASTDIRTY = -1;
02791 M00S01342.sform +++|CHARNUM = FLDVDTCORD[FIELD] + STARTCHAR;
02792 M00S01343.sform +++|WORDIND = CHARNUM / 5;
02793 M00S01344.sform +++|CHARIND = CHARNUM - (5 * WORDIND);
02794 M00S01345.sform +++|
02795 M00S01346.sform +++|FOR I = STARTCHAR STEP 1 UNTIL FLDLENGTH[FIELD] -1 DO
02796 M00S01347.sform +++| BEGIN # BLANK FILL FIELD IN VDATA #
02797 M00S01348.sform +++| IF NEXTCHAR(FIELD,I) NQ BLANK THEN
02798 M00S01349.sform +++| BEGIN # NON-BLANK CHARACTER #
02799 M00S01350.sform +++| LASTDIRTY = I; # UPDATE LAST DIRTY CHARACTER #
02800 M00S01351.sform +++| END
02801 M00S01352.sform +++| B<CHARIND*12,12>VDATAU[WORDIND] = BLANK; # BLANK CHARACTER POS #
02802 M00S01353.sform +++| CHARIND = CHARIND + 1;
02803 M00S01354.sform +++| IF CHARIND EQ 5 THEN
02804 M00S01355.sform +++| BEGIN
02805 M00S01356.sform +++| CHARIND = 0;
02806 M00S01357.sform +++| WORDIND = WORDIND + 1;
02807 M00S01358.sform +++| END
02808 M00S01359.sform +++| END
02809 M00S01360.sform +++|
02810 M00S01361.sform +++|END # BFIELD #
Line S01362 Modification History |
M01 (Removed by) | ns2275 |
Seq # *Modification Id* Act
----------------------------+
02811 M01S01362.ns2275 ---|CONTROL EJECT;
02812 M01S01363.ns2275 ---|
02813 M01S01364.ns2275 ---|PROC CHKTRM(OPENSTAT);
02814 M01S01365.ns2275 ---|
02815 M01S01366.ns2275 ---|# TITLE CHKTRM - CHECK FOR SUPPORTED TERMINAL. #
02816 M01S01367.ns2275 ---|
02817 M01S01368.ns2275 ---|BEGIN # CHKTRM #
02818 M01S01369.ns2275 ---|
02819 M01S01370.ns2275 ---|#
02820 M01S01371.ns2275 ---|** CHKTRM - CHECK FOR SUPPORTED TERMINAL.
02821 M01S01372.ns2275 ---|*
02822 M01S01373.ns2275 ---|* THIS PROCEDURE CHECKS TO SEE IF THE TERMINAL IN USE SUPPORTS
02823 M01S01374.ns2275 ---|* SCREEN FORMATTING.
02824 M01S01375.ns2275 ---|*
02825 M01S01376.ns2275 ---|* PROC CHKTRM(OPENSTAT)
02826 M01S01377.ns2275 ---|*
02827 M01S01378.ns2275 ---|* ENTRY OPENSTAT = 0.
02828 M01S01379.ns2275 ---|* TERMMODEL = -1.
02829 M01S01380.ns2275 ---|*
02830 M01S01381.ns2275 ---|* EXIT OPENSTAT = 0 IF NO ERROR.
02831 M01S01382.ns2275 ---|* = 7 IF UNSUPPORTED TERMINAL.
02832 M01S01383.ns2275 ---|* TERMMODEL = TERMINAL MODEL ORDINAL, IF NO ERROR.
02833 M01S01384.ns2275 ---|* = -1, ERROR.
02834 M01S01385.ns2275 ---|*
02835 M01S01386.ns2275 ---|* CALLS VDTGSL.
02836 M01S01387.ns2275 ---|*
02837 M01S01388.ns2275 ---|* USES TERMMODEL.
02838 M01S01389.ns2275 ---|#
02839 M01S01390.ns2275 ---|ITEM OPENSTAT I; # STATUS OF TERMINAL IN USE #
02840 M01S01391.ns2275 ---|
02841 M01S01392.ns2275 ---|ITEM OSMODEFG I; # OS SCREEN/LINE MODE FLAG #
02842 M01S01393.ns2275 ---|
02843 M01S01394.ns2275 ---|VDTGSL(TERMMODEL,OSMODEFG); # GET MODEL AND SCREEN OR LINE #
02844 M01S01395.ns2275 ---|
02845 M01S01396.ns2275 ---|IF OSMODEFG NQ 1 THEN
02846 M01S01397.ns2275 ---| BEGIN # IF OS MODE IS LINE #
02847 M01S01398.ns2275 ---| OPENSTAT = 7; # TERMINAL IS NOT SUPPORTED #
02848 M01S01399.ns2275 ---| TERMMODEL = -1;
02849 M01S01400.ns2275 ---| END
02850 M01S01401.ns2275 ---|
02851 M01S01402.ns2275 ---|END # CHKTRM #
02852 M00S01403.sform +++|CONTROL EJECT;
02853 M00S01404.sform +++|
02854 M00S01405.sform +++|PROC CLRLNS;
02855 M00S01406.sform +++|
02856 M00S01407.sform +++|# TITLE CLRLNS - CLEAR LINES. #
02857 M00S01408.sform +++|
02858 M00S01409.sform +++|BEGIN # CLRLNS #
02859 M00S01410.sform +++|
02860 M00S01411.sform +++|#
02861 M00S01412.sform +++|** CLRLNS - CLEAR LINES.
02862 M00S01413.sform +++|*
02863 M00S01414.sform +++|* THIS PROCEDURE CLEARS THE PROPER LINES BEFORE AN OVERLAY
02864 M00S01415.sform +++|* WRITE.
02865 M00S01416.sform +++|*
02866 M00S01417.sform +++|* PROC CLRLNS
02867 M00S01418.sform +++|*
02868 M00S01419.sform +++|* EXIT PROPER LINES CLEARED ON SCREEN.
02869 M00S01420.sform +++|*
02870 M00S01421.sform +++|* CALLS VDTCLL.
02871 M00S01422.sform +++|#
02872 M00S01423.sform +++|ITEM CURYCORD I; # CURRENT Y COORDINATE #
02873 M00S01424.sform +++|ITEM FLDINDEX I; # INDEX INTO FIELD LIST #
02874 M00S01425.sform +++|
02875 M00S01426.sform +++|IF PANSTRFLD[0] EQ 0 THEN RETURN;
02876 M00S01427.sform +++|
02877 M00S01428.sform +++|CURYCORD = -1; # NO CURRENT Y COORDINATE YET #
02878 M00S01429.sform +++|FOR FLDINDEX = 0 STEP 1 WHILE FLDENTRY[FLDINDEX] NQ 0 DO
02879 M00S01430.sform +++| BEGIN
02880 M00S01431.sform +++| IF FLDACTIVE[FLDINDEX] AND FLDYCORD[FLDINDEX] NQ CURYCORD THEN
02881 M00S01432.sform +++| BEGIN # IF ACTIVE FIELD ON NEW LINE #
02882 M00S01433.sform +++| CURYCORD = FLDYCORD[FLDINDEX]; # RESET CURRENT Y COORDINATE #
02883 M00S01434.sform +++| VDTCLL(0,CURYCORD); # CLEAR LINE #
02884 M00S01435.sform +++| END
02885 M00S01436.sform +++| END
Line S00135 Modification History |
M01 (Added by) | 252l678 |
Seq # *Modification Id* Act
----------------------------+
02886 M01S00135.252l678 +++|IF TERNOTCHAR[0] THEN VDTCAA(0); # IF LINE OR PAGE TYPE ATTRS. #
02887 M00S01437.sform +++|
02888 M00S01438.sform +++|END # CLRLNS #
02889 M00S01439.sform +++|CONTROL EJECT;
02890 M00S01440.sform +++|
02891 M00S01441.sform +++|PROC CPANEL;
02892 M00S01442.sform +++|
02893 M00S01443.sform +++|# TITLE CPANEL - CLEAN PANEL. #
02894 M00S01444.sform +++|
02895 M00S01445.sform +++|BEGIN # CPANEL #
02896 M00S01446.sform +++|
02897 M00S01447.sform +++|#
02898 M00S01448.sform +++|** CPANEL - CLEAN PANEL.
02899 M00S01449.sform +++|*
02900 M00S01450.sform +++|* THIS PROCEDURE CHECKS FLAGS PERTAINING TO REWRITING THE
02901 M00S01451.sform +++|* SCREEN AND THEN CALLS THE APPROPRIATE PROCEDURES.
02902 M00S01452.sform +++|*
02903 M00S01453.sform +++|* PROC CPANEL
02904 M00S01454.sform +++|*
02905 M00S01455.sform +++|* ENTRY TERMESWRIT = TRUE, IF THE MESSAGE CONTAINS A MESSAGE.
02906 M00S01456.sform +++|* TERMESREAD = TRUE, IF THE MESSAGE AREA CAN BE CLEARED.
Line S01457 Modification History |
M01 (Removed by) | sform24 |
Seq # *Modification Id* Act
----------------------------+
02907 M01S01457.sform24 ---|* TERREWFLDS = TRUE, IF AT LEAST ONE INPUT FIELD NEEDS
02908 M01S01458.sform24 ---|* TO BE REWRITTEN.
Line S00002 Modification History |
M01 (Added by) | sform24 |
Seq # *Modification Id* Act
----------------------------+
02909 M01S00002.sform24 +++|* TERREWFLDS = TRUE, IF ONE OR MORE FIELDS NEED REWRITING.
02910 M01S00003.sform24 +++|* TERREWSCRN = TRUE, IF THE ENTIRE SCREEN NEEDS REWRITING.
02911 M00S01459.sform +++|*
02912 M00S01460.sform +++|* EXIT TERMESREAD = FALSE.
02913 M00S01461.sform +++|* TERREWFLDS = FALSE.
Line S00004 Modification History |
M01 (Added by) | sform24 |
Seq # *Modification Id* Act
----------------------------+
02914 M01S00004.sform24 +++|* TERREWSCRN = FALSE.
02915 M00S01462.sform +++|*
Line S01463 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02916 M01S01463.242l642 ---|* CALLS REWFLD, MCLEAN, VDTBOO, VDTCAA, VDTEOO, WRIALL.
Line S00797 Modification History |
M01 (Added by) | 242l642 |
M02 (Removed by) | ns2346 |
Seq # *Modification Id* Act
----------------------------+
02917 M02S00797.ns2346 ---|* CALLS REWFLD, MCLEAN, VDTCAA, WRIALL.
Line S00007 Modification History |
M01 (Added by) | ns2346 |
Seq # *Modification Id* Act
----------------------------+
02918 M01S00007.ns2346 +++|* CALLS REWFLD, MCLEAN, VDTSAM, WRIALL.
02919 M00S01464.sform +++|*
Line S01465 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02920 M01S01465.242l642 ---|* USES TERDONTCLR, TERMESREAD, TERREWFLDS, TERREWSCRN,
02921 M01S01466.242l642 ---|* TERREWVARS.
Line S00798 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02922 M01S00798.242l642 +++|* USES TERDONTCLR, TERMESREAD, TERNOREWRT, TERREWFLDS,
02923 M01S00799.242l642 +++|* TERREWSCRN.
02924 M00S01467.sform +++|#
02925 M00S01468.sform +++|ITEM I I; # LOOP COUNTER #
02926 M00S01469.sform +++|
02927 M00S01470.sform +++|IF TERMESWRIT[0] AND TERMESREAD[0] AND NOT TERREWSCRN[0] THEN
02928 M00S01471.sform +++| BEGIN # CLEAR MESSAGE AREA #
Line S01472 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02929 M01S01472.242l642 ---| VDTBOO;
02930 M00S01473.sform +++| MCLEAN(DUMMY,DUMMY); # CLEAN MESSAGE LINE #
Line S01474 Modification History |
M01 (Removed by) | ns2346 |
Seq # *Modification Id* Act
----------------------------+
02931 M01S01474.ns2346 ---| VDTCAA; # CLEAR ALL ATTRIBUTES #
Line S00008 Modification History |
M01 (Added by) | ns2346 |
M02 (Removed by) | ns2356 |
Seq # *Modification Id* Act
----------------------------+
02932 M02S00008.ns2356 ---| VDTSAM(0); # CLEAR ALL ATTRIBUTES #
Line S00001 Modification History |
M01 (Added by) | ns2356 |
Seq # *Modification Id* Act
----------------------------+
02933 M01S00001.ns2356 +++| IF NOT TERBLCKMDE[0] THEN
02934 M01S00002.ns2356 +++| BEGIN
02935 M01S00003.ns2356 +++| VDTSAM(0);
02936 M01S00004.ns2356 +++| END
02937 M01S00005.ns2356 +++| ELSE
02938 M01S00006.ns2356 +++| BEGIN
02939 M01S00007.ns2356 +++| VDTSAM(O"6001");
02940 M01S00008.ns2356 +++| END
Line S01475 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02941 M01S01475.242l642 ---| VDTEOO;
02942 M00S01476.sform +++| END
02943 M00S01477.sform +++|
Line S01478 Modification History |
M01 (Removed by) | sform24 |
Seq # *Modification Id* Act
----------------------------+
02944 M01S01478.sform24 ---|IF TERREWFLDS[0] THEN
Line S00005 Modification History |
M01 (Added by) | sform24 |
Seq # *Modification Id* Act
----------------------------+
02945 M01S00005.sform24 +++|IF TERREWFLDS[0] OR TERREWSCRN[0] THEN
02946 M00S01479.sform +++| BEGIN # REWRITE FLAGGED FIELDS #
02947 M00S01480.sform +++| TERREADFLG[0] = TRUE;
02948 M00S01481.sform +++| TERDONTCLR[0] = TRUE; # DO NOT CLEAR REWRITE/ENTERED #
02949 M00S01482.sform +++| IF TERREWSCRN[0] THEN
02950 M00S01483.sform +++| BEGIN # FULL REWRITE OF SCREEN #
02951 M00S01484.sform +++| WRIALL;
02952 M00S01485.sform +++| TERREWSCRN[0] = FALSE;
02953 M00S01486.sform +++| END
02954 M00S01487.sform +++| ELSE # REWRITE FLAGGED FIELDS #
02955 M00S01488.sform +++| BEGIN
Line S01489 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02956 M01S01489.242l642 ---| TERREWVARS[0] = FALSE;
Line S00800 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02957 M01S00800.242l642 +++| TERNOREWRT[0] = TRUE;
Line S01490 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02958 M01S01490.242l642 ---| VDTBOO;
02959 M00S01491.sform +++| REWFLD; # REWRITE FIELDS #
Line S01492 Modification History |
M01 (Removed by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02960 M01S01492.242l642 ---| VDTEOO;
02961 M01S01493.242l642 ---| TERREWVARS[0] = TRUE;
Line S00801 Modification History |
M01 (Added by) | 242l642 |
Seq # *Modification Id* Act
----------------------------+
02962 M01S00801.242l642 +++| TERNOREWRT[0] = FALSE;
02963 M00S01494.sform +++| END
02964 M00S01495.sform +++| TERDONTCLR[0] = FALSE;
02965 M00S01496.sform +++| TERREADFLG[0] = FALSE;
02966 M00S01497.sform +++| END
02967 M00S01498.sform +++|
02968 M00S01499.sform +++|TERMESREAD[0] = FALSE;
02969 M00S01500.sform +++|TERREWFLDS[0] = FALSE;
02970 M00S01501.sform +++|
02971 M00S01502.sform +++|END # CPANEL #
02972 M00S01503.sform +++|CONTROL EJECT;
02973 M00S01504.sform +++|
02974 M00S01505.sform +++|PROC DATEVL(FLDIND,IVAL);
02975 M00S01506.sform +++|
02976 M00S01507.sform +++|# TITLE DATEVL - DATE VALIDATION. #
02977 M00S01508.sform +++|
02978 M00S01509.sform +++|BEGIN # DATEVL #
02979 M00S01510.sform +++|
02980 M00S01511.sform +++|#
02981 M00S01512.sform +++|** DATEVL - DATE VALIDATION.
02982 M00S01513.sform +++|*
02983 M00S01514.sform +++|* THIS PROCEDURE CHECKS THAT THE INPUT IS A VALID DATE.
02984 M00S01515.sform +++|*
02985 M00S01516.sform +++|* PROC DATEVL(FLDIND,IVAL)
02986 M00S01517.sform +++|*
02987 M00S01518.sform +++|* ENTRY FLDIND = INDEX OF CURRENT FIELD IN FLDLIST.
02988 M00S01519.sform +++|*
02989 M00S01520.sform +++|* EXIT IVAL = INTEGER VALUE OF INPUT.
02990 M00S01521.sform +++|* FLDVALID[FLDIND] = FALSE, IF INVALID INPUT.
02991 M00S01522.sform +++|*
02992 M00S01523.sform +++|* CALLS GETNUM, SKPBLK.
02993 M00S01524.sform +++|#
02994 M00S01525.sform +++|ITEM FLDIND I; # VARIABLE TO BE VALIDATED #
02995 M00S01526.sform +++|ITEM IVAL I; # INTEGER VALUE OF INPUT #
02996 M00S01527.sform +++|
02997 M00S01528.sform +++|ITEM CHAR I; # INPUT CHARACTER #
02998 M00S01529.sform +++|ITEM CHARPOS I; # CHARACTER POSITION IN FIELD #
02999 M00S01530.sform +++|ITEM DATEIND I; # INDEX TO DATEARRAY #
03000 M00S01531.sform +++|ITEM DD I; # DAY #
03001 M00S01532.sform +++|ITEM DIGITS I; # NUMBER OF DIGITS IN SUBFIELD #
03002 M00S01533.sform +++|ITEM FVAL I; # SUBFIELD VALUE #
03003 M00S01534.sform +++|ITEM I I; # LOOP COUNTER #
03004 M00S01535.sform +++|ITEM INPIND I; # INDEX TO NEXT INPUT CHARACTER #
03005 M00S01536.sform +++|ITEM MM I; # MONTH #
03006 M00S01537.sform +++|ITEM TEMP1 I; # USED FOR LEAP YEAR CALCULATION #
03007 M00S01538.sform +++|ITEM VARIND I; # INDEX INTO VARLIST #
03008 M00S01539.sform +++|ITEM YY I; # YEAR #
03009 M00S01540.sform +++|
03010 M00S01541.sform +++|ARRAY DATEARRAY[0:7] P(1);
03011 M00S01542.sform +++| BEGIN
03012 M00S01543.sform +++| ITEM DATECHAR U(00,00,60); # HOLDS INPUT CHARACTERS #
03013 M00S01544.sform +++| END
03014 M00S01545.sform +++|
03015 M00S01546.sform +++|ARRAY DATEDELS[0:2] P(1);
03016 M00S01547.sform +++| BEGIN
03017 M00S01548.sform +++| ITEM DATEDEL U(00,00,60); # DATE DELIMETER #
03018 M00S01549.sform +++| END
03019 M00S01550.sform +++|
03020 M00S01551.sform +++|ARRAY FIELDARRAY[0:2] P(1);
03021 M00S01552.sform +++| BEGIN
03022 M00S01553.sform +++| ITEM FIELD U(00,00,60); # HOLDS MONTH, DAY, YEAR FIELDS #
03023 M00S01554.sform +++| END
03024 M00S01555.sform +++|
03025 M00S01556.sform +++|ARRAY MONTHS [0:12] P(1); # NUMBER OF DAYS IN EACH MONTH #
03026 M00S01557.sform +++| BEGIN # 0TH MONTH = LEAP YEAR FEBRUARY #
03027 M00S01558.sform +++| ITEM MONLENGTH U(00,00,60) =
03028 M00S01559.sform +++| [29,31,28,31,30,31,30,31,31,30,31,30,31];
03029 M00S01560.sform +++| END
03030 M00S01561.sform +++|
03031 M00S01562.sform +++|SWITCH DATETYPE:FORMTYPE
03032 M00S01563.sform +++| YYMMDD : Y,
03033 M00S01564.sform +++| MMDDYY : M,
03034 M00S01565.sform +++| DDMMYY : D;
03035 M00S01566.sform +++|
03036 M00S01567.sform +++|DATEIND = 0;
03037 M00S01568.sform +++|INPIND = 0;
03038 M00S01569.sform +++|CHARPOS = 0;
03039 M00S01570.sform +++|
03040 M00S01571.sform +++|VARIND = FLDVARORD[FLDIND]; # SET INDEX TO VARLIST #
03041 M00S01572.sform +++|IVAL = 0;
03042 M00S01573.sform +++|SKPBLK(FLDIND,CHARPOS,CHAR);
03043 M00S01574.sform +++|IF CHARPOS GQ FLDLENGTH[FLDIND] THEN
03044 M00S01575.sform +++| BEGIN # BLANK FIELD #
03045 M00S01576.sform +++| FLDVALID[FLDIND] = FALSE;
03046 M00S01577.sform +++| RETURN;
03047 M00S01578.sform +++| END
03048 M00S01579.sform +++|
03049 M00S01580.sform +++|FOR I = 0 STEP 1 UNTIL 2 DO
03050 M00S01581.sform +++| BEGIN
03051 M00S01582.sform +++| FVAL = 0;
03052 M00S01583.sform +++| GETNUM(FLDIND,CHARPOS,FVAL,DIGITS);
03053 M00S01584.sform +++| IF I NQ 2 THEN
03054 M00S01585.sform +++| BEGIN
03055 M00S01586.sform +++| CHAR = NEXTCHAR(FLDIND,CHARPOS);
03056 M00S01587.sform +++| DATEDEL[I] = CHAR;
03057 M00S01588.sform +++| END
03058 M00S01589.sform +++| ELSE CHARPOS = CHARPOS -1;
03059 M00S01590.sform +++| IF NOT(DIGITS EQ 1 OR DIGITS EQ 2) THEN
03060 M00S01591.sform +++| BEGIN
03061 M00S01592.sform +++| FLDVALID[FLDIND] = FALSE;
03062 M00S01593.sform +++| RETURN;
03063 M00S01594.sform +++| END
03064 M00S01595.sform +++| CHARPOS = CHARPOS + 1;
03065 M00S01596.sform +++| FIELD[I] = FVAL;
03066 M00S01597.sform +++| END
03067 M00S01598.sform +++|
03068 M00S01599.sform +++|IF CHARPOS NQ FLDLENGTH[FLDIND] THEN
03069 M00S01600.sform +++| BEGIN # CHECK FOR EXTRA CHARACTERS #
03070 M00S01601.sform +++| SKPBLK(FLDIND,CHARPOS,CHAR);
03071 M00S01602.sform +++| IF CHARPOS LQ FLDLENGTH[FLDIND] - 1 THEN
03072 M00S01603.sform +++| BEGIN # NON-BLANK CHAR AFTER DATE #
03073 M00S01604.sform +++| FLDVALID[FLDIND] = FALSE;
03074 M00S01605.sform +++| RETURN;
03075 M00S01606.sform +++| END
03076 M00S01607.sform +++| END
03077 M00S01608.sform +++|
03078 M00S01609.sform +++|IF DATEDEL[1] NQ DATEDEL[0] THEN
03079 M00S01610.sform +++| BEGIN
03080 M00S01611.sform +++| FLDVALID[FLDIND] = FALSE;
03081 M00S01612.sform +++| RETURN;
03082 M00S01613.sform +++| END
03083 M00S01614.sform +++|GOTO DATETYPE[VARPICTYPE[VARIND]];
03084 M00S01615.sform +++|
03085 M00S01616.sform +++|MMDDYY: # SET MONTH, DAY, YEAR VALUES #
03086 M00S01617.sform +++|
03087 M00S01618.sform +++| MM = FIELD[0];
03088 M00S01619.sform +++| DD = FIELD[1];
03089 M00S01620.sform +++| YY = FIELD[2];
03090 M00S01621.sform +++| GOTO CHECKDATE;
03091 M00S01622.sform +++|
03092 M00S01623.sform +++|YYMMDD: # SET MONTH, DAY, YEAR VALUES #
03093 M00S01624.sform +++|
03094 M00S01625.sform +++| YY = FIELD[0];
03095 M00S01626.sform +++| MM = FIELD[1];
03096 M00S01627.sform +++| DD = FIELD[2];
03097 M00S01628.sform +++| GOTO CHECKDATE;
03098 M00S01629.sform +++|
03099 M00S01630.sform +++|DDMMYY: # SET MONTH, DAY, YEAR VALUES #
03100 M00S01631.sform +++|
03101 M00S01632.sform +++| DD = FIELD[0];
03102 M00S01633.sform +++| MM = FIELD[1];
03103 M00S01634.sform +++| YY = FIELD[2];
03104 M00S01635.sform +++|
03105 M00S01636.sform +++|CHECKDATE: # CHECK FOR VALID DATE VALUE #
03106 M00S01637.sform +++|
03107 M00S01638.sform +++| IF MM GR 12 OR MM LS 1 THEN
03108 M00S01639.sform +++| BEGIN # INVALID MONTH #
03109 M00S01640.sform +++| FLDVALID[FLDIND] = FALSE;
03110 M00S01641.sform +++| RETURN;
03111 M00S01642.sform +++| END
03112 M00S01643.sform +++|
03113 M00S01644.sform +++| IF MM EQ 2 THEN # CHECK IF LEAP YEAR FEBRUARY #
03114 M00S01645.sform +++| BEGIN
03115 M00S01646.sform +++| TEMP1 = YY / 4;
03116 M00S01647.sform +++| TEMP1 = YY - (4 * TEMP1);
03117 M00S01648.sform +++| IF TEMP1 EQ 0 THEN MM = 0;
03118 M00S01649.sform +++| END
03119 M00S01650.sform +++|
03120 M00S01651.sform +++| IF DD GR MONLENGTH[MM] OR DD LS 1 THEN
03121 M00S01652.sform +++| BEGIN # INVALID DAY #
03122 M00S01653.sform +++| FLDVALID[FLDIND] = FALSE;
03123 M00S01654.sform +++| RETURN;
03124 M00S01655.sform +++| END
03125 M00S01656.sform +++|
03126 M00S01657.sform +++| IF MM EQ 0 THEN MM = 2;