public void handler() {
		sys16_fg_scrollx = (sys16_extraram2.READ_WORD(0x6018 ) ^ 0xffff) & 0x01ff;
		sys16_bg_scrollx = (sys16_extraram2.READ_WORD(0x6008 ) ^ 0xffff) & 0x01ff;
		sys16_fg_scrolly = sys16_extraram2.READ_WORD(0x6010 ) & 0x00ff;
		sys16_bg_scrolly = sys16_extraram2.READ_WORD(0x6000 );
	
		{
			 char lu = (char)(sys16_extraram2.READ_WORD(0x6020 ) & 0xff);
			 char ru = (char)(sys16_extraram2.READ_WORD(0x6022 ) & 0xff);
			 char ld = (char)(sys16_extraram2.READ_WORD(0x6024 ) & 0xff);
			 char rd = (char)(sys16_extraram2.READ_WORD(0x6026 ) & 0xff);
	
			if (lu==4 && ld==4 && ru==5 && rd==5)
			{ // fix a bug in chicago round (un-tested in MAME)
				int vs=sys16_workingram.READ_WORD(0x36ec);
				sys16_bg_scrolly = vs & 0xff;
				sys16_fg_scrolly = vs & 0xff;
				if (vs >= 0x100)
				{
					lu=0x26; ru=0x37;
					ld=0x04; rd=0x15;
				} else {
					ld=0x26; rd=0x37;
					lu=0x04; ru=0x15;
				}
			}
			sys16_fg_page[0] = ld&0xf;
			sys16_fg_page[1] = rd&0xf;
			sys16_fg_page[2] = lu&0xf;
			sys16_fg_page[3] = ru&0xf;
	
			sys16_bg_page[0] = ld>>4;
			sys16_bg_page[1] = rd>>4;
			sys16_bg_page[2] = lu>>4;
			sys16_bg_page[3] = ru>>4;
		}
	
		set_refresh( sys16_extraram2.READ_WORD(0 ) );
	}