12x24 matrix LED - how to use it?

Hi Everyone! I have 12x24 LED matrix, with 4094 8-bit magistral register. how to code this matrix? how to connect it? any ideas? please fast reply :D

How is the matrix wired? 12 Common anodes going across the rows of the display and 24 common cathodes going down the columns of each display?

What is the full shift register part number? Some have better drive capability than others.
CD4094 for example is very low
http://www.ti.com/lit/ds/symlink/cd4094b.pdf
while the CD74HC4094 and CD74HCT4094 are some what better, rated to +/-5mA

Ideally what you would have is a part that can source more current to the 12 anodes while another part sinks up to 240mA from the common cathode.
CD74AC164 can source up to 24mA, use two to drive current to the anodes
TPIC6A595 is a high current sink (350mA) you could use for cathodes, use 3 to sink current from the cathodes.

example code using SPI transfer() to the shift registers. Set SPI divisor to 2, have 0.1uF cap from Vcc to Gnd on each device

//if ( time for an update? test using blink-without-delay code, new update every 1300uS )
{
for (pointer=0; pointer<24; pointer=pointer+1){ // walk thru the 24 columns, 0 to 23
// turn off all cathodes
digitalWrite (cathodeSS, LOW);
SPI.transfer(0);
SPI.transfer(0);
SPI.transfer(0);
digitalWrite (cathodeSS, HIGH);
// setup anode data
digitalWrite (anodeSS, HIGH); // Use 2-input AND gate w/ (anodeSS + SCK) to  enable CP to the '164
SPI.transfer(highByte(dataArray[pointer])); // upper 4 bits of int dataArray
SPI.transfer(lowByte(dataArray[pointer])); // lower 8 bits
digitalWrite (anodeSS, LOW);
// turn on next cathode
digitalWrite (cathodeSS, LOW);
SPI.transfer(cathodeArray[(3 * pointer)+0)]); // see cathodeArray below. Use bytes 0,1,2, 
SPI.transfer([(3 * pointer)+1]);                     // then 3,4,5 then 6,7,8 etc
SPI.transfer([(3 * pointer)+2]);                     // then 66, 67, 68, ending with 69,70,71
digitalWrite (cathodeSS, HIGH);
}
// do other stuff while 1300uS is passing

with

int dataArray[24]; // holds the 12-bit anode message that will be displayed in a column vertically

and

byte cathodeArray[]= { // holds the 1 that will enable each cathode 1 at a time, read out 3 at a time
0b10000000, 0, 0, // column 0
0b01000000, 0, 0, // column 1
:
0, 0b10000000, 0, // column 8
0, 0b01000000, 0, // column 9
:
0, 0, 0b10000000, // column 16
0, 0, 0b01000000, // column 17
:
0, 0, 0b00000001, // column 23
};