|
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: 5376 (0x1500) Types: TextFile Names: »uti24«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦f8e4b63af⟧ »trcfput« └─⟦this⟧
; fp-program -- backfile -- ; the program backs the document 1 file ; -ie: if the file number in the entry tail is 0 then ; ok.no is set ; if the file number is positive then ; it is decremented by 1 ; and ; if it thereby becomes 0 then ; the warning bit is set ; the program is translated like ; (backfile=slang text entry.no ; backfile) b. g1, f6 w. ; for insertproc d. p.<:fpnames:> l. k=h55 ; initialize the k-value s.a10,b6,c30 ; a: local storage, ie variables and arrays w. ; b: textstrings ; c: labels a1: 0 ; contains local warning- and ok-bits a4: 0 ; pointer to the next parameter ; program start sn w2 x3 ; compare -current command- to -program name- jl. c0. ; in order to see whether a left hand side exists al. w2 b1. ; and causes the program to stop jl. w3 c10. ; or the program may continue jl. c20. c0: ba w3 x3+1 ; change the pointer (w3) rs. w3 a4. ; from -program name- to -first parameter- ; and store it in a4 c1: ; next_parameter: rl. w2 a4. ; fetch the next parameter from the stack rs. w2 c8. ; store it for eventually error-printout rl w0 4 ba w0 x2+1 ; and rs. w0 a4. ; store the address of the following parameter bl w0 x2 ; -- test the separator sn w0 4 ; if separator <> 4 then jl. c3. ; sh w0 4 ; if separator < 4 then jl. c20. ; stop ; else c2: al. w2 b2. ; no_name: se w1 0 ; if first part of erroneous parameter then jl. w3 c10. ; write: ***backfile <name> param al w1 0 ; -- and remember ; else jl. c1. ; go to next_parameter ; c3: bl w0 x2+1 ; if item_length <> 10 then se w0 10 ; jl. c2. ; go to no_name; bl. w0 (a4.) ; if the following separator > 4 then sl w0 5 ; jl. c2. ; go to no_name; al. w1 a3. ; get the tail address al w3 x2+2 ; increment -name pointer- by 2 jd 1<11+42; look up entry sh w0 0 ; if error then jl. c4. al. w2 b3. jl. w3 c10. ; write: ***backfile <name> unknown jl. c1. ; go to next_parameter ; c4: rl. w2 a0. ; get the file number se w2 0 ; if file_number = 0 then jl. c5. ; al w0 1 ; set the ok.no bit lo. w0 a1. ; rs. w0 a1. ; jl. c1. ; go to next_parameter ; c5: ; decrement the file number al w2 x2-1 ; and store the new number in the entry tail rs. w2 a0. se w2 0 ; if the new file number = 0 then jl. c6. ; al w0 2 lo. w0 a1. ; set the warning bit ; rs. w0 a1. ; c6: ; -- the file number is now updated jd 1<11+44; change entry sh w0 0 ; if no error then jl. c1. ; go to next_parameter al. w2 b4. ; else jl. w3 c10. ; write: ***backfile <name> protected jl. c1. ; go to next_parameter ; ; -- error routine c8: 0 ; address of current parameter c9: 0 ; return address c10: rs. w3 c9. ; store return address al. w0 b0. jl. w3 h31.-2 ; write: ***backfile rl. w1 c8. ; if the current parameter is a name then al w0 x1+2 bl w1 x1+1 sn w1 10 jl. w3 h31.-2 ; write: <the erroneous parameter> ; rl w0 4 ; get address of error message from w2 jl. w3 h31.-2 ; write: <error message> al w0 1 lo. w0 a1. ; set the ok.no bit rs. w0 a1. jl. (c9.) ; return jump c20: ; -- a separator < 4 is encountered in the ; -- parameterlist rl. w2 a1. ; return to fp and set information jl. h7. ; about program execution in w2 b0: <:***backfile <0>:> b1: <:call<10><0>:> b2: <: param<10><0>:> b3: <: unknown<10><0>:> b4: <: protected<10><0>:> a3: 0, r.10 ; storage for the entry tail a0=a3+12 m.rc 07.02.1974 backfile f1=k-h55 ; length f2=4 ; entry g0:g1: (:f1+511:)>9 ; segm 0, r.4 s2 ; date 0,0 ; file, block 2<12+f2 ; contents, entry f1 ; length d. p.<:insertproc:> l. e. ▶EOF◀