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

  1. Path: wupost!cs.utexas.edu!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 18 of 18
  5. Message-ID: <1991Sep5.074844.562@nrlvx1.nrl.navy.mil>
  6. Date: 5 Sep 91 11:48:44 GMT
  7. Organization: NRL SPACE SYSTEMS DIVISION
  8. Lines: 242
  9.  
  10. -+-+-+-+-+-+-+-+ START OF PART 18 -+-+-+-+-+-+-+-+
  11. X     .`09`09     pwd_length_len, expir_len, maxjobs_len, fillm_len,`20
  12. X     .`09`09     bytlm_len, maxacctjobs_len, shrfillm_len,`20
  13. X     .`09`09     pbytlm_len, maxdetach_len, biolm_len, uic_len,
  14. X     .`09`09     jtquota_len, prclm_len, diolm_len, wsdef_len,`20
  15. X     .`09`09     prio_len, astlm_len, wsquo_len, queprio_len,`20
  16. X     .`09`09     tqelm_len, wsextent_len, cpu_len, enqlm_len,
  17. X     .`09`09     pgflquo_len, batch_p_len, batch_s_len, u_len,
  18. X     .`09`09     dialup_p_len, dialup_s_len, local_p_len,`20
  19. X     .`09`09     local_s_len, network_p_len, network_s_len,`20
  20. X     .`09`09     remote_p_len, remote_s_len, uic_value_len
  21. X`09Integer*4    auth_priv(2), def_priv(2), last_login_i(2),
  22. X`091            last_Login_n(2), pwd_date(2)
  23. X`09Integer*2    pwd_life(4), expir(4)
  24. X`09Logical      user_exists, bogus_key, change,`20
  25. X     .`09`09     pwd_change, rename, success
  26. X
  27. X `09Common /board_stuff/
  28. X     .`09`09     keyboard, main, message, priv_board, flags_board,
  29. X     .`09`09     instruct, access_board, days_board, term,
  30. X     .`09`09     pasteboard, error_message, LOGIN_BOARD
  31. X
  32. X`09Common /uai_strings/
  33. X     .`09`09     exprdate, u, username, orig_uname, password,
  34. X     .`09`09     pwd_lifetime, uic, u_len, account, cpu_string,
  35. X     .`09`09     pwd_length_string, maxjobs_string, enqlm_string,
  36. X     .`09`09     fillm_string, maxacctjobs_string, shrfillm_string,`20
  37. X     .`09`09     pbytlm_string, maxdetach_string, jtquota_string,`20
  38. X     .`09`09     biolm_string, prclm_string, diolm_string,`20
  39. X     .`09`09     wsdef_string, astlm_string, prio_string,`20
  40. X     .`09`09     wsquo_string, queprio_string, tqelm_string,`20
  41. X     .`09`09     wsextent_string, pgflquo_string, bytlm_string,
  42. X     .               char_last_login_i, char_last_login_n, password_change_d
  43. Vate
  44. X
  45. X`09Common /uai_lengths/
  46. X     .`09`09     account_len, defdev_len, defdir_len, owner_len,`20
  47. X     .`09`09     username_len, mem_len, grp_len, pwd_life_len,`20
  48. X     .`09`09     pwd_length_len, lgicmd_len, defcli_len, tables_len,`20
  49. X     .`09`09     expir_len, maxjobs_len, bytlm_len, flags_len,
  50. X     .`09`09     fillm_len, maxacctjobs_len, shrfillm_len,
  51. X     .`09`09     prime_len, pbytlm_len, maxdetach_len, uname_len,
  52. X     .`09`09     biolm_len, jtquota_len, prclm_len, diolm_len,`20
  53. X     .`09`09     wsdef_len, prio_len, astlm_len, wsquo_len,
  54. X     .`09`09     queprio_len, tqelm_len, cpu_len, wsextent_len,`20
  55. X     .`09`09     enqlm_len, pgflquo_len, password_len, uic_len,
  56. X     .`09`09     uic_value_len, lastlogi, lastlogn, change_date_len
  57. X
  58. X`09Common /uai_int/
  59. X     .`09`09     pwd_life, expir, mem, grp, prime, auth_priv,
  60. X     .`09`09     pwd_length, bytlm, maxjobs, fillm, maxacctjobs,`20
  61. X     .`09             shrfillm, pbytlm, maxdetach, biolm, jtquota, prclm,`20
  62. X     .`09`09     diolm, wsdef, prio, astlm, wsquo, queprio, tqelm,`20
  63. X     .`09`09     wsextent, cpu, enqlm, pgflquo, flags, days, hours,`20
  64. X     .`09`09     minutes, seconds, def_priv, uic_value
  65. X
  66. X`09Common /access_lens/
  67. X     .`09`09     batch_p, batch_p_len, batch_s, batch_s_len,`20
  68. X     .`09`09     dialup_p, dialup_p_len, dialup_s, dialup_s_len,`20
  69. X     .`09`09     local_p, local_s, local_p_len, local_s_len,`20
  70. X     .`09`09     network_p, network_p_len, network_s, network_s_len,
  71. X     .`09`09     remote_p, remote_p_len, remote_s, remote_s_len
  72. X
  73. X`09Common /misc_logicals/
  74. X     .`09`09     rename, change, user_exists, pwd_change,`20
  75. X     .`09`09     success
  76. X
  77. $ CALL UNPACK UAF.CMN;25 1765936343
  78. $ create 'f'
  79. X
  80. X          .SHOW ME
  81. X;
  82. X;
  83. X`09.psect data, noexe
  84. X
  85. Xhash_num :    .long    0
  86. XB_NUM_CHARS:  .byte
  87. XCR_LF:        .ascic    <13><10>
  88. XDESC_ADDR:    .LONG
  89. Xval_1 :       .long
  90. Xval_2 :       .long
  91. Xval_3 :       .long
  92. XK :           .long
  93. XT2 :          .long
  94. XNUM_CHARS:    .LONG
  95. Xchars :       .blkb     256
  96. XSUM :         .LONG     0
  97. XF1 :          .long     4349
  98. Xquo :         .long
  99. XITEMP :       .long
  100. Xtable_size :  .long     181
  101. Xoffset :      .long
  102. XTEMP:         .byte
  103. X              .BLKB     256
  104. XINC :         .LONG     1
  105. X;
  106. X; **************************************************************************
  107. V**
  108. X;
  109. X`09.title`09get_hash_num`09
  110. X`09.ident`09/V05/
  111. X;
  112. X;  Function to`20
  113. X;    `20
  114. X;
  115. X;  Form of call:`09
  116. X;
  117. X;  Where`09
  118. X;`09`09
  119. X;
  120. X`09.psect  proc, nowrt, exe
  121. X
  122. X`09.entry`09get_hash_num,`5EM<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>
  123. X
  124. X`09             PUSHR         #`5EM<R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>
  125. X;`09             write         <   GET  HASH NUM >
  126. X;`09             writestring   cr_lf
  127. X;`09             writestring   cr_lf
  128. X
  129. X`09             movl          @8(AP), num_chars        ; get second argument
  130. X`09             movl          @12(AP), desc_addr
  131. X`09
  132. X;`09             write         <String contains this many characters >
  133. X;`09             writeval      <num_chars> radix=10
  134. X;`09             writestring   cr_lf
  135. X
  136. X;`09             write         <String contains the following characters :>
  137. X`09             clrl          R6
  138. X`09             moval         temp, R6
  139. X`09             cvtlb         num_chars, b_num_chars
  140. X`09             movb          b_num_chars, (R6)
  141. X`09             addl3         #1, R6, R7    `20
  142. X`09             movc3         num_chars, @desc_addr, (R7)
  143. X
  144. X;`09             writestring  temp
  145. X;`09             writestring  cr_lf
  146. X
  147. X`09             clrl         R6
  148. X`09             moval        chars, R6
  149. X`09             movc3        num_chars, @desc_addr, (R6)
  150. X
  151. X`09             cmpl         num_chars, #2
  152. X`09             blss         less_than_1
  153. Xmore_than :          movl         #1, K
  154. X`09             brw          end_if
  155. Xless_than_1:         movl         #0, K
  156. Xend_if:
  157. X;
  158. X;  Get ASCII value of first character
  159. X;
  160. X`09             moval        chars, R6
  161. X`09             movzbl       (R6), val_1
  162. X;`09             write        <val_1 = >
  163. X;`09             writeval     <val_1> radix=10
  164. X;`09             writestring  cr_lf
  165. X;
  166. X;  Get ASCII value of last character
  167. X;
  168. X
  169. X`09             subl3        #1, num_chars, offset
  170. X`09             addl3        offset, R6, R7
  171. X`09             movzbl       (R7), val_2
  172. X;`09             write        <val_2 = >
  173. X;`09             writeval     <val_2> radix=10
  174. X;`09             writestring  cr_lf
  175. X;
  176. X;  Get ASCII value of Kth character
  177. X;
  178. X`09             addl3        K, R6, R7
  179. X`09             movzbl       (R7), val_3
  180. X;`09             write        <val_3 = >
  181. X;`09             writeval     <val_3> radix=10
  182. X;`09             writestring  cr_lf
  183. X`09`09`09
  184. X;
  185. X; Add value of all characters
  186. X;
  187. X                     movl         #0, sum
  188. X                     movl         #1, R8
  189. X`09             movl         num_chars, offset
  190. XLOOP:`09             subl2        #1, offset
  191. X`09             addl3        offset, R6, R7
  192. X`09             movzbl       (R7), T2
  193. X                     mull2        offset, T2
  194. X                     addl2        T2, sum
  195. X                     aobleq       num_chars, R8, LOOP
  196. X
  197. X;`09             write        <SUM = >
  198. X;`09             writeval     <SUM> radix=10
  199. X;`09             writestring  cr_lf
  200. X
  201. X`09             mull3        #256, val_1, hash_num
  202. X`09             addl2        val_2, hash_num
  203. X`09             mull3        #128, val_3, itemp
  204. X`09             addl2        itemp, hash_num
  205. X`09             mull3        f1, num_chars, itemp
  206. X`09             addl2        itemp, hash_num
  207. X                     addl2        sum, hash_num
  208. X
  209. X;`09             write        <HASH_NUM = >
  210. X;`09             writeval     <HASH_NUM> radix=10
  211. X;`09             writestring  cr_lf
  212. X
  213. X`09             cmpl         hash_num, table_size
  214. X`09             blss         l_t
  215. X
  216. X`09`09     beql         e_t
  217. Xg_t : `09`09     bsbw`09  greater_than
  218. X`09`09     jmp `09  done
  219. Xl_t :`09`09     bsbw`09  less_than
  220. X`09`09     jmp`09  done
  221. Xe_t :`09`09     bsbw`09  equal_to
  222. X`09 `09     jmp`09  done
  223. X
  224. X
  225. Xgreater_than :       divl3        table_size, hash_num, quo
  226. X`09`09     mull3        table_size, quo, itemp
  227. X`09             subl2        itemp, hash_num
  228. X`09`09     rsb
  229. X
  230. Xless_than :          rsb
  231. X
  232. Xequal_to :           movl         #0, hash_num
  233. X`09`09     rsb
  234. X
  235. Xdone :               addl2        #1, hash_num
  236. X`09             movl         hash_num, @4(AP)
  237. X
  238. X`09             POPR         #`5EM<R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>
  239. X
  240. X`09 ret              ; NEVER forget this instruction ! ! ! ! ! !`20
  241. X`09.end
  242. X
  243. $ CALL UNPACK GET_HASH_NUM.MAR;65 1562408759
  244. $ v=f$verify(v)
  245. $ EXIT
  246. -- 
  247. \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
  248. < Joe Koffley                        KOFFLEY@NRLVAX.NRL.NAVY.MIL             >
  249. < Naval Research Laboratory          KOFFLEY@CCF.NRL.NAVY.MIL                >
  250. < Space Systems Division             AT&T  :  202-767-0894                   >
  251. \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
  252.