typedef struct {
	short pagelength;
	short * tape;
	       } channel_tape;

typedef struct printobj {
		short nlpt;
		FILE * prn;
		char * lpt;
		boolean (*open)(struct printobj * pr);
		int     (*print)(struct printobj * pr, char * fmt, ...);
		int     (*flush)(struct printobj * pr);
		void    (*newline)(struct printobj * pr);
		boolean (*ready)(struct printobj * pr);
		boolean (*init)(struct printobj * pr,boolean diag);
		void    (*close)(struct printobj * pr);
		void    (*final)(struct printobj * pr);
		void    (*write_translated)(unsigned char * str, struct printobj * pr);
		void    (*eject)(struct printobj * pr);
		boolean (*is_virtual)(void);
		void    (*clear)(struct printobj * pr);
		short        current_line;          /* current line on page */
		channel_tape * form;
	       } printobj;

#define PRINT_LENGTH 132

