home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3979 < prev    next >
Encoding:
Internet Message Format  |  1991-09-09  |  14.8 KB

  1. Path: wupost!uunet!europa.asd.contel.com!darwin.sura.net!noc.sura.net!haven.umd.edu!mimsy!nrlvx1.nrl.navy.mil!koffley
  2. From: koffley@nrlvx1.nrl.navy.mil
  3. Newsgroups: alt.sources
  4. Subject: VMS UAF PROFILE part 6 of 18
  5. Message-ID: <1991Sep5.074340.550@nrlvx1.nrl.navy.mil>
  6. Date: 5 Sep 91 11:43:40 GMT
  7. Organization: NRL SPACE SYSTEMS DIVISION
  8. Lines: 421
  9.  
  10. -+-+-+-+-+-+-+-+ START OF PART 6 -+-+-+-+-+-+-+-+
  11. X           call smg$set_cursor_abs ( main, cur_row, cur_column )
  12. XC
  13. XC PF3 - subroutine SHOW_ACCESS
  14. XC
  15. X        elseif (term.eq.smg$k_trm_pf3) then
  16. X           call smg$unpaste_virtual_display ( main, pasteboard )
  17. X           call show_access ( owner, tables, defcli, defdev,
  18. X     .      defdir, lgicmd )
  19. X           call board ( owner, tables, defcli, defdev,
  20. X     .      defdir, lgicmd )
  21. X           call smg$set_cursor_abs ( main, cur_row, cur_column )
  22. XC
  23. XC PF4 - subroutine SHOW_PRIVS
  24. XC
  25. X        elseif (term.eq.smg$k_trm_pf4) then
  26. X           call smg$unpaste_virtual_display ( main, pasteboard )
  27. X           call show_privs ( owner, tables, defcli, defdev,
  28. X     .      defdir, lgicmd )
  29. X           call board ( owner, tables, defcli, defdev,
  30. X     .      defdir, lgicmd )
  31. X           call smg$set_cursor_abs ( main, cur_row, cur_column )
  32. XC
  33. XC F17 - subroutine SHOW_RIGHTS_HELD
  34. XC
  35. X        elseif (term.eq.smg$k_trm_f17) then
  36. X`09   call show_rights`20
  37. X           call board ( owner, tables, defcli, defdev,
  38. X     .      defdir, lgicmd )
  39. X           call smg$set_cursor_abs ( main, cur_row, cur_column )
  40. XC
  41. XC F18 - subroutine LAST_LOGINS
  42. XC
  43. X        elseif (term.eq.smg$k_trm_f18) then
  44. Xd           call smg$unpaste_virtual_display ( main, pasteboard )
  45. X`09   call show_lastlogin`20
  46. X           call board ( owner, tables, defcli, defdev,
  47. X     .      defdir, lgicmd )
  48. X           call smg$set_cursor_abs ( main, cur_row, cur_column )
  49. XC
  50. XC CtrlW - repaint screen
  51. XC
  52. X        elseif (term.eq.smg$k_trm_ctrlw) then
  53. X           call smg$repaint_screen ( pasteboard )
  54. XC
  55. XC CtrlZ - exit to main display
  56. XC
  57. X        elseif (term.eq.smg$k_trm_ctrlz) then
  58. X           call smg$set_cursor_abs ( main, 23, 1 )
  59. X           call smg$unpaste_virtual_display ( message, pasteboard )
  60. X           return
  61. XC
  62. XC Right arrow (or letter l) to select next field
  63. XC
  64. X        elseif (term.eq.smg$k_trm_right.or.
  65. X     .   term.eq.smg$k_trm_uppercase_l.or.
  66. X     .   term.eq.smg$k_trm_lowercase_l) then
  67. X           if (cur_row.lt.7) then
  68. X              if (cur_column.eq.13) then
  69. X                 cur_column = 48
  70. X              else
  71. X                 cur_column = 13
  72. X                 cur_row = cur_row + 1
  73. X              endif
  74. X           elseif (cur_row.eq.7) then
  75. X              if (cur_column.eq.13) then
  76. X                 cur_column = 48
  77. X              else
  78. X                 cur_column = 48
  79. X                 cur_row = cur_row + 3
  80. X              endif
  81. X           elseif (cur_row.eq.8) then
  82. X`09      if (cur_col.eq.13) then
  83. X`09      elseif (cur_col.eq.48) then
  84. X`09         cur_row = cur_row + 2
  85. X`09      endif
  86. X           elseif (cur_row.eq.10) then
  87. X              cur_column = 13
  88. X              cur_row = cur_row + 1
  89. X           elseif (cur_row.eq.11) then
  90. X              if (cur_column.eq.13) then
  91. X                 cur_column = 48
  92. X              else
  93. X                 cur_column = 16
  94. X                 cur_row = cur_row + 2
  95. X              endif
  96. X           elseif (cur_row.ge.13.and.cur_row.lt.19) then
  97. X              if (cur_column.eq.16) then
  98. X                 cur_column = 35
  99. X              elseif (cur_column.eq.35) then
  100. X                 cur_column = 56
  101. X              elseif (cur_row.eq.18.and.cur_column.eq.56) then
  102. X                 cur_column = 12
  103. X                 cur_row = cur_row + 1
  104. X              else
  105. X                 cur_column = 16
  106. X                 cur_row = cur_row + 1
  107. X              endif
  108. X           elseif (cur_row.eq.19) then
  109. X              if (cur_column.eq.12.or.cur_column.eq.16) then
  110. X                 cur_column = 35
  111. X              elseif (cur_column.eq.35) then
  112. X                 cur_column = 56
  113. X              else
  114. X                 cur_column = 13
  115. X                 cur_row = 3
  116. X              endif
  117. X           endif
  118. X           call smg$set_cursor_abs ( main, cur_row, cur_column )
  119. XC
  120. XC Left arrow (or letter 'h') to select previous field
  121. XC
  122. X        elseif (term.eq.smg$k_trm_left.or.
  123. X     .   term.eq.smg$k_trm_uppercase_h.or.
  124. X     .   term.eq.smg$k_trm_lowercase_h) then
  125. X           if (cur_row.le.7.and.cur_row.ne.3) then
  126. X              if (cur_column.eq.48) then
  127. X                 cur_column = 13
  128. X              else
  129. X                 cur_column = 48
  130. X                 cur_row = cur_row - 1
  131. X              endif
  132. X           elseif (cur_row.eq.3) then
  133. X              if (cur_column.eq.48) then
  134. X                 cur_column = 13
  135. X              else
  136. X                 cur_column = 56
  137. X                 cur_row = 19
  138. X              endif
  139. X           elseif (cur_row.eq.8) then
  140. X`09      if (cur_col.eq.48) then
  141. X`09         cur_row = cur_row - 1
  142. X`09      else
  143. X`09      endif
  144. X           elseif (cur_row.eq.10) then
  145. X              cur_column = 48
  146. X              cur_row = cur_row - 3
  147. X           elseif (cur_row.eq.11) then
  148. X              if (cur_column.eq.48) then
  149. X                 cur_column = 13
  150. X              else
  151. X                 cur_column = 48
  152. X                 cur_row = cur_row - 1
  153. X              endif
  154. X           elseif (cur_row.eq.13) then
  155. X              if (cur_column.eq.56) then
  156. X                 cur_column = 35
  157. X              elseif (cur_column.eq.35) then
  158. X                 cur_column = 16
  159. X              else
  160. X                 cur_column = 48
  161. X                 cur_row = cur_row - 2
  162. X              endif
  163. X           elseif (cur_row.gt.13) then
  164. X              if (cur_column.eq.56) then
  165. X                 cur_column = 35
  166. X              elseif (cur_column.eq.35.and.cur_row.eq.19) then
  167. X                 cur_column = 12
  168. X              elseif (cur_column.eq.35.and.cur_row.ne.19) then
  169. X                 cur_column = 16
  170. X              else
  171. X                 cur_column = 56
  172. X                 cur_row = cur_row - 1
  173. X              endif
  174. X           endif
  175. X           call smg$set_cursor_abs ( main, cur_row, cur_column )
  176. XC
  177. XC Down arrow (or Carriage Return or letter 'j') to call next
  178. XC field directly below
  179. XC
  180. X        elseif (term.eq.smg$k_trm_down.or.
  181. X     .   term.eq.smg$k_trm_cr.or.
  182. X     .   term.eq.smg$k_trm_uppercase_j.or.
  183. X     .   term.eq.smg$k_trm_lowercase_j) then
  184. X           if (cur_row.ge.3.and.cur_row.lt.7) then
  185. X              cur_row = cur_row + 1
  186. X           elseif (cur_row.eq.7) then
  187. X              if (cur_column.eq.13) then
  188. X                 cur_row = cur_row + 4
  189. X              else
  190. X                 cur_row = cur_row + 3
  191. X              endif
  192. X           elseif (cur_row.eq.8) then
  193. X`09      if (cur_col.eq.13) then
  194. X`09      elseif (cur_col.eq.48) then
  195. X`09         cur_row = cur_row + 2
  196. X`09      endif
  197. X           elseif (cur_row.eq.10) then
  198. X              cur_row = cur_row + 1
  199. X           elseif (cur_row.eq.11) then
  200. X              if (cur_column.eq.13) then
  201. X                 cur_row = cur_row + 2
  202. X                 cur_column = 16
  203. X              elseif (cur_column.eq.48) then
  204. X                 cur_row = cur_row + 2
  205. X                 cur_column = 56
  206. X              endif
  207. X           elseif (cur_row.ge.13.and.cur_row.ne.19) then
  208. X              if (cur_row.eq.18.and.cur_column.eq.16) then
  209. X                 cur_row = cur_row + 1
  210. X                 cur_column = 12
  211. X              else
  212. X                 cur_row = cur_row + 1
  213. X              endif
  214. X           elseif (cur_row.eq.19) then
  215. X              if (cur_column.eq.12) then
  216. X                 cur_row = 3
  217. X                 cur_column = 13
  218. X              else
  219. X                 cur_row = 3
  220. X                 cur_column = 48
  221. X              endif
  222. X           endif
  223. X           call smg$set_cursor_abs ( main, cur_row, cur_column )
  224. XC
  225. XC Up arrow (or letter 'k') to above field
  226. XC
  227. X        elseif (term.eq.smg$k_trm_up.or.
  228. X     .   term.eq.smg$k_trm_uppercase_k.or.
  229. X     .   term.eq.smg$k_trm_lowercase_k) then
  230. X           if (cur_row.gt.3.and.cur_row.le.7) then
  231. X              cur_row = cur_row - 1
  232. X           elseif (cur_row.eq.3) then
  233. X              if (cur_column.eq.13) then
  234. X                 cur_row = 19
  235. X                 cur_column = 12
  236. X              else
  237. X                 cur_row = 19
  238. X                 cur_column = 56
  239. X              endif
  240. X           elseif (cur_row.eq.8) then
  241. X`09      if (cur_col.eq.48) then
  242. X`09         cur_row = cur_row - 1
  243. X`09      else
  244. X`09      endif
  245. X           elseif (cur_row.eq.10) then
  246. X              cur_row = cur_row - 3
  247. X           elseif (cur_row.eq.11) then
  248. X              if (cur_column.eq.13) then
  249. X                 cur_row = cur_row - 4
  250. X              else
  251. X                 cur_row = cur_row - 1
  252. X              endif
  253. X           elseif (cur_row.eq.13) then
  254. X              if (cur_column.eq.16) then
  255. X                 cur_row = cur_row - 2
  256. X                 cur_column = 13
  257. X              else
  258. X                 cur_row = cur_row - 2
  259. X                 cur_column = 48
  260. X              endif
  261. X           elseif (cur_row.gt.13) then
  262. X              if (cur_row.eq.19.and.cur_column.eq.12) then
  263. X                 cur_row = cur_row - 1
  264. X                 cur_column = 16
  265. X              else
  266. X                 cur_row = cur_row - 1
  267. X              endif
  268. X           endif
  269. X           call smg$set_cursor_abs ( main, cur_row, cur_column )
  270. XC
  271. XC Insert key, or Enter key on keypad, or 'I' key to toggle edit mode
  272. XC
  273. X        elseif (term.eq.smg$k_trm_insert_here.or.
  274. X     .   term.eq.smg$k_trm_enter.or.
  275. X     .   term.eq.smg$k_trm_uppercase_i.or.
  276. X     .   term.eq.smg$k_trm_lowercase_i) then
  277. X           change = .true.                     ! indicate that change made
  278. XC
  279. XC Read what is at the cursor and determine how long the string is.
  280. XC
  281. X           call smg$read_from_display ( main, string )
  282. X           if ((cur_row.eq.10).or.(cur_row.eq.11.and.
  283. X     .      cur_column.eq.48)) then
  284. X              string_len = 23
  285. X           elseif ((cur_row.eq.11.and.cur_column.eq.13).or.
  286. X     .      (cur_row.gt.11)) then
  287. X              if (cur_row.eq.19.and.cur_column.eq.12) then
  288. X                 string_len = 10
  289. X              else
  290. X                 string_len = 6
  291. X              endif
  292. X           else
  293. X              string_len = index(string,'  ')-1
  294. X              if (string_len.eq.-1) string_len = 24
  295. X           endif
  296. XC
  297. XC Take input from the terminal. First erase what is there and then
  298. XC ask for new input.
  299. XC
  300. X           call smg$erase_chars ( main, string_len, cur_row,
  301. X     .      cur_column )
  302. X           call smg$read_string ( keyboard, dummy_string ,, 30 ,
  303. X     .      modifiers ,, term_set, dummy_string_length )
  304. XC
  305. XC String at 3-13 is USERNAME
  306. XC
  307. X           if (cur_row.eq.3.and.cur_column.eq.13) then
  308. X              username = dummy_string
  309. X              call str$upcase ( dummy_string, dummy_string )
  310. X              call str$upcase ( username, username )
  311. X              if (user_exists) rename = .true.
  312. X           endif
  313. XC
  314. XC String at 3-48 is OWNER
  315. XC
  316. X           if (cur_row.eq.3.and.cur_column.eq.48) then
  317. X              owner = dummy_string
  318. X           endif
  319. XC
  320. XC String at 4-13 is ACCOUNT
  321. XC
  322. X           if (cur_row.eq.4.and.cur_column.eq.13) then
  323. X              account = dummy_string
  324. X              call str$upcase ( dummy_string, dummy_string )
  325. X              call str$upcase ( account, account )
  326. X           endif
  327. XC
  328. XC String at 4-48 is UIC
  329. XC
  330. X           if (cur_row.eq.4.and.cur_column.eq.48) then
  331. XC
  332. XC If only the group number is entered, the next available member number
  333. XC will be calculated for you.
  334. XC
  335. X              if (index(dummy_string,',').eq.0) then
  336. X                 call next_free_uic ( dummy_string )
  337. X              endif
  338. XC
  339. XC If group and member are both entered, and they are entered without
  340. XC braces, the braces will be added for you.
  341. XC
  342. X              if ((index(dummy_string,'`5B').eq.0).and.
  343. X     .         (index(dummy_string,'`5D').eq.0)) then
  344. X                 uic = '`5B'//dummy_string(1:dummy_string_length)//'`5D'
  345. XC
  346. XC Otherwise, the uic string will be assumed to be valid ('`5Bgrp,mem`5D').
  347. XC
  348. X              else
  349. X                 uic = dummy_string
  350. X              endif
  351. XC
  352. XC Convert the ascii uic to group and member values
  353. XC
  354. X              num_str = uic(index(uic,'`5B')+1:index(uic,',')-1)
  355. X              num_str_len = index(num_str,' ')-1
  356. X              call ots$cvt_to_l ( num_str(1:num_str_len), grp )
  357. X              num_str = uic(index(uic,',')+1:index(uic,'`5D')-1)
  358. X              num_str_len = index(num_str,' ')-1
  359. X              call ots$cvt_to_l ( num_str(1:num_str_len), mem )
  360. XC
  361. XC Get the uic value in integer format with the following formula
  362. XC
  363. X              uic_value = grp * '10000'x + mem
  364. X           endif
  365. XC
  366. XC String at 5-13 is DEFCLI
  367. XC
  368. X           if (cur_row.eq.5.and.cur_column.eq.13) then
  369. X              defcli = dummy_string
  370. X              call str$upcase ( dummy_string, dummy_string )
  371. X              call str$upcase ( defcli, defcli )
  372. X           endif
  373. XC
  374. XC String at 5-48 is TABLES
  375. XC
  376. X           if (cur_row.eq.5.and.cur_column.eq.48) then
  377. X              tables = dummy_string
  378. X              call str$upcase ( dummy_string, dummy_string )
  379. X              call str$upcase ( tables, tables )
  380. X           endif
  381. XC
  382. XC String at 6-13 is DEFDEV
  383. XC
  384. X           if (cur_row.eq.6.and.cur_column.eq.13) then
  385. X              defdev = dummy_string(1:dummy_string_length)//':'
  386. X              call str$upcase ( dummy_string, dummy_string )
  387. X              call str$upcase ( defdev, defdev )
  388. X           endif
  389. XC
  390. XC String at 6-48 is DEFDIR
  391. XC
  392. X           if (cur_row.eq.6.and.cur_column.eq.48) then
  393. X              if ((index(dummy_string,'`5B').eq.0).and.
  394. X     .         (index(dummy_string,'`5D').eq.0)) then
  395. X                 defdir =
  396. X     .            '`5B'//dummy_string(1:dummy_string_length)//'`5D'
  397. X              else
  398. X                 defdir = dummy_string
  399. X              endif
  400. X              call str$upcase ( dummy_string, dummy_string )
  401. X              call str$upcase ( defdir, defdir )
  402. X           endif
  403. XC
  404. XC String at 7-13 is LGICMD
  405. XC
  406. X           if (cur_row.eq.7.and.cur_column.eq.13) then
  407. X              lgicmd = dummy_string
  408. X              call str$upcase ( dummy_string, dummy_string )
  409. X              call str$upcase ( lgicmd, lgicmd )
  410. X           endif
  411. XC
  412. XC String at 7-48 is PASSWORD
  413. XC
  414. X           if (cur_row.eq.7.and.cur_column.eq.48) then
  415. X              password = dummy_string
  416. X              call str$upcase ( dummy_string, dummy_string )
  417. X              call str$upcase ( password, password )
  418. X              pwd_change = .true.
  419. X           endif
  420. XC
  421. XC String at 10-48 is EXPRDATE
  422. XC
  423. X           if (cur_row.eq.10.and.cur_column.eq.48) then
  424. +-+-+-+-+-+-+-+-  END  OF PART 6 +-+-+-+-+-+-+-+-
  425. -- 
  426. \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
  427. < Joe Koffley                        KOFFLEY@NRLVAX.NRL.NAVY.MIL             >
  428. < Naval Research Laboratory          KOFFLEY@CCF.NRL.NAVY.MIL                >
  429. < Space Systems Division             AT&T  :  202-767-0894                   >
  430. \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
  431.