|
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: 6144 (0x1800) Types: TextFile Names: »retmont3tx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code └─⟦75ff9bef3⟧ └─⟦this⟧ »retmont3tx «
mode list.yes montest4tx=edit montest3tx ; connect output : segm < 2 + key ; l./procedure dump;/, l./typeerror (s_text/, i/ begin /, p1 l./init_pointers/, i/ dump_area := false; <*initpointers as for core*> end; /, p-2 l./procedure info;/, l./internal all/, l1, i/ used free /, p-2 l./buf all/, l1, i/ used free /, p-2 l./external all/, l1, i/ used free kind.<kind> /, p-3 l./area all/, l1, i/ used free kind.<kind> /, p-3 l./ result := 2; <*1 < 1 : 1 segment, preferably drum*>/, r/2/1 shift 2/, r/1 < 1/1 < 2/, r/preferably drum/temporary/, p1 l./procedure read_params(/, l./<* specif/, d./8 - undefined/, i/ <* specif : 1 - user.<name> 2 - reserver.<name> 3 - name.<name> 4 - all 5 - devno.<integer> 6 - devno.<integer>.all 7 - main.<name> 8 - used 9 - free 10 - kind.<kind> 11 - undefined specification *> / l./specif:=8/, r/8/11/ l./if param(1) = real<:user/, i/ if param(1) = real<:used:> then specif := 8 else if param(1) = real<:free:> then specif := 9 else /, p-1 l1,l./specif:=8/, r/8/11/ l./specif:=8/, r/8/11/ l./else specif:=8/, r/8/11/ l./end read_params;/, l-2, i/ if param (1) = real <:kind:> then begin if nextparam (p_number) then begin devno := round param (1); name (1) := param (1); specif := 10; end else typeerror (anything, <:parameter error ::>, dummy); end else /, l1, p-3 l./procedure external;/, l./specif:= 4/, r/4/8/, r/all/used/ l1,l./specif < 8/, r/8/11/ l./<* main.<name> *>/, l2, i/ <* used *> if contents.eprocname (1) shift (-40) extract 8 <> 0 then type_external; <* free *> if contents.eprocname (1) shift (-40) extract 8 = 0 then type_external; <* kind.<kind> *> if contents.eprocname (0) extract 24 = devno then type_external; /, p-3 l./<:not found : user.:>/, d2, i/ <:not found : user.:> , <:not found : reserver.:>, <:not found : name.:> , <:not found : all:> , <:not found : devno.:>, <:not found : devno.:> , <:not found : main.:> , <:not found : used:> , <:not found : free:> , <:not found : kind.:>) , name); / l./procedure area_process;/, l./addr, moves/, r/addr/addr, kind/ l./specif:= 4/, r/4/8/, r/all/used/ l./read_params(/, r/i);/kind);/ l./specif < 8/, r/8/11/ l./<* main *>/, l2, i/ <* used *> if contents.eprocname (1) shift (-40) extract 8 <> 0 then type_areaprocess; <* free *> if contents.eprocname (1) shift (-40) extract 8 = 0 then type_areaprocess; <* kind.<kind> *> if contents.eprocname (0) extract 24 = kind then type_areaprocess; /, p-6 l./type_error (s_text,/, r/s_text/if specif <> 10 then s_text else s_number/ l./<:not found : user.:>/, d1, i/ <:not found : user.:> , <:not found : reserver.:>, <:not found : name.:> , <:not found : all:> , <::> , <::> , <:not found : main.:> , <:not found : used:> , <:not found : free:> , <:not found : kind.:>) , name); / l./procedure buf;/, l./check := 6;/, r/6/8/ l./if param(1) = real<:sende:>/, i/ if param(1) = real<:used:> then check := 6 else if param(1) = real<:free:> then check := 7 else /, p-2 l./ok := false; <*param error*>/, i/ ok := true; <*used*> ok := true; <*free*> /, p-2 l./ok:= start_addr + addr >= buf_addr ;/, l1, i/ ok := contents.base (4) <> 0 or contents.base (5) <> 0; ok := contents.base (4) = 0 and contents.base (5) = 0 ; /, p-5 l./type_error (s_text , <:not found/, d5, i/ type_error (s_text , <:not found : all:> , dummy ); type_error (s_text , <:not found : sender.:> , sender_name ); type_error (s_text , <:not found : receiver.:>, receiver_name); type_error (s_text , <:not found : receiver.:>, receiver_name); type_error (s_number, <:not found : addr.:> , param ); type_error (s_number, <:not found : addr.:> , param ); type_error (s_number, <:not found : used:> , param ); type_error (s_number, <:not found : free:> , param ); / l./procedure internal;/, l./<:interrupt m/, r/interrupt m/(unused) / l./boolean found,/, r/;/, type_used, type_free;/ l./type_all := true;/, r/true/type_free := false/, r/;/; type_used := true;/ l./if param (1) = real <:name/, i/ if param (1) = real <:used:> then begin type_all := type_free := false; type_used := ok := true; end else if param (1) = real <:free:> then begin type_all := type_used := false; type_free := ok := true; end else /, l1, p-2 l./type_all := false;/, r/false/type_used := type_free := false/ l./<* search internal proc descr *>/, l./if type_all then type_descr/, d2, i/ if type_all then typedescr else if type_used and contents.raf (1) shift (-40) extract 8 <> 0 then typedescr else if type_free and contents.raf (1) shift (-40) extract 8 = 0 then typedescr else if name (1) = contents.raf (1) and name (2) = contents.raf (2) then typedescr; /, l1, p-12 f end ▶EOF◀