1 "         BEGIN INCLUDE FILE probe_request_macros.incl.alm
  2 "         Created (from subsys_request_macros) 04/08/79 W. Olin Sibert
  3 "
  4 " Macros to create request table(s) for probe and probe extensions
  5 
  6 
  7           equ       request_table_version,1
  8 
  9           bool      flags.is_request,040000       " this entry is a request
 10           bool      flags.is_builtin,020000       " this entry is a builtin function
 11 
 12           bool      flags.unimplemented,400000    " this request is not yet implemented
 13           bool      flags.secret,200000           " this is an internal request, and doesn't show up in a "?" listing
 14 
 15 
 16 "
 17 "         begin_table tablename
 18 "
 19 
 20           macro     begin_table
 21           segdef    &1
 22           maclist   object,save
 23           use       tables
 24 &1:       vfd       36/request_table_version
 25           aci       @&1@,32
 26           dup       6                   " six words of padding, for later use as flags
 27           vfd       36/0
 28           dupend
 29           vfd       36/&1.rc
 30           maclist   off
 31           set       .rc,0
 32           maclist   restore
 33           &end
 34 
 35 "
 36 "         Request generating macro. Intended use:
 37 "
 38 "         request   name,(alias),segname$entryname,
 39 "                   (Short description of request.){,flags}
 40 "
 41 
 42           macro     request
 43           maclist   off,save
 44           set       .rc,.rc+1
 45           maclist   object
 46           use       tables
 47           vfd       18/&U.call,18/&U.names
 48 &=&4,&[   vfd       36/0
 49 &;        vfd       18/&U.info,18/&l4
 50           vfd       36/0                " usage string info will go here
 51           maclist   off
 52           use       info
 53 &U.info:  aci       @&4@
 54 &]
 55           use       tables
 56 &=&5,&[   set       .flags,flags.is_request
 57 &;        set       .flags,&5+flags.is_request
 58 &]
 59           maclist   object
 60           vfd       18/.flags,18/0
 61           maclist   off
 62           use       calls
 63 &U.call:  epaq      *
 64           lprp4     7|stack_header.lot_ptr,*au
 65           call6     &3
 66           use       names
 67 &U.names: namelist  &1&^=&2,&[,&2&]
 68           maclist   restore
 69           &end
 70 
 71 "
 72 "         Macro for generating builtins. Syntax is same as request macro
 73 "
 74 
 75           macro     builtin
 76           maclist   off,save
 77           set       .rc,.rc+1
 78           maclist   object
 79           use       tables
 80           vfd       18/&U.call,18/&U.names
 81 &=&4,&[   vfd       36/0
 82 &;        vfd       18/&U.info,18/&l4
 83           vfd       36/0                " usage string info will go here
 84           maclist   off
 85           use       info
 86 &U.info:  aci       @&4@
 87 &]
 88           use       tables
 89 &=&5,&[   set       .flags,flags.is_builtin
 90 &;        set       .flags,&5+flags.is_builtin
 91 &]
 92           maclist   object
 93           vfd       18/.flags,18/0
 94           maclist   off
 95           use       calls
 96 &U.call:  epaq      *
 97           lprp4     7|stack_header.lot_ptr,*au
 98           call6     &3
 99           use       names
100 &U.names: namelist  &1&^=&2,&[,&2&]
101           maclist   restore
102           &end
103 
104 "
105 "         internal macro for generating name lists
106 "
107 
108           macro     namelist
109           maclist   off,save
110           vfd       36/&K
111 &R&(      aci       @&i@,32
112 &)
113           maclist   restore
114           &end
115 
116 "
117 "         end_table tablename
118 "
119 
120           macro     end_table
121           maclist   off,save
122           set       &1.rc,.rc
123           maclist   restore
124           &end
125 
126 
127           use       tables
128           use       calls
129           use       names
130           use       info
131           join      /text/tables,calls,names,info
132 
133           equ       stack_header.lot_ptr,22
134 
135 "         END INCLUDE FILE probe_request_macros.incl.alm