User Tools

Site Tools


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

Deck VIRTERM Part 002

12 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
03968  M00S03707.virterm +++|  CLRSCREEN:                         # CLEAR SCREEN #
03969  M00S03708.virterm +++|    VTORDN = SCREENST"CLRPAG";
03970  M00S03709.virterm +++|    IORET                            # RETURN #
03971  M00S03710.virterm +++|
03972  M00S03711.virterm +++|  CLRUNPROT:                         # CLEAR UNPROTECTED #
03973  M00S03712.virterm +++|    VTORDN = SCREENST"CLRUNP";
03974  M00S03713.virterm +++|    IORET                            # RETURN #
03975  M00S03714.virterm +++|
03976  M00S03715.virterm +++|  CLREOS:                            # CLEAR TO END OF SCREEN #
03977  M00S03716.virterm +++|    VTORDN = SCREENST"CLREOP";
03978  M00S03717.virterm +++|    IORET                            # RETURN #
03979  M00S03718.virterm +++|
03980  M00S03719.virterm +++|  ERASELNECL:                        # ERASE LINE, CURSOR LEFT #
03981  M00S03720.virterm +++|    VTXCUR = 0;                      # FALL THROUGH TO COMMON CODE #
03982  M00S03721.virterm +++|
03983  M00S03722.virterm +++|  ERASELINE:                         # ERASE LINE #
03984  M00S03723.virterm +++|    VTORDN = SCREENST"ERAL";
03985  M00S03724.virterm +++|    IORET                            # RETURN #
03986  M00S03725.virterm +++|
03987  M00S03726.virterm +++|  CLREOL:                            # CLEAR TO END OF LINE #
03988  M00S03727.virterm +++|    VTORDN = SCREENST"CLREOL";
03989  M00S03728.virterm +++|    IORET                            # RETURN #
03990  M00S03729.virterm +++|
03991  M00S03730.virterm +++|  ERASECHAR:                         # ERASE CHARACTER #
03992  M00S03731.virterm +++|    VTDELT = 6;                      # CURSOR MOVEMENT ORDINAL #
03993  M00S03732.virterm +++|    VTXCUR = VTXCUR - 1;
03994  M00S03733.virterm +++|    VTORDN = SCREENST"ERAC";
03995  M00S03734.virterm +++|    IF VTXCUR LS 0 THEN
03996  M00S03735.virterm +++|      BEGIN                          # IF OFF LEFT SIDE OF SCREEN #
03997  M00S03736.virterm +++|      IF TABLEFTCHR[0] GQ CURSORMOVE"SPIRAL" THEN
03998  M00S03737.virterm +++|        BEGIN                        # IF WRAP OR SPIRAL #
03999  M00S03738.virterm +++|        VTXCUR = VTXMAX;             # CURSOR IS IN LAST COLUMN #
04000  M00S03739.virterm +++|        IF TABLEFTCHR[0] EQ CURSORMOVE"SPIRAL" THEN
04001  M00S03740.virterm +++|          BEGIN                      # IF CURSOR IS ON PREVIOUS LINE #
04002  M00S03741.virterm +++|          VTYCUR = VTYCUR - 1;       # DECREMENT AND CHECK BOUNDARY #
04003  M00S03742.virterm +++|          IF VTYCUR LS 0 THEN VTYCUR = VTYMAX;
04004  M00S03743.virterm +++|          END
04005  M00S03744.virterm +++|        END
04006  M00S03745.virterm +++|      ELSE
04007  M00S03746.virterm +++|        BEGIN                        # CURSOR HAS STOPPED AT LEFT #
04008  M00S03747.virterm +++|        VTXCUR = 0;                  # CURSOR IS IN FIRST COLUMN #
04009  M00S03748.virterm +++|        END
04010  M00S03749.virterm +++|      END
04011  M00S03750.virterm +++|    IORET                            # RETURN #
04012  M00S03751.virterm +++|
04013  M00S03752.virterm +++|  CURSORHOME:                        # CURSOR HOME #
04014  M00S03753.virterm +++|    VTOXPOS = VTXCUR;                # SAVE CURSOR POSITION #
04015  M00S03754.virterm +++|    VTOYPOS = VTYCUR;
04016  M00S03755.virterm +++|    VTXCUR = 0;                      # SET POSITION TO HOME #
04017  M00S03756.virterm +++|    IF TABVTHOMEU[0] THEN VTYCUR = 0; ELSE VTYCUR = VTYMAX;
04018  M00S03757.virterm +++|    VTORDN = SCREENST"HOME";
04019  M00S03758.virterm +++|    IORET                            # RETURN #
04020  M00S03759.virterm +++|
04021  M00S03760.virterm +++|  CURSORUP:                          # CURSOR UP #
04022  M00S03761.virterm +++|    VTDELT = 4;                      # CURSOR MOVEMENT ORDINAL #
04023  M00S03762.virterm +++|    VTYCUR = VTYCUR - 1;
04024  M00S03763.virterm +++|    VTORDN = SCREENST"UP";
04025  M00S03764.virterm +++|    IF VTYCUR LS 0 THEN
04026  M00S03765.virterm +++|      BEGIN                          # IF OFF TOP OF SCREEN #
04027  M00S03766.virterm +++|      IF TABUPCURSR[0] GQ CURSORMOVE"SPIRAL" THEN
04028  M00S03767.virterm +++|        BEGIN                        # IF WRAP OR SPIRAL #
04029  M00S03768.virterm +++|        VTYCUR = VTYMAX;             # CURSOR IS ON LAST LINE #
04030  M00S03769.virterm +++|        IF TABUPCURSR[0] EQ CURSORMOVE"SPIRAL" THEN
04031  M00S03770.virterm +++|          BEGIN                      # IF CURSOR IN PREVIOUS COLUMN #
04032  M00S03771.virterm +++|          VTXCUR = VTXCUR - 1;       # DECREMENT AND CHECK BOUNDARY #
04033  M00S03772.virterm +++|          IF VTXCUR LS 0 THEN VTXCUR = VTXMAX;
04034  M00S03773.virterm +++|          END
04035  M00S03774.virterm +++|        END
04036  M00S03775.virterm +++|      ELSE
04037  M00S03776.virterm +++|        BEGIN                        # CURSOR HAS STOPPED AT TOP #
04038  M00S03777.virterm +++|        VTYCUR = 0;                  # CURSOR IS ON FIRST LINE #
04039  M00S03778.virterm +++|        END
04040  M00S03779.virterm +++|      END
04041  M00S03780.virterm +++|    IORET                            # RETURN #
04042  M00S03781.virterm +++|
04043  M00S03782.virterm +++|  CURSORDOWN:                        # CURSOR DOWN #
04044  M00S03783.virterm +++|    VTDELT = 2;                      # CURSOR MOVEMENT ORDINAL #
04045  M00S03784.virterm +++|    VTYCUR = VTYCUR + 1;
04046  M00S03785.virterm +++|    VTORDN = SCREENST"DOWN";
04047  M00S03786.virterm +++|    IF VTYCUR GR VTYMAX THEN
04048  M00S03787.virterm +++|      BEGIN                          # IF OFF BOTTOM TOP OF SCREEN #
04049  M00S03788.virterm +++|      IF TABDWNCRSR[0] GQ CURSORMOVE"SPIRAL" THEN
04050  M00S03789.virterm +++|        BEGIN                        # IF WRAP OR SPIRAL #
04051  M00S03790.virterm +++|        VTYCUR = 0;                  # CURSOR IS ON FIRST LINE #
04052  M00S03791.virterm +++|        IF TABDWNCRSR[0] EQ CURSORMOVE"SPIRAL" THEN
04053  M00S03792.virterm +++|          BEGIN                      # IF CURSOR IS IN NEXT COLUMN #
04054  M00S03793.virterm +++|          VTXCUR = VTXCUR + 1;       # INCREMENT AND CHECK BOUNDARY #
04055  M00S03794.virterm +++|          IF VTXCUR GR VTXMAX THEN VTXCUR = 0;
04056  M00S03795.virterm +++|          END
04057  M00S03796.virterm +++|        END
04058  M00S03797.virterm +++|      ELSE
04059  M00S03798.virterm +++|        BEGIN                        # SCROLL OR STOP #
04060  M00S03799.virterm +++|        IF TABDWNCRSR[0] EQ CURSORMOVE"SCROLL" THEN
04061  M00S03800.virterm +++|          BEGIN                      # TERMINAL HAS SCROLLED #
04062  M00S03801.virterm +++|          VTORDN = SCREENST"CLRPAG";  # RETURN SOFT CLEAR PAGE #
04063  M00S03802.virterm +++|          END
04064  M00S03803.virterm +++|        ELSE
04065  M00S03804.virterm +++|          BEGIN                      # CURSOR HAS STOPPED AT BOTTOM #
04066  M00S03805.virterm +++|          VTYCUR = VTYMAX;           # CURSOR IS ON LAST LINE #
04067  M00S03806.virterm +++|          END
04068  M00S03807.virterm +++|        END
04069  M00S03808.virterm +++|      END
04070  M00S03809.virterm +++|    IORET                            # RETURN #
04071  M00S03810.virterm +++|
04072  M00S03811.virterm +++|  CURSORLEFT:                        # CURSOR LEFT #
04073  M00S03812.virterm +++|    VTDELT = 1;                      # CURSOR MOVEMENT ORDINAL #
04074  M00S03813.virterm +++|    VTXCUR = VTXCUR - 1;
04075  M00S03814.virterm +++|    VTORDN = SCREENST"LEFT";
04076  M00S03815.virterm +++|    IF VTXCUR LS 0 THEN
04077  M00S03816.virterm +++|      BEGIN                          # IF OFF LEFT SIDE OF SCREEN #
04078  M00S03817.virterm +++|      IF TABLEFTCUR[0] GQ CURSORMOVE"SPIRAL" THEN
04079  M00S03818.virterm +++|        BEGIN                        # IF WRAP OR SPIRAL #
04080  M00S03819.virterm +++|        VTXCUR = VTXMAX;             # CURSOR IS IN LAST COLUMN #
04081  M00S03820.virterm +++|        IF TABLEFTCUR[0] EQ CURSORMOVE"SPIRAL" THEN
04082  M00S03821.virterm +++|          BEGIN                      # IF CURSOR IN PREVIOUS ROW #
04083  M00S03822.virterm +++|          VTYCUR = VTYCUR - 1;       # DECREMENT AND CHECK BOUNDARY #
Line S03823 Modification History
M01 (Removed by) ns2549
Seq #  *Modification Id* Act 
----------------------------+
04084  M01S03823.ns2549  ---|          IF VTYCUR LS 0 THEN VTYCUR = VTYMAX;
Line S00001 Modification History
M01 (Added by) ns2549
Seq #  *Modification Id* Act 
----------------------------+
04085  M01S00001.ns2549  +++|          IF VTYCUR LS 0 THEN
04086  M01S00002.ns2549  +++|            BEGIN                    # IF BACKWARD WRAP FROM TOP LINE #
04087  M01S00003.ns2549  +++|            IF NOT TABPTDWBPG[0] THEN VTYCUR = VTYMAX;
04088  M01S00004.ns2549  +++|            ELSE
04089  M01S00005.ns2549  +++|              BEGIN                  # IF CANNOT PAGE WRAP BACKWARD #
04090  M01S00006.ns2549  +++|              VTXCUR = 0;
04091  M01S00007.ns2549  +++|              VTYCUR = 0;
04092  M01S00008.ns2549  +++|              END
04093  M01S00009.ns2549  +++|            END
04094  M00S03824.virterm +++|          END
04095  M00S03825.virterm +++|        END
04096  M00S03826.virterm +++|      ELSE
04097  M00S03827.virterm +++|        BEGIN                        # CURSOR HAS STOPPED AT LEFT #
04098  M00S03828.virterm +++|        VTXCUR = 0;                  # CURSOR IS IN FIRST COLUMN #
04099  M00S03829.virterm +++|        END
04100  M00S03830.virterm +++|      END
04101  M00S03831.virterm +++|    IORET                            # RETURN #
04102  M00S03832.virterm +++|
04103  M00S03833.virterm +++|  CURSORIGHT:                        # CURSOR RIGHT #
04104  M00S03834.virterm +++|    VTDELT = 3;                      # CURSOR MOVEMENT ORDINAL #
04105  M00S03835.virterm +++|    VTXCUR = VTXCUR + 1;
04106  M00S03836.virterm +++|    VTORDN = SCREENST"RIGHT";
04107  M00S03837.virterm +++|    IF VTXCUR GR VTXMAX THEN
04108  M00S03838.virterm +++|      BEGIN                          # IF OFF RIGHT SIDE OF SCREEN #
04109  M00S03839.virterm +++|      IF TABRGHTCUR[0] GQ CURSORMOVE"SPIRAL" THEN
04110  M00S03840.virterm +++|        BEGIN                        # IF WRAP OR SPIRAL #
04111  M00S03841.virterm +++|        VTXCUR = 0;                  # CURSOR IS IN FIRST COLUMN #
04112  M00S03842.virterm +++|        IF TABRGHTCUR[0] EQ CURSORMOVE"SPIRAL" THEN
04113  M00S03843.virterm +++|          BEGIN                      # IF CURSOR IS IN NEXT ROW #
04114  M00S03844.virterm +++|          VTYCUR = VTYCUR + 1;       # INCREMENT AND CHECK BOUNDARY #
04115  M00S03845.virterm +++|          IF VTYCUR GR VTYMAX THEN VTYCUR = 0;
04116  M00S03846.virterm +++|          END
04117  M00S03847.virterm +++|        END
04118  M00S03848.virterm +++|      ELSE
04119  M00S03849.virterm +++|        BEGIN                        # CURSOR HAS STOPPED AT RIGHT #
04120  M00S03850.virterm +++|        VTXCUR = VTXMAX;             # CURSOR IS IN LAST COLUMN #
04121  M00S03851.virterm +++|        END
04122  M00S03852.virterm +++|      END
04123  M00S03853.virterm +++|    IORET                            # RETURN #
04124  M00S03854.virterm +++|
04125  M00S03855.virterm +++|  TABFORWARD:                        # TAB FORWARD #
04126  M00S03856.virterm +++|    VTORDN = SCREENST"FTAB";
04127  M00S03857.virterm +++|    IORET                            # RETURN #
04128  M00S03858.virterm +++|
04129  M00S03859.virterm +++|  TABACKWARD:                        # TAB BACKWARD #
04130  M00S03860.virterm +++|    VTORDN = SCREENST"BTAB";
04131  M00S03861.virterm +++|    IORET                            # RETURN #
04132  M00S03862.virterm +++|
04133  M00S03863.virterm +++|  RET:                               # RETURN FUNCTION #
04134  M00S03864.virterm +++|    VTORDN = SCREENST"RET";
04135  M00S03865.virterm +++|    IORET                            # RETURN #
04136  M00S03866.virterm +++|
04137  M00S03867.virterm +++|  RESET:                             # RESET FUNCTION #
04138  M00S03868.virterm +++|    VTORDN = SCREENST"RESET";
04139  M00S03869.virterm +++|    IORET                            # RETURN #
04140  M00S03870.virterm +++|
04141  M00S03871.virterm +++|  INSRTMDEON:                        # INSERT MODE ON #
04142  M00S03872.virterm +++|    VTINSMODE[0] = TRUE;
04143  M00S03873.virterm +++|    VTORDN = SCREENST"NOOP";
04144  M00S03874.virterm +++|    IORET                            # RETURN #
04145  M00S03875.virterm +++|
04146  M00S03876.virterm +++|  INSRTMDOFF:                        # INSERT MODE OFF #
04147  M00S03877.virterm +++|    VTINSMODE[0] = FALSE;
04148  M00S03878.virterm +++|    VTORDN = SCREENST"NOOP";
04149  M00S03879.virterm +++|    IORET                            # RETURN #
04150  M00S03880.virterm +++|
04151  M00S03881.virterm +++|  INSRTMDTOG:                        # INSERT MODE TOGGLE #
04152  M00S03882.virterm +++|    VTINSMODE[0] = NOT VTINSMODE[0];
04153  M00S03883.virterm +++|    VTORDN = SCREENST"NOOP";
04154  M00S03884.virterm +++|    IORET                            # RETURN #
04155  M00S03885.virterm +++|
Line S00004 Modification History
M01 (Added by) ns2641
Seq #  *Modification Id* Act 
----------------------------+
04156  M01S00004.ns2641  +++|  CLRTABSTOP:                        # CLEAR TAB STOP #
04157  M01S00005.ns2641  +++|    VTORDN = SCREENST"CLRTAB";
04158  M01S00006.ns2641  +++|    IORET                            # RETURN #
04159  M01S00007.ns2641  +++|
04160  M01S00008.ns2641  +++|  CLRALLTABS:                        # CLEAR ALL TABS #
04161  M01S00009.ns2641  +++|    VTORDN = SCREENST"CLRALL";
04162  M01S00010.ns2641  +++|    IORET                            # RETURN #
04163  M01S00011.ns2641  +++|
04164  M01S00012.ns2641  +++|  SETTABSTOP:                        # SET TAB STOP #
04165  M01S00013.ns2641  +++|    VTORDN = SCREENST"SETTAB";
04166  M01S00014.ns2641  +++|    IORET                            # RETURN #
04167  M01S00015.ns2641  +++|
04168  M00S03886.virterm +++|  CURSORSTR:                         # CURSOR POSITION START #
04169  M00S03887.virterm +++|    IF TABCURADDT[0] EQ 2 THEN
04170  M00S03888.virterm +++|      BEGIN                          # IF CDC 721 #
04171  M00S03889.virterm +++|      VDNXTI;                        # GET TOUCH PANEL POSITION #
04172  M00S03890.virterm +++|      IF VTCHAR EQ X"7E" THEN
04173  M00S03891.virterm +++|        BEGIN                        # 132 COLUMN TOUCH PANEL INPUT #
04174  M00S03892.virterm +++|        VDNXTI;
04175  M00S03893.virterm +++|        IF VTCHAR NQ TABCURBIAS[0] THEN
04176  M00S03894.virterm +++|          BEGIN                      # IF PAST COLUMN 80 #
04177  M00S03895.virterm +++|          VDNXTI;
04178  M00S03896.virterm +++|          VTXCUR = VTCHAR - TABCURBIAS[0] + 80;
04179  M00S03897.virterm +++|          VDNXTI;
04180  M00S03898.virterm +++|          VTYCUR = VTCHAR - TABCURBIAS[0];
04181  M00S03899.virterm +++|          VTCHAR = GENERICST"GPOS";  # RETURN GENERIC TYPE #
04182  M00S03900.virterm +++|          VTORDN = SCREENST"GKEY";   # RETURN ORDINAL #
04183  M00S03901.virterm +++|          IORET                      # RETURN #
04184  M00S03902.virterm +++|          END
04185  M00S03903.virterm +++|        ELSE
04186  M00S03904.virterm +++|          BEGIN                      # NOT PAST COLUMN 80 #
04187  M00S03905.virterm +++|          VDNXTI;
04188  M00S03906.virterm +++|          END
04189  M00S03907.virterm +++|        END
04190  M00S03908.virterm +++|      VTXCUR = VTCHAR - TABCURBIAS[0];
04191  M00S03909.virterm +++|      VDNXTI;
04192  M00S03910.virterm +++|      VTYCUR = VTCHAR - TABCURBIAS[0];
04193  M00S03911.virterm +++|      VTCHAR = GENERICST"GPOS";      # RETURN GENERIC TYPE #
04194  M00S03912.virterm +++|      VTORDN = SCREENST"GKEY";       # RETURN ORDINAL #
04195  M00S03913.virterm +++|      END
04196  M00S03914.virterm +++|    ELSE
04197  M00S03915.virterm +++|      BEGIN                          # IF NOT CDC 721 TOUCH PANEL #
04198  M00S03916.virterm +++|CONTROL IFEQ SINGLE,1;               # IF NOT MULTI USER FSE #
04199  M00S03917.virterm +++|      IF TABLOCKMDE[0] THEN
04200  M00S03918.virterm +++|        BEGIN                        # IF BLOCK MODE TERMINAL #
04201  M00S03919.virterm +++|        VDNXTI;                      # GET BUFFER ADDRESS #
04202  M00S03920.virterm +++|        VTHOLD = ATR3270[VTCHAR] * 64;
04203  M00S03921.virterm +++|        VDNXTI;                      # CALCULATE COORDINATES #
04204  M00S03922.virterm +++|        VTHOLD = VTHOLD + ATR3270[VTCHAR];
04205  M00S03923.virterm +++|        VTYCUR = VTHOLD / (VTXMAX + 1);
04206  M00S03924.virterm +++|        VTXCUR = VTHOLD - (VTYCUR * (VTXMAX + 1));
04207  M00S03925.virterm +++|        IF VTRESINP NQ 0 THEN
04208  M00S03926.virterm +++|          BEGIN                      # IF NOT JUST RESIDUAL INPUT #
04209  M00S03927.virterm +++|          VTORDN = SCREENST"STRTFLD";
04210  M00S03928.virterm +++|          END
04211  M00S03929.virterm +++|        ELSE
04212  M00S03930.virterm +++|          BEGIN                      # REFLECT FINAL CURSOR POSITION #
04213  M00S03931.virterm +++|          VTORDN = SCREENST"NOOP";
04214  M00S03932.virterm +++|          END
04215  M00S03933.virterm +++|        END
04216  M00S03934.virterm +++|      ELSE
04217  M00S03935.virterm +++|        BEGIN                        # NOT 721 TOUCH PANEL #
04218  M00S03936.virterm +++|CONTROL FI;                          # END OF IF NOT MULTI FSE #
04219  M00S03937.virterm +++|        VTORDN = SCREENST"NOOP";     # CURRENTLY UNSUPPORTED #
04220  M00S03938.virterm +++|CONTROL IFEQ SINGLE,1;               # IF NOT MULTI USER FSE #
04221  M00S03939.virterm +++|        END
04222  M00S03940.virterm +++|CONTROL FI;                          # END OF IF NOT MULTI FSE #
04223  M00S03941.virterm +++|      END
04224  M00S03942.virterm +++|    IORET                            # RETURN #
04225  M00S03943.virterm +++|
04226  M00S03944.virterm +++|  CURSORSEC:                         # CURSOR POSITION SECOND #
04227  M00S03945.virterm +++|  CURSORTHR:                         # CURSOR POSITION THIRD #
04228  M00S03946.virterm +++|    VTORDN = SCREENST"NOOP";         # CURRENTLY UNSUPPORTED #
04229  M00S03947.virterm +++|    IORET                            # RETURN #
04230  M00S03948.virterm +++|
04231  M00S03949.virterm +++|  EOI:                               # END OF INFORMATION #
04232  M00S03950.virterm +++|CONTROL IFEQ SINGLE,1;               # IF NOT MULTI USER FSE #
04233  M00S03951.virterm +++|    IF VTRESINP NQ 0 THEN
04234  M00S03952.virterm +++|      BEGIN                          # IF RESIDUAL INPUT TO PROCESS #
04235  M00S03953.virterm +++|      VTINPDATA = VTRESINP;
04236  M00S03954.virterm +++|      VTINPNEXT = 0;
04237  M00S03955.virterm +++|      VTRESINP = 0;
04238  M00S03956.virterm +++|      GOTO CURSORSTR;                # PROCESS FINAL CURSOR POSITION #
04239  M00S03957.virterm +++|      END
04240  M00S03958.virterm +++|CONTROL FI;                          # END OF IF NOT MULTI FSE #
04241  M00S03959.virterm +++|    VTORDN = SCREENST"EOI";
04242  M00S03960.virterm +++|    IORET                            # RETURN #
04243  M00S03961.virterm +++|
04244  M00S03962.virterm +++|  CHARACTER:                         # OVERSTRIKE CHARACTER #
04245  M00S03963.virterm +++|    IF VTCHAR GQ X"20" AND VTCHAR LQ X"7E" THEN
04246  M00S03964.virterm +++|      BEGIN                          # IF VALID CHARACTER #
04247  M00S03965.virterm +++|      VTINCR = 1;
04248  M00S03966.virterm +++|      VTORDN = SCREENST"CHAR";
04249  M00S03967.virterm +++|      IF VTINSMODE[0] THEN VTORDN = SCREENST"INSC";
04250  M00S03968.virterm +++|      END
04251  M00S03969.virterm +++|    ELSE
04252  M00S03970.virterm +++|      BEGIN                          # NOT VALID CHARACTER #
04253  M00S03971.virterm +++|      IF VTCHAR EQ X"14" THEN
04254  M00S03972.virterm +++|        BEGIN                        # IF CONTROL-T #
04255  M00S03973.virterm +++|        VTORDN = SCREENST"GKEY";     # RETURN GENERIC STOP #
04256  M00S03974.virterm +++|        VTCHAR = 4;
04257  M00S03975.virterm +++|        END
04258  M00S03976.virterm +++|      ELSE
04259  M00S03977.virterm +++|        BEGIN                        # NOT CONTROL-T #
04260  M00S03978.virterm +++|        VTORDN = SCREENST"BAD";      # BAD INPUT #
04261  M00S03979.virterm +++|        END
04262  M00S03980.virterm +++|      END
04263  M00S03981.virterm +++|    IORET                            # RETURN #
Line S00039 Modification History
M01 (Added by) ns2675
Seq #  *Modification Id* Act 
----------------------------+
04264  M01S00039.ns2675  +++|
04265  M01S00040.ns2675  +++|  FKEYX:                             # FUNCTION KEY 17 THROUGH 24 #
04266  M01S00041.ns2675  +++|    VTORDN = VTORDN - INPUTORD"BACKSPACE" + INPUTORD"F16";
04267  M00S03982.virterm +++|
04268  M00S03983.virterm +++|  FKEY:                              # FUNCTION KEY 1 THROUGH 16 #
04269  M00S03984.virterm +++|    IF TABVTFKLSM[0] NQ 0 THEN VTINCR = TABVTFKLSM[0];
04270  M00S03985.virterm +++|    VTCHAR = VTORDN - INPUTORD"CHARACTER";
04271  M00S03986.virterm +++|    VTORDN = SCREENST"FKEY";         # RETURN ORDINAL #
04272  M00S03987.virterm +++|    IORET                            # RETURN #
Line S00042 Modification History
M01 (Added by) ns2675
Seq #  *Modification Id* Act 
----------------------------+
04273  M01S00042.ns2675  +++|
04274  M01S00043.ns2675  +++|  FKEYXS:                            # SHIFTED KEY 17 THROUGH 24 #
04275  M01S00044.ns2675  +++|    VTORDN = VTORDN - INPUTORD"F24" + INPUTORD"F16S";
04276  M00S03988.virterm +++|
04277  M00S03989.virterm +++|  FKEYSHIFT:                         # SHIFTED KEY 1 THROUGH 16 #
04278  M00S03990.virterm +++|    IF TABVTFKLSM[0] NQ 0 THEN VTINCR = TABVTFKLSM[0];
04279  M00S03991.virterm +++|    VTCHAR = VTORDN - INPUTORD"F16";
04280  M00S03992.virterm +++|    VTCHAR = -VTCHAR;                # RETURN NEGATIVE VALUE #
04281  M00S03993.virterm +++|    VTORDN = SCREENST"FKEY";         # RETURN ORDINAL #
04282  M00S03994.virterm +++|    IORET                            # RETURN #
04283  M00S03995.virterm +++|
04284  M00S03996.virterm +++|  GKEY:                              # GENERIC FUNCTION KEYS #
04285  M00S03997.virterm +++|    IF TABVTFKLSM[0] NQ 0 THEN VTINCR = TABVTFKLSM[0];
04286  M00S03998.virterm +++|    VTCHAR = VTORDN - INPUTORD"F16S";
04287  M00S03999.virterm +++|    VTORDN = SCREENST"GKEY";         # RETURN ORDINAL #
04288  M00S04000.virterm +++|    IORET                            # RETURN #
04289  M00S04001.virterm +++|
04290  M00S04002.virterm +++|  GKEYSHIFT:                         # SHIFTED GENERIC KEYS #
04291  M00S04003.virterm +++|    IF TABVTFKLSM[0] NQ 0 THEN VTINCR = TABVTFKLSM[0];
04292  M00S04004.virterm +++|    VTCHAR = VTORDN - INPUTORD"DATAKEY";
04293  M00S04005.virterm +++|    VTCHAR = -VTCHAR;                # RETURN NEGATIVE VALUE #
04294  M00S04006.virterm +++|    VTORDN = SCREENST"GKEY";         # RETURN ORDINAL #
04295  M00S04007.virterm +++|    IORET                            # RETURN #
04296  M00S04008.virterm +++|
04297  M00S04009.virterm +++|  BACKSPACE:                         # BACK SPACE #
04298  M00S04010.virterm +++|    VTDELT = 5;                      # CURSOR MOVEMENT ORDINAL #
04299  M00S04011.virterm +++|    VTXCUR = VTXCUR - 1;
04300  M00S04012.virterm +++|    VTORDN = SCREENST"LEFT";
04301  M00S04013.virterm +++|    IF VTXCUR LS 0 THEN
04302  M00S04014.virterm +++|      BEGIN                          # IF OFF LEFT SIDE OF SCREEN #
04303  M00S04015.virterm +++|      IF TABLEFTCHR[0] GQ CURSORMOVE"SPIRAL" THEN
04304  M00S04016.virterm +++|        BEGIN                        # IF WRAP OR SPIRAL #
04305  M00S04017.virterm +++|        VTXCUR = VTXMAX;             # CURSOR IS IN LAST COLUMN #
04306  M00S04018.virterm +++|        IF TABLEFTCHR[0] EQ CURSORMOVE"SPIRAL" THEN
04307  M00S04019.virterm +++|          BEGIN                      # IF CURSOR IS ON PREVIOUS LINE #
04308  M00S04020.virterm +++|          VTYCUR = VTYCUR - 1;       # DECREMENT AND CHECK BOUNDARY #
Line S04021 Modification History
M01 (Removed by) ns2549
Seq #  *Modification Id* Act 
----------------------------+
04309  M01S04021.ns2549  ---|          IF VTYCUR LS 0 THEN VTYCUR = VTYMAX;
Line S00010 Modification History
M01 (Added by) ns2549
Seq #  *Modification Id* Act 
----------------------------+
04310  M01S00010.ns2549  +++|          IF VTYCUR LS 0 THEN
04311  M01S00011.ns2549  +++|            BEGIN                    # IF BACKWARD WRAP FROM TOP LINE #
04312  M01S00012.ns2549  +++|            IF NOT TABPTDWBPG[0] THEN VTYCUR = VTYMAX;
04313  M01S00013.ns2549  +++|            ELSE
04314  M01S00014.ns2549  +++|              BEGIN                  # IF CANNOT PAGE WRAP BACKWARD #
04315  M01S00015.ns2549  +++|              VTXCUR = 0;
04316  M01S00016.ns2549  +++|              VTYCUR = 0;
04317  M01S00017.ns2549  +++|              END
04318  M01S00018.ns2549  +++|            END
04319  M00S04022.virterm +++|          END
04320  M00S04023.virterm +++|        END
04321  M00S04024.virterm +++|      ELSE
04322  M00S04025.virterm +++|        BEGIN                        # CURSOR HAS STOPPED AT LEFT #
04323  M00S04026.virterm +++|        VTXCUR = 0;                  # CURSOR IS IN FIRST COLUMN #
04324  M00S04027.virterm +++|        END
04325  M00S04028.virterm +++|      END
04326  M00S04029.virterm +++|    IORET                            # RETURN #
04327  M00S04030.virterm +++|
04328  M00S04031.virterm +++|IOEND  # VDTIINP #
04329  M00S04032.virterm +++|
04330  M00S04033.virterm +++|END  # VIRTERM #  TERM
cdc/nos2.source/opl.opl871/deck/virterm.002.txt ยท Last modified: by 127.0.0.1