|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.