|
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: 6912 (0x1b00) Types: TextFile Names: »retopio3tx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code └─⟦75ff9bef3⟧ └─⟦this⟧ »retopio3tx «
mode list.yes openio4tx=edit openio3tx ; termzone i open har skiftet kaldmåde (proc isf. rutine) l./b. c7,/, d./g0 =/, i$ g0 = 3 ; no of externals \f ; fgs 1988.08.07 algol 8, openinout, closeinout, resetzones page ... 2... b. c7, j94, p1, o4 ; block for first segment w. k=10000 ; k assignment to catch missing relative h. c1 : c2 , c3 ; rel last point, rel last absword j2: 1<11o.2, 0 ; own segment, segment 2 j4 : g0 + 4, 0 ; - 4, take expression j8 : g0 + 8, 0 ; - 8, end addr expression j13: g0 + 13, 0 ; - 13, last used j18: g0 + 18, 0 ; - 18, zone index alarm j30: g0 + 30, 0 ; - 30, saved sref, w3 j94: g0 + 94, 0 ; - 94, take value integer c3 = k-2-c1 ; rel last absword c2 = k-2-c1 ; rel last point w. $, p2 l./c0 = k - c1/, i$ \f ; fgs 1986.10.10 algol 8, openinout, closeinout, resetzones page ... 3... b. a11, b18, d5, e5 ; block for local names in expellinout w. b0 : h5 ; constant, zone descriptor length b17 = 32 ; slang constant, inout bit in zone state i9 = i4 ; entry expellinout, segment part: i7 = k - c1 ; entry expellinout: rl. w2 (j13.) ; get last used; ds. w3 (j30.) ; save sref, w3; dl w1 x2+12 ; w0w1 := formal (index); so w0 16 ; if expression then jl. w3 (j4.) ; goto take expression; ds. w3 (j30.) ; save sref, w3; al w0 3 ; la w0 x2+11 ; w0 := type (index); jl. w3 (j94.) ; take value integer; rs w1 x2+12 ; formal (2) := value (index); wm. w1 b0. ; index.formal (1) := wa w1 x2+8 ; base address zones + rs w1 x2+10 ; index * zone descr length; el w0 x2+6 ; rl w1 x2+12 ; sh w1 (0) ; if index > no of zones sh w1 0 ; or index <= 0 then jl. w3 (j18.) ; goto zone index alarm; rl w3 x2+10 ; zone := index.formal (1); rl w1 x3+h2+6 ; state := zone.state; se w1 b17+0 ; if state <> after openinout and sn w1 b17+8 ; state <> after openinout on mt then jl. a11. ; goto zone state alarm; jl. d1. ; a11: se w3 (x3+h2+2) ; if zone <> inputzone then rs w3 x3+h2+4 ; zone.partial word := zone; jl. w3 (j8.) ; goto end address expression; \f ; fgs 1984.02.22 algol 8, openinout, closeinout, resetzones page ... 4... d4: rx w1 0 ; zone number alarm: am f3 ; d2: am f2 ; zone share alarm: d1: am f1 ; zone state alarm : d0: al w0 f0 ; share state alarm: hs. w0 d3. ; set relative entry on next segment; rl. w3 (j2.) ; w3 := segtable (segment 2); d3 = k + 1 ; jl x3+0 ; goto next sement + rel; i. e. ; end block expellinout \f ; fgs 1984.02.22 algol 8, openinout, closeinout, resetzones page ... 5... $, p2 l./page ... 2/, r/... 2/... 6/ l./page ... 3/, r/... 3/... 7/ l./page ... 5/, r/... 5/... 8/ l./page ... 5/, r/... 5/... 9/ l./page ... 6/, r/... 6/...10/, r/83.11.18/88.11.08/ l./am. (b2.)/, d3, i/ am. (b3.) ; buflength := rl w3 +h0+8 ; ((last zone.last share + al w0 x3+h6-1 ; share descr length - 1 - am. (b2.) ; ws w0 +h0 ; first zone.base buffer - /, l1, p-4 l./page ... 7/, r/... 7/...11/, r/84.10.02/88.11.18/ l./dl. w2 b13./, d7, i/ rl. w1 b12. ; first share; am. (b3.) ; zone.base buffer := base area; rl w2 +h0+2 ; zone.last buffer := last zone.last buffer; ds w2 x3+h0+2 ; rs w1 x3+h3 ; zone.last share := last share; ws w2 2 ; zone.record base := base area; rs w2 x3+h3+4 ; zone.record length := last area - base area; wa. w1 b7. ; zone.last halfword := base area + buflength; rs w1 x3+h3+2 ; / l./page ... 8/, r/... 8/...12/ l./page ... 9/, r/... 9/...13/ l./page ...10/, r/...10/...14/ l./page ...12/, r/...12/...16/ l./b. c7/, r/p1/p2/ l./j1 :/, d l./i5 = i5 + k/, r/j1/c1/ l./j18:/, d l./j94:/, d l./p1 :/, i/ p2 : 2, 0 ; point 2. external (termzone) /, p-1 l./page ...13/, r/...13/...17/ l./page ...13/, r/...13/...18/ l./page ...14/, r/...14/...19/ l./c7 = /, l-1, d./jl w3 x3+0/, i/ al w1 -4 ; jl. w3 (j3.) ; reserve 4 halfs; dl w0 x2+8 ; move 1. formal ds w0 x1+2 ; to new stacktop; al w0 x2 ; w0 := sref < ls w0 4 ; 4; rl. w1 p2. ; w1 := point (termzone); jl. w3 (j4.) ; take expression; ds. w3 (j30.) ; save sref, w3; rs. w2 (j13.) ; unstack reserved memory; /, p1 l./a7:/, d, i/ ; end <*stop all zones*>; \f ; fgs 1988.11.08 algol 8, openinout, closeinout, resetzones page ...20... a7: rl. w3 b2. ; /, p-2 l./al w0 0/, d2, i/ al w0 h53 ; char conv table claim := so w1 1 ; if first zone.rel entry block proc even then al w0 0 ; 0 <*init by algol rts version 1*> rs. w0 b6. ; else al w0 0 ; h53; <*init by algol rts version 2*> /, p-5 l./wa w1 x3+h0+0/, r/first/ first/ l./al w1 x1+1/, d l./wa. w1 b2./, d1, i# am. (b3.) ; + last zone.last of buffer wa w1 +h0+2 ; wa w1 x3+h0+8 ; + first zone.last share ws w1 x3+h0+6 ; - first zone.first share al w1 x1+h6 ; + share descr length )) // al w0 0 ; #, l1, p-3 l./page ...16/, r/...16/...21/ l./page ...17/, r/...17/...22/ l./page ...18/, r/...18/...23/ l./page ...19/, d./a11:/, d./jl. w3 (j8.)/ l./page ...20/, r/...20/...24/ l./page ...19/, r/...19/...25/ l./page ...22/, r/...22/...26/ l./g1:/, l./1<11+i3/, r/i3/i9/ l./m.rc 1986/, r/1986.10.10/1988.11.18/ f end ▶EOF◀