home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol079
/
access.pli
< prev
next >
Wrap
Text File
|
1984-04-29
|
1KB
|
84 lines
access:
proc(p);
/* root module for update and sale */
dcl
p fixed;
%replace
true by '1'b,
false by '0'b;
%include 'attrib.dcl';
%include 'key.dcl';
dcl
update entry,
sale entry;
dcl
data file;
open_data:
proc ext;
open file(data) direct update env(f(max_siz));
end open_data;
close_data:
proc ext;
close file(data);
end close_data;
input_key:
proc(rec) ext;
/* read access key from keyboard */
dcl
rec char(max_siz),
hdr_out entry(fixed),
att_in entry(fixed,char(max_siz))
returns(bit),
att_err entry;
do while(true);
rec = '';
call hdr_out(1);
if att_in(1,rec) then
return;
call att_err();
end;
end input_key;
locate_key:
proc(rec) returns(bit) ext;
/* locate access key in key list, read record */
dcl
rec char(max_siz);
do key_adr = key_hdr repeat(key_lst)
while(key_adr ^= null());
if key_val = rec then
do;
read file(data) into(rec)
key(key_loc);
return(true);
end;
end;
put edit('Not Found: ',substr(rec,1,max_chr),'')
(column(4),2a,skip,a);
return(false);
end locate_key;
alter_rec:
proc(rec) ext;
/* alter current record */
dcl
rec char(max_siz);
write file(data) from(rec) keyfrom(key_loc);
end alter_rec;
/* dispatch to update or sale */
if p = 0 then
call update();
if p = 1 then
call sale();
end access;