home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine 1997 / ARCHIVE_97.iso / text / hints / vol_10 / issue_05 < prev    next >
Text File  |  1997-08-11  |  11KB  |  356 lines

  1. Hints and Tips
  2. 10.5
  3. Essential Selection demo CD Ö In Archive 10.1 p40, I wrote about YITM
  4. öEssential CDò demo disc and its incompatibility with RiscPC 700
  5. (RISCáOS 3.6) series 16-bit sound card, saying that it necessitated a
  6. patch to be obtained and run first. This now only applies to the
  7. original version 1 CD (December 1994) which was Acorn/PC dual
  8. platform. The current version 2 (December 1995), Acorn platform only,
  9. has the patch included on the CD-ROM and runs at start-up, offering
  10. the choice of 8 or 16-bit sound. This later version also has several
  11. additional demos of 1996 releases. It is a very well produced demo
  12. disc of YITM educational multimedia catalogue and, best of all, it is
  13. free!
  14. 10.5
  15. Colin Sutton, Bradford
  16. 10.5
  17. Hard disc nightmare Ö The tale of the lost IDE hard disc in last
  18. monthæs Comment Column (10.4 p26) reminded me of a few weeks ago when
  19. Iáaccidentally trashed my main SCSI HD. (Filecore wanted to know if
  20. the disc had been formatted!) Like a fool, Iæd not taken backups
  21. either.
  22. 10.5
  23. Anyway, just before I was about to throw myself off the top of a very
  24. tall building, I remembered the fsck suite from Sergio Monesi. Not
  25. only did I manage to make my disc readable again (without
  26. reformatting), but I also managed to recover all my lost files using
  27. fsck and Hardfix.
  28. 10.5
  29. I canæt recommend the fsck suite highly enough Ö it was the best ú5 I
  30. ever spent.
  31. 10.5
  32. Ian Clark <rooster@cat1.demon.co.uk>
  33. 10.5
  34. PC partitions Ö Following on from my hint last month, p30, I have
  35. just realised that I made
  36. 10.5
  37. an elementary mistake in the !Boot file:
  38. 10.5
  39. If PCDrives$Path=öò Then ...
  40. 10.5
  41. should have been:
  42. 10.5
  43. If ö<PCDrives$Path>ò=öò Then ...
  44. 10.5
  45. Sorry about that!
  46. 10.5
  47. Steve Drain <steve.d@virgin.net>
  48. 10.5
  49. Polling the Wimp Ö One of the problems with version 3.1 of RISCáOS is
  50. the time taken to page applications in and out of memory when
  51. multitasking. (I have heard it said that this problem has been
  52. overcome with later versions.) If the application, at the time of
  53. paging in and out, occupies a large wimp slot, this situation is even
  54. worse.
  55. 10.5
  56. I find this problem most acute when using Twain with a scanner, but
  57. other software, which is highly multitasking, can also slow down when
  58. processing. Iáfind it essential to quit any large applications and
  59. associated files, such as Impression, when acquiring an image from
  60. the scanner, otherwise the scanner continually pauses as it waits for
  61. the computer to catch up.
  62. 10.5
  63. The solution is for software writers to only have the wimp Épollæ
  64. them when it is necessary, and to keep the slot sizes to a minimum.
  65. Could the latter be achieved by storing large stationary data in the
  66. System sprite pool? Hum! The former should be done by sending the
  67. correct poll word and by setting up a list of messages you wish to
  68. receive.
  69. 10.5
  70. The poll word, sent when you call Wimp_Poll, is to state which events
  71. you are interested in receiving, and the list of messages contains
  72. those you wish to receive via a message event. The message list is
  73. important because of the large, and ever expanding, number of
  74. messages that are Ébroadcastæ around the wimp. If you do not state
  75. which messages you are interested in, you will be sent all of the
  76. broadcast messages, such as when a directory is opened!
  77. 10.5
  78. The messages you wish to receive should be stated as:
  79. 10.5
  80. DEF PROCWimp_Start(taskname$)
  81. 10.5
  82. ON ERROR PROCError:END
  83. 10.5
  84. DIM wimp% 256
  85. 10.5
  86. task%=0
  87. 10.5
  88. wimp%!0=1     :REM Message_DataSave
  89. 10.5
  90. wimp%!4=2     :REM Message_DataSaveAck
  91. 10.5
  92. wimp%!8=3     :REM Message_DataLoad
  93. 10.5
  94. wimp%!12=4    :REM Message_DataLoadAck
  95. 10.5
  96. wimp%!16=8    :REM Message_PreQuit
  97. 10.5
  98. wimp%!20=&502 :REM Message_HelpRequest
  99. 10.5
  100. wimp%!24=&400C1 :REM Message_ 
  101. 10.5
  102. ModeChange
  103. 10.5
  104. wimp%!28=&808C1 :REM Message_
  105. 10.5
  106. TaskWindow_Output
  107. 10.5
  108. wimp%!32=0      :REM end of list
  109. 10.5
  110. SYSòWimp_Initialiseò,310,&4B534154, 
  111. 10.5
  112. taskname$,wimp% TO ,task%
  113. 10.5
  114. ENDPROC
  115. 10.5
  116. Please note that the version number used here is 310 (as in 3.10 Ö
  117. there may be important additions for later versions) and also there
  118. are many other possible messages you may like to receive.
  119. 10.5
  120. The wimp poll will only return to your task if an event has occurred
  121. that you have stated you are interested in. If it is of no
  122. consequence that the pointer has entered a window that you own, you
  123. should mask this event out. If you do not, your application will be
  124. paged into memory, an event ÉPointer_Entering_Windowæ will be sent to
  125. you, you will ignore it, request the next wimp poll and be paged out
  126. of memory.
  127. 10.5
  128. A far more important event to mask out is the Null_Reason_Code event.
  129. This event will page in your application whenever the user is not
  130. clicking away, to allow background processing. If you donæt need to
  131. do any background processing, mask it out!
  132. 10.5
  133. Some code:
  134. 10.5
  135. REM Stages of the applicationæs life
  136. 10.5
  137. PROCWimp_Start(òMy Applicationò)
  138. 10.5
  139. PROCSetInitialData
  140. 10.5
  141. PROCWaitForEvent
  142. 10.5
  143. PROCWimp_CloseDown
  144. 10.5
  145. END
  146. 10.5
  147. REM The applications base state,
  148. 10.5
  149.  waiting for instruction
  150. 10.5
  151. DEF PROCWaitForEvent
  152. 10.5
  153. finished%=0   :REM Global variable can 
  154. 10.5
  155. be set anywhere
  156. 10.5
  157. REPEAT
  158. 10.5
  159.   PROCCallWimpPoll(%1)
  160. 10.5
  161.   REM mask out null event
  162. 10.5
  163. UNTIL finished%
  164. 10.5
  165. ENDPROC
  166. 10.5
  167. DEF PROCWimp_CloseDown
  168. 10.5
  169. REM close any files and tidy up and
  170. 10.5
  171.  then...
  172. 10.5
  173. SYSòWimp_CloseDownò,task%,òTASKò
  174. 10.5
  175. ENDPROC
  176. 10.5
  177. DEF PROCPolling
  178. 10.5
  179. REM call procedure during extensive
  180. 10.5
  181.  processing to keep multitasking
  182. 10.5
  183. PROCCallWimpPoll(%0)
  184. 10.5
  185. WHILE Paused%=1 AND Aborted%=0
  186. 10.5
  187.   PROCCallWimpPoll(%1)
  188. 10.5
  189.   REM mask out null event whilst
  190. 10.5
  191.  processing paused
  192. 10.5
  193. ENDWHILE
  194. 10.5
  195. ENDPROC
  196. 10.5
  197. DEF PROCCallWimpPoll(idle%)
  198. 10.5
  199. REM polling the wimp for events and a
  200. 10.5
  201.  short break in processing!
  202. 10.5
  203. LOCAL event%,mask%
  204. 10.5
  205. mask%=%11100100110000+idle%
  206. 10.5
  207. REM masked out events 4,5,8,11,12,13
  208. 10.5
  209.  as will not respond to them
  210. 10.5
  211. SYSòWimp_Pollò,mask%,wimp% TO event%
  212. 10.5
  213.   CASE event% OF
  214. 10.5
  215.   WHEN0 : REM will give you control
  216. 10.5
  217.  back for further processing
  218. 10.5
  219.   WHEN2 : PROCEvent_WindowOpen
  220. 10.5
  221.   WHEN3 : PROCEvent_CloseWindow
  222. 10.5
  223.   WHEN6 : PROCEvent_MouseClick
  224. 10.5
  225.   WHEN9 : PROCEvent_MenuChoice
  226. 10.5
  227.   WHEN17,18: PROCEvent_Message  
  228. 10.5
  229.     REM those stated in PROCWimp_Start
  230. 10.5
  231.   ENDCASE
  232. 10.5
  233. IF finished%=1 THEN Aborted%=1
  234. 10.5
  235. REM Aborted% is used here as a means
  236. 10.5
  237. REM to drop through processing for
  238. 10.5
  239. REM various reasons and not just
  240. 10.5
  241. REM when finishing!
  242. 10.5
  243. ENDPROCáuá
  244. 10.5
  245. Robert Lytton, Leeds
  246. 10.5
  247. Printing from both RISC OS and Windows Ö I have an Aleph One PC
  248. podule card in my A540, and I find printing from Windows, through the
  249. A540 and a Turbo Driver, to be terribly slow. There are various
  250. Éfixesæ for this, but I need things to work for my non-technical wife
  251. (not the other one). So I decided to buy a printer sharer (RS number
  252. 215-016) and connect it to both the A540 printer port (using the
  253. Turbo Driver cable) and to the PC card (with a regular cable). I then
  254. configured the PC card to use its own printer port. To work in
  255. Windows it is vital to turn off the Windows Éfast print to portæ
  256. option which is on by default. From the Control panel, you must go
  257. through Printers, to Connect, to find the box to click.
  258. 10.5
  259. Brian Cowan <UHAP027@vms.rhbnc.ac.uk>
  260. 10.5
  261. StrongED & Keystroke Ö Has anyone tried the combination of Keystroke
  262. and StrongED? At first when I moved over to StrongED, I had real
  263. difficulties because Keystroke does not seem to be able to
  264. communicate with StrongED when it comes to cursor movements within
  265. öInsert textò commands. (Has anyone else had that problem and/or
  266. solved it?)
  267. 10.5
  268. Anyway, I have got round it to some extent by using the \@ within
  269. StrongED to mark a place to which the cursor should go, and using
  270. Keystroke to enter the characters that call up the abbreviation.
  271. 10.5
  272. For example, I need keystrokes that simplify some of the editing when
  273. answering emails. So suppose I start with the following text:
  274. 10.5
  275. > end of the paragraph.
  276. 10.5
  277. >
  278. 10.5
  279. > This is the start of the
  280. 10.5
  281. I have a Keystroke that is defined as |?|?$; (i.e.ádelete, delete
  282. followed by $;) and then I have a StrongED abbreviation definition
  283. for $; as \n\n\@\n\@ which means type two returns, mark where the
  284. cursor is to go (\@), do another return and then go back to where we
  285. want the cursor. I then put the cursor on the blank line between the
  286. two paragraphs that I want to split, and I end up with:
  287. 10.5
  288. > end of the paragraph.
  289. 10.5
  290. I type on this line... etc
  291. 10.5
  292. > This is the start of the
  293. 10.5
  294. StrongED is extremely powerful, and Iæm hoping weæll soon have some
  295. articles on it, hopefully two lots, one for beginners (because I
  296. found it very difficult to get started) and one to encourage people
  297. into using it more deeply.
  298. 10.5
  299. One other quick hint (from Guttorm Vik himself) is to use ` for your
  300. abbreviation definitions instead of $. The reason for using it is
  301. that, unlike $, it is an un-shifted character and is therefore
  302. quicker to type. So, I have things like:
  303. 10.5
  304. `ri  RISCáOS
  305. 10.5
  306. `rp  RiscPC
  307. 10.5
  308. `sm  StrongARM
  309. 10.5
  310. `sa  Small Ads
  311. 10.5
  312. `se  StrongED
  313. 10.5
  314. In each case, itæs three simple un-shifted keystrokes to produce
  315. complex combinations of shifted and un-shifted letters.
  316. 10.5
  317. Oh, and I use `` for öUKPò which I use in emails instead of the pound
  318. sign which isnæt handled properly by email systems that canæt cope
  319. with MIME encoding.
  320. 10.5
  321. Ed. <paul.NCS@paston.co.uk>
  322. 10.5
  323. System font Ö Since starting to use email, Iáhave been using system
  324. font much more frequently, especially because of !PtrCopy which is so
  325. useful for avoiding having to re-type email addresses Ö just öwipeò
  326. them from some text file into the writeable icon of the öMail toò
  327. window Ö see 9.8 p23. (but Iádigress!)
  328. 10.5
  329. The thing I hate about the system font is the Éslashedæ zeros which I
  330. find so difficult to read. I used to use a command in my boot file
  331. that reprogrammed the screen definition of the zero, so I set out to
  332. find it again and reinstall it on my StrongARM RiscPC! Iáfound it in
  333. Archive 1.12! It was given in the form of VDU commands:
  334. 10.5
  335. VDU23,48,60,102,102,102,102,102,60,0
  336. 10.5
  337. VDU23,79,126,102,102,102,102,102,126,0
  338. 10.5
  339. These can be put in a Basic program, but if you want to use an Obey
  340. file, and put it in the PreDesk directory, you need the command line
  341. equivalent:
  342. 10.5
  343. *echo<23><48><60><102><102><102><102>
  344. 10.5
  345. <102><60><0>
  346. 10.5
  347. *echo<23><79><126><102><102><102>
  348. 10.5
  349. <102><102><126><0>
  350. 10.5
  351. This redefines the zero (ASCII 48) into the shape of the capital O,
  352. and then squares up the shape of the capital O (ASCII 79) to
  353. differentiate the two.
  354. 10.5
  355. Ed. <paul.NCS@paston.co.uk>
  356.