|
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: 11520 (0x2d00) Types: TextFile Names: »uti35«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦f8e4b63af⟧ »trcfput« └─⟦this⟧
; ta 1977.08. label, page ...1... s. a5,b0,c27,d0,e12,f4,g2 w. d. p.<:fpnames:> l. k=h55 d0=56 ; buffer length for label al w1 x3+2 ; save prog name addr rs. w1 c6. ; se w3 x2 ; if left hand side then jl. e1. ; alarm(<:call:>); al w3 x3+10 ; rs. w3 c7. ; save param pointer; al. w1 h19. ; w1:=addr(cur prog zone); jl. w3 h79. ; terminate zone; al. w3 c15. ; first shared(cur prog zone):= rs. w3 h80.+2 ; addr of buffer start; al w3 x3-1 ; base buf(cur prog zone):= rs w3 x1+h0 ; first of buf-1; al w3 x3+d0 ; last buf(cur prog zone):= rs w3 x1+h0+2 ; base buf+label length; rl. w3 c7. ; bl w2 x3 ; if endparam then sh w2 3 ; then alarm(<:param missing:>); jl. e11. ; bl w2 x3+1 ; se w2 10 ; if integer then jl. e3. ; alarm(<:param:>); rl w1 x3+4 ; if more then 3 char param se w1 0 ; then jl. a1. ; goto maybe nrze; rl w3 x3+2 ; rl. w2 c24. ; if <:mto:> then sn. w3 (c20.) ; goto found; jl. a5. ; rl. w2 c26. ; if <:nrz:> then sn. w3 (c22.) ; goto found; jl. a5. ; rl. w2 c25. ; if <:mte:> then sn. w3 (c21.) ; goto found jl. a5. ; else jl. a4. ; goto lookup modekind; a1: se. w1 (c23.) ; maybe nrze: jl. a4. ; if -,<:e:> then goto lookup; rl w3 x3+2 ; rl. w2 c27. ; if <:nrze:> then sn. w3 (c22.) ; goto found; jl. a5. ; \f ; ta 1977.08.17 label, page ...2... a4: rl. w3 c7. ; lookup modekind: al. w1 h54. ; w1:=lookup area; al w3 x3+2 ; w3:=name area; jd 1<11+42 ; lookup(param1); se w0 0 ; if not found then jl. e5. ; alarm(<:unknown:>); bz w2 x1+1 ; se w2 18 ; if kind<>18 then jl. e4. ; alarm(<:modekind:>); bl w2 x1 ; sh w2 -2041 ; if mode>6 or sz w2 1 ; odd then jl. e4. ; alarm(<:modekind:>); rl w2 x1 ; a5: rs. w2 c10. ; found: move modekind to filedescr. rl. w3 c7. ; al w3 x3+10 ; step param pointer; rs. w3 c7. ; bl w2 x3 ; sh w2 3 ; if endparam then jl. e11. ; alarm(<:param missing:>); se w2 4 ; if point then jl. e2. ; alarm(<:param:>); bl w2 x3+1 ; se w2 10 ; if integer then jl. e3. ; alarm(<:param:>); al. w1 h54. ; w1:=lookup area; al w3 x3+2 ; w3:=name addr. jd 1<11+42 ; lookup(param2); se w0 0 ; jl. a0. ; if found then bz w2 x1+1 ; begin se w2 18 ; if kind<>18 then jl. e4. ; alarm(<:modekind:>); bl w2 x1 ; sh w2 -2041 ; if mode>6 or sz w2 1 ; odd then jl. e4. ; alarm(<:modekind:>); al w3 x1+2 ; end; a0: dl w1 x3+2 ; ds. w1 c12. ; move tapename dl w1 x3+6 ; to filedescriptor; ds. w1 c14. ; rl. w1 c11. ; ls w1 -8 ; ls w1 8 ; se. w1 (c0.) ; if -,<:mt:> then jl. e6. ; alarm(<:illegal tape:>); al w0 0 ; rl. w1 c13. ; ls w1 8 ; ld w1 8 ; if too short or too long sn w1 0 ; sn w0 0 ; then jl. e6. ; alarm(<:illegal tape:>); \f ; ta 1977.08.17 label, page ...3... dl. w1 c12. ; ld w1 16 ; rl. w2 c13. ; ls w2 -8 ; wa w1 4 ; ds. w1 c3. ; tapename:=mtname-<:mt:> sz. w2 (c8.) ; if 2 last not digits then jl. e6. ; alarm(<:illegal tape:>); rl. w2 c12. ; ls w2 8 ; ls w2 -8 ; sz. w2 (c8.) ; if 2 preceeding not digits then jl. e6. ; alarm(<:illegal tape:>); rl. w3 c7. ; al w3 x3+10 ; rs. w3 c7. ; step param pointer bl w2 x3 ; sh w2 3 ; if more parameters then jl. a3. ; begin se w2 4 ; if point then jl. e2. ; alarm(<:param:>); bl w2 x3+1 ; se w2 10 ; if integer then jl. e7. ; alarm(<:illegal access kind:>); rl w0 x3+2 ; rs. w0 c4. ; save param3 ls w0 -16 ; sn w0 112 ; p jl. a2. ; sn w0 114 ; r jl. a2. ; se w0 119 ; w jl. e7. ; if not p,w,r then ; alarm(<:illegal access kind:>); a2: rl. w3 c7. ; al w3 x3+10 ; rs. w3 c7. ; bl w2 x3 ; if endparam then sh w2 3 ; alarm(<:project number missing:>); jl. e8. ; se w2 4 ; if point then jl. e2. ; alarm(<:param:>); bl w2 x3+1 ; sn w2 10 ; if text then jl. e9. ; alarm(<:illegal project number:>); rl w2 x3+2 ; sl. w2 (c9.) ; if proj.number>999999 then jl. e9. ; alarm(<:illegal proj.number:>); rs. w2 c5. ; save project number; bl w2 x3+4 ; sl w2 4 ; if more parameters then jl. e10. ; alarm(<:too many parameters:>); \f ; ta 1977.08.17 label, page ...4... a3: al. w1 h19. ; cur prog zone al. w2 c10. ; addr filedescriptor jl. w3 h28. ; connect output; se w0 0 ; if not connected then jl. e12. ; alarm(<:connect:>); rl w3 x1+h0+2 ; rs. w3 h80.+4 ; last shared; al. w0 c1. ; jl. w3 h31. ; outtext(cur,<:VOL1:>); al. w0 c2. ; jl. w3 h31. ; outtext(cur,tapename,access); al w0 -26 ; al w2 32 ; jl. w3 b0. ; outchar(sp,26); rl. w0 c5. ; outinteger(<dddddd>,projectnumber); jl. w3 h32. ; 48<12+6 ; al w0 -37 ; outchar(sp,37); al w2 32 ; jl. w3 b0. ; al w0 -3 ; outchar(94,4); al w2 94 ; jl. w3 b0. ; al w2 94 ; jl. w3 h34. ; close up; jl. w3 h79. ; terminate zone al w2 0 ; ok jl. h7. ; goto fp; ; procedure outchar(char,repeat); b0: b. j2 w. ds. w3 j2. ; save return j0: sn w0 0 ; if repeat=0 then jl. (j2.) ; return; ba. w0 1 ; repeat:=repeat+1 rl. w2 j1. ; load char; jl. w3 h26. ; outchar jl. j0. ; j1: 0 ; saved char; j2: 0 ; saved return; e. e0: <:<10>***:> ; e1: jl. w1 f1. , <:call<10><0>:> e2: jl. w1 f2. , <: param<10>:> e3: jl. w1 f3. , <: param<10>:> e4: jl. w1 f3. , <: modekind error<10>:> e5: jl. w1 f3. , <: unknown<10><0>:> e6: jl. w1 f3. , <: illegal tapename<10><0>:> e7: jl. w1 f3. , <: illegal access kind<10><0>:> e8: jl. w1 f1. , <:project number missing<10><0>:> e9: jl. w1 f3. , <: illegal project number<10><0>:> e10: jl. w1 f1. , <:too many parameters<10><0>:> e11: jl. w1 f1. , <:parameter missing<10><0>:> e12: jl. w1 f1. , <:connect tape unsuccessful<10><0>:> \f ; ta 1977.08.17 label, page ...5... f0: ; procedure outalarmhead b. j0 w. rs. w3 j0. ; save return al. w0 e0. ; jl. w3 h31.-2 ; outtext(cur,<:***:>); rl. w0 c6. ; outtext(programname); jl. w3 h31. ; al w2 44 ; jl. w3 h26. ; outchar(comma); al w2 32 ; outsp; jl. w3 h26. ; jl. (j0.) ; return j0: 0 ; saved return e. f1: b. j3 w. rs. w1 j2. ; save text addr jl. w3 f0. ; outalarmhead rl. w0 j2. ; jl. w3 h31. ; outtext(alarm); jl. f4. ; goto alarmexit; f2: rs. w1 j2. ; save alarm text; jl. w3 f0. ; outalarmhead; rl. w2 c7. ; parampointer; al w0 x2-8 ; jl. w3 h31. ; outtext(preceeding param); al w2 46 ; jl. w3 h26. ; outpoint; jl. j0. ; f3: rs. w1 j2. ; save alarm text jl. w3 f0. ; outalarmhead; j0: rl. w2 c7. ; parampointer; bz w3 x2+1 ; se w3 10 ; jl. j1. ; if param=text then al w0 x2+2 ; outtext(param) jl. w3 h31. ; else jl. j3. ; j1: rl w0 x2+2 ; outinteger(param); jl. w3 h32. ; 1 ; j3: rl. w0 j2. ; jl. w3 h31. ; outtext(alarm); f4: al w2 1 ; not ok am -1000 ; jl. h7.+1000 ; j2: 0 ; e. \f ; ta 1977.08.17 label, page ...6... c0: <:mt:> ; c1: <:VOL1:> ; c2: 0 ; tapename c3: 0 ; tapename c4: 32<16 ; access c5: 0 ; project number c6: 0 ; program name addr c7: 0 ; param pointer c8: 64<8+64 ; mask c9: 1000000 ; >projectnumber ; filedescriptor c10: 0 ; modekind c11: 0 ; docname c12: 0 ; - c13: 0 ; - c14: 0 ; - 0,0,0,0,0 ; tail c20: <:mto:> ; c21: <:mte:> ; c22: <:nrz:> ; c23: <:e:> ; c24: 1<23+0<12+18 ; mto c25: 1<23+2<12+18 ; mte c26: 1<23+4<12+18 ; nrz c27: 1<23+6<12+18 ; nrze c15: ; buffer start; g2=k-h55 ; code length g0:g1: (:g2+511:)>9 ; segments 0, r.4 ; docname s2 ; date 0, 0 ; file, block 2<12+0 ; contents, entry g2 ; loadlength d. p.<:insertproc:> e. \f ▶EOF◀