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"