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
/
CPM
/
PARASOL
/
VIDEOSTO.ARK
/
PRINTERS.LIB
< prev
next >
Wrap
Text File
|
1986-09-25
|
2KB
|
92 lines
{-----------------------------------------------------------
{ Overlay to change printer assignments
{-----------------------------------------------------------
procedure printer.set.up:
begin
copy "STARTUP.FIL";
redefine screen.data;
record printers;
record printers.prn.rec;
field printers.physical.num 2;
field printers.width 3;
field printers.desc 24;
endrec;
string (##printers.prn.rec * 15);
field printers.narrow 2;
field printers.wide 2;
field printers.label 2;
endrec;
endredef;
byte curr.user;
byte curr.drive;
external label entry address ^h0005;
external word bios.loc address ^h0001;
procedure edit.2:
begin
if wk.byte > 99 then
move 99 to wk.byte;
fi;
convert wk.byte to wk.str;
edit wk.str with "Z9";
end;
fill printers with " ";
call read.sys;
mcall entry using 32,^hff giving ,,,curr.user;
mcall entry using 25 giving ,,,curr.drive;
mcall entry using 14,0;
mcall entry using 32,0;
open startup.file shared error standard;
move 1 to startup.key;
do
read startup.file error standard;
subtract 1 from startup.key giving wk.word;
move startup.prn.unit to wk.byte;
call edit.2;
index printers.physical.num of printers.prn.rec
with wk.word giving wk.sp;
move wk.str to @wk.sp length 2;
convert startup.prn.width to wk.str;
index printers.width of printers.prn.rec with wk.word
giving wk.sp;
edit wk.str with "ZZ9";
move wk.str to @wk.sp length 3;
index printers.desc of printers.prn.rec with wk.word
giving wk.sp;
move startup.prn.desc[string] to @wk.sp length ##printers.desc;
add 1 to startup.key;
od until startup.key > 16;
close startup.file error standard;
mcall entry using 32,curr.user;
mcall entry using 14,curr.drive;
move s.narrow.printer to wk.byte;
call edit.2;
move wk.str to printers.narrow;
move s.wide.printer to wk.byte;
call edit.2;
move wk.str to printers.wide;
move s.label.printer to wk.byte;
call edit.2;
move wk.str to printers.label;
move "printers" to screen.name;
call get.screen.data;
call read.sys.lk;
move printers.narrow to wk.str;
convert wk.str to s.narrow.printer;
move printers.wide to wk.str;
convert wk.str to s.wide.printer;
move printers.label to wk.str;
convert wk.str to s.label.printer;
call write.sys.unlk;
end;