|
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: 3840 (0xf00) Types: TextFile Names: »tsystest1 «
└─⟦9ccaf6601⟧ Bits:30008165 Bånd med SW8000 kildetekst/release værktøjer └─⟦f546e193b⟧ └─⟦this⟧ »tsystest1 «
message diverse datatest procedurer (tsystest1); <* opbygning af filen systestdata segm.0 : opfattes som integers numereret fra 0 til 255, integr nr "no" indeholder segmentnr for starten på data tilhørende test nr "no" *> zone d_zone (128, 1, xstderror); procedure d_init (no); integer no; begin <* åbner d_zone og positionerer på relevente segment for det givne no zd (11) peger på segmentet *> own integer seg; <* hvis nul og datawrite startes forfra i filen *> integer array ia, zd (1 : 20); integer field inf; inf := no * 2 + 2; close (d_zone, false); <* for hvis nu den sidste fejlede *> open (d_zone, 4, <:systestdata:>, 0); inrec6 (d_zone, 512); <* hent katalog *> getzone6 (d_zone, zd); if datawrite then begin <* opdater katalog *> if seg = 0 then begin xnulstil (d_zone); seg := 1; end else seg := zd (11); monitor (42, d_zone, 0, ia); <* lookup *> ia (1) := seg + 1; ia (6) := systime (7, 0, 0.0); monitor (44, d_zone,0, ia); <* changeentry *> setposition (d_zone, 0, 0); outrec6 (d_zone, 512); d_zone.inf := seg; <* først ledige segm *> setposition (d_zone, 0, 0); inrec6 (d_zone, 512); end datawrite; zd (11) := d_zone.inf; <* først ledige segm for data *> setzone6 (d_zone, zd); setposition (d_zone, 0, d_zone.inf); <* positioner på relevante segm *> if test then write (out, "nl", 1, <<d>, <:testno.:>, testno, <: d-init (:>, no, <:), startseg=:>, zd (11)); end procedure d_init; procedure d_exit; begin <* lukker d_zone hvis datawrite opdateres zd (11) til næste ledige segment *> integer seg; integer array ia, zd (1 : 20); getposition (d_zone, 0, seg); close (d_zone, true); getzone6 (d_zone, zd); if test then write (out, "nl", 1, <<d>, <:testno.:>, testno, <: d-exit, startseg=:>, zd (11), <: slutseg=:>, seg); if datawrite then begin <* optag data *> monitor (42, d_zone, 0, ia); <* lookup *> zd (11) := ia (1) := seg + 1; ia (6) := systime (7, 0, 0.0); monitor (44, d_zone, 0, ia); <* changeentry *> setzone6 (d_zone, zd); <* opdater zd med første ledige seg *> end datawrite; end procedure d_exit; integer procedure d_iread; begin <* læs næste integer fra d_zone *> integer field d_i; inrec6 (d_zone, 2); d_i := 2; d_iread := d_zone.d_i; end procedure d_iread; long procedure d_lread; begin <* læs næste long fra d_zone *> long field d_l; inrec6 (d_zone, 4); d_l := 4; d_lread := d_zone.d_l; end procedure d_lread; real procedure d_rread; begin <* læs næste real fra d_zone *> real field d_r; inrec6 (d_zone, 4); d_r := 4; d_rread := d_zone.d_r; end procedure d_rread; procedure d_iwrite (i); integer i; begin <* skriv næste integer i d_zone *> integer field d_i; d_i := 2; outrec6 (d_zone, 2); d_zone.d_i := i; end procedure d_iwrite; procedure d_lwrite (l); long l; begin <* skriv næste long i d_zone *> long field d_l; d_l := 4; outrec6 (d_zone, 4); d_zone.d_l := l; end procedure d_lwrite; procedure d_rwrite (r); real r; begin <* skriv næste real i d_zone *> real field d_r; d_r := 4; outrec6 (d_zone, 4); d_zone.d_r := r; end procedure d_rwrite; ▶EOF◀