home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 2 / DATAFILE_PDCD2.iso / utilities2 / _addresses / !Addresses / !RunImage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1993-09-22  |  17KB  |  768 lines

  1.  >!RunImage
  2.  For !Addresses
  3.  22/09/93
  4. Ax$="1.26 (22nd September 1993)":
  5. $+" at line "+
  6. $+" at line "+
  7. c$<>""
  8. p(c$)
  9. &400C7,,d%
  10. &400C8,,d%
  11. &400C6,,d%:
  12. !d%=j%
  13. b(v%):
  14. b(I%):
  15. b(l%):
  16. b(L%):
  17. b(s%):
  18. b(M%):
  19. c(J%,0):e%=0:
  20. g$,".",e%)>0:e%=
  21. g$,".",e%)+1:
  22. g$,e%-2):
  23. g$,".")>0
  24. &5,"Filer_OpenDir "+g$
  25. 17,18:
  26. U%:_%=
  27. &400DD:
  28. g:b%=a%(h%-1):
  29. j(j%,16,b%(b%,g%,0)):
  30. j(j%,17,b%(b%,g%,1)):
  31. j(j%,19,b%(b%,g%,1)
  32. b%(b%,g%,1)
  33. e(j%,18,
  34. e(j%,20,
  35. a(j%,18,""):
  36. a(j%,20,
  37. b$(b%,g%),8))
  38. e(j%,20,
  39. e(j%,18,
  40. a(j%,20,""):
  41. a(j%,18,
  42. b$(b%,g%),8))
  43. e(j%,21,b%(b%,g%,0)
  44. -1):a$=b$(b%,g%):a$=
  45. a$-8):
  46. a(j%,22,
  47. a$,80)):
  48. a(v%,g%,
  49. b$(b%,g%),20)):
  50. a(v%,g%-1,
  51. b$(b%,g%-1),20)):N%=b%(b%,g%-1,1)+11:
  52. i(v%,g%-1,N%)
  53. a(v%,g%+1,
  54. b$(b%,g%+1),20)):N%=b%(b%,g%+1,1)+11:
  55. i(v%,g%+1,N%)
  56. !$N%=b%(b%,g%,1)+11:
  57. i(v%,g%,N%):
  58. e(p%,c%,ba%):!a%=p%:a%!4=c%:a%!8=0:a%!12=1<<22:
  59. &400CD,,a%:
  60. #6!a%=p%:a%!4=c%:a%!8=1<<22:a%!12=1<<22:
  61. &400CD,,a%
  62. j(p%,c%,ca%):!a%=p%:a%!4=c%:a%!8=0:a%!12=1<<21:
  63. &400CD,,a%:
  64. '6!a%=p%:a%!4=c%:a%!8=1<<21:a%!12=1<<21:
  65. &400CD,,a%
  66. E:da%=ea%:
  67. &400EC,32000+ea%
  68. ea%=da%
  69. b("nis"))
  70. !d%=j%
  71. 60:K%!k%=d%!k%:
  72. :b%=d%!28:
  73. b%=v%
  74. b%=-1
  75. .Y!a%=j%:a%!4=15:
  76. &400CE,,a%:fa%=a%!8:`%=a%!12:ga%=a%!16:ha%=a%!20:!a%=v%:
  77. &400CB,,a%
  78. /wa%!4=K%!4+fa%*2-1:a%!8=K%!8-`%:a%!12=K%!4+ga%-32:a%!16=K%!8-`%+ha%+4:a%!28=b%:
  79. &400C5,,a%:K%!28=v%:
  80. &400C5,,K%:
  81. &400C5,,d%
  82. q:!a%=I%:
  83. 262347,,a%:
  84. (a%!32
  85. (1<<16))=(1<<16)
  86. a%!28=-1:
  87. &400C5,,a%
  88. 4F!a%=l%:
  89. 262347,,a%:
  90. (a%!32
  91. (1<<16))=(1<<16)
  92. a%!28=-1:
  93. &400C5,,a%
  94. 5F!a%=L%:
  95. 262347,,a%:
  96. (a%!32
  97. (1<<16))=(1<<16)
  98. a%!28=-1:
  99. &400C5,,a%
  100. 6F!a%=M%:
  101. 262347,,a%:
  102. (a%!32
  103. (1<<16))=(1<<16)
  104. a%!28=-1:
  105. &400C5,,a%
  106. 7G!a%=ia%:
  107. 262347,,a%:
  108. (a%!32
  109. (1<<16))=(1<<16)
  110. a%!28=-1:
  111. &400C5,,a%
  112. 8F!a%=s%:
  113. 262347,,a%:
  114. (a%!32
  115. (1<<16))=(1<<16)
  116. a%!28=-1:
  117. &400C5,,a%
  118. k(ja%):!a%=j%:
  119. &400CB,,a%:ka%=a%!4:la%=a%!8:!a%=j%:a%!4=15:
  120. &400CE,,a%:fa%=a%!8:`%=a%!12:ga%=a%!16:ha%=a%!20
  121. !a%=v%:
  122. &400CB,,a%:a%!4=ka%+fa%*2-1:a%!8=la%-`%:a%!12=ka%+ga%-32:a%!16=la%-`%+ha%+4:a%!28=ja%:
  123. &400C5,,a%:
  124. g:!a%=j%:
  125. &400CB,,a%:a%!28=v%:
  126. &400C5,,a%:
  127. d% 256,ma% 1024,Q% 512,na% 512,oa% 256,pa% 512,qa% 256,ra% 512,sa% 20,a% 512,ta% 256,D% 640,ua% 1024,va% 512,wa% 512,xa% 256
  128. ya% 1024,za% 512,Aa% 256,Ba% 64,a$(499,8),Ca% 512,Da% 128,a%(499),Ea% 1024,Fa% 512,Ga% 200,Ha% 640,Ia% 256:
  129. Ja% 512,Ka% 128,K% 256:
  130. b$(499,9),b%(499,9,1),c$(30,1):c$()=
  131. 30," "):c$()="":
  132. $sa%=
  133. b("er2"):h%=1:o%=1:g%=0:v$="":La%=
  134. :Ma%=
  135. :Na%=
  136. :Oa%=0:Pa%=0:
  137. 499:a%(k%)=k%:
  138. &400C0,200,&4B534154,"Addresses"
  139. Qa%,Ra%:c%=
  140. k(-1,0,0,68,68,12298,"!addresses")
  141. "<Address$Dir>.Sprites":Sa%=
  142. #n%+1024:
  143. w% Sa%:!w%=Sa%-1:w%!4=0:w%!8=12:w%!12=16:
  144. &2E,256+10,w%,"<Address$Dir>.Sprites":
  145. &400EC,160000,-1
  146. D:i%=ta%:$i%="Addresses":i%!12=459271:i%!16=16*10:i%!20=44:i%!24=0:
  147. c(i%+28,2,-1,&7091031,"New file"):
  148. c(i%+52,0,Ta%,&7091031,"Info"):
  149. c(i%+76,0,J%,&7091031,"Save"):
  150. c(i%+100,128,-1,&7091031,"Quit"):i%=D%
  151. $i%="Addresses":i%!12=459271:i%!16=16*13:i%!20=44:i%!24=0:
  152. c(i%+28,0,-1,&7091031,"Control (F6)"):
  153. c(i%+52,0,-1,&7091031,"Search  (F4)"):
  154. c(i%+76,2,-1,&7091031,"Sort    (F5)"):
  155. c(i%+100,2,D%+300,&7091031,"Address")
  156. c(i%+124,2,D%+300,&7091031,"Correspond"):
  157. c(i%+148,0,Ta%,&7091031,"Info"):
  158. c(i%+172,0,D%+500,&7091031,"Save"):
  159. c(i%+196,128,-1,&7091031,"Quit"):i%=D%+300:$i%="Edit":i%!12=459271:i%!16=16*11:i%!20=44:i%!24=0
  160. c(i%+28,0,-1,&7091031,"Delete"):
  161. c(i%+52,2,-1,&7091031,"Insert"):
  162. c(i%+76,0,-1,&7091031,"Raise"):
  163. c(i%+100,128,-1,&7091031,"Lower"):
  164. &400D4,,D%
  165. &400E8,,i%
  166. &400D4,,-1:i%=D%+500
  167. $i%="Save :":i%!12=459271:i%!16=16*13:i%!20=44:i%!24=0:
  168. c(i%+28,0,J%,&7091031,"Whole file"):
  169. c(i%+52,128,z%,&7091031,"This record"):
  170. &400D4,,D%:
  171. &400E8,,i%
  172. &400D4,,-1:
  173. &400D9,,"<Address$Dir>.Templates":I%=
  174. e(wa%,xa%,255,"cont",w%):v%=
  175. e(Ha%,Ia%,255,"crsp",w%):Ta%=
  176. e(na%,oa%,255,"info",w%):j%=
  177. e(ma%,Q%,511,"main",w%):ia%=
  178. e(Ca%,Da%,127,"modd",w%)
  179. e(pa%,qa%,255,"save",-1):l%=
  180. e(ua%,va%,511,"sear",w%):z%=
  181. e(Ea%,Fa%,511,"sind",w%):L%=
  182. e(ya%,za%,511,"sort",w%):s%=
  183. e(Ja%,Ka%,127,"date",w%):M%=
  184. e(Aa%,Ba%,63,"foun",w%):
  185. &400DA
  186. G2$(oa%+99)=x$:$qa%="Addresses":$Fa%="Address":
  187. a(p%,c%):!a%=p%:a%!4=c%:
  188. &400CE,,a%:ca%=a%!24:=((ca%
  189. 2097152)=2097152)
  190. a(l%,16,""):
  191. ):f$=
  192. c(l%,1):r%=
  193. a(M%,0,f$):
  194. f$=""
  195. b("ser")):
  196. f$,"?")>0
  197. f$,"*")>0
  198. b("mxw")):
  199. Krv$=f$:Xa%=
  200. a(l%,3):Ya%=
  201. a(l%,9):Za%=
  202. a(l%,10):_a%=
  203. a(l%,11):`a%=
  204. a(l%,12):ab%=
  205. a(l%,13):bb%=
  206. a(l%,14):
  207. $a%=f$:A%=a%:
  208. cb%:f$=$a%
  209. Ndd$=f$:c$()="":
  210. 30:c$(k%,1)="1":
  211. d$,1)="?":d$=
  212. d$,2):
  213. d$)="?":d$=
  214. d$,"?")>0
  215. OLdb%=0:t%=0:eb%=0:
  216. d$,"?",t%)>0:t%=
  217. d$,"?",t%)+1:db%+=1:
  218. t%=eb%+1db%-=1
  219. Pveb%=t%:
  220. :t%=1:
  221. db%:c$(b%,0)=
  222. d$,t%,
  223. d$,"?",t%)-t%):t%=
  224. d$,"?",t%)+1:
  225. c$(b%,0)=""b%-=1:c$(b%,1)=
  226. c$(b%,1)+1)
  227. c$(b%,0),1)="?"b%-=1
  228. c$(b%,0),1)="?":c$(b%,1)=
  229. c$(b%-1,1)+1):c$(b%,0)=
  230. c$(b%,0),2):
  231. :c$(b%,0)=
  232. d$,t%):
  233. c$(b%,0),1)="?":c$(b%-1,1)=
  234. c$(b%-1,1)+1):c$(b%,0)=
  235. c$(b%,0),2):
  236. Xa%u%=0:G%=o%:
  237. :u%=(
  238. c(l%,5))-1:G%=(
  239. c(l%,7))-1
  240. s(u%,G%):
  241. f(e%,y%):r%=
  242. :e$=a$(a%(e%),y%):
  243. $a%=e$:A%=a%:
  244. cb%:e$=$a%
  245. W R%=
  246. :k$=e$:k%=0:
  247. d$,"?")>0
  248. e$,c$(1,0))-1:
  249. db%+1:
  250. e$,c$(b%,0),t%)<>t%+
  251. c$(b%-1,0)+
  252. (c$(b%-1,1))R%=
  253. e$,c$(b%,0)):
  254. ]    r%=R%
  255. f$,"*")>0
  256. d$,"*")-1):
  257. k$,l$)>0
  258. b-d$=
  259. f$,"*")+1):k$=
  260. k$,l$)+1):k%=1
  261. k$,l$,
  262. l$)<>l$
  263. d$,"*")=0
  264. :r%=R%
  265. f$,"?")=0
  266. f$,"*")=0
  267. e$,d$)>0
  268. f(M%):
  269. a(M%,1,"Found"):
  270. b(l%):h%=e%+1:
  271. s(u%,G%):
  272. e%=u%
  273. 8:r%=
  274. f(e%,y%):
  275. e%=u%
  276. f(e%,0)
  277. 5:r%=
  278. f(e%,y%):
  279. f(e%,6)
  280. 8:r%=
  281. f(e%,y%):
  282. a(l%,16,
  283. b("nfd")):
  284. a(M%,1,
  285. b("nfd")):
  286. f(l%)
  287. I:P%=d%!24:E%=!d%:c%=d%!4:O%=
  288. c%<14
  289. 387:V%=c%:
  290. &400CF,,a%:
  291. &400D4,,J%,!a%,a%!4:O%=
  292. 388:V%=c%:
  293. t:S%=
  294. 389:V%=c%:
  295. f(L%):S%=
  296. 390:V%=c%:
  297. f(I%):S%=
  298. 391:S%=
  299. &400D2,-1
  300. 398,13:c%+=1:O%=
  301. 399:c%-=1:O%=
  302. 403:V%=c%:
  303. &400CF,,a%:
  304. &400D4,,z%,!a%,a%!4:O%=
  305. c%=4c%=13
  306. c%=14c%=5
  307. l(j%,c%,
  308. c(j%,c%))
  309. 13:b%=a%(h%-1):a$=
  310. b$(b%,g%),8):
  311. a$<8:a$+=" ":
  312. :b$(b%,g%)=a$+
  313. c(j%,22):
  314. P%=13
  315. c%=9O%=
  316. c(I%,9)):
  317. P%=13O%=
  318. P%=13
  319. c%=1O%=
  320. P%=13
  321. P%=27
  322. &400D4,,-1:
  323. b(l%):
  324. l(j%,V%,
  325. c(j%,V%)):
  326. b(L%):
  327. b(M%)
  328. &400DC,P%
  329. &400D4,,-1:
  330. !fb%=d%!20:gb%=d%!24:
  331. k%>=gb%
  332. hb%=gb%:Z%=18
  333. :hb%=k%:Z%=17:Na%=
  334. &400F1,Ra%,ib%,jb%,fb%,hb%:ib%+=hb%:k%-=hb%:d%!12=d%!8:d%!16=7:d%!20=fb%:d%!24=hb%:
  335. &400E7,Z%,d%,jb%:
  336. O:ib%=Ga%:
  337. z%:k%=0:
  338. a(z%,4)
  339. ?a$=a$(a%(h%-1),0):n$=
  340. a$," ")-1):$(ib%+k%)=n$:k%+=
  341. a(z%,5)
  342. ?a$=a$(a%(h%-1),0):o$=
  343. a$," ")+1):$(ib%+k%)=o$:k%+=
  344. 8:a$=a$(a%(h%-1),m%):
  345. a(z%,m%+5)
  346. $(ib%+k%)=a$:k%+=
  347. :jb%=d%!4:
  348. c(z%,0)
  349. c$,".",0)=0
  350. b("sav")):
  351. (c$):
  352. a(z%,4)
  353. a(z%,5)
  354. #n%,a$(a%(h%-1),0)
  355. a(z%,4)
  356. 0a$=a$(a%(h%-1),0):n$=
  357. a$," ")-1):
  358. #n%,n$
  359. a(z%,5)
  360. 0a$=a$(a%(h%-1),0):o$=
  361. a$," ")+1):
  362. #n%,o$
  363. a(z%,m%+5)
  364. #n%,a$(a%(h%-1),m%)
  365. &5,"SetType "+c$+" FFF":
  366. &400D4,,-1
  367. a(z%,0,c$):
  368. c(J%,0)
  369. c$,".",0)=0
  370. b("sav")):
  371. (c$):e%=0:
  372. :b%=a%(e%):
  373. a$(b%,0)<>""
  374. 8:a$=a$(b%,m%):
  375. a$<>""
  376. m%+a$
  377. 9:a$=b$(b%,m%):
  378. a$<>""
  379. (m%+20)+
  380. (b%(b%,m%,0)*-1)+
  381. (b%(b%,m%,1)*-1)+a$:
  382. #n%,a$
  383. :e%+=1:
  384. &5,"SetType "+c$+" 0E4":Ma%=
  385. &400D4,,-1
  386. a(J%,0,c$):
  387. v:c$=
  388. h:b%=a%(h%-1):a$=
  389. b$(b%,g%),8):
  390. a$<8:a$+=" ":
  391. :b$(b%,g%)=a$+c$:b%(b%,g%,0)=
  392. l(j%,22,
  393. R:lb%=d%!40:
  394. &400CF,,a%:E%=a%!12:c%=a%!16:
  395. E%=j%
  396. c%=22
  397. lb%<>228
  398. v:_%=
  399. p(c$)
  400. f(ia%):
  401. &400C7,,d%
  402. 0,4,5
  403. 6:c%=d%!16:
  404. b(ia%):
  405. 17,18:
  406. d%!16
  407. 0:U%=
  408. 1282:
  409. b(ia%):=
  410. b(ia%):=
  411. p(c$):n%=
  412. (c$):a$()="":b$()="":b%()=0:g%=0:o%=0:a$=
  413. #n%:a$=
  414. a$-1):
  415. :o%+=1:a$(o%-1,0)=a$:
  416. #n%:a$=
  417. #n%:m%=
  418. a$,1)):a$=
  419. a$-1):
  420. m%<10
  421. a$(o%-1,m%)=a$
  422. a$,1,1):b%(o%-1,m%-20,0)=(u$="1"):u$=
  423. a$,2,1):b%(o%-1,m%-20,1)=(u$="1"):a$=
  424. a$-2):b$(o%-1,m%-20)=a$
  425. 499:a%(k%)=k%:
  426. k(-1):$qa%=c$:h%=1:q%=
  427. a(l%,5,"1"):
  428. a(l%,7,
  429. a(l%,1,""):
  430. a(l%,16,""):
  431. f(l%):
  432. l(l%,1,0):
  433. f(I%)
  434. f(L%)
  435. 7:U%=
  436. 3:U%=
  437. p$="b"i%=ta%
  438. i%=D%
  439. &400D4,,i%,mb%-64,nb%
  440. W:b%=a%(h%-1):
  441. k%=g%
  442. 8:b$(b%,k%)=b$(b%,k%+1):
  443. ob%=0
  444. 1:b%(b%,k%,ob%)=b%(b%,k%+1,ob%):
  445. 3b$(b%,9)="":b%(b%,9,0)=0:b%(b%,9,1)=0:q%=
  446. X:b%=a%(h%-1):
  447. -1:b$(b%,k%)=b$(b%,k%-1):
  448. ob%=0
  449. 1:b%(b%,k%,ob%)=b%(b%,k%-1,ob%):
  450. ,:b$(b%,g%)="":b%(b%,g%,0)=0:b%(b%,g%,1)=0:q%=
  451. b("crc")):
  452. Yb%=a%(h%-1):
  453. b$(b%,g%),b$(b%,g%+1):
  454. b%(b%,g%,k%),b%(b%,g%+1,k%):
  455. b("clc")):
  456. Yb%=a%(h%-1):
  457. b$(b%,g%),b$(b%,g%-1):
  458. b%(b%,g%,k%),b%(b%,g%-1,k%):
  459. "Wimp_GetPointerInfo",,d%:=((d%!8
  460. 1)=1)
  461. o:_%=
  462. 499:a%(k%)=k%:
  463. :g%=0:h%=1:o%=1:$qa%="Addresses":b$()="":b%()=0:a$()="":q%=
  464. o%=1F%=
  465. b("lre")):
  466. e%=h%
  467. 8:a$(a%(e%-1),y%)=a$(a%(e%),y%):
  468. 8:a$(a%(o%),y%)="":
  469. h%=o%h%-=1
  470. o%-=1:q%=
  471. o%+=1:
  472. e%=o%
  473. 8:a$(a%(e%),y%)=a$(a%(e%-1),y%):
  474. 8:a$(a%(h%-1),y%)="":
  475. :o%+=1:q%=
  476. G:x%=!d%:y%=d%!4:pb%=d%!8:E%=d%!12:c%=d%!16:
  477. k(-1)
  478. a(l%,1,v$)
  479. 9,10,11,12,13:
  480. _(l%,9,13,c%):
  481. a(l%,10)
  482. a(l%,11)
  483. a(l%,12)
  484. a(l%,13))
  485. a(l%,9)
  486. j(l%,9,
  487. 0:h%=1
  488. 1:h%-=1:
  489. h%=0h%=1
  490. h%+=1:
  491. h%>o%
  492. o%=h%
  493. 3:h%=o%
  494. j%:b%=a%(h%-1):
  495. 16:b%(b%,g%,0)=
  496. a(j%,16):
  497. e(j%,21,b%(b%,g%,0)
  498. 17:b%(b%,g%,1)=
  499. e(j%,18,
  500. e(j%,20,
  501. a(s%