DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦ec02c9342⟧ TextFile

    Length: 54528 (0xd500)
    Types: TextFile
    Names: »retuti3job  «

Derivation

└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
    └─⟦75ff9bef3⟧ 
        └─⟦this⟧ »retuti3job  « 

TextFile

job fgs 1 274001 temp disc 1000 100 time 20 0 stat 2

mode list.yes

; editering af fp utility texter
; 
; magtapes :
;

;   mt543026 : -       11.01 *** frigjort ved release 3.00, vers 2 ***
; 
;   mt543020 : -       13.00
;   mt543053 : -        1.01, vers 2
;   mt543331 : -        2.00, vers 2
;   mt543285 : -        3.00, vers 2
;
; magtape :
; 
;   mt295276 : release  2.00, vers 2
; 
;   slettes og bliver kopi af :
;
;   mt543285 : release  3.00, vers 2
;

head 1
message ret fp utility texter

message rettelse fra mt543331 til mt543285 1987.05.01
;

n=set nrz mt543285
g=set mto mt543331

opmess ring on mt543285
mount n

opmess no ring mt543331
mount g

message subpackage ident fil 1
nextfile n g
n=copy list.yes 7

tape identification 

  contents        : source code

  package number  : sw8010/2
  package name    : system utility
  release         :  3.00, 1987.05.01

  subpackage name : utility
  release         :  3.00, 1987.05.01

\f




message translate job fil 2
nextfile n g
n=edit 
m e
i#

; job til oversættelse og binout af fp og utilities 

char ff

c=message start oversætjob
 
term       =set tw terminal d.0  
tro        =set tro reader d.0  
tre        =set tre reader d.0  
trn        =set trn reader d.0  
trf        =set trf reader d.0  
trz        =set trz reader d.0
tpo        =set tpo punch d.0  
tpe        =set tpe punch d.0  
tpn        =set tpn punch d.0  
tpf        =set tpf punch d.0  
tpt        =set tpt punch d.0  
lp         =set lp printer d.0  
crb        =set crb cardreader d.0  
crd        =set crd cardreader d.0  
crc        =set crc cardreader d.0  
pl         =set pl plotter d.0  
ptre=set tre reader d.0
ptrf=set trf reader d.0
ptro=set tro reader d.0
ptrn=set trn reader d.0
ptrz=set trz reader d.0


utilities=edit
i/
xp,
utility,
account,
assign,
backfile,
binin,
binout,
bossjob,
catsort,
cat,
change,
changeentry,
char,
claim,
claimtest,
clear,
clearmt,
compresslib,
convert,
copy,
corelock,
coreopen,
correct,
crb,
crc,
crd,
edit,
enable,
end,
entry,
finis,
fpnames,
head,
headpunch,
i,
if,
incload,
incsave,
init,
job,
kit,
label,
load,
load13,
lookup,
lp,
message,
mode,
mount,
mountspec,
move,
newjob,
nextfile,
o,
online,
opcomm,
opmess,
permanent,
pl,
print,
ptre,
ptrf,
ptro,
ptrn,
ptrz,
procsurvey,
release,
rename,
repeat,
replace,
ring,
rubout,
save,
save13,
scope,
search,
set,
setmt,
skip,
suspend,
term,
timer,
tpe,
tpf,
tpn,
tpo,
tpt,
translated,
tre,
trf,
trn,
tro,
trz
 
/,f

utiareas=edit utilities
l./utility/,d,
l./assign/,d,
l./bossjob/,d,
l./cat,/, d
l./change/,d2,
l./clear/,d1,
l./convert/,d,
l./corelock/,d1,
l./crb/,d2,
l./enable/,d4,
l./head/,d,
l./if/,d,
l./incload/, d
l./incsave/, d
l./init/, d
l./kit/,d,
l./lp/,d,
l./mount/,d1,
l./newjob/,d2,
l./opcomm/,d3,
l./ptre/,d4,
l./release/,d4,
l./scope/,d3,
l./skip/,d8,
l./tre/,d b,i/
set,
/,
f


compressuti=edit utiareas
i/
utility=set 1
utility=compress,
fpnames,
/,
l./xp/,d,
l./catsort/,d,
l./claimtest/,d,
l./load/,d,
l./load13/, d
l./save/,d,
l./save13/, d
l./set,/,r/,//,
f


scopeuti=edit utilities
i/
scope user,
/,
f

lookuputi=edit utilities
i/
head 1
lookup,
/,f

clearuti=edit utilities
i/
clear user,
/, f

binoututi=edit utilities
l./xp/,d,
i/
init=changeentry init fp init init init init init

sys2=binout headfp.ne.b xp.ne.s.12,
/,
l./utility/,r/y/y.p/,
l b,l-4,l./trz/,r/trz/trz,
endfp.ne.b
/,f
  
headfp=slang
s.w.
<:newcat:>
<:create:>
<:fp:>,0,0,0
18
0, r.4
s2   ; shortclock
0
0
3<12+2
3584
<:perman:>
<:fp:>,0,0,0
3
<:load:>
<:fp:>,0,0,0
12
e.
 
endfp=slang
s.w.
<:end:>
e.
 
 

c=message oversæt slang del af utility
c=copy uti1 message.no ; dato
fpnames=copy uti3      ; new fpnames
insertproc=copy uti4

slangcompr=slang uti.5
if ok.no
sorry

fpnames=slangcompr fpnames
insertproc=slangcompr insertproc


(xp=slang uti.6 
 xp init)
if ok.no
sorry

(mode=slang uti.9
mode head char finis end)
if ok.no
sorry

(i=slang uti.10
i o if)
if ok.no
sorry

(account=slang uti.11
account replace newjob mount opmess ring,
suspend release enable change timer convert mountspec,
kit corelock coreopen bossjob opcomm)
if ok.no
sorry

(online=slang uti.12
online repeat)
if ok.no
sorry

(edit=slang uti.13 uti.14 uti.15 uti.16
edit)
if ok.no
sorry

(binin=slang uti.17
binin)
if ok.no
sorry

(binout=slang uti.18
binout)
if ok.no
sorry

(print=slang uti.19
print)
if ok.no
sorry

(message=slang uti.20
message)
if ok.no
sorry

(move=slang uti.21
move)
if ok.no
sorry

(set=slang uti.22
set setmt clearmt entry changeentry assign,
rename permanent nextfile)
if ok.no
sorry

(lookup=slang uti.23
lookup search clear scope)
if ok.no
sorry

(backfile=slang uti.24
backfile)
if ok.no
sorry

(copy=slang uti.25
copy skip)
if ok.no
sorry

(headpunch=slang uti.26
headpunch)
if ok.no
sorry

(job=slang uti.27
job)
if ok.no
sorry

(claim=slang uti.28
claim)
if ok.no
sorry

(rubout=slang uti.29
rubout)
if ok.no
sorry

(correct=slang uti.30
correct)
if ok.no
sorry

compress=slang uti.31
if ok.no
sorry

compresslib=slang uti.32
if ok.no
sorry

(translated=slang uti.33
translated)
if ok.no
sorry

(procsurvey=slang uti.34
procsurvey)
if ok.no
sorry

(label=slang uti.35
label)
if ok.no
sorry

(allocbuf=slang uti.36
 allocbuf)
if ok.no
sorry

; *** bruges ikke mere ***
;(fpproc=slang fpnames uti.37 insertproc
; fpproc)
;if ok.no
;sorry

c=message slut over sættelse af slang del af utility


char ff

c=message oversæt algol del af utility

save13=algol survey.yes connect.no uti.38
if warning.yes
sorry

load13=     algol survey.yes connect.no uti.39
if warning.yes
sorry

catsort=  algol survey.yes connect.no uti.40
if warning.yes
sorry
catsort=changeentry catsort catsort catsort 64.120 catsort catsort catsort
cat    =assign catsort

claimtest=algol survey.yes connect.no uti.41
if warning.yes
sorry

(copyarea=slang uti.42
 copyarea)
if ok.no
sorry

save=     algol survey.yes connect.no uti.43
if warning.yes
sorry

save=     changeentry save save save 3 save save save

incsave=assign save


load=     algol survey.yes connect.no uti.44
if warning.yes
sorry

load=changeentry load load load 0 load load load

incload= assign load
 
c=message slut over sættelse af algol del af utility

char 12
 
i compressuti
i scopeuti
i lookuputi

release uti

c=message slut oversætjob
char ff
end
#
f

message fpnames fil 3
nextfile n g
n=edit fpnames ; new fpnames
f

message insertproc fil 4
nextfile n g
n=edit g
f

message slangcompr fil 5
nextfile n g
n=edit g
f

message fp text fil 6
nextfile n g

g1=assign g
g2=assign g
nextfile g1 g2 g2

fptx=edit g g1 g2 tnyfpsyntax       ; fp text 

l./...1/, r/19.02.73/86.08.22/, l./b.h99/, r/h99,/    /, r/31/43/, i!

b.  h99 w.               ; special block for fpnames
!, l./m.file processor/, r/76.02.02/86.10.10/,
          l./m.fptext1/, r/85.03.07/86.08.27/,
          l./;b.h99,/, r/,c31,j131/           /, r/ck/ck with fpnames
;   b. c43, j131         ; block with c- and j-names/,
          l./;s.k=0/, r/,h99,c31/          /,
          l./endprogramaction/, r/action/and device status/,
          l1, r/15/15, 16/, 
          l2, r/s.k=h55,e48/b. g1        /,
           r/device errors/block for old fpnames/,
          l1, r/segment16/and insertproc/,
          l2, r/e./e.                   ; end c- and j-names
;   e./,
l./...2/, r/85.03.07/86.08.27/, l./s.k=0/, r/,h99,c43/          /,
          l./h65:/, l./h67./, r/jl.   /jl. w3/,
          l1, d, i!
      jl.     h60.       ;   if the answer should arrive 
                         ;    then goto init;
!,
l./...3a/, r/76.02.02/86.08.27/,
          l./h96:/, r/countoffpsyntaxerrors/prim inout errors/,
l./...3b/, l./h52:/, r/2<12/3<12/, 
l./resident,page...1/, r/81.08.06/86.08.27/,
          l./h85:/, l./am 0/, r/ am/; am/, r/one/none/,
          l./h64:/, r/1/0/, r/r:/r =/,
          l./h70:/, l./x1+510/, i!
      sl  w3  h99        ;   last address.mess :=
      am      512        ;      first addr + (if swap
!,        l1, r/last address.mess:=firstaddr+510/    then 510 else 1022)/, 
          l./h69:/, l./jl+2/, l1, d, 
l./...7/, r/12.6.70 /86.08.28/, 
         l./j127=/, r/stack/stack and end program/,
         l./j130=/, r/stack/end program/,
         l./resident85/, r/5.03.26/6.08.28/,
l b, s 2, 
l b, s 3, l./m.fptext3/, r/85.03.07/86.10.10/, 
l./init,page...1/, r/5.03.07/6.09.03/,
          l./s.k=h55/, r/,b12  /, b12/,
          l./e0:/, r/ init://,
          r!e0:!e0:   am.    (h96.)      ; fp init:  skip next;
      al  w0  0          ; utility init: prim inout errors := 0;
      rs. w0  h96.       ;
   !,
l./page...4/, r/5.03.07/6.09.03/,
          l./rs.w3h9./, l1, d 1,
          l./al.w0b7./, i!
      al. w3  h50.       ;      if stack chain is used
      rl. w0  h50.       ;       then
      se  w0  0          ;       remove entry(stack chain);
      jd  1<11 + 48      ; comment do not check the result;
      al  w0  0          ;       stack chain := 0;
      rs. w0  h50.       ;
      al  w0  -1-1<7     ;
      la. w0  h51.       ;      if bit := 0;
      rs. w0  h51.       ;
!,
          l./jl.h7./, r/;/; comment to fetch unused areas etc;/,
          l./jl.h61./, r/command segment/end program/, r/h61./h7. /, i!
      al  w2  1          ; comment to fetch unused areas etc,
                         ;         in case of stop load start;
!, l1,
          l./m.fpinit85/, r/5.03.07/6.09.03/, 
          l./endinit;/, r/t;/t;æ10ææ12æ/,
l./commands,page1/,
s 4, l./i20=/, r/1 /-1/, 
l./***02/, r/06/22/, l./-4/, r/4/5/, r/16/32/,
          l./mod16/, r/16/32/,
          l./b0:/, r/1 /11/, r/4/5/,
l./***03/, r/8.08/8.22/, l./f10:/, r/=3/= 3; tastenext/, 
          l./rl.w1g8./, d./rs.w1g8./,
          l./a0:/, l1, r/f0/i7/, r/syntaxerror/test cancel/,
          l./64-8/, g 1/+2/-2/,
l./***06/, r/18/27/, l./i4:/, r/i4:/   /, l1, r/ j/i4:  j/,
          l1, r/;/;entry stack: outtext(out, <:***fp stack:>);/,
l./***07/, r/8.11/9.03/,
          l./al.w0g24./, i!
     al  w0  -1-1<7   ;
     la. w0  h51.     ; if bit := 0;
     rs. w0  h51.     ;
!,
          l./i3:/, r/text/text, outend(nl)/, l1, d, r/h33/h39/,
          l./i0:/, l./-64/, g/64/70/,
l./***10/, r/11/27/,
          l./g11:/, g/<10>//, r/:     /:/, i!
g10: <:***fp stack:  <0>:>
!,
          l./g18../, r/c/g/,
          l./g24:/, r/<0/ <0/,
          l./g26:/, r/ */<10>*/,
          l./g27:/, r/<0/ <0/,
l./***15/, r/8.08/8.22/,
          l./val<4+class/, g26/<4/<5/,
l./***16/, r/08.18/09.01/, l./sl.w2(g7./, r/l/h/, r/>=/</, i!
     rs. w2  g6.      ;
!,
          l./jl.i4./, d1, r!return! then return;
     al. w0  g10.     ; else goto stack alarm;
     jl.     i4.      ;!,
          l./reading86.08.18/, r/08.18/09.03/,
l b, s 3, d./m.fpcommands73.03.26/, d, 
l./load,page2/, r/12.07.79/86.09.03/,
          l./e27:/, l./alw1x1+1/, r/then //, i!
      rl. w3  e33.       ;    then
      ls  w3  -2         ;
      sl  w3  3          ;
      am      x3-1       ;
!, l1,
          l./snw232/, d, l-1, r/ out/     count := 0; out/,
          l./e28./, r/1/1+length shift(-3)/,
l./load,page3/, r/12.07.79/86.10.10/,l./e28:/, l-1, r/=10/<>4/,
          l./dl.w2/, r/ outtext(curout,paramname)//,
          l1, d1, r/ s/e14:  s/, i!
      al  w0  x2+2       ;
      sh  w1  10         ;    begin
      jl.     e14.       ;     if general text then
      al  w2  34         ;      write(out, <:":>, 
      jl. w3  h26.-2     ;        param, <:":>);
      jl. w3  h31.       ;     else
      al  w2  34         ;
      jl. w3  h26.       ;    outtext(out, param name)
      jl.     e29.       ;    end else
!,
          l./snw110/, r/10/4 /, r/n/e/, 
          l1, d, i!
      jl.     e15.       ;
!,
          l./e29:/, l-1, r/0/1/, r/32/127/, r/1 /1/,
          l1, i!
      jl.     e29.       ;
e15:  rl  w3  x2+2       ;
      al  w2  39         ;
      sh. w3 (e16.)      ;
      jl. w3  h26.-2     ;
      jl. w3  h31.-2     ;
!,
          l./e37:/, r/;/      ;/, r/> />*/, 
          l./e41:/, l1, i!
e16:  <:@<0><0>:>              ; constant showing whether a name
                               ; begins with a letter or a digit;
æ10ææ12æ
; rc 86.10.10             file processor, load, page 3a
!,
l./m.fpprogramload/, r/79.07.12/86.10.10/, 
l./endprogram,page...1/, r/2.12.09/6.08.28/,
          l./s.k=/, r/a8,e8/a10, e48/,
          l-1, r/thebreakactionis entered/fp is reeinitialized/,
          l./e8:/, l-1, r/512/1024/, l./h68./, i!
      dl. w3  c30.       ; move troubled name
      ds. w3  e35.       ;      to these segments:
      dl. w3  c27.       ;
      ds. w3  e36.       ;!,
l./page2/, r/16.04.72/86.08.28/,
          l./a1:/, r/a1:/   /, i!
a1=k-a0!, l./a7./, r/a7./ e39./,
          l./a2:/, r/a2: /e33:/, i!
a2=k-a0!, l./a2./, r/a2. /e33./,
          l./a3:/, r/a3:/   /, i!
a3=k-a0
!,
l./,page3/, r/19.02.73/86.09.01/, l./a4:/, r/a4:/a4=k-a0
   /,
          l./d5:/, l./jl.d9./, r/d9. /e32./,
          l./d9:/, r/ giveup://, r!d9: !a10=k-a0
e32:  rl. w1  h96.       ;give up:
      al  w1  x1+1       ;  prim inout errors :=
      rs. w1  h96.       ;    prim inout errors  + 1;
      sh  w1  10         ;  if prim inout errors <= 10
      jl.     h60.       ;   then goto initialize fp;
   !,
          l./d10:/, l1, r/swithc/: c or v/,
l./page...4/, r/2.12.09/6.09.01/, 
          l./jl.d9./, r/d9. /e32./, 
          l./jl.d9./, r/d9. /e32./,
          l./;flgforat/, d./jl.d9./,
          l./e./, i!
e.


a9=k-a0          ; goto (if stack empty) then commands else load;
b. b1 w.                 ;
      dl. w3  h8.        ;  if first command address < stacktop - 10
      sl  w3  x2-10      ;   then
      jl.     h61.       ;    begin
b0:   ea  w3  x3+1       ;     for command := next in stack
      el  w1  x3         ;       while kind > 2 do
      sl  w1  3          ;            <* nothing *>;
      jl.     b0.        ;
b1:   el  w1  x3+1       ;     while
      sl  w1  10         ;      length (command) < 10 do
      jl.     h62.       ;       begin
      ea  w3  x3+1       ;        command := next in stack;
      sl  w3  x2-8       ;        if command address >= stacktop - 8
      jl.     h61.       ;         then goto load;
      jl.     b1.        ;        end;
                         ;     end; goto commands
!,
l./...5/, r/5.03.07/6.08.28/, 
         l./a5:/, r/a5:/a5=k-a0
   /,
l./...6/, r/2.12.09/6.08.28/, 
          l./a6:/, r/a6:/   /, i!
a6=k-a0!, l./a7:/, r/a7: /a7=k-a0
e39:/,
          l./;enterdevice/, d./s.k=h55/,
          d./512;/, i!
æ10ææ12æ
; rc 86.09.01                    file processor, end program, page ...7...
!,
          l./al.w0e7./, r/e7. /e47./, r/ a/a8=k-a0
      al. w0  e32.       ;write device status alarm:
      rs. w0  h21.+h2+2  ; giveup action(out) :=
      a/, r/devicestatus:/      reinitialize fp;/,
          l./h10.+2/, r/h10.+2/e34.  /,
          l./e6:/, r/6: /46:/, r/c20./e7. /,
          l./e5./, r/e5. /e45./, l./e6./, r/e6. /e46./,
          l./h10.+2/, i!
      rl. w0  h21.+h0+0  ;   while base buffer area <> record base do
e37:  sn. w0 (h21.+h3+0) ;    begin
      jl.     e38.       ;     char := 127;
      al  w2  127        ;     outchar current;
      jl. w3  h26.-2     ;    end;
      jl.     e37.       ;   comment either outend or this algorithm will 
                         ;           force the block out thus preventing 
e38:  al  w0  x1-h21+h68 ;           endless looping on reselect out;
      rs  w0  x1+h2+2    ;   giveup action(out) := fp std error;!,
          l./h10.+2/, r/h10.+2/e34.  /,
          l./e9:/, r/e2. /e42./, l1, r/c20./e7. /,
          l./e4./, r/e4. /e44./, l./e8./, r/e8. /e4. /,
          l./e3./, r/e3. /e43./,
          l./h10.+2/, r/h10.+2/e34.  /,
          l./e8:/, d./e33:/, d./jl.h62./, i!
      jl.     e4.        ;   goto next action
!,        l./e3:/, r/3: /43:/, l./e4:/, r/4: /44:/,
          l./e7:/, r/7:/47:/,
l./page...2/, r/77.09.22        /86.08.28/,
          r/device status, page...2/end program, page ...8/,
          l./e2:/, r/2: /42:/,
          l./e5:/, r/5: /45:/,
          l./w./, r!w.!w.
e34: 0, e35: 0, 0, e36: 0 ; room for troubled device name
!,
          l./e1=/, i!
æ12æ
; dh 86.08.28           file processor, end program, page ...9...æ10ææ10æ
; table of sequences of actions
h.
;     no device errors:
f1:   a1,   a2,   a5,   a9
      ;hard error on current out
f2:   a7,   a4,   a2,   a5,   a8,   a9
;     hard error on stacked cur in zone
f3:   a1,   a6,   a5,   a8,   a2,   a9
;     hard error on cur in zone:
f4:   a3,   a4,   a6,   a5,   a8,   a10
;     hard error on other zone:
f5:   a1,   a2,   a5,   a8,   a9
w.
;     the actions are:
;a1:  outend and free curr out
;a2:  unstack curr in zone to i-bit
;a3:  terminate curr out
;a4:  connect primary out, if problems then reeinitialize fp
;a5:  remove area processes and message buffers
;a6:  free current in zone
;a7:  free current out zone
;a8:  write device status alarm, if problems then reinitialize fp
;a9:  goto (if empty stack) then commands else load
;a10: reeinitialize fp
;comment    if fp is reinitialized more than 10 times then 
;           the job will be terminated.  this should take care
;           of removed primary in and out.

!,
          l./e1=/, r/e1/e41/, r/512/1024/, l1, r/e1 /e41/, 
          l./m.fpdev/, r/fp/fp end program and/, r/77.09.22/86.09.01/,
l./insertproc page...1/, r/82.12.09/86.09.03/,
          l./i.;list/, r/i.   /e. i./,
          r/;/              ;/, r/fp na/new fp na/,
          l./b.g1/, r!w.!w. d. p.<:fpnames:>, w. l.; use old fpnames
b. w.                 ; a local block to cheat the i. in insertproc!,
          l./g1:/, r/g1:/   /, l./3584/, r/3584/4096/, 
          l./p./, i!
æ10æg1:      1<23 + 4     ; secondary entry: init
         0, r.4       ; room for docname
         s2           ; date
         0, 11        ; file, block
         2<12 + 4     ; content, entry
         512          ; code length
!,
          l./p./, r/p./d.  p./, r/:>/:>, l./,
          l./e./, i!
e.                    ; end block with g-names
!,
f

n=edit fptx

; gem prim in , prim out processes i stakken
; reinit og mode 14.yes => fp version og release message
; raise stopped bit for kind 6 as for kind 4
; magtape check, erase kun for output
; magtape check, connect in, connect out, <:enable:> isf <:ring:>
 
l./m.fp text 1/, r/08.27/12.12/
l./transient parts:/, l./segment 11/, r/11/11, 12/
l3, r/12,13/13, 14/
l3, r/14/15/
l3, r/15, 16/16, 17/

l./block io, page ...3.../, r/rc/fgs/, r/19.05.72/86.12.12/
l./am. (c22.)/, i/
      sn  w2  6          ;   if kind = disc then
      al  w2  4          ;     kind := area;
/, p1

l./page ...4/, r/12.09/12.12/
l./; device table/, d./; end block io;/, i#

; device table containing mask index and special action no.
h.                       ; bytes
e21=k       , e22=k+1    ;
      16    ,  6         ; ip         ; special actions:
      16    ,  0         ; clock      ;   0: give up
       4    ,  2         ; area       ;   2: area process action
       4    ,  2         ; disc       ;   4: end of medium
       8    ,  6         ; tw         ;   6: timer error
      12    ,  4         ; tr         ;   8: char output
      16    ,  8         ; tp         ;  10: mag tape errors
      16    ,  8         ; lp
      12    ,  4         ; cr
       0    , 10         ; mt
      16    ,  8         ; pl

; mask table specifying hard and special errors depending
; on the index selected via the process kind
w.  
e24:  8.1107 7031        ;   0: magtape              (mt)
e25:  8.2620 0744        ;   
      8.7277 7331        ;   4: area/disc process    (size) 
      8.0500 0444        ;
      8.2757 7375        ;   8: typewriters          (tw)
      8.1000 0400        ;
      8.1614 7775        ;  12: readers              (tr, cr)
      8.0100 0000        ;
      8.3677 7375        ;  16: char oriented output (ip, clock, tp, lp, pl)
      8.0100 0400        ;
e28:  8.7777 4777        ; official bits.

; treatment of status bits for different indices.
;   bit  error     hard:* spec:/
;                  0  4  8 12 16
;
;    0   local        *         
;    1   parity    /  *  *     *
;    2   timer     *  *  /  *  *
;
;    3   overrun   /  /  *  *  *
;    4   block l.  /  *  *  *  *
;    5   end doc.  *  /  *  /  /
;
;    6   load p.      *  *     *
;    7   tape mark /  *        *
;    8   ring         *  *  *  *
;
;    9   mode err. *  *  *  *  *
;   10   read err. *  *  *     *
;   11   card rej. *  *  *     *
;
;                        
;   12   sum err.  *  *  *  *  *
;   13             *  *  *  *  *
;   14             *  *  *  *  *
;
;   15   stop      /  /  /  *  /
;   16   defect    /  *  *  *  *
;   17   position  /  *  *  *  *
;
;   18   non-exist /  /  *  *  *
;   19   disconn.  *  *  *  *  *
;   20   unintell. *  *  *  *  *
;
;   21   rejected  /  /  *  *  *
;   22   normal          
;   23   give up   *  *  *  *  *
;
;                  0  4  8 12 16

e.                       ; end block io;

#, p1

l./m.fp io system/, r/82.12.09/86.12.12/

l./file processor, resident, page ...1/, r/08.27/12.12/, r/rc/fgs/
l./h61:/, r/1 /2 /
l./m.fp resident/, r/08.28/12.12/

l./m.fp text 2/, r/85.03.07/86.12.12/

l./connect in, page ...2.../, r/84.09.04/86.12.12/
l./<:mount :>/, r/<:mount :>, 0 /<:mount  <0>:>/
l./m.fp connect input/, r/84.09.04/86.12.12/

l./connect output, page ...9.../, r/82.11.29/86.12.12/
l./<:ring/, r/<:ring:>, 0   /<:enable <0>:>/
l./<:mount/, r/<:mount:>, 0  /<:mount  <0>:>/
l./page ...10/, r/84.09.04/86.12.12/
l./<:ring:>/, r/ring/enable/
l./m.fp connect out 2/, r/84.09.04/86.12.12/

l./magtape check, page ...4.../, r/84.09.04/86.12.12/
l./e42=/, l./or input/, r/    input/ -, output/
l2, r/sn  w0  3/se  w0  5/

l./magtape check, page ...5.../, r/84.09.04/86.12.12/
l./<:ring :>/, r/<:ring :>, 0 /<:enable <0>:>/
l./<:mount :>/, r/<:mount :>, 0/<:mount  <0>:>/

l./m.fp magtape check/, r/84.09.06/86.12.12/

l./m.fp text 3/, r/10.10/12.12/

l./page ...1/, r/09.03/12.12/
l./512  ; length/, r/ 512/1024/

l./page ...3/, r/82.12.09/86.12.12/
l./al  w2  x2-1/, r/-1 /-21/, r/-1;/-21;/

l./page ...4/, r/09.03/12.12/, i/
      
æ12æ

; fgs 1986.12.12       file processor          init, page ...3a...


      rl. w2  h17.-2     ;   prim proc := addr prim input proc;
                         ; repeat:
e8:   rl  w0  x2         ;   kind := prim proc.kind;
      am.    (h16.)      ;   addr (prim proc descr) :=
      rl  w1 +24         ;     top own process -
e9=k+1                   ; rel:
      al  w1  x1-20      ;     rel;
      rs  w0  x1         ;   stack.prim proc descr (0)   := 
      dl  w0  x2+4       ;     kind + 1<23;
      ds  w0  x1+4       ;   stack.prim proc descr (2:8) :=
      dl  w0  x2+8       ;     prim proc.name;
      ds  w0  x1+8       ; 
      el. w2  e9.        ;
      se  w2 -20         ;   if prim proc <> addr prim output proc then
      jl.     e18.       ;   begin
      rs. w1  h17.-2     ;     addr prim input proc := proc.top addr - 20;
      al  w0 -10         ;     rel := -10;
      hs. w0  e9.        ;     prim proc := addr prim output proc;
      rl. w2  h15.       ;     goto repeat;
      jl.     e8.        ;   end;
e18:  rs. w1  h15.       ;   addr prim output proc := proc.top addr - 10;
/, p1

l./e4:/, l./al  w0  1 /, d4, i/
      al  w0  0          ;   curr in.give up mask := curr out.give up mask :=
      al. w1  h68.       ;     1; <*i-bit*>
      ds. w1  h92.       ;   curr prog.give up mask :=  
      al  w0  1          ;     0;
      ds. w1  h93.       ;   curr in.give up act. := curr out.give up act. :=
      ds. w1  h94.       ;     curr prog.give up act. := fp std error;
/, p1

l./jd  1<11 + 48/, l./al  w0  -1-1<7/, i/
      rs. w0  h94.-2     ;   curr out.give up mask := 0; <*i-bit*>
/, p1

l./;e16:/, l-3, d2, i/
      rl. w0  h51.       ;   
      so  w0  1<9        ;   if mode 14.no then <*mode reinitmess.no*>
      jl.     e17.       ;   begin
/, p1

l./;e16:/, r/because sos supposes an input first/at reinit when mode.14 = 0;/,
r/e16://

l./am.    (h16.)/, r/ /;/
l1, r/ /;/
l1, r/ /;/
l1, r/ /;/
l1, r/ /;/
l./<:, vers/, r/<:,/<:/
l./<:, rel/, r/<:,/<:/
l./32<12+1/, r/32/48/, r/+1/+2/
l./e16:/, l-2, d1, i/
e17:                      ;   end <*mode 14.no*>;
       al  w2  10         ;   
       jl. w3  h34.-2     ;   close up (out, 'nl');
       am      2          ;   prepare call and enter end program; <*warn.yes, ok.no*>
/, p1
l1, r/al/ al/, r/comment/comment warn.no, ok.no/
l1, r/;/ ;/
l1, r/jl/ jl/
l1, i/

/, p1

l./b10:/, r/,//
l1, r/,//
l./b12:/, r/ /;/

l./g1=/, g/512/1024/, r/2 /2/

l./m.fp init 86/, r/09.03/12.12/

l./end program, page ...1/, r/08.28/12.12/
l./e8:/, l./ds. w3  h21.+h2+2/, r/ds/rs/, r/g.up.mask(out):=0;//

l./end program, page 2/, r/rc/fgs/, r/08.28/12.12/
l./a1=k-a0/, l1, i/
      al  w0  0          ;   i-bit := curr out.give up mask;
      rx. w0  h21.+h2    ;   curr out.give up mask := 0    ;
      sn  w0  1          ;   if i-bit = 1 then
      jl.     e4.        ;     goto next action; <*skip outend curr out*>
/, p1

l./m.fp end program and device status/, r/09.01/12.12/

l./insertproc page ...1.../, r/09.03/12.12/
l./g0:/, r/17/18/
l./g1:/, l./512; code length/, r/512 /1024/


f

message fp text 2 fil 7 empty
nextfile n g
n=head  


message fp text 3 fil 8 empty
nextfile n g
n=head


message job adm 1 text fil 9
nextfile n g
n=edit g        ; job adm 1,   mode head char finis end
; ny fp modebit : initmess
   
l./page ...4.../, r/rc 77.02.09/fgs 1986.12.12/
l./<:all:>/, i/
      <:initmess:>       , 0,           1<9
/, p-1

l./a0:/, l./al  w3  x3+6/, g/6/8/
l./a3=k-6/, r/-6/-8/, l1, g13/0,0/0,0,0/, p-14

l./<: listing:>/, l-1, d, i/
     <: initmess:>,0
/, p-1
l1, r/:>/:>,0/
l1, r/0,0/0,0,0/
l1, r/:>/:>,0/
l1, r/,0,0/,0,0,0/
l1, g1/,0/,0,0/, p-1
l1, g1/,0,0/,0,0,0/, p-1
l1, r/,0/,0,0/

l./m.rc, fp/, r/85.03.11/86.12.12/

f

message job adm 2 fil 10
nextfile n g
n=edit g        ; job adm 2,   i o if
f

message job adm 3 fil 11
nextfile n g
n=edit g         ; job adm 3,   account replace newjob mount opmess
;                               ring suspend release enable change timer
;                               convert mountspec kit corelock
;                               coreopen bossjob opcomm

; nyt program : enable == ring (<:enable:>)

l./page ...1/, r/85.03.13/86.12.22/
l./release - change/, r/release/release - enable/
l./slang text/, l2, r/release/release enable/

l./page ...2/, r/rc 76.06.17/fgs 1986.12.22/
l./a13:/, l-1, i/

;enable
a12: d1, d3,d19,d21, d9,d10
/, p1

l./page 13a/, r/rc 30.03.73/ fgs 1986.12.22/
l./a7-a0, b7:/, r/mount/mount  /, r/.5/.4/
l2, r/ring/ring   /, r/.5/.4/
l1, r/suspend/suspend /
l1, r/release/release /
l1, i/
a12-a0,b12: 9<13+0<5+1, <:enable :>,0,r.4
/, p-1
l1, r/change/change /, r/.5/.4/

l./page 14/, r/85.03.13/86.12.22/, r/14/...14.../
l./i13:/, r/b11/b12/
l./i11:/, i/
i12: am      b12-b11     ; entry enable:
/, p1

l./page ...14a/, r/rc 76.06.17  / fgs 1986.12.22/
l./rl. w2  c2./, i/
      am     -2000       ;
/
l1, r/c2.     /c2.+2000/
l./sn. w0  (c3./, i/
      am     -2000       ;
/
l1, r/c3.)     /c3.+2000)/

l./page ...15/, r/rc 31.07.74/ fgs 1986.12.22/
l./; change/, i/
    1<23+4,0,r.4,s2      ,0,r.2       ; enable
    2<12+i12-i0,g2
/, p-4

l./m.rc/, r/85.03.13/86.12.22/

f

message online repeat fil 12
nextfile n g
n=edit g
f

message edit text 1 fil 13
nextfile n g
n=edit g       ; edit text 1
f

message edit text 2 fil 14
nextfile n g
n=edit g        ; edit text 2
f

message edit text 3 fil 15
nextfile n g
n=edit g      ; edit text 3

f

message edit  text 4 fil 16
nextfile n g
n=edit g       ; edit text 4
f

message binin text fil 17
nextfile n g
n=edit g        ; binin
f

message binout text fil 18
nextfile n g
n=edit g       ; binout text
f

message print text fil 19
nextfile n g
n=edit g       ; print text
f

message message text fil 20
nextfile n g
n=edit g        ; message text

l./,page2/, r/12.04.73/86.08.15/, 
l./a1:/, l./sew010/, r/se/sn/, r/10/4 /, 
l./a2:/, l./32<12+1/, r/32<12+1     /1<23+127<12 +1/,
l./f1=b4/, l./m.rc1976/, r/1976.05.21/86.08.15/, 
f

message move text fil 21
nextfile n g
n=edit g        ; move text
f

message cat adm 1 text fil 22
nextfile n g
n=edit g        ; cat adm 1 text,       set setmt clearmt entry changeentry
                ;                     assign rename permanent nextfile
f

message cat adm 2 text fil 23
nextfile n g
n=edit g         ; cat adm 2 text,     lookup search clear scope
; reset permkey if permanent entry fails (13557)

l./...31/, r/81.08.06/87.03.13/
l./c25:/, l./; permanent fault:/, l1, i/
     rs. w0  c2.           ; undo permanent:
     rl. w1  a119.         ;   save result; 
     ls  w1  21            ;   key :=
     ls  w1 -21            ;     old permkey;
     jd      1<11+50       ;   permanent entry (key);
     rl. w0  c2.           ;   restore result;
/, p1

l./m.rc/, r/85.03.13/87.03.13/
f

message backfile text fil 24
nextfile n g
n=edit g        ; backfile text
f
 
message copy skip text fil 25
nextfile n g
n=edit g   
f
 
message headpunch text fil 26
nextfile n g
n=edit g
; integer exception siden 831213
; ny fp kommando syntax (lige som message)

l./page 2/, r/okh        6.9.1973/fgs     1987.03.13/
l./wd. w1 a0./, r/min/four_min/, r/00)/00*4)/
l1, i/
                    ;   <*four to avoid integer exception*>
/
l./wd. w1 a1./, r/min/four_min/
l./jl. w2 f50./, r/f50. /f50./, i/
     ls  w0 2       ;   w0 := minutes; 
/, l1, p-2
l1, i/
     ls  w3 -8      ;   >8
     wa. w3 a180.   ;   add <:.:>;
/
l./al  w3 x3+32/, d, i/
     ls  w3 -8      ;   hours :=
     wa. w3 a10.    ;     decimal (hours) add <: :>;
/
l./c25:/, r/d51./d52./, l./ld  w3 8/, d1, i/
     al  w3 x3+46   ;   w2w3 := ' 19' add year add '.';
/
l./ds. w3 d53./, r/d53./d51./
l./rl. w0 d51./, r/d51./d52./
l./rs.w3 d51./, r/d51./d52./, r/rs./rs. /
l./al  w3 x3+46/, r/46/32/, r/./ /
l1, r/d50./d53./

l./page 5/, r/ta 26.09.73   /fgs 1987.03.13/
l./c42:/, l./se  w0  10/, r/se/sn/, r/10/4 /

l./page 7/, r#ta/okh 23.01.74#fgs 1987.03.13#
l./a0:/, r/600000/600000*4/
l1, r#60#60/4#
l./a9:/, r/49/32<16+49/, r/57      /57/, r/<0>/ /
l./a10:/, r/  <0>/ <0>/

l./m.rc/, r/76.05.21/87.03.13/

f

message job text fil 27
nextfile n g
n=edit g
f

message claim text fil 28
nextfile n g
n=edit g
f

message rubout text fil 29
nextfile n g
n=edit g
f

message correct text fil 30
nextfile n g
n=edit g
f

message compress text fil 31
nextfile n g
n=edit g
f

message compresslib text fil 32
nextfile n g
n=edit ncomplibtx
; beregning af laengde af externliste for fortran subroutiner med
;   commons og zone commons i stedet for no of halfs to transfer
;   to own core
; opgiv krav om at entry base = catalog base = std base, i stedet
;   skal source ebtry base = object entry base og object base skal
;   harmonere med processens baser
; source entries genskabes på den disc hvor de oprindeligt lå før
;   de blev removed for genskabelse
; alarm hvis create entry, permanent into aux cat og set entry
;   base ikke lykkes

l./page 1/, r/rc 01.03.73  /fgs 1986.07.04/

l./page 2/, r/rc 06.03.73  /fgs 1986.07.04/
l./b9:/, r/result/result
b11: 0                 ; saved object entry base (1);
b12: 0                 ; -     -      -     -    (2);
b13: 0     , r.4       ; -     -      doc   name (1:4);
/, p-3
l./jl. w2  c7./, r/);/); <*w0 never zero*>/

l./page 4/, r/rc 27.03.73  /fgs 1986.07.04/
l./a2:/, l./jl. w2  c7./, i/
      al  w0  1          ;   ensure w0 <> 0;
/, p-1
l./dl. w0  b2.+h1+4/, i/
      dl  w0  x1+4       ;   move document name
      ds. w0  b13.+2     ;     from tail
      dl  w0  x1+8       ;     to saved object docname
      ds. w0  b13.+6     ;     for use by permanent into auxcat;
/, p-4
l./al  w1  2.111/, i/
      se  w0  0          ;   if result <> 0 then
      jl.     a5.        ;     goto alarm;
      al. w2  b13.       ;   w2 := addr old document name;
/, p-4
l./1<11+50/, r/50/90/, r/y;/y into auxcat;/
l1, i/
      se  w0  0          ;   if result <> 0 then
      jl.     a4.        ;     goto alarm;
      dl. w1  b12.       ;   
      jd      1<11+74    ;   set entry base (saved base);
      se  w0  0          ;   if result <> 0 then
      jl.     a3.        ;     goto alarm;
/, p-6
l./jl. a2./, l1, i/

a3:   am      1          ; alarm set entry base:
a4:   am      1          ; alarm permanent into auxcat
a5:   al  w1  10         ; alarm create entry:
      jl.     f5.        ;   goto alarm;
/, p-4

l./page ...5.../, r/rc 76.10.27   /fgs 1986.07.03/
l./c5:/, i/
b. a1         w.         ; begin block finis program;
/, p1
l./hs  w0  x3/, r/      /a0:   /, r/param)/param) := <s>;/
l./ba  w3  x3+1/, r/ba/ea/, r/:= <s>;//, i/
      am     (x3+1)      ;
      sn  w3  x3         ;    if separator = 0 then
      jl.     a1.        ;      goto finis;
/, p1
l./jl. -6/, r/-6 /a0./
l./rl. w2  b9./, r/      /a1:   /
l./jl. h7./, l1, i/
e.                       ; end block finis program;
/, p-1
l./b. a5/, r/d3/d10 /
l./c4:/, l./am      x2/, l1,l./am      x2/, d2, i/
      am      x2         ;
      rl  w1  x3         ;   nb := word (k + j);
      rl. w0  b4.+26     ;   w0 := kind and spec (1);
      sl  w0  0          ;   if fortran subroutine then
      jl.     a1.        ;   begin
      rs. w1  d3.        ;     save nc, nz;
      zl  w1  2          ;     nb :=
      wm. w1  d5.        ;       nc * 12;
      rx. w1  d3.        ;     nb :=
      zl  w1  3          ;       nz *
      wm. w1  d6.        ;       18 +
      wa. w1  d3.        ;       nb;
a1:   rx. w1  d1.        ;   end <*fortran subroutine*>;
/, l1, r/d3./d4./, p-14

l./d0:/, d2, i/

b10:
d0:    0                 ; saved return;
d1:    0                 ; ne
d2:    0                 ; ng
d3:    0                 ; work for nc, nz
d4:    6                 ; constant  6
d5:   12                 ; -        12
d6:   18                 ; -        18

/, p-8

l./page 6/, r/rc 09.08.73  /fgs 1986.07.04/
l./; procedure check entry./, l2, i/
;                      ; w0 = 0 => check and save object entry base
/, p1
l./b. a5/, r/a5 w./a5, d1 w./
l./c7:/, r/c7:/   /, i/

c7:   rs. w2  b8.        ; entry: save return;
      rl  w2  0          ;   w2 := w0;
/, p-2
l./(66)/, d, i/
      se  w2  0          ;   if object entry then
      jl.     a5.        ;   begin
      dl  w1  x1+4       ;   
      al  w3  0          ;     w3 := own process;
      rs. w3  d1.        ; 
      al. w3  d1.        ;
      jd      1<11+72    ;     set catalog base (entry base);
      se  w0  0          ;     if catbase not set then
      jl.     a3.        ;       result := 2
      al. w1  b4.        ;     else
      dl  w0  x1+4       ;     begin
      ds. w0  b12.       ;       save entry base;
      am          -2000  ;
      am.    (h16.+2000) ;       set catbase (std base);
      dl  w1  +78        ; 
      al. w3  d1.        ;       w3 := own process;
      jd      1<11+72    ;     end;
a5:   al. w1  b4.        ;   end;
/, p1
l./dl  w0  +70/, r/dl  w0  +70 /dl. w0  b12./
l./the catalog base/, r/catalog/saved/, p1
l./a4:/, l1, d, i/
      jl.    (b8.)       ; return;

d1:   0                  ; work;
/, p-1

l./page 7/, r/rc 06.03.73  /fgs 1986.07.04/
l./f10:/, l./h8./, d, i/
      am         -2000   ;
      rl. w3  h8.+2000   ;
/, p-2
l./b. a11/, r/a11/a20/
l./a11 ;/, l1, i/
       a12 ;          10, create entry
       a13 ;          11, permanent into auxcat
       a14 ;          12, setentry base
/, p-3
l./a10:/, i/
a12=k-a0, <: create entry<10><0>:>
a13=k-a0, <: permanent into auxcat<10><0>:>
a14=k-a0, <: set entry base<10><0>:>
/, p-3

l./page 11/, r/rc 03.24.83  /fgs 1986.07.04/
l./jl. w2  c7./, i/
      al  w0  0          ;     check entry base and save it;
/, p-1
l./a0:/, l-1, d./jl.     f8./
l./page 12/, r/rc 03.24.83  /fgs 1986.07.04/
l./a2:/, r/a2:/   /
l./a6:/, l1, r/sh/sn/
l./am (66)/, d1, i/
      dl. w1  b12.       ; 
/, p-1
l./<> catbase/, r/catbase/saved entry base/
l./hs  w1  b4./, r/hs /hs./
 
l./m.compresslib/, r/83.03.24/86.07.04/
f

message translated text fil 33
nextfile n g
n=edit g
f

message procsurvey text fil 34
nextfile n g
n=edit g
f

message label text fil 35
nextfile n g
n=edit g
; to gange connect output (set mode, setpos (0, 0)) a.h.t.
; programstyret mode

l./page ...4.../, r/ta 1977.08.17/fgs 1986.12.12/
l./jl. w3  h28./, r/;/; <*setmode; setposition (z, 0, 0);*>/
l1, i/
      jl. w3  h28.          ;   connect again ; <*setmode; setposition (z, 0, 0);*>
/, p-2

f

message allocbuf til brug for save text fil 36
nextfile n g
n=edit g
f

message fpproc til brug for save text fil 37
; bruges ikke mere
nextfile n g
n=edit g
f


message save text fil 38
nextfile n g
n=edit g
f

message load text fil 39
nextfile n g
n=edit g
; blocklength > 9 segm
l./segm:=zlabel(8) shift (-24) extract 8;/, d1, i/

      segm := 0;
      for i := -24 step 8 until -8 do
      begin
        integer digit;

        digit := zlabel (8) shift i extract 8;
        digit :=
          if digit > 48 and
             digit < 58 then
            digit - 48
          else
            0;

          if digit > 0 then
            segm := segm * 10 + digit;
        end;

/, l1, p-5

f

message catsort text fil 40
nextfile n g
n=edit g
f

message claimtest text fil 41
nextfile n g
n=edit g
f

message copyarea til brug for save vers 2 text fil 42
nextfile n g
n=edit g
f


message save version 2 text fil 43
nextfile n g
savetx1=edit g
; closeinout er rettet så der sluttes af med reopen, d.v.s. at 
; zone state i zoner med kind = 18 bliver = 8 (eller inoutbit + 8)
; hvilket er unpositioned : der må en position operation med check 
; til før en ny openinout

l./page ... 3.../

l./message transfer page 4;/, l-1, r/84.11.09/86.10.12/
l./end <*change to nexttape*> else/, l1, d, i/
            begin <*after closeinout the zone states are 'unpositioned'*>
              setposition (za (i), file (i), block (i));
              l_expell (i) := true; <*set expell condition*>
            end;

          for i := 1 step 1 until copies do
            stopzone (za (i), false); <*no mark*>
/, l1, p-7

l./page 5;/, l-1, r/84.11.08/86.10.12/
l./closeinout (/, l1, i/

      <*after closeinout the zonestates are 'unpositioned'*>
      for i := 1 step 1 until copies do
        setposition (za (i), file (i), block (i));

      for i := 1 step 1 until copies do
        stopzone (za (i), false); <*no mark*>
/, p1

    
f

savetx2=edit savetx1


v n


g b*sw8010/1*sw8010/2*
l t


   
l./save  pageheads/,d10,d./*>/

l./maybe device status  page  1;/
l./long array field docname/,l1,i#
    own boolean called_before;
#
l./if cause = -11/,r/then/and -, called_before then/
l./begin/,l1,i#
      called_before := true;
#
l./<:device st/,r/<:/<:***/
l./until 23/,r/23/21/

l./decl. second level  page  1;/
l./test    ,/,l1,i#
                        reserve                       , <*unused *>
#


l./decl. second level  page  2;/
l./syncblocklength/,l1,i#
                        aux_synclength                ,
#

 
l./special param  page  2;/
l./then 0 else 10/,r/10/11/
l./:conne:/,r/:conne:/:reser:/,r/'c'/'v'/
i#
      <:conne:> add 'c',
#
l./:t:/,r/:t:/:e:/
i#
      <:t:>,
#
l./i := 10/,r/10/11/

l./store entries  page  2;/
l./integer    /,l./;/,r/;/, loop_count;/

l./store entries  page  4;/
l./1 shift 23 + 4/,i#
        loop_count := 1;
#
l./while kind/,r/do/and loop_count < 10 do/
l./end <*while*>/,i#
          loop_count := loop_count + 1;
          if loop_count = 10 then result := 1;


#


l./save entries  page  2;/
l./ catproc;/,r/;/, next_area;/
l./(1:entries_part/,r/;/, areas (1 : (entries_part + 1) * 17);/
l./integer array field/,l1,i#
      real    array field current_entry;
#



l./save entries  page  5;/
l./partcat_size := (entr/,d,i#
        partcat_size := (entries_part + 14) // 15;

#


l./save entries  page  9;/
l./end <*move savecat/,i#

            <*save catalog entry for later use - page 12 - *>
            current_entry := (entries_ready - 1) * 34;
            tofrom (areas.current_entry, zcat, 34);

#


l./save entries  page 11;/
l./<*outrec6, stop/,l1,i#
              check(za (copy_count));
#



l./save entries  page 12;/
l./mark := /,d,i#
          mark := false;
       
          if (entry_kind (j) // segm) > 4
          and copies = 1 then
          begin <*change to highspeed if specified*>
            getzone_6 (za (1), zdescr);
            zdescr (1) := modekind (1) extract 23;
            setzone_6 (za (1), zdescr);
          end;
#
l./<*area processes are removed/,d
l./close (za (copies + 1), false)/,i#

          for copy_count := 1 step 1 until copies do
          begin
            <*make one sync block*>
            integer array zd (1 : 20);
            integer bl;
            if copies = 1 then
            begin <*remove highspeed bit in modekind*>
              getzone_6 (za (1), zd);
              zd (1) := modekind (1) extract 18;
              setzone_6 (za (1), zd);
            end;

            if ida_copy then
            begin <*update position in tape zone*>
              getposition (zida, fileno (1), blockno (1));
              getzone_6 (za (1), zd);
              zd (7) := fileno (1);
              zd (8) := blockno (1);
              setzone_6 (za (1), zd);
            end;
            bl := outrec_6 (za (copy_count), 0);
            outrec_6 (za (copy_count), aux_synclength);
            za (copy_count, 1) := real <::>;
            current_entry := 4;
            <*zeroize zync block*>
            tofrom (za (copy_count).current_entry, za (copy_count), aux_synclength - 4);
            for next_area := j + 1 step 1 until entries_ready do
            begin <*find descriptor of next area to be transferred*>
              if entry_kind (next_area) > 0 then
              begin <*area found - copy descriptor to sync block*>
                current_entry := (next_area - 1) * 34;
                tofrom (za (copy_count), areas.current_entry, 34);   
                next_area := entries_ready;
              end;
            end;
            outrec_6 (za (copy_count), bl);
            changerec_6 (za (copy_count), 0);
            stopzone (za (copy_count), false);
            getposition (za (copy_count), fileno (copy_count), blockno (copy_count));
            if ida_copy then
            begin <*update position in ida zone*>
              getzone_6 (zida, zd);
              zd (7) := fileno (1);
              zd (8) := blockno (1);
              setzone_6 (zida, zd);
            end;
          end; <*make sync blocks *>
#
l./if ida_copy then/,i#
<*
#
l./if ida_copy/ 
g 4/*/./
l./until entries/,i#
*>

      getzone (zhelp, zdescr);
      for j := 2 step 1 until entries_ready do
      begin
        if entry_kind (j) > 0 then
        begin <*remove process*>
          name := (j-1)*34 + 6;                                      
          base := (j-1)*34 + 2;
          set_catbase (areas.base);
          tofrom (zdescr.docname, areas.name, 8);
          setzone_6 (zhelp, zdescr);
          monitor (64)remove_process:(zhelp, 0, zdescr);
        end;
      end;
      reset_catbase;

#
l./end <*partial catalog/,i#
    for copy_count := 1 step 1 until copies do
    begin <*terminate with filemark*>
      outrec_6 (za (copy_count), 0);
      setposition (za (copy_count), fileno (copy_count) + 1, 0);
      getposition (za (copy_count), fileno (copy_count), blockno (copy_count));
    end;
#




l./list entry  page  3;/
l./<*latest changed*>/,
l./write (/,r/write/if changed <> 0 then write/




l./skip entry  page  1;/
l./begin/,l1,i#
      long array field name;
      name := 6;
#
l./write/,d,i#
      write (z, "nl", 1, <:***:>, true, 12, entry.name, <:skipped : :>,
#




l./list counters  page  1/
l./if disc_specified/,d
l./(entry/,r/ (/      if (/



l./open tape  page  1;/
l./:mount :/,r/t :/t  :/
l./open (z, /,r/1 shift 18/1 shift 21 + 1 shift 18/
l./:ring  :/,r/:ring  :/:enable :/
l./:high/,r/h  :/h   :/,r/w   :/w    :/


l./get file nos  page  2;/
l./open_tape/,r/modekind (i)/modekind (i) extract 18/


l./get file nos  page  3;/
l./fileno_found (i) :=/,r/:=/:= hw (i) = 2;/
l1,d./:cont.:/


l./out labelrec  page  4;/
l./sync_blocklength/,l1,i#
        ifld := ifld +  2; ztape.ifld := aux_synclength;
#

l./transfer  page  5;/
l./if name_table_addr > 0 then/,d./end <*prepare/
l./close/,r/name_table_addr > 0/false/


l./next volume   page  3;/
l./long  array/,l1,i#
      integer    i;
#
l./close (za (ind/,i#
      if output then
      begin
        setposition (za (index), file (index), 0);
        for i := 1 , 2 do
        begin
          outrec6 (za (index), 0);
          setposition (za (index), file (index) + i, 0);
        end;
      end;
#
l./open_tape/,r/modekind (index)/modekind (index) extract 18/



l./program  page  2;/
l./if entries_in_partcat < 1/,i#
    if entries_in_partcat > 50 then entries_in_partcat := 50;

#
l./release_id := /,r/2/3/
l./sync_block/,l1,i#
    aux_synclength := 320;

#


l./program  page  9;/
l./; <*connect*>/,l1,i#

        ; <*reserve*>
#



l./declare zones  page  1;/
l./no_of_ida_shares :=/,r/:=/:= 1;/,l1,d2


l./take over  page  4;/
l./close (ztape (2), true);/,r/true/false/


l./end of document  page  1;/
l./getzone__6/,i#
        if status shift (-18) extract 1 = 1 then
        begin <* end of document *>
#
l./getzone__6/,r/g/  g/
l1,l./getshare_6/,r/g/  g/
l1,l./index/,r/i/  i/
l1,l./operation/,r/o/  o/
l1,l./end_of_doc/,r/e/  e/
l1,i#
        end <* end of document *>;

#

l./prepare tapes and ida  page  1;/
l./open_tape/,l1,r/modekind (copy_count)/modekind (copy_count) extract 18/


l./end third block  page  1;/
l./for copy_count/,d./setposition/,d
l./out_endmess/,i#
        for copy_count := 1 step 1 until no_of_copies do
#
l./end <*next file*>;/,d
i#
        fpproc (33)out end:( 0, out, 'nul');

        for copy_count := 1 step 1 until no_of_copies do
        begin <* terminate with filemark *>

#
l./begin <*empty label record*>/,l-1
d./<*if parent is s output/
l./*empty label/,r/empty label record/terminate with filemark/

l./end third block  page  2;/
l./<*out tapemark*>/
l./outrec6  (/,d3
l./setposition/,i#
          setposition (ztape (copy_count),
                      fileno (copy_count),
                     blockno (copy_count));
          outrec6 (ztape (copy_count), 0);
#

l./program  page 16;/
l1,i#
    getzone_6 (out, zdescr);
    if zdescr (1) extract 12 = 4 then
    begin
#
l./<*write/,r/</  </
l./list/,r/l/  l/
l1,r/list/  list/
l1,i#

    end;
#




f

n=edit savetx2
f

message load version 2 text fil 44
nextfile n g
loadtx1=edit g

; closeinout er rettet så der sluttes af med reopen, d.v.s. at 
; zone state i zoner med kind = 18 bliver = 8 (eller inoutbit + 8)
; hvilket er unpositioned : der må en position operation med check 
; til før en ny openinout

l./page ... 3.../

l./message load entries page 5;/, l-1, r/85.02.19/86.10.10/
l./stopzone (za (1), false);/, l./setposition (za (1)/, d1
l1, i/

                setposition (za (1), fileno (copy_count), blockno (copy_count));
                setposition (za (2), 0                  , 0                   );
/,p-3

f

loadtx2=edit loadtx1

v n

g b*sw8010/1, save*sw8010/2, load*
l t


l./message pageheads/,d./*>/

l./connect output  page  1;/
; line 1303
g 7/giveup/size, giveup/,l-7
l./zone/,r/;/      ;/
l./long/,r/;/      ;/
l./result := 1 shift 1;/,r/1 shift/size shift/,r/one/at least one/

    

l./maybe device status  page  1;/
; line 1432
l./long array field docname/,l1,i#
    own boolean called_before;
#
l./if cause = -11/,r/then/and -, called_before then/
l./begin/,l1,i#
      called_before := true;
#
l./<:device status/,r/<:dev/<:***dev/
l./until 23/,r/23/21/



l./decl. second level   page  1/
; line 1489
l./test  ,/,i#
                        reserve                     , <*not used*>
#


l./decl. second level  page  2;/
l./dummy     ,/,i#
                        aux_synclength                ,
#



l./connect wrk or exist  page  4;/
; line 1839
l./entry.size >= 0/,r/>=/>/



l./special param  page  2;/
; line 2276
l./step 1 until/,r/0 else 10/0 else 11/
l./<:conne:>/,r/:conne:/:reser:/,r/add 'c'/add 'v'/
i#
      <:conne:> add 'c',
#
l./<:t:>/,r/:t:/:e:/,i#
      <:t:>,
#
l./j := i;/,r/10/11/



l./load entries  page  3;/
; line 3481
l./vol  := ca/,i#
      trap (remove_wrk_entry);

#
l./open  (zcat,/,i#
      partcat_size := (entries_part + 14) // 15;
#
l./:= connect_output (/,r/0)/partcat_size, 0)/
l./<*prepare partial catalog*>/
l./partcat_size :=/,d


l./load entries  page  5;/
; line 3555
l./<:not all segments/,r/not all/incorrect no of/

l./load entries  page  6;/
; line 3635
l./setposi/,i#
                if aux_synclength > 0 and -, skipped_area_entry then
                  setposition (za (1), fileno (copycount), blockno (copycount) + 1) else
#
l./load  and/,d
l./terminate_alarm/
l./<:not/,r/</if zpart.size > segments then </,r/>,/> else/
l1,i#
               <:too many segments of area transferred from tape:>,
#
l./end load_entries;/,i#
      if false then
remove_wrk_entry:
      begin
         <*fjern entry hvis docname i za(2) er forskellig fra
           name i zpart.entry d.v.s. docname i zone er et wrk-navn *>
        integer array zd (1 : 20);
        long array field docname;
        maybe_device_status (out);
        docname := 2;
        getzone (zpart, zd);
        if zd (13) = 5 <*after inrec*> then
        begin
         getzone_6 (za (2), zd);
  
         for j := 1 step 1 until 2 do
         if zpart.entry.name (j) <> zd.docname (j) then
         begin
           set_catbase (zpart.entry.base);
           monitor (48)remove_entry:(za (2), 1, zd);
           j := 2;
           reset_catbase;
        end;
      end;
     trap (1);
     end; <*remove_wrk_entry*>

#



l./list entry  page  3;/
; line 3945
l./<*latest changed*>/
l./write (/,r/write/if changed <> 0 then write/




l./skip entry  page  1;/
; line 3968
l./list_entry (z/,i#
      long array field name;
      name := 6;
#
l./write/,d,i#
      write (z, "nl", 1, <:*** :>, true, 12, entry.name, <: skipped : :>,
#


l./open tape  page  1;/
; line 4170
l./open (z/,r/1 shift 18/1 shift 18 + 1 shift 21/,r/extract 23/extract 18/


l./get file no  page  4;/
; line 4343 
l./:= get_labelrec/,l./sync_blockl/,i#
                                            aux_synclength,
#
l./:= get_labelrec/,l./sync_blockl/,i#
                                                aux_synclength,
#
l./file_no_found :=/,r/-, label_found/label_found extract 12 = 2/


l./get file no  page  5;/
; line 4553
l./<*version or con/,l1,i#
          if label_found then
          begin
#
l1,r/vol/  vol/,l1,r/fil/  fil/,l1,r/blo/  blo/,l1,i#
          end;
#


l./get labelrec  page  1;/
l./sync_blength/,i#
                                                     aux_sync     ,
#
l./integer/
l./sync_blength/,i#
                                                     aux_sync     ,
#
l./get labelrec  page  3;/
; line 4479
l./if hwds <> 100/,l1,d,i#
        begin
          if hwds = 2 then get_labelrec := false add 2
                      else get_labelrec := false;
        end
#

l./sync_blength  :=/,l1,i#
              ifld := ifld +  2; aux_sync         := z.ifld;
              if release < 3 shift 12 then aux_sync := 0;
#

l./transfer  page  3;/
;line 4718
l./getzone6/,i#
      if (segments // segm) > 4 then
      begin <*if specified set high speed*>
        getzone_6 (za (1), zdescr);
        zdescr (1) := modekind (i) extract 23;
        setzone_6 (za (1), zdescr);
      end;
#
l./<*not end of docu/,l1,d./end <*too many*>/,i#
          if sumsegs + segs < segments then
          begin <*transfer not terminated check correct blocksize*>
            if segs <> segm then segments := sumsegs + segs;
          end;
#

l./transfer  page  4;/
; line 4764
l./<:not all seg/,r/not all/incorrect no of/


l./transfer page 5;/
l./closeinout/,d
l./if name_table_addr > 0/,i#
      closeinout (za); <*reallocate buffer area*>
#
l./reset_catbase;/,l1,i#
      getzone_6 (za (1), zdescr); <*reset high speed bit*>
      zdescr (1) := modekind (i) extract 18;
      setzone_6 (za (1), zdescr);
#




l./next volume  page  3;/
; line 4947
l./n_syncblocklength/,r/n_sync/n_auxsynclength, n_sync/
l./get_labelrec (z/,l./n_sync_block/,r/ n_sync/                     n_auxsynclength , n_sync/
l./<:syncblock/,i#
          "nl", 1, <:aux sync   , nauxsyncleng = :>, aux_synclength, 
                                                     naux_synclength,
#



l./end of document  page  2;/
; line 5027
l./end <*end of docum/,l1,i#
        if status shift (-21) extract 1 = 1 then
        begin <*timer*>
          if operation = 3 and
             hwds      = 0 <*nothing transferred*> then
             hwds := 2 <*end of recorded media - on adp streamer tape*>
          else giveup (ztape, status, hwds);
        end <*timer*> else
#



l./program  page  8;/
l./connect  :=/,d
l./end <*special block/,i#
      connect := entry (14) extract 1 = 1;

#
l./program  page 10;/
; line 5391
l./end case action/,i#
        <*reserve*>
        ; <*ignore reserve param*>

#


l./program  page 23;/
; line 5862
l./long <:main/,r/or disc/or (disc/
l./long <:all/,r/or disc/or  disc/,r/<:all:>/<:all:> and i <= no_of_discs)/
l./until discname (entry/,r/ and/;/,l1,d



l./prepare tapes  page  1;/
l./get_labelrec (z/
l./version_id/,r/          //,r/sync/aux_synclength , sync/
l./<:sync bl/,i#
          "nl", 1, <:aux synclength     = :>, aux_synclength,
#


l./declare zones  page  1;/
l./no_of_shares :=/,d,i#
      no_of_shares := 2; <*basta*>
#


l./prepare save-loadcat  page  2;/
; line 6104
l./connect_output/,r/0))/savecatsize, 0))/
l./<:not all/,r/<:/if segments < savecatsize then <:/,r/,/ else/,l1,i#
            <:too many segments of save catalog transferred from tape:>,
#
l./connect_output (z/,r/0)/savecatsize, 0)/


l./program  page 27;/
; line 6225
l./if tapeparam/,i#
  getzone_6 (out, zdescr);
  
#
l./if tapeparam/,r/then/and zdescr (1) extract 12 = 4 then/



f

n=edit loadtx2
f



lookup n g

message slut editering af utility texter


finis
▶EOF◀