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