Scorpio News |
January–March 1988 – Volume 2. Issue 1. |
Page 19 of 39 |
---|
enabled me to check that I could read the disks. The next stage was to write a new BIOS to use the disks properly. I decided to keep my existing QDDS drives for booting the system and to use the new drives without system tracks. The disk parameter block was therefore defined thus:–
Hex | Dec | Description | ||
0044 | 68 | ; SPT | – | CP/M Sector (128 bytes) per Track |
05 | 5 | ; BSH | – | Block Shift Factor |
1F | 31 | ; BLM | – | Block Mask |
01 | 1 | ; EXM | – | Extent Mask |
02A7 | 679 | ; DSM | – | Disk Size in blocks – 1 |
00FF | 255 | ; DR | – | Number of directory entries – 1 |
C0 | ; AL0 | – | Reserved directory.. | |
00 | ; AL1 | – | .. blocks | |
0040 | 64 | ; CKS | – | Checksum Size |
0000 | 0 | ; OFF | – | Number of system tracks |
02 | 2 | ; PSH | – | Physical Record Shift Factor |
03 | 3 | ; PHM | – | Physical Record Mask |
These parameters are described in M W T Waters’ article in Scorpio News Volume 1 Issue 4, and I will not go into them more fully here, except to note that the last two are relevant only to CP/M 3.x systems, and to point out that I decided to keep the 4k block size used in the QDDS system, but to double the directory size to 256 entries. I have never run into problems with directory overflow with the QDDS format, and I expect to have a preponderance of large files on these disks.
Those who are familiar with the SYS BIOSs will be aware that the sector read and write routines are given track and sector requests in registers D and E respectively. The low level routines deal with the arithmetic necessary for side selection. With track numbers running from 0 to 319 two bytes are necessary, and CP/M 2.2 and 3.1 already make requests for track and sector using two bytes. All that was necessary therefore was to arrange for the calling routine (that previous passed track in D and sector in E) to store two bytes for track and two bytes for sector in RAM for the low level routine, which I adjusted accordingly. A minor modification to the disk error routine to deal with track numbers greater than 255 completed the adjustments.
Full of confidence, I now attached the second drive and powered up. It was obvious that the Gemini FDC power supply was inadequate for the purpose, because the new drives crashed whenever there were two connected at once, and a high capacity switch mode supply was obtained at very reasonable cost from Henry’s Radio.
Page 19 of 39 |
---|