|
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: 6144 (0x1800) Types: TextFile Names: »uti33«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦f8e4b63af⟧ »trcfput« └─⟦this⟧
; rc 03.04.79 translated page ...1... s. g2 w. d. p.<:fpnames:> l. k=h55 b. 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 word in program jl. a5. ; <>4 then alarm(not program) al w1 99 ; 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 jl. w3 h22.-2 ; am (0) ; al w1 x2-3 ; rs. w1 e4. ; 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 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◀