1*31087Sminshall /* 2*31087Sminshall * Routines to maintain the Operator Information Area. 3*31087Sminshall */ 4*31087Sminshall 5*31087Sminshall #include "oia.h" 6*31087Sminshall 7*31087Sminshall OIA OperatorInformationArea; 8*31087Sminshall 9*31087Sminshall static int 10*31087Sminshall Insert, 11*31087Sminshall SystemLocked, 12*31087Sminshall PWait, 13*31087Sminshall TWait, 14*31087Sminshall OnlineA, 15*31087Sminshall Ready3274, 16*31087Sminshall MyJob; 17*31087Sminshall 18*31087Sminshall #define X_AREA_SYSTEM 0xc6, "\xb2\xb8" 19*31087Sminshall #define X_AREA_CLOCK 0xc6, "\xf2\xf3" 20*31087Sminshall #define X_AREA_NULL 0xc6, "" 21*31087Sminshall 22*31087Sminshall static void 23*31087Sminshall SetXarea(x, xwhy) 24*31087Sminshall int x; 25*31087Sminshall char *xwhy; 26*31087Sminshall { 27*31087Sminshall register int i; 28*31087Sminshall 29*31087Sminshall OperatorInformationArea.x = x; 30*31087Sminshall for (i = 0; i < sizeof OperatorInformationArea.xwhy; i++) { 31*31087Sminshall if (*xwhy) { 32*31087Sminshall OperatorInformationArea.xwhy[i] = *xwhy++; 33*31087Sminshall } else { 34*31087Sminshall OperatorInformationArea.xwhy[i] = 0; 35*31087Sminshall } 36*31087Sminshall } 37*31087Sminshall } 38*31087Sminshall 39*31087Sminshall 40*31087Sminshall SetInsert(onoff) 41*31087Sminshall int onoff; 42*31087Sminshall { 43*31087Sminshall Insert = onoff; 44*31087Sminshall 45*31087Sminshall if (onoff) { 46*31087Sminshall OperatorInformationArea.insert = OIA_INSERT_ON; 47*31087Sminshall } else { 48*31087Sminshall OperatorInformationArea.insert = 0; 49*31087Sminshall } 50*31087Sminshall } 51*31087Sminshall 52*31087Sminshall SetSystemLocked(onoff) 53*31087Sminshall int onoff; 54*31087Sminshall { 55*31087Sminshall SystemLocked = onoff; 56*31087Sminshall 57*31087Sminshall if ((PWait == 0) && (TWait == 0)) { 58*31087Sminshall SetXArea(X_AREA_SYSTEM); 59*31087Sminshall } 60*31087Sminshall } 61*31087Sminshall 62*31087Sminshall SetPWait(onoff) 63*31087Sminshall int onoff; 64*31087Sminshall { 65*31087Sminshall PWait = onoff; 66*31087Sminshall 67*31087Sminshall if (onoff) { 68*31087Sminshall SetXArea(X_AREA_CLOCK); 69*31087Sminshall } else { 70*31087Sminshall if (SystemLocked) { 71*31087Sminshall SetXArea(X_AREA_SYSTEM); 72*31087Sminshall } else { 73*31087Sminshall SetXArea(X_AREA_NULL); 74*31087Sminshall } 75*31087Sminshall } 76*31087Sminshall } 77*31087Sminshall 78*31087Sminshall SetTWait(onoff) 79*31087Sminshall int onoff; 80*31087Sminshall { 81*31087Sminshall TWait = onoff; 82*31087Sminshall 83*31087Sminshall SetPWait(onoff); 84*31087Sminshall } 85*31087Sminshall 86*31087Sminshall SetOnlineA(onoff) 87*31087Sminshall int onoff; 88*31087Sminshall { 89*31087Sminshall OnlineA = onoff; 90*31087Sminshall 91*31087Sminshall if (onoff) { 92*31087Sminshall SetMyJob(1); 93*31087Sminshall OperatorInformationArea.online = OIA_ONLINE_A; 94*31087Sminshall } else { 95*31087Sminshall OperatorInformationArea.online = 0; 96*31087Sminshall } 97*31087Sminshall } 98*31087Sminshall 99*31087Sminshall SetReady3274(onoff) 100*31087Sminshall int onoff; 101*31087Sminshall { 102*31087Sminshall Ready3274 = onoff; 103*31087Sminshall 104*31087Sminshall if (onoff) { 105*31087Sminshall OperatorInformationArea.ready = OIA_READY_3274; 106*31087Sminshall } else { 107*31087Sminshall OperatorInformationArea.ready = 0; 108*31087Sminshall } 109*31087Sminshall } 110*31087Sminshall 111*31087Sminshall SetMyJob(onoff) 112*31087Sminshall int onoff; 113*31087Sminshall { 114*31087Sminshall MyJob = onoff; 115*31087Sminshall 116*31087Sminshall if (onoff) { 117*31087Sminshall OperatorInformationArea.ownership = OIA_OWNERSHIP_MYJOB; 118*31087Sminshall } else { 119*31087Sminshall OperatorInformationArea.ownership = 0; 120*31087Sminshall } 121*31087Sminshall } 122