|
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: 7680 (0x1e00) Types: TextFile Names: »retmstat4tx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code └─⟦75ff9bef3⟧ └─⟦this⟧ »retmstat4tx «
mode list.yes mainstat5tx=edit mainstat4tx ; split dump in monitor release 80.0 ; l./page ...3/, r/88.09.23/89.07.05/ l./<*9*>/, r/),/,/, l1, i/ <*10*><:addr outside dump area:>), /, p-1 l./page ...17/, i# \f <* fgs 1988.09.23 mainstat page ...16a...*> procedure position (zdump, first_addr); value first_addr ; zone zdump ; integer first_addr ; begin integer segment, relative; segment := seg (zdump, first_addr, relative); setposition (zdump, 0, segment ); inrec6 (zdump, relative); end procedure position; integer procedure seg (zdump, first_addr, rel); value first_addr ; zone zdump ; integer first_addr, rel ; begin own integer first_addr_low__part, top_addr_low__part, no_of_segs_low__part, first_addr_high_part, top_addr_high_part, no_of_segs_high_part; integer segment, relative, monrel, no_of_segs_in_dump, addr_last_w_of_dumptable, first_addr_in_dump, no_of_words_in_dump, segm_offset; integer field ifld; integer array proc (1:10), iadummy (1:1); \f <* fgs 1988.09.23 mainstat page ...16b...*> if testoutput then write (out, "nl", 2, <:procedure seg : first addr = :>, first_addr, "nl", 1, <:seen this dump before = :>, if seen_this_dump_before then <:true:> else <:false:>); if not seen_this_dump_before then begin <*this dumpfile just connected*> seen_this_dump_before := true; ifld := 2; segment := 0; relative := 64; setposition (zdump, 0, segment); inrec6 (zdump, relative ); inrec6 (zdump, 2 ); system (5) move core :( monitor (4) proc descr addr :(zdump, 0, iadummy), proc); no_of_segs_in_dump := proc (10); monrel := zdump.ifld; if testoutput then write (out, "nl", 1, <:monrel = :>, monrel shift (-12), <:.:>, monrel extract 12); if monrel < 80 shift 12 then begin <*contigous dump area*> first_addr_low_part := 0; no_of_segs_low_part := no_of_segs_in_dump; top___addr_low_part := no_of_segs_in_dump * 512; end else \f <* fgs 1988.09.23 mainstat page ...16c...*> begin <*split dump*> relative := 12; setposition (zdump, 0, segment); inrec6 (zdump, relative ); inrec6 (zdump, 2 ); addr_last_w_of_dumptable := zdump.ifld; relative := addr_last_w_of_dumptable - 8; if testoutput then write (out, "nl", 1, <:addr l w of dumptable = :>, relative); setposition (zdump, 0, segment); inrec6 (zdump, relative ); inrec6 (zdump, 2 ); first_addr_low_part := zdump.ifld; inrec6 (zdump, 2 ); no_of_segs_low_part := zdump.ifld; top_addr_low_part := first_addr_low_part + 512 * no_of_segs_low_part; inrec6 (zdump, 2 ); first_addr_high_part := zdump.ifld; inrec6 (zdump, 2 ); no_of_segs_high_part := zdump.ifld; top_addr_high_part := first_addr_high_part + 512 * no_of_segs_high_part; if testoutput then write (out, "nl", 1, <:f. addr low part = :>, first_addr_low_part, "nl", 1, <:t. addr low part = :>, top___addr_low_part, "nl", 1, <:n. segs low part = :>, no_of_segs_low_part, "nl", 1, <:addr. l. w d.tabl = :>, addr_last_w_of_dumptable, "nl", 1, <:f. addr high part = :>, first_addr_high_part, "nl", 1, <:t. addr high part = :>, top___addr_high_part, "nl", 1, <:n. segs high part = :>, no_of_segs_high_part); end <*split dump*>; end <*dump file just connected*>; \f <* fgs 1988.09.23 mainstat page ...16d...*> if first_addr >= first_addr_low_part and first_addr < top___addr_low_part then begin <*low part*> first_addr__in_dump := first_addr_low_part; no_of_words_in_dump := (top_addr_low_part - first_addr) / 2; segm_offset := 0; if testoutput then write (out, "nl", 1, <:low part ::>, "nl", 1, <:first addr in dump = :>, first_addr_in_dump, "nl", 1, <:no of wrds in dump = :>, no_of_words_in_dump, "nl", 1, <:segment offset = :>, segm_offset); end else if first_addr >= first_addr_high_part and first_addr < top___addr_high_part then begin <*high part*> first_addr__in_dump := first_addr_high_part; no_of_words_in_dump := (top_addr_high_part - first_addr) / 2; segm_offset := no_of_segs_low_part; if testoutput then write (out, "nl", 1, <:high part ::>, "nl", 1, <:first addr in dump = :>, first_addr_in_dump, "nl", 1, <:no of wrds in dump = :>, no_of_words_in_dump, "nl", 1, <:segment offset = :>, segm_offset); end else error (10); <*outside dump*> segment := segm_offset + (first_addr - first_addr_in_dump) shift (-9); relative := (first_addr - first_addr_in_dump) extract 9 ; if testoutput then write (out, "nl", 1, <:segment = :>, segment, "nl", 1, <:relative = :>, relative); seg := segment; rel := relative; end procedure seg; # l./page ...17/, r/88.09.23/89.07.05/ l./boolean/, r/testoutput/testoutput, seen_this_dump_before/ l./page ...20/, r/89.01.12/89.07.06/ l./begin <*dump*>/, l3, i/ seen_this_dump_before := false; /, p-1 l./page ...22/, r/88.09.23/89.07.06/ l./setposition (dz, 0, ia(0)/, d1, i/ position (dz , ia (0)); /, p-2 l./setposition (dz1/, d1, i/ position (dz1, pda ); /, p-2 l./page ...23/, r/88.09.23/89.07.06/ l./inrec6 (dz, 2);/, d1, i/ if main_kind = 80 then begin inrec6 (dz, 2); rpd := dz.ifi; inrec6 (dz, 2); tpd := dz.ifi; end; /, p-5 l./setposition (dz, 0, (ia(0)/, d6, i/ position (dz , ia (0) + 2 * devno); inrec6 (dz , 2 ); pda := dz.ifi ; position (dz1, pda ); inrec6 (dz1, 2 ); /, p-6 l./inrec6 (dz, 2); rpd :=/, d1, i/ if main_kind = 80 then begin inrec6 (dz, 2); rpd := dz.ifi; inrec6 (dz, 2); tpd := dz.ifi; end; /, p-5 l./page ...26/, r/88.09.23/89.07.06/ l./if monrelease > 15 shift/, r/>/>=/ l./page ...27/, r/88.09.23/89.07.06/ l./if monrelease > 15 shift/, r/>/>=/ f ▶EOF◀