Listing of file='DISKPRGC' on disk='vmedia/tbo_81.wvd.zip'
# Sector 818, program filename = 'DISKPRGC' 0010 REM WRITE CASSETTE PROGRAM TAPES FROM R/F DISK 2200C 5/29/75 : REM DISKPRGC 0020 REM PREPARED BY- TYLER OLSEN WANG LABS. 2200 R&D 0023 REM INSTRUCTIONS--THE USER MAY TAILOR THIS PROGRAM TO HIS OWN USE BY P UTTING DATA STATEMENTS FOLLOWING THE DEFFN' CALLOUTS. SEE LOGIC AT 670- 710 AS AN EXAMPLE 0030 %TAPE FILE ## CONTAINS "########" AND IS ### BLOCKS LONG 0040 %# FILE ## NAMED "########" IS ### BLOCKS---TOTAL BLOCKS=### 0050 DIM D$1,E$2,K$1,L$4,F$30,R$(16)16,R0$3,P$(30)8,Z$(4)64,N$8,P(30,4) : S,P=0 0060 F=1 : PRINT HEX(03);"MAKE PROGRAM TAPE FROM DISK R/F" 0070 PRINT "S.F. '0= TYPE NAMES OF PROGRAMS" 0080 PRINT "S.F. '1= GAMES TAPE" 0090 PRINT "S.F. '2= CAT.2" 0100 PRINT "S.F. '3= CAT.3" 0110 PRINT "S.F. '4= CAT.4" 0120 PRINT "S.F. '5= CAT.5" 0130 PRINT "S.F. '6= CAT.6" 0140 PRINT "S.F. '7= CAT.7" 0150 PRINT "KEY DESIRED SPECIAL FUNCTION TO CONTINUE" : STOP 0155 DEFFN'16 : SELECT PRINT 005 : PRINT "CREATE SAME TAPE AS BEFORE" : INPUT "ENTER NAME IF DIFFERENT",F$ : GOTO 320 0160 DEFFN'0 : P=0 0170 PRINT "TYPE IN NAMES OF DESIRED PROGRAMS CURRENTLY ON DISK" 0180 PRINT "(EXEC) WITH NO DATA SIGNALS END OF LIST" 0190 PRINT "IF PROGRAM IS NOT FOUND KEY S.F.0 TO PROCEED" 0195 F$=" " : INPUT "SYSTEM TAPE NAME",F$ : H=1 : IF F$<>" "THEN 210 0200 H=0 : INPUT "KEY 1 RETURN IF HEADER FILE IS DESIRED",H 0210 N$=" " : PRINT "PROGRAM FILE (";F;") WILL BE NAMED"; 0220 IF P=0THEN 230 : READ N$ : IF N$="END"THEN 320 : GOTO 240 0230 INPUT N$ 0240 IF N$=" "THEN 320 0250 D=0 : D$="R" : LIMITS R N$,A,B,C : REM NAME START,END,NB SECTORS : GOTO 270 0260 D=1 : D$="F" : LIMITS F N$,A,B,C 0270 P$(F)=N$ : P(F,1)=A : P(F,2)=B : P(F,3)=C : P(F,4)=D 0280 S=S+C 0290 PRINT HEX(0C) : PRINTUSING 40,D$,F,N$,C,S 0300 F=F+1 0310 IF S<300THEN 210 : PRINT "TAPE STORAGE MAY BE EXCEEDED" : GOTO 210 0320 IF H<>1THEN 330 : GOSUB 1010 0330 PRINT : FOR Z=1 TO (F-1) 0340 N$=P$(Z) : A=P(Z,1) : B=P(Z,2) : C=P(Z,3) : D=P(Z,4) 0350 PRINT N$,"FILE=";Z,"IS ";C;" BLOCKS ON TAPE." 0360 IF D=0THEN 370 : DATA LOAD BA F(A,A)Z$() : GOTO 380 0370 DATA LOAD BA R(A,A)Z$() 0380 STR(Z$(1),2,8)=HEX(FFFFFFFFFFFFFFFF) 0390 STR(Z$(1),2,LEN(N$))=N$ 0400 DATA SAVE BT(N=256,H)Z$() 0410 FOR Y=2 TO (C-1) 0420 IF D=0THEN 430 : DATA LOAD BA F(A,A)Z$() : GOTO 440 0430 DATA LOAD BA R(A,A)Z$() 0440 PRINT Y;HEX(0C) 0450 DATA SAVE BT(N=256)Z$() 0460 NEXT Y : NEXT Z 0470 INPUT "PRESS EXEC FOR HARD COPY NAMES OF PROGRAMS",Z 0480 PRINT "TURN ON AND SELECT PRINTER" 0490 SELECT PRINT 215(79) : PRINT HEX(0E);F$ 0500 IF H<>1THEN 510 : PRINT TAB(5);"HEADER FILE" 0510 FOR Z=1TO (F-1) 0520 PRINT TAB(5); : PRINTUSING 30,Z,P$(Z),P(Z,3) 0530 S8=P(Z,1) 0540 S8=P(Z,1) : IF P(Z,4)=1THEN 550 : DATA LOAD BA R(S8+1,P)Z$() : GOTO 560 0550 DATA LOAD BA F(S8+1,P)Z$() 0560 P=4 0570 P=P+1 : IF STR(Z$(1),P,1)=HEX(A2)THEN 580 : IF STR(Z$(1),P,1)=" "THEN 570 : PRINT : GOTO 610 0580 PRINT TAB(20); 0590 P=P+1 : IF P>64THEN 600 : K$=STR(Z$(1),P,1) : IF K$=":"THEN 600 : IF K$=HEX(0D)THEN 600 : PRINT K$; : GOTO 590 0600 PRINT : PRINT 0610 NEXT Z 0620 PRINT TAB(5);S;" BLOCKS ON PROGRAM TAPE" : SELECT PRINT 005(64) 0630 STOP "END OF JOB" 0640 PRINT F$ 0650 S=0 : RESTORE : Z=1 : IF P<2THEN 200 : REM S.R.TO FIND PROPER PROGRAM TABLE 0660 N$=" " : READ N$ : IF N$<>"END"THEN 660 : Z=Z+1 : IF Z<PTHEN 660 : GOTO 200 : REM %^TAPE FILE DESCRIPTIONS 0670 DEFFN'1 : P=1 : F$="GAMES" : GOTO 640 0680 DATA "STARTRK5","FOOTBALL","BLK JACK","CRYPTOB","LIFE" 0690 DATA "GOLF","ABM","TENPIN-B","KALAH","STARTREK","LANDER" 0700 DATA "AUTORACE","ARITH","HORSE" 0710 DATA "END" 0720 DEFFN'2 : F$="CAT.2" : P=2 : GOTO 640 0750 DATA "END" 0760 DEFFN'3 : F$="CAT.3" : P=3 : GOTO 640 0790 DATA "END" 0800 DEFFN'4 : F$="CAT.4" : P=4 : GOTO 640 0840 DATA "END" 0850 DEFFN'5 : F$="CAT.5" : P=5 : GOTO 640 0880 DATA "END" 0890 DEFFN'6 : F$="CAT.6" : P=6 : GOTO 640 0940 DATA "END" 0950 DEFFN'7 : F$="CAT.7" : P=7 : GOTO 640 1000 DATA "END" : REM %^LOGIC FOR SYSTEM TAPE HEADER 1010 DEFFN'49 1020 INIT(00)R$() 1030 R$(1)=HEX(404845414445522020FD) 1040 DATA SAVE BT (N=256)R$() : REM SAVE HEADER RECORD 1050 R$(1)=HEX(00FF001020CE27303AA0D23033293B22) 1060 R$(2)=F$ 1070 R$(3)="TAPE CATALOG" 1080 STR(R$(3),13)=HEX(220D0000) 1090 R$(4)=HEX(FF002020A022) 1100 STR(R$(4),7)="TO LOAD AN" 1110 R$(5)="D RUN, PRESS S." 1120 R$(6)="F. KEY CORRESPON" 1130 R$(7)="DING TO FILE NUM" 1140 R$(8)="BER" 1150 STR(R$(8),4)=HEX(220D0000FF0030A33AA03A493D) 1160 R$(9)= HEX(300D0000FF00409841243A9F41243D22) 1170 R$(10)=HEX(202220B1FF90000D0000FF0050493D49) 1180 R$(11)=HEX(2B313AA7FF00602C492C41243B3AA02C) 1190 R$(12)=HEX(3A9CFF00400D0000FF0060D846494C45) 1200 R$(13)=HEX(20202323202049532020202223232323) 1210 R$(14)=HEX(23232323220D0000FD00000000000000) 1220 DATA SAVE BT(N=256)R$() 1230 INIT(00)R$() 1240 R$(1)=HEX(00FF0000A2202020202020200D0000FF) : R=1 1250 R0=2 1260 IF R=F THEN 1370 1270 R$(R0) =HEX(000097220000000000000000220D0000) 1280 R$(R0+1) =HEX(FF005020CE2730303A2020202020A122) 1290 STR(R$(R0+2),9)=HEX(222020200D0000FF) 1300 DIM R$9 : R$=P$(R) : STR(R$,LEN(P$(R))+1,1)=HEX(22) 1310 STR(R$(R0+2),1,9)=STR(R$,1) 1320 STR(R$(R0),5,8)=STR(P$(R),1) 1330 PACK(##) STR(R$(R0),1,1) FROM R 1340 PACK(##)STR(R$(R0+1),2,1) FROM R 1350 CONVERT R TO STR(R$(R0+1),7,2),(##) 1360 R=R+1 : R0=R0+3 : IF R0<16 THEN 1260 1370 IF R0=2 THEN 1400 1380 STR(R$(R0-1),16)=HEX(FD) 1390 DATA SAVE BT(N=256)R$() : GOTO 1250 1400 INIT(00)R$() 1410 R$(1)=HEX(20FF900020972220220D0000FE) 1420 DATA SAVE BT(N=256)R$() : RETURN 1430 ON ERROR E$,L$GOTO 1440 : STOP "ON ERROR" 1440 IF E$="50"THEN 1460 1450 IF D=0THEN 260 : PRINT "FILE NOT ON EITHER SURFACE" : GOTO 210 1460 PRINT "TAPE IS PROTECTED/CORRECT CONDITION" : STOP "KEY CONTINUE (EXEC)" : REWIND : GOTO 320