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

⟦eb70e31f4⟧ TextFile

    Length: 3072 (0xc00)
    Types: TextFile
    Names: »retread3tx  «

Derivation

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

TextFile

mode list.yes
read4tx=edit read3tx
; ret read release 3.0 til release 4.0 :
;   readchar låner et ord over staktop til værdien -1,
;   som den ikke behøver alligevel
;
; read fra boolean array ligesom fra andre typer arrays
;
l./page ...9/, r/87.07.17/88.05.31/
l./b. a0/, d1,
l./e12:/, d./jl. e20./, i#

b. a1, b1
w.

b1:  <:<10>oddfield :> ;

a1:  al. w0     b1.    ; oddfield alarm:
     al  w1     1      ;   param := 1;
     jl. w3    (j6.)   ;   general alarm (<:oddfield:>, param);

e12:                   ; init pseudo zone:
     rs  w3 x2+i3      ;     save(return);
     sh  w0     22     ;     if kind > 22 <* complex array *>
     sh  w0     16     ;     or kind < 17 <* boolean array *>
     jl. w3    (j18.)  ;      then param alarm;
;    se  w0     17     ;     if kind <> boolean array then
;    am         1      ;       lower lim := 2
;    al  w0     1      ;     else
;    hs. w0     b0.    ;       lower lim := 1;
     sl  w1 (x2+i15)   ;     if baseword addr < max
     jl.        a0.    ;     and
     sl  w1  x2+6      ;     baseword addr >= first formal then
     rs  w1  x2+i15    ;      max := basewordaddress;
a0:  rl  w3  x1        ;     w3 := baseword; 
     so  w3     1      ;     if baseword even then
     jl.        a1.    ;       goto oddfield alarm;
     ba  w1  x2+6      ;     (w0, w1) :=
     dl  w1  x1        ;     arrayparam.(upper index, lower index);
b0=k+1                 ; lower lim:
     sl  w1     2      ;     if lower index >= lower lim then
     jl.        e20.   ;      index alarm;
#

l./page ...11/, r/82.11.23/88.05.31/
l./b. b0 w./, d./b0:/, d, i#
  
  
b. b1 w.               ;

b0:  <:<10>index  <0>:>;

b1=k-1                 ; shift (type) table:
h.
      0, 1, 2, 2, 3, 3 ;
w.


e20: al  w3     2.111  ; index alarm1:
     la  w3  x2+6      ;   type := param1.formal0 extract 3;
     zl. w0  x3+b1.    ;   shifts := case (type) of (0, 1, 2, 2, 3, 3);
     al  w3     1      ;   typelength :=
     ls  w3    (0)     ;     1 < shifts;
     wa  w1     6      ;   index := lower index + type length;
     ac  w0    (0)     ;   shifts := - shifts;
     ls  w1    (0)     ;   index := index > shifts;
     al. w0     b0.    ;   w0 := text address;
     jl. w3    (j6.)   ;   general alarm(<:index:>);
 
e.                     ;

#

l./page ...13/, r/82.12.15/87.11.27/
l./rs  w0  x2+i31/, r/:=/:= -1;/
l1, d

l./page ...15/, r/82.12.02/87.11.27/
l./a1:/, i/
     rs  w0  x2+i33    ;   oldtype := -1;
/, l1, p-2

l./page ...34/, r/87.08.21/88.06.01/
l./bz  w0  x2+7/, i/
     al  w0  x2+6      ;   max :=
     ba  w0  x2+4      ;     addr first formal0 +
     rs  w0  x2+i15    ;     appetite;
/, p1
l./al  w0  x2+6/, d2

l./m.rc 87/, r/87.09.10/88.06.01/

f
▶EOF◀