Compucolor.org – Virtual Media

Listing of file='ALTDIR.BAS;01' on disk='vmedia/utility-sector.ccvf'

100 REM  ** DIRECTORY ALTERATION **
110 REM
120 REM  ## MOVE END OF BASIC BACK 130 BYTES ##
130 AD= PEEK (32941)* 256+ PEEK (32940):AD= AD- 130
140 POKE 32941,INT (AD/ 256):POKE 32940,AD- INT (AD/ 256)* 256
150 CLEAR 200
151 PLOT 6,1,12
152 PRINT :PRINT "THIS PROGRAM ALTERS THE DIRECTORY TITLE"
153 PRINT " OF A DISC IN THE DEFAULT DRIVE":PRINT " NOTE: THERE IS A MAX. OF 10 CHARS"
154 PRINT " INCLUDING A7 ON / FG / BG / COLOUR SELECT":INPUT " HIT RETURN TO CONTINUE :";A$
155 PLOT 12
160 REM
170 REM  ## FIND NEW END OF BASIC ##
180 AD= PEEK (32941)* 256+ PEEK (32940):A= AD+ 1
190 REM
200 REM  ## CONVERT ADDRESS TO HEX ##
210 V= INT (A/ 4096):A= A- V* 4096:GOSUB 250
220 V= INT (A/ 256):A= A- V* 256:GOSUB 250
230 V= INT (A/ 16):A= A- V* 16:GOSUB 250
240 V= INT (A):A= A- V:GOSUB 250:GOTO 330
250 IF V< 10THEN ADR$= ADR$+ RIGHT$ (STR$ (V),1)
260 IF V= 10THEN ADR$= ADR$+ "A"
270 IF V= 11THEN ADR$= ADR$+ "B"
280 IF V= 12THEN ADR$= ADR$+ "C"
290 IF V= 13THEN ADR$= ADR$+ "D"
300 IF V= 14THEN ADR$= ADR$+ "E"
310 IF V= 15THEN ADR$= ADR$+ "F"
320 RETURN
330 REM
340 REM  ## READ FIRST BLOCK INTO MEMORY ##
350 PLOT 27,4:PRINT "READ 0 "+ ADR$+ " 0080":PLOT 27,27
360 REM
370 REM  ## FIND THE CURRENT DIRECTORY NAME ##
380 FOR I= AD+ 4TO AD+ 13:X= PEEK (I):N$= N$+ CHR$ (X):NEXT I
390 PRINT
395 PLOT 6,6
400 PRINT "THE CURRENT DISK NAME IS: ";N$:PRINT
410 REM
420 REM  ## REPLACE THE OLD NAME WITH THE NEW ##
425 PLOT 6,6
430 INPUT "ENTER THE NEW NAME: ";S$
440 IF S$= ""OR S$= "0"THEN 530
450 IF LEN (S$)> 10THEN PLOT 6,1:PRINT "NAME TOO LONG":GOTO 425
460 S$= S$+ "        ":J= 0
470 FOR I= AD+ 4TO AD+ 13:J= J+ 1
480 X= ASC (MID$ (S$,J,1)):POKE I,X:NEXT I
490 REM
500 REM  ## WRITE THE BLOCK BACK TO DISC ##
510 PLOT 27,4:PRINT "WRITE 0 "+ ADR$+ " 0080":PLOT 27,27
520 REM
530 REM  ## PUT END OF BASIC BACK ##
540 AD= AD+ 130
550 POKE 32941,INT (AD/ 256):POKE 32940,AD- INT (AD/ 256)* 256
560 CLEAR 100
570 PLOT 27,4:PRINT "DIR":PLOT 27,27
580 END