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

⟦93c41c425⟧ TextFile

    Length: 6912 (0x1b00)
    Types: TextFile
    Names: »translat3tx «

Derivation

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

TextFile

; fgs 1982.12.17                               translated page ...1...

;b.        ; dummy outer block for fpnames;
d.
p.<:fpnames:>
l.

b. g2      ; block for insertproc;
w.
d.
p.<:fpnames:>
l.
k=h55

s. a6, b6, c6, d7, e7
w.
; a-names: alarm
; b-names. labels in program
; c-names: texts for alarm
; d-names: constants and texts
; e-names: work loc
     ds. w3  e1.    ;   save stack pointer
     se  w2  x3     ;   if left hand side then
     jl.     a1.    ;   alarm(call);
     jl. w3  h29.-4 ;   stack current in
     rl. w3  e0.    ;
     al  w3  x3+10  ;
     rs. w3  e0.    ;   update param pointer
b0:                   ; paramloop:
     jl. w3  h79.-4 ;   terminate current in
     rl. w1  e0.    ;
     bl  w2  x1     ;
     sh  w2  3      ;   if endparam then
     jl.     b4.    ;   goto exit
     bl  w2  x1+1   ;
     wa  w1  4      ;
     rs. w1  e0.    ;   update param pointer
     se  w2  10     ;   if param<>text then
     jl.     a2.    ;   alarm(param)
     rl. w3  e0.    ;
     al. w1  e7.    ;
     al  w3  x3-8   ;
     jd      1<11+42;   lookup param
     se  w0  0      ;   if not found then
     jl.     a4.    ;   alarm(unknown)
     am      16     ;
     bl. w1  e7.    ;
     se  w1  2      ;   if contents<>2 then
     jl.     a5.    ;   alarm(not program)
     rl. w1  e7.    ;
     sh  w1  0      ;   if size<=0 then
     jl.     a5.    ;   alarm(not program)
     rl. w1  e0.    ;
     al  w2  x1-8   ;
     jl. w3  h27.-2 ;   connect infile
     se  w0  0      ;   if not connected then
     jl.     a3.    ;   alarm(error);
     jl. w3 h22.-2  ;   inblock
     rl. w2  h20.+h0;
     rl  w1  x2+1   ;
     se  w1  4      ;   if first = 4
     sn  w1  0      ;   or first = 0 then
     jl.     b6.    ;     goto ok;
     jl.     a5.    ;   else goto alarm (not program);
b6:  al  w1 -1      ;
b1:  al  w1  x1+2   ; loop: if(0,-8388698,511) not found
     sl  w1  451    ;   among words (100:450) then
     jl.     a6.    ;   alarm(date not found)
     am      x2     ;
     rl  w3  x1     ;
     se  w3  0      ;   if word<>0 then
     jl.     b1.    ;   goto loop
     am      x2     ;
     rl  w3  x1+2   ;
     se. w3 (d1.)   ;   if word<>-8388608 then
     jl.     b1.    ;   goto loop
     am      x2     ;
     rl  w3  x1+4   ;
     se  w3  511    ;   if word<>511 then
     jl.     b1.    ;   goto loop
     am      x1     ;
     al  w3  x2+6   ;   w3:=addr of next word
     rl  w1  x3     ;
     rs. w1  e3.    ;   save algol or fortran
     sn  w1  0      ;   if nextword=0 then
     al  w3  x3+12  ;   w3:=w3+12 (fortran)
     bl  w1  x3     ;   w1:=rel.segm
     bl  w0  x3+1   ;   w0:=rel addr
     sl  w1  6      ;   if rel segm<6 or
     sl. w1 (e7.)   ;   rel segm>size then
     jl.     a6.    ;   alarm(date not found)
     sl  w0  4      ;   if rel addr<4 or
     sl  w0  510    ;   rel addr>510 then
     jl.     a6.    ;   alarm(date not found)
     rs. w1  h20.+h1+16;segment count := rel segm;
     jl. w3  h22.-2 ;
     am     (0)     ;   addr of date :=
     al  w1  x2-3   ;     addr of first word of program +
     rs. w1  e4.    ;     rel addr                      -3;
     rl. w1  e0.    ;
     al  w0  x1-8   ;
     jl. w3  h31.-2 ;   outtext(filename)
     al. w0  d5.    ;
     jl. w3  h31.-2 ;   outtext(translated by)
     al. w0  d6.    ;
     rl. w1  e3.    ;
     se  w1  0      ;
     al. w0  d7.    ;
     jl. w3  h31.-2 ;   outtext(algol or fortran)
     rl. w0  (e4.)  ;
     al. w1  d4.    ;
     al  w2  46     ;
     jl. w3  b2.    ;   print(dd.)
     al. w1  d3.    ;
     al  w2  46     ;
     jl. w3  b2.    ;   print(mm.)
     al. w1  d2.    ;
     al  w2  32     ;
     jl. w3  b2.    ;   print(yy )
     rl. w1  e4.    ;
     rl  w0  x1+2   ;
     al. w1  d4.    ;
     al  w2  46     ;
     jl. w3  b2.    ;   print(hours.)
     al. w1  d3.    ;
     al  w2  10     ;
     jl. w3  b2.    ;   print(min<10>)
     jl.     b0.    ;   goto paramloop

b2:  rs. w3  e6.    ;   procedure print
     al  w3  0      ;
     wd  w0  x1     ;
     rs. w3  e5.    ;
     jl. w3  h32.-2 ;
     48<12+2        ;
     jl. w3  h26.-2 ;
     rl. w0  e5.    ;
     jl.     (e6.)  ;

b4:  rl. w1  d0.    ; exit:
     al  w2  0      ;
     se  w1  0      ;
     al  w2  1      ;   if errors then ok no
     jl.     h7.    ;   goto fp

c0:    <:***<0>:>
c1:    <: call<10><0>:>
c2:    <: param <0>:>
c3:    <: error<10><0>:>
c4:    <: unknown<10><0>:>
c5:  <: not program<10><0>:>
c6:  <: date not found<10><0>:>
a1:  am      c1-c2  ;   alarm(call)
a2:  am      c2-c3  ;   alarm(param)
a3:  am      c3-c4  ;   alarm(error)
a4:  am      c4-c5  ;   alarm(unknown)
a5:  am      c5-c6  ;   alarm(not program)
a6:  al. w0  c6.    ;   alarm(date not found)
     rs. w0  e2.    ;   save alarm cause
     al. w0  c0.    ;
     jl. w3  h31.-2 ;   outtext(***)
     rl. w3  e1.    ;   
     al  w0  x3+2   ;
     jl. w3  h31.-2 ;   outtext(programname)
     rl. w1  e2.    ;
     sh. w1  c2.    ;
     jl.     b5.    ;
     al  w2  32     ;
     jl. w3  h26.-2 ;   outsp
     rl. w3  e0.    ;
     al  w0  x3-8   ;   outtext(param)
     jl. w3  h31.-2 ;
b5:  rl. w0  e2.    ;
     jl. w3  h31.-2 ;   outtext(error cause)
     rl. w2  d0.    ;
     al  w2  x2+1   ;   errors:=errors+1
     rs. w2  d0.    ;
     rl. w0  e2.    ;
     sn. w0  c1.    ;
     jl.     b4.    ;
     se. w0  c2.    ;
     jl.     b0.    ;   goto paramloop
     rl. w1  e0.    ;   if alarm(param)
     rl  w0  x1-2   ;
     jl. w3  h32.-2 ;   then write(param)
     1              ;
     al  w2  10     ;
     jl. w3  h26.-2 ;   outcr
     jl.     b0.    ;   goto paramloop

d0:  0              ;   errors
d1:  -8388608       ;
d2:  1              ;
d3:  100            ;
d4:  10000          ;
d5:  <: translated by<0>:>
d6:  <: fortran <0>:>
d7:  <: algol <0>:>
g2=k-h55
 
e0:  0              ;   addr of sep in front of next param
e1:  0              ;   addr of sep in front of program name
e2:  0              ;   error text addr
e3:  0              ;   algol or fortran
e4:  0              ;   addr of date
e5:  0              ;   work loc
e6:  0              ;   work loc
e7:  0              ;   lookup area

m.translated 1982.12.17
e.

g0:g1: (:g2+511:)>9    ; segm
       0, r.4          ; doc
       s2              ; date
       0, 0            ; fil, block
       2<12+0          ; contents.entry
       g2              ; loadlength
d.
p.<:insertproc:>
▶EOF◀