Random software
Random hardware
Random game
Entry name:
 Disk Directory 
Publisher/Developer:

BELLCOM - Public Domain Library
(Software library)
  • Category:

    Disk utilities
  • Media format:

    Diskette
  • Programming language:

    Atari BASIC
Disk Directory Disk Directory Disk Directory Disk Directory
Listing 1
10REM***********************
11REM**
12REM*by*
13REM*RogerHumphries*
14REM***********************
15REMREVISIONDATE:84-09-31
20REM
21REMNOTE:Thebinaryloadportion
22REMofthisprogrammakesan
23REMillegaljumpintotheRev.B
24REMoperatingsystem.Itmaynot
25REMworkforotherversions!
26REMIfyouwishtoENTERbutnot
27REMRUNListedfiles,delete
28REMline4420fromtheprogram.
29REM
90GOSUB910
100GOSUB410:GOSUB610
110GOSUB510:GOTO310
200REM
201REMSubroutines
202REM
210REMSetUpFileNameArray
212J=1:FORI=3TO10:IFIN$(I,I)<>""THENF$(J,J)=IN$(I,I):J=J+1:NEXTI
214IFIN$(11,11)=""THEN218
216F$(J,J)=".":J=J+1:FORI=JTOJ+2:F$(I,I)=IN$(11+I-J,11+I-J):NEXTI
218FN$(LEN(FN$)+1)=F$
220REMThenSetUpDirectoryArray
221REC$(1,1)="":IFIN$(1,1)="*"THENREC$(1,1)=CHR$(10)
222FORI=15TO17:REC$(I,I)=CHR$(ASC(IN$(I,I))-32):NEXTI:I=1:TRAP227
223C$=F$(I,I):C=ASC(C$)
224IFC>64ANDC<91THENF$(I,I)=CHR$(C+32):I=I+1:GOTO223
225IFC$="."THENF$(I,I)=CHR$(14):I=I+1:GOTO223
226IFC>47ANDC<58THENF$(I,I)=CHR$(C-32):I=I+1:GOTO223
227REC$(2,13)=F$:D$(LEN(D$)+1)=REC$
228TRAP40000:RETURN
230REMSelectFileName
232I=OFST+VF:ERD=I*17:POSITION1,VF:?#6;D$(ERD-16,ERD);:VF=VF+DV:DV=0:IFVF<1THENVF=VM
234IFVF>VMTHENVF=1
236I=OFST+VF:ERF=I*12:F$=FN$(ERF-11,ERF):ERD=I*17:BRD=ERD-16:POSITION2,VF:?#6;F$;:FS$(3)=F$
238RETURN
240REMScreenHeader
242GRAPHICS0:POKE752,1:POSITION0,0:?"":RETURN
250REMPeelTrailingBlanksfromF$
252LF=LEN(F$):IFF$(LF)=""THENF$=F$(1,LF-1):GOTO252
254RETURN
260REMGenralDOSFunction
262XIOOP,#1,0,0,FS$:GOTO110
264XIOOP,#1,0,0,FS$:GOTO100
270REMSoundRoutine
271TONE=14:GOTO274:REMPromptTone
272TONE=4:REMWarningTone
274FORZ=1TO30:SOUND0,10,TONE,12:NEXTZ
276FORZ=39TO1STEP-1:SOUND0,10,TONE,Z/3:NEXTZ
278SOUND0,0,0,0:RETURN
280REMDelay
282FORI=1TO300:NEXTI:RETURN
290REMBlankLine
292POSITION1,19:?#6;BL$:RETURN
300REM
301REMCheckConsoleandKeys
302REM
310CON=PEEK(CONSOL):K=PEEK(KEY):STK=STICK(0)+100*(1-STRIG(0)):POKECONSOL,8:POKEKEY,255
320TRAP330:GOTO1000+K
330TRAP340:GOTO1300+CON
340TRAP310:GOTO1400+STK
400REM
401REMSetUpScreen
402REM
410GRAPHICS1:SETCOLOR2,0,0:SETCOLOR3,0,0:SETCOLOR4,0,0:C$=CHR$(142)
420POSITION0,0:?#6;C$;C$;C$;"";C$;C$;C$
430FORV=1TO16:POSITION0,V:?#6;C$;BL$;C$:NEXTV
440POSITION0,17:FORH=1TO20:?#6;C$;:NEXTH:SETCOLOR3,10,8
450RETURN
500REM
501REMDisplayDirectory
502REM
510SETCOLOR0,0,0:SETCOLOR1,0,0:SETCOLOR2,0,0:SETCOLOR4,0,0:POKE752,1:VM=16:IFS>SCRNSTHENS=1
520OFST=(S-1)*16:ERF=(OFST+1)*12:IFS=SCRNSTHENVM=NF-16*(SCRNS-1)
530?"";"FilesonDisk:";NF$;"^H^U^L^D^R^Q"
540?"FreeSectors:";FRESEC$;""
550IFSCRNS>1THEN?:?"Screen";S;"of";SCRNS;"formore";
560FORV=1TO16:I=OFST+V:ERD=I*17
570POSITION1,V:?#6;D$(ERD-16,ERD);:NEXTV:GOSUB230
580POSITION1,19:?#6;"":POSITION11,19:?#6;"":SETCOLOR0,2,12:SETCOLOR1,12,10
590POKECONSOL,8:POKEKEY,255:GOSUB271:RETURN
600REM
601REMReadDirectory
602REM
610CLOSE#1:OPEN#1,6,0,"D:*.*":NF=0:D$="":FN$="":SETCOLOR0,5,10
615POSITION6,7:?#6;"READING":POSITION5,9:?#6;"DIRECTORY"
620INPUT#1;IN$:IFIN$(5,8)="FREE"THEN640
630F$=BL$:REC$=BL$:NF=NF+1:GOSUB210:GOTO620
640NF$="":IFNF<10THENNF$=""
642NF$(LEN(NF$)+1,2)=STR$(NF)
644FRESEC$=IN$(1,3):IFFRESEC$(1,1)="0"THENFRESEC$(1,1)="":IFFRESEC$(2,2)="0"THENFRESEC$(2,2)=""
650SCRNS=INT(NF/16+0.99):REC$=BL$:FORN=NF+1TOSCRNS*16:D$(LEN(D$)+1)=REC$:NEXTN
660RETURN
900REM
901REMInitializeProgram
902REM
910MAXD=17*64:MAXF=12*64:DIMD$(MAXD),FN$(MAXF)
920DIMF$(12),FS$(31),IN$(17),NF$(2),FRESEC$(3),BL$(18),REC$(17),C$(1)
930POKE82,2:POKE83,39:POKE752,1:S=1:VF=1:DV=0
940CONSOL=53279:KEY=764:HDR=240:DELAY=280
950BL$="":FS$="D:"
960CLOSE#2:OPEN#2,4,0,"K:"
990RETURN
1014DV=-1:GOSUB230:GOTO310
1015DV=+1:GOSUB230:GOTO310
1128GOSUB290:?"Locking==>";FS$:GOSUBDELAY:D$(BRD,BRD)=CHR$(10):OP=35:GOTO262
1139GOSUB290:?"Unlocking==>";FS$:GOSUBDELAY:D$(BRD,BRD)="":OP=36:GOTO262
1142DV=-1:GOSUB230:GOTO310
1143DV=+1:GOSUB230:GOTO310
1168GOTO3410
1175GRAPHICS0:END
1185GOTO2000
1186GOTO3310
1301RUN
1303GOSUB290:S=S+1:VF=1:GOTO110
1305DV=+1:GOSUB230:GOTO310
1306GOTO4000
1413DV=+1:GOSUB230:GOTO310
1414DV=-1:GOSUB230:GOTO310
1515GOTO4000
2000REM
2002REMHelpMenu
2100GOSUBHDR:POSITION0,1:?""
2110?"orSelectfile(down)"
2115POKE82,8:?:?"Selectfile(up)"
2120?:?"Loadandrunfile"
2125?:?"Displaynextscreen"
2127POKE82,1:?:?"+Rerun(fornewdisk)"
2128?:?",Selectandrunfile"
2130POKE82,8:?:?"^=CTRLkey"
2135?"^HHelp(displaythispage)"
2140?"^LLockfile"
2145?"^UUnlockfile"
2150?"^DDeletefilefromdisk"
2155?"^RRenamefile"
2160?"^QQuit(exittoBasic)"
2170POKE82,2:POSITION6,23:?"PressforDirectory";:GOSUB271
2180GET#2,C:IFC=155THENGOSUB410:GOTO110
2190GOTO2180
3300REM
3301REMDeleteFile
3302REM
3310GOSUB290:SETCOLOR4,3,4:SETCOLOR2,3,4:?"PressYtodelete==>";FS$:GOSUB271
3315GET#2,C:IFC=89THENTRAP3350:OP=33:GOTO264
3320?"DELETEcancelled":GOSUBDELAY:GOTO110
3350IFPEEK(195)<>167THEN110
3360?"FileisLOCKED"
3365?"PressYtodelete":GOSUB272:GET#2,C:IFC=89THENXIO36,#1,0,0,FS$:OP=33:GOTO264
3370GOTO3320
3400REM
3401REMRenameFile
3402REM
3410GOSUB290:?"Inputnewnamefor==>";F$:?"";
3420GOSUB271:POKE752,0:INPUTIN$:POKE752,1:?
3430GOSUB250:FS$(3)=F$:F$=IN$:IFIN$(1,2)="D:"THENF$=IN$(3)
3440LF=LEN(FS$):FS$(LF+1)=",":FS$(LF+2)=F$
3450TRAP3460:OP=32:GOTO264
3460?"FileisLOCKED"
3465?"PressYtorename":GOSUB272:GET#2,C:IFC=89THENXIO36,#1,0,0,FS$:OP=32:GOTO264
4000REM
4001REMLOADandRUNprogram
4002REM
4100IFF$(1,3)="DOS"ORF$(1,3)="DUP"THENDOS
4120TRAP4130:GOSUBHDR:?:?"Loading==>";FS$:RUNFS$
4130IFPEEK(195)<>21THEN4230
4200TRAP4230:CLOSE#1:OPEN#1,4,0,FS$:GET#1,BYT1:GET#1,BYT2:IFBYT1<>255ORBYT2<>255THEN4300
4210?:?""
4220CLOSE#1:OPEN#1,4,0,FS$:X=USR(5576)
4230?:?"":GOTO2170
4300GOSUB250:LF=LEN(F$):IFF$(LF-2,LF)<>"DOC"THEN4400
4310?:?"":?:?"Presstostopreading":?:?"Press-topause/restart"
4315POKE82,0:?
4320CLOSE#1:OPEN#1,4,0,FS$:TRAP4340
4330GET#1,C:PUT#6,C:IFPEEK(764)=28THENPOKE764,255:?:?:GOTO2170
4335GOTO4330
4340POKE82,2:?:?:?"End-of-FileEncountered":?:GOTO2170
4400?:?""
4410POSITION2,15:?"ENTER";CHR$(34);FS$;CHR$(34)
4415REM***Deleteline4420toLOADfilebutnotRUNit
4420POSITION2,15:?"POKE764,12:":POSITION2,18:?"RUN"
4430POSITION2,9:?"":?""
4440POKE752,0:POSITION2,13:POKEKEY,12:NEW	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!