home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / t / tornado / QandA / Paul2r < prev    next >
Encoding:
Text File  |  1995-07-14  |  8.9 KB  |  186 lines

  1. Quoting DigiLink Email Gateway:
  2.  
  3. >> [millisecond timer] Emm, it's not hugely important as I was merely
  4. >> thinking it'd be nice if
  5. > The timer I've got doesn't actually work on a RiscPC - attaches itself
  6. > directly to hardware vectors so the installer need re-writing.  I'll look
  7. > at the IOMD this weekend.
  8.  
  9. Cheers.
  10.  
  11. >> preempted task has two problems: (a) its code must run for a minimum of
  12. >> 1cs,
  13. > Can't you mark tasks as `blocked'?  Then they wouldn't need to be switched
  14. > in.
  15.  
  16. Haven't marked it into the brief fully yet. BTW, do you have v0.03 of the
  17. brief yet? I can't remember if I sent it to you yet or not.
  18.  
  19. >> Two points to this which makes it impractical: (a) Using OS_SetMemMap is
  20. >> extremely quick, as it's only MEMC's internal pointers that are being
  21. > altered,
  22. > If OS_SetMemMapEntries is so quick,  why do Acorn reccomend that
  23. > applications for ROS3.50+ use dynamic areas,  and why does my desktop slow
  24. > down when I have an app with a 4M wimpslot?
  25.  
  26. Because changing the memory map under the Wimp and not having it crash is
  27. extremely difficult (try it!), and I haven't a clue about the 4Mb wimpslot
  28. slowing it down. Sound like maybe OS_Heap is having difficulty manipulating
  29. such a large heap.
  30.  
  31. >> [subtasks] What do you reckon?
  32. > Need to decide on a policy.  Execute at most once would seem logical - if
  33. > there are any errors then assume that the subtask didn't do anything so
  34. > perhaps start another subtask to try again.  This would mean that subtasks
  35. > would have to work on temp files and not the actual files - if half a file
  36. > is updated and an error occurs (Address exception at 0x12345, for example)
  37. > then you won't have to wonder where to start processing from.
  38.  
  39. Em, you can't have received that new brief then. Subtasks are carefully
  40. watched by Tornado, and if they crash, fail to start etc. then their parent is
  41. told of this, and the reason why as far as it can tell. It's then up to the
  42. parent what to do about it. And if a subtask exits half way through an
  43. operation, the procedure is thus:
  44.    (a) if the subtask was a continual update subtask, processed data already
  45. returned is kept and usually a new subtask started in attempt to finish off
  46. processing (this depends on the error for the exit of the previous subtask
  47. obviously).
  48.    (b) if the subtask only returns its processed data upon termination, all
  49. data contained on the subtask's heap is cleared and the parent informed.
  50. Usually the parent will examine the error, and decide if a reschedule is
  51. suitable.
  52.  
  53. >> On RO2, not doing anything about redraw is fine: the window is cleared.
  54. >> Probably RO3+.
  55. > I tried this again to check it - unless you call Wimp_RedrawWindow and
  56. > Wimp_GetRectangle you definately get another Event_Redraw and other apps
  57. > don't get an event.
  58.  
  59. Oh well. It's been noted.
  60.  
  61. >> See my problem with inefficiency? If you want to amalgamate all returned
  62. >> rectangles while still allowing for the window to be resized, scroll
  63. >> offsets
  64. > I'll be looking at this over the next few days - I have an app which needs
  65. > to pull chunks of data from CD,  convert from BMP format and use them to
  66. > draw the screen.  There's a total of about 8Mb of sprites,  so I can't
  67. > cache the lot.  This is a good candidate for background redraws,  so I'll
  68. > let you have some of the code when it's done.
  69.  
  70. Tornado would use a subtask here, that loads in the data multitaskingly,
  71. converts it to sprite format, and passes it to the parent, which uses the
  72. Tornado central renderers to plot it in the window. Brief already has all
  73. these protocols defined. Sound any better? :-)
  74.  
  75. >> Fraid subtasks are release II, next Christmas. I've written in to the
  76. >> brief most of the protocols: I'll email it out to you when I can.
  77. >> Meanwhile, do
  78. > you > want anything changed in the data structures etc? > 
  79. >> :-) _IF_ you had studied the heap data structure more carefully, you'd see
  80.  
  81. Oh dear - subtasks have just been moved to the current release. Needed for the
  82. central file translators, so it had to be done. And better: they'll probably
  83. be needing a seperate preemptive multitasker - want to do it?
  84.  
  85. > When I wrote most of my last letter I only had the first release - not
  86. > Brief 0.01 so I didn't have the structure to read (only an introduction to
  87. > the Tornado standard and a file called GBPB)...
  88.  
  89. Okay, sorry about that. I thought I had emailed it to you though.
  90.  
  91. >> garbage is done. Anyway, the garbage can be optionally disabled, and even
  92. > then
  93. >> it would be pretty quick, being written in C and all.
  94. > Shurley assembler...
  95.  
  96. If you want to ... :-). Nah, C will be fast enough, and if it isn't then we
  97. can do a bit of hand-optimising. C's good at this type of thing.
  98.  
  99. >> Also, any code written specifically for the RPC will use the 32bit mode
  100. >> /all/ the time. Has to, as it's in the aims that Tornado code should be
  101. > Quoting the PRM (5-11):
  102. >PRM> The new generation of ARM chips used have two modes: 26 bit (which is
  103. >PRM> backwards compatible with ARM2 and 3), and 32 bit.  RISC OS 3.5 only
  104. >PRM> supports the 26 bit mode. *You must not execute code in 32 bit mode*.
  105. >PRM> If you try to do so,  you may get unpredictable crashes, especially if
  106. >PRM> you tru to run the code in address space over 64M
  107. > So it looks like 32 bit code is out.  Basically,  if you're in a 32 bit
  108. > mode and an interrupt occurs,  the OS will return to you in a 26 bit mode. 
  109. > This is likely to screw any uses of R15 and CPSR.
  110.  
  111. Bloody typical! Talk about RO3.5 being stop-gap! Okay, we'll deal with it when
  112. we come to it. I 'spose anyway? Dunno ...
  113.  
  114. >> IMHO it will be when using an internal bus, which is way way way faster
  115. >> than any i/o interface or disc.
  116. > But the code has to be pulled off a disk into main memory.  I don't know if
  117. > translation is done at load time or execute time.  There's a load of Taos
  118. > stuff on http://www.acorn.co.uk/ - do you have w3 access?
  119.  
  120. Not if the files are on ROM though. AFAIK translation for TAOS is done at load
  121. time, as the program is being loaded in. Then it remains in memory, to be used
  122. if necessary, until it gets flushed.
  123.    Yep, I have www access. And I'll take a look when I can. Thanks.
  124.  
  125. >> This is *BLASTED* RO3+ for you! RO3 Fileswitch does lots of Func16 all the
  126. >> time, even if they aren't supported (which according to my PRM's it doesn't
  127. > It doesn't do loads of Func16's.  It issues *one* when `Shutdown' is chosen
  128. > from the task manager.  Func16 has nothing to do with wildcards...
  129.  
  130. Odd. Justin said that was the problem he was encountering.
  131.  
  132. >> The right is black, and blank, because it's meant to be! In reality,
  133. >> Tornado would auto-shrink and extend if necessary and the appropriate bits
  134. > The heap looks something like this:
  135. > +----------------------------------------------------------------------+
  136. > ||| ||| |||||| ||||    |     |     | |                                 |
  137. > +----------------------------------------------------------------------+
  138. > Okay,  so the small black bits on the left are your small free bits, but
  139. > why are there some lines in the middle.  This is *after* garbage
  140. > collection, btw. If you don't understand this I'll send you a UUcoded
  141. > sprite.
  142.  
  143. Yes, sorry - you have an older version, with a buggy garbager. The newer one
  144. compacts it all into the left, albeit with a few black bits although in
  145. reality this is the renderer overrating the free space's size.
  146.  
  147. > As I said,  when I wrote most of that last mail I'd only had chance to read
  148. > through the first archive.  I'd only glanced at the second.  What (and
  149. > where) is LegoCad?  Do I have all the textfiles:
  150.  
  151. Hmm, almost certainly won't work on RO3.5 - RO3.1 users have had enough
  152. problems. Not much I think we can do here - anyway, it's not really too
  153. important.
  154.  
  155. > rel0:   GBPB, Info, Readme rel1:   Aims, Brief, Readme
  156. > I seem to have a file (GBPB) which refers to `guideline 5b' but no file
  157. > which has guidelines 1..5a.  I've now had chance to look at the second
  158. > archive properly (all the SWI / *com documentation) I should have a bit of
  159. > a better idea what I'm on about!
  160.  
  161. :-). Hehe, gbpb was a part of a file I wrote many many months ago. And then
  162. souped up to fit the current agenda :-) - if you know hat I mean!
  163.    Yes, the latest release is a bit bigger (about 100k of text!), and contains
  164. a lot more info. v0.01 is positively undetialed in comparison!
  165.  
  166. >> Let me know what you think? I'd like some input, and I'll be putting a
  167. > message
  168. >> onto fidonet asking for ideas.
  169. > Don't think you were too popular putting your message in c.s.a.hardware...
  170. > .misc and .programmer seem logical,  but hardware?  Nothing personal,  but
  171. > most denizens seem to be quite hostile towards messages in the wrong groups.
  172.  
  173. Odd - I got quite a response from c.s.a.hardware. Oh well, the intention was
  174. that the people there would suggest what to put in Tornado to make accessing
  175. hardware better. And they did all right. The usual TCPIP stacks stuff, but a
  176. few gems too.
  177.  
  178. > I'll get on with this background window redrawing now - let you know how it
  179. > goes.
  180.  
  181. Cheers. Coding starts next week, so wish me luck! And unfortunately Justin
  182. hasn't replied to my parcel yet. I wish he would - he's holding things up :-(
  183.  
  184. Cheers,
  185. Niall
  186.