Listing of file='OFFLINE' on disk='vmedia/701-2110C.wvd.zip'
# Sector 58, program filename = 'OFFLINE'
0010 REM OFFLINE 05/11/78 OFF LINE RETRIEVAL OF TC PRINT FILES
0020 DIM A1$(4)62,F$(10)8,B$(1)1,O$(140)1,M$(10)2,B$1,E(10),E1(10),P9$(3)50
: DIM C$(1)2,D(10),F$1
: SELECT #4215,#5005
: H$="P"
: GOTO 1060
0100 RETURN
0102 DATA LOAD DC #2,A1$()
: %^ERR58SAYSNOSUCHFILE
0104 Y2=VAL(STR(A1$(1),2))
: Y3=3
0110 MAT COPY A1$()<Y3,1>TO B$()<1,1>
: Y1=VAL(B$(1))-1
: MAT COPY A1$()<Y3+1,1>TO B$()<1,1>
: B$=B$(1)
: MAT COPY A1$()<Y3+2,Y1>TO O$()<1,Y1>
: ON TGOTO 550
: IF H=0THEN 550
: GOSUB 1390
0200 Y3=Y3+Y1+2
: IF Y3<>Y2THEN 110
: IF STR(A1$(1),1,1)<>HEX(F0)THEN 102
: F$=" "
: IF H<>0THEN 216
: INPUT "KEY RETURN TO CONTINUE",S$
0216 NEXT I9
: GOTO 1060
0550 PRINT "LINE CONTROL =";
: HEXPRINT B$
: IF Y1<=64THEN 554
: $GIO#5(A000400A400D,Z$)O$()<1,64>
: $GIO#5(A000400A400D,Z$)O$()<65,Y1-64>
: GOTO 556
0554 $GIO#5(A000400A400D,Z$)O$()<1,Y1>
0556 KEYIN B$,558,558
: GOTO 600
0558 PRINT "PAUSE KEY (EXEC) TO CONTINUE"
0560 KEYIN B$,600,590
: GOTO 560
0590 IF B$=HEX(1F)THEN 3000
0600 GOTO 200
1000 B$="E"
: MAT SEARCHO$()<2,Y1-1>,=B$TO M$()
: E=VAL(STR(M$(1),2))
: B$=" "
: A=2
: MAT SEARCHO$()<A,Y1-1>,<>B$TO M$()
: J=0
: FOR I=1TO 10
1015 IF M$(I)=HEX(0000)THEN 1016
: IF O$(VAL(STR(M$(I),2))+1)="E"THEN 1017
: E(I-J)=VAL(STR(M$(I),2))+1
: CONVERT O$(E(I-J))TO E1(I-J)
: GOTO 1018
1016 I=10
1017 J=J+1
1018 NEXT I
: A=1
: GOTO 200
1055 DEFFN'0
1060 PRINT HEX(03);
: PRINT " OFF-LINE RETRIEVAL OF TC PRINT FILES"
: PRINT " SF'31 TO RETURN TO MAIN MENU"
: PRINT
1076 H=1
: PRINT "CRT OR PRINTER (C OR P,DEFAULT=";H$;")";
: INPUT H$
: IF H$<>"C"THEN 1078
: PRINT "KEY RETURN(EXEC) TO PAUSE THE LIST"
: H=0
1078 N1=1
: INPUT "ENTER NUMBER OF FILES TO PRINT (DEFAULT=1)",N1
: IF N1>10THEN 1078
: I8=1
1079 DEFFN'1
: FOR I=I8TO N1
: PRINT "FILE #";I
1080 INPUT "INPUT DEVICE 1=(F)310 2=(R)B10 3=(F)320 4=(R)B20",D(I)
: D(I)=INT(D(I))
: IF D(I)<1THEN 1080
: IF D(I)>4THEN 1080
: I8=I
1129 INPUT "DATA FILE NAME ",F$(I)
: IF F$(I)=" "THEN 1129
: I9=I
: GOSUB 2000
1131 LIMITS T#2,F$(I),S1,S2,S3
: %FILENOTFOUND-KEYSF'1
1133 NEXT I
: L=1
: T=0
: PRINT
: FOR I9=1TO N1
: GOSUB 2000
: PRINT HEX(03);"PRINTING FILE ";F$(I9)
: DATA LOAD DC OPEN T#2,F$(I9)
: %^ERR80NOSUCHFILE
1145 P9=66
: IF H=0THEN 1160
: PRINT "READY LINE PRINTER FOR FILE=";F$(I9)
1160 A=0
: GOTO 102
1372 $GIO#4(010002011212400040004000,Z$)
: C$=STR(Z$,8,1)
: RETURN
1390 GOSUB 1372
: IF C$=HEX(10)THEN 1390
: C=Y1+1
: IF B$="@"THEN 1680
: $GIO#4(A000,Z$)O$()<1,Y1>
1430 ON VAL(B$)-46GOTO 100,1570,1580,1580,1580,1580,1580,1580,1580,1580,1580,1
435,1435,1435,1435,1435,1435,1680,1598,1610,1610,1610,1610,1610,1610,1610
,1610,1610,1610,1610
1435 STOP "1435 -- ERROR -- IN PRINT CONTROL BYTE "
1570 P8=P8+1
1580 IF P8+VAL(B$)-48>=P9THEN 1600
: $GIO#4(400D,Z$)
: IF B$<HEX(32)THEN 1590
: FOR A=1TO VAL(B$)-49
: $GIO#4(400A,Z$)
: NEXT A
1590 P8=P8+VAL(B$)-48
: RETURN
1598 IF F$="@"THEN 1610
1600 P8=1
: $GIO#4(400D400C,Z$)
: RETURN
1610 MAT SEARCHP9$()<P8+1,150-P8>,=B$TO C$()
: IF C$(1)=HEX(0000)THEN 1630
: P8=P8+VAL(STR(C$(1),2))
: IF P8>=P9THEN 1600
: $GIO#4(400D,Z$)
: IF C$(1)=HEX(0001)THEN 100
: FOR A=1TO VAL(STR(C$(1),2))-1
: $GIO#4(400A,Z$)
: NEXT A
: RETURN
1630 MAT SEARCHP9$(),=B$TO C$()
: IF C$(1)=HEX(0000)THEN 1640
: $GIO#4(400D400C,Z$)
: P8=VAL(STR(C$(1),2))
: IF P8=1THEN 100
: FOR A=1TO P8-1
: $GIO#4(400A,Z$)
: NEXT A
: RETURN
1640 IF B$<>"B"THEN 100
: $GIO#4(4009,Z$)
: RETURN
1680 F$="@"
: MAT COPY O$()<1,Y1>TO P9$()<1,Y1>
: B$="M"
: MAT SEARCHP9$()<1,99>,=B$TO C$()
: IF C$(1)=HEX(0000)THEN 100
: P9=VAL(STR(C$(1),2))
: RETURN
2000 ON D(I9)GOTO 2010,2020,2030,2040
: STOP "ILLEGAL DISK ADDRESS"
2010 SELECT #2310
: RETURN
2020 SELECT #2B10
: RETURN
2030 SELECT #2320
: RETURN
2040 SELECT #2B20
: RETURN
3000 DEFFN'31
: LOAD DC T#1,"MENU010A"