home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / Geneve / 9640news / CAT01 / MEMORY6.ARK < prev    next >
Text File  |  2006-10-19  |  11KB  |  234 lines

  1. ?
  2. AMS DEVELOPMENT SYSTEM INTRODUCTION
  3. === =========== ====== ============
  4.  
  5. Enclosed please find the completed AMS/AEMS Development Kit.
  6. This package, which is included with all AMS cards (and soon,
  7. AEMS ones as well), is fairware, and may be freely
  8. distributed by user groups and other organizations.
  9.  
  10. This package consists of the following items:
  11.  
  12.         AEMS System "Boot" , version 1.2
  13.         AEMS Macro Assembler, version 1.1
  14.         AEMS Object Library, version 1.1
  15.         AEMS Object Linker, version 1.0
  16.  
  17. Users of the development system are encouraged to forward a
  18. donation to the author, R.A. Green, if they  find it useful.
  19. Additionally, users are encouraged to write or call with any
  20. problems found, so that they can be corrected.
  21.  
  22. While the amount of labor and time put into this project
  23. should impress anyone (our development team, including Art
  24. Green, Joe Delekto, Jim Krych, Tony Lewis and myself have
  25. been working on this project for over 2 years now), what does
  26. this all mean to the TI community?  This is a fair question.
  27.  
  28. Memory management, the design of memory systems, and
  29. programming for memory systems is a pretty esoteric
  30. discipline. The people involved on this team are the most
  31. knowledgeable people in the community on these issues - in
  32. fact, I would go so far to say only a 20-25 people in the
  33. community can really appreciate their accomplishment, and
  34. perhaps only 5-10 could begin to duplicate it.
  35.  
  36. While the subject is pretty mind-numbing stuff to the average
  37. person, if it was solely an exercise to demonstrate technical
  38. skills, it would be fair for the community to just
  39. congratulate these guys and go back to sleep. However, while
  40. the complexity seems unreal, the reason why this was done,
  41. and the ultimate results are very important to the future of
  42. our community.
  43.  
  44. Why did we do this? Drastic times call for drastic measures.
  45. The TI community is dying because the 99/4A, as-is, can't be
  46. pushed much further. More capable software can't be written
  47. because there is no memory to put it in. New devices like
  48. MIDI interfaces, sound digitizers and multimedia are
  49. impossible not because of a lack of speed, but because there
  50. is no place to put their data. Graphical user interfaces
  51. and desktop publishing, as well as traditional programs like
  52. spreadsheets, word processor and databases are hindered more
  53. by a lack of memory than anything else. Asgard realized this
  54. years ago when some of our more ambitious projects screeched
  55. to a halt - because we realized that while we could sketch
  56. out what we wanted on paper, there wasn't enough room in the
  57. 4A to run it.
  58.  
  59. While the Geneve was built to address this problem (among
  60. several others), we also came to believe that it's a dead-
  61. end. Myarc used too many proprietary parts to cost-
  62. effectively produce the Geneve. Even if all the system
  63. software worked perfectly (which it may never do because of
  64. bugs in the hardware), the machine is simply too expensive to
  65. make. For this reason, we decided to focus our efforts on the
  66. 4A.
  67.  
  68. We then examined other memory devices available to see if
  69. they could be made to work as an Extended Memory Device
  70. (EMD). Virtually all of them were totally inadequate for the
  71. job. Only OPA's RAMBO came close, and it suffered from a wide
  72. range of problems - the major ones being unreliability
  73. caused by the fact that the memory card was used for other
  74. things (as a RAM-disk), a difficult to use programmers
  75. interface,  and very slow paging software and hardware. The
  76. fact that the designer of the device agreed with our
  77. assessment was no comfort.
  78.  
  79. The only way out of the problem was to go back to the drawing
  80. board and start from scratch.
  81.  
  82. On the hardware end we decided that the only way to make a
  83. fast, reliable memory card for programs and data was to make
  84. a device dedicated to the purpose. This meant that the card
  85. was only usable as an EMD and nothing else. This approach
  86. also offered the benefits of dramatically reducing the basic
  87. complexity and cost of the hardware design to not much more
  88. than that of a 32K card, and of reducing the chance of
  89. compatibility problems that has plagued other memory cards.
  90. On this basis, we ruled out trying to adapt other cards
  91. already available.
  92.  
  93. After thinking through the hardware, we began exploring what
  94. we needed to do on the software end to make it work. We began
  95. exploring "segmented memory systems" (as this kind of thing
  96. is called) used in the rest of the computer world. After much
  97. work, we decided that the approach used by Intel with the
  98. 8088 (and TI in their 99/8 and 9900-based minicomputers) was
  99. the most applicable - the concept of overlays. Considering
  100. how much mileage the PC has gotten out of this idea, with
  101. inferior hardware, it seemed like a good idea to us.
  102.  
  103. After deciding on an approach, we began designing the
  104. hardware and the software. Early on we had to make a decision
  105. as to whether or not to put the core controlling software for
  106. our device as a DSR on the card or not. After considerable
  107. discussion, we decided that a DSR would be a mistake. Why?
  108.  
  109. 1. On a basic level, because the goal of our card was to use
  110.    memory as memory, not as a device like a RAM-disk or an RS232
  111.    card.
  112.  
  113. 2. We found that DSR based software executes much slower
  114.    than RAM-based software - which is important considering that
  115.    the core routines would be used constantly. Trying some
  116.    scheme to load them from a DSR into RAM before executing
  117.    would increase the hardware complexity and cost, and the
  118.    chance of a compatibility problem, dramatically.
  119.  
  120. 3. Along the same lines, any DSR would increase the chance
  121.    for compatibility problems - the last thing we wanted to do
  122.    was to waste time debugging problems with Myarc or Corcomp
  123.    products caused by a DSR bug.
  124.  
  125. 4. Lastly, DSRs are fixed. If you find a bug in it, the only
  126.    way to correct it is to replace it. Consider all the trials
  127.    and tribulations Myarc and Myarc users went through with
  128.    periodic EPROM upgrades of the HFDC and the Geneve. Also, if
  129.    software is written to work around a DSR bug, it may not work
  130.    with an upgraded DSR.
  131.  
  132. In contrast, if the software is in RAM, the only thing we
  133. would have to do to correct a bug is issue an upgrade. Old
  134. programs written for earlier versions of the operating system
  135. software would continue to work fine, and new programs could
  136. take advantage of new features without worrying about
  137. hardware compatibility problems. This is the same reason that
  138. Microsoft and Apple load their operating systems from disk,
  139. and not from ROM chips.
  140.  
  141. Finally, on a design level, we felt that we couldn't make the
  142. system as easy to program for by trying to shoe-horn everything
  143. we needed into a little DSR. The AMS/AEMS development software
  144. takes up 5 DS/SD disks - much too much to squeeze into even the
  145. largest DSR.
  146.  
  147. After deciding on approaches for the hardware and software,
  148. the only thing left to be done was to implement it. Of
  149. course, implementing it DID take 18 months. While the
  150. difficulty in designing and building the hardware was nothing
  151. to sneeze at, for the most part the real innovation was in
  152. the software.
  153.  
  154. On the software end, the most critical piece was the Linker.
  155. This program does all the work of taking pieces of a program
  156. and combining them together into a program that can be loaded
  157. into, and take advantage of the memory card. The Linker
  158. embeds controlling code into each program and its subroutines
  159. that makes sure everything is in the right place at the right
  160. time. The real innovation is that it is able to do this
  161. without the programmer having to explicitly program for it.
  162. The only thing the programmer has to do is make sure his
  163. program obeys a number of rules that 99/4A programs already
  164. generally do anyway. Once done, the Linker will generate a
  165. program theoretically up to 16Mb in size.
  166.  
  167. Another innovation is the Loader, which is built into the
  168. System Boot program. The loader takes programs created by the
  169. Linker and loads them into the memory card in the pages of
  170. memory designated by the Linker.  Our particular version also
  171. functions as a "memory manager" - keeping track of memory
  172. usage, and allowing several different programs to be loaded
  173. at once (as you would a TSR or Device Driver on a PC).
  174.  
  175. Another critical piece is the Object Library. This file
  176. contains a range of subroutines that allow a program to ask
  177. for pages of memory and move data around in them. A
  178. programmer using these routines in his programs can take
  179. advantage of the memory to hold data without explicitly
  180. writing code to do so into his/her programs. Further, a
  181. Library Manager is included with the package that allows a
  182. programmer to customize the library.
  183.  
  184. Last, but certainly not least, another major component of the
  185. package is the Macro Assembler. The most capable assembler
  186. available for the 99/4A or the Geneve, this macro assembler
  187. further simplifies the programmers life by including common
  188. assembly and memory functions in macros. The assembler itself
  189. also takes advantage of the memory - giving you much more
  190. space for labels (variables), and other such things than you
  191. would normally have in an assembly program.
  192.  
  193. What does all this wonderful technology do that benefits non-
  194. programmers? Simply enough, it enables programmers to write
  195. programs for the 99/4A that are a match for the capabilities
  196. of PC and Mac programs, with no more effort than you would
  197. need to do so on a PC. While it doesn't provide an immediate
  198. benefit to a non-programmer, in the long run, non-programmers
  199. will benefit from what this device lets programmers do - and
  200. that they could never do before.
  201.  
  202. That is why this is so important to the future of the 99/4A.
  203. In fact, without a device like this, the 4A probably has no
  204. future. With it, the 4A has enough memory to keep programmers
  205. occupied and interested for years, and just as importantly,
  206. programmers have the tools to use that memory.
  207.  
  208. Asgard Peripherals is proud of the accomplishment of these
  209. talented people, and that we had the opportunity to
  210. facilitate and support this kind of effort. We also want to
  211. make sure that the product of their labor is not ignored.
  212. What we are doing is basic to so many other things we want to
  213. do, and to the computer in general. That is why we are
  214. offering to license the design of our basic AMS card to
  215. anyone and everyone at practically no cost. That is also why
  216. all the development software is available free of charge.
  217. Anyone who wants either can phone or call us. Thank you.
  218.  
  219.      Chris Bobbitt
  220.      May 12, 1993
  221.  
  222.  
  223.  
  224. Note 1: May be reproduced by anyone if unaltered
  225. Note 2: While AMS/AEMS was not designed for Geneve
  226.         compatibility, we haven't forgotten 9640 owners.
  227.         Watch this space for future announcements.
  228.  
  229. U)3=GUUUUUUUU
  230.  
  231. Download complete.  Turn off Capture File.
  232.  
  233.  
  234.