Listing of file='DISKCM1 ' on disk='vmedia/vp-boot-2.3.wvd.zip'
# Sector 970, program filename = 'DISKCM1' 0010 REM %DISKCMND -- $GIO SEQUENCES FOR NEW DISK COMMANDS : REM 5/29/78 BP 0020 REM : REM O$,O1$ -- OPTIONS : REM D$ -- DISK ADDRESS : REM D$() -- DISK ADDRESS TABLE : REM K$ -- KEY CODE : REM S,S$ -- SECTOR ADDRESS : REM G$ -- $GIO REGISTERS : REM G$() -- SECTOR DATA : REM F$ -- FS COMMAND 0025 COM D$3 : DIM O$64,O1$1,D$(1)64,L$(1)2,K$1,S$3,G$10,G$(4)64,F$1 0030 IF D$<>" "THEN 40 : D$="310" : SELECT #1 310 0040 REM %DISPLAY OPTIONS-------------------------- : PRINT HEX(0D03);TAB(10);"*** $GIO SEQUENCES FOR NEW DISK COMMANDS ***" : PRINT : PRINT "OPTIONS:";TAB(40);"DISK ADDRESS = /";D$ : O1$=HEX(00) : RESTORE 0050 READ O$ : IF O$="no more options" THEN 60 : PRINT " '"; : HEXPRINT O1$; : PRINT " ";O$ : ADD(O1$,01) : GOTO 50 0060 PRINT : PRINT "SF' KEY?"; 0070 KEYIN K$,70,80 : GOTO 70 0080 ON VAL(K$) GOTO 90,200,240,280,320,360,400,450 : GOTO 40 0090 REM %CHANGE DISK ADDRESS------------------------------------- : PRINT HEX(0D03);"CHANGE DISK ADDRESS --" : PRINT 0100 INPUT "DISK ADDRESS (310,B10,320,B20,330,B30,360,B60)",D$ : D$(1)="310B10320B20330B30360B60" : MAT SEARCH D$(),=D$ TO L$() : ON (VAL(STR(L$(1),2))+2)/3 GOTO 110,120,130,140,150,160,170,180 : GOTO 100 0110 SELECT #1 310 : GOTO 190 0120 SELECT #1 B10 : GOTO 190 0130 SELECT #1 320 : GOTO 190 0140 SELECT #1 B20 : GOTO 190 0150 SELECT #1 330 : GOTO 190 0160 SELECT #1 B30 : GOTO 190 0170 SELECT #1 360 : GOTO 190 0180 SELECT #1 B60 : GOTO 190 0190 GOTO 40 0200 REM %FORMAT PLATTER------------------------------------------ : GOTO 60 : PRINT HEX(0D03);"FORMAT PLATTER /";D$;" --" : PRINT : PRINT "PRESS 'CONTINUE' TO FORMAT"; 0210 KEYIN K$,220,210 : GOTO 210 0220 IF K$<>HEX(84) THEN 210 : G$=HEX(20) : IF STR(D$,1,1)="3" THEN 230 : G$=HEX(30) 0230 PRINT HEX(0D);TAB(63);HEX(0D); : PRINT "FORMATTING..."; : $GIO FORMAT SECTOR #1(0600 0700 70A0 68C0 7040 6A10 6802 4270 8B67,G$) : PRINT HEX(0D);"FORMATTING COMPLETE" : GOTO 60 0240 REM %FORMAT SECTOR------------------------------------------ : GOSUB 500 : STR(G$,2,3)=S$ 0250 KEYIN K$,260,250 : REM GOTO 250 : K$=HEX(84) 0260 IF K$<>HEX(84) THEN 250 : G$=HEX(20) : IF STR(D$,1,1)="3" THEN 270 : G$=HEX(30) 0270 STR(G$,2,3)=S$ : $GIO FORMAT SECTOR #1(0600 0700 70A0 68C0 7040 6A10 6803 6A20 6A30 6240 8 705 1704 1156 1576 4270 8B67,G$) : GOTO 240 0280 REM %READ SECTOR HEADER ------------------------------------ : PRINT HEX(0D03);"READ SECTOR HEADER --" : PRINT : GOSUB 500 : STR(G$,2,3)=S$ : PRINT : PRINT "PRESS 'CONTINUE' TO READ"; 0290 KEYIN K$,300,290 : GOTO 290 0300 IF K$<>HEX(84) THEN 290 : G$=HEX(20) : IF STR(D$,1,1)="3" THEN 310 : G$=HEX(30) 0310 PRINT HEX(0D);TAB(63);HEX(0D); : PRINT "READING..."; : STR(G$,2,3)=S$ : $GIO READ HEADER #1(0600 0700 70A0 68C0 7040 6A10 6804 6A20 6A30 6240 870 5 1704 1156 1576 4000 8701 8602,G$) : PRINT HEX(0D);"READ COMPLETE. HEADER = "; : HEXPRINT STR(G$,1,2) : GOTO 60 0320 REM %CLEAR ERROR COUNT ------------------------------------- : PRINT HEX(0D03);"CLEAR ERROR COUNT --" : PRINT : PRINT "PRESS 'CONTINUE' TO CLEAR COUNT"; 0330 KEYIN K$,340,330 : GOTO 330 0340 IF K$<>HEX(84) THEN 330 : G$=HEX(20) : IF STR(D$,1,1)="3" THEN 350 : G$=HEX(30) 0350 PRINT HEX(0D);TAB(63);HEX(0D); : PRINT "CLEARING..."; : $GIO CLEAR ERROR COUNT #1(0600 0700 70A0 68C0 7040 6A10 6808 4000 8700,G$ ) : PRINT HEX(0D);"ERROR COUNT CLEARED" : GOTO 60 0360 REM %READ ERROR COUNT ------------------------------------- : PRINT HEX(0D03);"READ ERROR COUNT --" : PRINT : PRINT "PRESS 'CONTINUE' TO READ COUNT"; 0370 KEYIN K$,380,370 : GOTO 370 0380 IF K$<>HEX(84) THEN 370 : G$=HEX(20) : IF STR(D$,1,1)="3" THEN 390 : G$=HEX(30) 0390 PRINT HEX(0D);TAB(63);HEX(0D); : PRINT "READING..."; : $GIO READ ERROR COUNT #1(0600 0700 70A0 68C0 7040 6A10 6809 4000 8701 860 2 8603,G$) : PRINT HEX(0D);"ERROR COUNT = "; : HEXPRINT STR(G$,1,3) : GOTO 60 0400 REM %READ BAD SECTOR -------------------------------------- : GOSUB 500 : STR(G$,2,3)=S$ 0410 KEYIN K$,420,410 : K$=HEX(84) 0420 IF K$<>HEX(84) THEN 410 : G$=HEX(00) : IF STR(D$,1,1)="3" THEN 430 : G$=HEX(10) 0430 STR(G$,2,3)=S$ : $GIO READ BAD SECTOR #1(0600 0700 70A0 68C0 7040 6A10 6A30 6240 8705 1704 1156 1576 4270 8367 C640 8605,G$)G$() 0440 REM HEXPRINT G$() : GOSUB 8000 : GOTO 400 0450 REM %FIELD SERVICE COMMANDS ------------------------------- : PRINT HEX(0D03);"FIELD SERVICE COMMAND --" : PRINT : GOSUB 490 : PRINT : PRINT "PRESS 'CONTINUE' TO START"; 0460 KEYIN K$,470,460 : GOTO 460 0470 IF K$<>HEX(84) THEN 460 : STR(G$,1,1)=HEX(20) : IF STR(D$,1,1)="3" THEN 480 : STR(G$,1,1)=HEX(30) 0480 PRINT HEX(0D);TAB(63);HEX(0D); : PRINT "EXECUTING..."; : $GIO FS COMMAND #1(0600 0700 70A0 68C0 7040 6A10 6A20 4000 8700,G$)G$() : PRINT HEX(0D); : STOP "ERROR -- SHOULD NEVER GET HERE." : GOTO 60 0490 REM GET FS COMMAND : INPUT "COMMAND (A-F)",F$ : IF F$<"A" THEN 490 : IF F$>"F" THEN 490 : BIN(STR(G$,2,1))=VAL(F$)-55 : RETURN 0500 REM %GET SECTOR ADDRESS-------------- : REM RETURN -- S$=SECTOR ADDRESS : G=G+1 : S=G : REM INPUT "SECTOR ADDRESS (default = 0)",S : BIN(S$)=S/65536 : S=S-VAL(S$)*65536 : BIN(STR(S$,2))=S/256 : S=S-VAL(STR(S$,2))*256 : BIN(STR(S$,3))=S : PRINT : PRINT G; : RETURN 0510 REM %OPTIONS : DATA "MENU","CHANGE DISK ADDRESS","FORMAT PLATTER","FORMAT SECTOR","READ SECTOR HEADER","CLEAR ERROR COUNT","READ ERROR COUNT","READ BAD SECTOR"," FIELD SERVICE COMMANDS" 0520 DATA "no more options" 8000 FOR N=1 TO 70 : IF STR(G$(),N,1)<HEX(30) OR STR(G$(),N,1)>HEX(7A)THEN 8050 8010 PRINT STR(G$(),N,1); 8030 NEXT N : RETURN 8050 PRINT "."; : GOTO 8030