cms.s 356 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. .define .cms
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. .sect .text
  7. ! any size sets
  8. ! parameters:
  9. ! hl: size
  10. ! stack: second operand
  11. ! first operand
  12. ! stack: result (out)
  13. .cms:
  14. pop ix
  15. ld b,h
  16. ld c,l
  17. add hl,sp
  18. 0:
  19. dec sp
  20. pop af
  21. cpi
  22. jr nz,1f
  23. ld a,b
  24. or c
  25. jr nz,0b
  26. ld de,0
  27. jr 2f
  28. 1:
  29. add hl,bc
  30. ld de,1
  31. 2:
  32. ld sp,hl
  33. push de
  34. jp (ix)