image of READY prompt

Wang2200.org

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

# Sector 1056, program filename = 'TBO.SPV'
0010 REM TBO.SPV 11/18/86 SEARCH PROGRAMS FOR VERBS
0015 IF D1$(10)=" "THEN LOAD T#0,"TBODISKS"8000,8800BEG 30
0020 REM %REQUIREMENTS
   : REM %0 /215 PRINTER, #0 SYSTEM DISK
0030 DIM T1$(255)2,T2$(255)2, P$(230)8, R$(255)3, Q0$1
   : INIT(FF)R$()
0040 REM %0 #1 PROG DISK,  OP5 SORT ROM, '11 SUMMARY
0050 DIM K$1,A(128), W$(128)12
0060 DIM A1$(4)64, B1$(255)1,  F7$2
   : F7$=HEX(7F)
0070 L,L1,L2,M=0
   : DIM D$64,D0$1,H$1,P$16,C$11,C$(124)10,M$(1)2,L$2,B$(255)1,T$1,V$1,Q$4,B$1
   : C,J,Z=0
   : GOTO 1590
   : REM %LIST LOGIC VARIABLES
0080 REM %0 A( ATOMS USED, F1 MODE,  W$( WANG NEEDS, W NEEDS FLAG
0090 REM %0 R REF PTR, R$( REF TABLE, T1$( SORT TBL, T2$( SORT TBL
0100 REM %0 B$ B$1, B$( LINE TEXT, C COLUMN CTR, C$ PRT. WORD
0110 REM %0 C$( ATOM TABLE, D$ DATE, H$ HEADER BYTE, J PTR
0120 REM %0 L LINES/PAGE, L$ STMT LINE, L1 L1, L2 L2, M MARGIN
0130 REM %0 H HARD COPY, P$ PROGRAM NAME, P$( PROGRAM NAMES
0140 REM %0 P6 CUR. FILE #, P7 # FILES
0150 REM %0 V$ VERB ATOM, Z Z
0154 REM %LIST LOGIC
0160 Z=LEN(C$)
   : C=C+Z
   : IF C<78THEN 170
   : PRINT
   : PRINT TAB(M);
   : C=M+Z
0170 PRINT C$;
   : RETURN
   : REM %GET 4 NON SPACE CHARS
0180 B=X
   : FOR Z=1TO 4
0190 IF B1$(B)<>"="THEN 200
   : B=B+1
   : GOTO 190
0200 STR(Q$,Z)=B1$(B)
   : B=B+1
   : NEXT Z
   : RETURN
0210 GOSUB 410
   : REM PRINT "LINE-";
   : J=2
   : STR(L$,1,1)=B$(J)
   : STR(L$,2,1)=B$(J+1)
   : J=J+2
0220 GOSUB 390
   : C=M+6
   : PRINT TAB(M);
   : HEXPRINT L$;
   : IF V$=HEX(D8)THEN 370
   : PRINT TAB(M+6);
   : GOTO 240
0230 J=J+3
0240 B$=B$(J)
   : IF B$>=HEX(80)THEN 270
   : IF B$=HEX(0D)THEN 340
0250 IF B$=HEX(22)THEN 350
   : C$=B$
   : GOSUB 160
0260 J=J+1
   : GOTO 240
0270 IF B$<>HEX(FF)THEN 290
   : UNPACK(##)B$(J+1)TO L1
   : UNPACK(##)B$(J+2)TO L2
   : CONVERT L2+L1*100TO Q$,(####)
   : Q$=STR(Q$,POS(Q$<>"0"))
   : IF Q$<>" "THEN 280
   : Q$="0"
0280 C$=Q$
   : GOSUB 160
   : GOTO 230
0290 IF B$<>HEX(A2)THEN 320
0300 B$=B$(J)
   : AND (B$,7F)
   : C$=C$(VAL(B$)+1)
   : GOSUB 160
   : PRINT " ";
   : C=C+1
0310 J=J+1
   : B$=B$(J)
   : IF B$>HEX(7F)THEN 300
   : IF B$=HEX(0D)THEN 340
   : IF B$=":"THEN 240
   : C$=B$
   : GOSUB 160
   : GOTO 310
0320 AND (B$,7F)
   : C$=C$(VAL(B$)+1)
   : GOSUB 160
0330 IF Z=1THEN 260
   : IF STR(C$,Z,1)="("THEN 260
   : PRINT " ";
   : C=C+1
   : GOTO 260
0340 IF H>0THEN RETURN
   : PRINT
   : KEYIN K$
   : RETURN
0350 PRINT HEX(22);
0360 J=J+1
   : PRINT B$(J);
   : IF B$(J)<>HEX(22)THEN 360
   : GOTO 260
0370 PRINT " %";
0380 J=J+1
   : IF B$(J)=HEX(0D)THEN 340
   : PRINT B$(J);
   : IF B$(J)<>":"THEN 380
   : RETURN
0390 IF B$(J)<>" "THEN 400
   : J=J+1
   : GOTO 390
0400 V$=B$(J)
   : PRINT
   : RETURN
0410 IF H=0THEN RETURN
   : SELECT PRINT 215(79)
0420 RETURN
0430 REM %^BUFFER LOGIC
   : REM %BUFFER VARIABLES
0440 REM %0 D DEVICE, D0$ HEX(0D), M$( SEARCH RESULT
0450 REM %0 A1$( #1 READ AREA
0460 REM %0 A1 #1 SECTOR
0470 REM %0 B1$( #1 TEXT, B1 #1 PTR
0480 IF B1=2THEN 490
   : IF B1$(B1)=HEX(FD)THEN 490
   : IF B1$(B1)=HEX(FE)THEN 1440
   : MAT COPY B1$()<B1,256-B1>TO B1$()
   : B1=2
   : RETURN
0490 B1=2
   : DATA LOAD BA T#1,(A1,A1)A1$()
0510 MAT COPY A1$()<2,255>TO B1$()
   : H$=A1$(1)
   : AND (H$,F0)
   : RETURN
   : REM %^SEARCH LOOP
0515 GOSUB 480
0520 MAT COPY B1$()TO B$()
0530 SELECT PRINT 005
   : STR(L$,1)=B$(2)
   : STR(L$,2)=B$(3)
0540 %PRINT " ON LINE=";: HEXPRINT L$
0550 MAT SEARCHB1$()<1,255>,=D0$TO M$()
   : B2=VAL(M$(1),2)
   : IF B2=0THEN 1420
   : X=4
0555 IF Q0$=" "THEN 560
   : MAT SEARCHB1$()<X,B2-X>,=Q0$TO M$()
   : A=VAL(M$(1),2)
   : IF A<3THEN 560
   : IF B1$(X+A-2)=HEX(FF)THEN 560
   : IF B1$(X+A-1)<HEX(FF)THEN 640
0560 MAT SEARCH B1$()<X,B2-X>,>F7$ TO M$()
   : A=VAL(M$(1),2)
   : IF A=0THEN 630
0570 X=X+A
   : T$=B1$(X-1)
   : IF T$<>HEX(FF)THEN 580
   : X=X+2
   : GOTO 560
0580 A=VAL(T$)-127
   : IF W$(A)=" "THEN 560
   : IF C$(A)="ON"THEN 670
   : IF C$(A)="MAT"THEN 680
   : IF C$(A)="DEFFN"THEN 700
0590 A(A)=A(A)+1
   : IF W$(A)="B"THEN 600
   : IF W$(A)="DISK"THEN 600
0600 W=1
0610 IF R>254THEN 560
   : R=R+1
   : R$(R)=T$
   : STR(R$(R),2,2)=L$
0620 GOTO 560
0630 IF W=0THEN 650
   : W=0
0640 MAT COPY B1$() TO B$()
   : GOSUB 210
   : B1=J+3
   : GOTO 515
0650 B1=B1+B2+1
   : GOTO 515
0660 PRINT "PROGRAM READ"
   : GOTO 1440
0670 GOSUB 180
   : REM /ON
   : IF Q$<>"ERRO"THEN 560
   : GOTO 590
0680 GOSUB 180
   : REM /MAT
   : B$=Q$
   : IF B$=HEX(87)THEN 690
   : IF B$=HEX(AE)THEN 690
   : IF Q$="MERG"THEN 690
   : IF Q$="SEAR"THEN 690
   : IF Q$="MOVE"THEN 690
   : IF Q$="SORT"THEN 690
   : GOTO 720
0690 T$=HEX(FA)
   : GOTO 720
0700 GOSUB 180
   : REM /DEFFN
   : B$=Q$
   : IF B$=HEX(39)THEN 560
   : IF B$<"A"THEN 710
   : IF B$>"Z"THEN 710
   : GOTO 560
0710 T$=HEX(EC)
   : GOTO 720
0720 A=VAL(T$)-127
   : GOTO 590
0730 REM %^SET-UP
0740 C$="DEFAULT="
   : INIT(20)W$()
   : ON F1 GOSUB 1100,1520
0750 PRINT "SOURCE PROGRAM-"
0760 J=0
   : GOSUB '98
   : SELECT #1<D1$(D9)>
0805 P7=0
0810 DEFFN'5
   : P$=" "
   : INPUT "PROGRAM NAME",P$
   : IF P$=" "THEN 840
   : IF P$="DATA"THEN 835
0820 LIMITS T #1,P$,A1,B,Z
   : REM ^ERR 80 KEY S.F. '5 FOR NEW NAME
0830 J=J+1
   : P$(J)=P$
   : IF P7=0THEN 810
0835 P7=1
   : READ P$
   : STR(P$,9)=" "
   : PRINT P$
   : IF P$<>" "THEN 820
   : GOTO 805
0840 ON P7GOTO 805
   : IF J=0THEN 810
   : P7=J
   : GOTO 860
0860 H=0
   : INPUT "KEY 1(EXEC) FOR HARD COPY",H
0870 D$=" "
   : INPUT "DATE",D$
0880 L=55
   : REM /LINES/PAGE
   : M=5
   : REM /MARGIN
0890 IF P6=P7THEN 1510
   : GOSUB 1430
   : P6=P6+1
   : P$=P$(P6)
   : LIMITS T#1,P$,A1,B,Z
   : GOTO 910
0910 GOSUB 410
   : PRINT HEX(0D0E);TAB(M/2);P$,D$;" ..SELECTED LINES   Prog. ";P6;" of";P7
   : SELECT PRINT 005
0920 D0$=HEX(0D)
   : GOSUB 490
   : IF STR(A1$(),,1)<>HEX(40)THEN 935
   : GOSUB 490
0930 GOTO 520
0935 PRINT "Unable to examine file ";P$
   : GOTO 890
0940 DATA "LIST","CLEAR","RUN","RENUMBER","CONTINUE","SAVE"
0950 DATA "LIMITS","COPY","KEYIN","DSKIP","AND","OR","XOR"
0960 DATA "TEMP","DISK","TAPE","TRACE","LET","DRAM","DIM","ON"
0970 DATA "STOP","END","DATA","READ","INPUT","GOSUB","RETURN"
0980 DATA "GOTO","NEXT","FOR","IF","PRINT","LOAD","REM","RESTORE"
0990 DATA "PLOT","SELECT","COM","PRINTUSING","MAT","REWIND","SKIP"
1000 DATA "BACKSPACE","SCRATCH","MOVE","CONVERT","PLOT"," STEP"
1010 DATA " THEN"," TO","BEG","OPEN","CI","R","D","CO"," ","OFF"
1020 DATA "DBACKSPACE","VERIFY","DA","BA","DC","FN","ABS(","SQR("
1030 DATA "COS(","EXP(","INT(","LOG(","SIN(","SGN(","RND(","TAN("
1040 DATA "ARC","#PI","TAB(","DEFFN","TAN(","SIN(","COS(","HEX("
1050 DATA "STR(","ATN(","LEN(","RE","#","%","P","BT","G","VAL(","NUM("
1060 DATA "BIN(","POS(","LS=","ALL","PACK","CLOSE","INIT","HEX"
1070 DATA "UNPACK","BOOL","ADD","ROTATE","$","ERROR","ERR","DAC"
1075 DATA "DSC","SUB","LINPUT","VER(","ELSE","SPACE","ROUND","AT(","HEXOF(","M
     AX(","MIN(","MOD("
1080 REM DUMMY ATOMS
1090 DATA "MAT","ON ERROR"
1100 Z=-127
1110 REM W$(Z+\DC\D288)))="B/S"
   : REM /KEYIN
1120 REM W$(Z+\DC\D2DC)))="B/S"
   : REM /VAL
1130 W$(Z+VAL(HEX(A5)))="SELECT"
   : REM /SELECT
1140 W$(Z+VAL(HEX(E8)))="B"
   : REM /ADD(
1150 W$(Z+VAL(HEX(8A)))="B"
   : REM /AND
1160 W$(Z+VAL(HEX(DE)))="B"
   : REM /BIN(
1170 W$(Z+VAL(HEX(E7)))="B"
   : REM /BOOL
1180 W$(Z+VAL(HEX(E4)))="B"
   : REM /INIT
1190 W$(Z+VAL(HEX(DD)))="B"
   : REM /NUM(
1200 W$(Z+VAL(HEX(8B)))="B"
   : REM /OR
1210 W$(Z+VAL(HEX(DF)))="B"
   : REM /POS(
1220 W$(Z+VAL(HEX(E9)))="B"
   : REM /ROTATE
1230 W$(Z+VAL(HEX(8C)))="B"
   : REM /XOR
1240 W$(Z+VAL(HEX(AE)))="B"
   : REM /CONVERT
1250 W$(Z+VAL(HEX(E6)))="B"
   : REM /UNPACK
1260 W$(Z+VAL(HEX(E2)))="B"
   : REM /PACK
1270 W$(Z+VAL(HEX(A4)))="B/PLOT"
   : REM /PLOT
1280 W$(Z+VAL(HEX(AF)))="B/PLOT"
   : REM /PLOT SEL.
1290 W$(Z+VAL(HEX(81)))="C/T"
   : REM /CLEAR
1300 W$(Z+VAL(HEX(86)))="DISK"
   : REM /LIMITS
1310 W$(Z+VAL(HEX(BB)))="DISK"
   : REM /DBACKSPACE
1320 W$(Z+VAL(HEX(89)))="DISK"
   : REM /DSKIP
1330 W$(Z+VAL(HEX(BE)))="DISK"
   : REM /BA
1340 W$(Z+VAL(HEX(BD)))="DISK"
   : REM /DA
1350 W$(Z+VAL(HEX(BF)))="DISK"
   : REM /DC
1360 W$(Z+VAL(HEX(A8)))="OP 1"
   : REM /MAT ALSO SEE HEX(EB)
1370 W$(Z+VAL(HEX(EA)))="OP 2"
   : REM /$
1380 W$(Z+VAL(HEX(94)))="C"
   : REM /ON ERROR
1390 W$(Z+VAL(HEX(FA)))="OP 5"
   : REM /DUMMY ATOM FOR MAT VERBS
1400 W$(Z+VAL(HEX(FB)))="C"
   : REM /DEFFN' HEX
1410 RETURN
1420 STOP "1420--ILLOGICAL NO CR ON RECORD"
1430 FOR Z=1 TO 128
   : A(Z)=0
   : NEXT Z
   : INIT(FF)R$()
   : R=0
   : RETURN
1440 DEFFN'11
   : GOSUB 410
   : PRINT
   : PRINT HEX(0E);TAB(M/2);P$,"ATOMS USED"
1450 R,Z=0
   : MAT SORT R$() TO T1$(),T2$()
1460 Z=Z+1
   : IF Z>128THEN 890
1470 IF A(Z)=0THEN 1460
   : IF W$(Z)=" "THEN 1460
   : PRINT "VERB=";C$(Z),"IS USED ";A(Z);"TIMES";
   : IF F1=2THEN 1480
   : PRINT "**REQUIRES--";W$(Z);
1480 PRINT
1490 BIN(T$)=Z+127
   : R=R+1
   : IF RND(0)<>.89459771698THEN 1495
   : X=VAL(T2$(R))
   : IF T$=STR(R$(X),1,1)THEN 1500
   : R=R-1
   : PRINT
   : GOTO 1460
1495 X=VAL(STR(T2$(R),2))
   : IF T$=STR(R$(X),1,1)THEN 1500
   : R=R-1
   : PRINT
   : GOTO 1460
1500 PRINT "--";
   : HEXPRINT STR(R$(X),2,2);
   : GOTO 1490
1510 STOP "END OF JOB"
1520 D$=" "
   : INPUT "LOOK FOR VERB or QUOTE",D$
   : Z=1
   : IF D$<>" "THEN 1525
   : RETURN
1525 IF D$<>"QUOTE"THEN 1530
   : Q0$=HEX(22)
   : GOTO 1520
1530 IF C$(Z)=D$THEN 1540
   : Z=Z+1
   : IF Z<108THEN 1530
   : PRINT "ATOM NOT IN TABLE"
   : GOTO 1520
1540 W$(Z)="FOUND AT"
   : L1=1
   : PRINT "LOOKING FOR--";C$(Z)
   : GOTO 1520
1550 Z=-127
   : IF L1=0THEN 1110
   : RETURN
1570 DEFFN'1
   : PRINT "LOOK FOR SPECIFIC VERBS"
   : F1=2
1580 GOSUB 1430
   : GOTO 740
1590 SELECT PRINT 005(80),INPUT 001
   : RESTORE LINE940
   : Z=1
1600 READ C$
   : C$(Z)=C$
   : Z=Z+1
   : IF Z<123+2 THEN 1600
1610 DEFFN'15
   : SELECT PRINT 005
   : PRINT HEX(03),,"PROGRAM ANALYZER"
1630 PRINT "S.F. '1 LOOK FOR VERB ATOMS IN PROGRAM FILES"
1640 PRINT "S.F. '11 SUMMARY"
1650 PRINT "S.F. '15 MENU"
1660 STOP "KEY APPROPRIATE SPECIAL FUNCTION"