/*---------------------------------------------------------* | Author: Maurizio Loreti, aka MLO or I3NOO. | | Address: University of Padova - Department of Physics | | Via F. Marzolo, 8 - 35131 PADOVA - Italy | | Phone: (39)(49) 844-313 FAX: (39)(49) 844-245 | | E-Mail: LORETI at IPDINFN (BITNET); or VAXFPD::LORETI | | (DECnet) - VAXFPD is node 38.257 i.e. 39169; or | | LORETI@PADOVA.INFN.IT (INTERNET). | | Home: Via G. Donizetti 6 - 35010 CADONEGHE (PD) - Italy | *---------------------------------------------------------*/ /** | Printer port constants **/ #define PORT_NAME "pf.port" #define INIT_DELAY 300 /** | Constants to be used in printer initialisation **/ #define PORTRAIT 0 /* Orientation */ #define LANDSCAPE 1 #define ROMAN 0 /* Style */ #define ITALIC 1 #define P10CPI 0 /* Pitch & Spacing */ #define P12CPI 1 #define P16_67CPI 2 #define P20CPI 3 #define P24CPI 4 #define PROPORTIONAL -1 #define COURIER 3 /* Font */ #define GOTHIC 6 #define TIMES 4101 #define DRAFT_Q 1 /* Quality */ #define LETTER_Q 2 /** | Other #define's **/ #define VERSION 2.10 /* Guess what is this ... */ #define LAST_CHANGE 910625 #define REVISION 33 /* Library revision (Kickstart 1.2) */ #define MAX_FILES 50 /* Maximum number of selected files */ #define DIR_MAX (DSIZE+1) /* Directory names size */ #define FIL_MAX (FCHARS+1) /* File names size */ #define TOT_MAX (DSIZE+FCHARS+2) #define GAD_X 50 /* Left edge (all gadgets) */ #define GAD_Y0 30 /* Top edge (upper gadget) */ #define GAD_DY 20 /* Delta Y between gadgets */ #define LINE_LENGTH 256 /* Input line buffer length */ #define OUTPUT_LENGTH 80 /* Various parameters for the 2-page */ #define SIDE_LENGTH 3 /* mode: output text length, width */ #define SEP_LENGTH 5 /* of the blank borders, space */ #define PAGE_LENGTH 55 /* between pages on sheet, ... */ #define TOTAL_LENGTH (OUTPUT_LENGTH + 2 * SIDE_LENGTH) #define BUFFER_SIZE (OUTPUT_LENGTH * PAGE_LENGTH) #define ESC '\x1B' /* Special characters */ #define FORM_FEED '\x0C' #define H_LINE '\xC4' /* Semigraphic characters (PC-8) */ #define V_LINE '\xB3' #define NE '\xBF' #define SE '\xD9' #define SW '\xC0' #define NW '\xDA' #define UP 1 /* Internal flags */ #define DOWN 2 #define SINGLE_PAGE 1 #define LEFT_PAGE 2 #define RIGHT_PAGE 3 #define BLUE_PEN 0 /* Workbench defaults */ #define WHITE_PEN 1 #define BLACK_PEN 2 #define RED_PEN 3 /** | Structures **/ typedef struct sPageBuffer { /* Page buffer pointers (2-p mode) */ char *line[PAGE_LENGTH]; } PageBuffer; typedef union uPrinterIO { /* Exec I/O structure (printer) */ struct IOStdReq ios; struct IODRPReq iod; struct IOPrtCmdReq iop; } PrintIO; /** | ANSI prototypes **/ int Ask(char *pTitle, int nText, char *Text[]); Boolean CheckBreak(void); void CheckDefaults(void); void Cleanup(int code); void ClearPageBuffer(void); void ClearThisPage(void); void Detab(char *buffer, int length); void DoOutput(char *FileName); void DoubleLine(char *left, char *right); void EjectPage(void); void ErrMes(char *mForm, ...); void ExitProgram(void); void FlushBuffers(void); void Header(int type); void InitPrinter(void); void InterLine(void); void *LibOpen(char *Name, long Rev); void OutLine(void); void ResetPrinter(void); void SendBuffer(char *buffer); void SendToPrinter(char *fmt, ...); void SetSpecialMode(void); char **Setup(int *pArgc, char **argv); void SetupWB(void); void Syntax(void); void windowOff(void);