|
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: »retalgp93tx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code └─⟦75ff9bef3⟧ └─⟦this⟧ »retalgp93tx «
mode list.yes algpass94tx=edit algpass93tx ; pass 9 message skal ikke sætte sorry true, kun alarmer skal ; kind messsage udelades hvis den ny procedures specs er bredere end den gamles ; abs own segment og abs own point : som i release 14.0 skal rel. segment ; tages med fortegn i 11 bits : 1<23 + relsegm. < 12 ; hvorved lokale referencer fra segmenter udover 2047 er mulige, mens ; lange referencer ud over 2047 skal opdages af pass 8 ; l./page 1/, r/85.10.03/88.12.15/ l./a203/, r/b33/b99/, r/c50/c99/, r/g62/g99/ l./page 2/, r/83.05.17/88.12.16/ l./g51./, r/g51./g71./, i/ am +2000 ; /, p1 l./g52./, r/g52./g72./, i/ am +2000 ; /, p1 l./g50./, r/g50./g70./, i/ am +2000 ; /, p1 l./page 5/, r/83.05.17/88.12.16/ l./jl. w1 c7./, r/c7. /c77./ l./page 17/, r/85.12.19/88.12.15/ l./a21:/, d./a23:/, i# a21: rl w0 x3 ; test kind and spec: sh w0 0 ; if name (entry) <= 0 then jl. a23. ; goto prepare next external item; rl w0 x3+8 ; ls w0 -18 ; w0 := external.type; rl w1 x2+h4 ; ls w1 -18 ; w1 := entry.type; sn w0 1 ; if external.type = no type procedure and sl w1 8 ; entry .type = procedure then jl. a132. ; goto test_type else jl. a151. ; goto test _param; a132: se w0 x1 ; if entry.type <> external.type then jl. a22. ; goto kind message; a151: al w0 -2 ; test_param; hs. w0 b34. ; offset1 := hs. w0 b36. ; offset2 := -2; al w0 -12 ; hs. w0 b35. ; shifts1 := hs. w0 b37. ; shifts2 := -12; b34=k+1 ; offset1 ; a134: am -2 ; nextparam: rl w0 x3+10 ; w0 := b35=k+1 ; shifts1 ; ls w0 -12 ; external.next param; la. w0 b14. ; b36=k+1 ; offset2 ; am -2 ; rl w1 x2+h4+2 ; w1 := b37=k+1 ; shifts2 ; ls w1 -12 ; entry.next param; la. w1 b14. ; sh w1 38 ; if entry .nextparam = general or undefined sn w0 x1 ; or external.nextparam = entry.nextparam then jl. a150. ; goto test param further else jl. a22. ; goto kind message; a150: ; test param further: sn w0 x1 ; if external.nextparam <> entry.nextparam and jl. a152. ; sl w0 39 ; external.nextparam = general or undefined then jl. a22. ; goto kind message; a152: sn w1 0 ; if entry .nextparam = 0 then jl. a23. ; goto prepare next external item; \f ; fgs.jz 1988.12.16 algol/fortran, pass 9, page 17a el. w1 b35. ; shifts := al w1 x1+6 ; shifts1 + 6; sh w1 0 ; if shifts > 0 then jl. a148. ; begin el. w0 b34. ; sn w0 0 ; if offset1 = 0 then jl. a23. ; goto prepare next external item; al w0 0 ; hs. w0 b34. ; offset1 := hs. w0 b36. ; offset2 := 0; al w1 -18 ; shifts := -18; a148: hs. w1 b35. ; shifts1 := hs. w1 b37. ; shifts2 := shifts; jl. a134. ; goto next param; ; end shifts > 0; \f ; fgs.jz 1988.12.16 algol/fortran, pass 9, page 17b a22: dl w1 x3+10 ; kind message: sn w0 -1 ; if kind and spec = -1 (rs-extend) jl. a23. ; then goto prepare next external rs. w1 b4. ; save kind word 2 (external); jl. w1 c8. ; jl. a67. ; message (<:kind:>); <:kind<0>:> ; w0 = kind word 1 (external); a67: jl. w1 c54. ; writeinteger or half.half (w0); rl. w0 b4.+2 ; w0 := kind word 2 (external); jl. w1 c54. ; writeinteger or half.half (w0); a23: rl. w3 g22. ; prepare next external item: #, p-12 l./page 24/, r/86.02.18/88.12.29/ l./a84:/, d8, i/ a84: el w0 0 ; abs own segment: so w0 1<10 ; abs word := (if signbit pos then la. w0 b13. ; abs word extract 11 else abs word) + wa. w0 g8. ; outsegment * ls w0 1 ; 2 + wa. w0 b11. ; 3<22 ; jl. a35. ; goto store absword; / l./page 26/, r/86.02.18/88.12.29/ l./a38:/, d5, i/ a38: so w3 1<10 ; own point: la. w3 b13. ; bits (0, 11, point) := wa. w3 g8. ; (if sign bit pos then w3 extract 11 else w3) + hs w3 0 ; outbase; / l./page 28/, r/83.05.17/88.12.16/ l./g50:/, l1, i/ g70=g50-2000 /, p-1 l./g51:/, l1, i/ g71=g51-2000 /, p-1 l./g52:/, l1, i/ g72=g52-2000 /, p-1 l./page 30/, r/83.12.28/88.12.16/ l./b17:/, i/ b14: 63 ; 2.111111 (mask to extract 6) /, p-1 l./page 31/, r/86.01.18/88.12.16/ l./; stepping stone/, i/ ; stepping stones to pass 9 procedures c77: jl. c7. ; stepping stone to c7, alarm /, p-1 l./page 33/, r/86.02.18/88.12.16/ l./rs. w3 (a147.)/, l-1, d1 l./a27:/, d, i/ a27: al w3 1 ; print result: rs. w3 (a147.) ; sorry := true; rl. w0 b10. ; /, p-1 l./page 36/, r/85.09.26/88.12.19/ l./c5:/, d4, i# ; procedure write char c52: am 14 ; char := point; <*iso 46*> c51: al w0 32 ; char := space; <*iso 32*> c50: jl. e12. ; writechar (char); ;procedure write signed integer ; c53: ds. w0 g10.+2 ; save integer and link; jl. c55. ; goto out space; ;write integer or half.half. ; c54: ds. w0 g10.+2 ; save integer and link; bz w3 1 ; w3:=right byte; sn w0 x3 ; if integer = right byte jl. c55. ; then goto writechar (space); rs. w3 g10.+2 ; next integer := right byte; bz w0 0 ; jl. w3 e14. ; writeinteger(left half); 1<23+32<12+1 ; am -2 ; modify next to writechar (point); c55: jl. w3 c51. ; writechar (space); rl. w0 g10.+2 ; jl. w3 e14. ; writeinteger (right half); 1<23+ 0<12+1 ; dl. w0 g10.+2 ; jl x1 ; return; c5: ds. w0 g10.+2 ; writespace: jl. w3 c51. ; dl. w0 g10.+2 ; jl x1 ; return; \f ; fgs.jz 1988.12.16 algol/fortran, pass 9, page 36a # l./m.jz/, r/87.06.04/88.12.29/ f end ▶EOF◀