home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / utilities / utilss / swiftjpeg / !SwiftJPEG / !RunImage (.txt) < prev    next >
Encoding:
RISC OS BBC BASIC V Source  |  1995-11-27  |  14.1 KB  |  775 lines

  1.  > !RunImage for !SwiftJPEG
  2.  A fast JPEG viewer using Acorn's
  3.  SpriteExtend module from RISC OS
  4.  v3.6 or later (module version
  5.  0.99 or later).
  6.  The uncrunched source BASIC code
  7.  is in <SwiftJPEG$Dir>.Resources
  8.  under the name 'Source'.
  9.  Editing this crunched code in a
  10.  Desktop text editor and resaving
  11.  it will NOT PRODUCE A USABLE
  12.  OUTPUT due to the crunching
  13.  methods employed. If you want
  14.  to play around with the code,
  15.  alter the source only!
  16.  (C) Hipposoft 1995
  17. 263874:
  18. $+" (at line "+
  19. )+")":
  20. D_%=0:E_%=-1:
  21. b% 256:!b%=3:b%!4=5:b%!8=&400C1:b%!12=0:
  22. 262336,350,&4B534154,"SwiftJPEG",b%
  23. F_%,G_%:
  24. F_%<350
  25. 490,"SwiftJPEG requires RISC OS 3.50 or later to run"
  26. 263875,50:H_$="0.07 (27 Nov 95)":
  27. 263873:
  28. K_(a$):
  29. a$<>""
  30. (!b%=-1:b%!40=
  31. L_(a$):$(b%+44)=a$:
  32. 393437,G_%,&4B534154:
  33. "Memory free           : ";
  34. "Could decrease slot by: ";(((
  35. 4096)*4);"K":
  36. "That would leave free : ";(
  37. )-(((
  38. 4096)*4096);" bytes":
  39. 262369,1,b%,a%+10000
  40. (E_%<>-1)
  41. (Q_%=1)
  42. B_:R_%=
  43. S_%=0
  44. a!T_%=U_%:
  45. 262348,,T_%:T_%!4=0:T_%!8=0:T_%!12=&7FFFFFF:T_%!16=&7FFFFFF:
  46. 262341,,T_%:
  47. V_(U_%)
  48. :Q_%=3:!b%=U_%
  49. 262341,,b%
  50. 6,121
  51. (a%<>0)
  52. 262342,,b%:
  53. X_(Y_%,a%):
  54. Z_(a_%,2):
  55. Z_(a_%,3)
  56. a%,c%,d%:
  57. )Dc%=
  58. :a$=b_$:
  59. a$,a%,1)="."
  60. a$,a%-1):a%=0:c%=
  61. a$<>""
  62. 131077,"Filer_OpenDir "+a$
  63. c_%:d_%=12:e_%=0:
  64. f_(c_%,d_%,
  65. f_(c_%,d_%,
  66. 262342,,b%
  67. 17,18,19:
  68. h_:l_%=b%!12:d_%=b%!16:e_%=(b%!8)
  69. 1:m_%=(b%!8)
  70. 2:n_%=(b%!8)
  71. o_(U_%)
  72. e_%<>0
  73. a%:a%=
  74. :l_%=!b%:d_%=b%!4:
  75. b%!24
  76. &00D:a%=
  77. t_(!(u_%+108+32*d_%),33))>20
  78. $(!(u_%+108+32*d_%))="20":
  79. v_(r_%,d_%)
  80. t_(!(u_%+108+32*d_%),33))<1
  81. $(!(u_%+108+32*d_%))="1":
  82. v_(r_%,d_%)
  83. d_%=2
  84. D?d_%=4:
  85. 262354,r_%,4,b%!8,b%!12,b%!16,
  86. t_(!(u_%+236),33))
  87. :d_%=2:
  88. 262356,-1
  89. d_%=4
  90. 262355,,T_%:
  91. x_(y_%,z_%,__%):
  92. 262354,!T_%,T_%!4,T_%!8,T_%!12,T_%!16,T_%!20
  93. 262364,b%!24
  94. b%!16
  95. 0:O_%=
  96. &400C1:
  97. o_(U_%)
  98. X_(a%,
  99. c%,d%:
  100. 262380,-1,-1
  101. c%,,d%:
  102. 262380,a%,-1:
  103. 262380,-1,-1
  104. 262344,,b%
  105. 301442,A`%,b%!4-b%!20,b%!16-B`%-b%!24,C`%,D`%,E`%:
  106. 262346,,b%
  107. v_(a%,c%):!T_%=a%:T_%!4=c%:
  108. 262350,,T_%:
  109. 262353,!T_%,T_%!8,T_%!12,T_%!16,T_%!20:
  110. F`(a%):
  111. o_(a%)
  112. WE!s%=a%:
  113. 262347,,s%:c%=s%!16:!s%=a%:
  114. 262368,,s%:
  115. s%!8<c%
  116. s%!8=c%
  117. 262353,-1,s%!4,s%!8,s%!12,s%!16
  118. I_:O_%=
  119. :E_%=-1:R_%=
  120. :G`%=1280:
  121. H`% 32:
  122. s% 1024,T_% 1024:
  123. i% G`%,m% 512,I`% 1024:
  124. J`% 768,K`% 256,u_% 768,L`% 512,M`% 1280:
  125. N`% 128,C`% 16:
  126. P`:Q`%=0:R`%=0:S`%=0:T`%=0:U`%=0:V`%=0:
  127. W`%<>0
  128. X`(Q`%,R`%,S`%):
  129. Y`(T`%,U`%,V`%)
  130. 262380,-1,-1
  131. Z`:a`%=1:b`%=1:$(!(u_%+172))="1":$(!(u_%+236))="1":
  132. d`(a_%,0,e`%):
  133. d`(a_%,1,r_%):
  134. d`(a_%,2,f`%):
  135. Z_(a_%,2):
  136. Z_(a_%,3):
  137. f_(c_%,2+g`%,
  138. h`%>0
  139. f_(c_%,6+h`%,
  140. i`%<>0
  141. f_(c_%,16,
  142. W`%<>0
  143. f_(c_%,17,
  144. S_%<>0
  145. f_(c_%,18,
  146. a%,c%,a$:
  147. 131107,"SwiftJPEG$Dir",T_%,256
  148. ,,a%:
  149. 490,"System variable 'SwiftJPEG$Dir' not defined; ensure you double-click on !SwiftJPEG to run it, and not one of its component files"
  150. bZj`$=
  151. t_(T_%,32),a%)+".!Choices":D_%=
  152. (j`$):
  153. D_%=0
  154. 490,"Can't find the !Choices file"
  155. k`("Dithering","012",g`%):E`%=g`%-(g`%=2):
  156. k`("Full Screen","0123",h`%):
  157. k`("Auto Full Screen","01",i`%):
  158. k`("Modes On Startup","01",W`%):
  159. k`("Close Display","01",S_%):
  160. #D_%:D_%=0:
  161. D_%<>0
  162. E_%<>-1
  163. 262371,E_%:E_%=-1
  164. k`(b$,a$,
  165. c%,c$:c%=
  166. #D_%)=
  167. l`(b$)
  168. #D_%):
  169. 490,"Can't find '"+b$+"' entry in !Choices file"
  170. kVc$=
  171. #D_%:
  172. a$,c$)=0)
  173. (c$)<>1)
  174. 490,b$+" option not understood in !Choices file"
  175. (c$):
  176. m`(a$,a%):
  177. c%,b$:c%=
  178. #D_%):
  179. l`(a$)
  180. #D_%):
  181. 490,"Can't find 'Dithering' entry in !Choices file"
  182. #D_%,a%+48:
  183. a%,a$:
  184. 53,-1,4
  185. ,,n`%:
  186. 53,-1,5
  187. ,,o`%:a$="<SwiftJPEG$Dir>.":
  188. n`%>1
  189. o`%>1
  190. a$+="Sprites"
  191. a$+="Sprites22"
  192. q9a%=
  193. L_(a$):
  194. (1<<30)+2,"Can't find Sprites file"
  195. a%<>&FF9
  196. (1<<30)+2,"Sprites file doesn't have Sprite filetype &FF9"
  197. s>a%=
  198. p`(a$):
  199. a%=-1
  200. (1<<30)+2,"Can't find the Sprites file"
  201. q`% a%+1024:!q`%=0:q`%!4=16:
  202. 46,265,q`%:
  203. 46,266,q`%,a$:
  204. J_:$(H`%)="iconbar":!b%=-1:b%!4=0:b%!8=0:b%!12=68:b%!16=68:b%!20=&3102:b%!24=H`%:b%!28=q`%:b%!32=11:
  205. 262338,,b%
  206. a%:a$=
  207. t_(a%,32):a%=
  208. a$,""""):
  209. a%<>0
  210. a$,a%+1)
  211. w+a%=
  212. a$,""" "):
  213. a%<>0
  214. a$,a%+2)
  215. a$=""
  216. o_(a%):
  217. a%=-1
  218. z9!T_%=a%:
  219. 262347,,T_%:
  220. ((T_%!32)
  221. &10000)<>0
  222. s`(a%,a$,
  223. 262363,,a%,i%,t`%+G`%,-1,a$,0
  224. ,,i%:a%!64=q`%:
  225. 262337,,a%
  226. 262361,,"<SwiftJPEG$Dir>.Templates":t`%=i%:
  227. s`(J`%,"Info",e`%):$(!(J`%+332))=H_$:
  228. s`(K`%,"Display",U_%):
  229. s`(u_%,"Zoom",r_%):
  230. s`(L`%,"JPEG info",f`%):
  231. s`(M`%,"Choices",c_%):
  232. 262362:
  233. V_(f%):
  234. a%,c%,d%,e%:
  235. u`(a%,c%):!T_%=f%:
  236. 262347,,T_%:d%=T_%!12-T_%!4:e%=T_%!16-T_%!8:v`%=(a%-d%)/2:w`%=(c%-e%)/2+68:
  237. (T_%!32)
  238. &4000000
  239. w`%-=20
  240. (T_%!32)
  241. &40000000
  242. w`%+=20
  243. (T_%!32)
  244. &10000000
  245. v`%-=20
  246. MT_%!4=v`%:T_%!8=w`%:T_%!12=v`%+d%:T_%!16=w`%+e%:T_%!28=-1:
  247. 262341,,T_%:
  248. x`(a%,a$):
  249. c$:!T_%=a%:
  250. 262348,,T_%:
  251. (a$)>48
  252. c$="..."+
  253. a$,45)
  254. c$=a$
  255. c$,4)="...."
  256. c$,2)
  257. $(T_%!76)=c$+
  258. F`(a%):
  259. a%,c%:a%=a`%:c%=b`%:
  260. 0:d_%=1
  261. 1:d_%=0
  262. 5:d_%=6
  263. 6:d_%=5
  264. 0:a`%=
  265. t_(!(u_%+172),33))+1:
  266. a`%>20
  267. a`%=20
  268. t_(!(u_%+172),33)<>
  269. (a`%)
  270. $(!(u_%+172))=
  271. (a`%):
  272. v_(r_%,2)
  273. 1:a`%=
  274. t_(!(u_%+172),33))-1:
  275. a`%<1
  276. a`%=1
  277. t_(!(u_%+172),33)<>
  278. (a`%)
  279. $(!(u_%+172))=
  280. (a`%):
  281. v_(r_%,2)
  282. 5:b`%=
  283. t_(!(u_%+236),33))+1:
  284. b`%>20
  285. b`%=20
  286. t_(!(u_%+236),33)<>
  287. (b`%)
  288. $(!(u_%+236))=
  289. (b`%):
  290. v_(r_%,4)
  291. 6:b`%=
  292. t_(!(u_%+236),33))-1:
  293. b`%<1
  294. b`%=1
  295. t_(!(u_%+236),33)<>
  296. (b`%)
  297. $(!(u_%+236))=
  298. (b`%):
  299. v_(r_%,4)
  300. a%<>a`%
  301. c%<>b`%
  302. o_(U_%)
  303. `_:!T_%=U_%:
  304. 262342,,T_%:
  305. 262347,,T_%:
  306. 262341,,T_%:
  307. x_(y_%,z_%,__%)
  308. a%,c%:a%=a`%:c%=b`%:a`%=
  309. t_(!(u_%+172),33)):b`%=
  310. t_(!(u_%+236),33)):
  311. a`%<1
  312. a`%=1
  313. a`%>20
  314. a`%=20
  315. b`%<1
  316. b`%=1
  317. b`%>20
  318. b`%=20
  319. a`%<>a%
  320. $(!(u_%+172))=
  321. (a`%):
  322. v_(r_%,2)
  323. b`%<>c%
  324. $(!(u_%+236))=
  325. (b`%):
  326. v_(r_%,4)
  327. a%<>a`%
  328. c%<>b`%
  329. o_(U_%)
  330. `_:!T_%=U_%:
  331. 262342,,T_%:
  332. 262347,,T_%:
  333. 262341,,T_%
  334. a%,c%,a$:
  335. 2,3,4:
  336. y`(c_%,d_%)=
  337. y`(c_%,2)
  338. f_(c_%,2,
  339. y`(c_%,3)
  340. f_(c_%,3,
  341. y`(c_%,4)
  342. f_(c_%,4,
  343. f_(c_%,d_%,
  344. 7,8,9:
  345. y`(c_%,d_%)=
  346. y`(c_%,7)
  347. f_(c_%,7,
  348. y`(c_%,8)
  349. f_(c_%,8,
  350. y`(c_%,9)
  351. f_(c_%,9,
  352. f_(c_%,d_%,
  353. f_(c_%,d_%,
  354. 10:D_%=
  355. (j`$):
  356. D_%=0
  357. 490,"Can't find the !Choices file"
  358. y`(c_%,2)
  359. y`(c_%,3)
  360. y`(c_%,4)
  361. m`("Dithering",a%):a%=0:
  362. y`(c_%,7)
  363. y`(c_%,8)
  364. y`(c_%,9)
  365. m`("Full Screen",a%):
  366. y`(c_%,16)
  367. m`("Auto Full Screen",a%):
  368. y`(c_%,17)
  369. m`("Modes On Startup",a%):
  370. y`(c_%,18)
  371. m`("Close Display",a%):
  372. #D_%:D_%=0
  373. y`(c_%,4)=
  374. y`(c_%,2)
  375. f_(c_%,2,
  376. y`(c_%,3)
  377. f_(c_%,3,
  378. y`(c_%,4)
  379. f_(c_%,4,
  380. f_(c_%,4,
  381. y`(c_%,7)=
  382. y`(c_%,7)
  383. f_(c_%,7,
  384. y`(c_%,8)
  385. f_(c_%,8,
  386. y`(c_%,9)
  387. f_(c_%,9,
  388. f_(c_%,7,
  389. y`(c_%,16)
  390. f_(c_%,16,
  391. y`(c_%,17)
  392. f_(c_%,17,
  393. y`(c_%,18)
  394. f_(c_%,18,
  395. y`(c_%,g`%+2)=
  396. y`(c_%,2)
  397. f_(c_%,2,
  398. y`(c_%,3)
  399. f_(c_%,3,
  400. y`(c_%,4)
  401. f_(c_%,4,
  402. f_(c_%,g`%+2,
  403. h`%>0
  404. y`(c_%,h`%+6)=
  405. y`(c_%,7)
  406. f_(c_%,7,
  407. y`(c_%,8)
  408. f_(c_%,8,
  409. y`(c_%,9)
  410. f_(c_%,9,
  411. f_(c_%,h`%+6,
  412. y`(c_%,7)
  413. f_(c_%,7,
  414. y`(c_%,8)
  415. f_(c_%,8,
  416. y`(c_%,9)
  417. f_(c_%,9,
  418. i`%=0
  419. y`(c_%,16)
  420. f_(c_%,16,
  421. i`%=1
  422. y`(c_%,16)=
  423. f_(c_%,16,
  424. W`%=0
  425. y`(c_%,17)
  426. f_(c_%,17,
  427. W`%=1
  428. y`(c_%,17)=
  429. f_(c_%,17,
  430. S_%=0
  431. y`(c_%,18)
  432. f_(c_%,18,
  433. S_%=1
  434. y`(c_%,18)=
  435. f_(c_%,18,
  436. e_%=0
  437. z`:!T_%=c_%:
  438. 262342,,T_%
  439. 13:a%=g`%:
  440. y`(c_%,2)
  441. g`%=0
  442. y`(c_%,3)
  443. g`%=1
  444. y`(c_%,4)
  445. g`%=2
  446. +E`%=g`%-(g`%=2):h`%=0:
  447. y`(c_%,7)
  448. h`%=1
  449. y`(c_%,8)
  450. h`%=2
  451. y`(c_%,9)
  452. h`%=3
  453. y`(c_%,16)
  454. i`%=1
  455. i`%=0
  456. y`(c_%,17)
  457. W`%=1
  458. W`%=0
  459. y`(c_%,18)
  460. S_%=1
  461. S_%=0
  462. z`:!T_%=c_%:
  463. 262342,,T_%:
  464. o_(U_%)
  465. (a%<>g`%)
  466. 6!T_%=U_%:
  467. 262347,,T_%:
  468. 262342,,T_%:
  469. 262341,,T_%
  470. f_(a%,c%,d%):
  471. y`(a%,c%)<>d%
  472. 9!s%=a%:s%!4=c%:
  473. 262350,,s%:
  474. s%!8=0
  475. s%!8=&200000
  476. -!s%=a%:s%!4=c%:s%!12=&200000:
  477. 262349,,s%
  478. c`:_`%=s%:$s%="SwiftJPEG":$(s%+10)="Info":$(s%+15)="Zoom":$(s%+20)="Picture":$(s%+28)="Full screen...":$(s%+43)="Choices...
  479. D":$(s%+56)="Quit":$(s%+61)="*"+
  480. (0)+"*":a_%=
  481. ``(m%,I`%):
  482. q_(a%):
  483. x_(a_%,!b%-116,140+5*44+24)
  484. x_(a_%,!b%-116,b%!4+22)
  485. d`(a%,c%,d%):!(a%+28+c%*24+4)=d%:
  486. x_(a%,x%,y%):y_%=a%:z_%=x%:__%=y%:
  487. 262356,,a%,x%,y%:
  488. Aa(a%,c%,d%):
  489. a%!(28+c%*24)=a%!(28+c%*24)
  490. a%!(28+c%*24)=a%!(28+c%*24)
  491. &FFFFFFFE
  492. Z_(a%,c%):a%!(28+c%*24+8)=(a%!(28+c%*24+8))
  493. (1<<22):
  494. Ba(a%,c%):a%!(28+c%*24+8)=(a%!(28+c%*24+8))
  495. (1<<22)):
  496. a%,c%,d%,a$:
  497. 262351,,s%:e_%=(s%!8
  498. 262357,,y_%,b%,s%:
  499. "Info":
  500. 262351,,T_%:
  501. 262356,,e`%,!T_%-22,T_%!4-22
  502. "Zoom":
  503. 262351,,T_%:
  504. x_(r_%,!T_%-30,T_%!4+36)
  505. "Picture":
  506. 262351,,T_%:
  507. 262356,,f`%,!T_%-20,T_%!4-20
  508. "Choices...":
  509. V_(c_%)
  510. "Full screen...":
  511. "Quit":O_%=
  512. x_(y_%,z_%,__%)
  513. a%,c%,x%,y%,Ca%,Da%:
  514. :Ca%=Ea%*a`%/b`%:Da%=Fa%*a`%/b`%:
  515. E_%=-1
  516. E_%=-1
  517. E_%>127
  518. 4:N`%!a%=E_%!a%:
  519. :E_%=N`%
  520. 263875,5
  521. 53,-1,11
  522. ,,x%:
  523. 53,-1,12
  524. ,,y%:x%+=1:y%+=1
  525. Ga(Ca%,Da%,x%,y%,a%)
  526. Q`%=0
  527. X`(Q`%,R`%,S`%)
  528. x%=Q`%:y%=R`%:a%=S`%
  529. T`%=0
  530. Y`(T`%,U`%,V`%)
  531. x%=T`%:y%=U`%:a%=V`%
  532. 262374,7:
  533. 0,0,32767:
  534. 263873
  535. h`%<>0
  536. B!T_%=1:T_%!4=x%:T_%!8=y%:T_%!12=a%:T_%!16=-1:T_%!20=-1:
  537. T_%!4<>!(
  538. T_%!8<>!(
  539. T_%!12<>!(
  540. 262372:
  541. 262372:
  542. 262374,7:
  543. 0,0,32767:x%=x%-Ca%:y%=y%-Da%:!T_%=a`%:T_%!4=a`%:T_%!8=b`%:T_%!12=b`%:
  544. 432514,A`%,x%,y%,T_%,D`%,E`%:
  545. 6,121
  546. a%=255:
  547. 6,121
  548. a%<>255:
  549. (a%=112)
  550. (i`%<>0)
  551. 0,0,32767:
  552. 263875,15:
  553. d%,d%,a%:
  554. a%=0:
  555. 131077,"FX 15":
  556. 263873:!T_%=U_%:
  557. 262347,,T_%:
  558. 262342,,T_%:
  559. 262341,,T_%:
  560. a%,d%,e%:
  561. 101,2
  562. ,,d%:x%=0:y%=0:c%=1:e%=0:
  563. (-d%)-1:
  564. 101,2,,e%,,,,b%,64:
  565. (b%!8>b%!12)
  566. ((b%!12)*2>b%!8)
  567. (b%!8
  568. (b%!12
  569. (b%!8>=x%)
  570. (b%!12>=y%)
  571. x%=b%!8:y%=b%!12:c%=b%!16
  572. a%,d%:
  573. 101,2
  574. ,,d%:x%=0:y%=0:c%=0:e%=0:
  575. (-d%)-1:
  576. 101,2,,e%,,,,b%,64:
  577. (b%!8>b%!12)
  578. ((b%!12)*2>b%!8)
  579. (b%!8
  580. (b%!12
  581. (b%!16>=c%)
  582. (b%!8>=x%)
  583. (b%!12>=y%)
  584. x%=b%!8:y%=b%!12:c%=b%!16
  585. Ga(Ca%,Da%,
  586. a%,d%,e%,Ha%,Ia%:
  587. 101,2
  588. ,,d%:Ha%=0:Ia%=0:x%=1E9:y%=1E9:c%=1:e%=0:
  589. (-d%)-1:
  590. 101,2,,e%,,,,b%,64:
  591. (b%!8>b%!12)
  592. ((b%!12)*2>b%!8)
  593. (b%!8
  594. (b%!12
  595. (b%!8>=Ca%)
  596. (b%!12>=Da%)
  597. ((b%!8-Ca%)<=x%)
  598. ((b%!12-Da%)<=y%)
  599. Ha%=b%!8:Ia%=b%!12:x%=Ha%-Ca%:y%=Ia%-Da%:c%=b%!16
  600. Ha%=0
  601. X`(Ha%,Ia%,c%)
  602. x%=Ha%:y%=Ia%:
  603. a%,c%:
  604. 53,-1,11
  605. ,,d%:
  606. 53,-1,12
  607. ,,e%:d%+=1:e%+=1:
  608. 53,-1,4
  609. ,,a%:
  610. 53,-1,5
  611. ,,c%:d%=d%<<a%:e%=e%<<c%:
  612. a%,b$:b$="":
  613. :a%=?_`%:
  614. a%>31
  615. _`%+=1:
  616. a%<32:a$=b$:
  617. a%,c%,d%:
  618. 263872:
  619. a%,c%,d%:
  620. d%=0:
  621. 263873:
  622. Ka(a%):
  623. a%>0:
  624. :a%-=1:
  625. La(c%,d%,f%):
  626. a%,b$:b$="":
  627. a%=c%
  628. c%+d%-1:
  629. ?a%>=f%
  630. b$=b$+
  631. (?a%)
  632. t_(c%,d%):
  633. a%,b$:b$="":a%=c%:
  634. ?a%>=d%
  635. b$=b$+
  636. (?a%):a%+=1
  637. ?a%<d%
  638. b$=255:=b$
  639. l`(a$):
  640. a%,b$:b$="":
  641. (a$):
  642. a$,a%,1)>="a"
  643. a$,a%,1)<="z"
  644. a$,a%,1))-32)
  645. a$,a%,1)
  646. y`(a%,c%):!T_%=a%:T_%!4=c%:
  647. 262350,,T_%:=((T_%!24)
  648. (1<<21))<>0
  649. ``(Ma%,Na%):
  650. a%,c%,d%,e%,a$,b$,c$:
  651. Ma%=m%
  652. Na%=I`%
  653. 9sa%=Ma%:
  654. Ja(a$):$(a%)=a$:a%?12=7:a%?13=2:a%?14=7:a%?15=0:a%!20=44:a%!24=0:d%=
  655. (a$)-3:Ma%+=28:
  656. Ja(c$):
  657. c$<>"*"
  658. :2Ma%!8=&07000021:!Ma%=0:c%=
  659. :Oa%=
  660. ;+b$=
  661. (c$)-Oa%):
  662. b$,"T")
  663. !Ma%=!Ma%
  664. b$,"D")
  665. !Ma%=!Ma%
  666. b$,"W")
  667. >8!Ma%=!Ma%
  668. 4:c%=
  669. Ja(a$):Pa%=
  670. (a$):
  671. Ja(a$):Qa%=
  672. b$,"M")
  673. !Ma%=!Ma%
  674. c$,Oa%-1)
  675. c$>d%
  676. Ma%!4=-1:
  677. C;Ma%!8=&0700F121:Ma%!12=Pa%:Ma%!16=-1:Ma%!20=Qa%:$Pa%=c$
  678. c$<12
  679. E Ma%!8=&07000021:$(Ma%+12)=c$
  680. :Ma%!8=&07000121:Ma%!12=Na%:Ma%!16=-1:Ma%!20=
  681. c$+1:$Na%=c$:Na%+=
  682. :Ma%+=24
  683. c$="*":a%!16=d%*16+32:!(Ma%-24)=!(Ma%-24)
  684. m%=Ma%:I`%=Na%
  685. Ra(a%,c%):
  686. a%!(28+c%*24)=a%!(28+c%*24)
  687. &FFFFFFFE
  688. L_(a$):
  689. a%,c%,d%:
  690. 8,17,a$
  691. c%,,a%:
  692. c%<>1
  693. d%=-2
  694. (a%>>>20)=&FFF
  695. d%=(a%>>>8)
  696. d%=-1
  697. p`(a$):
  698. L_(a$)<>-2
  699. 8,5,a$
  700. ,,,,a%
  701. a%=-1
  702. a%,c%:
  703. b%!40=&C85
  704. T,b_$=
  705. t_(b%+44,33):D`%=
  706. p`(b_$):
  707. !b%<>-1
  708. U9a%=b%!4:b%!4=G_%:b%!12=b%!8:b%!16=4:
  709. 262375,17,b%,a%
  710. :Sa%=256:
  711. X_(Y_%+D`%+Sa%,a%):
  712. a%>=Y_%+D`%+Sa%
  713. 263872:A`%=
  714. "Load "+b_$+" "+
  715. ~A`%:
  716. x`(U_%,b_$):
  717. 263873:
  718. t_(b%+44,33)="<Wimp$Scrap>"
  719. 131080,6,"<Wimp$Scrap>"
  720. o_(U_%)
  721. Y<!T_%=U_%:
  722. 262342,,T_%:
  723. `_:!T_%=U_%:
  724. 262348,,T_%:
  725. Z3T_%!4=0:T_%!8=0:T_%!12=&7FFFFFF:T_%!16=&7FFFFFF
  726. 262341,,T_%:
  727. V_(U_%)
  728. i`%<>0
  729. b%!40=&C85
  730. a9a%=b%!4:b%!4=G_%:b%!12=b%!8:b%!16=4:
  731. 262375,17,b%,a%
  732. 53,-1,4
  733. ,,n`%:
  734. 53,-1,5
  735. ,,o`%:
  736. n`%>0
  737. !C`%=1:C`%!8=n`%
  738. :!C`%=2:C`%!8=1
  739. o`%>0
  740. C`%!4=1:C`%!12=o`%
  741. :C`%!4=2:C`%!12=1
  742. :!C`%=(!C`%)*a`%:C`%!4=(C`%!4)*a`%:C`%!8=(C`%!8)*b`%:C`%!12=(C`%!12)*b`%:
  743. 432512,,A`%,D`%
  744. ,,Ea%,Fa%,Ua%,Va%,Wa%:!T_%=0:T_%!4=((-Fa%*2)*a`%)/b`%:T_%!8=((Ea%*2)*a`%)/b`%:T_%!12=0:
  745. ((T_%!4)
  746. 2)<>0
  747. T_%!4=(((T_%!4)
  748. 2)-1)*2
  749. ((T_%!8)
  750. 2)<>0
  751. T_%!8=(((T_%!8)
  752. 2)+1)*2
  753. 262359,U_%,T_%:B`%=-T_%!4:
  754. (b_$)>27
  755. a$="..."+
  756. b_$,24)
  757. a$=b_$
  758. a$,4)="...."
  759. a$,2)
  760. o4$(!(L`%+108))=a$:a$=
  761. (D`%):
  762. (a$)>7
  763. a$=">9.5Mb!"
  764. p3$(!(L`%+236))=a$:a$=
  765. (Ea%):
  766. (a$)>6
  767. a$="V.Wide"
  768. q3$(!(L`%+268))=a$:a$=
  769. (Fa%):
  770. (a$)>6
  771. a$="V.Tall"
  772. r,$(!(L`%+300))=a$:
  773. Ba(a_%,2):
  774. Ba(a_%,3):
  775.