image of READY prompt

Wang2200.org

Listing of file='B327041' on disk='vmedia/bsc_3271_rel_1.14.04.wvd.zip'

# Sector 663, program filename = 'B327041'
0010 REM B327041 02/13/84 Off-List prompting
   : GOTO 170
   : ON AGOTO 20
0015 COM E$(5)80,D9,C1,P(4),B1,B2
0020 COM D0,D$3,D2$3,D4$5
   : DIM S1$1,B1$5,B2$5,D5$2,F$(1)80,R$(30)40,R0$(3)83,R1$(15)16,R0$83,R$18,R4
     $3,R5$3,R6$3,R7$1,R8$1,R1$1,S1$(3)80,S2$(3)80,Z6
   : DIM R3$40,R3$(3)83
0170 A=0
   : DATA LOAD DC OPEN T#2,S0$
   : DSKIP #2,1S
   : INIT(" ")E$()
   : FOR C1=1TO 4
   : DATA LOAD DC #2,R0$()
   : B$=STR(R0$(),1,1)
   : IF B$=" "THEN 188
   : STR(E$(C1),15)="2"
   : IF B$=HEX(05)THEN STR(E$(C1),15)="0"
   : HEXUNPACKB$TO STR(E$(C1),16,2)
   : STR(E$(C1),19)=STR(R0$(),8,1)
0188 NEXT C1
0190 DATA LOAD DC #2,R0$()
   : IF END THEN 200
   : IF R0$(1)<>" "THEN A=A+1
   : IF R0$(2)<>" "THEN A=A+1
   : IF R0$(3)<>" "THEN A=A+1
   : IF A/3=INT(A/3)THEN 190
0200 R9=A
   : T=6
   : D2$="005"
   : S1$="1"
   : D4$="2221"
   : D5$="66"
   : R$=" "
   : C1,S0=0
   : L0=2
   : SELECT @PART"3270UNIV"
   : GOSUB 340
   : GOTO 3000
0240 % #####################################################################
0245 A=A+1
   : PRINTUSING 250,A,STR(R0$(MOD(A-1,3)+1),1,18);
   : RETURN
0250 % ### = ###################
0260 % ######## = #####################        ###### = ######################
     #
0265 % ######## = #####################
0280 DEFFN'0
   : C$="C"
0290 PRINT HEX(06);AT(T,0,3*80);" Type A=Abort job  C=Continue off-line utilit
     y";
   : LINPUT -C$
   : ON POS("AC"=C$)+1GOTO 290,310
   : IF N=1THEN 345
   : GOTO 370
0310 $CLOSE
   : RETURN CLEAR ALL
   : COM CLEAR B$
   : LOAD T#0,N$(1)
0340 R$(),D$,C$=" "
   : S2=0
0345 GOSUB 1010
0370 PRINT AT(T,0);BOX(3,79)
   : H3=-1
   : $CLOSE#5
   : $PSTAT="Listing"
   : PRINT AT(T,1,3*80);"Enter Printer address from following list"
   : D$=D2$
   : F$()="215 216 217 218 204 005"
   : GOSUB '101(2,40)
   : D2$=D$
   : GOSUB 1740
   : IF A>15THEN 450
   : D4$=STR(S1$(A),8,5)
   : IF D4$<>"2281"THEN 450
   : B=VAL(STR(S1$(A),3))
   : CONVERT BTO D5$,(##)
0450 GOSUB 2920
   : MAT REDIM R0$(3)83
   : PRINT AT(11,0);"Report/Stream       Pages/Blocks  # Del Report/Stream
        Pages/Blocks  # Del "
   : GOSUB 2605
   : PRINT AT(6,0);R
   : GOSUB 770
0550 GOSUB 1030
   : ON VAL(R1$)-48GOTO 570,1390
0570 PRINT AT(10,0);"Items to list are:";
   : PRINT AT(11,0);"No. Report Name          Pages    # Del No. Report Name
             Pages    # Del ";
0600 R$,R4$="?"
   : R5$="001"
   : R6$="999"
   : R7$="1"
   : R8$="N"
   : PRINT AT(T,1,3*80);R4$;TAB(5);"Key report number";TAB(30);"Key space RETU
     RN to execute or reprompt."
   : PRINTUSING 260,R5$,"Starting page",R6$,"Ending page"
   : PRINTUSING 260,R7$,"Number of copies",R8$,"Delete ? Y or N"
0620 GOSUB 1070
   : IF R4$=" "THEN 680
   : IF R4$="?"THEN 620
   : STR(R4$,1,3)=STR(R4$,POS(STR(R4$,1,3)<>" "))
   : STR(R4$,1,3)=STR(R4$,POS(STR(R4$,1,3)<>"0"))
   : CONVERT R4$TO A
   : ERRORGOTO 620
0630 IF A<1OR A>R9THEN 620
   : DBACKSPACE #2,BEG
   : DSKIP #2,INT((A+2)/3)+4S
   : DATA LOAD DC #2,R0$()
   : R$,R0$=R0$(MOD(A-1,3)+1)
   : PRINT AT(T,5,75);STR(R$,1,18)
   : IF STR(R0$,22,1)="0"THEN 620
   : GOSUB 1090
   : GOSUB 1110
   : GOSUB 1130
   : IF R7$="0"THEN 710
   : GOSUB 1150
0660 IF R>29THEN 2145
   : R2=R2+1
   : R=R+1
   : R$(R)=R4$
   : STR(R$(R),5)=R5$
   : STR(R$(R),9)=R6$
   : STR(R$(R),13)=R7$
   : STR(R$(R),14)=R8$
   : STR(R$(R),15)=R$
   : STR(R$(R),40)="1"
0670 GOSUB 2610
   : GOTO 600
0680 GOSUB 1250
   : RETURN
0710 IF R<1THEN 670
   : R$=STR(R4$,,3)&" "&STR(R5$,,3)&" "&STR(R6$,,3)
   : GOSUB 740
   : GOTO 670
0740 FOR A=RTO 1STEP -1
   : IF STR(R$,,11)<>STR(R$(A),,11)THEN 750
0745 IF A<30THEN R$(A)=R$(A+1)
   : A=A+1
   : IF A<RTHEN 745
   : R$(R)=" "
   : R=R-1
   : R2=R2-1
   : A=1
0750 NEXT A
   : RETURN
0770 IF D2$<>"005"THEN 780
   : D4$="CRT"
   : PRINT AT(3,41,5);D4$
   : PRINT AT(4,41,39)
   : RETURN
0780 PRINT AT(T,1,3*80);"Enter Printer model from the following list"
   : F$()="2221 2231 2263 2273 2281 PC"
   : GOSUB '201(3,40)
   : PRINT AT(4,41,39)
   : GOSUB 800
   : PRINT AT(T,0,3*80)
   : RETURN
0800 PRINT AT(4,41);D5$;TAB(48);"= Form length (in lines) "
0810 PRINT AT(T,1,3*80);"Enter form (page) length in lines"
   : PRINT AT(4,40);
   : LINPUT ?-D5$
   : PRINT AT(T,0,3*80)
   : A=NUM(D5$)
   : IF A=0THEN 830
   : CONVERT STR(D5$,1,A)TO A
   : ERRORGOTO 830
0820 IF A<1OR INT(A)<>ATHEN 830
   : RETURN
0830 PRINT AT(10,0,3*80);"Reenter - Value must be numeric and >0"
   : GOTO 810
0850 DEFFN'101(A,C)
0860 GOSUB '100(A,C,D$,F$())
   : IF E=0THEN RETURN
   : GOSUB 5230
   : PRINT AT(T+2,1,79);"Reenter -- ";A$
   : IF E>1THEN GOSUB 890
   : GOTO 860
0890 PRINT AT(T,1,80);"Type  C=Continue (Reselect),'0=Exit list utility";
   : IF S2<>0THEN PRINT ", or A=Abort List Stream  - "
   : PRINT AT(T,50+SGN(S2)*27);
   : LINPUT ?-C$
   : ON POS("AC"=C$)GOTO 920,910
   : GOTO 890
0910 RETURN CLEAR
   : GOTO 370
0920 IF S2=0THEN 890
   : PRINT AT(T+2,0,5*80)
   : RETURN
0930 DEFFN'100(A,C,D$,F$())
   : E=0
   : PRINT AT(T+1,0);
   : PRINTUSING 240,F$()
   : PRINT AT(A,C);
   : LINPUT ?-D$
   : IF D$=" "THEN 965
   : PRINT AT(T+1,0,3*80)
   : MAT SEARCHF$(),=D$TO A$STEP 4
   : IF VAL(A$,2)=0THEN 965
   : B$=BIN(#TERM+48)
   : S2=0
0940 S2=S2+1
   : IF S2>4THEN 955
   : IF STR(E$(S2),15,3)<>D$THEN 940
   : IF STR(D$,2,2)>"05"THEN 960
   : IF STR(E$(S2),19,1)<>B$THEN 940
   : RETURN
0955 MAT SEARCHSTR(E$(),15),=" "TO A$STEP 80
   : S2=INT((VAL(A$,2)+79)/80)
   : IF S2=0OR S2>4THEN 975
   : IF STR(D$,2,2)<="05"THEN 963
0960 GOSUB 5100
0963 $PSTAT="List "&D$
   : RETURN
0965 E=1
   : RETURN
0975 E=4
   : RETURN
0980 DEFFN'201(A,C)
0990 GOSUB '200(3,40,D4$,F$())
   : IF E=0THEN RETURN
   : GOSUB 5230
   : PRINT AT(T+2,1);"Reenter -- ";A$
   : GOTO 990
1000 DEFFN'200(A,C,D4$,F$())
   : E=0
   : PRINT AT(T+1,0);
   : PRINTUSING 240,F$()
1005 PRINT AT(A,C);
   : LINPUT ?-D4$
   : IF D4$=" "THEN 1005
   : MAT SEARCHF$(),=STR(D4$,1,5)TO A$STEP 5
   : IF VAL(A$,2)=0THEN 965
   : RETURN
1010 PRINT HEX(03);"3270";
   : IF E0$(5)="A"THEN PRINT " Active";
   : PRINT " Spooler File Off-line List Utility  ('0 = Exit)"
   : PRINT
1020 PRINTUSING 260,D1$,"Spooler disk address",D2$,"Printer address"
   : PRINTUSING 260,S$,"Spooler file name",D4$,"Printer model"
   : PRINT R9;TAB(10);"= Reports available"
   : PRINT " ";TAB(10);"= Items in list queue"
   : GOSUB 2470
   : RETURN
1030 SELECT PRINT 005
   : PRINT AT(T,1,3*80);"   Key queueing mode          Scroll lists  '11=Up  '
     12=Down  '13=Top"
   : PRINT "   1 = REPORT mode - List by report name regardless of stream  '14
     =Rpts Queued"
   : PRINT "   2 = STREAM mode - List by block number within a single stream"
   : R1$="?"
1050 PRINT AT(T,1);
   : KEYIN R1$,,1685
   : IF R1$<"1"OR R1$>"2"THEN 1050
   : RETURN
1070 SELECT PRINT 005
   : PRINT AT(6,0);
   : LINPUT ?-R4$
   : RETURN
1090 PRINT AT(7,0);
   : LINPUT ?-R5$
   : IF POS(R5$="+")>0THEN 1090
   : IF STR(R5$,1,1)<>" "AND STR(R5$,2,1)=" "THEN IF STR(R5$,3,1)<>" "THEN 109
     0
   : CONVERT R5$TO A
   : ERRORGOTO 1090
1095 IF A<1THEN 1090
   : CONVERT ATO R5$,(###)
   : RETURN
1110 PRINT AT(7,40);
   : LINPUT ?-R6$
   : IF STR(R6$,1,1)="+"THEN 1112
   : IF STR(R6$,1,1)<>" "AND STR(R6$,2,1)=" "THEN IF STR(R6$,3,1)<>" "THEN 111
     0
1112 CONVERT R6$TO C
   : ERRORGOTO 1110
1115 IF C<1THEN 1110
   : A1=POS(R6$<>" ")
   : R6$=STR(R6$,A1)
   : IF STR(R6$,1,1)="+"THEN RETURN
   : IF A>CTHEN 1110
   : CONVERT CTO R6$,(###)
   : RETURN
1130 PRINT AT(8,0);
   : LINPUT ?-R7$
   : IF NUM(R7$)<1THEN 1130
   : RETURN
1150 PRINT AT(8,40);
   : LINPUT ?-R8$
   : IF R8$="Y"OR R8$="N"THEN RETURN
   : GOTO 1150
1250 A=3
1255 PRINT AT(T,1,A*80);HEX(06);"Ready to execute?             '0 = Exit list
     utility or return to prompt 1"
   : PRINT " Type  1=Yes  2=Change mode  3=Reprompt all"
   : C$="?"
   : LINPUT ?-C$
   : PRINT AT(8,2);
   : ON VAL(C$)-48GOTO 1300,550,340
   : GOTO 1250
1300 IF STR(D$,2,2)>"05"THEN GOSUB 1310
   : GOSUB 1780
   : RETURN
1310 SELECT #5<D$>
   : $IF ON #5,1320
   : GOTO 1350
1320 $OPEN 1350,#5
   : $IF OFF #5,1350
   : $PSTAT="\CC\E9\F3\F4\E9\EE\E7"
   : RETURN
1350 GOTO 5160
1390 PRINT AT(11,0);"  Stream name           Blocks     # Del   Stream name
            Blocks     # Del"
   : GOSUB 2605
   : S1$="?"
   : B1$="00001"
   : B2$="all"
   : R7$="1"
   : R8$="N"
   : PRINT AT(T,1,3*80);S1$;TAB(5);"Key print stream.        Key space RETURN
     to execute or reprompt."
1415 FOR A=1TO 4
   : PRINTUSING "  # = Strm ##  blocks received = #####  ";A,"  ";B2$(A);
   : NEXT A
1430 PRINT AT(T,1);
   : LINPUT S1$
   : IF S1$=" "THEN 680
   : IF S1$="?"THEN 1430
   : IF S1$<"1"OR S1$>"4"THEN 1610
   : B2$=B2$(VAL(S1$)-48)
   : IF B2$="00000"THEN 1625
1440 PRINT AT(T,1,3*80);S1$;TAB(5);"= Print stream requested     Key space RET
     URN to execute or reprompt."
   : PRINTUSING 260,B1$,"Starting block",B2$,"Ending block"
   : PRINTUSING 265,R7$,"Number of copies"
   : CONVERT B2$TO C
   : CONVERT B1$TO D
1460 PRINT AT(T,30,50);"          Key '0 to exit or reprompt."
   : PRINT AT(T+1,0);
   : LINPUT ?B1$
   : CONVERT B1$TO B1
   : ERRORGOTO 1620
1470 IF B1<1OR INT(B1)<>B1THEN 1620
   : IF B1>CTHEN 1630
   : IF POS(B1$="+")>0THEN 1620
   : CONVERT B1TO B1$,(#####)
1510 PRINT AT(T+1,40);
   : LINPUT -B2$
   : IF B2$="all"THEN 1530
   : CONVERT B2$TO B2
   : ERRORGOTO 1620
1515 IF E0$(5)="A"THEN C=65536
   : IF B2<1OR INT(B2)<>B2OR B2>CTHEN 1635
   : A1=POS(B2$<>" ")
   : B2$=STR(B2$,A1)
   : IF STR(B2$,1,1)="+"THEN 1545
   : IF B1>B2THEN 1635
   : CONVERT B2TO B2$,(#####)
1530 R$=S1$
   : STR(R$,2)=B1$
   : STR(R$,7)=B2$
   : PRINT AT(T+2,0,1*80);
   : PRINTUSING 265,R7$,"Number of copies"
   : GOTO 1560
1545 IF B1+B2>CTHEN 1635
   : GOTO 1530
1560 GOSUB 1130
   : IF R7$="0"THEN 1650
   : IF R>29THEN 2145
   : R2=R2+1
   : R=R+1
   : R$(R)=R$
   : STR(R$(R),13)=R7$
   : STR(R$(R),14)=R8$
   : STR(R$(R),40)="2"
   : GOTO 1390
1610 PRINT AT(T+2,1,80);" ***  stream number must be 1 or 2 or 3 or 4"
   : GOTO 1430
1620 PRINT AT(T+2,1,80);" ***  block number must be numeric 00001 - 32768"
   : GOTO 1460
1625 PRINT AT(T+2,1,80);" ***  Unable to list - there is no data in stream ";S
     1$
   : GOTO 1430
1630 PRINT AT(T+2,1,80);" ***  block number must be numeric value ";D;"-";C
   : GOTO 1460
1635 PRINT AT(T+2,1,80);" ***  block number must be numeric value ";D;"-";C
   : GOTO 1510
1650 IF R<1THEN 1390
   : GOSUB 740
   : GOTO 1390
1685 ON VAL(R1$)-10GOSUB 1690,1700,1715,2550
   : IF VAL(R1$)<>14THEN 1050
   : GOSUB 1010
   : PRINT AT(T-1,0);R
   : PRINT AT(T,0);BOX(3,79)
   : GOSUB 2605
   : GOTO 1030
1690 Z6=3
   : GOSUB 2700
   : GOSUB 2705
   : Z5=Z7-(Z4-1)
   : IF Z5<0THEN GOSUB 1694
   : IF Z5=0AND Z7=R9THEN Z6=1
   : GOSUB 2660
   : RETURN
1691 IF (MOD(Z4,3))=1THEN Z4=Z4+2
   : ELSE Z4=Z4+1
   : RETURN
1694 Z5=R9+Z5
   : ON (MOD(R9,3))GOTO 1696,1697
   : RETURN
1696 Z5=Z5+1
1697 Z5=Z5+1
   : IF Z5>R9THEN Z5=0
   : RETURN
1700 Z6=2
   : GOSUB 2700
   : GOSUB 2705
   : GOSUB 2660
   : RETURN
1715 Z6=1
   : GOSUB 2700
   : GOSUB 2705
   : GOSUB 2660
   : RETURN
1740 HEXPACKC$FROMSTR(D2$,2,2)
   : MAT REDIM S1$(3)80
   : DATA LOAD DC OPEN T#0,"3270*PQ"
   : DATA LOAD DC #0,S1$()
   : MAT REDIM S1$(15)16
   : A=0
   : B$=BIN(#TERM+48)
   : IF C$>HEX(05)THEN B$=" "
1760 A=A+1
   : IF A>15THEN RETURN
   : IF S1$(A)=" "THEN RETURN
   : IF C$<>STR(S1$(A),2,1)THEN 1760
   : IF B$=" "THEN RETURN
   : IF STR(S1$(A),16,1)<>B$THEN 1760
   : RETURN
1780 GOSUB 1740
   : DBACKSPACE #0,1S
   : IF A<16THEN 1830
   : A=0
1800 A=A+1
   : IF A>15THEN 1810
   : IF STR(S1$(A),2,1)<>" "THEN 1800
   : GOTO 1830
1810 A=15
1830 BIN(R$)=1
   : STR(R$,2)=C$
   : CONVERT STR(D5$,1,2)TO D5
   : BIN(STR(R$,3))=D5
   : STR(R$,4)=D2$
   : STR(R$,8)=D4$
   : STR(R$,14)=D5$
   : STR(R$,16)=B$
   : S1$(A)=R$
   : MAT REDIM S1$(3)80
   : DATA SAVE DC #0,S1$()
   : C=A-1
   : DSKIP #0,CS
   : DATA LOAD DC #0,S1$()
   : MAT REDIM S1$(20)12
   : A=0
1980 A=A+1
   : IF A>20THEN 1981
   : IF S1$(A)<>" "THEN 1980
1981 IF R2=0THEN 2050
1985 IF R2>0THEN 2002
   : A=0
1986 A=A+1
   : IF A>20THEN 2010
   : IF STR(S1$(A),3,8)<>S$THEN 1986
   : C=VAL(STR(S1$(A),1,2),2)
   : IF C+R2>0THEN 2000
   : FOR A=1TO 19
   : S1$(A)=S1$(A+1)
   : NEXT A
   : S1$(20)=" "
   : R2=R2+C
   : IF R2=0THEN 2010
   : ELSE GOTO 1985
2000 STR(S1$(A),1,2)=BIN(C+R2,2)
   : GOTO 2010
2002 IF A<20THEN 2005
   : PRINT AT(8,0,80);TAB(10);"Max.of 20 items can be queued per printer"
   : A=2
   : GOTO 1255
2005 S1$(A)=BIN(R2,2)
   : STR(S1$(A),3)=S$
   : BIN(STR(S1$(A),11))=#TERM
2010 DBACKSPACE #0,1S
   : MAT REDIM S1$(3)80
   : DATA SAVE DC #0,S1$()
2050 GOSUB 2870
   : IF R0$(1)=" "THEN 2080
   : IF STR(R0$(),,1)<>C$THEN 2060
   : IF C$>HEX(05)THEN 2080
   : IF VAL(STR(R0$(),8))-48=#TERMTHEN 2080
2060 S2=S2+1
   : IF S2<5THEN 2050
   : E=4
   : PRINT AT(8,0,80);"Queue conflict -- Last list not entered"
   : GOTO 1250
2080 DBACKSPACE #2,1S
   : A$=C$
   : STR(A$,2)=D4$
   : STR(A$,7)=BIN(D5)
   : STR(A$,8)=BIN(#TERM+48)
   : R0$(1)=A$
   : IF R<1THEN 2310
   : IF R<31THEN 2150
2145 PRINT AT(8,0,80);TAB(10);"Maximum of 30 items may be queued."
   : A=2
   : GOTO 1255
2150 B=2
   : FOR A=1TO R
   : A$=R$(A)
   : IF STR(A$,40,1)="2"THEN 2240
   : CONVERT STR(A$,1,3)TO C
   : ERRORGOTO 2350
2175 STR(R$,1)=BIN(C,2)
   : CONVERT STR(A$,5,3)TO C
   : ERRORGOTO 2350
2185 STR(R$,3)=BIN(C,2)
   : IF STR(A$,9,1)<>"+"THEN 2190
   : CONVERT STR(A$,9,3)TO D
   : D1=C+D
   : CONVERT D1TO R6$,(###)
   : STR(A$,9,3)=R6$
2190 CONVERT STR(A$,9,3)TO C
   : ERRORGOTO 2350
2195 STR(R$,5)=BIN(C,2)
   : BIN(STR(R$,7))=VAL(STR(A$,13))-48
   : C$=HEX(00)
   : B$=R6$
   : GOTO 2285
2240 CONVERT STR(A$,1,1)TO C
   : ERRORGOTO 2350
2245 STR(R$,1)=BIN(C,2)
   : CONVERT STR(A$,2,5)TO C
   : ERRORGOTO 2350
2252 STR(R$,3)=BIN(C,2)
   : STR(R$,5)=HEX(FFFE)
   : IF STR(A$,7,3)="all"THEN 2270
   : IF STR(A$,7,1)<>"+"THEN 2260
   : CONVERT STR(A$,7,5)TO D
   : D1=C+D
   : CONVERT D1TO B2$,(#####)
   : STR(A$,7,5)=B2$
2260 CONVERT STR(A$,7,5)TO C
   : ERRORGOTO 2350
2265 STR(R$,5)=BIN(C,2)
2270 BIN(STR(R$,7))=VAL(STR(A$,13))-48
   : C$=HEX(80)
   : B$=B2$
2285 IF STR(A$,14,1)="Y"THEN OR (C$,40)
   : IF B$="+"THEN OR (C$,01)
   : STR(R$,8,1)=C$
   : R0$(B)=R$
   : B=B+1
   : NEXT A
2310 IF R=0THEN B=1
   : IF R<30THEN STR(R0$(),(B*8)-7)=" "
   : MAT REDIM R0$(3)83
   : DATA SAVE DC #2,R0$()
   : RETURN
2350 STOP "ERROR IN LIST QUEUE - LINE # "#
2470 GOSUB 2700
   : A=0
   : GOSUB '102
2500 PRINT
   : DATA LOAD DC #2,R0$()
   : IF END THEN 2540
   : Z=Z+1
   : IF R0$(1)=" "THEN RETURN
   : GOSUB 245
   : IF R0$(2)=" "THEN RETURN
   : GOSUB 245
   : IF R0$(3)=" "THEN RETURN
   : GOSUB 245
   : IF Z>22.5THEN 2540
   : IF A<R9OR A=R9THEN 2500
2540 Z7=A
   : RETURN
2550 PRINT HEX(03);
   : N=1
   : IF R>0THEN 2590
   : PRINT AT(5,0);"No reports are currently queued."
2570 PRINT AT(23,0);"Key any character to return to Off-line List.";AT(23,0)
   : KEYIN C$
   : N=0
   : RETURN
2590 PRINT AT(2,0);TAB(15);R;"Items in List Queue for Printer ";D2$
   : PRINT
   : B=1
   : GOSUB 2630
   : GOTO 2570
2605 PRINT AT(10,0);"Items to list are:"
2610 PRINT AT(5,0);R
   : IF R=0THEN 2620
   : Z=12
   : PRINT AT(12,0)
   : B=1
   : IF R>30THEN 2145
   : IF R>12THEN B=R-11
   : GOSUB 2630
   : GOTO 2620
   : PRINT AT(5,0);R
   : IF R=0THEN 2620
   : IF MOD(R,2)<>0THEN PRINT AT(12,0,(R+1)*40)
   : ELSE PRINT AT(12,0);
   : B=1
   : IF R>30THEN 2145
   : IF R>12THEN B=R-11
   : GOSUB 2630
2620 Z7,T8=0
   : GOSUB 2700
   : GOSUB 2705
   : T8=Z7-(Z4-1)
   : IF T8=0THEN 2625
   : IF T8<0THEN GOSUB 2710
   : T8=T8-1
2625 IF T8=0THEN Z6=1
   : GOSUB '102
   : GOSUB 2740
   : RETURN
2630 FOR A=BTO R
   : R$=R$(A)
   : IF R<12AND MOD(R,2)<>0THEN IF A=RTHEN PRINT TAB(80);HEX(0C)
   : IF STR(R$(A),40)="1"THEN 2640
   : PRINTUSING "Stream #             ##### - ##### # # \8B",STR(R$,1,1);STR(R
     $,2,5),STR(R$,7,5),STR(R$,13,1),STR(R$,14,1);
   : NEXT A
   : RETURN
2640 PRINTUSING "### ################## ### - ###   # # \8B",STR(R$,1,3);STR(R
     $(A),15,18),STR(R$,5,3),STR(R$,9,3),STR(R$,13,1),STR(R$,14,1);
   : NEXT A
   : RETURN
2660 ON Z6GOSUB 2670,2680,2690
   : IF T8+R9<Z4THEN Z6=1
   : GOSUB '102
   : GOTO 2740
2670 T8=0
   : Z6=1
   : RETURN
2680 T8=Z7
   : IF Z7=R9THEN 2670
   : RETURN
2690 T8=Z5-(Z4-1)-1
   : IF T8<0THEN GOSUB 2710
   : T8=T8-1
   : IF T8=0THEN Z6=1
   : RETURN
2700 Z=11+R/2+2
   : IF R>12THEN Z=19
   : IF Z<>19AND MOD(R,2)=1THEN Z=Z+.5
   : PRINT AT(Z-1,0,2*80)
   : PRINT AT(Z,0);"Reports available are:   ";
   : RETURN
2705 Z=Z+1
   : IF MOD(R,2)=1THEN Z=Z+.5
   : IF R>12THEN Z=20
   : Z4=((23-Z)+1)*3
   : IF INT(Z4)<>Z4THEN Z4=Z4+1
   : Z4=INT(Z4)
   : IF Z4>R9THEN Z4=R9
   : IF (MOD(Z4,3))<>0THEN GOSUB 1691
   : RETURN
2710 T8=R9+T8
   : ON (MOD(R9,3))GOTO 2720,2730
   : RETURN
2720 T8=T8+1
2730 T8=T8+1
   : RETURN
2740 PRINT AT(Z-1,0);
   : IF T8=1THEN T8=0
   : IF T8<3THEN 2750
   : Z9=T8/3
   : DSKIP #2,Z9S
2750 PRINT
   : DATA LOAD DC #2,R0$()
   : IF END THEN GOSUB 2800
   : IF T8=R9AND Z6=1THEN RETURN
   : IF R0$(1)=" "THEN GOSUB 2800
   : IF T8=R9AND Z6=1THEN RETURN
   : GOSUB 2790
   : IF R0$(2)=" "THEN 2810
   : GOSUB 2790
   : IF R0$(3)=" "THEN 2820
   : GOSUB 2790
   : IF Z>22.5THEN 2840
   : Z=Z+1
   : IF T8=R9THEN GOSUB 2830
   : GOTO 2750
2790 T8=T8+1
   : PRINTUSING 250,T8,STR(R0$(MOD(T8-1,3)+1),1,18);
   : RETURN
2800 IF T8=R9AND Z6=1THEN 2840
   : GOSUB 2835
   : PRINT
   : DATA LOAD DC #2,R0$()
   : RETURN
2810 IF T8=R9AND Z6=1THEN 2840
   : GOSUB 2860
2820 IF T8=R9AND Z6=1THEN 2840
   : GOSUB 2860
   : GOSUB 2835
   : IF Z>22.5THEN 2840
   : Z=Z+1
   : GOTO 2750
2830 IF Z6=1THEN 2840
2835 GOSUB '102
   : T8=0
   : RETURN
2840 Z7=T8
   : ON MOD(T8,3)GOSUB 2850,2860
   : IF Z<22THEN PRINT AT(Z+1,0,)
   : RETURN
2850 PRINT "                          ";
2860 PRINT "                          ";
   : RETURN
2870 DATA LOAD DC OPEN T#2,S0$
   : DSKIP #2,S2S
   : MAT REDIM R0$(3)83
   : DATA LOAD DC #2,R0$()
   : MAT REDIM R0$(31)8
   : RETURN
2890 DEFFN'102
   : DBACKSPACE #2,BEG
   : DSKIP #2,5S
   : RETURN
2920 GOSUB 2870
   : R,R1,R2=0
   : IF R0$()=" "THEN RETURN
   : R1=-1
2985 R1=R1+1
   : IF R1<31THEN IF R0$(R1+1)<>" "THEN 2985
   : GOSUB 4010
   : R1=R1-1
   : R=R1
   : RETURN
3000 A=0
   : B$=BIN(#TERM+48)
3010 A=A+1
   : IF A>5THEN 3100
   : IF E$(A)=" "THEN 3050
   : IF STR(E$(A),15,3)<>D2$THEN 3010
   : IF STR(D$,2,2)>"05"THEN 3050
   : IF STR(E$(A),19,1)<>B$THEN 3010
3050 E$(A)="..   Printer  "&D2$&" "&B$&"    Reserved"
   : C$="C"
   : PRINT HEX(06);AT(T,0,3*80);" Type A=Abort job  B=Begin listing   C=Contin
     ue prompts";
   : LINPUT -C$
   : ON POS("ABC"=C$)+1GOTO 290,310,3100,170
3100 D0=4
   : N$(5)="B327043"
   : LOAD T#0,"B327042"
4010 FOR A=2TO R1
   : R3$=R0$(A)
   : C$=STR(R3$,8)
   : AND (C$,40)
   : IF C$<>HEX(40)THEN STR(A$,14,1)="N"
   : ELSE STR(A$,14,1)="Y"
   : C$=STR(R3$,8)
   : AND (C$,80)
   : IF C$<>HEX(80)THEN 5030
   : CONVERT VAL(STR(R3$,1,2),2)TO STR(A$,1,1),(#)
   : CONVERT VAL(STR(R3$,3,2),2)TO STR(A$,2,5),(#####)
   : CONVERT VAL(STR(R3$,5,2),2)TO STR(A$,7,5),(#####)
   : CONVERT VAL(STR(R3$,7))TO STR(A$,13,1),(#)
   : STR(A$,40)="2"
4070 R$(A-1)=A$
   : NEXT A
   : RETURN
5030 CONVERT VAL(STR(R3$,1,2),2)TO STR(A$,1,3),(###)
   : IF STR(A$,1,1)<>"0"THEN 5040
   : IF STR(A$,2,1)="0"THEN 5032
   : ELSE STR(A$,1,1)=STR(A$,2,1)
   : STR(A$,2,1)=STR(A$,3,1)
   : STR(A$,3,1)=" "
   : GOTO 5040
5032 STR(A$,1,1)=STR(A$,3,1)
   : STR(A$,2,2)=" "
5040 CONVERT VAL(STR(R3$,3,2),2)TO STR(A$,5,3),(###)
   : CONVERT VAL(STR(R3$,5,2),2)TO STR(A$,9,3),(###)
   : CONVERT VAL(STR(R3$,7))TO STR(A$,13,1),(#)
   : MAT COPY R0$()TO R3$()
   : CONVERT STR(A$,1,3)TO C
   : DBACKSPACE #2,BEG
   : DSKIP #2,INT((C+2)/3)+4S
   : DATA LOAD DC #2,R3$()
   : IF END THEN 2050
   : B=MOD(C-1,3)+1
   : STR(A$,15,18)=STR(R3$(B),1,18)
   : STR(A$,40)="1"
   : GOTO 4070
5100 SELECT #5<D$>
   : $IF ON #5,5110
   : ERRORGOTO 5160
5105 $IF OFF #5,5110
   : GOTO 5160
5110 $OPEN 5150,#5
   : $IF OFF #5,5160
   : $CLOSE#5
   : Y=0
5130 Y=Y+1
   : IF Y>15THEN RETURN
   : F$=$PSTAT(Y)
   : ERRORY=ERR
5140 IF STR(F$,1,5)<>"List "THEN 5130
   : IF STR(F$,6,3)=D$THEN 5160
   : GOTO 5130
5150 Y=Y+1
   : IF Y>15THEN RETURN
   : F$=$PSTAT(Y)
   : ERRORY=ERR
5155 IF STR(F$,1,8)<>"\CC\E9\F3\F4\E9\EE\E7"THEN 5150
5160 RETURN CLEAR
   : PRINT " device not available"
   : GOTO 890
5230 RESTORE LINE5230,E
   : READ A$
   : RETURN
   : DATA "device address not in table","device not available","printer not re
     ady","Four available slots are filled"