|
|
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: »tsystest2 «
└─⟦9ccaf6601⟧ Bits:30008165 Bånd med SW8000 kildetekst/release værktøjer
└─⟦f546e193b⟧
└─⟦this⟧ »tsystest2 «
message div random procedurer (tsystest2);
zone zrandom (128 * 3, 3, xstderror);
real field randompil;
procedure initrandom (name);
string name;
begin
open (zrandom, 4, name, 1 shift 9);
if test then write (out, "nl", 1, <:random: open:>);
resetrandom;
end procedure initrandom;
procedure exitrandom;
begin
integer s;
getposition (zrandom, 0, s);
if test then write (out, "nl", 1, <:random: close no.:>, <<d>,
randompil, <: seg.:>, s);
close (zrandom, true);
end procedure exitrendom;
procedure resetrandom;
begin <* forfra *>
integer s;
getposition (zrandom, 0, s);
if test then write (out, "nl", 1, <:random: reset no.:>, <<d>,
randompil, <: seg.:>, s);
randompil := 0;
setposition (zrandom, 0, 0);
end resetrandom;
procedure nextrandom;
begin <* næste tal *>
if randompil >= 128000 then
begin <* forfra *>
if test
then write (out, "nl", 1, <:random: turnaround no.:>, <<d>, randompil);
resetrandom;
end;
if randompil mod 128 = 0 then
begin
if test
then write (out, "nl", 1, <:random: newseg no.:>, <<d>, randompil);
inrec6 (zrandom, 512);
end;
randompil := randompil + 1;
end procedure nextrandom;
integer procedure i_random (min, max);
value min, max;
integer min, max;
begin <* returnerer integer: min <= tal <= max *>
integer i;
nextrandom;
i := i_random := zrandom (randompil mod 128 + 1) * (extend max - extend min) + min;
comment
if test then write (out, "nl", 1, <:random, nr.:>, <<ddddd>, randompil,
<: integer::>, <<-dddddddd>, i, <: min::>, min, <: max::>, max);
end procedure i_random;
long procedure l_random (min, max);
value min, max;
long min, max;
begin <* returnerer long: min <= tal <= max *>
long l;
nextrandom;
l := l_random := zrandom (randompil mod 128 + 1) * (max - min) + min;
comment
if test then write (out, "nl", 1, <:random, nr.:>, <<ddddd>, randompil,
<: long::>, <<-dddddddddddd>, l, <: min::>, min, <: max::>, max);
end procedure l_random;
real procedure r_random (min, max);
value min, max;
real min, max;
begin <* returnerer real: min <= tal <= max *>
real r;
nextrandom;
r := r_random := zrandom (randompil mod 128 + 1) * (max - min) + min;
comment
if test then write (out, "nl", 1, <:random, nr.:>, <<ddddd>, randompil,
<: real::>, <<-d.ddddddddd'-ddd>, r, <: min::>, min, <: max::>, max);
end procedure r_random;
▶EOF◀