image of READY prompt

Wang2200.org

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