SP Printer Issues

 This is how printing is handled by the library
 functions. You need not follow this method except where it is
 imbedded in SuperLib metafunctions.

 The function SLS_PRN() is a SET/RETRIEVE function
 which sets and retrieves the default printer port as a string
 with the default as "LPT1". This function may be called with any
 valid printer port name as a parameter to set a new printer port
 for SuperLib usage.

 Valid values are "LPT1", "LPT2", "LPT3", "COM1",
 "COM2" - anything you could issue a SET PRINTER TO
 <cPort> with.

 Another SET/RETRIEVE function - SLS_PRNC() - points
 to the setting which determines if the printer port will be
 checked for readiness before printing. Passing it a False causes
 it to not check the printer before printing - handy in some
 network situations.

 At print time, LPT* ports are checked for readiness
 via the P_READY() function. (COM ports are not checked for
 readiness.) However, if SLS_PRNC() has been passed a .f., no
 check for readiness is done.

 P_READY() uses the .ASM function ISPRN() to check for

 If the port is not ready, the user is given
 the option to:       Try Again
                      Ignore the Warning
                      Select a Different Printer Port
                      Abort the print request

 If Abort is selected, P_READY() returns false.




ISPRN() Detects printer ready (or not) on LPT1, 2 or 3

 <lReady> => printer ready


 <nPort> is either 0, 1 or 2, corresponding to LPT1,
 LPT2 or LPT3

  if ISPRN(0)
    MSG("LPT1 is ready")
  elseif ISPRN(1)
    MSG("LPT2 is ready")
  elseif ISPRN(2)
    MSG("LPT3 is ready")

 Will not ALWAYS work reliably on a network
 (redirected) printer

 Source: ISPRN.ASM


SP Misc/Other Functions

 ISPART()       Determines if a value is part of a set
 CURD()         Return current drive letter
 SBROWS()       Determine number of rows in a box
 ISPRN()        Detects printer ready (or not) on LPT1, 2 or 3
 SBCENTER()     Centers box coordinates
 SBCOLS()       Determine number of columns in a box
 EVALQ()        Evaluates a logical condition in a string
 ENDSWITH()     Determines if a string ends with another string
 PRNTFRML()     Prints a formletter created by formletr()
 CDIR()         Change Directory
 VARLEN()       Returns length of a variable  of any type