home *** CD-ROM | disk | FTP | other *** search
/ Dream 55 / Amiga_Dream_55.iso / RISCOS / APPS / TEXT / MISC / CRIB.ZIP / !Crib / !RunImage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1996-04-04  |  6KB  |  239 lines

  1.   !RunImage for Crib
  2.   written on 4-4-1996 by Richard 'Strider' Atterer
  3.   This program is in the PD. I am not responsible for it!
  4.   Happy cribbing - (but maybe you should see an oculist first)
  5.   Address: Richard Atterer, Beethovenstr. 30, 86391 Stadtbergen, FRG
  6. *@%=&1000509:
  7. 3,3) 
  8. $" (";
  9. get$="RAM:*"
  10. put$="RAM:CribImage"
  11. 7dpi%=360:gfx$="<Crib$Dir>.CharSet2":ch$="m":bold%=
  12. #extraleading%=0:
  13.  ver in pixels
  14. #extraspacing%=0:
  15.  hor in pixels
  16. Juppercaseonly%=
  17.  set TRUE if your charset only has uppercase letters
  18. 29:sx%=1600:sy%=1200
  19. "Pointer 1"
  20. ch$,1)
  21. 4    
  22. "s":ch$="small ("+
  23. (11/dpi%*72)+" pt)     "
  24. 5    
  25. "m":ch$="medium ("+
  26. (13/dpi%*72)+" pt)     "
  27. 1    
  28.  ch$="large ("+
  29. (17/dpi%*72)+" pt)     "
  30. 0,0)"C R I B"'"
  31. "Written on 10/3/1996 by Richard 
  32. Strider
  33.  Atterer."
  34. "This program is in the public domain."'
  35. "Note that you need a text file in 
  36. RAM::RamDisc0.$
  37.  for this one to run!"''
  38. "Character set: ";ch$
  39. "dpi of your printer (for correct scaling): ";dpi%
  40. bold%
  41. "Thick lines"
  42. "Thin lines "
  43. ''"Press: "
  44. "  1   small character set, uppercase only (";11/dpi%*72" pt)    "
  45. "  2  medium character set, uppercase only (";13/dpi%*72" pt)    "
  46. "  3   large character set, uppercase only (";17/dpi%*72" pt)    "
  47. "  4  for 360 dpi"
  48. "  5  for 180 dpi (360 dpi printing with doubled size)"
  49. "  6  for 300 dpi"
  50. "  7  for 150 dpi (300 dpi printing with doubled size)"
  51. "  8  to enter other value for dpi"
  52. "  9  to toggle thin/thick lines"'
  53. "Press Space to start."''
  54. 0,26)
  55.   a$=
  56. -/    
  57. "1":gfx$="<Crib$Dir>.CharSet1":ch$="s"
  58. ./    
  59. "2":gfx$="<Crib$Dir>.CharSet2":ch$="m"
  60. //    
  61. "3":gfx$="<Crib$Dir>.CharSet3":ch$="l"
  62. "4":dpi%=360
  63. "5":dpi%=180
  64. "6":dpi%=300
  65. "7":dpi%=150
  66. 4"    
  67. "Value for dpi";dpi%
  68. "9":bold%=
  69. bold%
  70.  a$=" "
  71.  0,255,255,255:
  72.  1,0,0,0
  73.  32,0,sx%-34,sy%-34
  74. 23,17,7,%110,8;8;0,0:
  75. pr(-2,sy%-18,"mm")
  76. 23,17,7,%100,9;8;0,0
  77.  0,0,30,sy%:
  78.  32,sy%-32,sx%,30
  79.  32,sy%-34
  80. message("Choose X/Y size...")
  81. mm(sx%)
  82.   a%=
  83. os(i%)
  84. E#    
  85. a%,4,a%,32:
  86. -4,-a%,-32,-a%
  87. F,    
  88. pr(a%-16,32,
  89. pr(-34,-a%-4,
  90. G        
  91. H%    
  92. a%,16,a%,32:
  93. -16,-a%,-32,-a%
  94.  load and prepare character set
  95. gfx$:len%=
  96. len%<((sx%*sy%)>>5) len%=((sx%*sy%)>>5)
  97.  sa% len%:!sa%=len%:sa%!8=16:
  98. "OS_SpriteOp",256+9,sa%
  99. "OS_SpriteOp",256+10,sa%,gfx$
  100. s%(255),width%(255)
  101. "OS_SpriteOp",256+24,sa%,"ndef"
  102. ,,ndef%:s%()=ndef%
  103. "OS_SpriteOp",256+40,sa%,"ndef"
  104. ,,,a%,height%:width%()=a%
  105. "OS_SpriteOp",512+60,sa%,ndef%,0 
  106. A%,B%,C%,D%
  107. "XOS_SpriteOp",256+24,sa%,
  108. ,,a%;b%
  109. 1)=0 
  110. X@    s%(i%)=a%:
  111. "OS_SpriteOp",512+40,sa%,a%
  112. ,,,width%(i%),b%
  113. Y<    
  114. b%<>height% 
  115.  1,"Height of sprite 
  116.  wrong."
  117. Zv    
  118. bold% 
  119. "OS_SpriteOp",512+60,sa%,a%,0:
  120. "OS_SpriteOp",512+34,sa%,a%,2,0,1:
  121. "OS_SpriteOp",512+34,sa%,a%,0,2,1
  122. "OS_SpriteOp",A%,B%,C%,D%
  123. uppercaseonly%
  124. "Territory_UpperCaseTable",-1 
  125. aR    
  126. s%(i%)=ndef% 
  127.  s%(a%?i%)<>ndef% s%(i%)=s%(a%?i%):width%(i%)=width%(a%?i%)
  128.  load source text
  129. get$:b%=
  130.  get% b%+1:end%=get%+b%:
  131. "Load "+get$+" "+
  132. ~get%
  133. end%?-1<>10 ?end%=10:end%+=1
  134. 0,-sy%,sx%,sy%
  135. message("Choose X/Y size...")
  136.   oldx%=0:oldy%=0
  137. x%,y%,z%
  138. r$    x%=
  139. mm(x%)+.5:y%=
  140. mm(-y%)+.5
  141. x%<>oldx%
  142. y%<>oldy% 
  143. t/      
  144. os(oldx%),0,
  145. os(oldx%),-
  146. os(oldy%)
  147. u0      
  148. os(oldy%),
  149. os(oldx%),-
  150. os(oldy%)
  151. v&      
  152. os(x%),0,
  153. os(x%),-
  154. os(y%)
  155. w'      
  156. os(y%),
  157. os(x%),-
  158. os(y%)
  159.       oldx%=x%:oldy%=y%
  160. y        
  161. {(  xbox%=
  162. os(x%)>>1:ybox%=
  163. os(-y%)>>1
  164.  xbox%<<1,0,xbox%<<1,ybox%<<1
  165.  0,ybox%<<1,xbox%<<1,ybox%<<1
  166. a%,a%,b%:
  167.  plot!
  168. message("(Click with right button to restart.)")
  169.   ptr%=get%
  170. 3  x%=0:y%=1-height%:lastspace%=-1:lastspacex%=0
  171. +    a%=?ptr%:ptr%+=1:
  172. ptr%=end% ybox%=0
  173. 8    
  174. a%=32 lastspace%=ptr%:lastspacex%=x%+width%(32)
  175. a%=10
  176. 3      lastspacex%=x%:x%=xbox%+1:lastspace%=ptr%
  177.       
  178. S      
  179. "OS_SpriteOp",546,sa%,s%(a%),x%<<1,y%<<1,0:x%+=width%(a%)+extraspacing%
  180.         
  181. x%>xbox%
  182. D      
  183. lastspace%=-1 lastspace%=ptr%-1:lastspacex%=x%-width%(a%)
  184. :      
  185.  lastspacex%<<1,y%<<1,sx%,(height%-1)<<1
  186. F      x%=0:y%-=height%+extraleading%:ptr%=lastspace%:lastspace%=-1
  187.         
  188.  a%,a%,z%
  189.  y%<ybox% 
  190. 1)=0 
  191. Y    
  192. message("Click with left button to save and quit, with right button to restart")
  193. a%,a%,z%:
  194. a%,a%,z%:
  195. a%,a%,b%:
  196.  grab and save sprite (in Draw file)
  197. message("")
  198. 0!sa%=len%:sa%!8=16:
  199. "OS_SpriteOp",256+9,sa%
  200. "OS_SpriteOp",256+16,sa%,"image",1,0,(y%+height%)<<1,xbox%<<1,0
  201. "OS_SpriteOp",256+40,sa%,"image"
  202. ,,,x%,y%
  203. put$:
  204. "SetType "+put$+" aff"
  205. #a%,"Draw";:
  206. put(201):
  207. put(0):
  208. #a%,"Crib        ";
  209. put(0):
  210. put(0):
  211. put(x%*256*180/dpi%):
  212. put(y%*256*180/dpi%)
  213. put(5):
  214.  Transformed sprite object
  215. b%=sa%+sa%!8:
  216. put(24+!b%)
  217. put(0):
  218. put(0):
  219. put(x%*256*180/dpi%):
  220. put(y%*256*180/dpi%)
  221. "OS_GBPB",2,a%,b%,!b%
  222.  0,0,sx%,sy%
  223. "OS_SpriteOp",256+34,sa%,"image",16,16,0
  224.  give OS units for mm and v.v.
  225. os(mm)
  226. =mm/25.4*2*dpi%
  227. mm(os)
  228. =os*25.4/2/dpi%
  229. pr(x%,y%,a$)
  230. x%,y%:
  231. message(a$)
  232.  8,40-sy%,sx%,16:
  233. pr(8,56-sy%,a$):
  234. put(x%)
  235. #a%,x%:
  236. #a%,x%>>8:
  237. #a%,x%>>16:
  238. #a%,x%>>24:
  239.