Listing of file='3277TERM' on disk='vmedia/bsc_3271_rel_1.14.04.wvd.zip'
# Sector 165, program filename = '3277TERM'
0010 REM 3277TERM 12/31/85 -- Wang 2200/3277 Terminal code
0020 COM N,K0,N1,R1$(24)1
: COM M0,R2$(80)1,U$(16),H0$2,L$1,Q1$(80)1,V$(16)
: COM L,M,A1$1,C$1,C$(80)1,H8$1,K$1,B1$1
: COM M$2,M1$2,I,K1$1,J,F$1,F,Q$(24)80
: COM I$(10)1,I$10,P$(24)80,A,B,C,B1,D,V,W,V1,A2,E
: DIM N9,P,P1,P$8
: DIM L$(1920)1,O0$15,O$(54)2,A0$1,C9$(16)16
: SELECT #4005
0075 $PSTAT="3277TERM"
: GOTO 9020
0085 ON AGOTO 725
0100 PRINT HEX(020402020E);AT(23,0);" LINE DOWN ";HEX(0F);
0110 IF @C$=" "OR STR(@A$,40,1)="L"THEN 9430
: IF STR(@A$,40,1)<>"A"THEN 110
: GOTO 1880
0710 KEYIN K$,720,7570
: $BREAK
0720 IF STR(@A$,40,1)<>"A"THEN GOSUB 100
: IF STR(@D$(N),2)=HEX(00)THEN 9420
0725 B$=@T$(N)
: IF B$=HEX(00)AND L$=" "THEN 770
: IF B$<HEX(11)THEN 710
0750 ON VAL(B$)-16GOTO 7000,7510,7590,7360
0770 IF I0=1THEN 980
: KEYIN K$,800,940
: W=MIN(33,W+.1)
: $BREAKW
: GOTO 720
0800 IF K$=HEX(FF)THEN GOSUB 970
: C$=K$
: $TRAN(K$,C1$())
: W=.1
: IF K$>HEX(1F)THEN 1080
: ON VAL(K$)GOTO 1840,2010,3750,5020,3460,2020,3080,3920
: STOP "Invalid translation see K$ and C$"
0940 IF E=0THEN 943
: E=0
: IF K$<HEX(A0)THEN 943
: AND (K$,7F)
: GOTO 800
0943 C$=K$
: $TRAN(K$,F1$())R
: W=.1
: ON VAL(K$)GOTO 1840,3300,3750,1840,3430,9510,8510,720,6140,6420,5340,4702
,2000,2050,2010,2040,3930,1850,1840,3460,5020,3920
: GOTO 1840
0960 GOSUB 1880
: GOTO 720
0970 KEYIN K$,974,972
0972 E=1
: K$=HEX(60)
0974 RETURN
0980 KEYIN K$,1000,1030
: K0=K0+1
: IF K0<21THEN 980
: K0=0
0985 IF STR(@A$,40,1)<>"A"THEN GOSUB 100
: B$=@T$(N)
: IF B$=HEX(00)THEN 980
: IF B$<HEX(11)THEN 985
: GOTO 750
1000 IF K$=HEX(FF)THEN GOSUB 970
: IF L$="I"THEN 1005
: IF K$<HEX(20)THEN 1010
: IF K$<HEX(80)THEN 4280
: GOTO 980
1005 $GIO#4(4007,I$)
: GOTO 980
1010 IF K$=HEX(08)THEN 4640
: GOTO 980
1030 C$=K$
: IF E=0THEN 1036
: E=0
: IF K$<HEX(A0)THEN 1036
: AND (K$,7F)
: GOTO 1000
1036 $TRAN(C$,F1$())R
: ON VAL(C$)-2GOTO 3750,,,,,7945
: GOTO 980
1080 IF STR(P$(),C,1)>=H8$OR F$>=HEX(A0)THEN 1840
: IF F$<HEX(90)THEN 1150
: ON N9GOTO 1150
: IF POS("0123456789-."=K$)=0THEN 1840
1150 STR(P$(),C,1),K1$=K$
: IF F$<H8$THEN 1225
: F$=STR(P$(),F,1)
: AND (F$,0C)
: IF F$=HEX(0C)THEN K$=" "
: F$=STR(P$(),F,1)
: IF F$<H8$THEN 1225
: OR (F$,01)
: STR(P$(),F,1)=F$
1225 GOSUB 3010
: C=C+1
: J=J+1
: IF J>80THEN GOSUB 1420
: IF K1$=HEX(1C)THEN IF K$=HEX(2A)THEN 1300
: K1$=STR(P$(),C,1)
: IF K1$<HEX(80)THEN 720
: C$=K1$AND "0"
: IF C$<>"0"THEN 1310
1300 F=C
: IF F=PTHEN F=0
: F=POS(STR(P$(),F+1)>7F)
: IF F=0THEN F=POS(P$()>7F)
: ELSE F=F+C
: K1$=STR(P$(),F,1)
: C=F
: C$=K1$AND HEX(20)
: IF C$=HEX(20)THEN 1300
1310 F=C
: IF F=PTHEN F=0
: K1$=STR(P$(),F+1)
: GOSUB 2850
: GOSUB 1970
: GOTO 720
1420 J=1
: I=I+1
: IF I>24THEN 1500
: $GIO#4(400D400A,I$)
: RETURN
1500 C,I=1
: $GIO#4(4001,I$)
: RETURN
1570 IF I0=1THEN 1750
: K1$=STR(P$(),C,1)
: F=1
: F$=P$(1)
: AND (F$,BF)
: MAT COPY -P$()<1,C>TO Q$()<1,C>
: MAT SEARCHQ$()<1,C>,>=H8$TO M$
: IF M$=H0$THEN 1700
: F=C+1
: GOTO 1730
1700 A=P-C
: MAT COPY -P$()<C+1,A>TO Q$()<1,A>
: MAT SEARCHQ$()<1,A>,>=H8$TO M$
: IF M$=H0$THEN 720
: F=P1
1730 F=F-VAL(M$,2)
: F$=STR(P$(),F,1)
: AND (F$,BF)
1750 ON I0+1GOTO 720,980
: GOTO 720
1840 $GIO#4(4007,I$)
: L$="I"
: GOSUB 1963
: GOTO 720
1850 IF V=0THEN V=1
: ELSE V=0
: PRINT HEX(020402020E);AT(23,0);" ID = ";N$;HEX(0F01);
: IF V=0THEN 960
: GOSUB 1970
: GOTO 720
1880 $GIO#4(40064001,I$)
: B,B1=0
: IF V1=1THEN PRINT HEX(03)
: GOSUB '106(1,1920)
: $GIO#4(4005)
1963 IF L$="I"AND I0<>1THEN PRINT AT(23,62);HEX(020402020E06);"INPUT INHIBITED
.";HEX(0F0105)
1970 $GIO#4(A000,I$)R1$()<1,I>
: $GIO#4(A000,I$)R2$()<1,J>
: RETURN
1980 B=POS(STR(P$(),C)>7F)
: IF B<>0THEN RETURN
: B=POS(STR(P$(),,C)>7F)
: IF B<>0THEN RETURN
: B=1921-C
: RETURN
2000 C=C-79
2010 C=C-1
: IF C<1THEN C=P+C
: GOTO 2060
2020 C=1
: GOTO 2060
2040 C=C+79
2050 C=C+1
: IF C>PTHEN C=C-P
2060 I=INT((C-1)/80)+1
: J=MOD(C-1,80)+1
: IF POS(P$()>=H8$)=0THEN 2180
: F=POS(-STR(P$(),1,C)>=H8$)
: IF F=0THEN F=POS(-STR(P$(),1,P)>=H8$)
: F$=STR(P$(),F,1)
: AND (F$,BF)
2180 GOSUB 1970
: GOTO 720
2570 F=C
: IF STR(P$(),F,1)>=H8$THEN F=C-1
2590 IF F=PTHEN 2740
: A=P-F
: MAT COPY P$()<F+1,A>TO Q$()<1,A>
: $TRAN(Q$()<1,A>,U$())
: MAT SEARCHQ$()<1,A>,=H8$TO M$
: MAT SEARCHQ$()<1,A>,=HEX(82)TO M1$
: IF M$=H0$AND M1$=H0$THEN 2740
: IF M1$=H0$THEN 2650
: IF M$>M1$OR M$=H0$THEN M$=M1$
2650 F=F+VAL(M$,2)
: IF F=PTHEN 2910
: K1$=STR(P$(),F+1,1)
: IF K1$>=H8$THEN 2590
: GOTO 2850
2740 F=0
: MAT COPY P$()<1,C>TO Q$()<1,C>
: $TRAN(Q$()<1,C>,U$())
2770 MAT SEARCHQ$()<F+1,C-F>,=H8$TO M$
: MAT SEARCHQ$()<F+1,C-F>,=HEX(82)TO M1$
: IF M$=H0$AND M1$=H0$THEN 2900
: IF M1$=H0$THEN 2790
: IF M$>M1$OR M$=H0$THEN M$=M1$
2790 F=F+VAL(M$,2)
: IF F=PTHEN 2970
: IF F>=CTHEN 2900
: K1$=STR(P$(),F+1,1)
: IF K1$>=H8$THEN 2770
2850 C=F+1
: I=INT((C-1)/80)+1
: J=MOD(C-1,80)+1
: IF F=0THEN F=1
2855 F$=STR(P$(),F,1)
: AND (F$,BF)
: RETURN
2900 F=1
: F$=P$(1)
: AND (F$,BF)
: A=1919
: MAT COPY P$()<1,A>TO Q$()<1,A>
: $TRAN(Q$()<1,A>,U$())
: B=POS(STR(Q$(),1,A)=HEX(81))
: IF B=0THEN 2910
: K1$=STR(P$(),B,1)
: RETURN
2910 K1$=P$(1)
: IF K1$>=H8$THEN 2740
: C,I,J=1
: GOTO 2855
2970 F$=STR(P$(),P,1)
: AND (F$,BF)
: GOTO 2910
2981 $TRAN(Q1$(),V$())
: B=POS(STR(Q1$())=HEX(82))
: IF B=0THEN RETURN
: IF B>=80THEN RETURN
2983 B1=POS(STR(Q1$(),B+1,80-B)>=HEX(80))
: IF B1=0THEN B1=80-B
: INIT(20)STR(C$(),B+1,B1)
: D=B+B1
: IF D>=80THEN RETURN
: B=POS(STR(Q1$(),D,80-D)=HEX(82))
: IF B=0THEN RETURN
: B=B+D-1
: IF B>=80THEN RETURN
: GOTO 2983
3010 $TRAN(K$,C8$())
: IF F$<HEX(80)THEN 3015
: AND (F$,08)
: IF F$<>HEX(08)THEN 3015
: F$=STR(P$(),F,1)
: AND (F$,04)
: IF F$=HEX(04)THEN 3015
: $GIO#4(HEX(4002400440024000400EA000400F),I$)K$
: GOTO 3016
3015 $GIO#4(HEX(A000),I$)K$
3016 F$=STR(P$(),F,1)
: RETURN
3080 IF F$>=H8$THEN 3280
: C=C-J+81
: IF C>PTHEN 3210
: J=1
: I=I+1
: GOTO 3310
3210 C,I,J=1
: GOTO 3310
3280 C=C-J+79
3300 GOSUB 2570
3310 GOSUB 1970
: GOTO 720
3430 N9=-N9
: GOTO 720
3460 C$=HEX(81)
: C,I,J,F=1
: INIT(00)P$(),K1$,F$
: PRINT HEX(03);
3750 A1$=C$
: $TRAN(A1$,F2$)R
: L$="I"
: PRINT HEX(020402020E06);AT(23,62);"INPUT INHIBITED.";HEX(0F0105)
: @T$(N)=HEX(02)
: ON I0+1GOTO 720,980
: GOTO 720
3920 K$=HEX(1E)
: GOTO 1080
3930 K$=HEX(1C)
: GOTO 1080
4280 IF F$<HEX(90)THEN 4286
: ON N9GOTO 4286
: IF POS("0123456789-"=K$)<>0THEN 4286
: GOTO 4287
4286 IF STR(P$(),C+L-1,1)=HEX(00)OR I2=1THEN 4288
4287 I2=0
: $GIO#4(4007,I$)
: L$="I"
: PRINT HEX(020402020E06);AT(23,62);"INPUT INHIBITED.";HEX(0F05);
: GOSUB 1970
: GOTO 980
4288 K1$=K$
: STR(P$(),C,1)=K1$
: STR(P$(),F,1)=F$
: GOSUB 3010
: F$=STR(P$(),F,1)
: L=L-1
: C=C+1
: IF C<P1THEN 4330
: J=0
: C,I=1
: $GIOHOME#4(4001,I$)
4330 J=J+1
: IF J<81THEN 4360
: J=1
: I=I+1
: $GIOLF#4(400A,I$)
: IF L<0THEN L=0
4360 IF L=1AND STR(P$(),C,1)<>HEX(00)THEN 4287
: ON L+1GOTO 4625,4420
4380 IF STR(P$(),C,1)<>HEX(00)THEN 4381
: A2=1
: GOTO 4382
4381 IF STR(P$(),C+L-1,1)<>HEX(00)THEN 4287
4382 IF A2=1AND STR(P$(),C,1)<>HEX(00)THEN 4702
: IF M<CTHEN 4570
: IF A2=1THEN 4420
: MAT COPY Q$()<1,L-1>TO P$()<C+1,L-1>
4420 INIT(5C)STR(P$(),C,1)
: B,B1=0
: MAT COPY P$()<C-J+1,80>TO C$()
: MAT COPY P$()<C-J+1,80>TO Q1$()
: $TRAN(C$(),C8$())
: GOSUB 2981
: GOSUB 1980
: GOSUB '106(C,B)
: GOSUB 1970
: MAT COPY P$()<C-J+1,80>TO Q1$()
: $GIO#4(A000,I$)R2$()<1,J>
: IF A2=1THEN I2=0
: IF I2=1THEN 4287
: IF STR(P$(),C+L-1,1)<>HEX(00)THEN I2=1
: GOTO 980
4570 A=P1-C
: B=L-A
: IF C=PTHEN 4610
: MAT COPY Q$()<1,A-1>TO P$()<C+1,A-1>
4610 MAT COPY Q$()<A,B-1>TO P$()<1,B-1>
: GOTO 4420
4625 M0=0
: C=C-1
: IF J<>1THEN 4626
: I=I-1
: J=81
4626 J=J-1
: GOTO 4287
4640 IF C=M0THEN 4675
: $GIO#4(4008,I$)
: C=C-1
: J=J-1
: L=L+1
: IF J>0THEN 4380
: J=80
: I=I-1
: $GIO#4(400C,I$)
: IF I>0THEN 4380
: I=24
: C=P
: GOTO 4380
4675 $GIO#4(4007,I$)
: GOTO 980
4702 C$=F$
: $TRAN(C$,U$())
: I2,A2=0
: I0=1
: MAT COPY P$()<1841,80>TO C$()
: $TRAN(C$(),C8$())
: PRINT AT(23,0);HEX(020400040E);
: $GIO#4(HEX(A000400F4001),I$)C$()
: IF C$=HEX(81)THEN 1840
: IF C$<H8$THEN 4945
: IF C$<>HEX(82)THEN 4745
: I0=0
: GOTO 1840
4745 IF K1$>=H8$THEN 1840
: OR (F$,01)
: STR(P$(),F,1)=F$
: M0=C
: MAT COPY P$()<C,P1-C>TO Q$()<1,P1-C>
: IF C=1THEN 4850
: MAT COPY P$()<1,C-1>TO Q$()<P+2-C,C-1>
4850 L=P
: IF C$<H8$THEN 4380
: MAT SEARCHQ$(),>=H8$TO M$
: IF M$=H0$THEN 4380
: L=VAL(M$,2)-1
: M=M0+L-1
: IF M<=PTHEN 4380
: M=M-P
: GOTO 4380
4945 IF C=PTHEN 4675
: M0=C
: M=P-1
: L=P-C
: MAT COPY P$()<C,L>TO Q$()<1,L>
: GOTO 4380
5020 IF C=1THEN 5040
: MAT COPY -P$()<1,C-1>TO Q$()<1,C-1>
5040 MAT COPY -P$()<C,P1-C>TO Q$()<C,P1-C>
: $TRAN(Q$(),U$())
: B=1
5070 MAT SEARCHQ$()<B+1,P-B>,=H8$TO M$
: MAT SEARCHQ$()<B+1,P-B>,=HEX(82)TO M1$
: IF M$=H0$AND M1$=H0$THEN 5270
: IF M1$=H0$THEN 5090
: IF M$>M1$OR M$=H0$THEN M$=M1$
5090 B=B+VAL(M$,2)
: K1$=STR(Q$(),B-1,1)
: IF K1$>=H8$THEN 5260
: C=C-B+1
5130 IF C>0THEN 5160
: C=C+P
: GOTO 5130
5160 K1$=STR(P$(),C,1)
: I=INT((C-1)/80)+1
: J=C-80*I+80
: F=C-1
: IF F<1THEN F=P
: F$=STR(P$(),F,1)
5230 AND (F$,BF)
: GOSUB 1970
: GOTO 720
5260 IF B<PTHEN 5070
5270 C,I,J,F=1
: K1$,F$=P$(1)
: GOTO 5230
5340 C$=F$
: $TRAN(C$,U$())
: IF C$=HEX(81)THEN 1840
: IF K1$>=H8$THEN 1840
: IF C$=HEX(82)THEN 1840
: IF F$<H8$THEN 5530
: OR (F$,01)
: STR(P$(),F,1)=F$
: MAT SEARCHP$()<C,81-J>,>=H8$TO M$
: IF M$=H0$THEN 5530
: B=VAL(M$,2)-1
5450 MAT COPY P$()<C+1,B-1>TO P$()<C,B>
: C$(1)=HEX(00)
: MAT COPY C$()<1,1>TO P$()<C+B-1,1>
: MAT COPY P$()<C-J+1,80>TO C$()
: MAT COPY P$()<C-J+1,80>TO Q1$()
: $TRAN(C$(),C8$())
: GOSUB 2981
: GOSUB 1980
: GOSUB '106(C,MIN(B,81-J))
: GOSUB 1970
: MAT COPY P$()<C-J+1,80>TO Q1$()
: $GIO#4(HEX(A000),I$)R2$()<1,J>
: GOTO 720
5530 B=81-J
: GOTO 5450
6140 IF K1$>=H8$THEN 1840
: IF F$>=HEX(A0)THEN 1840
: INIT(00)Q$(),K1$
: IF F$<H8$THEN 6360
: OR (F$,01)
: STR(P$(),F,1)=F$
: IF C>=PTHEN 6260
: MAT SEARCHP$()<C+1,P-C>,>=H8$TO M$
: IF M$=H0$THEN 6260
: M=C+VAL(M$,2)-1
: MAT COPY Q$()TO P$()<C,M-C+1>
6240 GOSUB 1980
: GOSUB '106(C,B)
: GOSUB 1970
: GOTO 720
6260 MAT COPY Q$()TO P$()<C,P1-C>
: MAT SEARCHP$()<1,C>,>=H8$TO M$
: IF M$>H0$THEN 6290
: PRINT HEX(03)
: STOP "PGM ERROR"
6290 M=VAL(M$,2)-1
: IF M=0THEN 6240
: MAT COPY Q$()TO P$()<1,M>
: GOTO 6240
6360 MAT COPY Q$()TO P$()<C,P1-C>
: GOTO 960
6420 IF F$<H8$THEN 6910
: F=0
: INIT(00)K1$
: N1=0
6450 IF F=PTHEN 6840
: MAT SEARCHP$()<F+1,P-F>,>=H8$TO M$
: IF M$=H0$THEN 6840
: F=F+VAL(M$,2)
: F$=STR(P$(),F,1)
: AND (F$,20)
: IF F$=HEX(00)THEN 6540
: IF F<PTHEN 6450
: GOTO 6840
6540 N1=N1+1
: IF F=PTHEN 6760
: MAT SEARCHP$()<F+1,P-F>,>=H8$TO M$
: IF M$=H0$THEN 6680
: L=VAL(M$,2)-1
: IF L=0THEN 6450
: STR(P$(),F+1,1)=K1$
: IF L=1THEN 6610
: MAT COPY P$()<F+1,L-1>TO P$()<F+2,L-1>
6610 AND (STR(P$(),F,1),FE)
: F$=STR(P$(),F)
: F=F+L
: IF F<PTHEN 6450
: GOTO 6760
6680 L=P-F
: IF L=0THEN 6760
: STR(P$(),F+1,1)=K1$
: IF L=1THEN 6720
: MAT COPY P$()<F+1,L-1>TO P$()<F+2,L-1>
6720 AND (STR(P$(),F,1),FE)
: F$=STR(P$(),F)
6760 MAT SEARCHP$(),>=H8$TO M$
: L=VAL(M$,2)-1
: IF L=0THEN 6840
: INIT(00)STR(P$(),1,1)
: IF L=1THEN 6840
: MAT COPY P$()TO P$()<2,L-1>
6840 C=P-1
: GOSUB 2570
: GOTO 960
6910 B=POS(P$()>HEX(7F))
: IF B=0THEN 6920
: F$=STR(P$(),B,1)
: GOTO 6420
6920 INIT(00)P$(),K1$,F$
: C,I,J,F=1
: GOTO 960
7000 L$="I"
: PRINT HEX(020402020E06);AT(23,62);"INPUT INHIBITED.";HEX(0F0105);
: STR(A$,2,1)=HEX(20)
: GOTO 7362
7360 STR(A$,2,1)=A1$
7362 STR(A$,3)=BIN(C-1,2)
: $OPEN #6
: $GIO#6(40054210422040004240423040FEA000,A$)P$()
: $CLOSE#6
: @T$(N)=HEX(10)
: GOTO 720
7510 $OPEN #6
: INIT("A")I$()
: INIT("A")P$()
: $BREAK
: $GIO#6(87008701870487038702C340,I$())P$()
: ERRORGOTO 7562
7520 $CLOSE#6
: B=C
: C=VAL(STR(I$(),3),2)+1
: I=INT((C-1)/80)+1
: J=C-80*I+80
: B=0
: C$=I$(1)
: AND (C$,06)
: IF C$<HEX(04)THEN 7535
: $GIOBEEP#4(4007,I$)
7535 AND (C$,02)
: IF C$>HEX(00)THEN L$,A1$=" "
: @T$(N)=HEX(00)
: GOSUB 1880
: GOTO 1570
7562 $CLOSE#6
: PRINT AT(23,10);HEXOF(B$);" Term.Buffer UPDATE not received ";
: @T$(N)=HEX(00)
: IF Z<9THEN 710
7570 $TRAN(K$,F1$())R
: IF K$<>HEX(08)THEN 720
: IF A1$<>" "THEN 7940
7590 L$=" "
: @T$(N)=HEX(00)
: GOSUB '106(80*23+1,80)
: GOSUB 1970
: GOTO 720
7935 DEFFN'15
: RETURN CLEAR
7940 L$="I"
: @T$(N)=HEX(01)
7945 IF STR(P$(),C,1)=HEX(5C)THEN STR(P$(),C,1)=HEX(00)
: IF M0=0THEN 8010
: M0=0
: IF M<CTHEN 7990
: IF A2=1THEN 8010
: MAT COPY Q$()TO P$()<C,L>
: GOTO 8010
7990 MAT COPY Q$()TO P$()<C,P1-C>
: MAT COPY Q$()<P+2-C,L-P1+C>TO P$()<1,L-P1+C>
8010 GOSUB 1963
: L$=" "
: IF I0=0THEN 1570
: I0=0
: GOSUB 1980
: IF I=24THEN 8019
: GOSUB '106(C,B)
8019 GOSUB '106(80*23+1,80)
: GOSUB 1970
: GOTO 1570
8505 DEFFN'31
8510 STR(@D$(N),2)=HEX(00)
: @T$(N)=HEX(03)
: GOSUB '99(8,"Terminal Detached from Cluster")
: STR(@A$,24+N,1),STR(@A$,12+N,1),STR(@A$,38+(3*N),3)=" "
: GOTO 9450
9020 SELECT @PART"3270UNIV"
: PRINT HEX(03)
: IF N=0THEN N=C
: A$=@D$(N)
: IF VAL(STR(@A$,12+N))-48<>#PARTTHEN 9420
: A=0
9040 IF @T$(N)=HEX(00)THEN 9050
: A=A+1
: $BREAK
: IF A<99THEN 9040
: @T$(N)=HEX(00)
9050 IF N$(5)=" "THEN 9060
: IF R1$(1)=HEX(01)THEN 9060
: STR(@D$(N),2)=HEX(80)
: @T$(N)=HEX(03)
9060 GOSUB 9140
9070 $IF OFF /001,1570
: KEYIN K$
: GOTO 9070
9140 C,I,J,F=1
: V1,V,A2,E=0
: P=1920
: P1=P+1
: F$=P$(1)
: AND (F$,BF)
: N9=VAL(STR(@Z$,35))-49
: N9=-N9
: INIT(0A)R1$()
: INIT(01)R1$(1)
: INIT(09)R2$()
: INIT(0D)R2$(1)
: INIT(00)P$(),Q$(),H0$,Q1$()
: L$="I"
: GOSUB 1880
: A1$=HEX(20)
: H8$=HEX(80)
: INIT(31)U$(),V$()
: INIT(81)U$(11),U$(12),U$(15),U$(16)
9276 V$(9),V$(10),V$(11),V$(12),V$(13),V$(14),V$(15),V$(16)=HEX(83838383838383
838484848482828282)
: U$(9),U$(10),U$(13),U$(14)=HEX(80808080808080808080808082828282)
9315 O$()=HEX(1B11D0351E13D0171C25E007012019B01CBDE014400D0B0119C01CCEE0134001
0C011000D014400A42101000D0001C41D0071C21D006400240040280)
: STR(O$(),LEN(O$())+1)=HEX(1C12E02340001000D03102841C12E02940001000D031028
81C12E02F40021000D031028C40004000400E1000D0064000)
9317 C9$()=C8$()
: FOR A=129TO 256
: STR(C9$(),A,1)=BIN(A-1)
: NEXT A
: STR(C9$(),129)=AND ALL(8C)
: RETURN
9390 DEFFN'99(A,A$)
: SELECT PRINT 005
: PRINT HEX(03);BOX(5,79);HEX(0A0A0E);TAB(40-LEN(A$)/2);A$
: FOR A=ATO 0STEP -1
: PRINT A;HEX(0C)
: $GIO(75FF,A$)
: NEXT A
: RETURN
9420 GOSUB '99(10,"Terminal has been detached")
: GOTO 9450
9430 GOSUB '99(35,"Cluster has been reloaded -- Terminal must be reattached")
9450 COM CLEAR A
: LOAD DC T#0,N$(1)
9505 DEFFN'29
9510 PRINT HEX(03)
: IF V1=0THEN 9515
: V1=0
: PRINT HEX(0305);
: GOTO 960
9515 V1=1
: GOSUB 9560
: GOTO 720
9560 PRINT AT(0,16);"Wang 2200 / 3277 Terminal emulator keyboard layout";AT(1,
24);"Special function strip layout"
: A=2
: GOSUB 9850
: A=3
: GOSUB 9840
: A=5
: GOSUB 9840
: A=6
: GOSUB 9850
: A=10
: GOSUB 9850
: A=11
: GOSUB 9850
: A=10
9660 PRINT AT(A-2,20);"Meaning of special keys on typewriter pad";AT(A-1,27);"
'";STR(C7$(7),2,6);" KEY' is '3277 KEY'"
: PRINT C7$(1),C7$(2)
: PRINT AT(2,0);C7$(6),C7$(4)
: PRINT AT(5,0);C7$(3),C7$(5)
9755 PRINT AT(13,0);"Cluster = ";STR(@Z$,29,2);
: PRINT AT(23,16);" This is Terminal = ";#TERM;" in Partition = ";#PART;
: A=22
: PRINT AT(A-1,1);"Station status -- HH T-P * HH=stream T=Terminal P
=Partition *=active"
: PRINT AT(A,0);
: FOR B=1TO 7
: PRINT BOX(1,9);" ";
: NEXT B
: PRINT BOX(1,9)
9814 PRINT AT(A,0);
: FOR A=1TO VAL(STR(@C$,33))-48
: P$=" "
: IF STR(@A$,A+12,1)=" "THEN 9816
: P$=$PSTAT(VAL(STR(@A$,A+12))-48)
: ERRORA=8
: GOTO 9818
9816 PRINT " ";STR(@C$,A*3+38,3);STR(@A$,A+24,1);"-";STR(@A$,A+12,1);" ";
9818 IF P$="3277TERM"THEN PRINT "* ";
: ELSE PRINT " ";
: NEXT A
: PRINT AT(0,0)
: GOSUB 9860
: A=0
9822 A=A+1
: P$=$PSTAT(MIN(A,16))
: ERRORGOTO 9830
9825 IF P$<>"HostSimu"THEN 9822
: L$()=$PSTAT(A)
: PRINT AT(20,0);P$;" Status =";HEXOF(L$(25))
9830 RETURN
9840 PRINT AT(A,0);BOX(1,79)
: FOR B=0TO 79STEP 5
: PRINT AT(A,B);BOX(1,0);
: NEXT B
: RETURN
9850 PRINT AT(A,0);BOX(1,19);" ";BOX(1,19);"
";BOX(1,19);" ";BOX(1,19);
: RETURN
9860 PRINT AT(13,15),"Print streams";TAB(47);
: IF STR(@P$(1),,1)<>" "THEN 9870
: PRINT "None configured"
: RETURN
9870 PRINT "Disk usage Reports received"
: PRINTUSING 9910,"No.","Device","Addr","Status","File Name","Used","Total"
,"Number and Name"
: PRINT AT(15,0);BOX(1,60)
: IF STR(@P$(5),24,4)<>"None"THEN 9890
: PRINTUSING 9910," .","Spooler"," ",STR(@P$(5),24,10)," "," "," "," "
: GOTO 9900
9890 PRINTUSING 9910," .","Spooler",STR(@P$(5),55,3),STR(@P$(5),24,10),STR(@P$
(5),66,8),VAL(STR(@P$(5),35),2),VAL(STR(@P$(5),76),2)
9900 FOR A=1TO VAL(STR(@C$,34))-48
: PRINTUSING 9910,STR(@P$(A),1,2),STR(@P$(A),6,7),STR(@P$(A),15,5),STR(@P$(
A),24,10),STR(@P$(A),66,8),VAL(STR(@P$(A),44),2),VAL(STR(@P$(A),41),2),ST
R(@P$(A),47,18)
: NEXT A
: RETURN
9910 %### ######## ##### ############ ######### ##### ##### ###########
#######
9919 DEFFN'200(A0$)
: AND (A0$,0C)
: D0=POS(HEX(04080C)=A0$)
: IF D0<>2THEN 9979
: $GIO#4(HEX(4002400440024000400E),I$)
: RETURN
9931 DEFFN'106(P5,P6)
: IF P5=1THEN L$()=P$()
: ELSE L$()=STR(P$(),P5)&STR(P$(),,P5-1)
: D0=0
: ON POS(L$()>7F)+1GOTO 9958,9958
: GOSUB '200(STR(L$(),POS(-L$()>7F),1))
9958 A=INT((P5-1)/80)
: B=MOD(P5-1,80)
: PRINT AT(A,B);
: STR(O0$,11)=BIN(B)&BIN(A)&HEX(51188C)
: IF D0=3THEN STR(O0$,2,4)=HEX(8C7FA08C)
: ELSE STR(O0$,2,4)=HEX(007FA08C)
: $TRAN(STR(L$(),,P6),C9$())
: B=1
9975 B1=MIN(P6+1-B,80)
: $GIO#4(O$(),O0$)STR(L$(),B,B1)
: B=B+80
: IF @T$(N)>HEX(10)OR B>P6THEN 9979
9976 GOTO 9975
: ON AGOTO 9976
9979 $GIO#4(HEX(4002400440004000400E),I$)
: RETURN