home *** CD-ROM | disk | FTP | other *** search
-
- AN AUTUMN'86 CLIPPER PROGRAM
- FOR
- NOVELL ADVANCED NETWARE 286 2.0
- SPOOL, QUEUE, & PRINTER CONTROL
-
-
- (It is a trivial matter to adapt this program for Dbase III,
- Clipper Winter '85, Advanced Netware 86, or Netware 86 4.61b)
-
-
- Released into the public domain 02/26/87 by Henry J. Franzoni III.
-
-
- Clipper is a trademark of Nantucket, Inc.
- Dbase III is a trademark of Ashton-Tate, Inc.
- Advanced Netware 286, Advanced Netware 86, and Netware 86 are
- trademarks of Novell, Inc.
-
-
- This program requires enough memory to run programs
- from within Clipper (or from within Dbase III). I use the
- Autumn '86 environmental variable CLIPPER to set the size of
- the program run space. I used a setting of R=128 for this.
- The program uses environmental variables for some other things
- as well. In the Network system login script, which is much like
- a batch file, I have two lines like this:
-
- SET STA="%STATION"
-
- SET USER="%LOGIN_NAME"
-
- These function much like the batch file commands they are
- similar to. The variable STA becomes set to the logical station
- number of the just-logged-in terminal. The variable USER
- becomes set to the login name of the person logging in. Make sure
- there is enough room in your environmental space for this.
-
- The following two lines appear in the beginning of
- PROC PRINTSET in order to load the Clipper variables of the same
- names.
-
- STOR GETE("STA") TO STA
-
- STOR GETE("USER") TO USER
-
- The function GETE() is in the Extenddb.prg file enclosed
- with the Autumn '86 compiler, and was placed in the public
- domain by Tom Rettig Associates.
-
- There are other ways to determine the station number
- of the requesting terminal using one of the services available
- through INT21H, but I won't discuss that here.
-
- The procedure printset as is is written to be called like
- this:
- DO PRINTSET
-
- With a slight change to the first two lines, the procedure
- can be called with two parameters, the row and column, like this:
-
- DO PRINTSET WITH 20,0
-
- I leave it to you to do this if you wish, bear in mind that
- passing parameters below row 20 and left of column 0 will require
- some program modification.
-
- The program is designed for a network with two printers,
- since that is what I have. An IBM Proprinter is printer 0,
- and an Epson LX-80 is printer 1. Once again, it should be easy to
- modify this for any number of network printers. The control codes
- for the printers are in the procedure CTLCODES.
-
- (IBM is a trademark of International Business Machines)
- (Epson LX-80 is a trademark of Epson America,Inc.)
-
- Make sure that the Novell utilities Q.EXE, SPOOL.EXE,
- and ENDSPOOL.EXE are available in search directories in the
- current mapping. (Very similar to DOS PATH commands). Usually
- these are in the SYS:PUBLIC directory.
-
- Procedures in the file PRINTCTL.PRG:
-
- 1) PRINTSET - Main program
- 2) QUEUE - Queue control subroutine
- 3) SPOOL - Spooler control subroutine
- 4) CTLODES - Special printer control codes subroutine
- 5) ASKL - Asks a logical (Y/N) question
- 6) ASK2 - Asks a multiple choice question
- 7) BLOCKCLR - Clears a four line x 80 character block
-
-
- Please feel free to improve on this program. I would
- appreciate any feedback via this BBS or send info to:
-
- 65 Nassau St. Apt. 10c
- New York, N.Y. 10038
-
-
- Thanks,
-
- HENRY J. FRANZONI III