{ -------------------------------------------------------------------- } { This user procedure corresponds to the WFD_PATREG camaclist command. } { It is used to set a software pattern register to control selective } { readout of WFD channels. The syntax is: } { WFD_PATREG supermodule, id, subid } { where "id" is by convention the equipment number and "subid" is the } { word within the equipment that is to be decoded. } { ETK Aug 1994 } { -------------------------------------------------------------------- } procedure wfd_patreg(wfd_spr : ^integer; id : integer; subid : integer; pat : ^integer); [...cut...] begin case id of [...cut...] 7: case subid of { id = 7 is assigned to the Streamer Tube Monopole Supervisor } 11,15 : begin { subid = 1x handles the 1st 16-bit word = ST horizontal } { 11: sets the word in the pattern register for SM-1 wfd } { 15: this exact same code may also be used for SM-5 wfd } wfd_spr^::bit32[0] := wfd_spr^::bit32[0] or pat^::bit32[6] or pat^::bit32[7]; wfd_spr^::bit32[1] := wfd_spr^::bit32[1] or pat^::bit32[6] or pat^::bit32[7]; wfd_spr^::bit32[2] := wfd_spr^::bit32[2] or pat^::bit32[6] or pat^::bit32[7] or pat^::bit32[8] or pat^::bit32[9]; wfd_spr^::bit32[3] := wfd_spr^::bit32[3] or pat^::bit32[6] or pat^::bit32[7] or pat^::bit32[8] or pat^::bit32[9]; wfd_spr^::bit32[4] := wfd_spr^::bit32[4] or pat^::bit32[6] or pat^::bit32[7]; wfd_spr^::bit32[5] := wfd_spr^::bit32[5] or pat^::bit32[6] or pat^::bit32[7]; wfd_spr^::bit32[6] := wfd_spr^::bit32[6] or pat^::bit32[6] or pat^::bit32[7] or pat^::bit32[8] or pat^::bit32[9]; wfd_spr^::bit32[7] := wfd_spr^::bit32[7] or pat^::bit32[6] or pat^::bit32[7] or pat^::bit32[8] or pat^::bit32[9]; end; 12,16 : begin { subid = 1x handles the 1st 16-bit word = ST horizontal } { 12: sets the word in the pattern register for SM-2 wfd } { 16: this exact same code may also be used for SM-6 wfd } wfd_spr^::bit32[0] := wfd_spr^::bit32[0] or pat^::bit32[8] or pat^::bit32[9] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[1] := wfd_spr^::bit32[1] or pat^::bit32[8] or pat^::bit32[9] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[2] := wfd_spr^::bit32[2] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[3] := wfd_spr^::bit32[3] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[4] := wfd_spr^::bit32[4] or pat^::bit32[8] or pat^::bit32[9] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[5] := wfd_spr^::bit32[5] or pat^::bit32[8] or pat^::bit32[9] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[6] := wfd_spr^::bit32[6] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[7] := wfd_spr^::bit32[7] or pat^::bit32[10] or pat^::bit32[11]; end; 13 : begin { subid = 1x handles the 1st 16-bit word = ST horizontal } { 13: sets the word in the pattern register for SM-3 wfd } wfd_spr^::bit32[0] := wfd_spr^::bit32[0] or pat^::bit32[6] or pat^::bit32[7] or pat^::bit32[8] or pat^::bit32[9]; wfd_spr^::bit32[1] := wfd_spr^::bit32[1] or pat^::bit32[6] or pat^::bit32[7] or pat^::bit32[8] or pat^::bit32[9]; wfd_spr^::bit32[2] := wfd_spr^::bit32[2] or pat^::bit32[8] or pat^::bit32[9] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[3] := wfd_spr^::bit32[3] or pat^::bit32[8] or pat^::bit32[9] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[4] := wfd_spr^::bit32[4] or pat^::bit32[6] or pat^::bit32[7] or pat^::bit32[8] or pat^::bit32[9]; wfd_spr^::bit32[5] := wfd_spr^::bit32[5] or pat^::bit32[6] or pat^::bit32[7] or pat^::bit32[8] or pat^::bit32[9]; wfd_spr^::bit32[6] := wfd_spr^::bit32[6] or pat^::bit32[8] or pat^::bit32[9] or pat^::bit32[10] or pat^::bit32[11]; wfd_spr^::bit32[7] := wfd_spr^::bit32[7] or pat^::bit32[8] or pat^::bit32[9] or pat^::bit32[10] or pat^::bit32[11]; end; 14 : begin { subid = 1x handles the 1st 16-bit word = ST horizontal } { 14: sets the word in the pattern register for SM-4 wfd } wfd_spr^::bit32[0] := wfd_spr^::bit32[0] or pat^::bit32[10] or pat^::bit32[11] or pat^::bit32[12] or pat^::bit32[13]; wfd_spr^::bit32[1] := wfd_spr^::bit32[1] or pat^::bit32[10] or pat^::bit32[11] or pat^::bit32[12] or pat^::bit32[13]; wfd_spr^::bit32[2] := wfd_spr^::bit32[2] or pat^::bit32[12] or pat^::bit32[13] or pat^::bit32[14] or pat^::bit32[15]; wfd_spr^::bit32[3] := wfd_spr^::bit32[3] or pat^::bit32[12] or pat^::bit32[13] or pat^::bit32[14] or pat^::bit32[15]; wfd_spr^::bit32[4] := wfd_spr^::bit32[4] or pat^::bit32[10] or pat^::bit32[11] or pat^::bit32[12] or pat^::bit32[13]; wfd_spr^::bit32[5] := wfd_spr^::bit32[5] or pat^::bit32[10] or pat^::bit32[11] or pat^::bit32[12] or pat^::bit32[13]; wfd_spr^::bit32[6] := wfd_spr^::bit32[6] or pat^::bit32[12] or pat^::bit32[13] or pat^::bit32[14] or pat^::bit32[15]; wfd_spr^::bit32[7] := wfd_spr^::bit32[7] or pat^::bit32[12] or pat^::bit32[13] or pat^::bit32[14] or pat^::bit32[15]; end; 21,22,23,24,25,26 : begin { subid = 2x handles the 2nd 16-bit word = ST bottom-lat } wfd_spr^::bit32[8] := wfd_spr^::bit32[8] or pat^::bit32[0]; wfd_spr^::bit32[9] := wfd_spr^::bit32[9] or pat^::bit32[0]; wfd_spr^::bit32[10] := wfd_spr^::bit32[10] or pat^::bit32[1]; wfd_spr^::bit32[11] := wfd_spr^::bit32[11] or pat^::bit32[1]; wfd_spr^::bit32[8] := wfd_spr^::bit32[8] or pat^::bit32[2]; wfd_spr^::bit32[9] := wfd_spr^::bit32[9] or pat^::bit32[2]; wfd_spr^::bit32[10] := wfd_spr^::bit32[10] or pat^::bit32[3]; wfd_spr^::bit32[11] := wfd_spr^::bit32[11] or pat^::bit32[3]; wfd_spr^::bit32[20] := wfd_spr^::bit32[20] or pat^::bit32[4]; wfd_spr^::bit32[21] := wfd_spr^::bit32[21] or pat^::bit32[4]; end; 31,32,33,34,35,36 : begin { subid = 3x handles the 3rd 16-bit word = ST attico-lat } wfd_spr^::bit32[12] := wfd_spr^::bit32[12] or pat^::bit32[0]; wfd_spr^::bit32[13] := wfd_spr^::bit32[13] or pat^::bit32[0]; wfd_spr^::bit32[14] := wfd_spr^::bit32[14] or pat^::bit32[1]; wfd_spr^::bit32[15] := wfd_spr^::bit32[15] or pat^::bit32[1]; wfd_spr^::bit32[12] := wfd_spr^::bit32[12] or pat^::bit32[2]; wfd_spr^::bit32[13] := wfd_spr^::bit32[13] or pat^::bit32[2]; wfd_spr^::bit32[14] := wfd_spr^::bit32[14] or pat^::bit32[3]; wfd_spr^::bit32[15] := wfd_spr^::bit32[15] or pat^::bit32[3]; end; end; { case 7 }