|
|
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: 13056 (0x3300)
Types: TextFile
Names: »retwrite3tx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
└─⟦75ff9bef3⟧
└─⟦this⟧ »retwrite3tx «
mode list.yes
write4tx=edit write3tx
; ret read release 3.0 til release 4.0 :
;
; write i boolean array ligesom i andre typer arrays
;
; zero record length before exit from outchar, -integer, and -text
;
l./page ...0/, r/87.07.08/88.05.29/
l./; start write/, r/seg.0/seg.1/
l1, g4/seg.1/seg.2/
l1, g7/seg.2/seg.3/
l1, g1/seg.4/seg.5/
l./page ...1/, r/87.08.09/88.05.30/
l./s. a102/, r/j56/j100/, r/c25,e39/c30,e50/
l./page ...5/, r/82.12.20/88.11.10/
l./e19=/, l./rl w0 x3+h4+2/, i/
al w0 0 ; zone.record length :=
rs w0 x3+h3+4 ; 0;
; <*done here to avoid the instructions on outchar segm*>
/, p-3
l./page ...6/, d./b0:/ ,i#
\f
; jz.fgs 1988.05.27 segment 0 page ...6...
k = 0 , g1 = p0 ; no of externals = no of globals
h. ;
g31: g32 , g33 ; rel of last point , rel of last absword
j42: g1 + 21 , 0 ; rs entry 21 : general alarm
j44: g1 + 13 , 0 ; rs entry 13 : last used
j45: g1 + 30 , 0 ; rs entry 30 : (saved sref, saved w3)
j46: g1 + 6 , 0 ; rs entry 6 : end register expression
j47: g1 + 4 , 0 ; rs entry 4 : take expression
j55: g1 + 29 , 0 ; rs entry 29 : param alarm
j34: g1 + 17 , 0 ; rs entry 17 : index alarm
j48: 0 , 0 ; own core : own base
j52: 0 , e29 ; own core : outtable base
j53: 0 , e31 ; own core : outtable(lower index)
g33 = k - 2 - g31 ; rel of last abs word
g32 = k - 2 - g31 ; rel of last point
w. ;
e38: s3, s4 ; end external list
#
l./page ...9/, r/82.12.15/88.05.27/, r/segment 0/segment 1/, i#
\f
; fgs 1988.05.27 segment 0 page ...8c...
g10: c. g10 - 506,
m. seg. 0 code too long
z.
m. segment 0
c. 502-g10, 0, r.252-g10>1 z. ; fill segment
<:write:>,0,0
\f
; jz.fgs 1988.05.27 segment 1 page ...8d...
k = 0 ;
h. ;
g28: g29 , g30 ; rel of last point , rel of last absword
j41: 1<11 + 1 , 0 ; segment 2 address
j62: g1 + 21 , 0 ; rs entry 21 : general alarm
j1: g1 + 3 , 0 ; rs entry 3 : reserve
j64: g1 + 13 , 0 ; rs entry 13 : last used
j65: g1 + 30 , 0 ; rs entry 30 : (saved sref, saved w3)
j75: g1 + 29 , 0 ; rs entry 29 : param alarm
j54: g1 + 16 , 0 ; rs entry 16 : segment table base
j56: g1 + 91 , 0 ; rs entry 91 : trapchain
j36: 0 , 3 ; own core : replacechars(1:4)
j37: 0 , 7 ; own core : replacechars(5:8)
j19: 0 , e19 ; own core : define conversion table
g30 = k - 2 - g28 ; rel of last abs word
j18: g1 + 35 , 0 ; rs entry 35 : outblock
j6: 1<11 + 1 , e2 ; segment 2 : end write
g29 = k - 2 - g28 ; rel of last point
w. ;
\f
; fgs 1988.05.30 segment 0 page ...8e...
e24: rl w1 0 ; zone alarm:
al. w0 b0. ; w1 := zone state;
jl. (j62.) ; general alarm(<:z. state:>);
b0: <:<10>z. state:> ;
#
l./b4:/, d./b7:/, i#
b4: <:<10>index :>
b5: <:<10>param :>
b6: <:<10>string :>
b27: <:<10>oddfield :>
b7: 100
<:aram<10><0>:> ; alarm text
<:ite: p:> ; <* store backwards as
<:<10>***wr:> ; in a long string *>
e32 = k - 2 ;
#
l./e23:/, d1, i#
e23: ds. w3 (j65.) ; kind error:
al w3 0 ; save sref, w3;
rs w3 x2+i43 ; state after boolean :=
al w3 -6 ; false;
rl. w0 ( j64.) ; writeblock.(display, last used) :=
#
l./jl. w3 (j42.)/, r/j42/j62/
l./page ...10/, r/82.12.15/88.05.30/, r/segment 0/segment 1/
l./segment 1/, g1/segment 1/segment 2/
l./c20 = b6 - b4/, l1, i/
c26 = b27-b4
/, p-1
l./a60:/, d./jl. w3 (j42.)/, i#
b26=k-1 ; shift (type) table:
h.
0, 1, 2, 2, 3, 3 ;
w.
a60: al w3 2.111 ; index alarm1:
la w3 x2+6 ; type := param1.formal0 extract 3;
zl. w0 x3+b26. ; shifts := case (type) of (0, 1, 2, 2, 3, 3);
al w3 1 ; typelength :=
ls w3 (0) ; 1 < shifts;
wa w1 6 ; index := lower index + type length;
ac w0 (0) ; shifts := - shifts;
ls w1 (0) ; index := index > shifts;
al. w0 b4. ; w0 := text address;
jl. w3 (j62.) ; general alarm(<:index:>);
a70: al. w0 b27. ; oddfield alarm:
al w1 1 ;
jl. w3 (j62.) ; general alarm (<:oddfield:>, 1);
#
l./page ...11/, r/87.07.08/88.05.30/, r/segment 0/segment 1/
l./rl. w2 (j44.)/, r/j44/j64/
l1, r/j45/j65/
l3, r/(j45.) / (j65.)/
l2, r/j44/j64/
l./sn w0 23/, d./jl. a60./, i#
sn w0 23 ; if kind <> 23 <* zone *> then
jl. a2. ; begin
sh w0 22 ; if kind > 22 <* complex array *>
sh w0 16 ; or kind < 17 <* boolean array *> then
jl. w3 (j75.) ; param alarm;
se w0 17 ; if kind <> boolean array then
am 1 ; lower lim := 2
al w0 1 ; else
hs. w0 b32. ; lower lim := 1;
sl w1 (x2+i18) ; if base word addr < last literal addr
jl. a26. ; and
sl w1 x2+6 ; base word addr >= first formal then
rs w1 x2+i18 ; last literal addr := base word addr;
a26:rl w3 x1 ; w3 := base word;
so w3 1 ; if base addr even then
jl. a70. ; goto oddfield alarm;
ba w1 x2+6 ; (w0, w1) :=
dl w1 x1 ; array param.(upper index, lower index);
b32=k+1 ; lower lim:
sl w1 2 ; if lower index >= lower lim then
jl. a60. ; goto index alarm1;
#
l./page ...12/, r/82.12.20/88.05.27/, r/segment 0/segment 1/
l./rl. w3 j45./, r/j45/j65/
l2, r/segment 1/segment 2/
l1, r/segment1/segment2/
l./page ...13/, r/82.12.15/88.05.27/, r/segment 0/segment 1/
l./seg. 0/, r/0/1/
l./segment 0/, r/0/1/
l./page ...14/, r/82.12.20/88.05.30/, r/segment 1/segment 2/
l./j8:/, r/seg. 2/seg. 3/
l1, r/seg. 3/seg. 4/
l1, r/seg. 0/seg. 1/
l./j43:/, r/1<11+0/ -1/, r/alarm/seg. 1 alarm/
l./page ...15/, r/87.09.09/87.11.27/, r/segment 1/segment 2/
l./sh w3 23/, d6, i#
sh w3 23 ; if kind > 23 <* zone *>
sh w3 16 ; or kind < 17 <* boolean array *>
jl. a6. ; goto not legal array else
jl. c6. ; goto legal array;
a6: ; not legal array:
so w3 8 ; if kind = array or kind = procedure then
jl. e4. ; goto kind error;
#
l./page ...16/, r/82.11.30/88.05.30/, r/segment 1/segment 2/
l./on segment 2/, r/segment 2/segment 3/
l./<:aram<10>/, d./e32 =/
l./segmnet0/, r/segmnet0/segment 1/
l./page ...17/, r/82.11.23/88.05.27/, r/segment 1/segment 2/
l./page ...18/, r/82.11.23/88.05.27/, r/segment 1/segment 2/
l./page ...19/, r/82.12.20/88.05.27/, r/segment 1/segment 2/
l./page ...20/, r/87.09.09/88.05.27/, r/segment 1/segment 2/
l./page ...21/, r/87.09.09/88.05.30/, r/segment 1/segment 2/
l./c6:/, d./jl. e4./, i#
c6: ; legal array:
se w3 17 ; if kind <> boolean array then
am 1 ; lower lim := 2
al w3 1 ; else
hs. w3 b31. ; lower lim := 1;
sl w1 (x2+i17) ; if baseword addr >= last formal address
sl w1 (x2+i18) ; and
jl. a21. ; baseword addr < last litteral address then
rs w1 x2+i18 ; last litteral address := baseword addr;
a21:rl w3 x1 ;
so w3 1 ; if base addr even then
jl. e48. ; goto oddfield error;
ba w1 0 ; (w0, w1) :=
dl w1 x1 ; (upper index, lower index);
b31=k+1 ; lower lim:
sl w1 2 ; if lower index >= lower lim
jl. e8. ; goto index error;
#
l./page ...22/, r/87.09.09/88.05.30/, r/segment 1/segment 2/
l./on segment 3/, r/segment 3/segment 4/
l./e4:/, d./jl x3+e23/ ,i#
e48:am c26-c19 ; oddf. error: textrel := seg1rel (<:oddfield:>) else
e4 :am c19-c18 ; kind error: textrel := seg1rel (<:param:> ) else
e8 :am c18-c20 ; index error: textrel := seg1rel (<:index:> ) else
e16:al w1 c20 ; string error: textrel := seg1rel (<:string:> ) ;
rl. w3 (j10.) ; goto
jl x3+e23 ; kind error on segment 1;
#
l./page ...23/, r/82.11.23/88.05.27/, r/segment 1/segment 2/
l./seg. 1/, r/seg. 1/seg. 2/
l./segment 1/, r/segment 1/segment 2/
l./page ...24/, r/82.12.20/88.05.27/, g/segment 2/segment 3/
l./j11:/, r/segment 1/segment 2/
l1, r/segment 3/segment 4/
l./page ...25/, r/82.12.20/88.05.27/, r/segment 2/segment 3/
l./page ...26/, r/82.12.20/88.05.27/, r/segment 2/segment 3/
l./page ...27/, r/82.11.23/88.05.27/, r/segment 2/segment 3/
l./page ...28/, r/82.11.23/88.05.27/, r/segment 2/segment 3/
l./page ...29/, r/82.11.23/88.05.27/, r/segment 2/segment 3/
l./page ...30/, r/82.11.23/88.05.27/, r/segment 2/segment 3/
l./page ...31/, r/82.11.23/88.05.27/, r/segment 2/segment 3/
l./page ...32/, r/82.12.20/88.05.27/, r/segment 2/segment 3/
l./page ...33/, r/82.12.20/88.05.27/, r/segment 2/segment 3/
l./page ...34/, r/82.12.20/88.05.27/, r/segment 2/segment 3/
l./segment 1/, r/segment 1/segment 2/
l./page ...35/, r/82.11.23/88.05.27/, r/segment 2/segment 3/
l./segment 2/, r/segment 2/seg. 3/
l./segment 2/, r/segment 2/segment 3/
l./page ...36/, r/82.12.20/88.05.27/, r/segment 3/segment 4/
l./seg. 2/, r/seg. 2/seg. 3/
l./page ...37/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./page ...38/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./page ...39/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./page ...40/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./page ...41/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./segment 2/, r/segment 2/segment 3/
l./page ...42/, r/82.12.20/88.05.27/, r/segment 3/segment 4/
l./page ...43/, r/82.12.20/88.05.27/, r/segment 3/segment 4/
l./page ...44/, r/82.12.20/88.05.27/, r/segment 3/segment 4/
l./segm 2/, r/segm 2/segm 3/
l./page ...45/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./segment 2/, r/segment 2/segment 3/
l./page ...46/, r/82.11.23/88.05.27/, r/segment 3/segment 4/
l./segment 3/, r/segment 3/seg. 3/
l./segment 3/, r/segment 3/segment 4/
l./m. jz/, r/87.11.05/88.05.31/, r/.fgs//, r/8,/8/
l./page ...47/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...48/, r/82.12.20/88.05.27/, r/segment 4/segment 5/
l./segment 0/, r/segment 0/segment 1/
l./page ...49/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...50/, r/82.12.20/88.05.27/, r/segment 4/segment 5/
l./segment 0/, r/segment 0/segment 1/
l./a1:/, l./al w0 0/, d1
l./jl. w3 (j19.)/, r/table;/table and zero record length;/
l./page ...51/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...52/, r/82.12.20/88.05.27/, r/segment 4/segment 5/
l./page ...53/, r/82.12.10/88.05.27/, r/segment 4/segment 5/
l./page ...54/, r/82.12.10/88.05.27/, r/segment 4/segment 5/
l./page ...55/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...56/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...57/, r/82.12.10/88.05.27/, r/segment 4/segment 5/
l./page ...58/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...59/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...60/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...61/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...62/, r/82.11.23/88.05.27/, r/segment 4/segment 5/
l./page ...63/, r/87.07.08/88.05.27/, r/segment 4/segment 5/
l./segment 4/, r/segment 4/seg. 3/
l./segment 4/, r/segment 4/segment 5/
l./m.jz/, r/82.12.20/88.11.10/, r/8,/8/
l./page ...64/, r/82.11.23/88.05.30/
l./6 segments/, g/6/7/
l./d3/, r/0<12/1<12/
l./5<12 +d12/, g/5/6/
l./; entry point/, r/12 /12/, r/0<12/1<12/
l./5<12 +d12/, g/5/6/
l./4<12+d4/, r/4<12/5<12/
l./5<12 +d12/, g/5/6/
l./4<12+d5/, r/4<12/5<12/
l./5<12 +d12/, g/5/6/
l./4<12+d6/, r/4<12/5<12/
l./5<12 +d12/, g/5/6/
l./...65/, r/87.07.08/88.05.30/
l./5<12 +d12/, g/5/6/
l./5<12 +d12/, g/5/6/, r/; 6/ ; 6/
l./5<12 +d12/, g/5/6/, r/; 6/ ; 6/
l./5<12 +d12/, g/5/6/
l./m.jz 87/, d1, i#
m. jz 88.11.10 algol 8 write writeint outchar outtext
m. outinteger replacechar outindex outtable isotable
#
f
end
▶EOF◀