|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3840 (0xf00)
Types: TextFile
Names: »t2901init«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦this⟧ »t2901init«
<* def. of micro types *>
alu_function_type := 11;
jump_addrs_type := 12;
<*not def. type := 13 *>
jump_sekvens_type := 14;
load_counter_type :=15;
special_type :=16;
special_min:=0;
special_max:=32;
reg_op_type := 30;
condition_type := 40;
condition_type_min :=40;
condition_type_max:=45;
format(0) :=0;
format(1):=1 shift 12 + 4;
format(2) := 5 shift 12 + 5;
format(3):= 6 shift 12 + 10;
format(4):= 11 shift 12 + 11;
format(5) := 12 shift 12 + 12;
format(6) := 13 shift 12 + 13;
format(7) := 14 shift 12 + 15;
format(8):= 16 shift 12 + 16;
format(9):=17 shift 12 + 19;
format(10) := 20 shift 12 + 20;
format(11) := 21 shift 12 + 21;
format(12):= 22 shift 12 + 22;
format(13):= 23 shift 12 + 31;
format(14) := 32 shift 12 + 35;
format(15):= 36 shift 12 + 39;
format(16) := 40 shift 12 + 47;
<* initialising af fixed values bit patterns *>
for index:=0 step 1 until 48 do
bits(index):= (extend (-1)) shift (-48+index);
<* initializing of fixed mask *>
alu_dest_mask := bits(3) shift (48-26);
alu_func_mask := bits(3) shift (48-29);
carry_mask := bits(1) shift (48-23);
alu_source_mask := bits(3) shift (48-32);
addrs_mask := bits(12) shift (48-40);
condition_select_mask := bits(5) shift (48-11);
sekvens_mask := bits(4) shift (48-5);
condition_enable_mask := bits(1) shift (48-6);
condition_pol_mask := bits(1) shift (48-12);
parity_mask := bits(1) shift (48-1);
status_reg_enable_mask := bits(1) shift (48-13);
interupt_enable_mask := bits(1) shift (48-14);
spare_1_mask := bits(2) shift (48-16);
control_enable_mask := bits(1) shift (48-17);
control_code_mask := bits(3) shift (48-20);
dest_extern_mask := bits(1) shift (48-21);
source_extern_mask := bits(1) shift (48-22);
short_dest_mask := bits(4) shift (48-36);
short_source_mask := bits(4) shift (48-40);
special_source_mask := bits(1) shift (48-20);
dest_mask := dest_extern_mask + short_dest_mask;
source_mask := source_extern_mask + short_source_mask;
alu_addrs_mode_mask := bits(3) shift (48-26) + bits(3) shift (48-32);
alu_full_length_mask := bits(9) shift (48-32);
control_full_mask := bits(4) shift (48-20);
<* initialising of fixed code values *>
<* alu source control init *>
a_and_q := 0;
a_and_b := 1;
z_and_q := 2;
z_and_b:= 3;
z_and_a := 4;
d_and_a := 5;
d_and_q := 6;
d_and_z := 7;
<* alu destination control init *>
q_reg := 0;
nop := no_load := 1;
rama := 2;
ramf := 3;
ramqd := 4;
ramd := 5;
ramqu := 6;
ramu := 7;
<* alu_function control init *>
alu_add := 0;
alu_subr := 1;
alu_subs := 2;
alu_or := 3;
alu_and := 4;
alu_notrs := 5;
alu_exor := 6;
alu_exnor := 7;
<* control value for selecting not addressable
registers, inside *>
q_regs_value := -1;
nop_code := mask_in(extend 0,extend 14,sekvens_mask);
nop_code := mask_in(nop_code,extend 1,alu_dest_mask);
nop_code:=mask_in(nop_code,extend 0,dest_extern_mask);
nop_code:=mask_in(nop_code,extend 0,source_extern_mask);
<* mir(15) := 0 , mir(14) := 1. *>
nop_code := mask_in(nop_code,extend 0, spare_1_mask);
<* bit 6 7 in micro instr. shall be of oposite value *>
nop_code := mask_in(nop_code,extend 8,condition_select_mask);
nop_code := mask_in(nop_code,extend 1,interupt_enable_mask);
code_kind := 30;
start_addrs := 0;
if false then
begin
for index:=1 step 1 until 24 do
begin
outchar(out,10);
print_formated(mask_in(extend 0,
extend(-1),std_mask(extend index)));
end;
end;
▶EOF◀