|
|
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: 22272 (0x5700)
Types: TextFile
Names: »monold «
└─⟦9ccaf6601⟧ Bits:30008165 Bånd med SW8000 kildetekst/release værktøjer
└─⟦2ba378e4a⟧
└─⟦this⟧ »monold «
message monold version 84 08 27
; this textfile creates the following files:
;
; checkmtfile : a program for checking <monold> catalog entry
;
; slangcompr : a program for compressing slang texts
;
; montapesame : fp-commands for making a magtape copy of current version
; (incl. the monchange edit-file)
; montapenew : fp-commands for making an updated magtape version
; (i.e. with an empty monchange edit-file)
; montapenewc : fp-commands for making an compressed updated magtape
; version (i.e. with a dummy monchange file)
; monload : fp-commands for restoring a magtape version
; onto disc
; monloadc : fp-commands for restoring a magtape version as compressed
; : texts onto disc
; monperm : fp-commands for permanenting the files after load to disc
;
;
; if <monold> catalog-entry describes a file on a magtape, file-descriptors
; will be created for all the files on the magtape, and the following
; files are moved to disc:
; monchange : edit-file for making an updated version (omitted
; when using monloadc)
; moptions : standard options
;
;
; prepare system generation:
; monold = set mto <tape name> 0 1
; (or: monold = set nrz <tape name> 0 1 )
; i monold
;
; after this, it is possible (but not nescessary) to move all files to disc,
; as copies of the tape text files, by:
; i monload
; or as compressed text files, by:
; i monloadc
; if you want to decide where to load the files, the call of the
; load command should be preceeded by:
; monnew = set <initial area size> <document name>
; ( i monload or i monloadc )
; in case the files loaded should be permanented this command is used:
; i monperm
;
; whether or not the text files are on disc or magtape, the following
; features are available:
;
; making an updated version (on disc):
; i monchange
;
; assembling the current (or the updated) version:
; monoptions = edit moptions
; ...some corrections...
; finisedit
; i monoptions
;
; copies on magtape are generated in this way:
; monnew = set mto <new tape name> 0 1
; (or: monnew = set nrz <new tape name> 0 1 )
; if the current version is wanted then call:
; i montapesame
; if the updated version is wanted then call:
; i montapenew
; or if an compressed updated version is wanted then call:
; i montapenewc
\f
;
; the tape contains:
; file 0 .......
; file 1 monold
; file 2 monchange
; file 3 moptions
; file 4 dummy or old monchange (montapenew)
;
; file 5 mondef
; file 6 moncentral
; file 7 monprocs
; file 8 mondisc
; file 9 monfpaline
; file 10 monhost
; file 11 monfpasub
; file 12 montabinit
; file 13 monprocfnc1
; file 14 monprocfnc2
; file 15 mons1
; file 16 mons2
; file 17 moncatinit
;
; file 18 tautoboot
; file 19 tinitboot
; file 20 tmuscopy
; file 21 automove
; file 22 link8000
; file 23 startarea
; file 24 startinput
; file 25 tstartdate
; file 26 idaboot
\f
; rc monold ...1...
head cpu
; generate commands for producing a copy of monitor text tape
montapesame = copy message.no 47.1
head 1 cpu
message montapesame
lookup monnew
if ok.no
(message monnew not set
end)
f = entry monnew monnew monnew monnew
f = copy monold
nextfile f
f = copy monchange
nextfile f
f = copy moptions
nextfile f
f = copy monchange
nextfile f
f = copy mondef
nextfile f
f = copy moncentral
nextfile f
f = copy monprocs
nextfile f
f = copy mondisc
nextfile f
f = copy monfpaline
nextfile f
f = copy monhost
nextfile f
f = copy monfpasub
nextfile f
f = copy montabinit
nextfile f
f = copy monprocfnc1
nextfile f
f = copy monprocfnc2
nextfile f
f = copy mons1
nextfile f
f = copy mons2
nextfile f
f = copy moncatinit
nextfile f
f = copy tautoboot
nextfile f
f = copy tinitboot
nextfile f
f = copy tmuscopy
nextfile f
f = copy automove
nextfile f
f = copy link8000
nextfile f
f=copy startarea
nextfile f
f=copy startinput
nextfile f
f=copy tstartdate
nextfile f
f=move message.yes idaboot
head 1 cpu
/ ; end of montapesame
\f
; rc monold ...2...
; generate commands for producing a new monitor text tape
montapenew = copy message.no 47.1
head 1 cpu
message montapenew
lookup monnew
if ok.no
(message monnew not set
end)
f = entry monnew monnew monnew monnew
f = copy monold
nextfile f
f=copy 45.1
; generate empty monchange file
(
message monchange date
skip 36.1
c=copy mess.no 1
mdef=move mondef
skip 36.1
c=copy mess.no 1
mcentral=move moncentral
skip 36.1
c=copy mess.no 1
mprocs=move monprocs
skip 36.1
c=copy mess.no 1
mdisc=move mondisc
skip 36.1
c=copy mess.no 1
mfpaline=move monfpaline
skip 36.1
c=copy mess.no 1
mhost=move monhost
skip 36.1
c=copy mess.no 1
mfpasub=move monfpasub
skip 36.1
c=copy mess.no 1
mtabinit=move montabinit
skip 36.1
c=copy mess.no 1
mprocfnc1=move monprocfnc1
skip 36.1
c=copy mess.no 1
mprocfnc2=move monprocfnc2
skip 36.1
c=copy mess.no 1
ms1=move mons1
skip 36.1
c=copy mess.no 1
ms2=move mons2
skip 36.1
c=copy mess.no 1
mcatinit=move moncatinit
head cpu
end)
$def
;********************
$central
;********************
$procs
;********************
$disc
;********************
$fpaline
;********************
$host
;********************
$fpasub
;********************
$tabinit
;********************
$procfnc1
;********************
$procfnc2
;********************
$s1
;********************
$s2
;********************
$catinit
;********************
-; end of empty monchange file
nextfile f
f = copy moptions
nextfile f
f = copy monchange
nextfile f
f = copy mdef
nextfile f
f = copy mcentral
nextfile f
f = copy mprocs
nextfile f
f = copy mdisc
nextfile f
f = copy mfpaline
nextfile f
f = copy mhost
nextfile f
f = copy mfpasub
nextfile f
f = copy mtabinit
nextfile f
f = copy mprocfnc1
nextfile f
f = copy mprocfnc2
nextfile f
f = copy ms1
nextfile f
f = copy ms2
nextfile f
f = copy mcatinit
nextfile f
f = copy tautoboot
nextfile f
f = copy tinitboot
nextfile f
f = copy tmuscopy
nextfile f
f = copy automove
nextfile f
f = copy link8000
nextfile f
f=copy startarea
nextfile f
f=copy startinput
nextfile f
f=copy tstartdate
nextfile f
f=move message.yes idaboot
head 1 cpu
/ ; end of montapenew
\f
; rc monold ...3...
; generate commands for restoring from tape
monload = copy message.no 47.1
head 1 cpu
message monload
lookup monold
if ok.no
(message monitor files not loaded
end)
checkmtfile
if ok.no
(message monold not a magtape
end)
lookup monnew
if ok.no
(message monitor files loaded as
monnew = set 1 1
lookup monnew)
f = entry monold monold monold monold
clear temp,
monold monchange moptions,
mondef moncentral monprocs mondisc monfpaline,
monhost monfpasub montabinit monprocfnc1 monprocfnc2,
mons1 mons2 moncatinit,
tautoboot tinitboot tmuscopy automove link8000,
startarea startinput tstartdate idaboot
monold = entry monnew monnew monnew monnew
monold = move f
nextfile f
monchange = entry monnew monnew monnew monnew
monchange = move f
nextfile f
moptions = entry monnew monnew monnew monnew
moptions = move f
nextfile f
; old monchange
; not loaded
nextfile f
mondef = entry monnew monnew monnew monnew
mondef = move f
nextfile f
moncentral = entry monnew monnew monnew monnew
moncentral = move f
nextfile f
monprocs = entry monnew monnew monnew monnew
monprocs = move f
nextfile f
mondisc = entry monnew monnew monnew monnew
mondisc = move f
nextfile f
monfpaline = entry monnew monnew monnew monnew
monfpaline = move f
nextfile f
monhost = entry monnew monnew monnew monnew
monhost = move f
nextfile f
monfpasub = entry monnew monnew monnew monnew
monfpasub = move f
nextfile f
montabinit = entry monnew monnew monnew monnew
montabinit = move f
nextfile f
monprocfnc1 = entry monnew monnew monnew monnew
monprocfnc1 = move f
nextfile f
monprocfnc2 = entry monnew monnew monnew monnew
monprocfnc2 = move f
nextfile f
mons1 = entry monnew monnew monnew monnew
mons1 = move f
nextfile f
mons2 = entry monnew monnew monnew monnew
mons2 = move f
nextfile f
moncatinit = entry monnew monnew monnew monnew
moncatinit = move f
nextfile f
tautoboot = entry monnew monnew monnew monnew
tautoboot = move f
nextfile f
tinitboot = entry monnew monnew monnew monnew
tinitboot = move f
nextfile f
tmuscopy = entry monnew monnew monnew monnew
tmuscopy = move f
nextfile f
automove = entry monnew monnew monnew monnew
automove = move f
nextfile f
link8000 = entry monnew monnew monnew monnew
link8000 = move f
nextfile f
startarea=entry monnew monnew monnew monnew
startarea=move f
nextfile f
startinput=entry monnew monnew monnew monnew
startinput=move f
nextfile f
tstartdate=entry monnew monnew monnew monnew
tstartdate=move f
nextfile f
idaboot=entry monnew monnew monnew monnew
idaboot=move f
head 1 cpu
/ ; end of monload
\f
; rc monold ...5...
; generate commands for restoring compressed texts from tape
monloadc = copy message.no 47.1
head 1 cpu
message monloadc
lookup monold
if ok.no
(message monitor files not loaded
end)
checkmtfile
if ok.no
(message monold not a magtape
end)
lookup monnew
if ok.no
(message monitor files loaded as
monnew = set 1 1
lookup monnew)
f = entry monold monold monold monold
clear temp,
monold monchange moptions,
mondef moncentral monprocs mondisc monfpaline,
monhost monfpasub montabinit monprocfnc1 monprocfnc2,
mons1 mons2 moncatinit,
tautoboot tinitboot tmuscopy automove link8000,
startarea startinput tstartdate idaboot
monold = entry monnew monnew monnew monnew
monold = move f
nextfile f
; monchange
; not loaded
nextfile f
moptions = entry monnew monnew monnew monnew
moptions = move f
nextfile f
; old monchange
; not loaded
nextfile f
mondef = entry monnew monnew monnew monnew
mondef = slangcompr f
nextfile f
moncentral = entry monnew monnew monnew monnew
moncentral = slangcompr f
nextfile f
monprocs = entry monnew monnew monnew monnew
monprocs = slangcompr f
nextfile f
mondisc = entry monnew monnew monnew monnew
mondisc = slangcompr f
nextfile f
monfpaline = entry monnew monnew monnew monnew
monfpaline = slangcompr f
nextfile f
monhost = entry monnew monnew monnew monnew
monhost = slangcompr f
nextfile f
monfpasub = entry monnew monnew monnew monnew
monfpasub = slangcompr f
nextfile f
montabinit = entry monnew monnew monnew monnew
montabinit = slangcompr f
nextfile f
monprocfnc1 = entry monnew monnew monnew monnew
monprocfnc1 = slangcompr f
nextfile f
monprocfnc2 = entry monnew monnew monnew monnew
monprocfnc2 = slangcompr f
nextfile f
mons1 = entry monnew monnew monnew monnew
mons1 = slangcompr f
nextfile f
mons2 = entry monnew monnew monnew monnew
mons2 = slangcompr f
nextfile f
moncatinit = entry monnew monnew monnew monnew
moncatinit = slangcompr f
nextfile f
tautoboot = entry monnew monnew monnew monnew
tautoboot = move f
nextfile f
tinitboot = entry monnew monnew monnew monnew
tinitboot = move f
nextfile f
tmuscopy = entry monnew monnew monnew monnew
tmuscopy = move f
nextfile f
automove = entry monnew monnew monnew monnew
automove = move f
nextfile f
link8000 = entry monnew monnew monnew monnew
link8000 = move f
nextfile f
startarea=entry monnew monnew monnew monnew
startarea=move f
nextfile f
startinput=entry monnew monnew monnew monnew
startinput=move f
nextfile f
tstartdate=entry monnew monnew monnew monnew
tstartdate=move f
nextfile f
idaboot=entry monnew monnew monnew monnew
idaboot=move f
head 1 cpu
/ ; end of monloadc
\f
; rc monold ...6...
monperm = copy message.no 47.1
head 1 cpu
message monperm
lookup monold
if ok.no
(message monitor files not loaded
end)
checkmtfile
if ok.yes
(message monold a magtape
end)
scope user,
monold monchange moptions,
mondef moncentral monprocs mondisc monfpaline,
monhost monfpasub montabinit monprocfnc1 monprocfnc2,
mons1 mons2 moncatinit,
tautoboot tinitboot tmuscopy automove link8000,
startarea startinput tstartdate idaboot
/; end of monperm
\f
; rc monold ...7...
; generate commands for producing a new compressed monitor text tape
montapenewc = copy message.no 47.1
head 1 cpu
message montapenewc
lookup monnew
if ok.no
(message monnew not set
end)
(
f = entry monnew monnew monnew monnew
f = copy monold
nextfile f
f = message message dummy monchange file
nextfile f
f = copy moptions
nextfile f
f = message message dummy old monchange file
nextfile f
wrk = slangcompr mdef
f = copy wrk
nextfile f
wrk = slangcompr mcentral
f = copy wrk
nextfile f
wrk = slangcompr mprocs
f = copy wrk
nextfile f
wrk = slangcompr mdisc
f = copy wrk
nextfile f
wrk = slangcompr mfpaline
f = copy wrk
nextfile f
wrk = slangcompr mhost
f = copy wrk
nextfile f
wrk = slangcompr mfpasub
f = copy wrk
nextfile f
wrk = slangcompr mtabinit
f = copy wrk
nextfile f
wrk = slangcompr mprocfnc1
f = copy wrk
nextfile f
wrk = slangcompr mprocfnc2
f = copy wrk
nextfile f
wrk = slangcompr ms1
f = copy wrk
nextfile f
wrk = slangcompr ms2
f = copy wrk
nextfile f
wrk = slangcompr mcatinit
f = copy wrk
nextfile f
f = copy tautoboot
nextfile f
f = copy tinitboot
nextfile f
f = copy tmuscopy
nextfile f
f = copy automove
nextfile f
f = copy link8000
nextfile f
f=copy startarea
nextfile f
f=copy startinput
nextfile f
f=copy tstartdate
nextfile f
f=move message.yes idaboot
head 1 cpu
)
/ ; end of montapenewc
\f
; rc monold ...8...
; program for checking mtfile
checkmtfile = slang message.no warning.no
s. a10 w.
p. <:fpnames:>
k = h55
0,0
al. w1 a1. ; w1 := tail area;
al. w3 a2. ; w3 := <:monold:>
jd 1<11+42; lookup entry
al w2 0 ; ok := yes;
bz w3 x1+1 ; w3 := kind (in case of file descriptor);
sn w3 18 ; if kind <> mto (or nrz)
sh w2 (x1) ; or not file descriptor then
al w2 1 ; ok := no;
jl. h7. ; return to fp;
a1: 0, r.10 ; tail for lookup
a2: <:monold:>, 0, 0 ;
e.e.
\f
; rc monold ...9...
; program for compressing slang texts
slangcompr = slang message.no warning.no
; rc 76.07.01 textcompr
b.
d.
p.<:fpnames:>
l.
;this program compresses a slang text i.e. removes all
;blind characters (spaces and non-graphics) except in text
;strings and messages. all vt and ff is converted to nl.
; call: result=textcompr infile
s. j5, i5, g5, f5, e5, d5, c10, b5, a5
w.
k=h55
0
b2: 0 ;
ds. w3 b2. ; entry: save fpparam
sn w3 x2 ; if no left side then
jl. a1. ; alarm(call)
al. w1 h19.
jl. w3 h79.
al. w3 b1.
rs. w3 h80.+2
al w3 x3-1
rs w3 x1+h0
al w3 x3+512
rs w3 x1+h0+2
al w2 x2+2
al w0 1<1+1
jl. w3 h28.
se w0 0
jl. a2.
rl. w3 b2. ;
bl w1 x3+10
sh w1 3
jl. a3. ; if no param then alarm
bl w1 x3+11 ;
se w1 10 ; if param<>text
jl. a3. ; then alarm(param)
jl. w3 h29.-4 ; stack cur in
rl. w3 b2. ;
al w2 x3+12 ; connect input
jl. w3 h27.-2 ;
se w0 0
jl. a2.
jl. c1. ; goto next;
c0: rs. w2 f3. ; outnext:
al. w1 h19.
jl. w3 h26. ; outchar(char);
c1: jl. w3 h25.-2 ; next: inchar(char)
d0: bl. w3 x2+g0. ; take action: action:= table(char);
al w0 1 ;
j0: jl. x3 ; goto action;
d1: al w0 1 ; normal1:
c2=k-j0
sn. w0 (f0.) ; normal:
jl. c1. ; goto if comment then next else outnext;
jl. c0. ;
c3=k-j0
se. w0 (f1.) ; space:
sn. w0 (f2.) ; goto if string or message
jl. c0. ; then outnext else next;
jl. c1. ;
c4=k-j0
al w2 10 ; nl: vt: ff:
al w0 0 ; char:= nl;
se. w0 (f2.) ; if message then message:= false else
rs. w0 f2. ;
se. w0 (f0.) ; if comment then comment:= false;
rs. w0 f0. ;
al w3 10 ;
sn. w0 (f1.) ; if string or
se. w3 (f3.) ; char<>10 then
jl. c0. ; goto outnext else
jl. c1. ; goto next;
c5=k-j0
jl. w3 h30.-4 ; unstack cur in
al. w1 h19. ; em:
rl w0 x1+h3 ;
ws w0 x1+h0 ;
hs. w0 c10. ; recbase-basebuf
jl. w3 h95.
jl. w3 h79. ; terminate program
al w2 x1
al w3 x1+h1+2
al. w1 h54. ; lookup area
jd 1<11+42 ; lookup entry
rl w3 x2+h1+16 ; tail(0):=segm.count
rs w3 x1 ;
al w3 x3-1 ; (segm-1)
ls w3 9 ; *512
c10=k+1
al w3 x3+80 ; +(recbase-basebuf
al w3 x3+2 ; +2)
rs w3 x1+18 ; => loadlength
dl w0 110 ;
ld w0 5 ;
rs w3 x1+10 ; shortclock
al w3 x2+h1+2 ; restore w3
bz w2 x2+h1+1 ; output kind
sn w2 4 ; if kind=bs then
jd 1<11+44 ; changeentry
al w2 0 ; ok:=true;
jl. h7. ; goto fp end program;
c6=k-j0
sn. w0 (f0.) ; semicolon:
jl. c1. ; if comment then goto next;
se. w0 (f1.) ;
sn. w0 (f2.) ; if string or message
jl. c0. ; then goto outnext;
rs. w0 f0. ; comment:= true;
jl. c1. ; goto next;
c7=k-j0
am 1 ; m: m: mess:= true; goto inn;
c8=k-j0
al w3 0 ; less than: mess:= false;
hs. w3 b0. ; inn:
sn. w0 (f0.) ; if comment then goto next;
jl. c1. ;
se. w0 (f1.) ;
sn. w0 (f2.) ; if string or message then goto outnext;
jl. c0. ;
al. w1 h19.
jl. w3 h26. ; outchar(char);
jl. w3 h25.-2 ; inchar(char);
b0=k+1;mess, true=1,false=0
se w3 x3 ; if mess then goto message;
jl. a0. ;
se w2 58 ; if char<>colon then goto take action;
jl. d0. ;
rs. w0 f1. ; string:= true;
jl. c0. ; goto outnext;
a0: se w2 46 ; message:
jl. d0. ; if char<>point then goto take action;
rl. w3 f3. ;
sh w3 63 ; if oldchar<>letter then
rs. w0 f2. ; message:= true;
jl. c0. ; goto outnext;
c9=k-j0
al w0 0 ; colon:
sn. w0 (f1.) ;
jl. d1. ; if not string then goto normal1;
al. w1 h19.
jl. w3 h26. ; outchar(char);
jl. w3 h25.-2 ; inchar(char);
se w2 62 ; if char<>greater than then
jl. d0. ; then goto take action;
rs. w0 f1. ; string:= false;
jl. c0. ; goto outnext;
e1: <:***textcompr call<10><0>:>
e2: <:***textcompr connect error<10><0>:>
e3: <:***textcompr param<10><0>:>
a1: am e1-e2
a2: am e2-e3
a3: al. w0 e3.
jl. w3 h31.-2
al w2 1
jl. h7.
;booleans, true=1, false=0
f0: 0 ; comment
f1: 0 ; string
f2: 0 ; message
f3: 0 ; oldchar
h.
c0=c0-j0, c1=c1-j0
g0:
;0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
c1,c1,c1,c1,c1,c1,c1,c1,c1,c1,c4,c4,c4,c1,c1,c1; 0-15
c1,c1,c1,c1,c1,c1,c1,c1,c1,c5,c1,c1,c1,c1,c1,c1;16-31
c3,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2;32-47
c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c9,c6,c8,c2,c2,c2;48-63
c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c7,c2,c2;64-79
c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2;80-95
c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c7,c2,c2;96-111
c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c2,c1;112-127
w.
b1: 0, r.256 ; buffer for program zone
e.
e.
e. ; end of slangcompr
\f
; rc monold ...10...
; generate filedescriptors for rest of monitor text tape
lookup monold
if ok.no
(message monitor load etc impossible
end)
checkmtfile
if ok.no
(message monitor file descriptors left unchanged
end)
f=entry monold monold monold monold
nextfile f
monchange = move f
nextfile f
moptions = move f
nextfile f
; old monchange not loaded
nextfile f
mondef = entry f f f f
nextfile f
moncentral = entry f f f f
nextfile f
monprocs = entry f f f f
nextfile f
mondisc = entry f f f f
nextfile f
monfpaline = entry f f f f
nextfile f
monhost = entry f f f f
nextfile f
monfpasub = entry f f f f
nextfile f
montabinit = entry f f f f
nextfile f
monprocfnc1 = entry f f f f
nextfile f
monprocfnc2 = entry f f f f
nextfile f
mons1 = entry f f f f
nextfile f
mons2 = entry f f f f
nextfile f
moncatinit = entry f f f f
nextfile f
tautoboot = entry f f f f
nextfile f
tinitboot = entry f f f f
nextfile f
tmuscopy = entry f f f f
nextfile f
automove = entry f f f f
nextfile f
link8000 = entry f f f f
nextfile f
startarea=entry f f f f
nextfile f
startinput=entry f f f f
nextfile f
tstartdate=entry f f f f
nextfile f
idaboot=entry f f f f
head cpu
; end of monold
▶EOF◀