home *** CD-ROM | disk | FTP | other *** search
- .globl succ,fail,iget
- .globl seekchar,getword,alterword
- .globl sprv,update
- .globl .l,.u,.p,.t,.st,
-
- / infix =
- .st:
- jsr pc,sprv
- mov (sp)+,(sp)
- mov (sp)+,(sp)
- / update
- .u:
- jsr pc,update
- br 9f
- / pop stack
- .p:
- jsr pc,sprv
- cmp (sp)+,(sp)+
- br 9f
- / test stack
- .t:
- jsr pc,sprv
- mov (sp)+,(sp)+
- bne 9f
- jmp fail
- / load named value
- / rvalue into (sp), lvalue into 2(sp)
- .l:
- jsr pc,iget
- mov r0,-(sp)
- mov (r0),-(sp)
- br 9f
- / update a stored value, used by all assignments
- update:
- cmp 2+2(sp),$-1
- beq 1f
- mov 0+2(sp),*2+2(sp)
- rts pc
- 1:
- mov 4+2(sp),r1
- mov 6+2(sp),r0
- jsr pc,seekchar
- mov 0+2(sp),r0
- jsr pc,alterword
- / make sp hold a simple rv (forget it might be a table value)
- sprv:
- mov (sp)+,r0
- cmp $-1,2(sp)
- bne 1f
- mov (sp)+,(sp)
- mov (sp)+,(sp)
- 1:
- mov r0,pc
- 9:
- jmp succ
-
-