DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦64a090a3b⟧ TextFile

    Length: 3840 (0xf00)
    Types: TextFile
    Names: »t2901init«

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »t2901init« 

TextFile







  <* 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◀