home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol026 / myddbios.doc < prev    next >
Text File  |  1984-04-29  |  3KB  |  71 lines

  1. If you are lucky enough to have a VERSAFLOPPY II disk controller board you
  2. will appreciate how reliable it is.  There was one problem however SD Systems
  3. supplied a bios for their SDOS.    I wanted to run CP/M 2.2 and simmilar systems
  4. The 5 programs:
  5.     MYDDBIOS.Z80
  6.     MYBOOT.Z80
  7.     DDSKBIOS.Z80
  8.     SYSGEN.Z80
  9.     FORMAT.Z80
  10. should allow you to get CP/M running on this board.
  11.  
  12. Here is how it works.    First only two drives are assumed (A: & B:)  both must
  13. be 8" drives. This saves a lot of extra code I did not want but others could
  14. probably modify acordingly.    The major problem is the bios must know if it
  15. is talking to a single density disk or double density disk (sd dd).    RAM
  16. locations 58h & 59h will always contain flags for the density of drives A & B
  17. Upon cold or warm boot the bios gets the density of disk A (see below). If it
  18. is sd then 58h=00h if dd then 58h=40h.    Since drive B: has not yet been called
  19. in a flag of 0ffh is put at 59h.    The first time B: drive is selected
  20. its density is selected and the 0ffh flag is changed to either 00h or 40h.
  21. When CP/M does a SELDSK it will be routed to one of two different disk 
  22. parameter lookup tables depending on the two above flags.
  23. How does the board find out the density of the disk?    SD systems used a neet
  24. trick.    They use a trial and error method.    Upon any read address command
  25. the 4th byte returned is the sector length.    For 128 byte sectors it is
  26. 00h.    So if the read address command returns anything othere than 00h chances
  27. are we do not have the correct disk density.    Look at my UNITSL: routine and
  28. this will hopefully be clear.
  29. I have made one large extra addition to the bios at the end you may want to 
  30. remove.    It is a section to display on a VDM board in "real time" the actual 
  31. sector,track,disk currently being read or written to. Bit 7 of port 0ffh turns
  32. this info on or off.    It is great for debugging at the start.
  33.  
  34. All of the above and 99% of the bios is stored in ROM (just like SD SYSTEMS
  35. do for their system) -- this is by the way MYDDBIOS.Z80
  36.  
  37. Two othere things are required:-
  38. MYBOOT.Z80    is the CP/M boot loader to go with this system. As usuall it
  39. goes on track 0 sector 1 of all disks.    This loader brings in the rest of CP/M
  40. loads it at the correct place in RAM (this depends on the size of your CP/M 
  41. system) along with a tiny RAM based BIOS which I call:-
  42.  
  43. DDSKBIOS.Z80    As far as CP/M is conserned this is THE bios. It contains
  44. all the appropiate jumps to the ROM bios and the RAM dependent disk parameter
  45. lookup tables.
  46.  
  47. If you are new at this stuff get somebody to show you how to link in these
  48. two programs to CP/M before sysgening a system.
  49.  
  50. The following is an example of a 60k system setup
  51. ZSID
  52. F100,4000,0
  53. ICPM60.COM
  54. R
  55. ISYSGEN.COM        ;I put sysgen here so I can have a file with sysgen
  56. R            ;and CP/M @ 900h saved (if this is not clear do it
  57. IMYBOOT.HEX        ;the way CP/M suggests)
  58. R880
  59. IDDSKBIOS.HEX
  60. R3980
  61. ^C
  62. SAVE 34 SYSGEN60.COM    ;(This way I have sysgen + the CP/M image in memory)
  63. SYSGEN60        ;You are on your own after this
  64.  
  65.  
  66.  
  67.  
  68.                 Good Luck
  69.                   John Monahan
  70.  
  71.