Listing of file='DMSRES' on disk='vmedia/731-8011A.wvd.zip'
# Sector 486, program filename = 'DMSRES' 0004 REM % (c) Copyright Wang Laboratories, Inc. 1986 0010 REM DMSRES 29JUL86 REV 0.02 0020 REM PROGRAM NAME - RESUME OR RESTART WORKSTATION EMULATION FOR DMS 0030 REM DATE OF FIRST CODE - 17 JULY 1986 0040 REM 0050 REM 0060 REM FUNCTION - 0070 REM This program will re-start emulation at the DMS task if; 0080 REM A. The emulation was terminated for that task. 0090 REM B. The current partition dose not have WSE suspended. 0100 REM 0110 REM 0120 REM ************* COMMON VARIABLES ****************** 0130 REM 0140 REM A$ - ORDER AREA BYTE 1 = ROW 0150 REM BYTE 2 = WCC 0160 REM BYTE 3 = CURSOR COLUMN (IF BIT 20 OF WCC SET) 0170 REM BYTE 4 = CURSOR ROW (IF BIT 20 OF WCC SET) 0180 REM A$() - COPY OF SCREEN RECEIVED FROM CURRENT INPUT BUFFER 0190 REM A0$ - ADDRESS OF 2258 TO BE USED BY PROGRAM 0200 REM A1$() - SCREEN TAB POSITIONS 0210 REM A3$ - ATTACH TO VS PROGRAM FLAG 0220 REM Q1 - POINTS TO FIRST LINE OF CURRENT INPUT BUFFER (USUALLY 1) 0230 REM Q2 - POINTS TO LAST LINE OF CURRENT INPUT BUFFER (USUALLY 24) 0240 REM T$() - XLATE NORMAL 2200 KEYS TO VS SCAN CODE 0250 REM T1$() - XLATE SF 2200 KEYS TO VS SCAN CODE 0260 REM Q1$() - INPUT BUFFER FROM VS (SCREEN, TABS, ORDER AREA, ETC.) 0270 REM P() - CURSOR POSITION P(1)=COL, P(2)=ROW 0280 REM K9$ - KEYBOARD LOCK FLAG 01 - FUNCTIONS ONLY, 00 - ALL KEYS 0290 REM T5$() - TRANSLATION TABLE USED TO MAP SOME NORMAL KEYS TO OTHERS 0300 REM EX. CURSOR LEFT = BACKSPACE, ETC. 0310 REM T6$() - TRANSLATION TABLE USED TO MAP SOME SF KEYS TO OTHERS 0320 REM 0330 REM ************** LOCAL VARIABLES **************** 0340 REM 0350 REM Q$ - WORK BUFFER USED IN $GIO SEQUENCES 0360 REM T$ - HEXPACKED ADDRESS OF 2258, USE IN SELECT # STATEMENT 0370 REM T1$ - TEMPORARY STORAGE OF ORIGINAL T$ 0380 REM 0390 REM VARIABLES : COM A0$3, A3$1, A$4, A$(24)80, Q1, Q2, Q3, Q4,T$(16), T1$(16), Q1$(25)80, P(2), K9$1,T5$(6)20, T6$(1)20, A1$(10)1 : DIM T$1,T1$1,A9$3 0400 IF A0$=" " THEN A9$="07C" : ELSE A9$=A0$ 0405 REM INITIALIZE KEYBOARD TRANSLATION TABLE : GOSUB 660 : GOSUB 1000 : IF POS("AST"=A3$)=0 THEN A3$="S" : PRINT HEX(03) : GOTO 450 0410 PRINT HEX(03) : PRINT AT(0,26);"2258 WORKSTATION EMULATION" : PRINT "REVISION 0.00";TAB(36);"(c) Copyright Wang Laboratories Inc. 1986" 0430 PRINT AT(4,0,240);"Enter the Communication Address of the desired 2258 Co ntroller" 0440 LINPUT -A9$ 0450 IF VER(A9$,"HHH") <> 3 THEN 430 : A0$=A9$ : HEXPACK T$ FROM STR(A9$,2,2) : T1$=T$ 0460 T$ = OR HEX(01) : HEXUNPACK T$ TO STR(A9$,2,2) : SELECT #1 <A9$> : REM STATUS ADDRESS 0470 T$ = T1$ : T$ = OR HEX(02) : HEXUNPACK T$ TO STR(A9$,2,2) : SELECT #2 <A9$> : REM COMMAND ADDRESS 0480 T$ = T1$ : T$ = OR HEX(03) : HEXUNPACK T$ TO STR(A9$,2,2) : SELECT #3 <A9$> : REM DATA ADDRESS 0490 PRINT HEX(03);AT(12,30);"Resuming/Restarting Workstation Emulation" 0520 IF A3$="T" THEN GOSUB '70 : ELSE GOSUB '71 : IF A3$<>"A" THEN A3$="D" : IF V0$>=HEX(80) THEN 525 : PRINT AT(21,0,80);"Can not resume or restart Workstation Emulation for DM S task","Press any key to exit";HEX(06); : KEYIN K$ : LOAD RUN "VS.START" 0525 A$=STR(Q1$(),4,4) 0530 A$() = STR(Q1$(),8) 0535 IF STR(Q1$(),1938,2) = HEX(0000) THEN 600 : P(1) = VAL(STR(Q1$(),1938,1)) : P(2)=VAL(STR(Q1$(),1939,1)) 0600 REM DEFINE SCREEN TABS : STR(A1$(),1,10)=STR(Q1$(),1928,10) 0610 Q1=1 : Q2 =24 : Q3,Q4=1920 0620 PRINT HEX(03) 0630 LOAD T "WSE-EMUL" BEG 1000 0640 REM % KEYBOARD TRANSLATION TABLE 0650 REM NORMAL (NO ENDI) KEYS 0660 T$(1) = HEX(00010203040506072B090A0B0CC40E0F) 0670 T$(2) = HEX(101112131415161718191A1B1C1D1E1F) 0680 T$(3) = HEX(2CEEC5ECEBEAE845E6E5E7E43893B298) 0690 T$(4) = HEX(656E6D6C6B6A69686766C646B864AAB7) 0700 T$(5) = HEX(EDCFBBBDCDDDCCCBCAD8C9C8C7B9BAD7) 0710 T$(6) = HEX(D6DFDCCEDBD9BCDEBEDABFD55C55E9AF) 0720 T$(7) = HEX(604F3B3D4D5D4C4B4A58494847393A57) 0730 T$(8) = HEX(565F5C4E5B593C5E3E5A3F7B7C7D7E7F) 0740 T$(9) = HEX(808182833685868788898A8B8C8D8E8F) 0750 T$(10) = HEX(909192939495969798999A9B9C9D9E9F) 0760 T$(11) = HEX(A012A2A3A4A5A6A7A8A9AAABACADAEAF) 0770 T$(12) = HEX(B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF) 0780 T$(13) = HEX(C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF) 0790 T$(14) = HEX(D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF) 0800 T$(15) = HEX(E0E1E2E3E49AE6E7E8E9EAEBECEDEEEF) 0810 T$(16) = HEX(F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEAF) 0820 REM KEYS WITH ENDI 0830 T1$(1) = HEX(7E7D7C7B7A7978777675747372717011) 0840 T1$(2) = HEX(FEFDFCFBFA2829F7F6D2E2F32E2DF091) 0850 T1$(3) = HEX(20EE22ECEB25E827E6E5E7E42C2D2E2F) 0860 T1$(4) = HEX(656E6D6C6B6A696867663A3B3C643E3F) 0870 T1$(5) = HEX(40414243442829479AD2E24B2E2D4E4F) 0880 T1$(6) = HEX(505152535428295758D2E25B2E2D5E5F) 0890 T1$(7) = HEX(604F3B3D4D5D4C4B4A58494847393A57) 0900 T1$(8) = HEX(707172737475767778797A7B7C7D6F6F) 0910 T1$(9) = HEX(808182838485868788898A8B8C8D8E8F) 0920 T1$(10) = HEX(909192939495969798999A9B9C9D9E9F) 0930 T1$(11) = HEX(A0A1A2A3A4A5A6A7A8A9AAABACADAEAF) 0940 T1$(12) = HEX(B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF) 0950 T1$(13) = HEX(C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF) 0960 T1$(14) = HEX(D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF) 0970 T1$(15) = HEX(E0E1E2E3E49AE6E7E8E9EAEBECEDEEEF) 0980 T1$(16) = HEX(F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF) 0990 RETURN 1000 REM *** Translation for Task to do *** ( Special Keys ) 1010 T5$(1) = HEX(01460245034D044C01560255035D045C06000601) 1020 T5$(2) = HEX(06020603060406050606060706080609060A060B) 1030 T5$(3) = HEX(060C060D060E060F061006110612061306140215) 1040 T5$(4) = HEX(0116061706180A190B1A061B041C031D061E061F) 1050 T5$(5) = HEX(07A0074F075F0742075207430753077C077D087E) 1060 T5$(6) = HEX(087F09480A490A590B4A0B5A09E5) 1070 REM *** Translation for Task to do *** ( Normal Keys ) 1080 T6$(1) = HEX(0308060D0C820CA107840C81) 1090 RETURN 4000 REM RESUMWSE 15JUL86 REV 0.13 4010 REM PROGRAM NAME - RESUME WORKSTATION EMULATION 4020 REM DATE OF FIRST CODE - 05 FEBRUARY 1986 5000 DEFFN'70 5010 REM RESTART EMULATION 5020 INIT (00) Q$,K9$ : STR(Q$,3,2)=HEX(0003) 5030 STR(Q$,6,1) = BIN(#PART-1) AND HEX(0F) OR HEX(30) 5040 STR(Q$,7,1) = HEX(38) 5050 $OPEN #2 : $GIO #2 (4660 4270 8701, Q$) 5060 V0$=STR(Q$,,1) : IF V0$>= HEX(80) THEN 5070 : $CLOSE#2 : RETURN 5070 $GIO #2 (8703 8704 1800 C340 01FF 0600, Q$) STR(Q1$(),1,VAL(STR(Q$,3,2),2 )-2) : $CLOSE#2 : RETURN 6000 REM RESUME EMULATION 6005 DEFFN'71 6010 INIT (00) Q$,K9$ : STR(Q$,3,2)=HEX(0003) 6020 STR(Q$,6,1) = BIN(#PART-1) AND HEX(0F) OR HEX(30) 6030 STR(Q$,7,1) = HEX(34) 6040 $OPEN #2 : $GIO #2 (4660 4270 0100 0200 8B12 EFFF 8703 8704 1800 C340 01FF 0600, Q$) STR(Q1$(),1,VAL(STR(Q$,3,2),2)-2) : $CLOSE#2 6050 V0$=STR(Q$,,1) : RETURN 9999 DEFFN'31 "SCRATCH T ";HEX(22);"DMSRES";HEX(22);":SAVE T () ";HEX(22);"DMS RES";HEX(22)