/*============================================================== ; (C) Alexander Kyrpotin, Novosibirsk, BINP. -- 22.01.2001 - 12.04.1996 -- ; ---------------------------------------------- ; Subroutines for K0607 through PPI-AT-2 (january 1995 version) ;===============================================================*/ /* Change crate number to "ncrate" [default=0] */ void crate (int ncrate); /* int caml () = Purmakov's LAM request register */ int caml (void); // int camcl (int moda); - C,Z,I - control. // (moda & 1) == 1 - execute Z-cycle. // (moda & 2) == 2 - execute C-cycle. // (moda & 8) == 8 - set I. I:=1. // (moda &16) ==16 - clear I. I:=0. // return: I or -1 if crate off line. int camcl (int moda); /* Write to CAMAC 16-bits word */ int camw (int n, int f, int a, int data, int *q, int *x); int camo (int n, int f, int a, int *data, int *q, int *x); /* Read from CAMAC 16-bits word */ int cami (int n, int f, int a, int *data, int *q, int *x); /* Write to CAMAC long 24-bits word */ int camo24 (int n, int f, int a, long *data, int *q, int *x); /* Read from CAMAC long 24-bits word */ int cami24 (int n, int f, int a, long *data, int *q, int *x); /* Prepare to block NAF */ int dmaset ( int nc, // Crate number; int nob, // Bytes per NAF (= 1, 2 or 3); int qbl, // q-mode: =0 - ignore q, =1 - while q; unsigned ntr); // Number of NAF's = CAMAC cycles. /* Write array to CAMAC */ /* Return: {camOk, camNoBus, camErAcl, camDmaHung, camNoXQ} = {0,1,4}*/ int dmao (int n, int f, int a, void *buf); /* Read array from CAMAC */ /* Return: {camOk, camNoBus, camErAcl, camDmaHung, camNoXQ} = {0,1,4} */ int dmai (int n, int f, int a, void *buf); /* Number of succsessfully performed CAMAC-cycles */ unsigned camcyc ();