common.8 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. ; This file is included everwhere to broadcast stuff
  2. ; needed by separately-compiled routines, including constants
  3. ; and addresses of support routines.
  4. ifn usrflg,[
  5. define gcon name,val
  6. name: .==.+2
  7. termin
  8. define gconv name,[val]
  9. name: irp each,,val
  10. .==.+1
  11. termin
  12. termin
  13. define jumper name
  14. name: .==.+1
  15. termin
  16. ]
  17. ife usrflg,[
  18. define gcon name,val
  19. name: val ? jsp xr,exitc
  20. termin
  21. define gconv name,[val]
  22. name: irp each,,val
  23. each
  24. termin
  25. termin
  26. define jumper name
  27. jrst name
  28. termin
  29. ]
  30. loc comadr
  31. nullp==0,,-100
  32. gcon $true,tbool+true ; boolean true
  33. gcon $false,tbool+false ; boolean false
  34. gcon $none,tnone+(refbit)+none$ ; the null return
  35. gcon $null,tnull+(refbit)+null$ ; the null object
  36. $nil=$null
  37. gcon $nulls,tstr+(refbit)+nulls$ ; the null string
  38. gcon $nullv,tref+nullv$ ; the unusable vector
  39. gcon $neg1,tint+777777 ; -1
  40. gcon $zero,tint+0 ; 0
  41. gcon $one,tint+1 ; 1
  42. gcon $two,tint+2 ; 2
  43. gcon $tyo,tchan+ttyocn ; default tty output
  44. gcon $tyi,tchan+ttyicn ; default tty input
  45. gcon $work,trel+work$ ; a page to work with
  46. gcon $ents,tref+ents$ ; the system entries
  47. comadx==.
  48. ; Can't $rtnc following stuff
  49. gconv $memhi,tref+gchi ; current high bound on free mem
  50. gconv $memlo,tref+gclo ; current low bound on free mem
  51. gconv $stkhi,tref+stktop ; upper bound on stack
  52. gconv $pure,tref+gchi+1 ; current pure stuff
  53. gconv $purtop,tref+gchi
  54. gconv $types,tref+types$ ; the types vector
  55. gconv $sigpr,0 ; signal printing flag
  56. gconv $mtab,0 ; the module table
  57. gconv $intlock,0 ; this locks up the world
  58. gconv intchk,skip ; this gets hit when we want to interrupt
  59. .i.==440000(bsize)
  60. .c==chsize*10000
  61. gconv $bptab,[(.i.-.c),(.i.-2*.c),(.i.-3*.c),(.i.-4*.c),(.i.-5*.c)]
  62. gconv $r.get,r.get ; get record component (get_*)
  63. gconv $r.put,r.put ; put record component (put_*)
  64. gconv $r.acc,r.acc ; general access entry
  65. gconv $o.new,o.new ; make a new oneof (make_*)
  66. gconv $typbp,[(221600+sp)]
  67. gconv $vtab,0 ; the vector table (for desc canon)
  68. gconv $o.is,o.is ; test for taggedness of oneof
  69. gconv $o.get,o.get ; force a get of a oneof component
  70. gconv $trace,0 ; the trace flag
  71. gconv $trxct,0
  72. gconv $trsav,0 ; trace request
  73. gconv $lflag,0 ; listen loop recovery flag
  74. gconv $bad,txrep+1 ; Bad thing
  75. tbad==tref+$bad
  76. ; jumps to internal routines
  77. jumplo==:.
  78. jumper setup
  79. jumper exiter
  80. jumper qsetup
  81. jumper yield
  82. jumper resume
  83. jumper exitc
  84. jumper qexit
  85. jumper notref
  86. jumper notrsb
  87. jumper badrep
  88. jumper frog
  89. jumper linker
  90. jumper buggy
  91. jumper mexit
  92. jumper badrtn
  93. jumper memout
  94. jumper framer
  95. jumper itpop
  96. jumper siggy
  97. jumper causer
  98. jumper notype
  99. jumper mxrout ; qproc return
  100. jumper vcopy ; copy a vector
  101. jumper rcopy ; copy a range
  102. jumper yldout
  103. jumper agnew
  104. jumper nixon
  105. jumper i.ofl ; overflow signal
  106. jumper myield
  107. jumper amake ; make an array
  108. jumper badtyp ; bad type code from force
  109. jumper safex ; jumper to safe exit
  110. jumper chkout ; check interrupts and jrst (xr)
  111. jumphi==.-1 ; highest jumper
  112. loc nulls$
  113. gconv nulls%,[tsrep+0,0]
  114. gconv none$,[tvec+1,0]
  115. gconv null$,[tvec+1,0]
  116. gconv nullv$,[tvec+1,0]
  117. gconv $sname,sixbit /clusys/
  118. gconv $bvec,tref+basvec ; vector of basic areas
  119. gconv $stack,trel+stack ; start of stack
  120. gconv $gcsav,tint ; # of words saved by last gc
  121. gconv $gcreq,0 ; # of GC requests
  122. gconv $ahack,0 ; # of hacked array arguments
  123. gconv $.greq,0 ; ^G request
  124. gconv $.sreq,0 ; ^S request
  125. gconv $ihand,0 ; inferior interrupt handler (procedure object)
  126. gconv $infer,0 ; 0,,lh of .ifpir user variable
  127. gconv $inreq,0 ; inferior interrupt requests
  128. gconv $safex,0 ; safex hacking flag
  129. gconv $indef,0 ; any interrupt request increments this
  130. gconv $otty,0 ; non-zero if tty is open
  131. gconv $start,start ; starting address
  132. gconv $cflag,0 ; arg checking flag (1 -> no check)
  133. gconv $snap,0 ; # of things snapped
  134. gconv $gcopt,0 ; GC options word
  135. gconv $fhand,0 ; 1 -> propagate failure
  136. gconv $hheap,0 ; hi heap marker
  137. gconv $styx,0 ; statistics-keeping flag