Xinu7/src/cmd/download/OLD/eload/h/eload.h
/* eload.h - disable, enable, halt, restore, isodd */
/* Symbolic constants used throughout */
typedef char Bool; /* Boolean type */
#define FALSE 0 /* Boolean constants */
#define TRUE 1
#define NULL (char *)0 /* Null pointer for linked lists*/
#define NULLCH (char)0 /* The null character */
#define NULLSTR "" /* Pointer to empty string */
#define MININT 0100000 /* minimum integer (-32768) */
#define MAXINT 0077777 /* maximum integer */
#define LOWBYTE 0377 /* mask for low-order 8 bits */
#define HIBYTE 0177400 /* mask for high 8 of 16 bits */
#define LOW16 0177777 /* mask for low-order 16 bits */
#define SP 6 /* reg. 6 is stack pointer */
#define PC 7 /* reg. 7 is program counter */
#define PS 8 /* proc. status in 8th reg. loc */
#define DISABLE 0340 /* PS to disable interrupts */
/* Universal return constants */
#define OK 1 /* system call ok */
#define SYSERR -1 /* system call failed */
#define EOF -2 /* End-of-file */
#define TIMEOUT -3 /* time out */
/* Miscellaneous utility inline functions */
#define isodd(x) (01&(int)(x))
#define disable(ps) asm("mfps ~ps");asm("mtps $0340")
#define restore(ps) asm("mtps ~ps") /* restore interrupt status */
#define enable() asm("mtps $000")/* enable interrupts */
#define halt() asm("halt") /* machine halt instruction */
#define CDEVICE 0177560 /* Console device address */
#define EDEVICE 0174440 /* DEQNA device address */
#define ETHINTV 0200 /* DEQNA interrupt vector */
#define ACK 'A' /* Protocol positive Acknowledg.*/
#define NACK 'N' /* Protocol neg. acknowledgment */
#define QACK 'Q' /* Protocol "am quiting" ack. */
#define kputc(x,c) while((x->ctstat&SLUREADY)==0) ; x->ctbuf=c