Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_1_19910112 - 5-galaxy/lsrmac.mac
There are no other files named lsrmac.mac in the archive.
	UNIVERSAL LSRMAC - COMMON DEFINITIONS USED THROUGHOUT LSRSPL

COMMENT ^

	BILLY BROWN
	UNIVERSITY OF TEXAS AT AUSTIN
	JUNE, 1983


FILES NEEDED FOR THE SPOOLER:

	LSRMAC.MAC	THIS ONE
	LSRSPL.MAC	IS INTERFACE
	LSRGLX.MAC	GALAXY INTERFACE

	IS.C		IMAGEN SUPPLIED SPOOLER
	PC.C		IMAGEN SUPPLIED PACKET HANDLER
	IO.MAC		IMAGEN SUPPLIED LOW LEVEL IO ROUTINES
	CLIB.REL	C LIBRARY ROUTINES

TO LOAD:

	@LINK
	*IS, PC, IO, LSRSPL
	*CLIB/GO


THE CARD PUNCH QUEUE (OBJECT TYPE 5) IS USED TO SERVICE THE LASER PRINTER.
THIS DOES NOT REQUIRE ANY CHANGES TO GALAXY, BUT THINGS LOOK BETTER TO THE
USER IF SOME MODS ARE MADE.

THE FOLLOWING CHANGES ARE RECOMMENDED:

	QSRQUE.MAC	OUTPUT STRING FOR NOTIFICATION MESSAGE
	QDRDSP.MAC	OUTPUT STRING FOR STATUS MESSAGE FOR "INFO OUTPUT"
	OPRCMD.MAC	KEYWORD CHANGES IN OPR COMMAND TABLES
	ORNMAC.MAC	KEYWORD CHANGES IN OPR COMMAND TABLES
	GLXMAC.MAC	CHANGE SOME TEXT STRINGS
	QSRMAC.MAC	DEFINE SOME NEW BITS

	EXECCA.MAC	LASER-PRINT COMMAND ADDITION TO THE EXEC
	EXECQU.MAC	LASER-PRINT COMMAND
	EXECGL.MAC	NEW GLOBAL EXEC DEFINITIONS


THESE ARE NOT LARGE MODIFICATIONS.
CHANGES TO IS, PC, AND IO ARE ALSO NEEDED. THESE ARE SMALL TOO.
THE SPOOLER EXPECTS THE FOLLOWING CHANGES IN THE FP BLOCK OF THE EXTERNAL
QUEUE ENTRY.  IF THESE CHANGES ARE NOT MADE, THE SPOOLER WILL NOT PROCESS
ASCII FILES: (LIFTED FROM QSRMAC.MAC)

	!=======================================================!
.FPLEN	! LENGTH OF FILE-PARAM AREA !				!
	!-------------------------------------------------------!
.FPINF	!FILE FMT !PAPR FMT!SPACING !    FLAGS    !   COPIES    !
	!-------------------------------------------------------!
.FPFST	!         STARTING INFORMATION 			        !
	!-------------------------------------------------------!
.FPFR1	!         FORMWIDTH         !       FORMLENGTH          !
	!-------------------------------------------------------!
.FPFR2	!         TOPMARGIN         !       LEFTMARGIN          !
	!=======================================================!

FILE FORMAT:

	.FPASC==1		ASCII FORMAT
	.FPFFO==2		FORTRAN .DAT FORMAT (NOT IMPLIMENTED YET)
	.FPFAI==4		TEKTRONIX FORMAT (NOT IMPLIMENTED YET)
	.FPFIM==7		IMPRESS FORMAT

NEW FLAGS IN .FPINF:

	FP.REV==1B24		PAGEREVERSE YES
	FP.COL==1B25		PAGECOLLATION YES
	FP.2PG==1B26		FORMSPERPAGE 2


SUPPORT FOR ASCII FILES ALSO REQUIRES EXEC CHANGES.
IF EXEC MODS ARE NOT MADE, THE FILE FORMAT CODE WILL BE ZERO, WHICH
DEFAULTS TO IMPRESS FORMAT.

IMPRESS FILES MUST BEGIN WITH A DIGIT TO PASS A "GOOD FORMAT" TEST.
USER HEADERS ON ASCII FILES ARE NOT SENT TO THE PRINTER.
	TEXT UTILITIES

A GALAXY TEXT UTILITY LOOK-ALIKE IS USED.  THE FORMAT IS:

	TEST (ROUTINE,<STRING>)

WHERE ROUTINE IS THE SUBROUTINE WHICH WILL RECEIVE THE CHARACTERS
FROM THE STRING IN AC1.  THIS ROUTINE MAY MESS WITH AC1-AC16 AND
SHOULD RETURN WITH A POPJ P,.  

THE STRING MAY USE CODES OF THE FORM "%Xn" WHERE "n" IS 1..5 TO SPECIFY
AC1..AC5 AND "X" IS ONE OF THE FOLLOWING:

	"U"	USER NAME STRING FOR USER NUMBER IN AC.
	"F"	FILE NAME FOR JFN IN AC.
	"N"	DECIMAL NUMBER IN AC.
	"O"	OCTAL DUMPER IN AC.
	"6"	SIXBIT WORD IN AC.
	"T"	TIME FOR UDT IN AC.
	"D"	DATE FOR UDT IN AC.
	"E"	ERROR STRING FOR ERROR NUMBER IN AC.
	"S"	STRING BEGINNING AT ADDRESS IN AC.
	"_"	ADD CRLF AND QUIT
	"%"	"%"

A CRLF IS NOT ADDED TO THE END OF THE STRING UNLESS %_ IS USED.


		WTO'S

WTO'S HAVE THE FORMAT:

	WTO (<FIRST STRING>,<SECOND STRING>)

THE FIRST STRING MUST EXIST, THE SECOND DOES NOT HAVE TO.
WTO, WTOJ, LOG, AND ACK ARE DEFINED. WTOR IS NOT.
^
; AC DEFINITIONS

F==0				;FLAG WORD
A==1				;GENERAL ACS
B==2
C==3
D==4
P1==10
P2==11
P3==12
P==17				;STACK POINTER


; FLAGS

F%UP==  1B0			;DEVICE IS STARTED
F%JOB== 1B1			;JOB IS ASSIGNED
F%HDR== 1B2			;JOB CAN'T BE REQUEUED OR ABORTED
F%ABT== 1B3			;JOB HAS BEEN ABORTED
F%REQ== 1B4			;JOB HAS BEEN REQUEUED
F%OFF== 1B5			;DEVICE IS OFF LINE

F%F1==  1B18			;LOCAL FLAGS
F%F2==  1B19
F%F3==  1B20


DEFINE TEXT (X1,X2) <		;TEXT UTILITY

	CALL TEXT.
	 SKIPA
	 Z X1
	 SKIPA
	 [ASCIZ \X2\]
	>

DEFINE WTO (X1,X2) <		;WRITE TO OPERATOR

	CALL .WTO.
	 SKIPA
	 [ASCIZ \X1\]
	 SKIPA
IFB  <X2>, <0>
IFNB <X2>, <[ASCIZ \X2\]>
	>

DEFINE ACK (X1,X2) <		;ACKNOWLEDGE OPRATOR

	CALL .ACK.
	 SKIPA
	 [ASCIZ \X1\]
	 SKIPA
IFB  <X2>, <0>
IFNB <X2>, <[ASCIZ \X2\]>
	>

DEFINE WTOJ (X1,X2) <		;WRITE TO OPERATOR - JOB MESSAGE

	CALL .WTOJ.
	 SKIPA
	 [ASCIZ \X1\]
	 SKIPA
IFB  <X2>, <0>
IFNB <X2>, <[ASCIZ \X2\]>
	>

DEFINE LOG (X1,X2) <		;WRITE TO OPERATOR - LOG MESSAGE

	CALL .LOG.
	 SKIPA
	 [ASCIZ \X1\]
	 SKIPA
IFB  <X2>, <0>
IFNB <X2>, <[ASCIZ \X2\]>
	>

	END