|
|
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: 3072 (0xc00)
Types: TextFile
Names: »retread4tx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
└─⟦75ff9bef3⟧
└─⟦this⟧ »retread4tx «
mode list.yes
read4tx=edit read3tx
; ret read release 3.0 til release 4.0 :
; readchar låner et ord over staktop til værdien -1,
; som den ikke behøver alligevel
;
; read fra boolean array ligesom fra andre typer arrays
;
l./page ...9/, r/87.07.17/88.05.31/
l./b. a0/, d1,
l./e12:/, d./jl. e20./, i#
b. a1, b1
w.
b1: <:<10>oddfield :> ;
a1: al. w0 b1. ; oddfield alarm:
al w1 1 ; param := 1;
jl. w3 (j6.) ; general alarm (<:oddfield:>, param);
e12: ; init pseudo zone:
rs w3 x2+i3 ; save(return);
sh w0 22 ; if kind > 22 <* complex array *>
sh w0 16 ; or kind < 17 <* boolean array *>
jl. w3 (j18.) ; then param alarm;
; se w0 17 ; if kind <> boolean array then
; am 1 ; lower lim := 2
; al w0 1 ; else
; hs. w0 b0. ; lower lim := 1;
sl w1 (x2+i15) ; if baseword addr < max
jl. a0. ; and
sl w1 x2+6 ; baseword addr >= first formal then
rs w1 x2+i15 ; max := basewordaddress;
a0: rl w3 x1 ; w3 := baseword;
so w3 1 ; if baseword even then
jl. a1. ; goto oddfield alarm;
ba w1 x2+6 ; (w0, w1) :=
dl w1 x1 ; arrayparam.(upper index, lower index);
b0=k+1 ; lower lim:
sl w1 2 ; if lower index >= lower lim then
jl. e20. ; index alarm;
#
l./page ...11/, r/82.11.23/88.05.31/
l./b. b0 w./, d./b0:/, d, i#
b. b1 w. ;
b0: <:<10>index <0>:>;
b1=k-1 ; shift (type) table:
h.
0, 1, 2, 2, 3, 3 ;
w.
e20: al w3 2.111 ; index alarm1:
la w3 x2+6 ; type := param1.formal0 extract 3;
zl. w0 x3+b1. ; 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 b0. ; w0 := text address;
jl. w3 (j6.) ; general alarm(<:index:>);
e. ;
#
l./page ...13/, r/82.12.15/87.11.27/
l./rs w0 x2+i31/, r/:=/:= -1;/
l1, d
l./page ...15/, r/82.12.02/87.11.27/
l./a1:/, i/
rs w0 x2+i33 ; oldtype := -1;
/, l1, p-2
l./page ...34/, r/87.08.21/88.06.01/
l./bz w0 x2+7/, i/
al w0 x2+6 ; max :=
ba w0 x2+4 ; addr first formal0 +
rs w0 x2+i15 ; appetite;
/, p1
l./al w0 x2+6/, d2
l./m.rc 87/, r/87.09.10/88.06.01/
f
▶EOF◀