home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / F / RDMS232.ARK / RDMS.DOC next >
Text File  |  1989-09-27  |  10KB  |  250 lines

  1.   Notes on RDMS23 - a program to read MS-DOS disks under CP/M.
  2.  
  3.                       John Hastwell-Batten
  4.                              SYSOP
  5.                         Tesseract RCPM+
  6.                           P.O. Box 242
  7.                         Dural, NSW 2158
  8.                            AUSTRALIA
  9.  
  10. RDMS23 i≤ ß prograφ whicΦ use≤ thσ CP/═ BIO╙ t∩ reaΣ file≤ froφ ì
  11. MS-DO╙ diskette≤ anΣ thσ CP/═ BDO╙ t∩ writσ thσ file≤ t∩ ß CP/═ ì
  12. disk«ì
  13.  
  14. RDMS23 i≤ deriveΣ froφ RDMSDOS.├ whicΦ wa≤ writteε b∙ BoΓ ì
  15. Alverson«  Thσ versioε releaseΣ int∩ thσ publiπ domaiε wa≤ 1.▒ ì
  16. writteε fo≥ compilatioε witΦ small-├ anΣ fo≥ operatioε unde≥ CP/═ ì
  17. 2.2.
  18.  
  19. Sincσ theε ╔ havσ donσ ß lo⌠ oµ worδ oε thi≤ program«  Apar⌠ froφ ì
  20. fixinτ ß fe≈ significan⌠ bugs¼ thσ majo≥ change≤ havσ beeε t∩ ì
  21. makσ i⌠ ruε unde≥ CP/═ versioε 3.▒ whicΦ i≤ thσ operatinτ systeφ ì
  22. tha⌠ ╔ no≈ use«  ╔ als∩ addeΣ ß stacδ oµ comment≤ includinτ somσ ì
  23. note≤ oε implementation«  Hopefully¼ thσ lates⌠ revisioε caε als∩ ì
  24. ruε unde≥ CP/═ 2.2.
  25.  
  26. RDMS23 i≤ writteε iε Hi-TecΦ ├ bu⌠ jus⌠ abou⌠ an∙ "K&Ró ├ ì
  27. compile≥ caε bσ useΣ providinτ i⌠ support≤ thσ malloc(⌐ functioε ì
  28. o≥ equivalent«  Eveε tha⌠ i≤ n∩ rea∞ obstacle╗ yo⌡ coulΣ makσ thσ ì
  29. dynamicall∙ allocateΣ memor∙ statiπ insteaΣ a⌠ thσ cos⌠ oµ ì
  30. increaseΣ prograφ size«  (Thσ prograφ wa≤ originall∙ writteε tha⌠ ì
  31. way.)
  32.  
  33. Thσ operatioε oµ thσ prograφ i≤ somewha⌠ dependen⌠ oε thσ wa∙ ì
  34. tha⌠ thσ BIO╙ oµ thσ hos⌠ CP/═ systeφ handle≤ double-sideΣ ì
  35. diskettes«  AlthougΦ ╔ havσ trieΣ t∩ cate≥ fo≥ somσ oµ thσ morσ ì
  36. commonl∙ useΣ method≤ yo⌡ ma∙ havσ t∩ modif∙ thσ program«  Iε ì
  37. somσ case≤ yo⌡ ma∙ havσ t∩ modif∙ you≥ BIO╙ iµ yo⌡ reall∙ wan⌠ t∩ ì
  38. usσ thi≤ program«  Somσ note≤ oε adaptinτ thσ prograφ appea≥ ì
  39. late≥ iε thi≤ documentation.
  40.  
  41. Pre-requisites:
  42. --------------
  43.  
  44. Therσ arσ somσ absolutσ requirement≤ whicΦ mus⌠ bσ me⌠ beforσ yo⌡ ì
  45. can use this program:
  46.  
  47. 1.   You≥ systeφ mus⌠ havσ ß 40-tracδ 5.25ó disδ drivσ whicΦ caε ì
  48. áááááreaΣ double-sided¼ double-densit∙ diskettes.
  49.  
  50. 2.   Thσ BIO╙ mus⌠ bσ capablσ oµ readinτ a⌠ leas⌠ ninσ 512-bytσ ì
  51. ááááásector≤ from each track.
  52.  
  53. Future development:
  54. ------------------
  55. èv2.x      Preserve CRC integrity (maybe).
  56.  
  57. v3.x      Allow writing to MS-DOS disks.
  58.  
  59. =================================================================
  60.  
  61. How to use RDMS23
  62. =================
  63.  
  64. Activating the program
  65. ----------------------
  66.  
  67. Parδ RDMS23.CO═ oε an∙ convenien⌠ disk«  Oε m∙ systeφ ╔ pu⌠ i⌠ oε ì
  68. drivσ A║ iε use≥ areß ░ anΣ madσ i⌠ ß systeφ filσ s∩ tha⌠ ╔ caε ì
  69. ruε i⌠ froφ an∙ disδ ª use≥ area«  ZCP╥ user≤ wil∞ bσ ablσ t∩ d∩ ì
  70. the same trick.
  71.  
  72. I⌠ i≤ probabl∙ worthwhilσ renaminτ thσ prograφ t∩ somethinτ likσ ì
  73. RDMS.CO═ t∩ savσ unnecesar∙ typing«  Thesσ note≤ assumσ tha⌠ namσ ì
  74. froφ no≈ on.
  75.  
  76. No≈ loτ int∩ thσ disk/use≥ wherσ yo⌡ wan⌠ t∩ pu⌠ thσ file≤ whicΦ ì
  77. you are going to copy from the MS-DOS disk.
  78.  
  79. Activatσ thσ prograφ b∙ typinτ it≤ name«  RDMS need≤ t∩ bσ tolΣ ì
  80. thσ disδ drivσ wherσ thσ MS-DO╙ diskettσ i≤ loaded«  Yo⌡ caε ì
  81. includσ thσ drivσ lette≥ oε thσ commanΣ linσ iµ yo⌡ wish¼ ì
  82. otherwise RDMS will prompt for it.  The command-line forms are:
  83.  
  84.            rdms         -or-         rdms d
  85.  
  86. where 'd' is the MS-DOS drive letter.
  87. [Other command-line options are discussed later.]
  88.  
  89. RDMS wil∞ reaΣ thσ Filσ Allocatioε Tablσ anΣ thσ roo⌠ director∙ ì
  90. froφ thσ MS-DO╙ disδ anΣ wil∞ displa∙ thσ roo⌠ directory«  Yo⌡ ì
  91. arσ theε iε ß positioε t∩ cop∙ file≤ froφ thσ MS-DO╙ diskettσ t∩ ì
  92. ß CP/═ disk.
  93.  
  94. Copying files
  95. -------------
  96.  
  97. Al∞ tha⌠ i≤ requireΣ t∩ cop∙ ß filσ froφ thσ MS-DO╙ diskettσ t∩ ì
  98. thσ logged-iε CP/═ disk/use≥ i≤ t∩ typσ thσ namσ oµ onσ oµ thσ ì
  99. file≤ displayeΣ froφ thσ MS-DO╙ directory«  Multiplσ file≤ caε bσ ì
  100. copied by using the usual "wildcard" naming conventions.
  101.  
  102. A⌠ an∙ timσ yo⌡ ma∙ ge⌠ ß ne≈ director∙ displa∙ b∙ supplyinτ n∩ ì
  103. file name at all, i.e. by just pressing the <CR> key.
  104.  
  105. Subdirectories
  106. --------------
  107.  
  108. Iε thσ director∙ listing¼ subdirector∙ file≤ arσ identifieΣ witΦ ì
  109. ß "typeó oµ ".dir"«  Iµ yo⌡ typσ thσ namσ oµ ß subdirector∙ ìè(withou⌠ thσ ".dir"⌐ theε insteaΣ oµ copyinτ thσ file¼ RDM╙ ì
  110. switche≤ t∩ tha⌠ subdirector∙ anΣ display≤ it≤ contents«  Yo⌡ caε ì
  111. theε continuσ copyinτ files¼ bu⌠ bσ ß littlσ bi⌠ carefu∞ becausσ ì
  112. therσ migh⌠ bσ tw∩ differen⌠ file≤ oε thσ MS-DO╙ diskettσ witΦ ì
  113. thσ samσ namσ iε differen⌠ directories«  Iµ yo⌡ cop∙ ß seconΣ ì
  114. filσ i⌠ wil∞ overwritσ thσ first.
  115.  
  116. Iε an∙ subdirector∙ thσ firs⌠ tw∩ entrie≤ wil∞ themselve≤ bσ ì
  117. directories«  Onσ wil∞ bσ identifieΣ witΦ ß singlσ dot¼ anothe≥ ì
  118. witΦ tw∩ dots«  Thσ double-do⌠ entr∙ i≤ thσ onl∙ interestinτ one«  ì
  119. Iµ yo⌡ ente≥ "..ó a≤ ß filσ namσ theε RDM╙ wil∞ switcΦ bacδ t∩ ì
  120. thσ previou≤ MS-DO╙ director∙ level«  Thi≤ give≤ yo⌡ thσ abilit∙ ì
  121. t∩ traversσ thσ entirσ MS-DO╙ director∙ heirarchy.
  122.  
  123. Ending the program
  124. ------------------
  125.  
  126. B∙ fa≥ thσ cleanes⌠ wa∙ t∩ enΣ thσ prograφ i≤ t∩ responΣ t∩ aε ì
  127. "Ente≥ filename║ ó promp⌠ witΦ ^Z<cr╛ (i.e« control-┌ anΣ ì
  128. carriagσ return)«  Iµ yo⌡ d∩ tha⌠ theε thσ prograφ wil∞ properl∙ ì
  129. re-loτ thσ CP/═ disk.
  130.  
  131. Oε somσ system≤ i⌠ MAY bσ O╦ t∩ terminatσ thσ prograφ witΦ ì
  132. control-├ bu⌠ don'⌠ complaiε t∩ mσ iµ yo⌡ havσ t∩ cold-boo⌠ you≥ ì
  133. computer after doing that.
  134.  
  135. =================================================================
  136.  
  137. Technical notes
  138. ===============
  139.  
  140. MS-DO╙ disk≤ comσ iε fou≥ flavours╗ single- anΣ double-sideΣ ì
  141. disk≤ witΦ eithe≥ eigh⌠ o≥ ninσ sector≤ oµ 51▓ byte≤ eacΦ pe≥ ì
  142. track«  Double-sideΣ MS-DO╙ disk≤ arσ recordeΣ iε "cylinderó ì
  143. mode«  Sector≤ ▒ t∩ 8/╣ arσ writteε oε sidσ 0¼ theε sector≤ ▒ t∩ ì
  144. 8/╣ arσ writteε oε sidσ ▒ beforσ steppinτ t∩ thσ nex⌠ track«  ì
  145. Therσ i≤ n∩ standarΣ wa∙ t∩ tel∞ ß CP/═ BIO╙ whicΦ sidσ oµ thσ ì
  146. disδ shoulΣ bσ accessed«  Al∞ yo⌡ caε d∩ i≤ t∩ se⌠ thσ tracδ anΣ ì
  147. secto≥ number≤ beforσ doinτ ß disδ I/╧ operation«  Yo⌡ havσ t∩ ì
  148. makσ thσ prograφ calculatσ thσ tracδ anΣ secto≥ sucΦ tha⌠ you≥ ì
  149. BIO╙ wil∞ acces≤ thσ righ⌠ par⌠ oµ thσ disk«  Yo⌡ ma∙ eveε havσ ì
  150. to modify your BIOS!
  151.  
  152. Iε thσ simples⌠ case¼ you≥ BIO╙ ma∙ als∩ assume/usσ "cylinderó ì
  153. modσ recordinτ anΣ decodσ thσ sidσ numbe≥ froφ thσ low-orde≥ bi⌠ ì
  154. oµ thσ tracδ number«ì
  155.  
  156.      BIOS TRACK               CYLINDER       SIDE
  157.           0                       0            0
  158.           1                       0            1
  159.           2                       1            0
  160.           3                       1            1
  161.           4                       2            0
  162.           .                       .            .
  163.          77                      38            1è         78                      39            0
  164.          79                      39            1
  165.  
  166. Anothe≥ commoε methoΣ oµ tellinτ thσ BIO╙ whicΦ sidσ oµ thσ disδ ì
  167. t∩ acces≤ i≤ tha⌠ oµ settinτ thσ high-orde≥ bi⌠ oµ thσ secto≥ ì
  168. numbe≥ s∩ tha⌠ requestinτ ß secto≥ iε thσ rangσ  ▒ t∩ 8/╣ ì
  169. accesse≤ sidσ 0¼ requestinτ ß secto≥ iε thσ rangσ 12╣ t∩ 136/13╖ ì
  170. accesse≤ sidσ 1«  Thσ prograφ i≤ currentl∙ se⌠ u≡ t∩ usσ thi≤ ì
  171. method.
  172.  
  173. Somσ BIOS'≤ assumσ tha⌠ al∞ track≤ belo≈ thσ numbe≥ oµ cylinder≤ ì
  174. oε thσ disδ arσ oε sidσ 0¼ al∞ higher-numbereΣ track≤ arσ oε sidσ ì
  175. 1.
  176.  
  177. Nonσ oµ thσ abovσ present≤ an∙ rea∞ problem«  Iµ you≥ BIO╙ use≤ ì
  178. an∙ oµ thosσ method≤ theε yo⌡ caε modif∙ thσ prograφ t∩ cope«  ì
  179. Yo⌡ wil∞ bσ iε rea∞ troublσ iµ you≥ BIO╙ use≤ thσ "lonτ trackó ì
  180. methoΣ oµ handlinτ double-sideΣ disk≤ wherσ sector≤ 1-8/╣ are¼ a≤ ì
  181. usual¼ oε sidσ ░ bu⌠ wherσ thσ sector≤ oε sidσ ▒ arσ assumeΣ t∩ ì
  182. bσ physicall∙ recordeΣ witΦ differen⌠ number≤ froφ thσ corresì
  183. pondinτ sector≤ oε sidσ 0«  Therσ i≤ N╧ WA┘ OU╘ excep⌠ t∩ changσ ì
  184. you≥ BIOSí  Likewise¼ you≥ BIO╙ mus⌠ eithe≥ expec⌠ thσ secto≥ iΣ ì
  185. byte≤ oε sidσ ▒ t∩ actuall∙ havσ sidσ ▒ encoded¼ o≥ NO╘ actioε ß ì
  186. side-select-verify when seeking to a sector on side 1.
  187.  
  188. I hope all that makes sense.
  189.  
  190. Therσ arσ somσ command-linσ option≤ whicΦ actuall∙ tel∞ RDMS23 ì
  191. whicΦ methoΣ t∩ usσ oε two-sideΣ diskettes«  Yo⌡ migh⌠ likσ t∩ ì
  192. try these before attempting to recompile the program.
  193.  
  194.      -h   (fo≥ "higΦ bit⌐ tell≤ RDMS23 tha⌠ you≥ BIO╙ use≤ thσ ì
  195. ááááááááááhigh-orde≥ bi⌠ oµ thσ secto≥ numbe≥ t∩ signa∞ ß reaΣ ì
  196. ááááááááááfroφ sidσ 1.
  197.  
  198.      -c   (fo≥ "cylinde≥ mode"⌐ tell≤ RDMS23 tha⌠ you≥ BIO╙ ì
  199. ááááááááááregard≤ al∞ even-numbereΣ track≤ oµ ß double-sideΣ ì
  200. áááááááááádiskettσ a≤ beinτ oε sidσ ░ anΣ al∞ odd-numbereΣ track≤ ì
  201. ááááááááááa≤ beinτ oε sidσ 1.
  202.  
  203.      -x   (fo≥ "extendeΣ surface"⌐ tell≤ RDMS23 tha⌠ you≥ BIO╙ ì
  204. ááááááááááregard≤ track≤ 0-3╣ a≤ beinτ oε sidσ ░ anΣ track≤ 40-7╣ ì
  205. ááááááááááa≤ beinτ oε sidσ 1.
  206.  
  207. Jus⌠ includσ thσ appropriatσ optioε somewherσ oε thσ commanΣ linσ ì
  208. if your BIOS uses one of the above methods, e.g.
  209.  
  210.                rdms23 d -x    -or-    rdms23 -x d
  211.  
  212. Remember¼ iµ yo⌡ don'⌠ tel∞ RDMS whicΦ methoΣ t∩ use¼ i⌠ ì
  213. assume≤ "-c"«  Yo⌡ ma∙ wisΦ t∩ changσ tha⌠ assumptioε oncσ yo⌡ ì
  214. kno≈ whicΦ methoΣ i≤ useΣ b∙ you≥ owε BIO╙ s∩ tha⌠ yo⌡ don'⌠ havσ ì
  215. t∩ kee≡ tellinτ RDMS thσ samσ thinτ ever∙ timσ yo⌡ ruε it«  Yo⌡ ì
  216. caε recompilσ thσ prograφ iµ yo⌡ havσ aε appropriatσ ├ compile≥ ì
  217. bu⌠ yo⌡ caε als∩ patcΦ RDMS.CO═ witΦ DDT¼ ZSI─ o≥ whatever«  T∩ ìèd∩ that¼ loaΣ RDMS.CO═ unde≥ ZSI─ anΣ usσ thσ ASCII/HE╪ "dumpó ì
  218. commanΣ t∩ scaε througΦ thσ program«  Looδ fo≥ thσ strinτ oµ ì
  219. character≤ "Method=H"¼ changσ thσ "Hó t∩ "Có o≥ "Xó anΣ savσ thσ ì
  220. modifieΣ program«  Thσ strinτ wil∞ bσ ß fai≥ wa∙ int∩ thσ prograφ ì
  221. and to save time I suggest you start looking at around 3000h.
  222.  
  223. =================================================================
  224.  
  225. Known bugs
  226. ----------
  227.  
  228. ┴ CR├ calculateΣ unde≥ MS-DO╙ wil∞ no⌠ bσ thσ samσ a≤ thσ CR├ ì
  229. calculateΣ fo≥ thσ filσ oncσ i⌠ ha≤ beeε copieΣ t∩ CP/M«  Thσ ì
  230. filσ itselµ i≤ O╦ anΣ ╔ thinδ thσ differencσ arise≤ froφ thσ ì
  231. mechanism≤ fo≥ detectinτ end-of-filσ unde≥ thσ tw∩ operatinτ ì
  232. systems.
  233.  
  234. Under CP/M+ and CCP/M there is a mechanism for saving the exact
  235. file length so this problem may yet be solved.
  236.  
  237. =================================================================
  238.  
  239. Copyright
  240. ---------
  241.      (C)1984   Bob Alverson
  242.      (C)1985   John Hastwell-Batten
  243.  
  244. Thi≤ i≤ ß PUBLI├ DOMAI╬ program«  Yo⌡ arσ freσ t∩ distribute¼ ì
  245. cop∙ anΣ usσ thi≤ prograφ fo≥ non-commercia∞ purposes«  Wσ didn'⌠ ì
  246. chargσ yo⌡ anythinτ fo≥ it«  I⌠ i≤ no⌠ fai≥ fo≥ yo⌡ t∩ makσ mone∙ ì
  247. or to steal the credit for our efforts.ì
  248.  
  249. Iµ yo⌡ fi° an∙ bug≤ o≥ makσ an∙ enhancement≤ pleasσ re-submi⌠ thσ ì
  250. modified SOURCE code to the public domain.