home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / tmg / tmgb / arith.s < prev    next >
Encoding:
Text File  |  1975-05-13  |  787 b   |  57 lines

  1. .globl succ,fail,iget
  2. .globl seekchar,getword,alterword
  3. .globl sprv,update
  4. .globl .l,.u,.p,.t,.st,
  5.  
  6. / infix =
  7. .st:
  8.     jsr    pc,sprv
  9.     mov    (sp)+,(sp)
  10.     mov    (sp)+,(sp)
  11. / update
  12. .u:
  13.     jsr    pc,update
  14.     br    9f
  15. / pop stack
  16. .p:
  17.     jsr    pc,sprv
  18.     cmp    (sp)+,(sp)+
  19.     br    9f
  20. / test stack
  21. .t:
  22.     jsr    pc,sprv
  23.     mov    (sp)+,(sp)+
  24.     bne    9f
  25.     jmp    fail
  26. / load named value
  27. / rvalue into (sp), lvalue into 2(sp)
  28. .l:
  29.     jsr    pc,iget
  30.     mov    r0,-(sp)
  31.     mov    (r0),-(sp)
  32.     br    9f
  33. / update a stored value, used by all assignments
  34. update:
  35.     cmp    2+2(sp),$-1
  36.     beq    1f
  37.     mov    0+2(sp),*2+2(sp)
  38.     rts    pc
  39. 1:
  40.     mov    4+2(sp),r1
  41.     mov    6+2(sp),r0
  42.     jsr    pc,seekchar
  43.     mov    0+2(sp),r0
  44.     jsr    pc,alterword
  45. / make sp hold a simple rv (forget it might be a table value)
  46. sprv:
  47.     mov    (sp)+,r0
  48.     cmp    $-1,2(sp)
  49.     bne    1f
  50.     mov    (sp)+,(sp)
  51.     mov    (sp)+,(sp)
  52. 1:
  53.     mov    r0,pc
  54. 9:
  55.     jmp    succ
  56.  
  57.