Moin, ich arbeite auch mit dem MAX7221/7219, allerdings mit nem Microcontroller. Da der allerdings in C programmiert ist, kann dir das vielleicht weiterhelfen:
Code:
// MAX7221 LED-Treiber-IC

//MAX7221.h
#define CLK			PIN_B1
#define CS			PIN_B2
#define DATA		PIN_B3
#define NOOP		0
#define DIG0		1
#define DIG1		2
#define DIG2		3
#define DIG3		4
#define DIG4		5
#define DIG5		6
#define DIG6		7
#define DIG7		8
#define DECODE		9
#define INTENSITY	10
#define SCANLIMIT	11
#define SHUTDOWN	12
#define TEST_REG	15

void max_ausgabe(int adresse,int wert);
void init_max (int Digits, int Brightness);


void max_ausgabe(int adresse,int wert)
{
	int i;

	adresse&=0x0F; //higher nibble =0	
	OUTPUT_LOW(CLK);
	OUTPUT_LOW(DATA);	
	OUTPUT_LOW(CS);	
for (i=8;i>0;i--)
	{
		OUTPUT_LOW(CLK);	
		OUTPUT_BIT(DATA, BIT_TEST(adresse,i-1));
		OUTPUT_HIGH(CLK);
	}
	for (i=8;i>0;i--)
	{
		OUTPUT_LOW(CLK);			
		OUTPUT_BIT(DATA, BIT_TEST(wert,i-1));	
		OUTPUT_HIGH(CLK);	
	}		
	OUTPUT_HIGH(CS);	
	OUTPUT_LOW(CLK);
	OUTPUT_LOW(DATA);	
	
}


void init_max (int Digits, int Brightness)
{
	int i;
	
	max_ausgabe(SHUTDOWN,0); //Shutdown on
	max_ausgabe(TEST_REG,0); //Testmode off
	max_ausgabe(SCANLIMIT,Digits-1); //Number of Digits
	max_ausgabe(INTENSITY,Brightness-1); //Set Brightness
	max_ausgabe(DECODE,0); //No Decode-Mode	
	
	for(i=1;i<9;i++)		//All Digits to Zero
	{
		max_ausgabe(i,0);
	}
	
	max_ausgabe(SHUTDOWN,1); //Shutdown off
}
Ausserdem findest du auf unter http://www.hanf-elektrotechnik.de/ bei den Projekten einen Weihnachtsstern, der ebenfalls mit dem MAX7219/7221 und einem µC aufgebaut wurde.
Ich bin mir nicht sicher, ob der Parallelport nur OpenCollector Ausgänge hat, wenn ja, brauchst du die Widerstände, wenn nicht würde ich das Timing vom PC mal genauer ansehen oder die Zustandsänderungen am Port einzeln machen und mit vielen Pausen zupflaster und sowas auszuschließen.
Hast du mal die Spannungen der Low und High Pegel am 7221 gemessen?