home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / fort / rt1 / ierr.s < prev    next >
Encoding:
Text File  |  1975-07-17  |  735 b   |  70 lines

  1. /
  2. /
  3.  
  4. / catch runtime errors:
  5. / if (ierror(errno)) goto place
  6. / on call, returns 0
  7. / on occurrence of error, returns non-zero
  8.  
  9. .globl    ierror.
  10. .globl    erret
  11.  
  12. .globl    rerr
  13. .globl    retrn
  14.  
  15. ierror.:zero
  16.     .+2
  17.     mov    2(r3),r0
  18.     mov    2(r0),r1
  19.     mov    $errbuf,r0
  20. 1:
  21.     cmp    r0,cerrp
  22.     blo    2f
  23.     cmp    cerrp,$eerbuf
  24.     blo    3f
  25.     jsr    r5,rerr; 120.
  26. 3:
  27.     add    $8,cerrp
  28.     br    1f
  29. 2:
  30.     cmp    r1,(r0)
  31.     beq    1f
  32.     add    $8,r0
  33.     br    1b
  34. 1:
  35.     mov    r1,(r0)+
  36.     mov    r3,(r0)+
  37.     mov    2(sp),(r0)+
  38.     mov    4(sp),(r0)+
  39.     jmp    retrn
  40.  
  41. .data
  42. erret:
  43.     jmp    9f
  44. .text
  45. 9:
  46.     mov    $errbuf,r0
  47.     cmp    (r0),r1
  48.     beq    1f
  49.     add    $8,r0
  50.     cmp    r0,cerrp
  51.     blo    1b
  52.     rts    pc
  53. 1:
  54.     add    $8,r0
  55.     mov    -(r0),-(sp)
  56.     mov    -(r0),-(sp)
  57.     mov    $one,-(sp)
  58.     mov    -(r0),r3
  59.     jmp    retrn
  60.  
  61. .data
  62. one:    77777; 177777
  63. zero:    0; 0
  64.  
  65. cerrp:    errbuf
  66.  
  67. .bss
  68. errbuf:    .=.+50
  69. eerbuf:
  70.