Annotation of researchv10dc/630/src/excep.s, revision 1.1.1.1

1.1       root        1:        .globl  excep_norm
                      2: excep_norm:
                      3:        ORW2    &0x1e000,%psw           # IPL up to 15
                      4:        TSTW    %r0             # let psw bits settle 
                      5:        PUSHW   %r0             # save temporary registers
                      6:        PUSHW   %r1             # save temporary registers
                      7:        PUSHW   %r2             # save temporary registers
                      8:        PUSHW   &3              # type = NORMAL
                      9:        PUSHAW  -24(%sp)        # push address of saved pc -(24) 
                     10:        PUSHAW  -24(%sp)        # push address of saved psw -24 off of new stack
                     11:        PUSHW   -28(%sp)        # push saved psw -28 off of new stack (PUSH)
                     12:        PUSHW   %pcbp           # push saved pcbp (not used!)
                     13:        call    &5,*(Sys+(4*153))       # /* trap */trap will decide to return or not
                     14:        POPW    %r2             #restore temporary registers
                     15:        POPW    %r1             #restore temporary registers
                     16:        POPW    %r0             #restore temporary registers
                     17:        RETG                    # resume of trap allows (brkpt or trace )
                     18: 
                     19:        .globl  excep_stack
                     20: excep_stack:
                     21:        MOVW    -0x4(%isp),%r0  # get saved %pcbp 
                     22:        PUSHW   &2              # type = STACK
                     23:        PUSHAW  0x4(%r0)        # push address of saved pc 
                     24:        PUSHAW  0x0(%r0)        # push address of saved psw 
                     25:        PUSHW   0x0(%r0)        # push saved psw 
                     26:        PUSHW   %r0             # push saved pcbp 
                     27:        call    &5,*(Sys+(4*153))       # /* trap */ let trap handle the situation
                     28:        RETPS                   # if trap returns
                     29: 
                     30:        .globl  excep_proc
                     31: excep_proc:
                     32:        PUSHW   &1              # type = PROCESS
                     33:        PUSHW   &0              # push address of saved pc  (NONE!)
                     34:        PUSHW   &0              # push address of saved psw (NONE!)
                     35:        PUSHW   %psw            # push psw of current proc!!!
                     36:        PUSHW   -0x4(%isp)      # push saved %pcbp 
                     37:        call    &5,*(Sys+(4*153))       # /* trap */ let trap handle the situation
                     38:        RETPS                   # if trap returns

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.