naraku9333

Untitled

Jul 17th, 2014
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. *************************************************
  2. *
  3. * BUILD SUBROUTINE
  4. *************************************************
  5. * Register Usage:
  6. *
  7. * 1 - used by XDECI / param list addr
  8. * 2 - param list, table
  9. * 3 - param list, eot
  10. * 4 - address of D1
  11. * 5 - address of H1
  12. * 6 - extracted num, XDECI/XDECO
  13. * 7 -
  14. * 8 -
  15. * 9 -
  16. * 10 - subroutine return address
  17. * 11 -
  18. * 12 -
  19. * 13 -
  20. * 14 -
  21. * 15 -
  22. *
  23. *************************************************
  24. BUILD DS 0H BEGIN BUILD SUBROUTINE
  25. STM 0,15,REGSAVE
  26. LM 2,5,0(1) LOAD PARAM LIST
  27. READLN XREAD INLINE,80 READ A LINE
  28. BL ENDRD
  29. *
  30. LA 1,INLINE
  31. FILLTBL XDECI 6,0(1) GET NEXT NUMBER
  32. BO ENDTBL END OF LINE
  33. C 6,=F'-88888888' CHECK FOR DELIMITER
  34. BE LAST3
  35. CR 2,3 COMPARE TABLE AND EOT
  36. BNL ENDRD QUIT IF TABLE FULL
  37. ST 6,0(2) STORE VALUE IN TABLE
  38. A 2,=F'4' INCREMENT TABLE PTR
  39. B FILLTBL REPEAT INNER LOOP
  40. *
  41. ENDTBL B READLN REPEAT OUTER LOOP
  42. *
  43. LAST3 XREAD INLINE,80 READ A LINE
  44. BL ENDRD
  45. XDECI 6,INLINE GET NEXT NUMBER
  46. BO ELAST
  47. ST 6,0(4) STORE DX
  48. A 4,=F'4' INCREMENT DX PTR
  49. XDECI 6,0(1) GET NEXT NUMBER
  50. BO ELAST
  51. ST 6,0(5)
  52. A 5,=F'4' INCREMENT HX PTR
  53. ELAST B LAST3
  54. *
  55. ENDRD ST 2,0(3) STORE EOT POINTER
  56. LM 0,15,REGSAVE RESTORE REGISTERS
  57. BR 10
  58. *************************************************
  59. * END BUILD
  60. *************************************************
Advertisement
Add Comment
Please, Sign In to add comment