Listing of file='3270PRNT' on disk='vmedia/bsc_3271_rel_1.14.04.wvd.zip'
# Sector 140, program filename = '3270PRNT'
0010 REM 327SPRNT 05/17/84
0014 DIM V1$(24)82,C$(4)1,E$(4)1,A$(10)1,I$(10)1,J$2,D(4),D0$(4)1,D1,D1(4),D1$
(150)1,D9(4),D2$(4)2,D3$(4)1,D4$(4)3,C1,Z$16,D$(D9,80)24,D,J,C1$1,A1$4
: DIM R$(3)83,N,E
0170 DEFFN@PART"3270PRNT"
: SELECT @PART"3270UNIV"
: J=9
: D2$()=ALL(00)
0360 C1=0
0570 IF STR(@A$,33,4)<>A1$OR @C$=" "THEN 3230
0580 IF POS(STR(@T$(),9,4)>10)=0THEN 620
0600 B$=@T$(J)
: IF STR(@A$,12+J,1)="3"THEN ON VAL(B$)-16GOSUB 2460,2690
: J=J+1
: IF J<13THEN 600
: J=9
0620 $BREAK
: D=D+1
: IF D>D6THEN D=1
: ON SGN(D(D))GOSUB 860
: $IF OFF #4,570
: ON C1GOTO 660
: C1=1
: GOSUB '99("P r i n t e r C o n t r o l l e r T a s k")
0660 PRINT AT(17+D,0);HEX(8B);
: IF D6=0THEN PRINT " Printers None"
: ELSE PRINTUSING 680,STR(@P$(D),1,2),STR(@P$(D),6,7),STR(@P$(D),15,5),STR(
@P$(D),24,10),STR(@P$(D),66,8),VAL(STR(@P$(D),35),2)," "," ",D(D),D9(D)
: PRINT HEX(0C20)
0664 PRINT AT(17,1);
: PRINTUSING 680," .","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)
: GOSUB 3172
: $IF OFF #9,570
: KEYIN C$
: $RELEASEPART
: GOTO 360
0680 %## ####### ##### ########## ######### ##### ##### ##### #####
#####
0860 IF STR(@P$(D),6,1)="D"THEN 1110
: SELECT #5<D4$(D)>
: $GIO#5(010002011212400040004000,A$())
: IF A$(8)<>HEX(10)THEN 930
: ADDC(D2$(D),01)
: IF D2$(D)<HEX(1000)OR STR(@P$(D),24,1)="I"THEN RETURN
: IF D2$(D)=HEX(1000)THEN 928
: IF D2$(D)<HEX(4000)THEN RETURN
: STR(@P$(D),24,9)="Intervene"
: A=D
0926 STR(@D$(A+8),2)=HEX(20)
: @T$(A+8)=HEX(03)
: RETURN
0928 STR(@P$(D),24,9)="Not Ready"
: RETURN
0930 A=D(D)
: B,C=D1(D)
: B3=0
: IF B>0THEN 1030
: B=D9(D)-A
: IF B>132THEN B=132
: C=B
: N=POS(STR(D$(),A,B)=15)
: E=POS(STR(D$(),A,B)=19)
: IF N+E=0THEN 1010
: C=N
: IF E=0THEN 1010
: IF N=0THEN 1000
: IF N<ETHEN 1010
1000 C=E
: B3=1
1010 B=C-1
: IF B=0AND B3=1THEN 1060
1030 INIT(20)D1$()
: MAT COPY D$()<A,B>TO D1$()
: $TRAN(D1$(),C9$())
: A1=POS(D1$()=FF)
: IF D3$(D)<>"N"THEN IF A1=0THEN 1060
1044 B1=POS(STR(D$(),A+A1,MAX(B-A1,1))>7F)-1
: IF B1<0THEN B1=B-A1
: D3$(D),STR(D1$(),MAX(A1,1),MAX(B1+SGN(A1)*1,1))=" "
: IF B-A1=B1THEN D3$(D)="N"
: A1=POS(D1$()=FF)
: ON SGN(A1)GOTO 1044
1060 D(D),A=A+C
: IF B=0AND B3=1THEN 1085
: IF D1(D)>0THEN $TRAN(D1$(),HEX(35153919))R
: IF POS(D1$()=0C)>0THEN GOSUB 1098
: $GIO#5(1212A000400D,Z$)D1$()<1,LEN(D1$())>
1085 INIT(00)D2$(D)
: A$="Printing"
: GOSUB 1100
: IF B3=1THEN 1093
: IF D9(D)>ATHEN RETURN
1093 A$="Printed"
1094 GOSUB 1100
: D(D)=0
: IF STR(@D$(8+D),2)=HEX(20)THEN 3310
1096 STR(@D$(8+D),2)=HEX(C0)
: @T$(8+D)=HEX(03)
: RETURN
1098 C=LEN(D1$())
: $TRAN(STR(D1$(),2,C),HEX(3C0C))R
: IF D1$(1)<>HEX(0C)THEN RETURN
: MAT COPY -D1$()<2,C>TO -D1$()<3,C>
: D1$(2)=" "
: RETURN
1100 IF STR(@D$(8+D),2)<>HEX(20)THEN STR(@P$(D),24,9)=A$
: RETURN
1110 A=D(D)
: IF MOD(A,D8)<>1THEN 1230
: C$(D)=@N$
: D(D)=2
: MAT COPY D$()<A,D8>TO V1$()
: STR(V1$(),1921,5)=STR(@P$(D),1,5)
: D1=0
: C$=E$(D)
: IF STR(V1$(),,16)=STR(@N$,33,16)THEN D1=1
: IF STR(V1$(),,16)=STR(@N$,49,16)THEN D1=2
: IF D1<>1THEN 1145
: GOSUB 3390
: GOTO 1150
1145 IF C$<>HEX(01)THEN GOSUB 3630
1150 A$="Writing"
: GOSUB 1100
: GOSUB '225(D0(D),1,1,1)
: IF R1$>HEX(00)THEN 1240
: STR(@P$(5),35,2)=ADDCBIN(8)
: A$="Saved"
: GOSUB 1100
: IF VAL(E$(D))=1AND D1=2THEN GOSUB 3810
1230 C$=@N$SUBC$(D)
: IF C$<C1$THEN RETURN
: A$="Ready"
: GOTO 1094
1240 A$="Error"
: HEXUNPACKR1$TO STR(A$,7,2)
: IF R1$=HEX(01)THEN A$="Disk full"
: FOR A=4TO 1STEP -1
: D=A
: IF STR(@P$(A),6,4)<>"Disk"OR STR(A1$,A,1)=" "THEN 1280
: D(A)=0
: GOSUB 1100
: GOSUB 926
1280 NEXT A
: RETURN
2460 $OPEN #6
: Z$=@D$(J)
: $GIO#6(40054210402040004000400040FEA000,Z$)D$()<(J-9)*D8+1,D8>
: @T$(J)=HEX(00)
: $CLOSE#6
: RETURN
2690 B$=STR(@D$(J),2)
: AND (B$,40)
: IF B$<>HEX(40)THEN RETURN
: $OPEN #6
: $BREAK
: $GIORCV#6(87008701870487038702C340,I$())D$()<(J-9)*D8+1,D8>
: ERRORGOTO 2845
2720 @T$(J)=HEX(00)
: $CLOSE#6
: B$=I$(1)
: AND (B$,08)
: IF B$=HEX(00)THEN RETURN
: A=J-8
: D3$(A)=" "
: ADDC(STR(@P$(A),35,2),01)
: STR(@P$(A),3,3)=STR(I$(),1,3)
: C$,D0$(A)=I$(1)
: D(A)=(J-9)*D8+1
: D9(A)=D(A)+D8
: AND (C$,30)
: C=0
: IF C$=HEX(10)THEN C=40
: IF C$=HEX(20)THEN C=64
: IF C$=HEX(30)THEN C=80
: D1(A)=C
: RETURN
2845 @T$(J)=HEX(00)
: $CLOSE#6
: RETURN
3010 DEFFN'99(A$)
: SELECT PRINT 005
: PRINT HEX(03);BOX(5,79);HEX(0A0A0E);TAB(40-LEN(A$)/2);A$
: PRINT AT(3,28);HEX(060E);"Cluster ";STR(@Z$,29,2);" Status Display"
: PRINT AT(7,0);"CONFIGURATION";TAB(20);"Terminals";TAB(61);"Printers"
: PRINT AT(8,16);"1 2 3 4 5 6 7 8";TAB(61);"1 2 3 4"
3090 PRINT "Configured:"
: PRINT "Attached:"
: PRINT "Dev.Status:"
: PRINT "Xfr.Status:"
: PRINT TAB(40);"TC board = ";STR(@Z$,25,2)
: PRINT AT(15,0);"Print Stream";TAB(42);"Blocks Disk usage Print
er"
: PRINTUSING 3220
: PRINT AT(17,0);BOX(1,65)
3172 PRINT AT(9,15);STR(@C$,41,23);TAB(60);STR(@C$,1,11)
: PRINT AT(10,15);STR(@A$,41,23);TAB(60);STR(@A$,1,11)
: PRINT AT(11,14);
: FOR A=1TO 8
: PRINT " ";
: HEXPRINT STR(@D$(A),2,1);
: NEXT A
: PRINT TAB(59);
: FOR A=9TO 12
: PRINT " ";
: HEXPRINT STR(@D$(A),2,1);
: NEXT A
: PRINT AT(12,14);
: FOR A=1TO 8
: PRINT " ";
: HEXPRINT @T$(A);
: NEXT A
: PRINT TAB(59);
: FOR A=9TO 12
: PRINT " ";
: HEXPRINT @T$(A);
: NEXT A
3205 PRINT AT(13,55);
: IF STR(@A$,40,1)="A"THEN PRINT "Active"
: ELSE PRINT "Idle "
: RETURN
3220 % No. Device Status File name Rcvd Used Total P
ointers
3230 IF @C$<>" "THEN 3250
: $CLOSE
: LOAD DC T#0,"3270BOOT"
3250 FOR C=1TO 4
: IF STR(@A$,20+C,1)<"4"THEN IF STR(@A$,32+C,1)<>STR(A1$,C,1)THEN GOSUB 326
0
: NEXT C
: GOTO 580
3260 D4$(C)=STR(@P$(C),15)
: SELECT #5<D4$(C)>
: IF STR(A1$,C,1)=" "THEN 3280
: STR(A1$,C,1)=" "
: STR(@D$(C+8),2)=HEX(20)
: @T$(C+8)=HEX(03)
: STR(@P$(C),24,10)="Detached"
: D(C)=0
: $CLOSE#5
: RETURN
3280 STR(A1$,C,1)=STR(@A$,32+C,1)
: STR(@D$(C+8),2)=HEX(C0)
: @T$(C+8)=HEX(03)
: STR(@P$(C),24,10)="Attached"
: IF STR(@P$(C),6,1)="D"THEN 3295
: $OPEN #5
: RETURN
3295 STR(@P$(C),35,2)=STR(@N$,C*2+17,2)
: RETURN
3310 IF STR(@P$(D),24,9)<>"Intervene"THEN RETURN
: STR(@P$(D),24,9)=A$
: GOTO 1096
3390 IF C$=HEX(01)THEN 3660
: GOTO 3680
3630 A$=STR(@P$(D),66)
: A=VAL(STR(@P$(D),41),2)+1
: CONVERT ATO STR(A$,9),(#######)
: GOTO 3700
3660 GOSUB 3810
3680 A$=STR(V1$(),17,19)
3700 STR(@P$(5),38,2)=ADDCBIN(1)
: A=VAL(STR(@P$(5),38),2)
: J$,STR(@P$(D),38,2)=STR(@P$(D),35,2)
: BIN(C$)=D+48
: STR(@P$(D),47,19)=A$
: STR(A$,24)=C$&" xxx 000"
: CONVERT VAL(J$,2)TO STR(A$,26,3),(###)
: STR(@N$,D*2+9,2)=BIN(A,2)
: GOSUB 3850
: R$(MOD(A-1,3)+1)=STR(A$,1,33)&STR(@N$,33,32)
: DATA SAVE DC #2,R$()
: E$(D)=HEX(01)
: RETURN
3810 A$=@P$(D)
: J$,STR(A$,44,2)=STR(A$,35,2)SUBCSTR(A$,38,2)
: STR(A$,41,2)=ADDCBIN(1)
: STR(@P$(D),1,64)=A$
: E$(D)=HEX(00)
: A=VAL(STR(@N$,D*2+9,2),2)
: GOSUB 3850
: CONVERT VAL(J$,2)+1TO STR(R$(MOD(A-1,3)+1),30,3),(###)
: DATA SAVE DC #2,R$()
: RETURN
3850 DBACKSPACE #2,BEG
: DSKIP #2,INT((A+2)/3)+4S
: INIT(" ")R$()
: DATA LOAD DC #2,R$()
: DBACKSPACE #2,1S
: RETURN