home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1992-03-22 | 3.4 KB | 93 lines |
- Set Buffer 200
- _MAX=1500
- Dim NAME$(_MAX) : Rem Enough for 500 names
- 'Follow F$,A$,ST
- Screen Open 1,640,256,2,Hires : Paper 0 : Clw
- Palette ,$FF
- Global ST,NUM,NAME$()
- Reserve As Work 10,264*20 : Rem Enough for 20 lcat pushes
- ST=Start(10)-264
- Input "Dir :";ROOT$
- Proc RECURSIVE[ROOT$]
- Print : Print "Sorting..."
- Sort NAME$(0)
- Dec NUM
- LO=_MAX-NUM
- Clw
- For I=LO To LO+NUM
- Print NAME$(I); : Locate 50,
- Proc IDENT[NAME$(I)]
- Inc LINE
- If LINE mod 20=0 Then Wait Key
- Next I
- End
- Procedure RECURSIVE[F$]
- D$=Right$(F$,1)
- If Not((D$=":") or(D$="/")) Then F$=F$+"/"
- A$= Extension_10_00FC(F$)
- Cline : Centre "Scanning: "+F$ : Print : Cup
- NAME$(NUM)=F$ : Inc NUM
- Do
- A$= Extension_10_010E
- Exit If A$=""
- If Extension_10_011E >0
- D$=Right$(F$,1)
- ST=ST+264
- Extension_10_047E ST
- Proc RECURSIVE[F$+A$]
- Extension_10_048E ST
- ST=ST-264
- End If
- If Extension_10_011E <0
- NAME$(NUM)=F$+A$ : Inc NUM
- End If
- Loop
- End Proc
- Procedure IDENT[S$]
- ' Doesn't handle national chars in ASCII-files...
- ' Currently no real support for keymaps in AMOS
- LAN= Extension_10_0182(S$)
- LON=30 : _A=-1 : If LAN<LON Then Print "Length < 30 bytes" : Pop Proc
- Open In 1,D$+S$ : A$=Input$(1,LON) : Close 1 : T=Leek(Varptr(A$))
- T$=Left$(A$,4)
- If Instr(A$,"AMOS Basic V")<>0 Then Print "AMOS SOURCE CODE FILE" : Pop Proc
- If Left$(A$,3)="ZOO" Then Print "ZOO ARCHIVE FILE" : Pop Proc
- For I=1 To Len(A$) : A=Asc(Mid$(A$,I,1))
- If(A<20) or(A>126)
- If Not(A=9 or A=10 or A=13)
- _A=0
- End If
- End If
- Next I
- If _A Then Print "ASCII FILE" : Pop Proc
- If T=$E3100001 Then Print "ICON FILE" : Pop Proc
- If T=$3F3 Then Print "EXE FILE" : Pop Proc
- If T=$3E7 Then Print "LINKER OBJECT FILE" : Pop Proc
- If T=$464F524D Then Print "IFF FILE - ";Mid$(A$,9,4) : Pop Proc
- If T=$F34C0012 Then Print "'.info' FILE" : Pop Proc
- If T=$400002 Then Print "WB2.0 PATTERN FILE" : Pop Proc
- If(T and $FFFFFFF8)=$F000000 Then Print "FONT FILE " : Pop Proc
- If Mid$(A$,3,3)="-lh"
- Print "LHARC ARCHIVE FILE (";Mid$(A$,4,3);")"
- Pop Proc
- End If
- If T=$504B0304 Then Print "ZIP ARCHIVE FILE" : Pop Proc
- If T=$12031990 Then Print "AMOS PACKED IFF PIC" : Pop Proc
- If T$="AmSp" Then Print "AMOS .ABK FILE SPRITE" : Pop Proc
- If T$="AmIc" Then Print "AMOS .ABK FILE ICON" : Pop Proc
- If T$="AmBk" Then Print "AMOS .ABK FILE ";Mid$(A$,13,8) : Pop Proc
- If T=$8080C00A Then Print "WORD PERFECT .DOC FILE" : Pop Proc
- If T$="PP20" Then Print "PowerPacked DATA FILE" : Pop Proc
- If(T and $FFFF0000)=$23690000 Then Print "Vector font (PPM?)" : Pop Proc
- If(T and $FF)=$40 Then Print "SuperBase .SBF file" : Pop Proc
- If T=$46454446 Then Print "SuperBase .SBV file" : Pop Proc
- If(T and $FFFFFF00)=$53425000 Then Print "SuperBase .SBP file" : Pop Proc
- If(T=0) and(LAN mod 512=0) Then Print "Possible SuperBase data file" : Pop Proc
- If T=$46433134 or T=$534D4F44 Then Print "Future Composer MODULE" : Pop Proc
- If T$="SYNT" Then Print "Possible SYNTHsound instrument (FC1.4)" : Pop Proc
- If(T$="MMD0") or(T=$4D454404) Then Print "MED MODULE" : Pop Proc
- If T=$1000000 Then Print "ADPro C.file" : Pop Proc
- If(T=$440001) or(T=$80001001) Then Print "CG-font file" : Pop Proc
- If T=$C000000 Then Print "NComm cfg-file" : Pop Proc
- Print "UNKNOWN (header=";Hex$(T);")"
- End Proc