rem: return coldstart_card(rom, init1, init2, init_size);
add: return coldstart_card(rom, init1, init2, init_size, ram_tab);
context: static status_t pins3_6_read(uint8 *rom, uint32 offset){	uint16 init1 = rom[offset + 18] + (rom[offset + 19] * 256);	uint16 init2 = rom[offset + 20] + (rom[offset + 21] * 256);	uint16 init_size = rom[offset + 22] + (rom[offset + 23] * 256) + 1;	char* signon_msg   = &(rom[(rom[offset + 30] + (rom[offset + 31] * 256))]);	char* vendor_name  = &(rom[(rom[offset + 46] + (rom[offset + 47] * 256))]);	char* product_name = &(rom[(rom[offset + 48] + (rom[offset + 49] * 256))]);	char* product_rev  = &(rom[(rom[offset + 50] + (rom[offset + 51] * 256))]);	LOG(8,("INFO: init_1 $%04x, init_2 $%04x, size $%04x\n", init1, init2, init_size));	LOG(8,("INFO: signon msg:\n%s\n", signon_msg));	LOG(8,("INFO: vendor name: %s\n", vendor_name));	LOG(8,("INFO: product name: %s\n", product_name));	LOG(8,("INFO: product rev: %s\n", product_rev));	/* pins 5.16 and higher only contain PLL VCO range info */	if (((rom[offset + 5]) >= 5) && ((rom[offset + 6]) >= 0x10))	{		uint32 fvco_max = *((uint32*)(&(rom[offset + 67])));		uint32 fvco_min = *((uint32*)(&(rom[offset + 71])));		LOG(8,("INFO: PLL VCO range is %dkHz - %dkHz\n", fvco_min, fvco_max));		/* only pins 5 contains this info */		//fixme: not finished../*		if ((rom[offset + 5]) == 5)		{			uint16 IOFlagConditionTablePointer =				rom[offset + 85] + (rom[offset + 86] * 256);		}*/	}	return coldstart_card(rom, init1, init2, init_size);}