home *** CD-ROM | disk | FTP | other *** search
/ Acorn User 13 / AUCD13.iso / argonet / swiftjpeg.spk / !SwiftJPEG / !RunImage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1996-04-25  |  30KB  |  1,544 lines

  1.  > !RunImage for !SwiftJPEG
  2.  A fast JPEG viewer using Acorn's SpriteExtend module from RISC OS
  3.  v3.6 or later (module version 0.99 or later).
  4.  The BASIC and ARM sources are available separately and may be
  5.  available from wherever you obtained this copy of SwiftJPEG. If
  6.  you can't find them but would like a copy, contact Hipposoft
  7.  (contact details can be found in the Manual).
  8.  Editing this crunched code in a Desktop text editor and resaving
  9.  it will NOT PRODUCE A USABLE OUTPUT due to the crunching methods
  10.  employed. If you want to play around with the code, you should
  11.  only alter the sources.
  12.  (C) Hipposoft 1995,1996
  13. (1<<30),"Fatal startup error: "+
  14. $+" at line "+
  15. )+", click on Cancel to exit":
  16. B_%=0:C_%=-1:D_%=
  17. :E_%=0:F_%=0:G_%=0:H_%=0:I_%=12:J_%=96:K_%=0:L_%=-1:
  18. M_%24:!M_%=0:M_%!4=0:
  19. b%256,s%256,N_%512,O_%64:!b%=1:b%!4=2:b%!8=3:b%!12=4:b%!16=5:b%!20=&400C0:b%!24=&400C1:b%!28=&400C9:b%!32=0
  20. 262336,350,&4B534154,"SwiftJPEG",b%
  21. a%,P_%:
  22. a%<350
  23. 490,"SwiftJPEG requires RISC OS 3.50 or later to run"
  24. 5,"RMEnsure SpriteExtend 0.99 ERROR 490 Can't find JPEG plotting SWIs - is SpriteExtend 0.99 or later running?":
  25. 131107,"SwiftJPEG$Dir",N_%,256
  26. 490,"'SwiftJPEG$Dir' not defined - ensure you double-click on !SwiftJPEG to run it"
  27. tS_$=
  28. T_(N_%,32),a%)+".!Choices":
  29. 263875,1:V_$="1.00 (25 Apr 96)":
  30. 263873:D_%=
  31. D_%=1
  32. Y_(a$):
  33. a$<>""
  34. (!b%=-1:b%!40=
  35. Z_(a$):$(b%+44)=a$:
  36. :D_%=
  37. d_(E_%):E_%=0:
  38. d_(G_%):G_%=0:
  39. 393437,P_%,&4B534154:
  40. 262369,29368369,b%,a%+10000
  41. 262341,,b%
  42. !b%=-1
  43. G_%<>0
  44. g_(h_%)
  45. 262355,,N_%:
  46. !N_%<>n_%
  47. !O_%=-1
  48. 17,18,19:
  49. 6,121
  50. (a%<>0)
  51. 262342,,b%:
  52. d_(E_%):E_%=0:
  53. p_(q_%,2):
  54. p_(q_%,3):
  55. r_$<>"<Wimp$Scrap>"
  56. s_(q_%,4)
  57. a%,c%,d%:
  58. 0Dc%=
  59. :a$=r_$:
  60. a$,a%,1)="."
  61. a$,a%-1):a%=0:c%=
  62. a$<>""
  63. 131077,"Filer_OpenDir "+a$
  64. r_$="<Wimp$Scrap>"
  65. 131077,"Filer_OpenDir <Wimp$ScrapDir>"
  66. 262342,,b%
  67. 262342,,b%
  68. j_:v_%=b%!12:w_%=b%!16:x_%=(b%!8)
  69. 1:y_%=(b%!8)
  70. 2:z_%=(b%!8)
  71. __(L_%)
  72. x_%<>0
  73. __(L_%)
  74. z_%<>0
  75. ;2!N_%=L_%:
  76. 262347,,N_%:N_%!28=-1:
  77. 262341,,N_%
  78. a%:a%=
  79. :v_%=!b%:w_%=b%!4:
  80. b%!24=&00D
  81. T_(!(G`%+108+32*w_%),33))>20
  82. $(!(G`%+108+32*w_%))="20":
  83. H`(B`%,w_%)
  84. T_(!(G`%+108+32*w_%),33))<1
  85. $(!(G`%+108+32*w_%))="1":
  86. H`(B`%,w_%)
  87. w_%=2
  88. w_%=4:
  89. I`(B`%,4,-2)
  90. w_%=2:
  91. 262356,-1
  92. J`:a%=
  93. b%!24=&00D
  94. w_%=13:a%=
  95. b%!24=&01B
  96. w_%=12:a%=
  97. x_%=0:
  98. b%!24=&00D
  99. w_%=3:a%=
  100. b%!24=&01B
  101. w_%=2:a%=
  102. 271361:x_%=0:
  103. 262364,b%!24
  104. b%!16
  105. 0:c_%=
  106. b%!40=&C85
  107. &400C0:
  108. b%!20=B`%
  109. 262376,,b%!20,b%!24,b%!28
  110. &400C1:
  111. __(L_%)
  112. &400C9:
  113. 271361
  114. 262344,,b%
  115. !b%=L_%
  116. 432514,R`%,b%!4-b%!20,b%!16-S`%-b%!24,T`%,U`%,V`%
  117. !b%=D`%
  118. W`(D`%,40,I_%,J_%,M_%!16):
  119. W`(D`%,41,I_%,J_%,M_%!20)
  120. 262346,,b%
  121. W`(a%,c%,d%,e%,f%):
  122. x%:!N_%=a%:N_%!4=c%:
  123. 262350,,N_%:!s%=a%:
  124. 262347,,s%:s%!64=N_%!8+s%!4-s%!20:s%!68=N_%!12+s%!16-s%!24:s%!72=N_%!16+s%!4-s%!20:s%!76=N_%!20+s%!16-s%!24:x%=((s%!72-s%!64-16)/(e%-d%))*(f%-d%)+s%!64+8
  125. x%=((x%+1)
  126. 2)*2:
  127. 262374,1:
  128. s%!64+4,s%!68+4,s%!72-s%!64-9,3:
  129. s%!64+4,s%!76-8,s%!72-s%!64-9,3:
  130. s%!64+4,s%!68+4,3,s%!76-s%!68-9:
  131. s%!72-8,s%!68+4,3,s%!76-s%!68-9:
  132. 262374,4
  133. x%-s%!64-9>0
  134. s%!64+8,s%!68+8,x%-s%!64-9,s%!76-s%!68-17
  135. 262374,0:
  136. s%!72-x%-11>0
  137. x%,s%!68+8,s%!72-x%-9,s%!76-s%!68-17
  138. H`(a%,c%):!N_%=a%:N_%!4=c%:
  139. 262350,,N_%:
  140. (N_%!24)
  141. 262353,!N_%,N_%!8+4,N_%!12+4,N_%!16-4,N_%!20-4
  142. 262353,!N_%,N_%!8,N_%!12,N_%!16,N_%!20
  143. X`(a%):!N_%=a%:
  144. 262347,,N_%:
  145. 262353,-1,N_%!4,N_%!8,N_%!12,N_%!16:
  146. Y`(a%):
  147. __(a%)
  148. jE!s%=a%:
  149. 262347,,s%:c%=s%!16:!s%=a%:
  150. 262368,,s%:
  151. s%!8<c%
  152. s%!8=c%
  153. 262353,-1,s%!4,s%!8,s%!12,s%!16
  154. a%,c%:B_%=
  155. ("<SwiftJPEG$Dir>.ARMcode"):a%=
  156. Z`(B_%):
  157. a`%a%-4:
  158. 12,4,B_%,a`%,a%-4
  159. ,,,c%:
  160. b`%256,c`%256,d`%256:
  161. c%<>0
  162. (1<<30)+2,"ARMcode file is too short or file pointers are too large"
  163. n^!(a`%+
  164. Z`(B_%))=b`%:!(a`%+
  165. Z`(B_%))=c`%:!(a`%+
  166. Z`(B_%))=d`%:e`%=a`%+
  167. Z`(B_%):
  168. #B_%:B_%=0:
  169. W_:c_%=
  170. :C_%=-1:f`%=
  171. :K`%=
  172. :R`%=0:g`%=0:h`%=0:i`%=0:j`%=&80000:k`%=1856:
  173. i%k`%,l`%32,m%576,m`%160:
  174. n`%576,o`%160,G`%512,p`%448,q`%2584,r`%576:
  175. s`%128,T`%16,t`%64,u`%64:
  176. 131129,,"XCompo_ReadGamma"
  177. v`%;a%
  178. w`%256,x`%256,y`%256:
  179. 255:w`%?a%=a%:x`%?a%=a%:y`%?a%=a%:
  180. v`%,w`%,x`%,y`%
  181. _`:``%=0:Aa%=0:Ba%=0:Ca%=0:Da%=0:Ea%=0:
  182. Fa:Ga%=1:Ha%=1:$(G`%!172)="1":$(G`%!236)="1":
  183. Ia:q_%=
  184. Ja(m%,m`%,1):
  185. Ka(q_%,0,La%):
  186. Ka(q_%,1,B`%):Ma%=
  187. Ja(m%,m`%,1):
  188. Ka(q_%,2,Ma%):
  189. Ka(Ma%,0,Na%):
  190. Ka(Ma%,1,t_%):
  191. p_(q_%,2)
  192. p_(q_%,3):
  193. p_(q_%,4):Oa%=
  194. Ja(m%,m`%,1):Pa%=
  195. Ja(m%,m`%,1):
  196. a%:B_%=
  197. (S_$):
  198. B_%=0
  199. 490,"Can't find the !Choices file"
  200. Qa("Dithering","012",Ra%):V`%=Ra%-(Ra%=2):
  201. Qa("Full Screen","01234",Sa%):
  202. Qa("Special Mode","*",a%):Ta$=
  203. #B_%,64):
  204. Ta$,1)=".":Ta$=
  205. Ta$,2):
  206. Qa("Auto Full Screen","01",h_%):
  207. Qa("Modes Once Only","01",Ua%)
  208. Qa("Close Display","01",Va%):
  209. Qa("Auto Filetype","01",Wa%):
  210. Qa("Slideshow wait","!",Xa%):
  211. Qa("Always 1:1","01",Ya%):
  212. Qa("Repeat pictures","01",Za%):
  213. Qa("Fade-in","012",!M_%):
  214. Qa("Fade-in speed","!",M_%!8):M_%!16=M_%!8
  215. Qa("Fade-out","012",M_%!4):
  216. Qa("Fade-out speed","!",M_%!12):M_%!20=M_%!12:
  217. #B_%:B_%=0:
  218. B_%<>0
  219. B_%=0:
  220. C_%<>-1
  221. 262371,C_%:C_%=-1:
  222. Qa(b$,a$,
  223. c%,c$:c%=
  224. #B_%)=
  225. ca(b$)
  226. #B_%):
  227. 490,"Can't find '"+b$+"' entry in !Choices file"
  228. a$,1)<>"*"
  229. a$,1)<>"!")
  230. a$,1)<>"*")
  231. a$,c$)=0)
  232. (c$)<>1)
  233. 490,b$+" option not understood in !Choices file"
  234. a$,1)<>"*"
  235. da(a$,a%):
  236. c%,b$:c%=
  237. #B_%):
  238. ca(a$)
  239. #B_%):
  240. 490,"Can't find '"+a$+"' entry in !Choices file"
  241. (a%>=0)
  242. (a%<=9)
  243. #B_%,a%+48
  244. b$="0000":
  245. (-(a%+1)):
  246. #B_%,b$
  247. 64,"."):
  248. T_(a%,32):
  249. #B_%,b$
  250. a%,a$:
  251. 53,-1,4
  252. ,,ea%:
  253. 53,-1,5
  254. ,,fa%:a$="<SwiftJPEG$Dir>.":
  255. ea%>1
  256. fa%>1
  257. a$+="Sprites"
  258. a$+="Sprites22"
  259. Z_(a$):
  260. (1<<30)+2,"Can't find Sprites file"
  261. a%<>&FF9
  262. (1<<30)+2,"Sprites file doesn't have Sprite filetype &FF9"
  263. ga(a$):
  264. a%=-1
  265. (1<<30)+2,"Can't find the Sprites file"
  266. ha%a%+1024:!ha%=0:ha%!4=16:
  267. 46,265,ha%:
  268. 46,266,ha%,a$:
  269. X_:$(l`%)="iconbar":!b%=-1:b%!4=0:b%!8=0:b%!12=68:b%!16=68:b%!20=&3102:b%!24=l`%:b%!28=ha%:b%!32=11:
  270. 262338,,b%
  271. a%:a$=
  272. T_(a%,32):a%=
  273. a$,""""):
  274. a%<>0
  275. a$,a%+1)
  276. a$,""" "):
  277. a%<>0
  278. a$,a%+2)
  279. a$=""
  280. __(a%):
  281. a%=-1
  282. 9!N_%=a%:
  283. 262347,,N_%:
  284. ((N_%!32)
  285. &10000)<>0
  286. ja(a%,a$,
  287. 262363,,a%,i%,ka%+k`%,-1,a$,0
  288. ,,i%:a%!64=ha%:
  289. 262337,,a%
  290. a%,c%,d%,a$:
  291. 262361,,"<SwiftJPEG$Dir>.Templates":ka%=i%:
  292. ja(n`%,"Info",La%):$(n`%!332)=V_$:
  293. ja(o`%,"Display",L_%):
  294. ja(G`%,"Zoom",B`%):
  295. ja(p`%,"JPEG info",Na%):
  296. ja(q`%,"Choices",D`%):
  297. ja(r`%,"SaveAs",t_%):a$="file_c85"
  298. 262378
  299. a%,c%:
  300. 131118,296,a%,a$
  301. 131118,296,c%,a$
  302. a$="file_xxx"
  303. :$(r`%!112)="Pptr_hand,9,5;S"+a$+
  304. 262362:
  305. la(f%):
  306. a%,c%,d%,e%:
  307. ma(a%,c%):!N_%=f%:
  308. 262347,,N_%:d%=N_%!12-N_%!4:e%=N_%!16-N_%!8:na%=(a%-d%)/2:oa%=(c%-e%)/2:
  309. (N_%!32)
  310. &4000000
  311. oa%-=19
  312. (N_%!32)
  313. &40000000
  314. oa%+=19
  315. (N_%!32)
  316. &10000000
  317. na%-=19
  318. MN_%!4=na%:N_%!8=oa%:N_%!12=na%+d%:N_%!16=oa%+e%:N_%!28=-1:
  319. 262341,,N_%:
  320. pa(a%,a$):
  321. c$:!N_%=a%:
  322. 262348,,N_%:
  323. (a$)>48
  324. c$="..."+
  325. a$,45)
  326. c$=a$
  327. c$,4)="...."
  328. c$,2)
  329. $(N_%!76)=c$+
  330. Y`(a%):
  331. a%,c%:a%=Ga%:c%=Ha%:
  332. qa(B`%,0)
  333. w_%<>0
  334. ra(B`%,0,
  335. qa(B`%,1)
  336. w_%<>1
  337. ra(B`%,1,
  338. qa(B`%,5)
  339. w_%<>5
  340. ra(B`%,5,
  341. qa(B`%,6)
  342. w_%<>6
  343. ra(B`%,6,
  344. 0:w_%=1
  345. 1:w_%=0
  346. 5:w_%=6
  347. 6:w_%=5
  348. 0:Ga%=
  349. T_(G`%!172,33))+1:
  350. Ga%>20
  351. Ga%=20
  352. Ga%<1
  353. Ga%=1
  354. T_(G`%!172,33)<>
  355. (Ga%)
  356. $(G`%!172)=
  357. (Ga%):
  358. H`(B`%,2)
  359. 1:Ga%=
  360. T_(G`%!172,33))-1:
  361. Ga%>20
  362. Ga%=20
  363. Ga%<1
  364. Ga%=1
  365. T_(G`%!172,33)<>
  366. (Ga%)
  367. $(G`%!172)=
  368. (Ga%):
  369. H`(B`%,2)
  370. 5:Ha%=
  371. T_(G`%!236,33))+1:
  372. Ha%>20
  373. Ha%=20
  374. Ha%<1
  375. Ha%=1
  376. T_(G`%!236,33)<>
  377. (Ha%)
  378. $(G`%!236)=
  379. (Ha%):
  380. H`(B`%,4)
  381. 6:Ha%=
  382. T_(G`%!236,33))-1:
  383. Ha%>20
  384. Ha%=20
  385. Ha%<1
  386. Ha%=1
  387. T_(G`%!236,33)<>
  388. (Ha%)
  389. $(G`%!236)=
  390. (Ha%):
  391. H`(B`%,4)
  392. a%<>Ga%
  393. c%<>Ha%
  394. __(L_%)
  395. P`:!N_%=L_%:
  396. 262342,,N_%:
  397. 262347,,N_%:
  398. 262341,,N_%:
  399. sa(ta%,ua%,va%)
  400. a%,c%:a%=Ga%:c%=Ha%:Ga%=
  401. T_(G`%!172,33)):Ha%=
  402. T_(G`%!236,33)):
  403. Ga%<1
  404. Ga%=1
  405. Ga%>20
  406. Ga%=20
  407. Ha%<1
  408. Ha%=1
  409. Ha%>20
  410. Ha%=20
  411. Ga%<>a%
  412. $(G`%!172)=
  413. (Ga%)
  414. Ha%<>c%
  415. $(G`%!236)=
  416. (Ha%)
  417. a%<>Ga%
  418. c%<>Ha%
  419. __(L_%)
  420. P`:!N_%=L_%:
  421. 262342,,N_%:
  422. 262347,,N_%:
  423. 262341,,N_%
  424. a%,a$:
  425. xa(Oa%,Ra%)=
  426. ya(Oa%,a%,
  427. ya(Oa%,Ra%,
  428. 0:a$="No dithering"
  429. 1:a$="Fast but inaccurate"
  430. 2:a$="Slow but accurate"
  431. :a$="Unknown!"
  432. :$(q`%!1260)=a$:
  433. H`(D`%,36)
  434. :$t`%=Ta$:
  435. xa(Pa%,Sa%)=
  436. ya(Pa%,a%,
  437. ya(Pa%,Sa%,
  438. 0:a$="Use current mode"
  439. 1:a$="Best fit to picture"
  440. 2:a$="Use biggest"
  441. 3:a$="Use most colourful"
  442. 4:a$=
  443. T_(t`%,32):
  444. (a$)>20
  445. a$,17)="..."
  446. :a$="Unknown!"
  447. :$(q`%!1356)=a$:
  448. H`(D`%,39)
  449. qa(D`%,!M_%)=
  450. a%<>!M_%
  451. ra(D`%,a%+2,
  452. ra(D`%,a%+2,
  453. qa(D`%,M_%!4)=
  454. a%<>M_%!4
  455. ra(D`%,a%+7,
  456. ra(D`%,a%+7,
  457. M_%!16<>M_%!8
  458. M_%!16=M_%!8:
  459. H`(D`%,40)
  460. M_%!20<>M_%!12
  461. M_%!20=M_%!12:
  462. H`(D`%,41)
  463. -h_%<>
  464. qa(D`%,16)
  465. ra(D`%,16,-h_%)
  466. -Ua%<>
  467. qa(D`%,17)
  468. ra(D`%,17,-Ua%)
  469. -Va%<>
  470. qa(D`%,18)
  471. ra(D`%,18,-Va%)
  472. -Wa%<>
  473. qa(D`%,19)
  474. ra(D`%,19,-Wa%)
  475. T_(q`%!876,33)<>
  476. (Xa%)
  477. *$(q`%!876)=
  478. (Xa%):
  479. H`(D`%,24):
  480. x_%<>0
  481. 262355,,N_%:
  482. !N_%=D`%
  483. I`(D`%,24,-1):
  484. I`(D`%,24,-2)
  485. -Ya%<>
  486. qa(D`%,27)
  487. ra(D`%,27,-Ya%)
  488. -Za%<>
  489. qa(D`%,42)
  490. ra(D`%,42,-Za%)
  491. a%,c%,d%,e%,a$:
  492. w_%=10
  493. w_%=11
  494. w_%=12
  495. w_%=13
  496. za(D`%,w_%)
  497. w_%=25
  498. w_%=26
  499. qa(D`%,25)
  500. w_%<>25
  501. ra(D`%,25,
  502. qa(D`%,26)
  503. w_%<>26
  504. ra(D`%,26,
  505. x_%<>0
  506. 25:w_%=26
  507. 26:w_%=25
  508. 2,3,4:
  509. qa(D`%,w_%)=
  510. qa(D`%,2)
  511. ra(D`%,2,
  512. qa(D`%,3)
  513. ra(D`%,3,
  514. qa(D`%,4)
  515. ra(D`%,4,
  516. ra(D`%,w_%,
  517. 7,8,9:
  518. qa(D`%,w_%)=
  519. qa(D`%,7)
  520. ra(D`%,7,
  521. qa(D`%,8)
  522. ra(D`%,8,
  523. qa(D`%,9)
  524. ra(D`%,9,
  525. ra(D`%,w_%,
  526. 10:B_%=
  527. (S_$):
  528. B_%=0
  529. 490,"Can't find the !Choices file"
  530. 263875,1:a%=2:
  531. xa(Oa%,c%)=
  532. a%=c%
  533. da("Dithering",a%):a%=1:
  534. xa(Pa%,c%)=
  535. a%=c%
  536. da("Full Screen",a%):
  537. da("Special Mode",t`%):
  538. da("Auto Full Screen",-
  539. qa(D`%,16)):
  540. da("Modes Once Only",-
  541. qa(D`%,17)):
  542. da("Close Display",-
  543. qa(D`%,18)):
  544. da("Auto Filetype",-
  545. qa(D`%,19))
  546. da("Slideshow wait",-(
  547. T_(q`%!876,33))+1)):
  548. da("Always 1:1",-
  549. qa(D`%,27)):
  550. da("Repeat pictures",-
  551. qa(D`%,42)):
  552. da("Fade-in",-
  553. qa(D`%,3)-2*
  554. qa(D`%,4)):
  555. da("Fade-in speed",-M_%!16-1):
  556. da("Fade-out",-
  557. qa(D`%,8)-2*
  558. qa(D`%,9))
  559. da("Fade-out speed",-M_%!20-1):
  560. 263873:
  561. #B_%:B_%=0:w_%=13:
  562. xa(Oa%,2)=
  563. ya(Oa%,0,
  564. ya(Oa%,1,
  565. ya(Oa%,2,
  566. ):$(q`%!1260)="Slow but accurate":
  567. H`(D`%,36)
  568. xa(Pa%,1)=
  569. ya(Pa%,a%,
  570. ya(Pa%,1,
  571. ):$(q`%!1356)="Best fit to picture":
  572. H`(D`%,39)
  573. :$t`%="X800 Y600 C16M":
  574. qa(D`%,2)=
  575. qa(D`%,3)
  576. ra(D`%,3,
  577. ra(D`%,4,
  578. ra(D`%,2,
  579. qa(D`%,7)=
  580. qa(D`%,8)
  581. ra(D`%,8,
  582. ra(D`%,9,
  583. ra(D`%,7,
  584. M_%!16<>48
  585. M_%!16=48:
  586. H`(D`%,40)
  587. M_%!20<>48
  588. M_%!20=48:
  589. H`(D`%,41)
  590. qa(D`%,16)
  591. ra(D`%,16,
  592. qa(D`%,18)
  593. ra(D`%,18,
  594. qa(D`%,17)=
  595. ra(D`%,17,
  596. qa(D`%,19)=
  597. ra(D`%,19,
  598. T_(q`%!876,33)<>"0"
  599. E$(q`%!876)="0":
  600. H`(D`%,24):
  601. 262355,,N_%:
  602. !N_%=D`%
  603. I`(D`%,24,-2)
  604. qa(D`%,27)=
  605. ra(D`%,27,
  606. qa(D`%,42)
  607. ra(D`%,42,
  608. x_%=0
  609. u_:!N_%=D`%:
  610. 262342,,N_%
  611. 13:a%=Ra%:
  612. xa(Oa%,c%)
  613. Ra%=c%
  614. :V`%=Ra%-(Ra%=2):
  615. xa(Pa%,c%)
  616. Sa%=c%
  617. :Ta$=
  618. T_(t`%,32):
  619. qa(D`%,c%+2)
  620. !M_%=c%
  621. qa(D`%,c%+7)
  622. M_%!4=c%
  623. :h_%=-
  624. qa(D`%,16):Ua%=-
  625. qa(D`%,17):Va%=-
  626. qa(D`%,18):Wa%=-
  627. qa(D`%,19):Xa%=
  628. T_(q`%!876,33)):Ya%=-
  629. qa(D`%,27):Za%=-
  630. qa(D`%,42):M_%!8=M_%!16:M_%!12=M_%!20:
  631. u_:!N_%=D`%:
  632. 262342,,N_%:
  633. __(L_%)
  634. (a%<>Ra%)
  635. X`(L_%)
  636. 25,26:a%=
  637. T_(q`%!876,33)):
  638. w_%=25
  639. a%-=1
  640. a%+=1
  641. a%>9999
  642. a%=9999
  643. )G$(q`%!876)=
  644. (a%):
  645. H`(D`%,24):
  646. 262355,,N_%:
  647. !N_%=D`%
  648. I`(D`%,24,-2)
  649. 262351,,N_%:
  650. sa(Oa%,!N_%-16,N_%!4+22)
  651. xa(Pa%,4)=0
  652. $t`%=Ta$
  653. 262351,,N_%:
  654. sa(Pa%,!N_%-16,N_%!4+22)
  655. 40,41:
  656. :!N_%=D`%:N_%!4=w_%:
  657. 262350,,N_%:!s%=D`%:
  658. 262347,,s%:s%!64=N_%!8+s%!4-s%!20:s%!68=N_%!12+s%!16-s%!24:s%!72=N_%!16+s%!4-s%!20:s%!76=N_%!20+s%!16-s%!24:
  659. s%!64+8,s%!68+8,s%!72-s%!64-16,s%!76-s%!68-16:
  660. c%,c%,a%
  661. ..e%=s%!72-s%!64-16:d%=c%-s%!64-8:
  662. d%>e%
  663. d%=e%
  664. d%=I_%+((J_%-I_%)/e%)*d%:!b%=D`%:b%!4=N_%!8+4:b%!8=N_%!12+4:b%!12=N_%!16-4:b%!16=N_%!20-4:
  665. 262345,,b%
  666. W`(D`%,w_%,I_%,J_%,d%):
  667. 262346,,b%
  668. a%=0:
  669. ma(a%,c%):
  670. 0,0,a%-1,c%-1:
  671. w_%=40
  672. M_%!16=d%
  673. M_%!20=d%
  674. w_%=2
  675. w_%=3
  676. za(t_%,w_%)
  677. _a(t_%,0,"file_c85")
  678. 262356,,-1:!N_%=t_%:
  679. 262342,,N_%
  680. T_(r`%!140,33),".")=0)
  681. T_(r`%!140,33),"<")=0)
  682. (1<<30)+3,"To save, drag the file icon to a directory display."
  683. T_(r`%!140,33)):
  684. 262356,,-1:!N_%=t_%:
  685. 262342,,N_%
  686. ra(a%,c%,d%):
  687. qa(a%,c%)<>d%
  688. <9!s%=a%:s%!4=c%:
  689. 262350,,s%:
  690. s%!8=0
  691. s%!8=&200000
  692. =-!s%=a%:s%!4=c%:s%!12=&200000:
  693. 262349,,s%
  694. za(a%,c%):
  695. qa(a%,c%)=
  696. ra(a%,c%,
  697. >=10:
  698. ra(a%,c%,
  699. 262355,,N_%:
  700. !N_%<>-1
  701. 262355,,O_%
  702. a%:!N_%=!O_%:
  703. 393419,,N_%
  704. __(!O_%)
  705. 262354,!O_%,O_%!4,O_%!8,O_%!12,O_%!16,O_%!20
  706. I`(a%,c%,d%):
  707. e%:!N_%=a%:N_%!4=c%:
  708. 262350,,N_%:e%=(N_%!12-N_%!20)
  709. &1000000:
  710. d%=-2
  711. T_(N_%!28,32))
  712. d%=-3
  713. T_(N_%!28,32)))
  714. 262355,,N_%+32:
  715. N_%!32<>a%
  716. N_%!36<>c%
  717. N_%!52<>d%
  718. 262354,a%,c%,N_%!8+16*d%,N_%!12+8,e%,d%
  719.  "SwiftJPEG","Info","Zoom@M","Picture","Full screen...","Reload image","Next image","Choices...@D","Quit","*"
  720.  "Picture","Info","Save","*"
  721.  "Dithering","No dithering","Fast but inaccurate","Slow but accurate","*"
  722.  "Full screen","Use current mode","Best fit to picture","Use biggest","Use most colourful@D","@W","mbu%","64","*"
  723. A`(a%):
  724. G_%=0
  725. p_(q_%,5)
  726. s_(q_%,5)
  727. sa(q_%,!b%-116,140+7*44+24)
  728. sa(q_%,!b%-116,b%!4+22)
  729. Ka(a%,c%,d%):!(a%+28+c%*24+4)=d%:
  730. sa(a%,x%,y%):
  731. a%=Pa%
  732. T_(t`%,32):$t`%=
  733. W?ta%=a%:ua%=x%:va%=y%:
  734. 262356,,a%,x%,y%
  735. a%=Pa%
  736. $t`%=a$
  737. ya(a%,c%,d%):
  738. a%!(28+c%*24)=a%!(28+c%*24)
  739. a%!(28+c%*24)=a%!(28+c%*24)
  740. &FFFFFFFE
  741. p_(a%,c%):a%!(28+c%*24+8)=(a%!(28+c%*24+8))
  742. (1<<22):
  743. s_(a%,c%):a%!(28+c%*24+8)=(a%!(28+c%*24+8))
  744. (1<<22)):
  745. a%,c%,d%,a$:
  746. 262351,,s%:x_%=(s%!8
  747. 262357,,ta%,b%,s%:
  748. "Info":
  749. 262351,,N_%:
  750. 262356,,La%,!N_%-22,N_%!4-22
  751. "Zoom":
  752. 262351,,N_%:
  753. sa(B`%,!N_%-30,N_%!4+36)
  754. "Picture","Picture.Info":
  755. 262351,,N_%:
  756. 262356,,Na%,!N_%-20,N_%!4-20
  757. "Picture.Save":
  758. 262351,,N_%:a%=!N_%:c%=N_%!4:!N_%=t_%:
  759. 262347,,N_%:N_%!12=N_%!12-N_%!4+a%-20:N_%!4=a%-20:N_%!8=N_%!8-N_%!16+c%-20:N_%!16=c%-20:N_%!28=-1:
  760. 262341,,N_%:
  761. 262355,,N_%:
  762. !N_%<>t_%
  763. I`(t_%,1,-2)
  764. "Full screen...":
  765. "Reload image":
  766. Cb(r_$):
  767. "Next image":
  768. g_(h_%)
  769. "Choices...":
  770. 262355,,N_%:
  771. !N_%<>D`%
  772. la(D`%):
  773. I`(D`%,24,-2)
  774. "Quit":c_%=
  775. "No dithering","Fast but inaccurate","Slow but accurate":
  776. T_(q`%!1260,32)<>$s%
  777. ya(Oa%,a%,
  778. ya(Oa%,!b%,
  779. ):$(q`%!1260)=$s%:
  780. H`(D`%,36)
  781. "Best fit to picture","Use biggest","Use most colourful","Use current mode":
  782. T_(q`%!1356,32)<>$s%
  783. ya(Pa%,a%,
  784. ya(Pa%,!b%,
  785. ):$(q`%!1356)=$s%:
  786. H`(D`%,39)
  787. (ta%=Pa%)
  788. (!b%=4)
  789. pha$=
  790. T_(t`%,32):a%=
  791. Db(a$,N_%):
  792. a%=-1
  793. $t`%=Ta$:
  794. (1<<30)+1,"The specified Full Screen mode is invalid"
  795. a%<>0
  796. 53,a%-1,4
  797. ,,!N_%:
  798. 53,a%-1,5
  799. ,,N_%!4:
  800. !N_%<>N_%!4
  801. $t`%=Ta$:
  802. (1<<30)+1,"You can only use square pixel modes, such as 13 or 20"
  803. :N_%!20=-1:
  804. 53,N_%,4
  805. ,,N_%!128:
  806. 53,N_%,5
  807. ,,N_%!132:
  808. N_%!128<>N_%!132
  809. (1<<30)+1,"You can only use square pixel modes, such as 'X800 Y600 C32K'"
  810. t0a$="X"+
  811. (N_%!4)+" Y"+
  812. (N_%!8)+" C":
  813. N_%!12
  814. 0:a$+="2"
  815. 1:a$+="4"
  816. 2:a$+="16"
  817. 3:a$+="256"
  818. 4:a$+="32K"
  819. 5:a$+="16M"
  820. N_%!16<>-1
  821. a$+=" F"+
  822. (N_%!16)
  823. ya(Pa%,a%,
  824. ya(Pa%,4,
  825. ):$t`%=a$:
  826. (a$)>20
  827. a$,17)+"..."
  828. $(q`%!1356)=a$:
  829. H`(D`%,39)
  830. sa(ta%,ua%,va%)
  831. Eb(c%):
  832. a%,d%,e%,x%,y%,Fb%,Gb%:
  833. 131129,,"XCompo_ReadGamma"
  834. v`%;a%:
  835. v`%<>0
  836. v`%,w`%,x`%,y`%
  837. !M_%=0
  838. d%=1:e%=1
  839. d%=Ga%:e%=Ha%
  840. :Fb%=Ib%*d%/e%:Gb%=Jb%*d%/e%:
  841. 263875,5
  842. 53,-1,11
  843. ,,x%:
  844. 53,-1,12
  845. ,,y%:x%+=1:y%+=1
  846. Kb(Fb%,Gb%,x%,y%,a%)
  847. ``%=0
  848. Ua%=0
  849. Lb(``%,Aa%,Ba%)
  850. x%=``%:y%=Aa%:a%=Ba%
  851. Ca%=0
  852. Ua%=0
  853. Mb(Ca%,Da%,Ea%)
  854. x%=Ca%:y%=Da%:a%=Ea%
  855. 4:a%=
  856. Db(Ta$,N_%):
  857. a%=-1
  858. (1<<30)+1,"The specified Full Screen mode is invalid"
  859. 63,N_%
  860. 63,a%-1
  861. !N_%=-1
  862. (1<<30)+1,"The specified Full Screen mode is not available"
  863. 53,N_%,4
  864. ,,N_%!128:
  865. 53,N_%,5
  866. ,,N_%!132:
  867. N_%!128<>N_%!132
  868. (1<<30)+1,"You can only use square pixel modes, such as 'X800 Y600 C32K'"
  869. x%=N_%!4:y%=N_%!8:a%=N_%!12
  870. 53,a%-1,4
  871. ,,!N_%:
  872. 53,a%-1,5
  873. ,,N_%!4:
  874. !N_%<>N_%!4
  875. (1<<30)+1,"You can only use square pixel modes, such as 13 or 20"
  876. 53,a%-1,3
  877. ,,N_%!12:
  878. 53,a%-1,11
  879. ,,N_%!4:
  880. 53,a%-1,12
  881. ,,N_%!8:x%=N_%!4+1:y%=N_%!8+1:a%=-1*(N_%!12=3)-2*(N_%!12=15)-3*(N_%!12=63):N_%!16=-1
  882. 0,0,0,0:
  883. 0,0,32767:
  884. 263873
  885. Sa%<>0
  886. 8!N_%=1:N_%!4=x%:N_%!8=y%:N_%!12=a%:
  887. Sa%<>4
  888. N_%!16=-1
  889. dN_%!20=-1:
  890. <=127
  891. (N_%!4<>!(
  892. N_%!8<>!(
  893. N_%!12<>!(
  894. +12))
  895. ((Sa%=4)*(N_%!16<>!(
  896. +16)))
  897. 262372:
  898. 0,0,0,0:
  899. 0,0,32767:x%=x%-Fb%:y%=y%-Gb%:!N_%=d%:N_%!4=d%:N_%!8=e%:N_%!12=e%:
  900. 432514,R`%,x%,y%,N_%,U`%,V`%:
  901. 6,121
  902. a%=255
  903. a%=112:
  904. a%=112
  905. 6,121
  906. (a%<>255)
  907. >=Xa%*100)
  908. (Xa%<>0)):
  909. a%=112
  910. (((a%=11)
  911. (Xa%<>0))
  912. (a%=37))
  913. (f`%=
  914. a%=37
  915. 6,121
  916. (a%<>255):
  917. (a%<>37)
  918. a%=112
  919. M_%!4
  920. 0,0,0,0:
  921. 0,0,32767:
  922. 131077,"FX 15":
  923. g_(c%):
  924. (G_%<>0)
  925. a%,c%,d%,a$:d%=
  926. __(D`%)
  927. w_%=13:x_%=0:
  928. __(L_%)
  929. !u`%=L_%:
  930. 262347,,u`%:u`%!28=-1
  931. !u`%=-1
  932. :s`%!124=C_%:
  933. C_%>127
  934. 4:s`%!a%=C_%!a%:
  935. :C_%=s`%
  936. G_%<>0
  937. (h`%>=i`%)
  938. <h`%=g`%:c%=
  939. T_(h`%,32):a%=?(h`%+
  940. (a$)):
  941. )h`%+=
  942. (a$)+1:
  943. h`%>=i`%:h`%=g`%:
  944. d_(G_%):G_%=0:
  945. (1<<30)+1,"None of the pictures in the group can be displayed! So can't move to another image"
  946. T_(h`%,32):a%=?(h`%+
  947. (a$)):h`%+=
  948. (a$)+1:
  949. (h`%>=i`%)
  950. (Za%=0)
  951. d_(G_%):G_%=0
  952. Cb(a$):
  953. Eb(d%):d%=
  954. d_(G_%):G_%=0
  955. C_%<>-1
  956. aa:f`%=
  957. Va%<>0
  958. !b%=L_%:
  959. !u`%=-1
  960. la(L_%)
  961. 262341,,u`%
  962. a%,d%,a$:a$=
  963. T_(h`%,32):a%=?(h`%+
  964. (a$)):h`%+=
  965. (a$)+1:
  966. h`%>=i`%
  967. d_(G_%):G_%=0
  968. Cb(a$)
  969. __(D`%)
  970. w_%=13:x_%=0:
  971. __(L_%)
  972. !u`%=L_%:
  973. 262347,,u`%:u`%!28=-1
  974. !u`%=-1
  975. :s`%!124=C_%:
  976. C_%>127
  977. 4:s`%!a%=C_%!a%:
  978. :C_%=s`%
  979. aa:f`%=
  980. Va%<>0
  981. !b%=L_%:
  982. !u`%=-1
  983. la(L_%)
  984. 262341,,u`%
  985. a%,d%,e%:
  986. 101,2
  987. ,,d%:x%=0:y%=0:c%=1:e%=0:
  988. (-d%)-1:
  989. 101,2,,e%,,,,b%,64:
  990. (b%!8>b%!12)
  991. ((b%!12)*2>b%!8)
  992. (b%!8
  993. (b%!12
  994. (b%!8>=x%)
  995. (b%!12>=y%)
  996. x%=b%!8:y%=b%!12:c%=b%!16
  997. 4,255,255,255:
  998. 64,64,12,24:
  999. 84,64,12,24:
  1000. 64,64,12,24:
  1001. 84,64,12,24:
  1002. 0,0,0,0:
  1003. 62,62,270,74:
  1004. 0,255,255,255:
  1005. 64,64,266,70:
  1006. 68,124:a$=
  1007. 16," "):
  1008. r_$,16):
  1009. a$,1)<>" "
  1010. a$,1,3)="..."
  1011. a$,4)="...."
  1012. a$,1)=" "
  1013. 68,104:a$=
  1014. 16," "):
  1015. (Ib%)+"x"+
  1016. (Jb%),16):
  1017. a$,1)<>" "
  1018. 16," "):
  1019. a$)="Very big picture"
  1020. 68,86:a$=
  1021. 16," "):
  1022. (U`%)+" bytes",16):
  1023. a$,1)<>" "
  1024. 16," "):
  1025. a$)="Very large file"
  1026. a%,d%,e%:
  1027. 101,2
  1028. ,,d%:x%=0:y%=0:c%=0:e%=0:
  1029. (-d%)-1:
  1030. 101,2,,e%,,,,b%,64:
  1031. (b%!8>b%!12)
  1032. ((b%!12)*2>b%!8)
  1033. (b%!8
  1034. (b%!12
  1035. (b%!16>=c%)
  1036. (b%!8>=x%)
  1037. (b%!12>=y%)
  1038. x%=b%!8:y%=b%!12:c%=b%!16
  1039. Kb(Fb%,Gb%,
  1040. a%,d%,e%,Wb%,Xb%:
  1041. 101,2
  1042. ,,d%:Wb%=0:Xb%=0:x%=1E9:y%=1E9:c%=1:e%=0:
  1043. (-d%)-1:
  1044. 101,2,,e%,,,,b%,64:
  1045. (b%!8>b%!12)
  1046. ((b%!12)*2>b%!8)
  1047. (b%!8
  1048. (b%!12
  1049. (b%!8>=Fb%)
  1050. (b%!12>=Gb%)
  1051. ((b%!8-Fb%)<=x%)
  1052. ((b%!12-Gb%)<=y%)
  1053. Wb%=b%!8:Xb%=b%!12:x%=Wb%-Fb%:y%=Xb%-Gb%:c%=b%!16
  1054. Wb%=0
  1055. Lb(Wb%,Xb%,c%)
  1056. x%=Wb%:y%=Xb%:
  1057. a$,a%,c%:c%=
  1058. H_%=0
  1059. (G_%<>0)
  1060. (F_%<>0)
  1061. d_(G_%):G_%=0
  1062. G_%=0
  1063. Yb(0,j`%,"SwiftJPEG file list",G_%,g`%):h`%=g`%:i`%=g`%:c%=
  1064. :F_%=0
  1065. G_%=0
  1066. H_%=2
  1067. H_%=0
  1068. T_(b%+44,33):
  1069. 92,G_%
  1070. i`%-g`%+
  1071. (a$)+1>a%
  1072. Zb(G_%,a%+
  1073. (a$)+2,a%):
  1074. a%=-1
  1075. +H_%=1:
  1076. 92,G_%
  1077. d_(G_%):G_%=0
  1078. H_%=0
  1079. *$i`%=a$:?(i`%+
  1080. (a$))=0:i`%=i`%+
  1081. (a$)+1
  1082. !b%<>-1
  1083. 9a%=b%!4:b%!4=P_%:b%!12=b%!8:b%!16=4:
  1084. 262375,17,b%,a%
  1085. H_%=1
  1086. (1<<30)+1,"Not enough memory to load picture, or to queue it for loading later"
  1087. H_%=2
  1088. (1<<30)+1,"Can't create an area of memory to store picture names in"
  1089. !N_%=-1:
  1090. 262375,3,N_%,P_%
  1091. Cb(a$):
  1092. a%,c%:K_%=0:F_%=1:a%=
  1093. ga(a$):
  1094. K_%=h`%-1:
  1095. (1<<30)+1,"File not found"
  1096. c%=0:
  1097. YB_%=
  1098. (a$):c%+=(
  1099. #B_%=&FF):c%+=(
  1100. #B_%=&D8):c%+=(
  1101. #B_%=&FF):c%+=(
  1102. #B_%=&E0):
  1103. #B_%:B_%=0
  1104. c%<>-4
  1105. K_%=h`%-1:
  1106. (1<<30)+1,"This is not a JPEG file"
  1107. c%=-4
  1108. 4r_$=a$:
  1109. r_$="<Wimp$Scrap>"
  1110. p_(q_%,4)
  1111. s_(q_%,4)
  1112. =U`%=a%:
  1113. Z_(r_$))
  1114. (Wa%=1)
  1115. 131077,"SetType "+r_$+" C85"
  1116. d_(E_%):
  1117. Yb(U`%+256,U`%+256,"SwiftJPEG picture",E_%,R`%):
  1118. E_%<>0
  1119. 263872:
  1120. 13,&4F,r_$
  1121. 12,4,B_%,R`%,
  1122. #B_%:
  1123. 13,,B_%:B_%=0:
  1124. r_$="<Wimp$Scrap>"
  1125. r_$="ScrapFile"
  1126. S$(r`%!140)=r_$:
  1127. 263873:
  1128. T_(b%+44,33)="<Wimp$Scrap>"
  1129. 131080,6,"<Wimp$Scrap>"
  1130. __(L_%)
  1131. d!N_%=L_%:
  1132. 262342,,N_%:
  1133. pa(L_%,r_$+" ("+
  1134. (Ib%)+"x"+
  1135. (Jb%)+")"):!N_%=L_%:
  1136. 262348,,N_%:
  1137. 3N_%!4=0:N_%!8=0:N_%!12=&7FFFFFF:N_%!16=&7FFFFFF
  1138. 262341,,N_%:
  1139. la(L_%)
  1140. (1<<30)+1,"There is not enough free memory to load the picture"
  1141. 53,-1,4
  1142. ,,ea%:
  1143. 53,-1,5
  1144. ,,fa%:
  1145. ea%>0
  1146. !T`%=1:T`%!8=ea%
  1147. :!T`%=2:T`%!8=1
  1148. fa%>0
  1149. T`%!4=1:T`%!12=fa%
  1150. :T`%!4=2:T`%!12=1
  1151. :!T`%=(!T`%)*Ga%:T`%!4=(T`%!4)*Ga%:T`%!8=(T`%!8)*Ha%:T`%!12=(T`%!12)*Ha%:
  1152. 432512,,R`%,U`%
  1153. ,,Ib%,Jb%,bb%,cb%:!N_%=0:N_%!4=((-Jb%*2)*Ga%)/Ha%:N_%!8=((Ib%*2)*Ga%)/Ha%:N_%!12=0:
  1154. ((N_%!4)
  1155. 2)<>0
  1156. N_%!4=(((N_%!4)
  1157. 2)-1)*2
  1158. ((N_%!8)
  1159. 2)<>0
  1160. N_%!8=(((N_%!8)
  1161. 2)+1)*2
  1162. 262359,L_%,N_%:S`%=-N_%!4:
  1163. Q`(a%):
  1164. 53,a%,4
  1165. ,,ea%:
  1166. 53,a%,5
  1167. ,,fa%:ea%=ea%*2:fa%=fa%*2:
  1168. (r_$)>27
  1169. a$="..."+
  1170. r_$,24)
  1171. a$=r_$
  1172. a$,4)="...."
  1173. a$,2)
  1174. 1$(p`%!108)=a$:a$=
  1175. (U`%):
  1176. (a$)>7
  1177. a$=">9.5Mb!"
  1178. 0$(p`%!236)=a$:a$=
  1179. (Ib%):
  1180. (a$)>6
  1181. a$="V.Wide"
  1182. 0$(p`%!268)=a$:a$=
  1183. (Jb%):
  1184. (a$)>6
  1185. a$="V.Tall"
  1186. )$(p`%!300)=a$:
  1187. s_(q_%,2):
  1188. s_(q_%,3):
  1189. `a(a$):
  1190. 13,&8F,a$
  1191. 12,2,B_%,R`%,U`%
  1192. ,,,a%:
  1193. 13,,B_%:B_%=0:
  1194. a%<>0
  1195. (1<<30)+1,"Unknown error whilst saving - the JPEG has not been saved correctly"
  1196. 8,18,a$,&C85:
  1197. b%!20<>t_%
  1198. f!b%=60:a%=b%!4:b%!4=P_%:b%!12=b%!8:b%!16=2:b%!36=-1:$(b%+44)="<Wimp$Scrap>"+
  1199. 262375,17,b%,a%
  1200. T_((b%+44),33)):b%!12=0:b%!16=3:
  1201. 262375,17,b%,b%!4:
  1202. N`:r_$=
  1203. T_(b%+44,33):
  1204. r_$="<Wimp$Scrap>"
  1205. r_$="ScrapFile"
  1206. `$(r`%!140)=r_$:
  1207. pa(L_%,r_$+" ("+
  1208. (Ib%)+"x"+
  1209. (Jb%)+")"):
  1210. 262356,,-1:!N_%=t_%:
  1211. 262342,,N_%:
  1212. M_%!4
  1213. 255:b`%?a%=w`%?a%:c`%?a%=x`%?a%:d`%?a%=y`%?a%:
  1214. M_%!4
  1215. 255:b`%?a%=0:c`%?a%=0:d`%?a%=0:
  1216. a%,c%,d%:
  1217. M_%!4
  1218. c%=M_%!12
  1219. 255:d%=a%*c%/(M_%!12):b`%?a%=d%:c`%?a%=d%:d`%?a%=d%:
  1220. 6,121
  1221. d%=112
  1222. d%=16
  1223. c%=-1:
  1224. d%=112
  1225. a%,c,d%,d,e%:
  1226. c=1:e%=M_%!8:
  1227. :d=c/e%:
  1228. 255:b`%?a%=(w`%?a%)*d:c`%?a%=(x`%?a%)*d:d`%?a%=(y`%?a%)*d:
  1229. 6,121
  1230. d%=112
  1231. d%=16
  1232. c=(M_%!8)+1:
  1233. d%=112
  1234. '%c+=(1/c)*(16+(15-c)*(c<15)):
  1235. a%,c%,c,d%,e%:
  1236. M_%!4
  1237. e%=M_%!12:
  1238. e%*2:c=(1+
  1239. ((90/e%)*c%))/2:
  1240. 255:b`%?a%=(w`%?a%)*c:c`%?a%=(x`%?a%)*c:d`%?a%=(y`%?a%)*c:
  1241. 6,121
  1242. d%=112
  1243. d%=16
  1244. c%=e%*2+1:
  1245. d%=112
  1246. a%,c%,c,d%:
  1247. M_%!4
  1248. c%=M_%!12
  1249. 255:c=c%/(M_%!12):b`%?a%=255-(255-w`%?a%)*c:c`%?a%=255-(255-x`%?a%)*c:d`%?a%=255-(255-y`%?a%)*c:
  1250. 6,121
  1251. d%=112
  1252. d%=16
  1253. c%=-1:
  1254. d%=112
  1255. d%<>112
  1256. d%<>16
  1257. 1<a%=M_%!12:M_%!12=16:
  1258. 0,255,255,255:
  1259. db:M_%!12=a%
  1260. a%,c%,c,d%:
  1261. c%=(M_%!8)*2
  1262. -1:c=(1+
  1263. ((90/(M_%!8))*c%))/2:
  1264. 255:b`%?a%=255-(255-w`%?a%)*c:c`%?a%=255-(255-x`%?a%)*c:d`%?a%=255-(255-y`%?a%)*c:
  1265. 6,121
  1266. d%=112
  1267. d%=16
  1268. c%=-1:
  1269. d%=112
  1270. a%,c%:
  1271. 53,-1,11
  1272. ,,d%:
  1273. 53,-1,12
  1274. ,,e%:d%+=1:e%+=1:
  1275. 53,-1,4
  1276. ,,a%:
  1277. 53,-1,5
  1278. ,,c%:d%=d%<<a%:e%=e%<<c%:
  1279. eb(a%):
  1280. c%,a$:fb%=a%:c%=0:
  1281. a$:$(fb%+c%)=a$:c%+=(
  1282. (a$)+1):
  1283. a$="*":$(fb%+c%-1)=
  1284. (0)+"*":
  1285. a%,b$:b$="":
  1286. :a%=?fb%:
  1287. a%>31
  1288. fb%+=1:
  1289. a%<32:a$=b$:
  1290. a%,c%,d%:
  1291. 263872:
  1292. a%,c%,d%:
  1293. d%=0:
  1294. 263873:
  1295. _a(a%,c%,a$):
  1296. d%,e%:!s%=a%:
  1297. 262347,,s%:d%=s%!4-s%!20:e%=s%!16-s%!24:!s%=a%:s%!4=c%:
  1298. 262350,,s%:!N_%=a%:N_%!4=5:N_%!8=s%!8+d%:N_%!12=s%!12+e%:N_%!16=s%!16+d%:N_%!20=s%!20+e%:N_%!24=0:N_%!28=0:
  1299. ma(d%,e%):N_%!32=d%:N_%!36=e%
  1300. 271360,133,1,a$,N_%+8:K`%=
  1301. 262351,,s%:K`%=
  1302. (s%!12<>t_%)
  1303. ?&a$=
  1304. T_(r`%!140,33)+
  1305. a$,".")
  1306. a$,".")+1):
  1307. a$,".")=0
  1308. 4)<>0:a$+=
  1309. :!N_%=44+
  1310. (a$):N_%!4=P_%:N_%!8=0:N_%!12=0:N_%!16=1:N_%!20=s%!12:N_%!24=s%!16:N_%!28=!s%:N_%!32=s%!4:N_%!36=30178:N_%!40=&C85:$(N_%+44)=a$:
  1311. 262375,17,N_%,s%!12,s%!16
  1312. d%,e%:d%=a%:e%=c%:
  1313. d%<e%
  1314. d%,e%
  1315. D&d%=d%
  1316. d%=0:a%=a%
  1317. e%:c%=c%
  1318. a%,c%:a%=
  1319. T_(G`%!172,33)):c%=
  1320. T_(G`%!236,33)):
  1321. hb(a%,c%):$(G`%!172)=
  1322. (a%):Ga%=a%:$(G`%!236)=
  1323. (c%):Ha%=c%:
  1324. 131077,"FX 15":
  1325. 263872:
  1326. 6,121
  1327. (a%=255):
  1328. 263873:
  1329. Yb(a%,f%,a$,
  1330. 131174,,-1,a%,-1,%10000000,f%,,,a$
  1331. ,c%,,d%;e%:
  1332. c%=0:d%=-1
  1333. 131164,c%
  1334. e%<a%
  1335. d_(c%):c%=0:d%=-1
  1336. d_(a%):
  1337. a%<>0
  1338. 131174,1,a%
  1339. Zb(a%,c%,
  1340. 131164,a%
  1341. 131114,a%,c%-e%:
  1342. 131164,a%
  1343. e%<c%
  1344. d%=-1
  1345. d%=e%
  1346. 263874:
  1347. aa:H_%=0:
  1348. E_%=0
  1349. L_%<>-1
  1350. __(L_%)
  1351. !N_%=L_%:
  1352. 262342,,N_%
  1353. E_%<>0
  1354. !b%=L_%:
  1355. (K_%<>0)
  1356. (G_%<>0)
  1357. K_%<g`%
  1358. "WARNING!"'K_%:
  1359. ?K_%=1
  1360. :!b%=
  1361. !b%=(1<<30)+2
  1362. (1<<30)+1:a$="Warning from SwiftJPEG":$(b%+4)=
  1363. $+". Click OK to continue."+
  1364. (0):a%=17
  1365. (1<<30)+2:a$="Fatal error from SwiftJPEG":$(b%+4)=
  1366. $+" (encountered at line "+
  1367. +"). SwiftJPEG must quit; click CANCEL to exit."+
  1368. (0):a%=18
  1369. (1<<30)+3:a$="Information from SwiftJPEG":$(b%+4)=
  1370. (0):a%=17
  1371. :a$="Error from SwiftJPEG":
  1372. $)<200
  1373. $(b%+4)=
  1374. $+" at line "+
  1375. )+": click OK to continue, CANCEL to quit program"+
  1376. $(b%+4)=
  1377. \    a%=19
  1378. 262367,b%,a%,a$
  1379. ,a%:a%=(a%=2):=a%
  1380. qa(a%,c%):!N_%=a%:N_%!4=c%:
  1381. 262350,,N_%:=((N_%!24)
  1382. (1<<21))<>0
  1383. Ja(x%,y%,e%):
  1384. a%,c%,d%,f%,a$,b$,c$:
  1385. eb(s%)
  1386. f%=0:
  1387. x%=m%
  1388. f%=f%
  1389. y%=m`%
  1390. f%=f%
  1391. bqa%=x%:
  1392. gb(a$):$(a%)=a$:a%?12=7:a%?13=2:a%?14=7:a%?15=0:a%!20=44:a%!24=0:d%=
  1393. (a$)-3:x%+=28:
  1394. gb(c$):
  1395. c$<>"*"
  1396. c0x%!8=&07000021:!x%=0:c%=
  1397. :ib%=
  1398. c$,"@"):
  1399. d)b$=
  1400. (c$)-ib%):
  1401. b$,"T")
  1402. !x%=!x%
  1403. b$,"D")
  1404. !x%=!x%
  1405. b$,"W")
  1406. g-!x%=!x%
  1407. 4:c%=
  1408. gb(a$):
  1409. a$="mbu%"
  1410. jb%=t`%
  1411. gb(a$):kb%=
  1412. b$,"M")
  1413. !x%=!x%
  1414. c$,ib%-1)
  1415. c$>d%
  1416. x%!4=-1:
  1417. m7x%!8=&0700F121:x%!12=jb%:x%!16=-1:x%!20=kb%:$jb%=c$
  1418. c$<12
  1419. x%!8=&07000021:$(x%+12)=c$
  1420. :x%!8=&07000121:x%!12=y%:x%!16=-1:x%!20=
  1421. c$+1:$y%=c$:y%+=
  1422. :x%+=24
  1423. c$="*":a%!16=d%*16+32:!(x%-24)=!(x%-24)
  1424. m%=x%
  1425. m`%=y%
  1426. xa(a%,c%):
  1427. (a%!(28+c%*24))
  1428. Z_(a$):
  1429. a%,c%,d%:
  1430. 8,17,a$
  1431. c%,,a%:
  1432. c%<>1
  1433. z    d%=-2
  1434. (a%>>>20)=&FFF
  1435. d%=(a%>>>8)
  1436. d%=-1
  1437. ga(a$):
  1438. Z_(a$)<>-2
  1439. 8,5,a$
  1440. ,,,,a%
  1441. a%=-1
  1442. lb(c%,d%,f%):
  1443. a%,b$:b$="":
  1444. a%=c%
  1445. c%+d%-1:
  1446. ?a%>=f%
  1447. b$=b$+
  1448. (?a%)
  1449. T_(c%,d%):
  1450. a%,b$:b$="":a%=c%:
  1451. ?a%>=d%
  1452. b$=b$+
  1453. (?a%):a%+=1
  1454. ?a%<d%
  1455. b$=255:=b$
  1456. ca(a$):
  1457. a%,b$:b$="":
  1458. (a$):
  1459. a$,a%,1)>="a"
  1460. a$,a%,1)<="z"
  1461. a$,a%,1))-32)
  1462. a$,a%,1)
  1463. Z`(a%):=(
  1464. #a%)+((
  1465. #a%)<<8)+((
  1466. #a%)<<16)+((
  1467. #a%)<<24)
  1468. Db(a$,a%):
  1469. c%,d%,e%,x%,y%,b$,c$:!a%=0:x%=0:y%=0:a%!4=-1:a%!8=-1:a%!12=-1:a%!16=-1:e%=a%+20:a$=
  1470. ca(a$):
  1471. a$,","):
  1472. a$,","),1)=" ":
  1473. a$," ")):c%=
  1474. a$," "):a$=
  1475. a$,c%-1)+
  1476. a$,c%+1):
  1477. (a$))=a$
  1478. (a$):
  1479. c%=-1
  1480. c%+=1
  1481. :c%=0:
  1482. (a$):
  1483. :c%+=1:
  1484. "XYCGEF",
  1485. a$,c%,1))=0)
  1486. (c%<=
  1487. (a$)):c%+=1:
  1488. a$,c%,1):
  1489. ((b$="E")
  1490. "XY",
  1491. a$,c%+1,1))<>0))
  1492. "XY",b$)<>0)
  1493. a$,c%-1,1)<>"E"))
  1494. "CGF",b$)<>0)
  1495. (a$))
  1496. "EX EY ",
  1497. a$,c%,2)+" ")
  1498. a$,c%+2))
  1499. a$,c%+1))
  1500. a$,c%+1,3):
  1501. a%!4=-1
  1502. a%!4=d%
  1503. ?a%=1
  1504. a%!8=-1
  1505. a%!8=d%
  1506. a%?1=1
  1507. "C","G":
  1508. a%!12=-1
  1509. 2:a%!12=0
  1510. 4:a%!12=1
  1511. c$="16M"
  1512. a%!12=5
  1513. a%!12=2
  1514. (c$="32K")
  1515. (c$="32T")
  1516. a%!12=4
  1517. 256:a%!12=3
  1518. (b$="G")
  1519. (a%!12>3)
  1520. a%!12=-1
  1521. !e%=0:e%!4=128:e%!8=3:e%!12=255:e%+=16
  1522. :a%?2=1
  1523. a$,c%+1,1)="X"
  1524.  !e%=4:x%+=1:
  1525. x%+=1
  1526. :!e%=5:y%+=1:
  1527. y%+=1
  1528. :e%!4=d%:e%+=8
  1529. a%!16=-1
  1530. a%!16=d%
  1531. a%?3=1
  1532. :!e%=-1:c%=0:
  1533. (a%!4<1)
  1534. (a%!8<1)
  1535. (a%!12=-1)
  1536. (!a%>0)
  1537. (x%>1)
  1538. (y%>1)
  1539. c%=-1
  1540. (a%!4>32767)
  1541. (a%!8>32767)
  1542. c%=-1
  1543.     !a%=1
  1544.