|
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◀