亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? t65_mcode.vhd

?? 微處理器核源碼 like 6050 單片機
?? VHD
?? 第 1 頁 / 共 2 頁
字號:
				LDAD <= '1';
				if IR(7 downto 5) = "100" then
					Write <= '1';
				end if;
				Set_Addr_To <= "10"; -- AD
			when 2 =>
			when others =>
			end case;
		--}}}

		when "00101" | "00110" | "00111" =>
		--{{{
			-- Zero Page
			if IR(7 downto 6) /= "10" and IR(1 downto 0) = "10" then
				-- Read-Modify-Write
				LCycle <= "100";
				case to_integer(unsigned(MCycle)) is
				when 1 =>
					Jump <= "01";
					LDAD <= '1';
					Set_Addr_To <= "10"; -- AD
				when 2 =>
					LDDI <= '1';
					Write <= '1';
					Set_Addr_To <= "10"; -- AD
				when 3 =>
					LDALU <= '1';
					SaveP <= '1';
					Write <= '1';
					Set_Addr_To <= "10"; -- AD
				when 4 =>
				when others =>
				end case;
			else
				LCycle <= "010";
				if IR(7 downto 6) /= "10" then
					LDA <= '1';
				end if;
				case to_integer(unsigned(MCycle)) is
				when 0 =>
				when 1 =>
					Jump <= "01";
					LDAD <= '1';
					if IR(7 downto 5) = "100" then
						Write <= '1';
					end if;
					Set_Addr_To <= "10"; -- AD
				when 2 =>
				when others =>
				end case;
			end if;
		--}}}

		when "01100" =>
		--{{{
			-- Absolute
			if IR(7 downto 6) = "01" and IR(4 downto 0) = "01100" then
				-- JMP
				if IR(5) = '0' then
					--LCycle <= "011";
					LCycle <= "010";
					case to_integer(unsigned(MCycle)) is
					when 1 =>
						Jump <= "01";
						LDDI <= '1';
					when 2 =>
						Jump <= "10"; -- DIDL
					when others =>
					end case;
				else
					LCycle <= "101";
					case to_integer(unsigned(MCycle)) is
					when 2 =>
						Jump <= "01";
						LDDI <= '1';
						LDBAL <= '1';
					when 3 =>
						LDBAH <= '1';
						if Mode /= "00" then
							Jump <= "10"; -- DIDL
						end if;
						if Mode = "00" then
							Set_Addr_To <= "11"; -- BA
						end if;
					when 4 =>
						LDDI <= '1';
						if Mode = "00" then
							Set_Addr_To <= "11"; -- BA
							BAAdd <= "01";      -- DB Inc
						else
							Jump <= "01";
						end if;
					when 5 =>
						Jump <= "10"; -- DIDL
					when others =>
					end case;
				end if;
			else
				LCycle <= "011";
				case to_integer(unsigned(MCycle)) is
				when 0 =>
					if IR(7 downto 5) = "001" then
						SaveP <= '1';
					end if;
				when 1 =>
					Jump <= "01";
					LDBAL <= '1';
				when 2 =>
					Jump <= "01";
					LDBAH <= '1';
					if IR(7 downto 5) = "100" then
						Write <= '1';
					end if;
					Set_Addr_To <= "11"; -- BA
				when 3 =>
				when others =>
				end case;
			end if;
		--}}}

		when "01101" | "01110" | "01111" =>
		--{{{
			-- Absolute
			if IR(7 downto 6) /= "10" and IR(1 downto 0) = "10" then
				-- Read-Modify-Write
				LCycle <= "101";
				case to_integer(unsigned(MCycle)) is
				when 1 =>
					Jump <= "01";
					LDBAL <= '1';
				when 2 =>
					Jump <= "01";
					LDBAH <= '1';
					Set_Addr_To <= "11"; -- BA
				when 3 =>
					LDDI <= '1';
					Write <= '1';
					Set_Addr_To <= "11"; -- BA
				when 4 =>
					Write <= '1';
					LDALU <= '1';
					SaveP <= '1';
					Set_Addr_To <= "11"; -- BA
				when 5 =>
					SaveP <= '0'; -- MIKEJ was 1
				when others =>
				end case;
			else
				LCycle <= "011";
				if IR(7 downto 6) /= "10" then
					LDA <= '1';
				end if;
				case to_integer(unsigned(MCycle)) is
				when 0 =>
				when 1 =>
					Jump <= "01";
					LDBAL <= '1';
				when 2 =>
					Jump <= "01";
					LDBAH <= '1';
					if IR(7 downto 5) = "100" then
						Write <= '1';
					end if;
					Set_Addr_To <= "11"; -- BA
				when 3 =>
				when others =>
				end case;
			end if;
		--}}}

		when "10000" =>
		--{{{
			-- Relative

						-- This circuit dictates when the last
						-- microcycle occurs for the branch depending on
						-- whether or not the branch is taken and if a page
						-- is crossed...
			if (Branch = '1') then

							 LCycle <= "011"; -- We're done @ T3 if branching...upper
											  -- level logic will stop at T2 if no page cross
											  -- (See the Break signal)
			else

							 LCycle <= "001";

			end if;

						-- This decodes the current microcycle and takes the
						-- proper course of action...
			case to_integer(unsigned(MCycle)) is

							-- On the T1 microcycle, increment the program counter
							-- and instruct the upper level logic to fetch the offset
							-- from the Din bus and store it in the data latches. This
							-- will be the last microcycle if the branch isn't taken.
				when 1 =>

					Jump <= "01"; -- Increments the PC by one (PC will now be PC+2)
											  -- from microcycle T0.

				LDDI <= '1';  -- Tells logic in top level (T65.vhd) to route
											  -- the Din bus to the memory data latch (DL)
											  -- so that the branch offset is fetched.

							-- In microcycle T2, tell the logic in the top level to
							-- add the offset.  If the most significant byte of the
							-- program counter (i.e. the current "page") does not need
							-- updating, we are done here...the Break signal at the
							-- T65.vhd level takes care of that...
				when 2 =>

				Jump    <= "11"; -- Tell the PC Jump logic to use relative mode.

				PCAdd   <= '1';  -- This tells the PC adder to update itself with
												 -- the current offset recently fetched from
												 -- memory.

							-- The following is microcycle T3 :
							-- The program counter should be completely updated
							-- on this cycle after the page cross is detected.
							-- We don't need to do anything here...
				when 3 =>


				when others => null; -- Do nothing.

			end case;
		--}}}

		when "10001" | "10011" =>
		--{{{
			-- Zero Page Indirect Indexed (d),y
			LCycle <= "101";
			if IR(7 downto 6) /= "10" then
				LDA <= '1';
			end if;
			case to_integer(unsigned(MCycle)) is
			when 0 =>
			when 1 =>
				Jump <= "01";
				LDAD <= '1';
				Set_Addr_To <= "10"; -- AD
			when 2 =>
				LDBAL <= '1';
				BAAdd <= "01";  -- DB Inc
				Set_Addr_To <= "10"; -- AD
			when 3 =>
				Set_BusA_To <= "011"; -- Y
				BAAdd <= "10";  -- BA Add
				LDBAH <= '1';
				Set_Addr_To <= "11"; -- BA
			when 4 =>
				BAAdd <= "11";  -- BA Adj
				if IR(7 downto 5) = "100" then
					Write <= '1';
				else
					BreakAtNA <= '1';
				end if;
				Set_Addr_To <= "11"; -- BA
			when 5 =>
			when others =>
			end case;
		--}}}

		when "10100" | "10101" | "10110" | "10111" =>
		--{{{
			-- Zero Page, X
			if IR(7 downto 6) /= "10" and IR(1 downto 0) = "10" then
				-- Read-Modify-Write
				LCycle <= "101";
				case to_integer(unsigned(MCycle)) is
				when 1 =>
					Jump <= "01";
					LDAD <= '1';
					Set_Addr_To <= "10"; -- AD
				when 2 =>
					ADAdd <= '1';
					Set_Addr_To <= "10"; -- AD
				when 3 =>
					LDDI <= '1';
					Write <= '1';
					Set_Addr_To <= "10"; -- AD
				when 4 =>
					LDALU <= '1';
					SaveP <= '1';
					Write <= '1';
					Set_Addr_To <= "10"; -- AD
				when 5 =>
				when others =>
				end case;
			else
				LCycle <= "011";
				if IR(7 downto 6) /= "10" then
					LDA <= '1';
				end if;
				case to_integer(unsigned(MCycle)) is
				when 0 =>
				when 1 =>
					Jump <= "01";
					LDAD <= '1';
					Set_Addr_To <= "10"; -- AD
				when 2 =>
					ADAdd <= '1';
					-- Added this check for Y reg. use...
					if (IR(3 downto 0) = "0110") then
					  AddY <= '1';
					end if;

					if IR(7 downto 5) = "100" then
						Write <= '1';
					end if;
					Set_Addr_To <= "10"; -- AD
				when 3 => null;
				when others =>
				end case;
			end if;
		--}}}

		when "11001" | "11011" =>
		--{{{
			-- Absolute Y
			LCycle <= "100";
			if IR(7 downto 6) /= "10" then
				LDA <= '1';
			end if;
			case to_integer(unsigned(MCycle)) is
			when 0 =>
			when 1 =>
				Jump <= "01";
				LDBAL <= '1';
			when 2 =>
				Jump <= "01";
				Set_BusA_To <= "011"; -- Y
				BAAdd <= "10";  -- BA Add
				LDBAH <= '1';
				Set_Addr_To <= "11"; -- BA
			when 3 =>
				BAAdd <= "11";  -- BA adj
				if IR(7 downto 5) = "100" then
					Write <= '1';
				else
					BreakAtNA <= '1';
				end if;
				Set_Addr_To <= "11"; -- BA
			when 4 =>
			when others =>
			end case;
		--}}}

		when "11100" | "11101" | "11110" | "11111" =>
		--{{{
			-- Absolute X

			if IR(7 downto 6) /= "10" and IR(1 downto 0) = "10" then
				-- Read-Modify-Write
				LCycle <= "110";
				case to_integer(unsigned(MCycle)) is
				when 1 =>
					Jump <= "01";
					LDBAL <= '1';
				when 2 =>
					Jump <= "01";
					Set_BusA_To <= "010"; -- X
					BAAdd <= "10";      -- BA Add
					LDBAH <= '1';
					Set_Addr_To <= "11"; -- BA
				when 3 =>
					BAAdd <= "11";      -- BA adj
					Set_Addr_To <= "11"; -- BA
				when 4 =>
					LDDI <= '1';
					Write <= '1';
					Set_Addr_To <= "11"; -- BA
				when 5 =>
					LDALU <= '1';
					SaveP <= '1';
					Write <= '1';
					Set_Addr_To <= "11"; -- BA
				when 6 =>
				when others =>
				end case;
			else
				LCycle <= "100";
				if IR(7 downto 6) /= "10" then
					LDA <= '1';
				end if;
				case to_integer(unsigned(MCycle)) is
				when 0 =>
				when 1 =>
					Jump <= "01";
					LDBAL <= '1';
				when 2 =>
					Jump <= "01";
					-- mikej
					-- special case 0xBE which uses Y reg as index!!
					if (IR = "10111110") then
					  Set_BusA_To <= "011"; -- Y
					else
					  Set_BusA_To <= "010"; -- X
					end if;
					BAAdd <= "10";      -- BA Add
					LDBAH <= '1';
					Set_Addr_To <= "11"; -- BA
				when 3 =>
					BAAdd <= "11";      -- BA adj
					if IR(7 downto 5) = "100" then
						Write <= '1';
					else
						BreakAtNA <= '1';
					end if;
					Set_Addr_To <= "11"; -- BA
				when 4 =>
				when others =>
				end case;
			end if;
		--}}}
		when others =>
		end case;
	end process;

	process (IR, MCycle)
	begin
		-- ORA, AND, EOR, ADC, NOP, LD, CMP, SBC
		-- ASL, ROL, LSR, ROR, BIT, LD, DEC, INC
		case IR(1 downto 0) is
		when "00" =>
		--{{{
			case IR(4 downto 2) is
			when "000" | "001" | "011" =>
				case IR(7 downto 5) is
				when "110" | "111" =>
					-- CP
					ALU_Op <= "0110";
				when "101" =>
					-- LD
					ALU_Op <= "0101";
				when "001" =>
					-- BIT
					ALU_Op <= "1100";
				when others =>
					-- NOP/ST
					ALU_Op <= "0100";
				end case;
			when "010" =>
				case IR(7 downto 5) is
				when "111" | "110" =>
					-- IN
					ALU_Op <= "1111";
				when "100" =>
					-- DEY
					ALU_Op <= "1110";
				when others =>
					-- LD
					ALU_Op <= "1101";
				end case;
			when "110" =>
				case IR(7 downto 5) is
				when "100" =>
					-- TYA
					ALU_Op <= "1101";
				when others =>
					ALU_Op <= "----";
				end case;
			when others =>
				case IR(7 downto 5) is
				when "101" =>
					-- LD
					ALU_Op <= "1101";
				when others =>
					ALU_Op <= "0100";
				end case;
			end case;
		--}}}
		when "01" => -- OR
		--{{{
			ALU_Op(3) <= '0';
			ALU_Op(2 downto 0) <= IR(7 downto 5);
		--}}}
		when "10" =>
		--{{{
			ALU_Op(3) <= '1';
			ALU_Op(2 downto 0) <= IR(7 downto 5);
			case IR(7 downto 5) is
			when "000" =>
				if IR(4 downto 2) = "110" then
					-- INC
					ALU_Op <= "1111";
				end if;
			when "001" =>
				if IR(4 downto 2) = "110" then
					-- DEC
					ALU_Op <= "1110";
				end if;
			when "100" =>
				if IR(4 downto 2) = "010" then
					-- TXA
					ALU_Op <= "0101";
				else
					ALU_Op <= "0100";
				end if;
			when others =>
			end case;
		--}}}
		when others =>
		--{{{
			case IR(7 downto 5) is
			when "100" =>
				ALU_Op <= "0100";
			when others =>
				if MCycle = "000" then
					ALU_Op(3) <= '0';
					ALU_Op(2 downto 0) <= IR(7 downto 5);
				else
					ALU_Op(3) <= '1';
					ALU_Op(2 downto 0) <= IR(7 downto 5);
				end if;
			end case;
		--}}}
		end case;
	end process;

end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美特级限制片免费在线观看| 久久一区二区三区四区| 日韩免费高清av| 亚洲综合视频网| 成人激情图片网| 欧美tickling挠脚心丨vk| 亚洲欧洲制服丝袜| 福利一区在线观看| 精品国产一区二区在线观看| 亚洲一区二区三区四区的| 国产91精品一区二区麻豆亚洲| 欧美日本一区二区三区| 中文字幕字幕中文在线中不卡视频| 韩国毛片一区二区三区| 欧美一区二区私人影院日本| 一区二区三区成人| 色综合久久久久综合体| 国产精品三级电影| 成人综合激情网| 久久久五月婷婷| 国产一区二区三区免费在线观看| 777奇米四色成人影色区| 亚洲国产你懂的| 欧美日韩亚洲不卡| 一区二区三区在线影院| av中文字幕不卡| 国产精品初高中害羞小美女文| 国产精品一区二区视频| 久久午夜国产精品| 国产伦精品一区二区三区免费| 精品欧美乱码久久久久久1区2区| 日本成人在线网站| 日韩午夜在线观看视频| 精品一区二区免费| 欧美激情艳妇裸体舞| 成人免费黄色大片| 中文字幕综合网| 欧美亚洲动漫另类| 青青草国产成人99久久| 精品国产乱码久久久久久闺蜜 | 粉嫩av亚洲一区二区图片| 国产欧美一区视频| 97se亚洲国产综合自在线不卡| 最新高清无码专区| 欧美亚洲一区二区在线观看| 亚洲国产成人av网| 欧美草草影院在线视频| 国产一区二区三区免费在线观看| 中文字幕巨乱亚洲| 色噜噜夜夜夜综合网| 亚洲成人1区2区| 欧美精品一区二区蜜臀亚洲| 国产麻豆欧美日韩一区| 亚洲欧美日韩国产另类专区 | 国产米奇在线777精品观看| 欧美国产综合色视频| 91浏览器入口在线观看| 日韩成人av影视| 久久精品视频免费观看| 92国产精品观看| 麻豆一区二区在线| 国产精品区一区二区三区| 在线亚洲一区二区| 久久99国产精品尤物| 亚洲欧洲精品天堂一级 | 日本一区二区三级电影在线观看| 91在线观看美女| 喷白浆一区二区| 国产精品欧美精品| 91精品久久久久久久91蜜桃| 国产91精品精华液一区二区三区| 亚洲精品一卡二卡| 欧美变态tickling挠脚心| 成人福利视频网站| 蜜桃久久久久久久| 一卡二卡欧美日韩| 国产日韩欧美电影| 欧美剧情片在线观看| 国产成人av电影在线观看| 亚洲va国产va欧美va观看| 国产精品美女www爽爽爽| 7777精品伊人久久久大香线蕉完整版 | 亚洲国产成人av好男人在线观看| 欧美xxxxxxxx| 欧美乱妇15p| 91欧美激情一区二区三区成人| 久久精品国产在热久久| 亚洲电影中文字幕在线观看| 一色屋精品亚洲香蕉网站| 久久这里只精品最新地址| 欧美三级日本三级少妇99| 91在线国产观看| 成人免费视频网站在线观看| 麻豆精品一区二区av白丝在线| 一区二区三区中文字幕| 国产精品久久久久影院| 久久综合网色—综合色88| 91精品国产综合久久精品图片| 在线视频你懂得一区| 91美女片黄在线观看91美女| 国产一区二区免费在线| 激情五月激情综合网| 日韩国产欧美在线播放| 亚洲国产成人av| 亚洲成人av电影| 午夜欧美电影在线观看| 一区二区三区久久| 伊人夜夜躁av伊人久久| 亚洲视频每日更新| 亚洲精品美国一| 一区二区三区在线视频观看| 亚洲欧美另类小说| 亚洲一区二区3| 亚洲午夜电影在线观看| 五月婷婷综合网| 日本成人在线看| 另类综合日韩欧美亚洲| 精品制服美女丁香| 国产高清久久久久| 成人福利视频网站| 一本久久综合亚洲鲁鲁五月天| 91美女视频网站| 欧美日韩一级黄| 日韩欧美一级二级| 国产农村妇女精品| 亚洲视频免费看| 日韩高清一级片| 国产在线视频不卡二| caoporen国产精品视频| 欧美亚洲尤物久久| 精品国产污网站| 中文字幕中文字幕中文字幕亚洲无线| 自拍偷拍国产亚洲| 日韩精品一级二级 | 色综合av在线| 欧美一区二区免费视频| 久久综合视频网| 国产精品高潮久久久久无| 一区二区日韩av| 蜜臀a∨国产成人精品| 国产成人aaaa| 欧美欧美欧美欧美首页| www国产成人| 亚洲一区二区三区爽爽爽爽爽| 日本不卡中文字幕| 暴力调教一区二区三区| 欧美日韩另类国产亚洲欧美一级| 日韩欧美激情一区| 亚洲免费观看高清完整版在线观看 | 欧美亚洲国产bt| 亚洲精品在线观看网站| 亚洲精品久久7777| 国产美女主播视频一区| 日本精品免费观看高清观看| 日韩免费电影网站| 亚洲黄色免费网站| 国产一区二区精品在线观看| 色婷婷精品大视频在线蜜桃视频| 91精品国产91热久久久做人人 | 成人的网站免费观看| 欧美女孩性生活视频| 中文字幕成人网| 美女免费视频一区二区| 91欧美一区二区| 国产色产综合色产在线视频| 亚洲国产日韩一区二区| 粗大黑人巨茎大战欧美成人| 91精品国产高清一区二区三区蜜臀 | 欧美色视频在线| 中文字幕高清不卡| 久久99精品网久久| 欧美精品丝袜久久久中文字幕| 国产精品久久久久一区二区三区| 麻豆国产91在线播放| 欧美日韩一区成人| 一区二区三区在线看| av电影在线观看一区| 亚洲精品在线观| 久久疯狂做爰流白浆xx| 欧美精品日韩一区| 性久久久久久久久久久久| 91美女精品福利| 自拍偷自拍亚洲精品播放| 国产一区二区视频在线播放| 欧美精品久久久久久久多人混战| 亚洲视频一二区| 91原创在线视频| 国产精品拍天天在线| 国产成人av电影在线观看| 337p日本欧洲亚洲大胆精品| 日本不卡视频一二三区| 91麻豆精品国产自产在线观看一区| 亚洲精品伦理在线| 欧美性三三影院| 午夜一区二区三区视频| 欧美日韩一二三区| 日韩国产欧美在线观看| 欧美一级搡bbbb搡bbbb| 日本大胆欧美人术艺术动态| 在线综合视频播放|