DataMuseum.dk

Presents historical artifacts from the history of:

DANOSI

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

See our Wiki for more about DANOSI

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦506f2fba1⟧ TextFile

    Length: 11733 (0x2dd5)
    Types: TextFile
    Names: »STHUNIT.PAS«

Derivation

└─⟦02956c927⟧ Bits:30010510 DVBS1.SW2114.src.2.14-1 SW2114 REAL #1/4 TIME PASCAL SOURCE REL 2.14
    └─⟦this⟧ »RTP\STHUNIT.PAS« 
└─⟦4f587ad96⟧ Bits:30010518 DVBS1.SW2114.src.2.7-1 SW2114 1/4 Real Time Pascal 2.7 92.06.16
    └─⟦this⟧ »RTP\STHUNIT.PAS« 
└─⟦a2a9e188c⟧ Bits:30010526 DVBS1.SW2114.src.2.6-4 RTP Compiler Source SW2104+SW2114 Disk 1 92.02.03 HEJ HHA
    └─⟦this⟧ »RTP\STHUNIT.PAS« 
└─⟦b607d6035⟧ Bits:30010532 RTP compiler Source 1 2.14 26/9(?)-92 DVBS1.SW2114.src.2.14-8
    └─⟦this⟧ »STHUNIT.PAS« 
└─⟦fd2665794⟧ Bits:30010523 DVBS1.SW2114.src.2.6-1 RTP compiler source SW2104+SW2114 Disk#1 30/1-92 HHA
    └─⟦this⟧ »RTP\STHUNIT.PAS« 

TextFile

\r
unit sthunit;\r
interface\r
uses pscplm, mpaunit;\r
\r
const\r
max_fragment = 8000;\r
alfalength = 12;\r
st_nonexist =  8199 (* 02007h *);\r
save_type_length = 226; (* 100 + 9 * stdrange *)\r
\r
const\r
caaaa= caaddr;\r
csavecode = caaddr;\r
\r
last_comp_unit_bit = 16384; (* see fam_used *)\r
\r
(*** sizes of standard types ***)\r
VAR\r
errorsize,\r
booleansize,\r
charsize,\r
integersize,\r
realsize,\r
bytesize,\r
wordsize,\r
mailboxsize   ,\r
referencesize,\r
poolsize    ,\r
processsize,\r
portsize,\r
chainsize,\r
pointersize,\r
doublesize : byte;\r
\r
(***   types   ***)\r
type\r
\r
alfa = packed array[ 1..alfalength ] of char;\r
\r
\r
\r
\r
type\r
st_modes = ( stat, dyn, dyn_low, dyn_high, fam, bound_fam, open_fam, named_bound_fam );\r
\r
st_addrtype = ( direct, indirect, constaddr );\r
\r
st_declaremode = ( st_forward,st_extern,st_open,st_overload,\r
st_global, st_local, no_specs,St_Jump );\r
\r
protect_spec = ( simpeltype, xpackedtype, pointertype, mailboxtype,\r
referencetype, pooltype, processtype, porttype, chaintype, mailboxpointer,\r
dynamictype, staticfamilytype, programtype );\r
\r
packedtype = (notpacked, ispacked, packed3502);\r
\r
st_protect_type = set of protect_spec;\r
\r
address_type = record\r
dopeoffset : word;\r
addrtype_mode : st_addrtype;\r
case boolean of\r
true: (level,offset: word);\r
false:(addr_label : st_address);\r
end;\r
      CodeFormat = (DeclareLabel, ExternalCall, InternalCall,\r
                    UnCondJump, CondJump,TempSTL,\r
                    CaseLabList, AddLabelToDis,RoutineEntryPoint,\r
                    InternalLBDR, ExternalLBDR, LineNo, SetCode,\r
                    RoutineStart, RoutineStop, ContextEnd,\r
		    LongCall, LongJump,DummyElement,Alligncode,\r
                    DeclareLabelConst);\r
      Tempbin1_record = record\r
        Bin1Code    : CodeFormat;\r
        Bin1Label   : St_address;\r
        Bin2Code    : word;\r
	Bin1Param   : Integer;\r
      end;\r
\r
\r
(**  intern sth information  **)\r
st_chainrec = record\r
st_former: st_address;\r
end;\r
\r
(*******************************************************)\r
(*                                                     *)\r
(*   remember !!!!!!!!!!!!!!                           *)\r
(*   if st_element_format is extended, the nodelength  *)\r
(*   in array node_length may be changed.              *)\r
(*   the initialization of array node_length takes     *)\r
(*   place in procedure init_sth in module rtp86p0     *)\r
(*                                                     *)\r
(*******************************************************)\r
\r
st_element_format = record\r
\r
case boolean of \r
true: ( int_kind : codes );\r
false: (\r
\r
case st_kind : codes of\r
\r
caaaa: (\r
(***  information to survive ***)\r
s_pass      : modulerange;\r
s_make_code: boolean;\r
s_make_set: boolean;\r
s_last_addr,\r
s_obj_addr,\r
s_cur_addr,\r
s_last_created_level,\r
s_first_level,\r
s_next_level,\r
s_nilladdr,\r
s_stopaddr,\r
s_first_addr,\r
s_btype,\r
s_wtype,\r
s_rtype,\r
s_ptype,\r
s_emptyset_addr,\r
s_create_addr,\r
s_dataarea_addr,\r
s_buffer_addr,\r
s_program_addr,\r
s_string_addr,\r
s_undeclared_addr : st_address;\r
s_charspix,\r
s_anonymousspix,\r
s_spix_of_exception : spixrange;\r
s_fileposition    : longint;\r
s_stdsymbol_table : array [ stdrange ] of std_symbol_rec;\r
s_last_cross : st_address;\r
s_version_no:integer);\r
\r
\r
cendlevel : (\r
\r
(***** level nodes *****)\r
level_chain,\r
former_level  : st_address;\r
dummy_level   : integer;\r
st_inf_0      : st_chainrec;\r
last_inserted : st_address);\r
\r
cexternal : (\r
ext_spix  : spixrange;\r
fixup_no,\r
fixup_offset : word ;\r
ext_ref,\r
ext_owner    : st_address);\r
\r
cdeclaration: (\r
st_next_decl : st_address;\r
st_cross_spix: word;\r
st_first_line,\r
st_last_line,\r
st_cross_symbol : st_address);\r
\r
cnewline: (\r
st_line_no   : 0..5;\r
st_line      : array[1..5] of word;\r
st_source    : array[1..5] of 0..255;\r
st_line_mode : array[1..5] of codes;\r
st_next_line : st_address); \r
\r
cnocode: (\r
spec_struct      : st_protect_type;\r
typeref          : st_address;\r
st_size          : word;\r
st_spix          : spixrange;\r
st_inf           : st_chainrec;\r
listref          : st_address;\r
st_listend       : boolean;\r
st_cross_addr    : st_address;\r
st_family_ref    : st_address;\r
st_node_copy     : boolean;\r
st_specs         : st_declaremode);\r
\r
cscalarelem,\r
cconstant : (\r
spec_struct_1    : st_protect_type;\r
typeref_1        : st_address;\r
st_size_1        : word;\r
st_spix_1        : spixrange;\r
st_inf_1         : st_chainrec;\r
st_struc_symb    : st_address;    (* listref_ : st_address; *)\r
st_listend_1     : boolean;\r
st_cross_addr_1  : st_address;\r
const_kind       : codes;    \r
const_val        : integer);\r
\r
\r
ctype: (\r
spec_struct_2    : st_protect_type;\r
typeref_2        : st_address;\r
st_size_2        : word;\r
st_spix_2        : spixrange;\r
st_inf_2         : st_chainrec;\r
listref_2        : st_address;\r
st_listend_2     : boolean;\r
t_first_offset   : word;          (* st_cross_addr : st_address; *)\r
t_last_offset    : word;          (*                             *)\r
st_family_ref_2  : st_address;\r
st_node_copy_2   : boolean;\r
st_specs_2       : st_declaremode;\r
type_address     : address_type;\r
type_mode        : st_modes;\r
fam_used         : word; (* When change, update last_comp_unit_bit *)\r
type_label       : st_address;\r
type_paramsize   : word;\r
st_type_maxoffset: word;\r
t_name_entry_list: st_address;\r
st_t_seg_nr      : byte;\r
st_t_local_near  : boolean;\r
st_file_mark     : longint;\r
MegaT_First_Offset,\r
MegaT_Last_Offset : LongInt);\r
\r
\r
clabel : (\r
spec_struct_3    : st_protect_type;\r
defaslabel       : st_address;\r
label_scope      : word;\r
st_spix_3        : spixrange;\r
label_low        : integer;       (* st_int : st_chainrec; *)\r
label_high       : integer;       (*                       *)\r
listref_3        : st_address;\r
st_listend_3     : boolean;\r
st_cross_addr_3  : st_address;\r
label_offset     : word;\r
MegaLabel_Offset : Longint);\r
\r
\r
cprogram : (\r
spec_struct_4    : st_protect_type;\r
typeref_4        : st_address;\r
st_size_4        : word;\r
st_spix_4        : spixrange;\r
st_inf_4         : st_chainrec;\r
listref_4        : st_address;\r
st_listend_4     : boolean;\r
st_paramsize     : word;          (* st_cross_addr : st_address; *)\r
st_varsize       : word;          (*                             *)\r
st_family_ref_4  : st_address;\r
st_seg_nr        : byte;\r
st_specs_4       : st_declaremode;\r
st_label         : st_address;\r
st_level         : word;\r
max_offset       : word;\r
first_offset     : word;\r
last_offset      : word;\r
name_entry_list  : st_address;\r
st_logic_nr      : word;\r
st_curno         : word;\r
st_local_near    : boolean;\r
st_external_list : st_address;\r
prog_createsize  : word;\r
prog_descr_offset: word;\r
MegaFirst_Offset,\r
MegaLast_Offset : LongInt);\r
\r
cfunction, cprocedure : (\r
spec_struct_5    : st_protect_type;\r
typeref_5        : st_address;\r
st_size_5        : word;\r
st_spix_5        : spixrange;\r
st_inf_5         : st_chainrec;\r
listref_5        : st_address;\r
st_listend_5     : boolean;\r
st_paramsize_5   : word;          (* st_cross_addr : st_address; *)\r
st_varsize_5     : word;          (*                             *)\r
st_family_ref_5  : st_address;\r
st_seg_nr_5      : byte;\r
st_specs_5       : st_declaremode;\r
st_label_5       : st_address;\r
st_level_5       : word;\r
max_offset_5     : word;\r
first_offset_5   : word;\r
last_offset_5    : word;\r
name_entry_list_5: st_address;\r
st_logic_nr_5    : word;\r
st_curno_5       : word;\r
st_local_near_5  : boolean;\r
st_external_list_5:st_address;\r
st_standard_nr   : word;           (* as prog_createsize *)\r
func_result_offset: word;\r
MegaFirst_Offset_5,\r
MegaLast_Offset_5 : LongInt);\r
\r
\r
cinspectparam, cvalueparam, cvarparam, cvar, cforstat,\r
cshared, csharedparam, cwithvar, cwithstat, clockvar: (\r
spec_struct_6    : st_protect_type;\r
typeref_6        : st_address;\r
st_size_6        : word;\r
st_spix_6        : spixrange;\r
var_offset       : word;               (* st_inf : st_chainrec; *)\r
var_level        : word;               (*                       *)\r
listref_6        : st_address;\r
st_listend_6     : boolean;\r
with_c_label     : st_address;         (* st_cross_addr : st_address; *)\r
var_indir        : boolean);\r
\r
\r
cscalar : (\r
spec_struct_7    : st_protect_type;\r
typeref_7        : st_address;\r
st_size_7        : word;\r
scalar_no        : word;\r
st_dummy_7       : st_chainrec;\r
listref_7        : st_address;\r
st_listend_7     : boolean);\r
\r
\r
crecfield : (\r
spec_struct_8    : st_protect_type;\r
typeref_8        : st_address;\r
st_size_8        : word;\r
st_spix_8        : spixrange;\r
field_offset     : word;               (* st_inf : st_chainrec; *)\r
bit_size         : word;               (*                       *)\r
listref_8        : st_address;\r
st_listend_8     : boolean;\r
bit_offset       : byte;               (* st_cross_addr : st_address; *)\r
st_packedfiel    : packedtype;               (*                             *)\r
st_dummy8_2      : word;               (*                             *)\r
st_family_ref_8  : st_address;\r
st_node_copy_8   : boolean;\r
field_addr       : address_type;\r
field_mode       : st_modes);     (* sth initialize *)\r
\r
csubrange, csettype: (\r
spec_struct_9    : st_protect_type;\r
typeref_9        : st_address;\r
st_size_9        : word;\r
(* TOG MOVED subr_mode        : st_modes; *)\r
(* TOG changed to two words *)\r
subr_high        : word;\r
subr_high_high   : word;\r
subr_low         : word;\r
subr_low_high    : word;\r
subr_addr        : address_type;\r
(* \r
st_dummy9_1      : byte;\r
st_dummy9_2      : word;\r
*)\r
st_family_ref_9  : st_address;\r
st_node_copy_9   : boolean;\r
(* *)\r
subr_mode        : st_modes);\r
\r
carraytype : (\r
spec_struct_10   : st_protect_type;\r
typeref_10       : st_address;\r
st_size_10       : word;\r
itype            : st_address;\r
st_packed        : packedtype;\r
array_addr       : address_type;\r
ebit_size        : word);\r
(*\r
st_dummy10       : byte;\r
st_family_ref_10 : st_address;\r
st_node_copy_10  : boolean;\r
*)\r
\r
crecordtype : (\r
spec_struct_11   : st_protect_type;\r
typeref_11       : st_address;\r
st_size_11       : word;\r
last_recfield    : st_address;\r
packed_rec       : packedtype;\r
st_dummy11       : byte;\r
listref_11       : st_address;\r
st_listend_11    : boolean;\r
former_rec       : st_address;\r
st_family_ref_11 : st_address;\r
st_node_copy_11  : boolean;\r
record_addr      : address_type);\r
\r
cstrucconst,\r
cstrucelem : (\r
spec_struct_12   : st_protect_type;\r
typeref_12       : st_address;\r
st_size_12       : word;\r
st_const_label   : st_address;\r
used             : boolean;\r
st_dummy12       : byte;\r
listref_12       : st_address;\r
st_listend_12    : boolean;\r
strucchain       : st_address;\r
data_area        : array[1..max_fragment] of byte);\r
\r
clabeldef : (\r
spec_struct_13   : st_protect_type;\r
jumplistref      : st_address;\r
jumpnoelements   : word;\r
jump_data        : array[1..max_fragment DIV 9] of TempBin1_record));\r
\r
end;\r
\r
st_elemptr = ^st_element_format;\r
\r
\r
\r
(****** VARIABLE ******)\r
var\r
Type_kind : boolean;\r
\r
next_level, first_next_level,\r
last_created_level,\r
currant_addr, currant_level, currant_rec ,first_level, saveinf_addr,\r
obj_addr, last_recaddr, last_addr,\r
\r
st_btype_addr,\r
st_wtype_addr,\r
st_rtype_addr,\r
st_ptype_addr,\r
st_settype_addr,\r
st_mailboxtype_addr,\r
st_referencetype_addr,\r
st_pooltype_addr,\r
st_porttype_addr,\r
st_chaintype_addr,\r
st_emptyset_addr,\r
st_processtype_addr,\r
st_create_addr,\r
st_dataarea_type_addr,\r
st_buffer_type_addr,\r
st_program_type_addr,\r
st_string_type_addr,\r
st_undeclared_addr,   (** address of undeclared node **)\r
first_addr,\r
st_nilladdr,\r
st_stopaddr   : st_address;\r
\r
st_spix_of_exception : spixrange;\r
\r
currant_ptr,\r
saveinf_ptr : st_elemptr;\r
\r
last_cross : st_address;\r
\r
implementation\r
end.\r
«eof»