image of READY prompt

Wang2200.org

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

# Sector 961, program filename = 'TBO.DMAP'
0010 REM .TBO.DMAP 02/27/89  DISK MAP
0020 COM P$(999)8,M$(999)8,M1,M2,H$3,H,P1,F3
   : M$(),P$()=" "
0030 IF D1$(10)=" "THEN LOAD T#0,"TBODISKS"8000,8800BEG 40
0040 DIM E$(1)80,A$80,A$(4)64,B$(255)1,P$64,M$2,C$1,C1$1,F$8,H1$1
0041 REM %0 '98 What disk?, '0 Load START, '1 Load TBO.SDC0, '2 Load TBO.FMAP
0042 REM %0 #0 System disk, #1 Prime Prog.disk, #2 Sub program disk
0044 REM %0 A A, A$ A$80, A$(  $256 Disk read, A1 Disk sector, A9 Sector # res
     et
0045 REM %0 B B, B$( $255 Disk.data,  B1 B$().ptr,  B2 B2
0046 REM %0 C C, C$  C$1, C1 dummy, C1$ Byte 1 of P1$
0047 REM %0 D D, D$ $16 data, D0 D0, D1 D1, D1$( Disk list, D9  D1$(disk)
0048 REM %0 E Ptr to text end, E$ Error number, E$( E$(1)80, E9 End flag
0049 REM %0 F F, F$ FileName
0050 REM %0 F3 Process flag
   : REM F3=0 Process START  F3=1 Process LOADer
0051 REM %0 F9 DATA stmt form
   : REM =0 Unknown  =1 @MENU form  =2 TBO form
0052 REM %0 H Hard copy flag, H$ List address, H1$ $1 Header byte
0053 REM %0 L Fld length, N$ Error Line
0060 REM %0 M$( Menu file names, M1 ptr to M$(), M2 ptr to M$(), M$ Match arra
     y
0070 REM %0 P$ Description text area, P$( Prog.file names, P1 P$(ptr), P1$ $16
0080 REM %0 U @MENU U, U$ @MENU U$, U1 @MENU U1, U1$ @MENU U1$
0090 M1=1
   : M2=1
   : F9=0
0100 P1=1
0110 SELECT PRINT 005(80)
   : PRINT HEX(03);"  DISK MAP    This program traces the program map of a dis
     k"
   : PRINT "By keying off the descriptions and program names in LOAD modules"
   : PRINT
0120 REM .TBO Form at 9000 DATA "FileName?Description   beyond 64 ddd"
   : REM .DATA" " ends list
0130 REM .TBO pos 9  c=Save COMmon  ]=new menu  @=@MENU call
0140 REM @MENUForm at 9000 DATA "FileName","Description","P/D"
   : REM .DATA"no more","end of list"," " ends list
0150 PRINT " To reload 'START'  Key S.F. '0    for 'SORTCAT' S.F.'1"
0160 GOSUB '98
   : SELECT #1<D1$(D9)>
0170 DATA LOAD BA T#1,(0)A$()
   : PRINT "Disk=";D1$(D9);"  Cat.sectors =";VAL(STR(A$(),1),2);"  Max=";VAL(S
     TR(A$(),5),2)-1,"Curr end=";VAL(STR(A$(),3),2)-1
0180 H$="005"
   : LINPUT "Output device",-H$
   : IF H$="005"THEN H=0
   : ELSE H=1
0190 IF H=0THEN 200
   : INPUT "DESCRIPTION",P$
   : SELECT PRINT <H$>(130)
   : PRINT HEX(0C0E);"DISK MAP"
   : PRINT
   : PRINT HEX(0E);P$
   : SELECT PRINT 005
0200 F$="START"
   : F3=0
   : GOTO 220
0210 SELECT PRINT 005
   : F$=" "
0220 ON M1 GOTO 230
   : F$=M$(M2)
   : M2=M2+1
0230 PRINT "Loader file name =";F$; " or"
   : IF F$=" "THEN 260
   : INPUT F$
0240 LIMITS T #1,F$,A,B,C,D
   : REM .Name,start,end,used,status
   : A9=A
0250 ON DGOTO 290,275
   : PRINT "Error ";D;" on retrieval of file ";F$
   : IF D=0THEN PRINT "Named file is not on disk surface"
   : GOTO 230
0260 IF H>0THEN SELECT PRINT <H$>(79)
   : GOSUB 1080
   : SELECT PRINT 005(80)
   : PRINT "Key '0 to START '1 to SORT  '2 to Function map  else repeat"
   : C$=HEX(0D)
0270 KEYIN C$
   : ON POS(HEX(0D000102)=C$)GOTO 270,1150,1160,1170
   : GOTO 10
0275 E9,F=0
   : GOSUB 430
   : F$=" "
   : IF STR(A$(),,3)=HEX(810188)THEN F$=STR(A$(),4,8)
   : GOTO 360
0280 REM %..Examine Program module
   : REM .If F3=0 START module  If F3=1 LOAD menus   If F3=2 TBO format
0290 E9=0
   : F=0
   : GOSUB 430
   : B1=1
   : IF H>0THEN SELECT PRINT <H$>
   : IF F3=2THEN PRINT HEX(0E);"   LOAD MODULE ";M2-1;    " = ";F$
   : ON F3+1 GOTO 330,500,590
0300 REM %^.Examine START module
0310 REM .Form 1) $PSTAT="FileName" colon LOAD T "@MENU"
   : REM .Form 2) $PSTAT="--space-" colon LOAD T "@MENU"
   : REM .Form 3) LOAD T "@MENU"
   : REM .SELECT DISK or SELECT #0 /hhh may precede
0320 REM .Look for 'EA' PSTAT  or  A1 for LOAD or A5 for SELECT
0330 D0=POS(STR(B$(),B1)=HEX(0D))
   : IF D0>0THEN 340
   : IF H1$=HEX(00)THEN 290
   : F3=1
   : GOTO 220
0340 F$="NO PSTAT"
   : D1=POS(STR(B$(),B1,D0)=HEX(EA))
   : IF D1=0THEN 350
   : IF STR(B$(),B1+D1,5)<>"PSTAT"THEN 400
   : B=B1
   : GOSUB 1140
   : IF C=0THEN 350
   : F$=A$
0350 D1=POS(STR(B$(),B1,D0)=HEX(A1))
   : IF D1=0THEN 400
   : B=B1+D1
   : GOSUB 1140
   : IF C=0THEN 400
   : IF A$="@MENU"THEN 360
   : F$=A$
   : A$=" "
0360 IF F$="NO PSTAT"THEN F$=".STARTD"
   : IF F$=" "THEN 410
0370 SELECT #2 <D1$(D9)>
0380 LIMITS T#2,F$,D,D,D,D
   : ON DGOTO 390,390
   : PRINT "File type ";D;" on trying to read File ";F$
   : GOTO 400
0390 PRINTUSING "LOAD ## uses file ######## ",M1,F$;
   : IF A$<>" "THEN PRINTUSING "via ########",A$;
   : PRINTUSING " on disk ###",D1$(D9);
   : PRINT
   : M$(M1)=F$
   : M1=M1+1
0400 B1=B1+D0
   : GOTO 330
0410 PRINT "Start module is unknown format "
   : GOTO 160
0420 REM %.SR..Load 1st block of program
0430 DATA LOAD BA T #1,(A,A)A$()
   : B=1
   : H1$=STR(A$(),,1)
0440 IF H1$=HEX(40)OR H1$=HEX(41)THEN 480
0450 MAT COPY A$()<2,255>TO B$()<1,255>
0460 C$=HEX(FD)
   : MAT SEARCHB$()<1,255>,=C$ TO M$
   : IF M$>HEX(0000)THEN 470
   : E9=1
   : C$=HEX(FE)
   : MAT SEARCHB$()<1,255>,=C$ TO M$
   : IF M$=HEX(0000)THEN RETURN
0470 E=VAL(STR(M$,2))
   : RETURN
0480 IF E9=0THEN 430
   : STOP "END OF FILE   ERROR IN YOUR LOAD MODULE"
   : RETURN
0500 REM %^.Determine LOAD menu module type
0505 REM .Set F9   =0 unknown form   =1 @MENU form   >=2 TBO form
0510 A=A9
   : E9,F9=0
   : GOSUB 520
   : A=A9
   : ON F9+1 GOTO 511,512
   : F3=2
   : GOTO 290
0511 STOP "TYPE UNKNOWN "#
0512 LOAD T#1,F$ 9000,9999BEG 1200
0515 GOSUB 580
0520 GOSUB 540
   : REM /.Pos to DATA atom
   : IF E9=0THEN 515
   : IF M$>HEX(0000)THEN 515
   : IF STR(B$(),B2,L)="no more"THEN F9=1
   : RETURN
0540 REM .SR.pos to DATA atom
   : C$=HEX(97)
   : MAT SEARCHB$()<B,E-B>,=C$ TO M$
   : IF M$>HEX(0000)THEN RETURN
   : IF E9=1THEN RETURN
   : GOSUB 430
   : REM /.Read file further
   : GOTO 540
0560 REM .Process DATA stmt --  F9=1 @MENU form  F9=2 TBO form
0580 L=0
   : B=B+VAL(STR(M$,2))
   : C$=HEX(22)
   : MAT SEARCHB$()<B,E-B>,=C$ TO M$
   : IF M$=HEX(0000)THEN RETURN
   : B2,B=B+VAL(STR(M$,2))
   : MAT SEARCHB$()<B,E-B>,=C$ TO M$
   : IF M$=HEX(0000)THEN RETURN
   : L=VAL(STR(M$,2))-1
   : F9=F9+1
   : RETURN
0585 REM %^.Find DATA stmt
0590 C$=HEX(97)
   : MAT SEARCHB$()<B,E-B>,=C$ TO M$
   : IF M$>HEX(0000)THEN 600
   : GOSUB 480
   : REM /.Read file further
   : GOTO 590
0600 B=B+VAL(STR(M$,2))
   : REM /Position of DATA verb +1
0610 C$=HEX(22)
   : REM /QUOTES
0620 MAT SEARCHB$()<B,E-B>,=C$ TO M$
   : IF M$=HEX(0000)THEN 710
0630 B=B+VAL(STR(M$,2))
   : REM /Position of first QUOTE +1
0640 MAT SEARCHB$()<B,E-B>,=C$ TO M$
   : IF M$=HEX(0000)THEN 710
0650 L=VAL(STR(M$,2))-1
0660 E$()=STR(B$(),B,L)
   : P$=" "
0670 P$=STR(E$(1),1,L)
   : REM /DATA TERMINOLOGY
0680 IF P$=" "THEN 710
0690 B=B+VAL(STR(M$,2))
   : REM /Position of last QUOTE
0700 IF B<ETHEN 720
   : B=1
   : IF E9=0THEN STOP #
0710 GOTO 210
0720 D$,P1$=STR(E$(),1,8)
   : C$=STR(E$(),9,1)
0730 P1$=" "
   : IF C$="]"THEN P1$="TB.Loader?"
   : IF C$="@"THEN P1$="@MENU.xx?"
0740 IF L>8THEN F9=1
   : ELSE F9=2
0750 IF H=0THEN 760
   : SELECT PRINT <H$>
   : PRINT TAB(5);
0760 IF F>0THEN 770
   : PRINT HEX(0E);"Menu description = ";P$
   : GOTO 820
0770 IF POS(D$=HEX(22))>0THEN STR(D$,POS(D$=HEX(22)))=" "
0780 IF D$="no more"THEN 210
0790 GOSUB 880
0800 C1$=P1$
   : IF STR(P$,10)<>" "THEN 810
   : B1=B
   : GOSUB 1140
   : STR(P$,10)=A$
   : B=B1
   : IF C1$="f"THEN PRINTUSING 860,F,D$,P1$,STR(P$,10)
   : ELSE PRINTUSING 850,F,D$,P1$,M1,STR(P$,10)
   : GOTO 820
0810 IF C1$="f"THEN PRINTUSING 840,F,D$,P1$,STR(P$,10)
   : ELSE IF P1$="NONE"THEN PRINTUSING 830,F,D$,P1$," ",STR(P$,10)
   : ELSE PRINTUSING 830,F,D$,P1$,M1-1,STR(P$,10)
0820 SELECT PRINT 005
   : F=F+1
   : GOTO 590
0830 %' ## for ######## ############ ### = ###################################
     ########
0840 %' ## for ######## ################ = ###################################
     ########
0850 %Item ##  ######## ############ ### = ###################################
     ########
0860 %Item ##  ######## ################ = ###################################
     ########
0870 REM %.S.R. to LOAD from disk
0880 LIMITS T #1,D$,A1,B1,C1,D1
0890 ON D1GOTO 900,942
   : GOTO 970
0900 DATA LOAD BA T #1,(A1+1,A1)A$()
0910 REM .Menu module must be DATA statements at line 9xxx
0920 IF STR(A$(),2,2)>=HEX(FF90)THEN 1010
   : MAT SEARCH A$(),=HEX(0D0000FF90)TO M$
   : IF M$>HEX(0000)THEN 1010
0930 P1$="function"
   : MAT SEARCHP$(),=STR(D$,,8)TO M$STEP 8
   : IF M$>HEX(0000)THEN 940
   : CONVERT P1TO STR(P1$,12,4),(####)
   : P$(P1)=D$
   : P1=P1+1
   : RETURN
0940 CONVERT 1+INT(VAL(M$,2)/8)TO STR(P1$,12,4),(####)
   : RETURN
0942 P1$="DATA file"
   : RETURN
0945 REM %.ON ERROR processing
0950 ON ERROR E$,N$ GOTO 960
0960 IF E$<>"80"THEN 980
0970 P1$="NONE"
   : GOTO 810
0980 IF E$="D82"THEN 970
0990 PRINT "LINE ";N$,"ERROR=";E$
   : STOP #
1000 REM .Menu module must be DATA statements at line 9xxx
1010 IF C$="]"THEN 1020
   : IF C$="@"THEN 1050
   : GOTO 1050
1020 P1$="TB.menu"
   : GOTO 1060
1030 REM .Look for 97 (DATA) and "12345678" for @MENU
1040 REM .Look for 97 (DATA) and "more than 8" for TB.menu
1050 P1$="@MENU.xxx"
1060 CONVERT M1TO STR(P1$,13,3),(###)
   : MAT SEARCHM$()<1,100*8>,=STR(D$,,8)TO M$STEP 8
   : IF M$>HEX(0000)THEN 1070
   : M$(M1)=D$
   : M1=M1+1
   : RETURN
1070 CONVERT 1+INT(VAL(M$,2)/8)TO STR(P1$,13,3),(###)
   : RETURN
1080 PRINT
   : PRINT HEX(0E);"NORMAL OPERATING INSTRUCTIONS FOR SYSTEMS"
1090 PRINT "1). MOUNT SYSTEM PROGRAM DISK IN 310 (or B10 or 320 or B20)"
1100 PRINT "2). Key  SELECT DISK 310 (or B10 or 320 or B20)"
1110 PRINT "3.  Key  RESET then  LOAD RUN (EXEC)"
1120 PRINT "4). Follow the CRT prompts"
   : RETURN
1130 REM .S.R. Move string following atom to F$
1140 A$=" "
   : C=POS(STR(B$(),B,255-B)=HEX(22))
   : IF C=0 THEN RETURN
   : A$=STR(B$(),B+C)
   : B=POS(A$=HEX(22))
   : IF B>0THEN STR(A$,B)=" "
   : RETURN
1150 DEFFN'0
   : LOAD T"START"
1160 DEFFN'1
   : LOAD T"TBO.SDC0"
1170 DEFFN'2
   : LOAD T"TBO.FMAP"10,7000
1200 REM %^.@MENU.FORM
1202 REM .DATA 1st   "node.file.name", "node.title", item.count, other.items
   : REM .DATA 1st  optional "prior.node", file node etc
1204 REM .DATA mid   "FileName", "description", "type", optional items.
1206 REM .DATA last  "no more",  "end of node", " ".
1210 DIM U$8,U1$68
   : RESTORE LINE 1210
   : READ U$,U1$,U1,U
   : IF U=0THEN 1214
   : FOR F=1TO U
   : READ M$
   : NEXT F
1214 F=0
   : IF H>0THEN SELECT PRINT <H$>
1215 PRINT HEX(0E);"@MENU description = ";U1$
1220 READ U1$
   : IF U1$="no more"THEN 1240
   : IF LEN(U1$)<3THEN 1220
   : IF LEN(U1$)>8THEN 1220
1230 F=F+1
   : D$,U$=U1$
   : READ U1$
   : GOSUB 930
   : IF M$=HEX(0000)THEN GOSUB 880
   : READ U2$
   : IF U2$="O"THEN P1$="Overlay"
   : PRINTUSING 860,F,U$,P1$,U1$
   : GOTO 1220
1240 GOTO 210