V9/jerq/include/muxpcbs.h
struct intrpcb {
int initpsw;
int (*initpc)();
int initsp;
int psw;
int (*pc)(); /* don't ask */
int sp;
int lower;
int upper;
int ap;
int fp;
int reg[9]; /* 9 user registers */
int blkmv;
};
#define PCB_BASE ((struct intrpcb *)0x71c050)
#define proc_pcb (PCB_BASE[0]) /* process and interrupt exceptions */
#define stack_pcb (PCB_BASE[1]) /* stack exceptions */
#define host_pcb (PCB_BASE[2]) /* RS-232 input interrupts */
#define out_pcb (PCB_BASE[3]) /* RS-232 output interrupts */
#define pioh_pcb (PCB_BASE[4]) /* parallel interface */
#define key_pcb (PCB_BASE[5]) /* keyboard interrupts */
#define msvid_pcb (PCB_BASE[6]) /* mouse buttons and 60Hz vert. retrace */
#define piol_pcb (PCB_BASE[7]) /* stray interrupts */
#define int_pcb (PCB_BASE[8]) /* stray interrupts */
#define main_pcb (PCB_BASE[9]) /* muxterm itself (short-lived) */
#define intrentry(intr, entry)\
asm(" .text");\
asm(" .globl intr");\
asm("intr:");\
asm(" call &0,entry");\
asm(" RETPS");
/*
* psw macros from queue.c.
*/
#define pswmax() asm(" PUSHW %psw ");\
asm(" ORW2 &0x1e000,%psw ");\
asm(" TSTW %r0 ")
#define pswback() asm(" POPW %psw ");\
asm(" TSTW %r0 ")