gccall.2 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. ;;
  2. ;; GC CALLS
  3. ;;
  4. ;; All calls for the garbage collector are gathered together here
  5. ;; for easy reference; they are grouped by category - job hacking
  6. ;; calls, page hacking calls, etc.
  7. ;;
  8. ;; JOB HACKING CALLS
  9. ;;
  10. ubpfj.==10 ;; code for random control bit in call below
  11. img.== 4 ;; code for opening in image mode
  12. wrt.== 1 ;; code for opening to write
  13. ;;
  14. ;; Call that skips if job exists
  15. ;;
  16. jexist: setz
  17. sixbit /open/ ;; open job with
  18. cicnt ubpfj.+img. ;; random bit (see system documentation), image mode
  19. ;; reading
  20. ciarg usro ;; on channel usro
  21. carg [sixbit /usr/] ;; device name is USR
  22. ciarg 0 ;; use my first name
  23. carg jobnam ;; use jobnam as second name
  24. clerr errcod
  25. ;;
  26. ;; Call to create a new job
  27. ;;
  28. jmake: setz
  29. sixbit /open/ ;; open job
  30. cicnt img.+wrt. ;; in image mode, to write
  31. ciarg usro ;; on channel usro
  32. carg [sixbit /usr/] ;; device name is USR
  33. ciarg 0 ;; use my first name
  34. carg jobnam ;; use jobnam for second name
  35. clerr errcod
  36. ;;
  37. ;; PAGE HACKING CALLS
  38. ;;
  39. ;; Call to see if page exists
  40. ;;
  41. pgexst: setz
  42. sixbit /cortyp/ ;; CORTYP
  43. carg pgsrc ;; page is in self, # in pgsrc
  44. cval pgdest ;; put value in pgdest
  45. clerr errcod ;; error code
  46. ;;
  47. ;; Call to get fresh pages
  48. ;;
  49. getpgs: setz
  50. sixbit /corblk/ ;; CORBLK
  51. ciarg %cbndr+%cbndw ;; need read and write
  52. ciarg %jself ;; give to self
  53. carg pgdest ;; pgdest is aobjn pointer
  54. ciarg %jsnew ;; get new pages
  55. clerr errcod ;; put error code in corerr
  56. ;;
  57. ;; Call to map inferior's pages in
  58. ;;
  59. mapin: setz
  60. sixbit /corblk/ ;; CORBLK
  61. ciarg %cbndr+%cbndw ;; need to read and write it
  62. ciarg %jself ;; give to self
  63. carg pgdest ;; put where pgdest points
  64. ciarg usro ;; get from inferior
  65. carg pgsrc ;; from pgsrc
  66. clerr errcod
  67. ;;
  68. ;; Call to move pages within top job
  69. ;;
  70. movpgs: setz
  71. sixbit /corblk/ ;; CORBLK
  72. ciarg %cbndr+%cbndw ;; need to read and write the pages
  73. ciarg %jself ;; give them to me
  74. carg pgdest ;; destination page numbers from pgdest
  75. ciarg %jself ;; take them from me
  76. carg pgsrc ;; source page numbers from pgsrc
  77. clerr errcod ;; put error code in errcod
  78. ;;
  79. ;; Call to map pages
  80. ;;
  81. mapem: setz
  82. sixbit /corblk/ ;; CORBLK
  83. ciarg %cbndr+%cbwrt ;; must have read, write not essential
  84. ciarg usro ;; map to inferior
  85. carg pgdest ;; pgdest has aobjn ptr
  86. ciarg %jself ;; from self
  87. carg pgsrc ;; from same pages in self
  88. clerr errcod
  89. ;;
  90. ;; Variables for page hacking calls
  91. ;;
  92. pgsrc: block 1 ;; source pages for calls
  93. pgdest: block 1 ;; destination pages for calls
  94. ;;
  95. ;; MISCELLANEOUS CALLS
  96. ;;
  97. ;; Call to dismiss interrupts
  98. ;;
  99. intdis: setz
  100. sixbit /dismis/
  101. cicnt 400020 ;; throw away debugging words, pop all AC's
  102. carg intpdl ;; intr stack pointer is intpdl
  103. clerr errcod
  104. ;;
  105. ;; Error code word for all .call's
  106. ;;
  107. errcod: block 1
  108. ;;
  109. ;; Constants for locality
  110. ;;
  111. consta