DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

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

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦2ae93055b⟧ TextFile

    Length: 6144 (0x1800)
    Types: TextFile
    Names: »retmont3tx  «

Derivation

└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
    └─⟦75ff9bef3⟧ 
        └─⟦this⟧ »retmont3tx  « 

TextFile

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◀