Listing of file='UTB.LIST' on disk='vmedia/toolbox.wvd.zip'
# Sector 161, program filename = 'UTB.LIST' 0010 REM UTB.LIST 06/01/82 OFF LINE LIST OF SPOOLED T.C. FILES 0020 COM F$8,F1$8, V$(12,2)50,H 0030 IF D1$(10)=" "THEN LOAD T#0,"TBODISKS"8000,8800 BEG 40 0040 SELECT #4 005, #5 215 0050 M=1 0060 DIM A$(4)62,B$(1)1, O$(140)1, M$(1)2, B$1, C$1,D9$3,D5$20 0070 H$=HEX(020402000E) : REM /.Highlight 0080 DIM S$20 : REM /VERTICAL SKIP PARAMETERS 0090 DIM C$(1)24 : REM /CONTROL VALUES 0100 GOTO 910 : REM /GOTO SETUP 0110 REM %VARIABLE MEANINGS 0120 REM %0 A$( READ BLOCK AREA, B$ B$1, B$( ONE BYTE 0130 REM %0 C$( CONTROL VALUES, C9 #CONTROL VALUES 0140 REM %0 O$( OUTPUT AREA, F$ FILE NAME 0150 REM %0 M$( MATCH ARRAY 0160 REM %0 A FIRST REC PTR, D9 DEVICE FLAG 0170 REM %0 Y1 COUNT, Y2 NB BYTES IN BLK, Y3 PTR IN BLK 0180 REM %0 D CURRENT LINE, E LINES PER PAGE 0190 REM %0 S$ VERTICAL SKIP, T$( VERTICAL TAB 0200 REM %0 V$( VCT TABLE, Z$ PRT.ARG2 0210 REM % SPECIAL FUNCTIONS 0220 REM %0 '3 DISPLAY VCT 0230 REM %^.Mainline 0240 KEYIN B$,260,260 0250 RETURN 0260 KEYIN B$,250,270 : GOTO 260 0270 IF B$>HEX(03)THEN RETURN : IF B$=HEX(00)THEN RETURN : M=VAL(B$) : PRINT "Now mode = ";M : RETURN CLEAR : GOTO 300 0280 REM %. READ/PRINT LOOP 0290 DATA LOAD DC #1, A$() : REM ^ERR 58 SAYS WRONG FORMAT 0300 Y2=VAL(STR(A$(1),2)) 0310 Y3=3 0320 MAT COPY A$()<Y3,1> TO B$()<1,1> : Y1=VAL(B$(1)) : REM /.Count 0330 ON M GOSUB 410,380,390 : GOSUB 240 0340 Y3=Y3+Y1+1 : IF Y3<>Y2 THEN 320 0350 IF STR(A$(1),1,1)<>HEX(F0)THEN 290 0360 RETURN 0370 REM %.List w/o Controls 0380 PRINT STR(A$(),Y3+1,Y1) : RETURN 0390 PRINT "<<Record in Hex notation from file = ";F$;" >>" : PRINT HEXOF(STR(A$(),Y3+1,Y1)) : PRINT : RETURN 0400 REM %.List with line control 0410 Y1=Y1-1 : REM /.Count 0420 MAT COPY A$()<Y3+1,1>TO B$()<1,1> : REM /.Isolate line control 0430 B$=B$(1) : REM /Vertical line control 0440 PRINT "<<Line control >> = ";B$; 0445 IF B$<"/"OR B$>"M"THEN PRINT " = x'";HEXOF(B$);"' is invalid"; : PRINT 0450 MAT COPY A$()<Y3+2,Y1>TO O$()<1,Y1> : REM /.Copy data 0460 IF O$(1)<>HEX(0C)THEN 470 : PRINT "<<<NEW PAGE>>>" : PRINT 0470 SELECT PRINT 005(L) : PRINT STR(O$(),1,Y1+1) 0480 IF H=1 THEN 640 : REM /.Jump if CRT output only 0490 MAT SEARCH C$()<1,C9>,=B$ TO M$() : REM /Find TAB value 0500 B=VAL(STR(M$(1),2)) : REM /POSITION OF FOUND VERTICAL TAB 0510 ON B GOTO 580,580,580,580,580,580,580,580,580,580,580 0520 REM ........../...0...1...2...3...4...5...6...7...8...9 0530 ON B-11 GOTO 630,660,660,660,660,660,660,660,660,660,660,660 0540 REM ..........A...B...C...D...E...F...G...H...I...J...K...L 0550 IF B$="@"THEN 790 : REM /VERTICAL FORMAT CONTROL RECORD 0560 STOP "NO LINE CONTROL IN RECORD" 0570 REM %^SKIP LINES PRINT LOGIC : REM CONTROL= /.123456789 0580 $GIO#5(A000,Z$)O$()<1,Y1> 0590 I=VAL(STR(S$,B,1)) : IF I=0 THEN 640 0600 IF I+D>ETHEN 630 0610 $GIO#5(400D,Z$) : D=D+I : IF I=1 THEN 640 0620 FOR B=2 TO I : $GIO#5(400A,Z$) : NEXT B : GOTO 640 0630 $GIO#5(A000400D400C,Z$)O$()<1,Y1> : D=1 0640 Y1=Y1+1 : RETURN 0650 REM % SKIP CHANNEL PRINT LOGIC : REM CONTROL= ABCDEFGHIJKL 0660 $GIO#5(A000,Z$)O$()<1,Y1> 0670 REM B$ = CONTROL BYTE 0680 I=VAL(B$)-64 : B=100*I-99 0690 MAT SEARCH V$()<B+D,100-D >, =B$ TO M$() 0700 I=VAL(STR(M$(1),2))+D 0710 IF I<D THEN 730 : I=I-D 0720 GOTO 600 0730 PRINT "PRINTER IS AT OR PAST THIS POINT" : GOTO 600 0740 REM %^ FORMS CONTROL FROM DATA RECORD 0750 REM BYTE 1 OF RECORD WILL CONTAIN @ AT SYMBOL 0760 REM %0 I PRINT LINE, C$ TAB VALUE 0770 REM Position of non-spaces denotes vertical tab control. 0780 REM Vertical tab values--ABCDEFGHIJKL 0790 B$=" " : I=1 : INIT(".")V$() : REM /CLEAR VCT ARRAY 0800 $GIO/005(A000,Z$)O$()<1,64> : PRINT 0810 MAT SEARCH O$()<I+1,Y1-I>,<>B$TO M$() : REM /FIND NON SPACE 0820 B=VAL(STR(M$(1),2)) : IF B=0THEN 640 : REM /B IS REL LINE 0830 I=I+B : C$=O$(I) 0840 B=VAL(C$)-64 0850 C=I : A=1 : IF I<51THEN 860 : C=I-50 : A=2 : IF C>50THEN 880 0860 IF B<1THEN 890 : IF B>12THEN 870 : STR(V$(B,A),C,1)=C$ : GOTO 810 0870 IF C$<>"M"THEN 890 : E=I : GOTO 810 0880 PRINT "ILLEGAL LINE=";I : STOP "700" 0890 PRINT : PRINT "ILLEGAL TAB VALUE="; : HEXPRINT C$ : STOP "710" 0900 REM %^ INITIALIZATION 0910 SELECT PRINT 005 : PRINT HEX(03);H$,"LIST the stored telecommunications data files";HEX(0F) 0920 REM .?1 0930 A$="LIST FROM disk =" : PRINT AT(3,0,20*80);A$ : GOSUB '98 : SELECT #1<D1$(D9)> 0940 PRINT AT(1,0,80);A$;" ";D9$ 0950 REM .?2 0960 A$="OUTPUT TO =" : PRINT AT(3,0,20*80);A$;" 1=CRT 2=Printer" : C$="1" : IF H=0THEN C$="2" 0965 LINPUT -C$ : D4$="CRT" : H=1 : IF C$="1"THEN 970 : D4$="Printer" : H=0 0970 PRINT AT(1,40);A$;" ";D4$ : IF H=1THEN 1020 0980 A$="PRINTER =" : PRINT AT(3,0,20*80); : A=0 : RESTORE LINE2050 0985 READ P1$ : IF P1$=" "THEN 990 : A=A+1 : PRINT A;" for ";P1$ : GOTO 985 0990 LINPUT C$ : CONVERT C$TO C : ERRORGOTO 980 0992 IF C<1THEN 980 : IF C>ATHEN 980 : RESTORE LINE 2050,C : READ P1$ : GOSUB 2000 : IF P2$=" "THEN 980 0995 PRINT AT(6,0) : PRINT H$;"READY LINE PRINTER ";P1$;HEX(0F) 0998 STOP # 1000 $GIO TOP OF FORM #5(400D 400C) 1010 REM .?3 1020 A$="DATA FILE NAME =" : PRINT AT(3,0,20*80);A$ 1030 F$=F1$ : LINPUT -F$ : F1$=F$ : D=1 1040 PRINT AT(2,0,80);A$;" ";F$ 1050 REM .?4 1060 A$="OUTPUT MODE =" : PRINT AT(3,0,20*80);A$ 1070 M=1 : INPUT "MODE 1=With line control 2=w/o line control 3=hex notation "M 1080 M=INT(M) : IF M<1OR M>3THEN 1060 : RESTORE LINE1080,M 1090 READ D5$ : DATA "With line control","w/o line control","hex notation" 1100 PRINT AT(2,40);A$;M;"=";D5$ : PRINT AT(3,0,20*80) 1110 PRINT : PRINT H$,"<<<<<< TRYING TO READ FILE = ";F$;" >>>>>>";HEX(0F) 1120 E=66 : REM /LINES PER PAGE 1130 DATA LOAD DC OPEN T #1,F$ : REM .ERR 80 NO SUCH FILE 1140 A=0 1150 REM VERTICAL SKIP PARAMETERS 1160 C$(1)="/0123456789ABCDEFGHIJKL@" 1170 C9=LEN(C$(1)) : REM /NUMBER OF CONTROL VALUES 1180 REM S$ NUMBER OF SKIP LINES 1190 S$=HEX(0000010203040506070809) 1200 REM ..../.0.1.2.3.4.5.6.7.8.9 1210 REM VCT TABLE IS 100 ITEMS (LINES) LONG 1220 REM EACH ITEM = CHANNELS PUNCHED AT LINE POSITION 1230 GOSUB 290 1240 F9$=F$ 1250 IF NUM(STR(F$,7,2))=2 THEN 1260 : GOTO 1420 1260 ADD(STR(F$,8,1),01) : IF STR(F$,8,1)<HEX(3A)THEN 1110 1270 STR(F$,8,1)="0" : ADD(STR(F$,7,1),01) : GOTO 1110 1280 REM %^DISPLAY VIRTUAL CARRIAGE TAPE 1290 %# ! # ! # ! # ! # ! ## PRINT LINE 1---!--- -0----!----0----!----0----!----0----!----0 CHANNEL 1300 DEFFN'4 : PRINT HEX(03);" CARRIAGE TAPE =";M$ 1310 PRINTUSING 1290,0,1,2,3,4,"5" 1320 FOR A=1 TO 12 : PRINT STR(V$(A,1),1,50);" ";A : NEXT A 1330 INPUT "KEY CONTINUE FOR MORE",A 1340 PRINTUSING 1290,5,6,7,8,9,10 1350 FOR A=1 TO 12 : PRINT STR(V$(A,2),1,50);" ";A : NEXT A 1360 RETURN 1370 REM %0 A A, B B, C C, A$ A$64, B$ B$1, C$ C$1 1380 ON ERROR E$,L$GOTO 1390 1390 IF E$="D82"THEN 1400 : PRINT "ERR ";E$;" LINE = ";L$;" NOT TRAPPED" : END 1400 F$=F9$ : PRINT "LAST FILE PROCESSED = ";F$ 1410 PRINT "NO MORE FILES SEQUENTIALLY STORED" 1420 STOP "KEY '0 TO EXIT OR RUN (EXEC) TO RERUN JOB" 1430 DEFFN'0 : LOAD DC T#0,"START" 2000 P2$=STR(P1$,1,3) : P4$=STR(P1$,5,5) : P5$=STR(P1$,11,2) 2010 SELECT #5<P2$> : $IF OFF #5,2045 : ERRORRETURN 2020 $OPEN #5 : $IF OFF #5,2045 2040 IF P4$="2281"THEN GOSUB 2130 : IF P4$="2235"THEN GOSUB 2230 : RETURN 2045 P2$=" " : RETURN 2050 DATA "215.2221..11","204.2281..11","216.2231..11"," " 2130 F$=HEX(0D0C020D0C030F) : CONVERT STR(P5$,1,3)TO A : IF A=11 THEN 2140 : F$=HEX(020C010200000F) : STR(F$,5,2)=BIN(A*48,2) 2140 $GIO#5(010302801212A000,Z$)F$<1,7> : RETURN 2230 F$=HEX(0D0C020D0C030F) : CONVERT STR(P5$,1,3)TO A : IF A=11 THEN 2240 : F$=HEX(020C010200000F) : STR(F$,5,2)=BIN(A*48,2) 2240 $GIO#5(010302801212A000,Z$)F$<1,7> : RETURN 2830 STOP