DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦44c28eeea⟧ TextFile

    Length: 2304 (0x900)
    Types: TextFile
    Names: »ttimertest«

Derivation

└─⟦2c55ea56f⟧ Bits:30001844 SW-save af projekt 1000, Alarm-system
    └─⟦6b41451d2⟧ 
        └─⟦this⟧ »ttimertest« 

TextFile

job jaba 9 600 time 5 0 perm mini 30 2 size 92000
mode list.yes
(
btimertest = set 1 mini
scope project btimertest
btimertest =pascal80  ioenvir 
finis)
(***********************
* lambda run time test *
*    test8  mini       *
*    81.06.19          *
***********************)

process timertest( var sv : system_vector );

(* sort an array of integers *)

const
length = 2000;
timerstart = 16000; (* countdown from... *)

var
number_of_turns, turn,
step, step1, hp, hp1, limit : integer;
list : array ( 1 .. length ) of integer;
z_in, z_out : zone;
pool_in, pool_out : pool 1 of opbuffer;
timerpool : pool 1;
timermsg: reference;
timeransw : semaphore;

mainsem : semaphore;

begin
openopzone( z_in, sv(operatorsem), ref( mainsem), 1, pool_in, 1, 0, 0, 0);
openopzone( z_out, sv(operatorsem), ref( z_out.free), 1, pool_out, 2, 0, 0, 0);

outtext (z_out, 'test accurac');
outtext (z_out, 'y...#');
outchar (z_out, nl);

repeat
opin(z_in);
outtext (z_out, 'u3, u4 =?#');
outend (z_out);
opwait( z_in, pool_in );
ininteger( z_in, number_of_turns );
ininteger (z_in, limit);
alloc(timermsg,timerpool,timeransw);
with timermsg^ do
begin
u3 := number_of_turns;
u4 := limit;
end;
sendtimer(timermsg);

outend (z_out);
outtext( z_out, 'start#'); outchar( z_out, nl);
outend( z_out );

own.timer := timerstart;
definetimer (true);


if false then
for turn := 1 to number_of_turns do
begin

(* initialize: worst case *)
for step := 1 to limit do
list ( step ) := step;

for step := 1 to limit - 1 do
begin
hp := step; 
hp1 := list ( step );
for step1 := step + 1 to limit do
if list ( step1 ) > hp1 then
begin
hp := step1;
hp1 := list ( step1 );
end;

list ( hp ) := list ( step );
list ( step ) := hp1;
end; (* for step .... *)

end; (* for turn ... *)
wait(timermsg,timeransw);
release(timermsg);

outtext (z_out, 'seconds = #');
outinteger (z_out, timerstart - own.timer, 1);
outchar (z_out, nl);
outtext( z_out, 'stop #'); outend(z_out); 
outinteger( z_out, number_of_turns, 1); outchar(z_out, nl);
outend(z_out);

until number_of_turns <= 0;

end. 

▶EOF◀