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 >
Text File  |  1986-09-25  |  2KB  |  92 lines

  1. {-----------------------------------------------------------
  2. {    Overlay to change printer assignments
  3. {-----------------------------------------------------------
  4. procedure    printer.set.up:
  5. begin
  6.  
  7. copy "STARTUP.FIL";
  8.  
  9.                                         redefine screen.data;
  10. record    printers;
  11.     record    printers.prn.rec;
  12.         field    printers.physical.num        2;
  13.         field    printers.width                3;
  14.         field    printers.desc                24;
  15.         endrec;
  16.     string    (##printers.prn.rec * 15);
  17.     field    printers.narrow            2;
  18.     field    printers.wide            2;
  19.     field    printers.label            2;
  20.     endrec;
  21.                                         endredef;
  22. byte    curr.user;
  23. byte    curr.drive;
  24.  
  25. external    label    entry        address ^h0005;
  26. external    word    bios.loc    address    ^h0001;
  27.  
  28.                 procedure    edit.2:
  29.                 begin
  30.                     if wk.byte > 99 then
  31.                         move 99 to wk.byte;
  32.                         fi;
  33.                     convert wk.byte to wk.str;
  34.                     edit wk.str with "Z9";
  35.                 end;
  36.  
  37.     fill printers with " ";
  38.     call read.sys;
  39.     mcall entry using 32,^hff giving ,,,curr.user;
  40.     mcall entry using 25 giving ,,,curr.drive;
  41.     mcall entry using 14,0;
  42.     mcall entry using 32,0;
  43.     open startup.file shared error standard;
  44.     move 1 to startup.key;
  45.     do
  46.         read startup.file error standard;
  47.         subtract 1 from startup.key giving wk.word;
  48.         move startup.prn.unit to wk.byte;
  49.         call edit.2;
  50.         index printers.physical.num of printers.prn.rec
  51.             with wk.word giving wk.sp;
  52.         move wk.str to @wk.sp length 2;
  53.  
  54.         convert startup.prn.width to wk.str;
  55.         index printers.width of printers.prn.rec with wk.word
  56.             giving wk.sp;
  57.         edit wk.str with "ZZ9";
  58.         move wk.str to @wk.sp length 3;
  59.  
  60.         index printers.desc of printers.prn.rec with wk.word
  61.             giving wk.sp;
  62.         move startup.prn.desc[string] to @wk.sp length ##printers.desc;
  63.  
  64.         add 1 to startup.key;
  65.         od until startup.key > 16;
  66.     close startup.file error standard;
  67.     mcall entry using 32,curr.user;
  68.     mcall entry using 14,curr.drive;
  69.  
  70.     move s.narrow.printer to wk.byte;
  71.         call edit.2;
  72.         move wk.str to printers.narrow;
  73.     move s.wide.printer to wk.byte;
  74.         call edit.2;
  75.         move wk.str to printers.wide;
  76.     move s.label.printer to wk.byte;
  77.         call edit.2;
  78.         move wk.str to printers.label;
  79.  
  80.     move "printers" to screen.name;
  81.     call get.screen.data;
  82.  
  83.     call read.sys.lk;
  84.     move printers.narrow to wk.str;
  85.     convert wk.str to s.narrow.printer;
  86.     move printers.wide to wk.str;
  87.     convert wk.str to s.wide.printer;
  88.     move printers.label to wk.str;
  89.     convert wk.str to s.label.printer;
  90.     call write.sys.unlk;
  91. end;
  92.