Index: common/a8core/address_decoder.vhdl
===================================================================
--- common/a8core/address_decoder.vhdl	(revision 220)
+++ common/a8core/address_decoder.vhdl	(revision 221)
@@ -132,7 +132,8 @@
 	
 	freezer_enable: in std_logic;
 	freezer_activate: in std_logic;
-	freezer_state_out: out std_logic_vector(2 downto 0)
+	freezer_state_out: out std_logic_vector(2 downto 0);
+	pbi_enable: in std_logic := '0'
 );
 
 END address_decoder;
@@ -317,7 +318,7 @@
 	--cart_s4_n <= emu_cart_s4_n_out;
 	--cart_s5_n <= emu_cart_s5_n_out;
 
-	CART_TRIG3_OUT <= CART_RD5 or emu_cart_rd5;
+	CART_TRIG3_OUT <= (pbi_enable and CART_RD5) or emu_cart_rd5;
 	
 	-- ANTIC FETCH
 	
@@ -715,7 +716,7 @@
 							request_complete <= '1';
 						end if;
 					else
-						if ((CART_RD4 or CART_RD5) = '1') then
+						if (pbi_enable = '1') then
 							PBI_WR_ENABLE <= write_enable_next;
 							MEMORY_DATA(7 downto 0) <= CART_ROM_DATA;
 							cart_request <= start_request;
@@ -782,7 +783,8 @@
 							sdram_chip_select <= '0';
 							ram_chip_select <= '0';
 						end if;
-					elsif (cart_rd4 = '1') then
+					elsif (pbi_enable = '1' and cart_rd4 = '1') then
+						PBI_WR_ENABLE <= write_enable_next;
 						MEMORY_DATA(7 downto 0) <= CART_ROM_DATA;
 						cart_request <= start_request;
 						CART_S4_n <= '0';
@@ -811,7 +813,8 @@
 							sdram_chip_select <= '0';
 							ram_chip_select <= '0';
 						end if;
-					elsif (cart_rd5 = '1') then
+					elsif (pbi_enable = '1' and cart_rd5 = '1') then
+						PBI_WR_ENABLE <= write_enable_next;
 						MEMORY_DATA(7 downto 0) <= CART_ROM_DATA;
 						cart_request <= start_request;
 						CART_S5_n <= '0';
Index: common/a8core/atari800core.vhd
===================================================================
--- common/a8core/atari800core.vhd	(revision 220)
+++ common/a8core/atari800core.vhd	(revision 221)
@@ -182,7 +182,8 @@
 		HALT : in std_logic;
 		freezer_enable: in std_logic;
 		freezer_activate: in std_logic;
-		freezer_state_out: out std_logic_vector(2 downto 0)
+		freezer_state_out: out std_logic_vector(2 downto 0);
+		pbi_enable: in std_logic := '0'
 	);
 END atari800core;
 
@@ -486,7 +487,8 @@
 		 rom_in_ram => ROM_IN_RAM,
 		 freezer_enable => freezer_enable,
 		 freezer_activate => freezer_activate,
-		 freezer_state_out => freezer_state_out);
+		 freezer_state_out => freezer_state_out,
+		 pbi_enable => pbi_enable);
 
 pokey1 : entity work.pokey
 PORT MAP(CLK => CLK,
Index: common/a8core/timing6502.vhd
===================================================================
--- common/a8core/timing6502.vhd	(revision 220)
+++ common/a8core/timing6502.vhd	(revision 221)
@@ -141,7 +141,6 @@
 
 		case state_reg is
 		when x"0" =>
-			phi1_next <= '1';
 		when x"1"=>
 			addr_oe_next <= '1';
 		when x"2"|x"3"|x"4"|x"5" =>
@@ -148,8 +147,8 @@
 		when x"6" =>
 			phi1_next <= '0';
 		when x"7" =>
+			phi2_next <= '1';
 		when x"8" =>
-			phi2_next <= '1';
 		when x"9"|x"a" =>
 		when x"b" =>
 			if (write_in = '1') then
@@ -165,6 +164,7 @@
 			addr_oe_next <= '0';
 			data_oe_next <= '0';
 			write_n_next <= '1';
+			phi1_next <= '1';
 		end case;
 
 	end process;
Index: de1/atari800core_de1.vhd
===================================================================
--- de1/atari800core_de1.vhd	(revision 220)
+++ de1/atari800core_de1.vhd	(revision 221)
@@ -247,8 +247,11 @@
 
 	signal freezer_state: std_logic_vector(2 downto 0);
 
+	signal pbi_enable: std_logic;
 BEGIN 
 
+	pbi_enable <= SW(4);
+
 -- ANYTHING NOT CONNECTED...
 --GPIO_0(0) <= 'Z';
 --GPIO_0(35 downto 2) <= (others=>'Z');
@@ -409,7 +412,7 @@
 )
 PORT MAP(clk => CLK,
 	reset_n => reset_n,
-		 gpio_enable => SW(4),
+		 gpio_enable => pbi_enable,
 		 pot_reset => pot_reset,
 		 pbi_write_enable => pbi_write_enable,
 		 enable_179_early => enable_179_early,
@@ -676,7 +679,9 @@
 
 		freezer_enable => freezer_enable,
 		freezer_activate => freezer_activate,
-		freezer_state_out => freezer_state
+		freezer_state_out => freezer_state,
+
+		pbi_enable => pbi_enable
 	);
 
 zpu: entity work.zpucore
Index: de1/gpio.vhd
===================================================================
--- de1/gpio.vhd	(revision 220)
+++ de1/gpio.vhd	(revision 221)
@@ -106,9 +106,6 @@
 	GPIO_1_DIR_OUT(18 downto 8) <= (others=>'0');
 	GPIO_1_OUT(18 downto 8) <= (others=>'0');
 	
-	GPIO_0_DIR_OUT(7 downto 5) <= (others=>'0');
-	GPIO_0_OUT(7 downto 5) <= (others=>'0');
-	
 	-- sio
 	GPIO_0_DIR_OUT(0) <= CA2_dir_out;
 	GPIO_0_OUT(0) <= CA2_out;
@@ -214,8 +211,14 @@
 	GPIO_0_OUT(9) <= '0'; -- RD5 rom present
 	GPIO_0_DIR_OUT(8) <= gpio_enable; -- cart control
 	GPIO_0_OUT(8) <= CCTL_n; -- cart control
-	GPIO_0_DIR_OUT(7 downto 5) <= (others=>'0'); -- unused
-	GPIO_0_OUT(7 downto 5) <= (others=>'0'); -- unused	
+
+-- PBI: A13-A15
+	GPIO_0_DIR_OUT(7) <= gpio_enable and bus_addr_oe;
+	GPIO_0_OUT(7) <= bus_addr_out(15);
+	GPIO_0_DIR_OUT(6) <= gpio_enable and bus_addr_oe;
+	GPIO_0_OUT(6) <= bus_addr_out(14);
+	GPIO_0_DIR_OUT(5) <= gpio_enable and bus_addr_oe;
+	GPIO_0_OUT(5) <= bus_addr_out(13);
 	
 -- INPUTS FROM GPIO	
 	-- sticks
