home *** CD-ROM | disk | FTP | other *** search
/ APDL DTP 2 / APDL_DTP2.iso / _cdview / cdview (.txt) < prev    next >
Encoding:
RISC OS BBC BASIC V Source  |  1995-09-06  |  14.8 KB  |  497 lines

  1.  --> CD Catalogue
  2.  This program and all documentation 
  3.  David Holden 1995
  4. A_$="1.00":
  5. 262343,D_%,E_%
  6. G_%:A%=1:B%=E_%:G%=H_%:H%=I_%:
  7. 262341,,E_%
  8. 262351,,L_%+100:
  9. L_%?108=4
  10. :E_%!100=K_%:
  11. 262342,,E_%+100:M_%=N_%:O_%=P_%:Q_$=$R_%
  12. 262342,,E_%:I%=
  13. T_(0)
  14. 262342,,E_%:E_%!4=0:
  15. 262340,,E_%:I%=
  16. T_(0)
  17. 262342,,E_%
  18. W_(X_%,Y_%)
  19. 262364,E_%!24
  20. 17,18:
  21. E_%!16
  22. 262351,,E_%+&C0:c_%=E_%!&C8:d_%=E_%!&C4:
  23. E_%!4=-1
  24. 0:!E_%=G_%:
  25. 262342,,E_%:!E_%=U_%:
  26. 262342,,E_%:$e_%="CDview Help":
  27. f_(g_$+".!Help")
  28. c_%=1
  29. 262356,,h_%,i_%,j_%
  30. k_%,l_%:i_%=!E_%:d_%=E_%!4:c_%=E_%!8:l_%=E_%!12:k_%=E_%!16:
  31. k_%=m_%
  32. 1:P_%=O_%:N_%=M_%:$R_%=Q_$:
  33. n_(P_%)
  34. 2:j_%=228:
  35. 262356,,h_%,i_%-60,j_%
  36. 4:P_%=o_%+1:N_%=48:
  37. $(o_%+4)=".^" $R_%=g_$+".^"
  38. $R_%=$(o_%+4)
  39. n_(P_%)
  40. 263872:
  41. p_(k_%)
  42. 64,16:I%=
  43. q_(k_%,P_%)+1:
  44. :I%+=1:
  45. ?I%>32:r_$=$R_%+"."+$I%:
  46. s_(K_%,k_%)
  47. &416,&404:I%=
  48. q_(k_%,P_%)+1:
  49. :I%+=1:
  50. ?I%>32:r_$=$R_%+"."+$I%
  51. 263873
  52. N_%=48
  53. 263872:A%=4:B%=P_%:C%=N_%:P_%=
  54. (J_%):N_%=P_%?1:I%=R_%+
  55. ($R_%):
  56. ?I%<>46:I%-=1:
  57. :?I%=13:
  58. n_(P_%):
  59. 263873:
  60. q_(i%,p%):
  61. t_%:t_%=i%:p%=
  62. u_(p%):
  63. t_%>0:
  64. ?p%<>N_%:p%=
  65. u_(p%):
  66. u_(p%)
  67. u_(p%)
  68. :t_%-=1:
  69. p_(i%):
  70. v_%,t_%,x%,y%,w_%:
  71. q_(i%,P_%):
  72. ">":P_%=v_%:N_%+=1:v_%+=2:
  73. ?v_%<32:v_%+=1:
  74. :$R_%=$R_%+"."+$v_%:
  75. n_(P_%)
  76. x_(K_%,i%,0):I%=v_%+1:
  77. :I%+=1:
  78. ?I%>32:$e_%=$I%:r_$=$R_%+"."+$e_%:!E_%=G_%:
  79. 262342,,E_%:!E_%=U_%:
  80. 262342,,E_%:I%=
  81. T_(0):
  82. ?v_%<>
  83. !y_%=U_%:
  84. 262348,,y_%:$(y_%!76)=$e_%:
  85. 53,-1,11
  86. ,,x%:
  87. 53,-1,4
  88. ,,w_%:x%=x%<<w_%:
  89. 53,-1,12
  90. ,,y%:
  91. 53,-1,5
  92. ,,w_%:y%=y%<<w_%:!E_%=0:E_%!4=-(y%-40):E_%!8=x%-32:E_%!12=0:
  93. 262359,U_%,E_%
  94. z_(&D94,r_$)
  95. f_(r_$)
  96. z_(&AFF,r_$)
  97. z_(&FF9,r_$)
  98. f_(__$):
  99. 8,17,__$
  100. F%,,,,I_%:
  101. 1)<>1 I%=
  102. A`(1,"File not found."):
  103. T_(I_%+20)=
  104. A`(1,"Not enough memory available to load this file"):
  105. !y_%=G_%:
  106. 262348,,y_%:$(y_%!76)=$e_%:
  107. 8,16,__$,H_%,0:H_%!I_%=&0A0A0A0A:A%=2:B%=H_%:C%=I_%:`_%=
  108. (J_%):!E_%=0:E_%!4=-`_%:E_%!8=1232:E_%!12=0:
  109. 262359,G_%,E_%:!E_%=G_%:
  110. 262347,,E_%:E_%!20=0:E_%!24=0:E_%!28=-1:
  111. 262341,,E_%:
  112. n_(p%):
  113. B`%,C`%,a$:B`%=-20:C`%=0:
  114. 263872:!y_%=K_%:
  115. 262348,,y_%:I%=y_%!88:
  116. I%>=0:!L_%=K_%:L_%!4=I%-1:
  117. 262340,,L_%:I%-=1:
  118. :I%=R_%+
  119. ($R_%):
  120. ?I%<>46:I%-=1:
  121. :I%+=1:a$=$I%:
  122. a$="^" a$="$"
  123. U$(y_%!76)=a$:p%=
  124. u_(p%):
  125. 4:L_%!(I%+4)=D`%!I%:
  126. :!L_%=K_%:
  127. ?p%>=N_%:
  128. p%?1=N_%+1
  129. E`(F`%,p%+2)
  130. :A%=3:B%=p%:C%=N_%:p%=
  131. (J_%)
  132. E`(F`%+64,p%+1):p%=
  133. u_(p%)
  134. E`(F`%+16,p%+1):p%=
  135. u_(p%)
  136. E`(F`%+32,p%+1):p%=
  137. u_(p%)
  138. E`(F`%+48,p%+1):p%=
  139. u_(p%)
  140. u_(p%)
  141. :B`%=-(C`%
  142. 2+C`%
  143. 2)*40-20:
  144. B`%>G`% B`%=G`%
  145. !L_%=0:L_%!4=B`%:L_%!8=274:L_%!12=0:
  146. 262359,K_%,L_%:!y_%=K_%:
  147. 262348,,y_%+1:y_%!24=0:y_%!28=-1:
  148. 262341,,y_%:
  149. 262353,-1,y_%!4,y_%!8,y_%!12,y_%!16+40:
  150. 263873:
  151. E`(i%,p%):
  152. ?p%<32:p%+=1:
  153. :L_%!24=p%:L_%!28=i%:
  154. 262338,,L_%:
  155. L_%!4>200
  156. >L_%!8=L_%!8-40:L_%!16=L_%!16-40:L_%!4=8:L_%!12=272:B`%-=40
  157. :L_%!4=276:L_%!12=542
  158. :C`%+=1:
  159. 8,17,g_$+".Cat_File"
  160. F%,,,,I_%:
  161. 1)<>1 I%=
  162. A`(1,"No catalogue data found - unable to continue"):
  163. I`% I_%+&20:
  164. 8,16,g_$+".Cat_File",I`%,0:A%=0:B%=I`%:C%=I_%:
  165. J_%:J`$=$I`%:o_%=
  166. u_(I`%):P_%=o_%+1:O_%=P_%:N_%=48:M_%=N_%:
  167. $(o_%+4)=".^" $R_%=g_$+".^"
  168. $R_%=$(o_%+4)
  169. MQ_$=$R_%:!E_%=K_%:
  170. 262347,,E_%:G`%=E_%!8-E_%!16:
  171. n_(P_%):
  172. 262341,,E_%:
  173. s_(w%,i%):X_%=w%:Y_%=i%:!E_%=w%:
  174. 262347,,E_%:X%=E_%!4-E_%!20:Y%=E_%!16-E_%!24:E_%!4=i%:
  175. 262350,,E_%:!E_%=w%:E_%!4=5:E_%!8=E_%!8+X%:E_%!12=E_%!12+Y%:E_%!16=E_%!16+X%:E_%!20=E_%!20+Y%:E_%!24=0:E_%!28=0
  176. 5E_%!32=&7FFFFFFF:E_%!36=&7FFFFFFF:
  177. 262352,,E_%:
  178. W_(w%,i%):
  179. e_$:E_%!&80=w%:E_%!&84=i%:
  180. 262350,,E_%+&80:I%=(E_%!&9C):
  181. $(I%),"."):I%+=1:
  182. :e_$=$(I%):
  183. 262351,,E_%:E_%!20=E_%!12:E_%!24=E_%!16:E_%!28=!E_%:E_%!32=E_%!4:E_%!16=1:$(E_%+44)=e_$:!E_%=(
  184. (e_$)+49)
  185. 3:E_%!12=0
  186. 262375,17,E_%,E_%!20,E_%!24:
  187. f$,d$,i$,i%:
  188. i%=E_%+44:
  189. ?i%>31:i%+=1:
  190. ?i%<>46:i%-=1:
  191. :?i%=13:d$=$(E_%+44):$L_%=r_$:i%=L_%+
  192. ?i%<>46:i%-=1:
  193. :?i%=13:f$=$L_%:!y_%=K_%:
  194. 262348,,y_%:i%=y_%!88:
  195. i%>=0:
  196. K`(K_%,i%)=
  197. Gi$="."+
  198. L`(K_%,i%):
  199. "copy "+f$+i$+" "+d$+i$+" RQ~V~C":
  200. x_(K_%,i%,0)
  201. :i%-=1:
  202. x_(w%,i%,s%):!L_%=w%:L_%!4=i%:L_%!8=s%<<21:L_%!12=1<<21:
  203. 262349,,L_%:
  204. L`(w%,i%):!L_%=w%:L_%!4=i%:
  205. 262350,,L_%:I%=(L_%!28):
  206. ?I%>31:I%+=1:
  207. :?I%=13:=$(L_%!28)
  208. K`(w%,i%):!L_%=w%:L_%!4=i%:
  209. 262350,,L_%:
  210. (L_%!24
  211. 1<<21):=
  212. T_(M`%):
  213. 262380,N`%+M`%,-1
  214. e%>=(N`%+M`%):=
  215. 262380,N`%,-1:=
  216. P`,Q`,R`,S`,m%:Q`=1:P`=2:S`=4:R`=&80:
  217. T`%&200:m%=T`%:h_%=
  218. U`(m%,"CDview",180):m%=
  219. V`("Help",0,0):m%=
  220. V`("Info",0,W`%):m%=
  221. V`("Quit",R`,0):
  222. U` (a%,X`$,Y`%):$a%=X`$:a%!12=&70207:a%!16=Y`%:a%!20=40:a%!24=0:m%=a%+28:=a%
  223. V` (Z`$,a`%,b`%):!m%=a`%:m%!4=b`%:m%!8=&7000001:$(m%+12)=Z`$:=m%+24
  224. c` (d`$,e`%,f`$):
  225. g`% 24:$g`%="s!"+d`$:$(g`%+16)=f`$:!E_%=e`%:E_%!4=0:E_%!8=-24:E_%!12=80:E_%!16=80:E_%!20=&1700210B:E_%!28=g`%:E_%!24=g`%+16:E_%!32=8:
  226. 262338,,E_%
  227. I%:=I%
  228. u_(p%):
  229. :p%+=1:
  230. ?p%=10
  231. ?p%=13:=p%+1
  232. C_(h`$,i`%):
  233. 263874:D_%=&C31:!L_%=
  234. :$(L_%+4)="Error "+
  235. )+": "+h`$++
  236. 262367,L_%,1,j`%:
  237. 262365,k`%,&4B534154:
  238. A`(l`%,a$):L_%!&80=0:$(L_%+&84)=a$+
  239. 262367,L_%+&80,16
  240. l`%,j`%
  241. ,I%:=I%
  242. J_%&500:
  243. 2:P%=J_%:[OPT n`:adr r8,o`:mov r0,r0,lsl#2:ldr pc,[r8,r0]:.p` equd 0:equd 0
  244. l/.o` equd q`:equd r`:equd s`:equd t`:equd S_
  245. .t`:mov r0,r1:.u` ldrb r1,[r0],#1:cmp r1,#13:cmpne r1,#10:bne u`:ldrb r1,[r0]:cmp r1,r2:bne u`:.u` ldrb r1,[r0],#1:cmp r1,#13:cmpne r1,#10:bne u`:mov pc,r14
  246. .S_ mov r0,r1:.u` ldrb r1,[r0,#-1]!:cmp r1,#13:bne u`:ldrb r1,[r0,#1]:cmp r1,#62:bne u`:ldrb r1,[r0,#2]:cmp r1,r2:bge u`:add r0,r0,#1:mov pc,r14
  247. .s` add r2,r1,r2:mov r0,#32:.u` ldrb r3,[r1],#1:cmp r1,r2:movgt pc,r14:cmp r3,#10:cmpne r3,#13:bne u`:ldrb r11,[r1]:add r11,r11,r3:cmp r11,#23:addeq r1,r1,#1:add r0,r0,#32:bal u`
  248. o.q` add r2,r1,r2:.u` ldrb r0,[r1],#1:cmp r0,#10:moveq r0,#13:streqb r0,[r1,#-1]:cmp r1,r2:blt u`:mov pc,r14
  249. .r` stmfd r13!,{r14}:add r7,r7,r6:ldr r2,v`:str r2,[r1]:swi "Wimp_RedrawWindow":.w` cmp r0,#0:ldmeqfd r13!,{pc}:ldr r0,[r1,#4]:ldr r2,[r1,#20]:sub r8,r0,r2:add r8,r8,#16:ldr r0,[r1,#16]:ldr r2,[r1,#24]:sub r9,r0,r2
  250. ldr r3,[r1,#40]:sub r3,r9,r3:mov r3,r3,lsr#5:mov r2,r3,lsl#5:sub r9,r9,r2:mov r2,r6:subs r3,r3,#1:bmi x`:.y` ldrb r0,[r2],#1:cmp r0,#13:cmpne r0,#10:bne y`:ldrb r11,[r2]:add r11,r11,r0:cmp r11,#23:addeq r2,r2,#1:subs r3,r3,#1
  251. bpl y`
  252. d.x` ldr r4,[r1,#40]:ldr r3,[r1,#32]:sub r5,r4,r3:mov r5,r5,lsr#5:add r5,r5,#1:sub r9,r9,#4:bl z`
  253. k._` cmp r2,r7:bgt ``:ldrb r0,[r2],#1:cmp r0,#31:swigt "OS_WriteC":bgt _`:cmp r0,#10:cmpne r0,#13:beq Aa
  254. bal _`
  255. .Aa ldr r11,[r2]:add r11,r11,r0:cmp r11,#23:addeq r2,r2,#1:subs r5,r5,#1:bmi ``:sub r9,r9,#32:bl z`:bal _`:.`` swi "Wimp_GetRectangle":bal w`
  256. .z` swi 256+25:swi 256+4:mov r0,r8:swi "OS_WriteC":mov r0,r0,lsr#8:swi "OS_WriteC":mov r0,r9:swi "OS_WriteC":mov r0,r0,lsr#8:swi "OS_WriteC":movs pc,r14
  257. .v` equd G_%
  258. .Ba% equd 0:.Ca% equd 0:.Da% equd 0:.Ea% equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:.Fa% equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:.Ga% equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0
  259. equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:equd 0:.Ha% equd 0:.Ia% equd 0:.Ja% equd 0:.Ka% equd-1:.La% equd 0:.Ma% equd 0:.Na% equd 0:.Oa% equd 0:.Pa% equd 0:.Qa% equd 255
  260. 2<equs "Unable to resize block for ArtWorks!":equb 0:align
  261. .Ra cmp r11,#0:stmfd r13!,{r4-r8,r14}:andne r5,r15,#(%1101<<28):teqnep r15,r5:ldmnefd r13!,{r4-r8,pc}:mov r1,#0:sub r1,r1,#1:cmp r0,r1:beq Sa:ldmltfd r13!,{r4-r8,pc}:.Ta str r0,Ba%:ldr r3,Ia%:sub r3,r3,#&8000:add r3,r3,r0
  262. mov r0,r3:swi "Wimp_SlotSize":cmp r3,r0:bgt Ua:ldr r0,Ia%:ldr r1,Ba%:str r1,Ja%:ldr r2,Ka%:ldr r3,La%:and r5,r15,#(%111<<29):teqp r15,r5:ldmfd r13!,{r4-r8,pc}:.Ua:adr r0,Qa%:orr r5,r15,#1<<28:teqp r15,r5:ldmfd r13!,{r4-r8,pc}
  263. .Sa:ldr r0,Ia%:ldr r1,Ja%:ldr r2,Ka%:ldr r3,La%:ldmfd r13!,{r4-r8,pc}:.Ca stmfd r13!,{r14}:swi "XAWRender_FileInitAddress":str r0,Ca%:ldr r0,Ia%:mov r12,r1:adr r1,Ra:ldr r2,Ja%:adr r14,Va:ldr pc,Ca%
  264. .Va swivs "OS_GenerateError":str r0,Ja%:ldmfd r13!,{pc}:.Da stmfd r13!,{r14}:swi "XAWRender_RenderAddress":str r0,Da%:ldr r0,Ka%:mov r12,r1:adr r1,Ea%:adr r2,Fa%:adr r3,Ga%:ldr r4,Ia%:adr r5,Ra:ldr r6,Ha%:mov r7,#0:adr r14,Wa
  265. ldr pc,Da%:.Wa swivs "OS_GenerateError":ldmfd r13!,{pc}:.Xa stmfd r13!,{r14}:ldr r0,Ka%:swi "XAWRender_DocBounds":str r2,Ma%:str r3,Na%:str r4,Oa%:str r5,Pa%:ldmfd r13!,{pc}:]:
  266. Ya (Za%):
  267. aa% Za%,ba%&100:E%=aa%+Za%:
  268. 262361,,g_$+".templates":
  269. 262363,,H_%,aa%,E%,-1,"info",0
  270. ,,R%:
  271. 262337,,H_%
  272. 262363,,H_%,R%,E%,-1,"file",0
  273. ,,R%:
  274. 262337,,H_%
  275. 262363,,H_%,R%,E%,-1,"text",0
  276. 262337,,H_%
  277. 262363,,H_%,R%,E%,-1,"pic",0
  278. ,,R%:
  279. 262337,,H_%
  280. 262362:!E_%=W`%:E_%!4=1:
  281. 262350,,E_%:$(E_%!28)=ca$:!E_%=W`%:E_%!4=2:
  282. 262350,,E_%:$(E_%!28)=da$:!E_%=W`%:E_%!4=3:
  283. 262350,,E_%:$(E_%!28)=ea$
  284. E!E_%=K_%:E_%!4=0:
  285. 262350,,E_%:J%=E_%+8:
  286. 32:D`%!I%=J%!I%:
  287. 262336,200,&4B534154,"CDview"
  288. fa%,k`%:
  289. fa%<300
  290. 0,"This program requires RISC-OS 3 or better":
  291. E_%&180,L_%&100,j`% 24,R_%&100,e_% 15:
  292. D`%&28,F`%&60,y_%&B000:$j`%="CDview":
  293. $+" During initialisation",
  294. -&8000:H_%=
  295. 35,"CDview$Dir",E_%,256,0,3
  296. ,,I%:E_%?I%=13:g_$=$E_%:
  297. T_(&1000)=
  298. A`(1,"Not enough memory available to run !CDview"):
  299. Ya(&400):
  300. H`:m_%=
  301. c`("CDview",-1,J`$):
  302. O`:I%=
  303. T_(0):
  304. ga:$F`%="Ssmall_dir":$(F`%+16)="Ssmall_FFF":$(F`%+32)="Ssmall_FF9":$(F`%+48)="Ssmall_AFF":$(F`%+64)="Ssmall_D94":$(F`%+80)="Ssmall_FF9":ca$="CDview v0.13":da$="David Holden":ea$="
  305.  A.P.D.L. 1995":D_%=%110000110001:G`%=-550
  306. ha%&300,ia 24,ja% 13,ka% 15,la% 255:
  307. ma:na%=
  308. z_(oa%,pa$):
  309. qa%,ra%,sa%:
  310. ta%,d`%,ua%:
  311. 131080,5,pa$
  312. ,,,,I_%:!y_%=U_%:
  313. 262348,,y_%:
  314. y_%!88>0
  315. ,!E_%=U_%:E_%!4=0:
  316. 262340,,E_%:I%=
  317. T_(0)
  318. :qa%=y_%!12-y_%!4:ra%=y_%!16-y_%!8:sa%=
  319. va(qa%,
  320. ,ta%):
  321. T_(ta%+I_%+8)=0 I%=
  322. A`(1,"Not enough memory available to load this file"):
  323. /d`%=H_%:ua%=d`%+ta%:
  324. wa(d`%,ta%):
  325. oa%=&FF9
  326. wa(ua%,I_%+8):
  327. 46,10+256,ua%,pa$
  328. 131080,255,pa$,ua%
  329. xa(oa%,ua%,I_%,$e_%,d`%,sa%,
  330. ya(d`%,
  331. ):!E_%=U_%:E_%!4=0:E_%!12=qa%:E_%!8=-qa%:E_%!16=0:E_%!20=&0700A11A:E_%!24=e_%:E_%!28=d`%:E_%!32=
  332. ($e_%):
  333. 262338,,E_%:!E_%=U_%:
  334. 262347,,E_%:E_%!28=-1:
  335. 262341,,E_%
  336. 262353,-1,E_%!4,E_%!8,E_%!4+qa%,E_%!8+qa%+40:
  337. xa(oa%,za%,_a%,`a$,Ab%,Bb%,Cb%):
  338. r0%,r1%,r2%,r3%:
  339. Db%,Eb%,I%:
  340. Fb%,Gb%,Hb%,Ib%,Jb%,Kb%,Lb%:
  341. Mb(Cb%,Fb%,Gb%,Hb%,Ib%,Jb%,Kb%,Lb%):
  342. Fb%>=63 Db%=0
  343. Db%=1
  344. 131118,15+256,Ab%,`a$,Db%,Bb%
  345. Hb%,Bb%
  346. Jb%,Cb%:!ha%=0:
  347. 131118,60+256,Ab%,`a$,ha%
  348. r0%,r1%,r2%,r3%:
  349. 46,r0%,r1%,r2%,r3%:I%=
  350. T_(0):
  351. 131118,24+256,Ab%,`a$
  352. ,,Eb%:
  353. 4:Eb%!(44+I%*2)=Nb%!I%:Eb%!(44+I%*2+4)=Nb%!I%:
  354. 4:Eb%!(44+I%*2)=Ob%!I%:Eb%!(44+I%*2+4)=Ob%!I%:
  355. 4:Eb%!(44+I%*2)=Pb%!I%:Eb%!(44+I%*2+4)=Pb%!I%:
  356. 264016:
  357. Qb(&FFFFFF00):
  358. 0,0,Bb%:
  359. &FF9:
  360. Rb(za%,1,Cb%,0,0,Bb%,Bb%)
  361. &AFF,&CC3:
  362. Sb(za%,Bb%,_a%)
  363. &D94:
  364. Tb(za%,Bb%,_a%)
  365. 46,r0%,r1%,r2%,r3%:
  366. 264016:
  367. A`(1,"Unable to display this Artworks file."):na%=
  368. Rb(Ub%,Vb%,Cb%,Wb%,Xb%,Yb%,Zb%):
  369. ab%,bb%,cb%,Fb%,Gb%,db%,Ib%,eb%,Kb%,Lb%,Hb%,Jb%:
  370. fb,gb,hb,ib,jb,kb,lb%:
  371. mb%,nb%,ob%,pb%,qb%:
  372. 46,13+256,Ub%,ja%,13,Vb%:
  373. 131118,40+256,Ub%,ja%
  374. ,,,ab%,bb%,,cb%
  375. Mb(cb%,ob%,Gb%,db%,Ib%,eb%,Kb%,Lb%):fb=ab%*db%:ka%!0=db%*256:gb=bb%*eb%:ka%!4=eb%*256:
  376. fb<>0
  377. gb<>0
  378. *hb=Yb%/fb:ib=Zb%/gb:
  379. hb<ib ib=hb
  380. hb=ib
  381. Mb(Cb%,pb%,Gb%,Hb%,Ib%,Jb%,Kb%,Lb%):
  382. hb<>0 ka%!8=Hb%*256/hb
  383. ib<>0 ka%!12=Jb%*256/ib
  384. 46,24+256,Ub%,ja%
  385. ,,lb%:
  386. lb%!32<>44
  387. lb%!32-52
  388. 8:rb%!(I%/2)=lb%!(I%+44):
  389. :mb%=rb%
  390. 15:mb%=Nb%
  391. 3:mb%=Ob%
  392. 1:mb%=Pb%
  393. :mb%=0
  394. 15:nb%=Nb%
  395. 3:nb%=Ob%
  396. 1:nb%=Pb%
  397. :nb%=0
  398. ob%>255
  399. .    qb%=0
  400. :qb%=la%:
  401. lb%!32<>44+2048
  402. 264000,cb%,mb%,Cb%,nb%,la%
  403. 264006,mb%!(Q%<<2),Cb%,nb%
  404. la%?Q%:
  405. :jb=(Yb%-hb*fb)/2+Wb%:kb=(Zb%-ib*gb)/2+Xb%:
  406. 46,52+256,Ub%,ja%,jb,kb,8,ka%,qb%
  407. Sb(za%,Bb%,_a%):
  408. fb,gb,hb,ib,jb,kb:sb=za%!24:tb=za%!28:ub=za%!32:vb=za%!36:fb=(ub-sb)
  409. 256:gb=(vb-tb)
  410. 256:wb%=sb
  411. 256:xb%=tb
  412. fb=0 fb=1
  413. gb=0 gb=1
  414. K*hb=Bb%/fb:ib=Bb%/gb:
  415. hb<ib ib=hb
  416. hb=ib
  417. yb=hb:jb=(Bb%-hb*fb)/2:kb=(Bb%-ib*gb)/2:zb=&10000*yb:_b=zb/&10000:ia!0=zb:ia!4=0:ia!8=0:ia!12=zb:ia!16=jb*&100-sb*_b:ia!20=kb*&100-tb*_b:
  418. 415040,0,za%,_a%,ia,0:
  419. Tb(`b%,Bb%,I_%):
  420. `b%!4>10
  421. !Ia%=`b%:!Ja%=I_%:!Ka%=-1:!La%=I_%:
  422. Ca:!Ka%=!Ia%:!La%=!Ja%:!Ia%=!Ka%+!La%:!Ja%=0:
  423. Xa:!Ea%=0:Ea%!4=0:Ea%!8=!Ma%:Ea%!12=!Na%:Ea%!16=!Oa%:Ea%!20=!Pa%:fb=!Oa%-!Ma%:gb=!Pa%-!Na%:
  424. fb=0 fb=1
  425. gb=0 gb=1
  426. q%hb=Bb%*256/fb:
  427. hb>=&7FFF
  428. hb=&7FFF
  429. r%ib=Bb%*256/gb:
  430. ib>=&7FFF
  431. ib=&7FFF
  432. hb<ib ib=hb
  433. hb=ib
  434. !Fa%=&10000*hb:Fa%!4=0:Fa%!8=0:Fa%!12=&10000*hb:Fa%!16=(Bb%*256-fb*hb)/2-!Ma%*hb:Fa%!20=(Bb%*256-gb*hb)/2-!Na%*hb:
  435. ,Fb%,Gb%,Hb%,Ib%,Jb%,Kb%,Lb%):!Ga%=Gb%:Ga%!4=Ib%:Ga%!8=Kb%:
  436. 1:Ac%=Bc%
  437. 3:Ac%=Cc%
  438. 15:Ac%=Dc%
  439. :Ac%=Ec%
  440. 4:!(Ga%+12+I%)=Ac%!I%:
  441. :!Ha%=110:
  442. 263872:
  443. 263874:
  444. va(Fc%,Gc%,
  445. Hc%):
  446. Fb%,Gb%,Hb%,Ib%,Jb%,Kb%,Lb%:
  447. Mb(Gc%,Fb%,Gb%,Hb%,Ib%,Jb%,Kb%,Lb%):Ic%=Hb%*8/Lb%*4:
  448. Ic%<>0
  449. Fc%=((Fc%
  450. Ic%)+1)*Ic%
  451. :Hc%=((Fc%/Hb%*Fc%/Jb%)*Lb%/8-(Lb%=8)*512+256):
  452. Gc%=2
  453. Gc%=4
  454. Gc%=5
  455. Gc%=10
  456. Hc%=Hc%*2
  457. ya(Jc%,Gc%):
  458. za%,J%,I%:
  459. 53,Gc%,3
  460. ,,Fb%:za%=Jc%+Jc%!8:
  461. Jc%!4:
  462. 4:za%!(44+I%*2)=Nb%!I%:za%!(44+I%*2+4)=Nb%!I%:
  463. 4:za%!(44+I%*2)=Ob%!I%:za%!(44+I%*2+4)=Ob%!I%:
  464. 4:za%!(44+I%*2)=Pb%!I%:za%!(44+I%*2+4)=Pb%!I%:
  465. :za%+=!za%:
  466. wa(S%,_a%):!S%=_a%:S%!8=16:
  467. 46,9+256,S%:
  468. Mb(Gc%,
  469. Lb%):
  470. 53,Gc%,3
  471. ,,Kc%:
  472. 53,Gc%,4
  473. ,,Gb%:Hb%=1<<Gb%:
  474. 53,Gc%,5
  475. ,,Ib%:Jb%=1<<Ib%:
  476. 53,Gc%,9
  477. ,,Kb%:Lb%=1<<Kb%:
  478. Qb(Lc):
  479. 264005,Lc,
  480. 3)<<6
  481. Nc(Oc%):
  482. c%,p%:
  483. 53,Oc%,3
  484. ,,c%:
  485. 15:p%=Nb%
  486. 3:p%=Ob%
  487. 1:p%=Pb%
  488. :p%=0
  489. 256(m%):
  490. 53,m%,3
  491. ,,c%:=(c%>=63)
  492. Nb% 80,Ob% 80,Pb% 80,Qc% 320,rb% 1023:
  493. 8,255,g_$+".Pal16",Nb%:
  494. 8,255,g_$+".WimpPals",Qc%:Bc%=Qc%:Cc%=Bc%+80:Dc%=Cc%+80:Ec%=Dc%+80:
  495. 1:Pb%!(4*(1-I%))=(&FFFFFF*I%)<<8:
  496. 3:Ob%!(4*(3-I%))=(&555555*I%)<<8:
  497.