DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 DFS Tapes

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

See our Wiki for more about Rational R1000/400 DFS Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦822dcd6cf⟧ EM, TextFile

    Length: 4096 (0x1000)
    Types: EM, TextFile
    Names: »ST.EM«

Derivation

└─⟦b4205821b⟧ Bits:30000743 8mm tape, Rational 1000, DFS, D_12_7_3 SEQ288
    └─ ⟦this⟧ »ST.EM« 
└─⟦b434774df⟧ Bits:30000528 8mm tape, Rational 1000, DFS, D_12_6_5
    └─ ⟦this⟧ »ST.EM« 
└─⟦bc1274df5⟧ Bits:30000750 8mm tape, Rational 1000, DFS backup from PAM's R1000
    └─ ⟦this⟧ »ST.EM« 

TextFile

[case,%1%]
    [when,cp]
	[flush_csa]
	[save_seq_state]
	[set SDR [xeq seq test_read_top 0]]
	[set SDR [xeq seq read_sdr]]
	[set CUR_LEX [#extract [arg 2 [var sdr]],3C,4]]
	[set CURRENT_NAME [#extract [arg 1 [var sdr]],0,20]]
    	[set ST_INNER [arg 2 [xeq seq test_read_resolve 0 [var CUR_LEX]]]]
	[set ST_PRED  [#extract [xeq seq test_read_pred 0],2C,14]]
	[set ST_FRAME [var ST_PRED]]
	[restore_seq_state]
	[dpc]
	[display_frame_info [var ST_INNER]]
	[display_frame_info [var ST_PRED]]
    [when,*]
	[display_frame_info [var ST_FRAME]]
    [when,poffs]
	[get_arg %2%,OFFSET,(words),:]
	set BIT_OFFS [and,[lshift,[add,[var ST_FRAME],[var OFFSET]],7],
                                    0FFFFFF80];
	! - start tag_query with MEM 3 because of SET_INH problems;
	tag_query,3,1,[var CURRENT_NAME],[var BIT_OFFS];
	[#le,[var SET_NUM],0F]
	  [set CONTROL_WORD [xeq MEM[rshift,[var SET_NUM],2],
                              READ_MEMORY_SPECIAL,[mul,[var SET_NUM],10],
                                1,[var CURRENT_NAME],[var BIT_OFFS]]]
	  [write OFFSET,,,,,= [rshift,[var BIT_OFFS],7]]
	  display_control_word [arg 1 [var CONTROL_WORD]],
		               [arg 2 [var CONTROL_WORD]],
			              [var BIT_OFFS];
	[else]
	  write NO BOARDS HIT - PAGE NOT IN MEMORY;
	[end]
	kill CONTROL_WORD;
	kill SPACE;
	kill NAME;
	kill BIT_OFFS;
	kill SET_NUM;
	kill TS_DATA;
    [when,noffs]
	[get_arg %2%,OFFSET,(words),:]
	[set OFFSET [sub,0,[var OFFSET]]]
	set BIT_OFFS [and,[lshift,[add,[var ST_FRAME],[var OFFSET]],7],
                                    0FFFFFF80];
	! - start tag_query with MEM 3 because of SET_INH problems;
	tag_query,3,1,[var CURRENT_NAME],[var BIT_OFFS];
	[#le,[var SET_NUM],0F]
	  [set CONTROL_WORD [xeq MEM[rshift,[var SET_NUM],2],
                              READ_MEMORY_SPECIAL,[mul,[var SET_NUM],10],
                                1,[var CURRENT_NAME],[var BIT_OFFS]]]
	  [write OFFSET,,,,,= [rshift,[var BIT_OFFS],7]]
	  display_control_word [arg 1 [var CONTROL_WORD]],
		               [arg 2 [var CONTROL_WORD]],
			              [var BIT_OFFS];
	[else]
	  write NO BOARDS HIT - PAGE NOT IN MEMORY;
	[end]
	kill CONTROL_WORD;
	kill SPACE;
	kill NAME;
	kill BIT_OFFS;
	kill SET_NUM;
	kill TS_DATA;
    [when,new]
	[get_arg %2%,STACK_NAME,:]
	[set CURRENT_NAME     [var STACK_NAME]]
	[set WORDS    1]
	! - start tag_query with MEM 3 because of SET_INH problems;
	[tag_query,3,1,[var CURRENT_NAME],180]
	[#le,[var SET_NUM],0F]
	  [set CONTROL_WORD [xeq MEM[rshift,[var SET_NUM],2],
                              READ_MEMORY_SPECIAL,[mul,[var SET_NUM],10],
                                1,[var CURRENT_NAME],180]]
	  [assert_of_kind AUXILIARY_STATE [var CONTROL_WORD]]
	  [set ST_INNER [#extract,[arg 2 [var CONTROL_WORD]],0,14]]
	  [set BIT_OFFS [and,[lshift,[arg 2 [var ST_INNER]],7]],0FFFFFF80]
	  ! - start tag_query with MEM 3 because of SET_INH problems;
	  [tag_query,3,1,[var CURRENT_NAME],[var BIT_OFFS]]
	  [#le,[var SET_NUM],0F]
	  [set CONTROL_WORD [xeq MEM[rshift,[var SET_NUM],2],
                              READ_MEMORY_SPECIAL,[mul,[var SET_NUM],10],
                                1,[var CURRENT_NAME],[var BIT_OFFS]]]
	    [assert_of_kind ACTIVATION_STATE [var CONTROL_WORD]]
	    [set ST_PRED [#extract,[arg 2 [var CONTROL_WORD]],0,14]]
	    [set ST_FRAME [var ST_PRED]]
	    [display_frame_info [var ST_INNER]]
	    [#ne,[var ST_INNER],[var ST_PRED]]
		[display_frame_info [var CURRENT_NAME] [var ST_PRED]]
	    [end]
	  [else]
	    write NO BOARDS HIT - PAGE NOT IN MEMORY;
	  [end]
	[else]
	  write NO BOARDS HIT - PAGE NOT IN MEMORY;
	[end]
	[kill STACK_NAME]
	[kill CONTROL_WORD]
	[kill SPACE]
	[kill NAME]
	[kill BIT_OFFS]
	[kill SET_NUM]
	[kill TS_DATA]
	
[endcase]«nul»