|
|
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: 6912 (0x1b00)
Types: TextFile
Names: »translat3tx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
└─⟦75ff9bef3⟧
└─⟦this⟧ »translat3tx «
; 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◀