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

⟦57fca3e65⟧ TextFile

    Length: 13056 (0x3300)
    Types: TextFile
    Names: »retwrite3tx «

Derivation

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

TextFile

mode list.yes
write4tx=edit write3tx
; ret read release 3.0 til release 4.0 :
;
; write i boolean array ligesom i andre typer arrays
;
; zero record length before exit from outchar, -integer, and -text
;

l./page ...0/, r/87.07.08/88.05.29/
l./; start write/, r/seg.0/seg.1/
l1, g4/seg.1/seg.2/
l1, g7/seg.2/seg.3/
l1, g1/seg.4/seg.5/

l./page ...1/, r/87.08.09/88.05.30/
l./s. a102/, r/j56/j100/, r/c25,e39/c30,e50/

l./page ...5/, r/82.12.20/88.11.10/
l./e19=/, l./rl  w0  x3+h4+2/, i/
    al  w0     0       ;   zone.record length :=
    rs  w0  x3+h3+4    ;     0; 
                       ;   <*done here to avoid the instructions on outchar segm*>
/, p-3

l./page ...6/, d./b0:/ ,i#
\f



; jz.fgs 1988.05.27               segment 0                   page ...6...
 
 
k = 0 , g1 = p0         ; no of externals = no of globals
h.                      ;
 
g31:        g32 , g33   ; rel of last point , rel of last absword
j42:   g1 +  21 ,   0   ; rs entry 21 : general alarm
j44:   g1 +  13 ,   0   ; rs entry 13 : last used
j45:   g1 +  30 ,   0   ; rs entry 30 : (saved sref, saved w3)
j46:   g1 +   6 ,   0   ; rs entry  6 : end register expression
j47:   g1 +   4 ,   0   ; rs entry  4 : take expression
j55:   g1 +  29 ,   0   ; rs entry 29 : param alarm
j34:   g1 +  17 ,   0   ; rs entry 17 : index alarm
j48:          0 ,   0   ; own core    : own base
j52:          0 , e29   ; own core    : outtable base
j53:          0 , e31   ; own core    : outtable(lower index)
 
g33 = k - 2 - g31       ; rel of last abs word
 
g32 = k - 2 - g31       ; rel of last point
  
 
w.                      ;
  
e38:   s3, s4           ; end external list
 
#

l./page ...9/, r/82.12.15/88.05.27/, r/segment 0/segment 1/, i#
\f



; fgs 1988.05.27            segment 0                      page ...8c...
 
 
g10: c. g10 - 506,
        m. seg. 0 code too long
     z.
 
m. segment 0
 
     c. 502-g10, 0, r.252-g10>1 z.  ; fill segment
 
     <:write:>,0,0
 
\f



; jz.fgs 1988.05.27               segment 1                   page ...8d...
 
 
k = 0                   ; 
h.                      ;
 
g28:        g29 , g30   ; rel of last point , rel of last absword
j41: 1<11 +   1 ,   0   ; segment 2 address
j62:   g1 +  21 ,   0   ; rs entry 21 : general alarm
j1:    g1 +   3 ,   0   ; rs entry  3 : reserve
j64:   g1 +  13 ,   0   ; rs entry 13 : last used
j65:   g1 +  30 ,   0   ; rs entry 30 : (saved sref, saved w3)
j75:   g1 +  29 ,   0   ; rs entry 29 : param alarm
j54:   g1 +  16 ,   0   ; rs entry 16 : segment table base
j56:   g1 +  91 ,   0   ; rs entry 91 : trapchain
j36:          0 ,   3   ; own core    : replacechars(1:4)
j37:          0 ,   7   ; own core    : replacechars(5:8)
j19:          0 , e19   ; own core    : define conversion table
 
g30 = k - 2 - g28       ; rel of last abs word
 
j18:   g1 +  35 ,   0   ; rs entry 35 : outblock
j6:  1<11 +   1 ,  e2   ; segment 2   : end write
 
g29 = k - 2 - g28       ; rel of last point
  
 
w.                      ;
\f



; fgs 1988.05.30            segment 0                      page ...8e...
 
 
e24: rl  w1  0         ; zone alarm:
     al. w0  b0.       ;   w1 := zone state;
     jl.    (j62.)     ;   general alarm(<:z. state:>);
b0:  <:<10>z. state:>  ;
 
#
l./b4:/, d./b7:/, i#


b4:   <:<10>index    :>
b5:   <:<10>param    :>
b6:   <:<10>string   :>
b27:  <:<10>oddfield :>

b7:   100
  
   <:aram<10><0>:>      ;   alarm text
   <:ite: p:>           ;    <* store backwards as
   <:<10>***wr:>        ;       in a long string *>
e32 = k - 2             ;

#
l./e23:/, d1, i#

e23:  ds. w3    (j65.)  ; kind error:
      al  w3     0      ;   save sref, w3;      
      rs  w3  x2+i43    ;   state after boolean := 
      al  w3    -6      ;     false;               
      rl. w0   ( j64.)  ;   writeblock.(display, last used) :=
#
l./jl. w3 (j42.)/, r/j42/j62/

l./page ...10/, r/82.12.15/88.05.30/, r/segment 0/segment 1/
l./segment 1/, g1/segment 1/segment 2/
l./c20 = b6 - b4/, l1, i/
c26 = b27-b4
/, p-1
l./a60:/, d./jl. w3  (j42.)/, i#

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


a60:  al  w3     2.111  ; index alarm1:
      la  w3  x2+6      ;   type := param1.formal0 extract 3;
      zl. w0  x3+b26.   ;   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     b4.    ;   w0 := text address;
      jl. w3   (j62.)   ;   general alarm(<:index:>);
 
a70:  al. w0  b27.      ; oddfield alarm:
      al  w1  1         ; 
      jl. w3   (j62.)   ;   general alarm (<:oddfield:>, 1);

#

l./page ...11/, r/87.07.08/88.05.30/, r/segment 0/segment 1/
l./rl. w2 (j44.)/, r/j44/j64/
l1, r/j45/j65/
l3, r/(j45.) / (j65.)/
l2, r/j44/j64/
l./sn  w0     23/, d./jl. a60./, i#
    sn   w0     23     ;   if kind <> 23 <* zone *> then
    jl.         a2.    ;    begin
    sh   w0     22     ;     if kind > 22 <* complex array *>
    sh   w0     16     ;     or kind < 17 <* boolean array *> then
    jl.  w3    (j75.)  ;       param alarm;
    se  w0      17     ;     if kind <> boolean array then
    am          1      ;       lower lim := 2
    al  w0      1      ;     else
    hs. w0      b32.   ;       lower lim := 1;
    sl   w1 (x2+i18)   ;     if base word addr < last literal addr
    jl.         a26.   ;     and
    sl   w1  x2+6      ;     base word addr >= first formal then
    rs   w1  x2+i18    ;     last literal addr := base word addr;
a26:rl   w3  x1        ;     w3 := base word;
    so   w3     1      ;     if base addr even then
    jl.         a70.   ;       goto oddfield alarm;
    ba   w1  x2+6      ;     (w0, w1) :=
    dl   w1  x1        ;      array param.(upper index, lower index);
b32=k+1                ;  lower lim:
    sl   w1     2      ;   if lower index >= lower lim then
    jl.         a60.   ;     goto index alarm1;

#

l./page ...12/, r/82.12.20/88.05.27/, r/segment 0/segment 1/
l./rl. w3  j45./, r/j45/j65/
l2, r/segment 1/segment 2/
l1, r/segment1/segment2/

l./page ...13/, r/82.12.15/88.05.27/, r/segment 0/segment 1/
l./seg. 0/, r/0/1/
l./segment 0/, r/0/1/

l./page ...14/, r/82.12.20/88.05.30/, r/segment 1/segment 2/
l./j8:/, r/seg. 2/seg. 3/
l1, r/seg. 3/seg. 4/
l1, r/seg. 0/seg. 1/
l./j43:/, r/1<11+0/   -1/, r/alarm/seg. 1 alarm/

l./page ...15/, r/87.09.09/87.11.27/, r/segment 1/segment 2/
l./sh   w3    23/, d6, i#
    sh   w3    23      ;   if kind >  23 <* zone          *>
    sh   w3    16      ;   or kind <  17 <* boolean array *>
    jl.        a6.     ;     goto not legal array else
    jl.        c6.     ;     goto     legal array;
a6:                    ; not legal array:
    so   w3    8       ;   if kind = array or kind = procedure then
    jl.        e4.     ;    goto kind error;
#

l./page ...16/, r/82.11.30/88.05.30/, r/segment 1/segment 2/
l./on segment 2/, r/segment 2/segment 3/
l./<:aram<10>/, d./e32 =/
l./segmnet0/, r/segmnet0/segment 1/

l./page ...17/, r/82.11.23/88.05.27/, r/segment 1/segment 2/

l./page ...18/, r/82.11.23/88.05.27/, r/segment 1/segment 2/

l./page ...19/, r/82.12.20/88.05.27/, r/segment 1/segment 2/

l./page ...20/, r/87.09.09/88.05.27/, r/segment 1/segment 2/

l./page ...21/, r/87.09.09/88.05.30/, r/segment 1/segment 2/
l./c6:/, d./jl. e4./, i#

c6:                    ; legal array:
    se  w3     17      ;   if kind <> boolean array then
    am         1       ;     lower lim := 2
    al  w3     1       ;   else
    hs. w3     b31.    ;     lower lim := 1;
    sl  w1 (x2+i17)    ;   if baseword addr >= last formal address
    sl  w1 (x2+i18)    ;   and
    jl.        a21.    ;    baseword addr < last litteral address then
    rs  w1  x2+i18     ;    last litteral address := baseword addr;
a21:rl  w3  x1         ; 
    so  w3     1       ;   if base addr even then
    jl.        e48.    ;     goto oddfield error;
    ba  w1     0       ;   (w0, w1) :=
    dl  w1  x1         ;     (upper index, lower index);
b31=k+1                ; lower lim:
    sl  w1     2       ;   if lower index >= lower lim 
    jl.       e8.      ;     goto index error;
#

l./page ...22/, r/87.09.09/88.05.30/, r/segment 1/segment 2/
l./on segment 3/, r/segment 3/segment 4/
l./e4:/, d./jl     x3+e23/ ,i#

e48:am        c26-c19  ; oddf.  error: textrel := seg1rel (<:oddfield:>) else
e4 :am        c19-c18  ; kind   error: textrel := seg1rel (<:param:>   ) else
e8 :am        c18-c20  ; index  error: textrel := seg1rel (<:index:>   ) else
e16:al  w1    c20      ; string error: textrel := seg1rel (<:string:>  )    ;
    rl. w3   (j10.)    ;   goto
    jl     x3+e23      ;    kind error on segment 1;
#

l./page ...23/, r/82.11.23/88.05.27/, r/segment 1/segment 2/
l./seg. 1/, r/seg. 1/seg. 2/
l./segment 1/, r/segment 1/segment 2/

l./page ...24/, r/82.12.20/88.05.27/, g/segment 2/segment 3/
l./j11:/, r/segment 1/segment 2/
l1, r/segment 3/segment 4/

l./page ...25/, r/82.12.20/88.05.27/, r/segment 2/segment 3/

l./page ...26/, r/82.12.20/88.05.27/, r/segment 2/segment 3/

l./page ...27/, r/82.11.23/88.05.27/, r/segment 2/segment 3/

l./page ...28/, r/82.11.23/88.05.27/, r/segment 2/segment 3/

l./page ...29/, r/82.11.23/88.05.27/, r/segment 2/segment 3/

l./page ...30/, r/82.11.23/88.05.27/, r/segment 2/segment 3/

l./page ...31/, r/82.11.23/88.05.27/, r/segment 2/segment 3/

l./page ...32/, r/82.12.20/88.05.27/, r/segment 2/segment 3/

l./page ...33/, r/82.12.20/88.05.27/, r/segment 2/segment 3/

l./page ...34/, r/82.12.20/88.05.27/, r/segment 2/segment 3/
l./segment 1/, r/segment 1/segment 2/

l./page ...35/, r/82.11.23/88.05.27/, r/segment 2/segment 3/
l./segment 2/, r/segment 2/seg. 3/
l./segment 2/, r/segment 2/segment 3/

l./page ...36/, r/82.12.20/88.05.27/, r/segment 3/segment 4/
l./seg. 2/, r/seg. 2/seg. 3/

l./page ...37/, r/82.11.23/88.05.27/, r/segment 3/segment 4/

l./page ...38/, r/82.11.23/88.05.27/, r/segment 3/segment 4/

l./page ...39/, r/82.11.23/88.05.27/, r/segment 3/segment 4/

l./page ...40/, r/82.11.23/88.05.27/, r/segment 3/segment 4/

l./page ...41/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./segment 2/, r/segment 2/segment 3/

l./page ...42/, r/82.12.20/88.05.27/, r/segment 3/segment 4/

l./page ...43/, r/82.12.20/88.05.27/, r/segment 3/segment 4/

l./page ...44/, r/82.12.20/88.05.27/, r/segment 3/segment 4/
l./segm 2/, r/segm 2/segm 3/

l./page ...45/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./segment 2/, r/segment 2/segment 3/

l./page ...46/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./segment 3/, r/segment 3/seg. 3/
l./segment 3/, r/segment 3/segment 4/

l./m. jz/, r/87.11.05/88.05.31/, r/.fgs//, r/8,/8/

l./page ...47/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...48/, r/82.12.20/88.05.27/, r/segment 4/segment 5/
l./segment 0/, r/segment 0/segment 1/

l./page ...49/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...50/, r/82.12.20/88.05.27/, r/segment 4/segment 5/
l./segment 0/, r/segment 0/segment 1/
l./a1:/, l./al  w0  0/, d1
l./jl. w3    (j19.)/, r/table;/table and zero record length;/

l./page ...51/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...52/, r/82.12.20/88.05.27/, r/segment 4/segment 5/

l./page ...53/, r/82.12.10/88.05.27/, r/segment 4/segment 5/

l./page ...54/, r/82.12.10/88.05.27/, r/segment 4/segment 5/

l./page ...55/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...56/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...57/, r/82.12.10/88.05.27/, r/segment 4/segment 5/

l./page ...58/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...59/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...60/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...61/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...62/, r/82.11.23/88.05.27/, r/segment 4/segment 5/

l./page ...63/, r/87.07.08/88.05.27/, r/segment 4/segment 5/
l./segment 4/, r/segment 4/seg. 3/
l./segment 4/, r/segment 4/segment 5/

l./m.jz/, r/82.12.20/88.11.10/, r/8,/8/

l./page ...64/, r/82.11.23/88.05.30/
l./6 segments/, g/6/7/
l./d3/, r/0<12/1<12/
l./5<12 +d12/, g/5/6/
l./; entry point/, r/12 /12/, r/0<12/1<12/
l./5<12 +d12/, g/5/6/
l./4<12+d4/, r/4<12/5<12/
l./5<12 +d12/, g/5/6/
l./4<12+d5/, r/4<12/5<12/
l./5<12 +d12/, g/5/6/
l./4<12+d6/, r/4<12/5<12/
l./5<12 +d12/, g/5/6/

l./...65/, r/87.07.08/88.05.30/
l./5<12 +d12/, g/5/6/
l./5<12 +d12/, g/5/6/, r/; 6/ ; 6/
l./5<12 +d12/, g/5/6/, r/; 6/ ; 6/
l./5<12 +d12/, g/5/6/


l./m.jz 87/, d1, i#
m. jz 88.11.10 algol 8  write      writeint    outchar  outtext
m.                      outinteger replacechar outindex outtable isotable
#
f

end
▶EOF◀