|
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: 28416 (0x6f00) Types: TextFile Names: »mode3tx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code └─⟦75ff9bef3⟧ └─⟦this⟧ »mode3tx «
; the programs are translated like ; (mode=slang text entry.no ; mode head char finis end) b.g1, f7 w. \f ; rc 17.08.72 fp utility, job adm 1, page 1 ; file processor: basic job administration 1 ; mode, head, finis, end programs ; leif svalgaard july 1969 ; modified for multi processor monitor : ; F. G. Strøbech march 1985 d. p.<:fpnames:> l. s. k=h55, e48, j1 ; begin w. ; j0: j1 ; length 0 ; not used e0: f1: jl. w2 e1. ; entry 4: <:*mode :> ; mode f2: jl. w2 e2. ; entry 10: <:*head :> ; head f3: jl. w2 e3. ; entry 16: <:finis :> ; finis f4: jl. w2 e5. ; entry 22: <:*end <127>:> ; end f7: jl. w2 e2. ; entry char: goto head <:*char :> e9: <:<10>**:> ; second time start text e10: <:<127>**:> ,0 ; first time error text e11: 0 ; with room for program name e32: <:param:> ; param message e12: <:call:> ; call message e13: rs. w3 e17. ; procedure init param: dl w0 x2+2 ; param pointer:= w3; ds. w0 e11. ; set program name in rl. w3 e17. ; error message; jl x1 ; return; e14: 0 ; return addr in list param e15: 0 ; e15+1 ; booleans: ok, call error e16: 0 ; saved param pointer e17: 0 ; current param pointer ; procedure list param. ; prints on current output a param error message followed by ; the current composite parameter, and returns with next param. e18: al. w0 e10. ; list param: jl. w3 h31.-2 ; outtext (cur out,<:***...param:>); al w0 1 ; ok:= false; hs. w0 e15. ; rl. w2 e16. ; param pointer:= saved param pointer; rs. w2 e17. ; bl w0 x2+0 ; se w0 4 ; next: e19: am 14 ; outchar (cur out, al w2 32 ; if separator=dot then jl. w3 h26.-2 ; 46 else 32); rl. w2 e17. ; bz w1 x2+1 ; if kind.param=10 then al. w3 e20. ; outtext (cur out,param text) al w0 x2+2 ; else sn w1 10 ; outinteger (cur out,<<d>,param); jl. w0 h31.-2 ; rl w0 x2+2 ; jl. w3 h32.-2 ,1 ; insert nl in front of ***; e20: rl. w3 e9. ; get param; rs. w3 e10. ; if sep=end then goto param end; jl. w3 e25. ; if sep=dot then goto next; e33: jl. e24. ; mod ; jl. e19. ; goto return in e14; jl. (e14.) ; jl. e46. ; if end sep then head goes to e46; \f ; rc 01.11.72 fp utility, job adm 1, page 2 ; param end. e24: al. w3 e22. ; param end: e23: bz. w2 e15.+1 ; call error entry: dl. w1 e12.+2 ; param text is replaced by call ds. w1 e12.-2 ; error text in message; al. w0 e10. ; if call error then se w2 0 ; outtext (cur out,<:***...call:>); jl. w0 h31.-2 ; then maybe return (:if e23 entry:); e22: rl. w0 e10.+2 ; exit: rl. w2 e15. ; if not ok se w2 0 ; then jl. w3 h39. ; outend(cur out,nl); se. w0 (e0.+2) ; if mode called jl. e31. ; then begin al w2 1<6+1<5 ; w2:=warning and ok la. w2 h51. ; from modebits shift -5; ls w2 -5 ; al w0 1 ; negate ok; lx w2 0 ; rs. w2 h51.-2 ;c20; save w2 in fp c20; jl. h63. ; call and enter fp end program; ; comment: in this way the test of pause and error bits in ; fp end program is bypassed (dirty trick) end; e31: rl. w2 e15. ; w2:=if no errors then 0 se w2 0 ; else 1; al w2 1 ; jl. h7. ; goto end program; ; procedure get param; ; w0 separator ; w1 kind ; w2 param pointer ; w3 link next sep ;call+2: end,+4:dot,+6:space e21: 0 ; return ; return point depends on current sep e25: rl. w2 e17. ; get param: ba w2 x2+1 ; param pointer:= param pointer+size.param; rs. w2 e17. ; w0:=separator.param; bl w0 x2+0 ; w1:=kind.param; bz w1 x2+1 ; w2:=param pointer; se w0 4 ; if sep=space then save the param pointer jl. 6 ; for the sake of the listing of errors; rs. w2 e16. ; determine action: al w3 x3+4 ; if separator= space then sl w0 4+1 ; return:=return+4 else al w3 x3+2 ; if separator=dot then rs. w3 e21. ; return:=return+2; am x2 ; take next sep: bl w3 x1 ; w3:=separator.next param; jl. (e21.) ; return; ; procedure search name(list); w1=list pointer. e26: rs. w3 e21. ; search name: save return point; dl w0 x2+4 ; for all items in the name list sn w0 (x1+2) ; do se w3 (x1+0) ; if name.param = name.item jl. e27. ; then return with found name; dl w0 x2+8 ; comment: x1+8 points to an output sn w0 (x1+6) ; value of the search; se w3 (x1+4) ; jl. e27. ; jl. (e21.) ; e27: al w1 x1+10 ; if not found then rl w0 x1 ; list param; se w0 0 ; jl. e26.+2 ; comment: the name list is terminated jl. e18. ; by a zero word; ; name list format: <4 words name> <1 word output value> \f ; rc 76.06.11 fp utility, job adm 1, page...3... ; procedure test call error; ; w0 destroyed ; w1 link link ; w2 unchanged ; w3 param pointer param pointer e29: bl w0 x3+0 ; test call error: sn w0 6 ; if current separator = equal e30: hs. w0 e15.+1 ; then call error:= true; jl x1 ; return; ; the fp program mode: ; mode <s> <bits>.<on> <area> b. b24 ; begin w. ; mode: e1: jl. w1 e13. ; init param; jl. w1 e29. ; test call error; al. w1 b8. ; return from list param:= rs. w1 e14. ; test kind; b1: jl. w3 e25. ; next param pair: jl. e24. ; if sep= end then goto param end; jl. e18. ; if sep= dot then goto list param; b8: se w1 10 ; test kind: jl. b2. ; if kind=integer then goto shift; sn w3 8 ; name found: if next sep=dot jl. b3. ; then goto search option; rl w0 x2+2 sn. w0 (b23.) ; if param=what jl. b24. ; then list modebits; jl. e18. ; then list param; b2: rl w1 x2+2 ; shift: sl w1 0 ; if param < 0 sl w1 24 ; or param > 23 jl. e18. ; then goto list param; se w3 8 ; if next sep<>dot jl. e18. ; then list param ac w1 x1-23 ; al w0 1 ; bits:= 1 shift (23-param); ls w0 x1 ; goto check on; jl. b4. ; b3: al. w1 b20. ; search option: rl w0 x2+2 ; sn. w0 (b23.) ; if param=what jl. b24. ; then goto list modebits; jl. w3 e26. ; search name (option table,param,bits); rl w0 x1+8 ; if not found then list param; b4: rs. w0 b10. ; bits:= option bits; jl. w3 e25. ; check on: get param; jl. e18. ; if sep<>dot se w1 10 ; or kind<>name jl. e18. ; then goto list param; al. w1 b21. ; search name (on table,param,jump); jl. w3 e26. ; if not found then list param; rl. w3 b10. ; goto jump; jl x1+8 ; b5: lo. w3 h51. ; set bits: fp mode bits:= bits or jl. b7. ; fp mode bits; b6: ac w3 x3+1 ; goto next param pair; la. w3 h51. ; clear bits: fp mode bits:= inverse (bits) b7: rs. w3 h51. ; and fp mode bits; jl. b1. ; goto next param pair; \f ; fgs 1986.12.12 fp utility, job adm 1, page ...4... ; option table for mode b20: <:list:> , 0, 0, 1<0 <:pause:> , 0, 0, 1<3 <:error:> , 0, 0, 1<4 <:ok:> , 0, 0, 0, 1<5 <:warning:> , 0, 1<6 ; <:if:> , 0, 0, 0, 1<7 <:listing:> , 0, 1<8 <:initmess:> , 0, 1<9 <:all:> , 0, 0, 0, 2.111111111111111101111111 0 ; terminate option table ; on table for mode b21: <:yes:> , 0, 0, 0, jl.b5. <:no:> , 0, 0, 0, jl.b6. 0 ; terminate on table b10: 0 ; bits b23: <:wha:> b24: ; list modebits; b. a4 w. al. w3 a3. ; save textaddr; rs. w3 a1. ; rl. w2 h51. ; modebits; al. w0 a2. ; outtext(<:modebit:>); jl. w3 h31.-2 ; jl. 4 ; a0: ls w2 1 ; loop: modebits:=modebits shift 1; sn w2 0 ; if modebits empty then jl. a4. ; goto exit; rl. w3 a1. ; al w3 x3+8 ; textaddr:=textaddr+8; rs. w3 a1. ; sl w2 0 ; if not this modebit then jl. a0. ; goto loop; al w0 x3 ; jl. w3 h31. ; outtext(modebitname); jl. a0. ; goto loop; a1: 0 ; a2: <:modebit:> ; a3=k-8 <: 0:>,0,0,0 <: 1:>,0,0,0 <: 2:>,0,0,0 <: 3:>,0,0,0 <: 4:>,0,0,0 <: 5:>,0,0,0 <: 6:>,0,0,0 <: 7:>,0,0,0 <: 8:>,0,0,0 <: 9:>,0,0,0 <: 10:>,0,0,0 <: 11:>,0,0,0 0,0,0,0 0,0,0,0 <: initmess:>,0 <: listing:>,0 0,0,0,0 <: warning:>,0 <: ok:>,0,0,0 <: error:>,0,0 <: pause:>,0,0 0,0,0,0 0,0,0,0 <: list:>,0,0 a4: jl. w3 h39. ; exit: outend(nl); rs. w1 e15. ; jl. e22. ; goto program exit; e. e. ; end mode ; the fp program head: ; <file>=head <s> <form feeds> or: head <s> <form feeds> b. b51 ; begin w.e2: jl. w1 e13. ; head: init param; al w1 6 ; modify return after errors hs. w1 e33.+1 ; to the printing sequence; al. w1 h21. ; file:= current output; rs. w1 b3. ; if sep=equal then bl w0 x3+0 ; file:= file in call se w0 6 ; else goto scan parameters; jl. b18. ; al w2 x3-8 ; left hand side in call: al. w1 b1. ; initialize a zone to al. w3 b2. ; hold the file; rs w3 x1+h0+4 ; set used share in zone; rs w3 x1+h0+6 ; set first share in zone; rs w3 x1+h0+8 ; set last share in zone; al. w0 e48. ; set first shared.share; rs w0 x3+2 ; al w0 1<1+1 ; if new area then one segment on disk; jl. w3 h28. ; connect output (file,zone,result); hs. w0 e15.+1 ; call error:= result<>0; sn w0 0 ; if call error then rs. w1 b3. ; file:= current output; sn w0 0 jl. w3 e47. ; prepare entry for textoutput jl. b18. ; goto scan parameters; b3: 0 ; zone descr addr for file b12: 0 ; init zero ; form feeds b1=k-h0 , 0, r.h5/2 ; zone descriptor b2: 0, r.h6/2 ; share descriptor b5: 0 ; sec ; all values are init to zero b6: 0 ; month ; b7: 0 ; date ; b8: 0 ; min ; b9: 0 ; hour ; b10: 0 ; year ; \f ; rc 76.05.21 fp utility, job adm 1, page...5... b18: rl. w0 e11. ; scan parameters: sn. w0 (f2.+4) ; if program=head then jl. b13. ; goto head al. w1 b47. ; rs. w1 e14. ; set return after list param b11: jl. w3 e25. ; next char param: b47: jl. b25. ; if end param then goto exit jl. b40. ; if sep=dot then goto dotparam sn w1 10 ; jl. w1 b48. ; if param=text then goto textparam; rl w3 x2+2 ; hs. w3 b41. ; value:=param bl w3 x2+4 ; sn w3 8 ; if nextsep=dot then jl. b11. ; goto next char param al w3 1 ; rs. w3 b12. ; repeat:=1; jl. b15. ; goto print b40: sn w1 10 ; dotparam: jl. e18. ; if param=dot text then goto list param rl w3 x2+2 ; al w1 133 ; max:=133 bl. w2 b41. ; sn w2 12 ; if value=ff then al w1 6 ; max:=6 sn w2 10 ; if value=nl then al w1 64 ; max:=64 sl w3 x1 ; if repeat>max then al w3 x1 ; repeat:=max rs. w3 b12. ; jl. b15. ; goto print b48: b. t4 w. rl w0 x2+2 ; w0:=text; al w3 0 ; value:= sn. w0 (t1.) ; if text=nl then al w3 10 ; 10 else sn. w0 (t2.) ; if text=ff then al w3 12 ; 12 else sn. w0 (t3.) ; if text=em then al w3 25 ; 25 else sn. w0 (t4.) ; if text=sp then al w3 32 ; 32 sn w3 0 ; else alarm; jl. e18. ; hs. w3 b41. ; save value; bl w3 x2+10 ; w3:=nextsep jl x1+6 ; t1: <:nl:> t2: <:ff:> t3: <:em:> t4: <:sp:> e. b13: rl. w1 b3. ; head: outfile bz w0 x1+h1+1 ; if kind=14 (printer) al w2 15 ; then sn w0 14 ; outchar(file, jl. w3 h26. ; shift-in-char) al. w1 b4. ; rs. w1 e14. ; set return of list param b0: jl. w3 e25. ; next head param: b4: jl. b15. ; if end param then goto print jl. e18. ; if dot then goto list param rl w3 x2+2 ; sn w1 10 ; if param=integer then jl. b49. ; begin sl w3 6 ; if param>6 then al w3 6 ; param:=6 rs. w3 b12. ; repeat:=param jl. b0. ; goto next head param ; end; b49: se. w3 (b50.) ; jl. b14. ; al w3 0 ; if param=old then rs. w3 b35. ; iso:=false; jl. b0. ; goto next head param; b14: al w2 1 ; sn. w3 (b38.) ; if param=<:cpu:> then rs. w2 b36. ; cpu.=true sn. w3 (b37.) ; if param=<:iso:> then rs. w2 b35. ; iso:=true se. w3 (b37.) ; if param=<:cpu:> or sn. w3 (b38.) ; param=<:iso:> then jl. b0. ; goto next head param jl. e18. ; else goto list param b15: rl. w0 b12. ; print: rl. w1 b3. ; w1:=output descr. rl. w3 e15. ; if param error then se w3 0 ; outchar (cur out,nl); jl. w3 b26. ; b16: sh w0 0 ; jl. b17. ; for form feeds:= form feeds-1 bs. w0 1 ; while form feeds>=0 do b41=k+1 al w2 12 ; or char ; outchar(file,char);; jl. w3 h26. ; jl. b16. ; b17: rl. w0 e11. ; se. w0 (f2.+4) ; if program<>head then jl. b11. ; goto next char param am -2000 ; print process name: am. (h16.+2000) ; al w0 +2 ; w0 := addr own process.name; rl. w1 b3. ; outtext (file,name of own process); jl. w3 h31. ; jd 1<11+36 ; get and convert clock: ld w3 -65 ; get clock (clock); wd. w1 b31. ; wd. w0 b30. ; fourmin:= clock//2 400 000; wd. w3 b29. ; clock:= clock mod 2400000; rx. w0 b8. ; min:= clock//600 000; wd. w1 b32. ; clock:= clock mod 600 000; rx w3 0 ; sec:=clock//10 000; al w2 0 ; days:=fourmin//360; wd. w3 b33. ; fourmin:=fourmin mod 360; as w2 2 ; hour:=fourmin//15; wa. w2 b8. ; fourmin:=fourmin mod 15; ds. w1 b6. ; min:= 4*fourmin + min; ds. w3 b9. ; ld w0 -65 ; julian calendar: wd. w1 b28. ; year:=days//1461*4+1968; as w1 2 ; days:=days mod 1461; al w1 x1+1968 ; se w0 59 ; if days = 59 then jl. b19. ; begin comment: leap year; al w2 2 ; month:= 2; al w3 29 ; date:= 29; jl. b21. ; end else goto b19 b27: 365 ; constants: days in 1 year b28: 1461 ; days in 4 years b29: 10000 ; clock unit 0.1 msec b30: 600000 ; 60*10000 b31: 2400000 ; 60*10000*4 b32: 360 ; 24*15 b33: 15 ;15 b35: 1 ; iso:=true b36: 0 ; cpu:=false b37: <:iso:> ; b46: <: :> ; b38: <:cpu: :> ; b39: <: sec.:> ; 10000<9 ; b43: 4096+14-47 ; 10000*2**(-47) as floating 1<22 ; b44: 0 ; 0.5 as floating 1600<12 ; b45: 7 ; 100 as floating b50: <:old:> \f ; rc 78.04.05 fp utility, job adm 1, page ...6... b34=k-1 ; month table: h. -1, 30, 58 ; number of days minus one 89, 119, 150 ; elapsed since jan 1st 180, 211, 242 ; for each month. 272, 303, 333 ; w. b19: sl w0 59+1 ; begin bs. w0 1 ; if days>59 then wd. w0 b27. ; days:= days-1; wa w1 0 ; year:= year + days//365; al w2 13 ; days:=days mod 365; month:=13; b20: al w2 x2-1 ; last month: bl. w0 x2+b34. ; month:= month-1; sh w3 (0) ; if days <= month table (month) jl. b20. ; then goto last month; ws w3 0 ; b21: rs. w1 b10. ; date:= days - month table (month); ds. w3 b7. ; end; rl. w1 b3. ; print time: rl. w0 b7. ; file:= (b3); saved file jl. w3 b22. ; outsp jl. w3 b22. ; outsp al w3 0 ; se. w3 (b35.) ; if iso then year rl. w0 b10. ; jl. w2 b24. ; outinteger (<<zd>,date or year); jl. w3 b23. ; outdot; rl. w0 b6. ; jl. w2 b24. ; outinteger (<<zd>, month); jl. w3 b23. ; outdot; rl. w0 b10. ; al w3 0 ; se. w3 (b35.) ; if iso then date rl. w0 b7. ; jl. w2 b24. ; outinteger(<<zd>,year or date); jl. w3 b22. ; outspace; jl. w3 b22. ; outspace; rl. w0 b9. ; jl. w2 b24. ; outinteger(<<zd>,hour); jl. w3 b23. ; outdot; rl. w0 b8. ; jl. w2 b24. ; outinteger(<<zd>,min); al w0 0 ; sn. w0 (b36.) ; if cpu then jl. b42. ; begin jl. w3 b23. ; outdot rl. w0 b5. ; jl. w2 b24. ; outinteger(<<zd>,ms) al. w0 b46. ; jl. w3 h31. ; outtext( cpu: ) am -2000 ; am. (h16.+2000) ; dl w3 56 ; w2w3:=run time own process al w0 0 ; rl w1 104 ; w0w1:=time slice aa w1 6 ; +time slice nd w1 3 ; float fd. w1 b43. ; w0w1:=time in sec ds. w1 b8. ; fs. w1 b44. ; -0.5 cf w1 0 ; convert to integer rs. w1 b5. ; save seconds ci w1 0 ; convert back ds. w1 b10. ; dl. w1 b8. ; fs. w1 b10. ; decimals fm. w1 b45. cf w1 0 ; convert to integer se w1 100 ; jl. b51. ; if decimals=100 then rl. w1 b5. ; begin al w1 x1+1 ; seconds:=seconds+1; rs. w1 b5. ; decimals:=0; al w1 0 ; end; b51: rs. w1 b6. ; save decimals rl. w1 b3. ; rl. w0 b5. ; jl. w3 h32. ; outinteger(<<d>,seconds) 1 ; jl. w3 b23. ; outdot rl. w0 b6. ; jl. w2 b24. ; outinteger(<<zd>,decimals) al. w0 b39. ; jl. w3 h31. ; outtext( sec.) b42: jl. w3 b26. ; b25: rl. w1 b3. ; se. w1 b1. ; if not left hand side jl. e24. ; in call then goto param end; am -2048 jl. w3 h95.+2048 ; close up as should be jl. w3 h79. ; terminate zone (left hand file); jl. e24. ; goto param end; b26: am -22 ; outcr : char:='nl'; b22: am -14 ; outspace: char:=' '; b23: al w2 46 ; outdot: char:='.'; jl. h26. ; outchar (i); return; b24: jl. w3 h32. ; outinteger (<zd>,integer); 48<12+2 ; layout for z; jl x2 ; return; e46=b15 ; print entry point e. ; end head; e48=k ; start of head output zone; \f ; rc 77.09.16 fp utility, job adm 1, page ...7... ; the fp program finis/pause b. b24 ; begin w. ; finis: e3: jl. w1 e13. ; init param; jl. w1 e29. ; test call error; al. w1 b23. ; return from list: after param; rs. w1 e14. ; al w1 4 ; modify return hs. w1 e33.+1 ; after error; b20: jl. w3 e25. ; nextparam: ; w0=sep,w1=kind,w2=pointer,w3=nextsep jl. b23. ; return if end jl. b21. ; return if dot se w1 10 ; return if space jl. e18. ; if param<>text then alarm; se w3 8 ; if nextsep<>dot jl. e18. ; then alarm; rl w0 x2+2 ; if param<>output se. w0 (b7.) ; then jl. b21. ; goto not output; rl w0 x2+4 ; se. w0 (b8.) ; jl. e18. ; rl. w3 h45.+6 ; mess+6 rl w0 x2+12 ; if sn. w0 (b5.) ; <:no:> lo. w3 b9. ; then mess+6:=mess+6 or 1<0; rs. w3 h45.+6 ; sn. w0 (b5.) ; if <:no:> jl. b22. ; then goto update; se. w0 (b6.) ; if not <:yes:> jl. e18. ; then alarm; ac. w3 (b9.) ; if al w3 x3-1 ; <:yes:> la. w3 h45.+6 ; then rs. w3 h45.+6 ; remove bit; b22: rl. w3 e17. ; get param pointer; al w3 x3+10 ; update; rs. w3 e17. ; jl. b20. ; goto next param; b21: jl. e18. ; not output: alarm; b23: ; after param: al w2 0 ; close up (cur out,null); am -2048 jl. w3 h95.-2+2048; al w0 0 ; jl. w3 h79.-2 ; terminate zone (cur out,file mark); al. w3 b3. ; jd 1<11+48 ; remove c al. w3 b4. ; jd 1<11+48 ; remove v jl. w3 h14. ; send finis message jl. -2 ; if not removed then send it again; b3: <:c:>,0,0,0 b4: <:v:>,0,0,0 b5: <:no:> b6: <:yes:> b7: <:out:> b8: <:put:> b9: 1<0 ; the fp program end e5: jl. w1 e13. ; end: init param; jl. w1 e29. ; test call error; al. w1 e18. ; return from list: more list; rs. w1 e14. ; jl. w3 h30.-4 ; unstack current input (cur chain); al w3 x1+h1+2 ; bz w1 x3-1 ; se w1 4 ; if kind(in) = bs jl. b1. ; then begin al. w1 b2. ; send message (sense); jd 1<11+16 ; jd 1<11+18 ; wait answer ; (in order to get name table ; address under the name) b1: jl. w3 e25. ; end; next param: jl. e24. ; get param; jl. e18. ; goto if sep = end then param end jl. e18. ; else list param; b2: 0,r.8 ; message and answer (sense area proc) e. ; end finis and end; e45: 1<22 ; bit to disting. asterisk e47: bl w0 x1+h1+1 ; sn w0 4 ; if -,bs and jl. 6 ; -,mt se w0 18 ; then jl x3 ; return; am -2048 al. w1 h54.+2048 rl. w2 e17. al w2 x2-8 ; procedure prepare entry for textoutput ; w0 not used ; w1 lookup area ; w2 name addr, entry must be present ; w3 return addr b. a2 w. ds. w1 a1. ; save w0.w1 ds. w3 a2. ; save w2.w3 al w3 x2 ; w3:=name addr jd 1<11+42 ; lookup bz w2 x1+16 ; sh w2 32 ; if contents=4 or sn w2 4 ; contents>=32 jl. 4 ; then jl. a0. ; file:=block:=0; rs w0 x1+12 ; rs w0 x1+14 ; a0: rs w0 x1+16 ; contents.entry:=0; rs w0 x1+18 ; loadlength:=0; dl w1 110 ; ld w1 5 ; shortclock; rl. w1 a1. ; rs w0 x1+10 ; jd 1<11+44 ; changeentry; dl. w1 a1. ; restore w0,w1 dl. w3 a2. ; restore w2,w3 jl x3 ; return 0 ; saved w0 a1: 0 ; saved w1 0 ; saved w2 a2: 0 ; saved w3 e. j1=k-j0 ; entry mode g0: (:j1+511:)>9 ; segm 0, r.4 s2 ; date 0,0 ; file, block 2<12+f1-h55 ; contents, entry j1 ; length ; entry head 1<23+4 ; bs 0,r.4 s2 ; date 0,0 ; file, block 2<12+f2-h55 ; contents, entry j1 ; length ; entry char 1<23+4 ; bs 0, r.4 ; s2 ; date 0,0 ; file, block 2<12+f7-h55 ; contry j1 ; length ; entry finis 1<23+4 ; bs 0,r.4 s2 ; date 0,0 ; file, block 2<12+f3-h55 ; contents, entry j1 ; length ; entry end g1: 1<23+4 ; bs 0,r.4 s2 ; date 0,0 ; file , block 2<12+f4-h55 ; content, entry j1 ; lenght m.rc, fp job adm 1, 1986.12.12 d. p.<:insertproc:> l. i. ; maybe names e. ; end job adm 1; e. ; end fp names ▶EOF◀