home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / znode3 / uploads / tbmsbios.lbr / TBMSBIOS.DZC / TBMSBIOS.DOC
Encoding:
Text File  |  1993-06-07  |  10.4 KB  |  222 lines

  1. TBMSBIOS - TurboROM MicroSphere ramdisk BIOS         Lindsay Haisley
  2. ============================================         10/17/89
  3.  
  4.  
  5. AN EDITORIAL
  6. ------------
  7.  
  8. I am the owner of a Kaypro 10 Z80 based CP/M computer.  Some years ago I 
  9. added a MicroSphere ramdisk which I purchased on the advice a friend 
  10. knowledgable in such matters.  The MicroSphere ramdisk adds a meg of tran- 
  11. sient disk space along with a 64K printer buffer to my system and works 
  12. entirely via my Centronics parallel printer I/O jack.  I have been pleased 
  13. with the ramdisk, which has occasionally coughed or sneezed, usually due to 
  14. a bad connection in a cable or insufficiently stout power supply wire.  
  15.  
  16. I recently purchased a TurboROM from Advent Products and was delighted to 
  17. note on the first page of the disk based documentation that TurboROM vs. 3.4 
  18. now has "provision for integrating external device drivers  -- e.g. 
  19. MicroSphere and SWP ramdisks".  On page 4 of the same documentation Advent 
  20. advirtised an "External Driver Diskette" which included a software driver 
  21. for my ramdisk.  
  22.  
  23. I called Advent and requested the diskette, and/or any information which 
  24. they had on using the external driver hooks on the TurboROM to access my 
  25. ramdisk.  The person with whom I talked told me that in their opinion the 
  26. MicroSphere ramdisk was "a piece of junk" and that they did not support it 
  27. and that the External Driver Diskette did not exist, and that perhaps I 
  28. could find out more information on the external driver diskette from the 
  29. programmer.  I stated that I was quite happy with my ramdisk, and was told 
  30. that that was because I had never tried one of theirs.  For help with the 
  31. TurboROM hooks I contacted Bridger Mitchell, who was peripherally connec- 
  32. ted with the TurboROM programming some time ago and he gave me what help he 
  33. could, which was none at all!  
  34.  
  35. It's understandable to me that two companies which sell similar products 
  36. should each consider it's product to be superior to that of the competion.  
  37. It's true that the MicroSphere ramdisk, owing to its operation through the 
  38. printer port, is doubtless slower than one such as the Advent ramdisk which 
  39. uses a controller card.  It is likewise true that MicroSphere's driver code 
  40. was a tad less than fully optimized.  It's a fair question to ask, however, 
  41. whether these sins outweigh that of advirtising vaporware for Lord only 
  42. knows how many years running.  I bought my TurboROM because I had previously 
  43. seen the software documentation touting support for my ramdisk and found 
  44. Advent's attitude on the subject to be rather less than helpful.  
  45.  
  46. Now the MicroSphere ramdisk is essentially a pretty simple device.  The 
  47. support software which came with it was slow and in need of streamlining, 
  48. however the source code for it was generously provided on the standard 
  49. distribution disk and was written with enough comments to allow extracting 
  50. the essential driver routines (which are quite simple) and integrating them 
  51. into any format which one might desire.  It always seems that if I want a 
  52. job done right I have to do it myself.  I sat down with the MicroSphere 
  53. ramdisk code and a source for the RAM resident portion of the TurboROM BIOS 
  54. and integrated the two, providing for myself what Advent did not.  TBMSBIOS 
  55. is the result, and I am passing it along for use by anyone who has had an 
  56. experience similar to mine.  
  57.  
  58.  
  59. TBMSBIOS FEATURES
  60. -----------------
  61.  
  62. This BIOS is derived from Advent's TURBIOS.Z80 which is, I believe, in the 
  63. public domain.  TBMSBIOS.Z80 includes several modifications of TURBIOS.Z80.
  64.  
  65. 1.  All code, conditional and otherwise, for support of ZCPR3 has been 
  66.     removed.  ZCPR34 with NZ-COM loads dynamically, requiring no support 
  67.     within the BIOS. NZ-COM 1.2, in fact, requires than the host operating 
  68.     system NOT be a version of ZCPR3.  The host CBIOS remains in high memory 
  69.     but is accessed via a second BIOS which intercepts warm boots and 
  70.     reloads CCP from a file.  
  71.  
  72. 2.  Provision is made for "function keys".  My Kaypro 10 has a number of key 
  73.     position in the keyboard PCB which were covered up by the metal housing, 
  74.     unused and unsupported.  Cutting away the housing and putting switches 
  75.     and keys in these positions provided keys for a number of useful 
  76.     functions, such as controling the printer buffer in the ramdisk.  These 
  77.     extra keys all return values in the range of b0h to ffh.  The BIOS 
  78.     provides a one character look-ahead at keybard input via console status.  
  79.     If a key returns a value larger than the value of the maxkey equate it 
  80.     is treated as a function key.  Console status returns false (zero flag 
  81.     and a=0) for such keys and the key value is returned by constat in the L 
  82.     register.  Normal keys return status true and 0 in L.  The return from 
  83.     constat may be interpreted by an IOP or any other program so designed.
  84.     
  85. 3.  Two additional jumps have been added to the BIOS jumptable.  If you are 
  86.     using ZCPR34, you MUST use the NZBIO.ZRL from this library which has the 
  87.     two additional jump in it.  These jumps provide a number of utility 
  88.     functions needed for the MicroSphere ramdisk and printer buffer and are 
  89.     used by RDF.COM, the ramdisk format utility.
  90.     
  91. 4.  A number of routines have been added to cause Z80ASM to output assembly 
  92.     statistics to screen at assembly time.  These provide help in correctly 
  93.     aligning TBMSBIOS with existing system elements.  The HDR file contains 
  94.     a full discussion of this subject.
  95.     
  96.  
  97. EXTRA JUMPS
  98. -----------
  99.  
  100. TBMSBIOS includes 2 jumptable entries beyond the DRI standard jumps.  These 
  101. are detailed below.
  102.     
  103.     FUNCTION at xx33h
  104.     
  105.         On Entry:    Function:            On Exit:
  106.         ---------    --------            --------
  107.         C = 0        Toggle on/off output to    the    ........
  108.                 printer from buffer in ramisk. 
  109.     
  110.         C = 1        Halt output to printer from    ........
  111.                 buffer.  Clear buffer.
  112.     
  113.         C = 2        Return logical disk for        A = disk number
  114.                 MicroSphere ramdisk        A = 0ffh (no ramdisk)*
  115.     
  116.         C = 3        Get the address of iflag,    HL = iflag address
  117.             a TurboROM flags byte.
  118.     
  119.     * Since TBMSBIOS always implements the ramdisk, this subfunction will 
  120.       never return A = 0ffh.  If you create any other BIOS which does NOT 
  121.       enable the ramdisk you should see to it that this subfunction returns 
  122.       A = 0ffh, otherwise RDF may attempt to format some other disk with 
  123.       unpleasant results! 
  124.  
  125.         
  126.     FUNCTION AT    xx36h
  127.     
  128.     This function provides direct access to the TurboROM using the 
  129.     same preparations (interrupt disable, stack save, etc.) used by 
  130.     within  BIOS itself.  It simply executes a jump to the BIOS calrom 
  131.     routine.  Programs wanting DIRECT access to the TurboROM may still 
  132.     call fffch.  This function is useful for IOP routines wishing to 
  133.     use do their own device handling and still take advantage of the 
  134.     facilities of the TurboROM.
  135.  
  136. If you are using NZCOM and ZCPR34 it is essential that you add the two 
  137. additional jumps to the NZBIO source and reassemble it.  Calls to these 
  138. jumps will otherwise go to lunch rather than the BIOS.
  139.  
  140.  
  141. FORMATTING THE RAMDISK
  142. ----------------------
  143.  
  144. The MicroSphere ramdisk originally came with a single program, RDISK.COM, 
  145. which both initialized and formatted the ramdisk.  I have condensed and 
  146. modified this program into RDF.Z80 which only formats the directory tracks 
  147. of the ramdisk (RDISK formatted ALL tracks and took a long time to run).  It 
  148. must be run before the ramdisk can be used.  RDF checks for the presence of 
  149. the special functions jump in the bios, and if a jump is present it calls it 
  150. and determines whether or not the ramdisk is initialized and if so, which 
  151. logical disk it is.  It then formats the first two tracks of the disk.  If 
  152. you redefine the ramdisk dpb to include system tracks you must modify the 
  153. RDI.Z80 code to format whichever tracks are assigned to the disk directory.
  154.  
  155.  
  156. PRINTER BUFFER OPERATIONS
  157. -------------------------
  158.  
  159. MicroSphere's original driver required the user to access non-existent 
  160. drives in order to control output from the print buffer built into the 
  161. ramdisk. I found this to be rather limiting, so the print buffer handlers in 
  162. this BIOS may be invoked in any manner which ones imagination can conjure 
  163. up.  TBMSBIOS provides hooks for this purpose via an additional jump table 
  164. entry at cboot+33.  Calling this vector with 0 in the C register toggles the 
  165. print buffer output, while a 1 in C halts buffer output and clears the 
  166. buffer.  The program PBUFF demonstrates the use of this feature and may be 
  167. assembled to control both functions.
  168.  
  169.  
  170. MLOAD vs. 24
  171. ------------
  172.  
  173. Included in this set is MLOAD vs. 24.  This is a fine utility from NiteOwl 
  174. software for loading Intel HEX files onto binary images of all sorts.  It is 
  175. the tool of preference for overlaying TBMSBIOS.HEX over your TurboROM .SYS 
  176. files.  MLOAD vs. 24 (and probably all previous versions) suffers from a 
  177. minor and rather simple bug.  When finished with it's job, MLOAD returns to 
  178. the operating system without executing a warm boot.  This is fine in most 
  179. cases, however unusually large files will bash portions of the CCP causing a 
  180. system crash.  RET instructions in the enclosed version of MLOAD have been 
  181. replaced with RST 0 instructions, forcing a warm boot.
  182.  
  183.  
  184. CONFIGURATION AND ASSEMBLY
  185. --------------------------
  186.  
  187. All configuration options are in the file TBMSBIOS.HDR which contains 
  188. additional information on assembly and options.  Please go through this file 
  189. with a word processor and read the comments as you set the options.  Code 
  190. syntax is adjusted for the SLR's fine Z80ASM assembler.  If you don't have 
  191. it, minor editing of the syntax will allow using M80/L80.  
  192.  
  193.  
  194. CREDITS
  195. -------
  196.  
  197. TurboROM is a registered trademark of:
  198. Advent Products, Inc.
  199. 3154 Ease La Palma Ave., #F
  200. Anaheim, CA  92806
  201.  
  202. The MicroSphere Ramdisk is a product of:
  203. MicroSphere, Inc.
  204. P.O. Box 1221
  205. Bend, OR  97709
  206.  
  207. NZ-COM is a registered trademark of:
  208. Alpha Systems
  209. 711 Chatsworth Place
  210. San Jose, CA  95128
  211.  
  212.                + + + + + + + +
  213.  
  214. I will be glad, if I can, to be of assistance to anyone who has questions or 
  215. needs help configuring, assembling or loading this BIOS.
  216.  
  217.  
  218. Lindsay Haisley
  219. 14206 Spreading Oaks Drive
  220. Leander, TX  78641
  221. (512) 259-1190 vox
  222. (512) 444-8691 rbbs (Z-node 77)