|
|
@ -8,7 +8,25 @@ package CPU is
|
|
|
|
(Index_Type => Natural, Element_Type => Address);
|
|
|
|
(Index_Type => Natural, Element_Type => Address);
|
|
|
|
|
|
|
|
|
|
|
|
type Instance is record
|
|
|
|
type Instance is record
|
|
|
|
Memory : Bank;
|
|
|
|
Memory : Bank := [
|
|
|
|
|
|
|
|
16#F0#, 16#90#, 16#90#, 16#90#, 16#F0#, -- 0
|
|
|
|
|
|
|
|
16#20#, 16#60#, 16#20#, 16#20#, 16#70#, -- 1
|
|
|
|
|
|
|
|
16#F0#, 16#10#, 16#F0#, 16#80#, 16#F0#, -- 2
|
|
|
|
|
|
|
|
16#F0#, 16#10#, 16#F0#, 16#10#, 16#F0#, -- 3
|
|
|
|
|
|
|
|
16#90#, 16#90#, 16#F0#, 16#10#, 16#10#, -- 4
|
|
|
|
|
|
|
|
16#F0#, 16#80#, 16#F0#, 16#10#, 16#F0#, -- 5
|
|
|
|
|
|
|
|
16#F0#, 16#80#, 16#F0#, 16#90#, 16#F0#, -- 6
|
|
|
|
|
|
|
|
16#F0#, 16#10#, 16#20#, 16#40#, 16#40#, -- 7
|
|
|
|
|
|
|
|
16#F0#, 16#90#, 16#F0#, 16#90#, 16#F0#, -- 8
|
|
|
|
|
|
|
|
16#F0#, 16#90#, 16#F0#, 16#10#, 16#F0#, -- 9
|
|
|
|
|
|
|
|
16#F0#, 16#90#, 16#F0#, 16#90#, 16#90#, -- A
|
|
|
|
|
|
|
|
16#E0#, 16#90#, 16#E0#, 16#90#, 16#E0#, -- B
|
|
|
|
|
|
|
|
16#F0#, 16#80#, 16#80#, 16#80#, 16#F0#, -- C
|
|
|
|
|
|
|
|
16#E0#, 16#90#, 16#90#, 16#90#, 16#E0#, -- D
|
|
|
|
|
|
|
|
16#F0#, 16#80#, 16#F0#, 16#80#, 16#F0#, -- E
|
|
|
|
|
|
|
|
16#F0#, 16#80#, 16#F0#, 16#80#, 16#80#, -- F
|
|
|
|
|
|
|
|
others => 0
|
|
|
|
|
|
|
|
];
|
|
|
|
Registers : Register_Bank;
|
|
|
|
Registers : Register_Bank;
|
|
|
|
Program_Counter : Address := Start_Address;
|
|
|
|
Program_Counter : Address := Start_Address;
|
|
|
|
Address_Register : Address := 0;
|
|
|
|
Address_Register : Address := 0;
|
|
|
|