image of READY prompt

Wang2200.org

Listing of file='TBO.FLOW' on disk='vmedia/toolbox.wvd.zip'

# Sector 1110, program filename = 'TBO.FLOW'
0010 REM "TBO.FLOW  DISKFLOW"  01/15/82 from  05/11/77  FLOW CHART T.OLSEN WAN
     G 2200 R&D   MODIFIED TO "DISKFLOW" BY DON DURNFORD 11/11/76 WANG VENTURA
         SERVICE OFFICE.
0015 IF D1$(10)=" "THEN LOAD T#0,"TBODISKS"8000,8800 BEG 20
0020 DIM A$(180)18,D$20,D$(15)18,F$(29)64,F$64,H$1,P$16,C$11,C$(255)10,L$2,B$(
     2,255)1,V1$1,A$1,V$1,A4$8,A8(255),A3$(16),A1$2,A2$4,B$1
   : C,J,P,P6,L1,L2,L9,M,Z=0
   : B=58
0030 RESTORE
   : FOR Z=128TO 235
   : READ C$
   : C$(Z)=C$
   : NEXT Z
   : SELECT PRINT 005(64),CO 005(64)
   : PRINT HEX(03)
0040 PRINT HEX(01);"FLOW CHART MAKER"
   : GOSUB '98
   : SELECT #1<D1$(D9)>
0090 PRINT HEX(030A0A)
   : D$=" "
   : INPUT "DATE",D$
0100 M=5
   : S=0
   : PRINT HEX(030A0A)
   : INPUT "BEGINNING STATEMENT NUMBER OF FLOW CHART(S)",S
0160 X=1
   : PRINT HEX(030A0A);"ENTER PROGRAM NAMES (MAX. OF 255 - EXEC TO EXIT)"
0170 PRINT "PROGRAM NUMBER";X
   : A4$="        "
   : INPUT A4$
   : IF A4$="        "THEN 180
   : LIMITS T#1,A4$,A8(X),E,E
   : X=X+1
   : IF X=256THEN 180
   : PRINT HEX(0A);TAB(60);HEX(0D0C0C);TAB(20);HEX(0C0D)
   : GOTO 170
0180 GOSUB 190
   : GOTO 500
0190 PRINT HEX(030A0A)
   : INPUT "PLEASE READY PRINTER. PRESS EXECUTE WHEN READY",J
   : PRINT HEX(03);"PRINTER NOT READY"
   : SELECT PRINT 215
   : PRINT HEX(0A0C)
   : SELECT PRINT 005
   : PRINT HEX(03)
   : RETURN
0195 REM %^ SUBROUTINES
0200 Z=LEN(C$)
0210 C=C+Z
   : IF C<62THEN 220
   : F=F+1
   : I=1
   : C=Z
0220 STR(F$(F),I,Z)=C$
   : I=I+Z
   : RETURN
0230 STR(L$,1,1)=B$(1,J)
   : STR(L$,2,1)=B$(1,J+1)
   : J=J+2
0240 IF S=0THEN 260
   : UNPACK(####)STR(L$,1,2) TO Z
   : IF Z>=STHEN 260
   : PRINT HEX(0C);"SKIP LINE=";
   : HEXPRINT L$
0250 IF B$(1,J)=HEX(0D)THEN 370
   : J=J+1
   : GOTO 250
   : REM %^GET DATA FROM # LINE TO F$()
0260 STR(F$(F),1,1)=HEX(FF)
   : STR(F$(F),2,2)=L$
   : F=F+1
   : GOSUB 470
   : IF V$=HEX(D8)THEN 450
   : IF V$=HEX(97)THEN 450
0270 B$=B$(1,J)
   : IF B$>=HEX(80)THEN 310
   : IF B$=HEX(0D)THEN 710
   : IF B$<>":"THEN 290
0280 J=J+1
   : GOSUB 470
   : J=J-1
   : F=F+1
   : I,C=1
0290 IF B$=HEX(22)THEN 430
   : C$=B$
   : GOSUB 200
0300 J=J+1
   : GOTO 270
0310 IF B$<>HEX(FF)THEN 320
   : C$=B$
   : STR(C$,2,1)=B$(1,J+1)
   : STR(C$,3,1)=B$(1,J+2)
   : Z=3
   : GOSUB 210
   : J=J+3
   : GOTO 270
0320 IF B$<>HEX(A2)THEN 350
0330 C$=C$(VAL(B$(1,J)))
   : GOSUB 200
   : STR(F$(F),I,1)=" "
   : C=C+1
   : I=I+1
0340 J=J+1
   : B$=B$(1,J)
   : IF B$>HEX(7F)THEN 330
   : IF B$=HEX(0D)THEN 710
   : IF B$=":"THEN 280
   : C$=B$
   : GOSUB 200
   : GOTO 340
0350 C$=C$(VAL(B$))
   : GOSUB 200
0360 IF Z=1THEN 300
   : IF STR(C$,Z,1)="("THEN 300
   : STR(F$(F),I,1)=" "
   : C=C+1
   : I=I+1
   : GOTO 300
0370 F=0
   : INIT(20)F$()
0380 F=F+1
   : I,C=1
0390 J=J+4
   : IF J>256THEN 400
   : IF B$(1,J-1)=HEX(FF)THEN 230
0400 IF H$<>HEX(20)THEN 540
0410 SELECT PRINT 005(64)
   : L9=1
   : GOTO 1220
0420 NEXT Y
   : X3=1
   : IF X4>=16THEN 425
   : NEXT X4
0425 IF X1>=X2THEN 427
   : NEXT X1
0427 SELECT PRINT 215
   : PRINT HEX(0C07)
   : SELECT PRINT 005(64),CO 005(64)
   : PRINT HEX(030A0A);"*****   END OF JOB   ******"
   : END
0430 C$=B$
   : GOSUB 200
0440 J=J+1
   : C$=B$(1,J)
   : GOSUB 200
   : IF B$(1,J)<>HEX(22)THEN 440
   : GOTO 300
0450 REM PRINTUSING IMAGE OR DATA STATEMENT
   : F=F-1
0460 J=J+1
   : IF B$(1,J)=HEX(0D)THEN 390
   : GOTO 460
0470 IF B$(1,J)<>" "THEN 480
   : J=J+1
   : GOTO 470
0480 V1$=V$
   : A$,V$=B$(1,J)
   : RETURN
0490 SELECT PRINT 005(64)
   : RETURN
   : REM %SET-UP
0500 FOR Y=1TO X
   : E=A8(Y)
0510 GOSUB 550
   : IF H$<>HEX(40)THEN 1650
   : J=1
   : INIT(20)P$
0520 B$=B$(1,J+1)
   : IF B$=HEX(FF)THEN 530
   : STR(P$,J,1)=B$
   : J=J+1
   : IF J<9THEN 520
0530 PRINT HEX(03);P$
   : PRINT
   : GOSUB 490
   : A2=0
   : P,F,I=1
   : INIT(20)F$()
   : IF S=0THEN 540
   : INPUT "START PAGE",P
0540 GOSUB 550
   : J=3
   : IF B$(1,1)<>HEX(20)THEN 230
   : IF B$(1,2)<>HEX(FE)THEN 230
   : GOTO 410
0550 DATA LOAD BA T#1,(E,E)B$()
   : H$=B$(1,1)
   : BOOL4(H$,1F)
   : RETURN
0555 REM % ATOM TABLE
0560 DATA "LIST","CLEAR","RUN","RENUMBER","CONTINUE","SAVE"
0570 DATA "LIMITS","COPY","KEYIN","DSKIP","AND","OR","XOR"
0580 DATA "TEMP","DISK","TAPE","TRACE","LET","DRAM","DIM","ON"
0590 DATA "STOP","END","DATA","READ","INPUT","GOSUB","RETURN"
0600 DATA "GOTO","NEXT","FOR","IF","PRINT","LOAD","REM","RESTORE"
0610 DATA "PLOT","SEL.","COM","PRINTUSING","MAT","REWIND","SKIP"
0620 DATA "B.SPACE","SCRATCH","MOVE","CONVERT","PLOT"," STEP"
0630 DATA " THEN"," TO","BEG","OPEN","CI","R","D","CO"," ","OFF"
0640 DATA "DBACKSPACE","VERIFY","DA","BA","DC","FN","ABS(","SQR("
0650 DATA "COS(","EXP(","INT(","LOG(","SIN(","SGN(","RND(","TAN("
0660 DATA "ARC","#PI","TAB(","DEFFN","ARCTAN(","ARCSIN(","ARCCOS(","HEX("
0670 DATA "STR(","ATN(","LEN(","RE","#","%","P","BT","G","VAL(","NUM("
0680 DATA "BIN(","POS(","LS=","ALL","PACK","CLOSE","INIT","HEX"
0690 DATA "UNPACK","BOOL","ADD","ROTATE","$","RC"
0700 Z1=Z1+1
   : V$=STR(F$,Z1,1)
   : IF V$=" "THEN 700
   : RETURN
   : %^SET DATA INTO PAGE
0710 REM F$()=# STMT LINE  D$()=BLOCK   A$()=PAGE
0720 Z9,Z8=F
   : IF V$=HEX(D8)THEN 722
   : IF V$<>HEX(A2)THEN 729
   : IF STR(F$(Z9),1,4)="REM/"THEN 728
0722 IF V1$=HEX(9C)THEN 725
   : IF V1$=HEX(9B)THEN 725
   : IF V1$=HEX(95)THEN 725
   : IF V1$<>HEX(A1)THEN 729
0725 Z9=F-1
0728 A$=V1$
0729 FOR F=1TO Z9
   : INIT(20)D$()
   : D=1
0730 F$=F$(F)
   : Z=POS(F$=FF)
0740 IF Z<>1THEN 760
   : STR(D$(D),4,6)="******"
   : GOSUB 750
   : STR(D$(D),5,4)=C$
   : D=D+1
   : F=F+1
   : GOTO 730
0750 UNPACK(####)STR(F$,Z+1,4)TO C
   : CONVERT C TO STR(C$,1,4),(####)
   : RETURN
0760 Z1=1
   : IF STR(F$,1,1)<>":"THEN 770
   : Z1=2
0770 IF Z<>0THEN 840
   : IF STR(F$,Z1,4)="NEXT"THEN 810
   : IF STR(F$,Z1,7)="RETURN"THEN 830
   : IF STR(F$,Z1,5)="GOSUB"THEN 850
   : L1=1+INT(LEN(F$)/11)
   : IF D+L1<6THEN 790
   : GOTO 790
0780 IF L1>5THEN 790
   : D=6
   : F=F-1
   : GOTO 1030
0790 FOR Z=Z1TO LEN(F$)STEP 11
   : IF Z>53THEN 800
   : STR(D$(D),2,11)=STR(F$,Z,11)
   : D=D+1
   : NEXT Z
   : GOTO 1030
0800 STR(D$(D),2)=STR(F$,Z,7)
   : D=D+1
   : Z=LEN(F$)
   : NEXT Z
   : GOTO 1030
0810 ON DGOTO 820
   : IF STR(D$(1),4,1)<>"*"THEN 780
   : D$(3)=D$(1)
   : D$(1)=" "
0820 STR(D$(4),4,11)=STR(F$,Z1,11)
   : D=6
   : GOTO 1030
0830 STR(D$(2),4)="RETURN"
   : D=4
   : GOTO 1030
0840 IF STR(F$,Z1,4)<>"GOTO"THEN 880
   : STR(D$(3),5,4)="GOTO"
   : GOSUB 750
   : STR(D$(4),5,4)=C$
   : D=6
   : GOTO 1030
0850 Z=POS(F$="(")
   : IF Z>0THEN 860
   : STR(D$(2),3)=STR(F$,2)
   : GOTO 870
0860 STR(D$(2),3)=STR(F$,2,Z-2)
   : STR(D$(3),3)=STR(F$,Z)
0870 D=D+4
   : GOTO 1030
0880 IF STR(D$(1),4,1)<>"*"THEN 890
   : D=D+2
   : GOTO 900
0890 D=2
0900 IF STR(F$,Z1,2)<>"IF"THEN 970
   : STR(D$(D),7,2)="IF"
   : C=POS(F$="<")
   : IF C>0THEN 910
   : C=POS(F$="=")
   : IF C>0THEN 910
   : C=POS(F$=">")
0910 Z1=Z1+2
   : GOSUB 700
   : L1=Z-5-Z1
   : IF L1<9THEN 950
0920 L1=C-Z1
   : IF L1<16THEN 930
   : L1=15
0930 L2=Z-5-C
   : IF L2<16THEN 940
   : L2=15
0940 STR(D$(D+2),8-INT(L2/2),L2)=STR(F$,Z1+L1,L2)
0950 STR(D$(D+1),8-INT(L1/2),L1)=STR(F$,Z1,L1)
   : STR(D$(D+4),9,1)="N"
0960 GOSUB 750
   : STR(D$(D+2),15,4)=C$
   : STR(D$(D+3),13,1)="Y"
   : D=D+5
   : GOTO 1030
0970 IF STR(F$,Z1,5)="GOSUB"THEN 1020
   : STR(D$(D),2)=STR(F$,Z1,Z-Z1)
0980 IF STR(F$,Z,1)<>HEX(FF)THEN 990
   : IF STR(F$,Z1,10)="PRINTUSING"THEN 1010
   : GOSUB 750
   : STR(D$(D+1),15,4)=C$
   : D=D+1
   : Z=Z+2
0990 Z=Z+1
   : IF Z<LEN(F$)THEN 980
1000 D=D+2
   : GOTO 1030
1010 GOSUB 750
   : STR(D$(D+1),2,4)=C$
   : Z1=Z+2
   : D=D+2
   : GOTO 790
1020 STR(D$(D),4)=STR(F$,Z1,Z-Z1)
   : GOSUB 750
   : STR(D$(D+1),5,4)=C$
   : D=6
   : %DETERMINE BLOCKING
1030 IF A2+D>3*BTHEN 1220
1040 FOR Z=1TO D
   : A2=A2+1
   : A$(A2)=D$(Z)
   : PRINT "LINE=";A2,A$(A2)
   : NEXT Z
1050 IF R1=1THEN 1090
   : IF A2<BTHEN 1060
   : IF A2<C1+BTHEN 1070
   : IF A2<C2+BTHEN 1080
   : B3=A2
   : GOTO 1210
1060 C1,B1=A2
1070 C2,B2=A2
1080 C3,B3=A2
1090 NEXT F
   : IF Z9=Z8THEN 1095
   : F$=F$(Z8)
1095 INIT(20)F$()
   : IF A$=HEX(D8)THEN 1150
1100 IF A$=HEX(9C)THEN 1150
   : IF A$=HEX(9B)THEN 1150
   : IF A$=HEX(95)THEN 1150
   : IF A$=HEX(A1)THEN 1150
1110 IF A2<=B1THEN 1120
   : IF A2<=B2THEN 1130
   : IF A2<B3THEN 1140
   : IF A2<=B2+BTHEN 1140
   : GOTO 1210
1120 B1=A2
1130 B2=A2
1140 B3=A2
   : GOTO 1200
1150 R1=1
   : HEXPRINT A$
1160 IF A2<BTHEN 1170
   : IF A2<C1+BTHEN 1180
   : IF A2<C2+BTHEN 1190
   : GOTO 1210
1170 C1,B1=A2
1180 C2,B2=A2
1190 C3,B3=A2
1200 INIT(00)A$,V$,V1$
   : F=0
   : PRINT "L.B. AT ";A2,B1;B2;B3,C1;C2;C3
   : IF Z9=Z8THEN 380
   : F$(1)=F$
   : F=1
   : GOTO 380
1210 L9=2
1220 PRINT "F,A2=";F,A2,D
   : R1=0
   : IF C1>0THEN 1230
   : C1=B1
1230 SELECT PRINT 215(79)
   : PRINT HEX(0E);TAB(M/2);P$;"  PAGE=";P;" ";D$
   : PRINT
1240 Z=0
1250 Z=Z+1
   : IF Z>C3THEN 1460
   : F$=A$(Z)
   : IF F$<>" "THEN 1310
   : IF A$(Z+1)=" "THEN 1270
   : IF STR(A$(Z+1),2,3)<>"  *"THEN 1260
   : STR(A$(Z),7,1)="!"
   : GOTO 1340
1260 IF R1=0THEN 1250
1270 STR(A$(Z),7,1)="!"
   : GOTO 1250
1280 STR(A$(R2),7,1)="!"
   : RETURN
1290 R2=Z
1300 STR(A$(R2),1,1)=STR(L$,1,1)
   : STR(A$(R2),13,1)=STR(L$,2,1)
   : RETURN
1310 IF STR(F$,2,3)="  *"THEN 1340
   : IF STR(F$,2,7)="     IF"THEN 1370
   : IF STR(F$,4,5)="GOSUB"THEN 1380
   : IF STR(F$,2,5)="KEYIN"THEN 1390
   : IF STR(F$,2,4)="STOP"THEN 1420
1320 IF STR(F$,5,4)="GOTO"THEN 1430
   : IF STR(F$,4,6)="RETURN"THEN 1360
   : IF STR(F$,4,4)="NEXT"THEN 1350
   : IF STR(F$,2,2)="ON"THEN 1400
   : IF STR(F$,2,3)="REM"THEN 1410
1330 STR(A$(Z),1,1)="!"
   : STR(A$(Z),13,1)="!"
1340 R1=1
   : GOTO 1250
1350 L$="<>"
   : GOSUB 1290
   : GOTO 1250
   : REM NEXT
1360 R2=Z-1
   : GOSUB 1280
   : L$="()"
   : GOSUB 1290
   : STR(A$(Z+1),3,9)="---------"
   : GOTO 1440
   : REM RETURN
1370 STR(A$(Z),6,3)="/IF"
   : STR(A$(Z),9,1)=HEX(5C)
   : STR(A$(Z+2),13,1)="-"
   : Z=Z+4
   : STR(A$(Z),6,3)=HEX(5C202F)
   : GOTO 1250
   : REM IF
1380 L$=HEX(2F5C)
   : GOSUB 1290
   : R2=R2+1
   : L$=HEX(5C2F)
   : GOSUB 1300
   : Z=Z+2
   : GOTO 1250
   : REM GOSUB
1390 STR(A$(Z+1),7,5)="CHAR-"
   : STR(A$(Z+2),7,5)="S.F.-"
   : Z=Z+2
   : GOTO 1250
   : REM KEYIN
1400 IF STR(A$(Z+1),15,1)=" "THEN 1250
   : Z=Z+1
   : STR(A$(Z),7,1)="-"
   : GOTO 1400
1410 IF R1<>0THEN 1330
   : L$="!!"
   : GOSUB 1290
   : Z=Z+1
   : IF A$(Z)<>" "THEN 1410
   : GOTO 1250
1420 Z=Z+4
   : GOTO 1450
   : REM STOP
1430 STR(A$(Z-1),5,4)="--!-"
   : STR(A$(Z),4,6)="!GOTO!"
   : STR(A$(Z+2),5,4)="----"
1440 Z=Z+3
1450 R1=0
   : GOTO 1250
1460 Z=0
1470 Z=Z+1
   : IF Z>C3THEN 1480
   : IF STR(A$(Z+1),2,6)<>"     !"THEN 1470
   : IF STR(A$(Z),2,4)="    "THEN 1470
   : STR(A$(Z+1),3,9)="----!----"
   : Z=Z+1
   : GOTO 1470
   : %^PRINT FLOW CHART
1480 R1=1
   : R2=C1+1
   : R3=C2+1
   : Z=1
1490 IF A$(R1)<>" "THEN 1500
   : IF A$(R2)<>" "THEN 1500
   : IF A$(R3)<>" "THEN 1500
   : R1=R1+1
   : R2=R2+1
   : GOTO 1530
1500 IF R1>C1THEN 1510
   : PRINT TAB(8);STR(A$(R1),1,18);
1510 R1=R1+1
   : IF R2>C2THEN 1520
   : PRINT TAB(33);STR(A$(R2),1,18);
1520 R2=R2+1
   : IF R3>C3THEN 1530
   : PRINT TAB(58);STR(A$(R3),1,18);
1530 PRINT
   : R3=R3+1
   : Z=Z+1
   : IF Z<=BTHEN 1490
1540 P=P+1
   : SELECT PRINT 005(64)
   : Z=C3+1
   : B1=A2
   : A2=1
   : A$(1)=" "
1550 A$(A2)=A$(Z)
   : PRINT "M.LN=";A2,A$(A2)
   : A2=A2+1
   : Z=Z+1
   : IF Z<=B1THEN 1550
   : Z=A2
1560 A$(Z)=" "
   : Z=Z+1
   : IF Z<3*BTHEN 1560
1570 PRINT "AFTER LINE--";A2,B1;B2;B3,C1;C2;C3
1580 R1,R2=A2-1
   : IF A2<BTHEN 1590
   : R1=B3-C3
   : R2=B1-B3
1590 B1,C1=R1
   : B2,C2,B3,C3=R2
   : R1,R2=0
1600 PRINT "AFTER RESET-";A2,B1;B2;B3,C1;C2;C3
1610 Z=L9
   : L9=0
   : ON ZGOTO 420,1200
   : GOTO 1040
1620 ON ERRORA1$,A2$GOTO 1630
1630 IF A1$="80"THEN 1640
   : IF A1$="48"THEN 1660
   : PRINT HEX(030A0A);"AN ERROR ";A1$;" IS ON LINE ";A2$
   : END
1640 PRINT HEX(0A);"PROGRAM ";A4$;" DOES NOT EXIST. PLEASE RE-ENTER";HEX(0D0C0
     C);"           ";HEX(0D0C)
   : GOTO 170
1650 PRINT HEX(030A0A);"FILE NAME ";A4$;" IS NOT A PROGRAM. SKIPPING"
   : NEXT Y
   : PRINT HEX(030A);"*****  END OF JOB  *****"
   : END
1660 GOTO 10