|
|
|
@ -25,6 +25,23 @@ package CPU is
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
16#F0#, 0, 16#90#, 0, 16#90#, 0, 16#90#, 0, 16#F0#, 0, -- 0
|
|
|
|
|
16#20#, 0, 16#60#, 0, 16#20#, 0, 16#20#, 0, 16#70#, 0, -- 1
|
|
|
|
|
16#F0#, 0, 16#10#, 0, 16#F0#, 0, 16#80#, 0, 16#F0#, 0, -- 2
|
|
|
|
|
16#F0#, 0, 16#10#, 0, 16#F0#, 0, 16#10#, 0, 16#F0#, 0, -- 3
|
|
|
|
|
16#90#, 0, 16#90#, 0, 16#F0#, 0, 16#10#, 0, 16#10#, 0, -- 4
|
|
|
|
|
16#F0#, 0, 16#80#, 0, 16#F0#, 0, 16#10#, 0, 16#F0#, 0, -- 5
|
|
|
|
|
16#F0#, 0, 16#80#, 0, 16#F0#, 0, 16#90#, 0, 16#F0#, 0, -- 6
|
|
|
|
|
16#F0#, 0, 16#10#, 0, 16#20#, 0, 16#40#, 0, 16#40#, 0, -- 7
|
|
|
|
|
16#F0#, 0, 16#90#, 0, 16#F0#, 0, 16#90#, 0, 16#F0#, 0, -- 8
|
|
|
|
|
16#F0#, 0, 16#90#, 0, 16#F0#, 0, 16#10#, 0, 16#F0#, 0, -- 9
|
|
|
|
|
16#F0#, 0, 16#90#, 0, 16#F0#, 0, 16#90#, 0, 16#90#, 0, -- A
|
|
|
|
|
16#E0#, 0, 16#90#, 0, 16#E0#, 0, 16#90#, 0, 16#E0#, 0, -- B
|
|
|
|
|
16#F0#, 0, 16#80#, 0, 16#80#, 0, 16#80#, 0, 16#F0#, 0, -- C
|
|
|
|
|
16#E0#, 0, 16#90#, 0, 16#90#, 0, 16#90#, 0, 16#E0#, 0, -- D
|
|
|
|
|
16#F0#, 0, 16#80#, 0, 16#F0#, 0, 16#80#, 0, 16#F0#, 0, -- E
|
|
|
|
|
16#F0#, 0, 16#80#, 0, 16#F0#, 0, 16#80#, 0, 16#80#, 0, -- F
|
|
|
|
|
others => 0
|
|
|
|
|
);
|
|
|
|
|
Registers : Register_Bank;
|
|
|
|
@ -33,6 +50,8 @@ package CPU is
|
|
|
|
|
Stack : Address_Stack.Vector;
|
|
|
|
|
end record;
|
|
|
|
|
|
|
|
|
|
RPL_Stash : constant Address := 240;
|
|
|
|
|
|
|
|
|
|
procedure Load_File (Inst : in out Instance; File_Name : String);
|
|
|
|
|
|
|
|
|
|
function Get_Opcode (Inst : in out Instance) return Opcode;
|
|
|
|
|