Listing of file='TBO.XDAD' on disk='vmedia/toolbox.wvd.zip'
# Sector 786, program filename = 'TBO.XDAD'
0010 REM TBO.XDAD 11/08/89
0020 SELECT PRINT 005(80)
0030 DIM D$(32)4,K1$80,A$(16)16,C$1,T$1,D$3,D2$2,M$70
0035 DIM G$40,E$40,E$(4)4
: E$()="D10 B10 D11 310"
0040 PRINT HEX(03);"What disks are attached to the system"
0060 D$()="D10"
: GOSUB 200
: PRINT
0070 D$()="D20"
: GOSUB 200
: PRINT
0080 D$()="D30"
: GOSUB 200
: PRINT
0090 PRINT "This is the status of possible disk addressing on this system"
: PRINT "Key - '0 to EXIT '1 to TBO.STAT - '15 RECALL - other for disk n
otes";
: PRINT HEX(0D);
: KEYIN C$
0100 IF C$=HEX(0F)THEN 40
: IF C$=HEX(00)THEN 180
: IF C$=HEX(01)THEN 190
0105 PRINT HEX(03);"---Comments on disks-----";TAB(80)
0110 PRINT "2270 -- Dual or triple (1231) maximum sectors, white label
2 or 3 addr."
0112 PRINT "2260 -- two master and two slave addresses"
0114 PRINT "2280 -- six master and six slave addresses"
0120 PRINT "Winchester (3873) maximum sectors, red label"
0130 PRINT "2275's -- DSDD max.sectors (1292) maximum sectors, 5 1/4 inch"
0140 PRINT "2275-30 -- DSDD on D.0 (1292) Winchester on D.1 and D.2 (
18900)"
0150 PRINT "2275-60 -- No diskette -- 4 Winchester surfaces on D.0 thru D.3 (
64023)"
0160 PRINT "Phoenix -- No diskette -- surfaces on D.0 thru D.F (
52763)"
0162 PRINT "DS cabinet -- DSDD on D.0 (1292) surface on D.0"
: PRINT " or -- DSHD on D.0 (4159) surface on D.0"
0163 PRINT " Sw.1 -- Winchester drives surfaces D-1 thru D-E (40
bit=0)"
0164 PRINT " DS-10R -- Removable 10 MB surface D-F"
0165 PRINT " Sw.2 -- Winchester drives surfaces D-1 thru D-E (40
bit=1)"
0170 KEYIN C$
: ON VAL(C$)+1GOTO 180,190
: GOTO 10
0180 DEFFN'0
: LOAD DC T#0,"START"
0190 DEFFN'1
: LOAD DC T#0,"TBO.STAT"
0200 J=0
: PRINT BOX(1,79);" Disk controller ";STR(D$(),2,2);" ";
0210 J=J+1
: D$=D$(J)
: IF D$=" "THEN RETURN
0220 K1$=" "
: GOSUB '200(D$,D$())
: ON X4GOSUB 280,290,300,310
0225 IF E=48THEN 245
: IF E=91THEN 245
0228 PRINTUSING " ### ",D$;
0229 C$=" "
: IF STR(A$(),,1)>HEX(00)THEN C$="'"
: CONVERT ATO G$,(###)
: STR(G$,4)=C$
0230 IF K1$="Yes"THEN PRINTUSING 260,G$,B,C;
: ELSE PRINT K1$
0240 IF K1$="Yes"THEN 210
: GOTO 210
0245 IF T=4AND J<31THEN 210
: IF T=3AND J<4THEN 210
: IF T=2AND J<11THEN 210
: K1$=K1$&" None"
: D$()=" "
0248 IF J/2=INT(J/2)THEN PRINT
: RETURN
0250 % ################################ !
0260 %Idx=#### Cur.End=##### Max=##### !
0270 REM %.Get Rcv Disk address
0280 K1$=K1$&" disk not in table"
: RETURN
0290 K1$="Hogged or not configured"
: PRINT K1$
: D$()=" "
: RETURN CLEAR
: RETURN
0300 K1$="Is unavailable"
: RETURN CLEAR
0305 PRINT HEX(0D);K1$
: PRINT
: D$()=" "
: RETURN
0310 K1$="disk not in list"
: RETURN
0320 DEFFN'200(D$,D$())
0330 X4=0
: MAT SEARCHD$(),=STR(D$,,3)TO X7$STEP 4
: IF VAL(X7$,2)=0THEN 440
: SELECT #2<D$>
: ERRORX=ERR
: RETURN
0340 $OPEN 430,#2
: ERRORX4=2
: $CLOSE#2
: RETURN
0350 $CLOSE#2
: Z$=" "
: HEXPACKZ$FROMSTR(D$,2,1)
: IF J=1THEN GOSUB 500
0360 $GIO(731002000301122270A040008600,Z$)
: ERRORX=ERR
: X4=3
: K1$="FROM $GIO AT 360"
: RETURN
0370 IF STR(Z$,8,1)=HEX(00)THEN 380
: X4=3
: RETURN
0380 LIMITS T#2,"START",A,B,C,E
: ERRORE=ERR
: M$=ERR$(E)
: K1$="Error "
: CONVERT ETO STR(K1$,7,2),(##)
: K1$=K1$&" "&M$
: RETURN
0390 K1$="Yes"
: E=0
0400 DATA LOAD BA T#2,(0)A$()
0410 A=VAL(STR(A$(1),2))
: B=VAL(STR(A$(1),3),2)-1
: C=VAL(STR(A$(1),5),2)-1
0420 RETURN
0430 X4=2
: RETURN
0440 X4=4
: RETURN
0490 DIM G$(15)1
0500 $GIOGETDISKTYPE#2(0200030F12220600070070A04000870B,G$())
0510 T$=G$(11)
: PRINT "Disk type ";HEXOF(T$);" ... ";
: T=POS(HEX(C0D0)=T$)
: IF T=0THEN 600
: IF T=2THEN GOSUB 1000
0520 ON TGOSUB 1400,1300,1200,1100
: PRINT K1$
0525 D$=D$(1)
0530 FOR E=1TO 4
: STR(E$(E),2,1)=STR(D$,2,1)
: NEXT E
: PRINT " ";E$(1);" is the equivalent of ";E$(2);" ! ";E$(3);" is
the equivalent of ";E$(4)
0540 RETURN
0600 PRINT "Unknown disk type check connector"
: D$()=" "
: RETURN CLEAR
: RETURN
1000 REM %^.Check for DS cabinet
1010 G$=HEX(30)
: STR(G$,2,7)=ALL(00)
: $GIOSTATUSREQUEST#2(0E140F0012E20600070070A0400288D070406A106816400087051
A00C340,G$)G$;STR(E$,,VAL(STR(G$,5,1)))
1015 T=VAL(E$)-47
1020 G1$=STR(G$,8,1)AND HEX(10)
: IF G1$=HEX(00)THEN 1030
: K1$="Disk unavailable"
: RETURN
1030 IF STR(G$,8,1)<>HEX(00)THEN 1040
: IF STR(E$,1,1)=HEX(33)THEN 1060
: IF I=32AND STR(E$,1,2)=HEX(4533)THEN 1050
1040 REM "specified disk is not a DS"
: RETURN
1050 STR(E$,1,2)=HEX(3345)
1060 RETURN
1100 K1$="DS cabinet"
: D$()=" "
: D2$="D"&STR(D$,2,1)
: E$="0123456789ABCDE"
: FOR A=1TO 15
: D$(A)=D2$&STR(E$,A,1)
: NEXT A
: ADD(STR(D2$,2,1),04)
: FOR A=2TO 15
: D$(A+14)=D2$&STR(E$,A,1)
: NEXT A
: RETURN
1200 K1$="2275 type"
: D$()=" "
: D2$="D"&STR(D$,2,1)
: E$="01234"
: FOR A=1TO 5
: D$(A)=D2$&STR(E$,A,1)
: NEXT A
: RETURN
1300 K1$="Phoenix type"
: D$()=" "
: D2$="D"&STR(D$,2,1)
: E$="012345"
: FOR A=1TO 6
: D$(A)=D2$&STR(E$,A,1)
: NEXT A
: ADD(STR(D2$,2,1),04)
: FOR A=1TO 6
: D$(A+6)=D2$&STR(E$,A,1)
: NEXT A
: RETURN
1400 K1$="2270 type"
: D$()=" "
: D2$="D"&STR(D$,2,1)
: D$(1)=D2$&"0"
: D$(2)=D2$&"1"
: ADD(STR(D2$,2,1),04)
: D$(3)=D2$&"0"
: RETURN