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

⟦68e3a936f⟧ TextFile

    Length: 3840 (0xf00)
    Types: TextFile
    Names: »cghcauto1«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦this⟧ »cghcauto1« 

TextFile

    (hcauto=slang list.no xref.no
    )
s.  a50,b20,i25,c10 w.
    ;;
    ;; SIMPLE  loader for HC8000
    ;
    ;
    ;;
    ; 0
    ; 2
    ; 4
    ; 6
    0,r.256         ; room for one segment
    k=8             ;
    a0              ; 8: start addr
c10 = 8.15<1
c6 = 16
a0: al  w3     a20  ; system table addr
    gp  w3     c10  ; to inf reg
    ri         c6   ; start
a6: ri         c6  ; start again.
    ;;
    ;
    ;; enabled user process
    ;
a1:                            
b. d10 w.
d0:
    rl. w3  d1.  ; load dummy loop counter.
    al  w3  x3+1 ; dummy loop counter
    rs. w3  d1.  ; save w3.
    ls  w3  16   ;
    ls  w3  -8   ;
    gp  w3  64   ; show dummy loop counter.
    jl.     d0.  ; continue in d0.
d1: 0            ; dummy loop counter.
e. ; enabled user process.
    ;;
    ;
i10: 0 ;
a2: ;; interupt entry
    rs.  w2   i10. ;
    gp  w2    64   ; save and show interupt no.
    sn  w2    16   ; if interupt = 16 then
    jl.       a5.  ; goto start loaded program
    sn w2     18   ; if interupt = 18 then
    jl.       a4.  ; goto load program.
    ri        c6   ; else return from interupt.
a4: ;; monitor mode start
    di  w2     (c4) ; start input
    rs  w2     i21  ; save number of halfwords
    ri        c6    ; return from interupt.

a5: 
    gg  w3     66   ; wait for manuel start.
    al  w3     a50  ;
    jl      x3+6    ; goto monitor
                    ;
                    ;

                    ;
a10:0               ; autoload buffer
i21:0,a50,  0, 27   ;
c4: 1<23 +i21<3 +2.001 ;
    ;1 system table: monitor mode
    b0              ; -5  monitor call service addr
    b6              ; -3  interrupt service addr
    1<23+ 0         ; -1  status  interrupt limit
    a20=k-13        ;
    a30             ; +1  register dump addr
    b1              ; +3  exception service addr
    b2              ; +5  escape service addr
    ;;
    ;1 system table: user mode
    b3              ; -5  monitor call service addr
    a2              ; -3  interrupt       -      -
    1<23 + 6        ; -1  status < 12 + interrupt limit
    a40             ; +1  register dump addr
    b4              ; +3  exception service addr
    b5              ; +5  escape service addr
    ;;
    ;1  monitor register dump start
a30:0               ;  w0
    0               ;  w1
    0               ;  w2
    0               ;  w3
    1<23 + 0        ;  status
    a6              ;  ic
    0               ;  cause
    0               ;  sb

    0               ;  cpa
    0               ;  base
    8               ;  lower write limit
    1<16            ;  upper write limit
    0<12 + 0        ;  interrupt limits
    ;;
    ; 1 user register dump start
a40:0               ;  w0
    0               ;  w1
    0               ;  w2
    0               ;  w3
    1<23 +  0       ; status
    a1              ;  ic
    0               ;  cause
    0               ;  sb

    0               ;  cpa
    0               ;  base
    8               ;  lower write limit
    1<16            ;  upper write limit
    6<12 +  24      ; interrupt limits
    ;;
b0: am -1
b1: am -1
b2: am -1
b3: am -1
b4: am -1
b5: am -1
b6: al w1  -1
    gp  w1  64
    jl.     0
    ;
    ;
    ;
a50:                ; start input addr for monitor
    0,r.(:340-k:)>1;
e.                  ;

▶EOF◀