Program PascalDirectory;
{ Driver program to demonstrate procedure directory()
All externals in Pascal/Z Users Group Library "ASL.REL"
translated to Pascal/Z - 07/10/82 (rep)
added peek(), poke(), call(), and additional comments.
original program by Daniel S. Hunt
822 Green Valley
Newbury Park, CA. 91320
as published in BYTE, June 1982, page 497
}
type byte = 0..255;
strng12 = packed array [1..12] of char;
{ peek() returns the contents of the memory location given }
{ by address. the value returned is a single byte integer. }
function peek ( address: integer ): byte;
external;
{ poke() stores the low-order eight bits of abyte }
{ at the memory location pointed to by address. }
procedure poke ( address: integer; abyte: byte );
external;
{$iDIRCTRY.P }
{ Simple driver for procedure directory. Constructs a string of }
{ 11 chars = '?'. First char is the binary value of the requested }
{ drive unit. }
procedure list;
var
title : strng12;
ch : char;
i : byte;
function toupper ( ch: char ): char; external;
begin
title := '0???????????'; { 12 chars. 1st char = drive unit }
{
Example string to search for all *.COM files on logged in dr unit...
title := '0????????COM';
NOTE: MUST be in uppercase!
}
write ( 'LIST DISK DIRECTORY: UNIT "A" OR "B"? ' );
readln ( ch );
ch := toupper(ch);
{ construct the proper binary unit identifier:
0 = logged in drive unit
1 = drive unit 'A'
2 = drive unit 'B'
}
title[1] := chr( ord(ch) - ord('A') + 1 );
writeln;
directory ( title );
writeln
end{ list };
{$C+}{ enable control-c keypress checking in main program }