home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0010 - 0019 / ibm0010-0019 / ibm0010.tar / ibm0010 / REFLECT.ZIP / WRQUPLOA.MAR < prev   
Encoding:
Text File  |  1989-02-14  |  4.4 KB  |  319 lines

  1. $iodef 
  2. $ttdef 
  3. $tt2def 
  4. .psect rodata,nowrt,noexe,long
  5. s1: .ascid /SYS$OUTPUT/ 
  6. s2: .ascii <13><10>/%UPLOAD-F-User aborted image/<13><10> 
  7. s2l = .-s2
  8. s3: .ascid <13><10>/%UPLOAD-F-Error #!UB upload aborted./<13><10>
  9. s4: .ascii /go/<13><10>
  10. s4l = .-s4
  11. .psect rwdata,rd,wrt,noexe,long
  12. t: .blkw 1 
  13. i: .blkb 512 
  14. s: .long i
  15. k: .blkb 512 
  16. b: .blkq 1 
  17. d: .long 0 
  18. .long <<1@3>!<1@25>!<1@13>> 
  19. o: .blkb 12 
  20. n: .blkb 12 
  21. e: .long 0 
  22. .address h 
  23. .long 1 
  24. .address x 
  25. x: .blkl 1 
  26. st: .ascii <1>\, Yp/ @-#&1 ?\<13> 
  27. spl = .-st 
  28. ac: .byte 1,35,0,89,0,13
  29. np: .byte 1,35,0,78,0,13
  30. md: .long 78 
  31. .address m 
  32. m: .blkb 78 
  33. ml: .long 0 
  34. .align long
  35. f: $fab fnm = <vaxlink>,- 
  36. dnm = <.exe>,- 
  37. fac = <bio,put>,- 
  38. org = <seq>,- 
  39. rfm = <fix>,- 
  40. mrs = 512,- 
  41. shr = <nil> 
  42. r: $rab fab = f,- 
  43. rsz = 512,-
  44. bkt = 0 
  45. v: .blkb 512
  46. .psect code,exe,rd,nowrt
  47. .entry upload,^m<>
  48. $assign_s devnam = s1,-
  49. chan = t
  50. blbs r0,5$
  51. brw e0
  52. 5$: bsbw sv 
  53. $create fab = f 
  54. blbs r0,7$ 
  55. brw e1 
  56. 7$: $connect rab = r
  57. blbs r0,10$ 
  58. brw e2 
  59. 10$: $rab_store rab=r
  60. bsbw q 
  61. movzwl #512,r3 
  62. movab v,r5
  63. clrl r6 
  64. pushl #s4l
  65. pushal s4
  66. calls #2,tw 
  67. calls #0,rcv
  68. calls #0,rcv
  69. lp:
  70. calls #0,rcv
  71. movab k,r4
  72. 40$: decl r3
  73. bgeq 50$ 
  74. bsbw w
  75. movzwl #<512-1>,r3
  76. movab v,r5
  77. 50$: movb (r4)+,(r5)+
  78. sobgtr r2,40$
  79. brw lp
  80. dk:
  81. .word ^M<r1,r3,r4,r5,r6,r7>
  82. movl 4(ap),r1 
  83. moval k,r5 
  84. incl r1 
  85. clrl r4
  86. subb3 #35,(r1)+,r4 
  87. bleq 20$
  88. addl #2,r1 
  89. clrl r2
  90. 10$: clrb r7
  91. movb (r1)+,r6
  92. cmpb r6,#38
  93. bneq 11$
  94. movb #128,r7
  95. movb (r1)+,r6
  96. decl r4
  97. 11$: cmpb r6,#35
  98. bneq 15$
  99. movb (r1)+,r6
  100. decl r4 
  101. cmpb r6,#63
  102. blss 15$
  103. cmpb r6,#95
  104. bgtr 15$
  105. xorb #64,r6
  106. 15$: bisb3 r7,r6,(r5)+
  107. incl r2
  108. sobgtr r4,10$
  109. 20$: ret
  110. cs:
  111. .word ^M<r1,r2,r3,r4>
  112. movl 4(ap),r1 
  113. incl r1 
  114. clrl r2
  115. subb3 #32,(r1),r2 
  116. clrl r4
  117. 10$: addb (r1)+,r4
  118. sobgtr r2,10$
  119. movl r4,r3
  120. bicb #63,r3
  121. ashl #-6,r3,r3
  122. addb r3,r4
  123. bicb2 #192,r4
  124. addb3 #32,r4,(r1)
  125. ret
  126. ak:
  127. .word ^M<r1>
  128. movl s,r1
  129. cmpb 3(r1),#83
  130. beql 100$
  131. pushl #6
  132. pushal ac
  133. 99$: calls #2,snd
  134. ret
  135. 100$: pushl #spl
  136. pushal st
  137. brb 99$
  138. nk:
  139. .word ^M<>
  140. pushl #6
  141. pushal np
  142. calls #2,snd
  143. decl r6
  144. ret
  145. rcv:
  146. .word ^M<r1,r3,r4,r5,r7,r8>
  147. 2$: movl #10,r3
  148. 5$: $synch_s efn = #1,- 
  149. iosb = b 
  150. blbs r0,10$ 
  151. brw e0 
  152. 10$: moval i,r7
  153. movzwl b+2,r2 
  154. movzwl b,r0 
  155. blbs r0,20$
  156. brw e0
  157. 20$: cmpb #1,(r7)+ 
  158. beql 30$
  159. sobgtr r2,20$
  160. bsbw q
  161. brb 5$
  162. 30$: decl r7
  163. movl r7,s
  164. clrl r1
  165. subb3 #32,1(r7) ,r1 
  166. addb #2,r1
  167. movl #1,r8
  168. cmpb r1,r2
  169. bneq 40$
  170. decl r1 
  171. movb s(r1),r4
  172. pushl s
  173. calls #1,cs
  174. movl #2,r8
  175. cmpb s(r1),r4
  176. bneq 40$
  177. cmpb 3(r7),#69 
  178. bneq 35$
  179. brw 100$
  180. 35$:
  181. subb3 #32,2(r7),r4
  182. cmpb r4,r6 
  183. beql 60$ 
  184. incb r4 
  185. movl #3,r8
  186. cmpb r4,r6
  187. bneq 40$ 
  188. calls #0,ak 
  189. bsbw q
  190. brw 2$
  191. 40$: bsbw q
  192. calls #0 ,nk 
  193. decl r3
  194. bleq 50$ 
  195. brw 5$
  196. 50$: movl r8,r0
  197. brw e4
  198. 60$: pushl r7
  199. calls #1,dk
  200. bsbw q
  201. calls #0,ak 
  202. cmpb 3(r7),#66
  203. beql 100$
  204. cmpb 3(r7),#90
  205. beql 110$
  206. 99$: ret
  207. 100$: movl #1,r0 
  208. brw e0
  209. 110$: calls #0,rcv
  210. brb 99$
  211. snd: 
  212. .word ^M<r1>
  213. movl 4(ap),r0
  214. addb3 r6,#32,2(r0)
  215. pushl r0
  216. calls #1,cs
  217. pushl 8(ap)
  218. pushl r0
  219. calls #2,tw
  220. 20$: incl r6 
  221. bicl #64,r6 
  222. ret
  223. tw:
  224. .word ^M<>
  225. $qiow_s chan = t,-
  226. func = #<io$_writevblk!io$m_breakthru>,-
  227. p1 = @4(ap),-
  228. p2 = 8(ap)
  229. blbs r0,10$
  230. brw e0
  231. 10$: ret
  232. w:
  233. moval v,r+rab$l_rbf
  234. $write rab = r 
  235. blbs r0,10$ 
  236. brw e2
  237. 10$: rsb
  238. sv:
  239. $qiow_s chan = t,-
  240. func = #io$_sensemode,-
  241. p1 = o,-
  242. p2 = #12
  243. blbs r0,20$
  244. brw e0
  245. 20$: $dclexh_s e
  246. blbs r0,30$ 
  247. brw e0
  248. 30$: movc3 #12,- 
  249. o,- 
  250. bisl2 #<tt$m_ttsync!tt$m_hostsync!tt$m_eightbit>,-
  251. n+4 
  252. bisl2 #<tt2$m_pasthru>,n+8
  253. $qiow_s chan = t,-
  254. func = #io$_setmode,- 
  255. p1 = n,-
  256. p2 = #12
  257. blbs r0,40$
  258. brw e0
  259. 40$: rsb
  260. q: $qio_s chan = t,-
  261. func = #<io$_readvblk!io$m_noecho!io$m_timed!io$m_purge>,-
  262. iosb = b,-
  263. efn = #1,-
  264. astadr = ast,-
  265. p1 = i,-
  266. p2 = #512,-
  267. p3 = #60,-
  268. p4 = #d
  269. blbs r0,10$
  270. brw e0
  271. 10$: rsb
  272. ast:
  273. .word ^m<> 
  274. cmpb #3,b+4 
  275. bneq 12$ 
  276. brw cc 
  277. 12$: cmpb #25,b+4 
  278. bneq 15$ 
  279. brw cc 
  280. 15$: ret
  281. cc: $qiow_s chan = t,-
  282. func = #io$_writevblk,- 
  283. p1 = s2,- 
  284. p2 = #s2l 
  285. $exit_s #1
  286. h:
  287. .word ^m<>
  288. $write rab = r
  289. $close fab = f
  290. $cancel_s chan = t
  291. bisl2 #<tt2$m_xon>,o+8
  292. $qio_s chan = t,-
  293. func = #io$_setmode,-
  294. p1 = o,-
  295. p2 = #12
  296. ret
  297. e0: $exit_s r0
  298. e1:
  299. pushl f+fab$l_stv 
  300. pushl f+fab$l_sts 
  301. brb e3
  302. e2:
  303. pushl r+rab$l_stv 
  304. pushl r+rab$l_sts 
  305. e3: calls #2,g^lib$signal 
  306. ret
  307. e4: $fao_s ctrstr = s3,- 
  308. outlen = ml,- 
  309. outbuf = md,- 
  310. p1 = r0 
  311. blbc r0, 10$ 
  312. pushl ml
  313. pushal m 
  314. calls #2,tw
  315. movl #1,r0
  316. 10$: brw e0 
  317. .end upload
  318.