home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ENTERPRS
/
CPM
/
UTILS
/
S
/
TRANS12C.LBR
/
TRANS-03.INC
< prev
next >
Wrap
Text File
|
2000-06-30
|
2KB
|
79 lines
(* module 3 *)
procedure SearchFileCPM( FileName: Str20; var Error: integer; First: boolean );
var
I,J: integer;
begin
BDos(SetDMAF,addr(CPM_Buf));
ConvertName(FileName,CPM_FCB.Name,CPM_FCB.Extention);
CPM_FCB.DriveCode:= CPM_Drive + 1;
CPM_FCB.Extent:= 0;
CPM_FCB.CR:= 0;
if First then
I:= BDos(SearchF,addr(CPM_FCB))
else
I:= BDos(SearchN,addr(CPM_FCB));
if (I = $FF) then
Error:= EODirectory
else
begin
Error:= 0;
I:= (((I and 3) * SizeCPM_FCB) + 1);
for J:= 0 to (NameSize + TypeSize) do
mem[addr( CPM_FCB ) + J]:= mem[ addr( CPM_Buf[I]) + J];
end;
end;
procedure DirCPM;
var
ErrorCode,
Count,
I,N: integer;
FileName: Str20;
begin
BiosSelect(CPM_Drive, First);
Count:= 0;
ClrScr;
writeln;
write('Dir Mask: ');
readln(FileName);
writeln;
SearchFileCPM(FileName,ErrorCode,First);
if (ErrorCode = EODirectory) then
begin
write('No File, ');
Continue;
end
else
begin
repeat
if ((Count mod 4) = 0) then
writeln
else
write(' : ');
write(CPM_DriveCh,':');
for I:= 1 to NameSize do
write(CPM_FCB.Name[I]);
write('.');
for I:= 1 to TypeSize do
write(CPM_FCB.Extention[I]);
Count:= Count + 1;
SearchFileCPM(FileName,ErrorCode,Next);
until (ErrorCode = EODirectory) or Break;
writeln;
writeln;
writeln('File Count: ',Count);
Continue;
end;
end;
(* end module 3 *)