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

⟦c22c62b89⟧ TextFile

    Length: 16896 (0x4200)
    Types: TextFile
    Names: »tdevtest    «

Derivation

└─⟦9ccaf6601⟧ Bits:30008165 Bånd med SW8000 kildetekst/release værktøjer
    └─⟦f546e193b⟧ 
        └─⟦this⟧ »tdevtest    « 

TextFile

(odevtest=slang
end)
b. s. h200 , a200, b200, e100

d.
p. <:fpnames:>
k = h55
l.

w. s0, s1                       ;
        jl.        a06.         ;

b00:    0                       ;  Used Share
b01:    0,0,0                   ;  Share 1 (State, First, Segno)
b02:    0,0,0                   ;  Share 2 (State, First, Segno)
b03:    0,0,0                   ;  Share 3 (State, First, Segno)
b04:    0                       ;  Current segment

b05:    3<12+0,0,0,0,0          ;
b06:    0,r.8                   ; answer
b08:    0                       ; okbits
b09:    0                       ; online input, 0=false
b10:    0                       ; online output, 0=false

b12:    0                       ; startsegm for io
b13:    0                       ; devno
b14:    0,0,0,0,0               ; entry (area) name;

b15:    0                       ; antal segmenter pr blok
b16:    0                       ; antal halvord   pr blok
b17:    2500                    ; max antal segmenter før forfra
b18:    0                       ; antal segmenter ialt
b19:    3<12+0                  ; input
b20:    5<12+0                  ; output
b21:    10                      ; ti
b22:    0                       ; antal segmenter ialt før stop
b23:    0                       ; max buflgd i segm
b24:    3                       ; tre
b25:    0,0                     ; starttid for aktuelle tidsmåling
b26:    0                       ; antal ms/segm
b27:    0                       ; antal io i denne tidsmåling
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
a01:                            ; ok.no warning.yes
        al  w2     3            ; ok.no, warning.yes
        rs. w2     b08.         ;

a05:    rl. w1     b27.         ; get antal io
        sl  w1     1            ; if antal > 0
        jl. w3     e10.         ; then udskriv antal overført
        al. w0     e88.         ; farveltext
        jl. w3     e00.         ; write

        al. w3     b14.         ; name
        rl. w1     b13.         ; devno
        sl  w1     1            ; if devno > 0
        jd         1<11+64      ; remove process

        rl. w2     b08.         ; ok bits
        jl.        h7.          ;

a06:                            ; initiering
;
; initier div
;
        al  w1     1            ; true
        al  w2     h1           ; processpart of zonedescr
;
        el. w0  x2+h20.+1       ; get input
        se  w0     8            ; if terminal
        sn  w0     9            ; or console
        rs. w1     b09.         ; then online
;
        el. w0  x2+h21.+1       ; get output
        se  w0     8            ; if terminal
        sn  w0     9            ; or console
        rs. w1     b10.         ; then online
;
        rl. w0     b12.         ; get startsegm
        rs. w0     b04.         ; gem som current segm
        wa. w0     b17.         ; læg startsegm til forfrasegm
        rs. w0     b17.         ; gem modificeret forfrasegm
;
;
; beregn max buflgd
;
        rl. w3     h16.         ; get own adress
        rl  w1  x3+24           ; last adr
        al. w0     a99.         ; first buf
        ws  w1     0            ; buflgd total = last adr - first buf
        al  w3     3            ; tre
        al  w0     0            ; w0/w1=buflgd total
        wd  w1     6            ; buflgd total // 3
        ls  w1    -9            ; buflgd // 512
        rs. w1     b23.         ; gem max buflgd
;
; read/write?
;
        al. w0     e90.         ; bed om read/write
        jl. w3     e00.         ; write (out..
a07:    jl. w3     h25.-2       ; inchar
        se  w2     114          ; read
        sn  w2     119          ; write
        jl.        a08.         ; ok
        jl.        a07.         ; læs igen
a08:                            ; r/w læst
        rl. w0     b19.         ; input
        se  w2     114          ; read
        rl. w0     b20.         ; output
        rs. w0     b05.         ; io-type
        jl. w3     e40.         ; læs til nl;
;
; bloklgd?
;
        al. w0     e91.         ; bed om bloklgd
        jl. w3     e42.         ; read integer
        rs. w0     b15.         ; gem bloklgd og check
        sh. w0    (b23.)        ; højest ??
        sh  w0     0            ; mindst 1
        jl.        e08.         ; ellers fejl
;
; segmenter ialt før stop
;
        al. w0     e93.         ; bed om segmenter før stop
        jl. w3     e42.         ; read integer
        rs. w0     b22.         ; gem stopsegm
;
; startsegm for io
;
        al. w0     e89.         ; bed om startsegm
        jl. w3     e42.         ; read integer
        rs. w0     b12.         ; gem startsegm
;
; devno
;
        al. w0     e84.         ; devno?
        jl. w3     e42.         ; read integer
        rs. w0     b13.         ; gem devno
;
; devicenavn?
;
        al. w0     e86.         ; device?
        al. w2     b14.         ; name
        jl. w3     e45.         ; læs text
;
; initier buffere mv.
;
        al. w0     b03.         ;
        rs. w0     b00.         ; used share := b03

        rl. w0     b15.         ; segmenter pr blok
        ls  w0     9            ; shift 9 = * 512 dvs som halvord
        rs. w0     b16.         ; halvord pr blok
;
        al. w1     a99.         ; start bufferarea
        rs. w1     b01.+2       ; 1. buffer
        wa. w1     b16.         ; + bufferlængde
        rs. w1     b02.+2       ; 2. buffer
        wa. w1     b16.         ; + bufferlængde
        rs. w1     b03.+2       ; 3. buffer
;
        rl. w2     b16.         ; hw pr buf
        wm. w2     b24.         ; *3
a10:
        al  w2  x2-2            ; next adr
        am.       (b01.+2)      ;
        rs  w2  x2+0            ; initier word
        se  w2     0            ; if not slut
        jl.        a10.         ; then next
;
; create php. dev.
;
        al  w0     0            ; ok
        al. w3     b14.         ; name
        rl. w1     b13.         ; devno
        sl  w1     1            ; if devno > 0
        jd         1<11+54      ; then create php.
        se  w0     0            ; if not ok
        jl.        e04.         ; then goto eror (create)
;
; initialize mv.
;
        rl. w1     b05.         ; io-type
        jd         1<11+6       ; initialize
        sn. w1    (b20.)        ; if output
        jd         1<11+8       ; then reserve
        se  w0     0            ; if not ok then goto
        jl.        e07.         ; error (reserve)
;
; init tidsmåling
;
        jd         1<11+36      ; get clock
        ds. w1     b25.+2       ; gem
;
; lav noget
;
a11:    rl. w2     b00.         ;  Next Operation:
        al  w2  x2+6            ;    Share No := Share No + 1;
        sl. w2     b04.         ;    If share No > 3 Then Share No := 1;
        al. w2     b01.         ;
        rs. w2     b00.         ;
        rl  w2  x2              ;  If State = active then
        sn  w2     0            ;  begin
        jl.        a14.         ;
;
        rl. w1     b27.         ; get antal io for denne tidsmåling
        al  w1  x1+1            ; + 1
        rs. w1     b27.         ; gem
;
        al. w1     b06.         ;
        jd         1<11+18      ;     wait answer (Used Share);
        al  w2     1            ; en
        ls  w2    (0)           ; w2 := 1 shift result
        sn  w2     2            ; if ok
        lo  w2  x1              ; then w2 := result or status
        rs. w2    (b00.)        ; gem det
        se  w2     2            ; if not ok
        jl.        e02.         ; then error..

        rl. w0     b06.+2       ; hw transferred
        se. w0    (b16.)        ; if transferred <> bloklgd
        jl.        e03.         ; then error..

a14:    rl. w1     b04.         ; hent segno
        rl. w2     b00.         ; hent share
        rs. w1     b05.+6       ;
        rs  w1  x2+4            ;
        rl  w1  x2+2            ;  op.first := used share.first
        rs. w1     b05.+2       ;
        al  w1  x1-2            ;
        wa. w1     b16.         ;  op.last := first + hw pr block - 2
        rs. w1     b05.+4       ;
        al. w1     b05.         ;
        al. w3     b14.         ;
        jd         1<11+16;
        rs. w2    (b00.)        ;  share state := mess buffer address

a15:                            ; optæl segmeter overført
        rl. w0     b15.         ; antal segm pr blok
        wa. w0     b18.         ; + tidligere
        rs. w0     b18.         ; = segmenter ialt
;
; forfra?
;
        rl. w1     b04.         ; hent segno
        wa. w1     b15.         ; tæl op
        sl. w1    (b17.)        ; if segno < max
        jl.        a16.         ;
        jl.        a12.         ; then fortsæt
a16:                            ; else forfra
        jl. w3     e10.         ; write
        rl. w1     b12.         ; segno:=startsegm
;
; stop?
;
a12:    rl. w2     b22.         ; max antal segmenter
        sh  w2     0            ; if maxantal <= 0
        jl.        a13.         ; then fortsæt i det uendelige
        rl. w0     b18.         ; segmenter overført
        sl  w0  x2              ; if antal overført >= maxantal
        jl.        a05.         ; then slut..
a13:
        rs. w1     b04.         ; gem nyt segno
;
        jl.        a11.         ; goto next Operation;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; output
;
        0                       ; returadr
e00:    rs. w3     e00.-2       ; write text, outend, w0 indeholder text
        jl. w3     h31.-2       ; outtext
        al  w2     0            ;
        jl. w3     h33.-2       ; outend
        jl.       (e00.-2)      ; retur

        0                       ; returadr
e01:    rs. w3     e01.-2       ; write integer, outend, w0 indeholder tal
        jl. w3     h32.-2       ; outinteger
        32<12+8                 ; <<dddddddd>
        al  w2     0            ;
        jl. w3     h33.-2       ; outend
        jl.       (e01.-2)      ; retur

e02:    al. w0     e81.         ; bad result or status
        jl. w3     h31.-2       ;
        rl. w0    (b00.+0)      ; result
        jl.        e09.         ; write and terminate

e03:    rs. w0     b05.         ; hw transferred error
        al. w0     e82.         ;
        jl. w3     h31.-2       ;
        rl. w0     b05.         ; hw
        jl.        e09.         ; write and terminate

e04:    rs. w0     b05.         ; create area
        al. w0     e83.         ;
        jl. w3     h31.-2       ;
        rl. w0     b05.         ; result
        jl.        e09.         ; write and terminate

e05:    rs. w0     b05.         ; lookup
        al. w0     e85.         ;
        jl. w3     h31.-2       ; result
        rl. w0     b05.         ;
        jl.        e09.         ; write and terminate

e07:    rs. w0     b05.         ; reserve process
        al. w0     e87.         ;
        jl. w3     h31.-2       ;
        rl. w0     b05.         ; result
        jl.        e09.         ; write and terminate

e08:                            ; bloklængde angivelse
        al. w0     e92.         ;
        jl. w3     h31.-2       ;
        rl. w0     b23.         ; max buflgd
        jl. w3     h32.-2       ; write integer
        32<12+1                 ; <<d>
        jl.        a01.         ; terminate

e09:    jl. w3     e01.         ; write integer
        jl.        a01.         ; terminate program med ok.no
;
; forfra text
;
        0                       ; returadr
e10:    rs. w3     e10.-2       ; write forfra text
;
        jd         1<11+36      ; get clock
        ss. w1     b25.+2       ; - starttid
        wd. w1     b27.         ; // antal io
        al  w0     0            ;
        wd. w1     b21.         ; // 10 (som ms)
        rs. w1     b26.         ; gem antal ms pr blok
;
        al. w0     e97.         ; forfra text sat til read
        rl. w3     b05.         ; hent io-type
        se. w3    (b19.)        ; if write
        al. w0     e98.         ; then forfra text sat til write
        jl. w3     h31.-2       ; write (out..
        al. w0     b14.         ; disknavn
        jl. w3     h31.-2       ; write (out..
        rl. w0     b18.         ; segmenter ialt
        jl. w3     h32.-2       ; write (out..
        32<12+8                 ; <<dddddddd>
        al. w0     e95.         ; segmenter pr blok
        jl. w3     h31.-2       ; write (out..
        rl. w0     b15.         ; bloklgd
        jl. w3     h32.-2       ; write (out..
        32<12+3                 ; <<ddd>
        al. w0     e96.         ; ms/segm
        jl. w3     h31.-2       ; write (out..
        rl. w0     b26.         ; ms
        jl. w3     h32.-2       ; write (out..
        32<12+3                 ; <<ddd>
        al  w2     0            ;
        jl. w3     h33.-2       ; outend
;
        al  w1     0            ; nul
        rs. w1     b27.         ; nulstil antal io for aktuelle måling
        jd         1<11+36      ; get clock
        ds. w1     b25.+2       ; gem som ny starttid
;
        jl.       (e10.-2)      ; retur
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; texter
;
e80:    <:<10>Segments transferred<0>:>,0
e81:    <:<10>Bad Result Or Status on file, result=<0>:>,0
e82:    <:<10>Forkert antal halvord overført<0>:>,0
e83:    <:<10>Create Process, result=<0>:>,0
e84:    <:Deviceno? (1..?)         <0>:>
e85:    <:<10>Create file, result=<0>:>
e86:    <:Devicenavn?              <0>:>
e87:    <:<10>Reserve/Initialize Process, result=<0>:>
e88:    <:<10>End.<10><0>:>
e89:    <:Startsegm?               <0>:>
e90:    <:Read/Write? (r/w)        <0>:>
e91:    <:Segmenter pr blok?       <0>:>
e92:    <:Ulovlig bloklængde, mulig længde 1..<0>:>
e93:    <:Segmenter ialt før stop? <0>:>
e95:    <:, bloklængde:<0>:>
e96:    <:, ms/blok:<0>:>
e97:    <:<10>Ialt læst på <0>:>
e98:    <:<10>Ialt skrevet på <0>:>
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; read to nl
;
        0                       ; wrk var
        0                       ; retur adr
e40:    rs. w3     e40.-2       ; læs til w2=nl, w2 indeholder sidst læste tegn
;
        rs. w2     e40.-4       ; gem w2
        al  w2     10           ; nl
        rl. w1     b09.         ; online input?
        so  w1     1            ; if true
        jl. w3     h33.-2       ; then outend (nl)
        rl. w2     e40.-4       ; genskab w2
;
e41:
        sn  w2     10           ; if nl
        jl.       (e40.-2); thenretur..
        jl. w3     h25.-2       ; læs tegn
        jl.        e41.         ; igen
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; read integer
        0                       ; retur adr
e42:    rs. w3     e42.-2       ; skriv ledetext fra w0 og læs integer til w0
        jl. w3     e00.         ; outtext (ledetext)

        al  w0     0            ; tal:=0
e43:
        jl. w3     h25.-2       ; inchar
        sn  w2     0            ;
        jl.        e43.         ; igen da nul læst
        sl  w2     48           ; if not tal
        sl  w2     58           ; then
        jl.        e44.         ; slut
        al  w2  x2-48           ; talværdi
        wm. w0     b21.         ; gange 10
        wa  w0     4            ; + ciffer
        jl.        e43.         ; læs næste ciffer
e44:    jl. w3     e40.         ; læs til nl
        jl.       (e42.-2); retur..
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; read text
        0                       ; textarray idx
        0                       ; textarray adr
        0                       ; retur adr
e45:    rs. w3     e45.-2       ; skriv ledetext fra w0 og læs til array specificeret i w2
        rs. w2     e45.-4       ;
        jl. w3     e00.         ; outtext (ledetext)
        al  w3     16           ; idx
        rs. w3     e45.-6       ;
e46:
        jl. w3     h25.-2       ; inchar
        sn  w2     0            ;
        jl.        e46.         ; igen da nul læst
        sn  w2     10           ; if nl
        jl.        e48.         ; then slut

        rl. w1     e45.-4       ; array adr
        rl. w3     e45.-6       ; hent idx
        ls  w2  x3              ; shift tegnet ind
        lo  w2  x1              ; indsæt tegn
        rs  w2  x1              ; gem tegn

        al  w3  x3-8            ; nyt idx
        sl  w3     0            ; if idx >= 0
        jl.        e47.         ; then samme adr
        al  w3     16           ;   idx := 16
        al  w1  x1+2            ;   tæl adr op
        rs. w1     e45.-4       ;
e47:
        rs. w3     e45.-6       ; gem idx
        jl.        e46.         ; næste tegn
e48:    jl. w3     e40.         ; læs til nl
        jl.       (e45.-2); retur..
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; buffere
;
a99:    0
;
e.e.e.
▶EOF◀