80-Bus News


July–October 1982, Volume 1, Issue 3

Page 43 of 51

In true text book style I leave it as an exercise to the reader to work out the timing of the above sections of code!

One other point for budding Bios writers to bear in mind – The most useful (and accurate) part of the 1797 data sheet are the various flow charts of command execution. For example the text for Read/​Write commands goes…

..Upon receipt of the Type II command, the busy status Bit is set. If the E flag = 1 (this is the normal case) HLD is made active and HLT is sampled after a 15ms delay......

Referring to the flow charts it can be seen that after Busy is set the “Ready” line is checked, and only if it is true will the 1797 continue with the command, otherwise it sets IRQ and terminates. If there has been no disk activity for a while there will be no Ready signal as the controller will have unloaded the heads and as a result deselected the drive. Thus, in order to get the Read/​Write commands to execute, the software has to ensure that the drive is selected. (My software checks the Ready line before all Read/​Writes, and issues a Seek command to the current track if it is found to be false. This activates HLD without actually stepping the heads at all, and ensures that the drive is selected and the Ready line represents the true state of the drive. All type I commands, of which SEEK is one, execute irrespective of the state of the Ready line – see the flowcharts).

Finally a note about hardware mods. These are covered in the manual supplied with the card, but don’t forget that as well as changing a few straps some components need changing. The frequency of the VCO has to be doubled so capacitor C5 (100pF) should be changed to 50pF. The loop filter components (C4 and R12) also need to be changed. Early versions of the manual escaped with a misprint, C4 should be changed to 0.33uF not 33uF! One thing not noted in the manual is the fact that the “Motor on” and “Motor start-up delay” monostables are still connected through to the Ready line. These connections are not required for 8″ drives and their presence is an irritant. Rather than butchering your board to get rid of them I suggest that you just disconnect one end of resistor R5. This has the effect of making the “motor on” time infinite, and the signals from the monostables will no longer interfere with the Ready signal from the selected drive.

Please note I have not written a full double-density Bios for GM809 and 8″ drives – so don’t try ringing up for a copy! (Anyway I’ve moved recently). In writing your own I suggest you follow the guide lines in the CP/M alteration guide.

Start with 8″ single density (The only standard format there is!). Most 8″ disks come ready formatted to this standard so you needn’t worry about a format program initially. In your current environment write and test a keyboard routine and a screen routine. Next write and debug a disk read routine. If you’re using the CP/M distribution disk at this point ensure it is write protected! Expand this routine to “GETSYS” (see the CP/M alteration guide). Now do the write part (using a scratch disk!) and work up to “PUTSYS”. Then put the various routines together to form your Bios. Next use GETSYS to read in the system tracks of the distribution disk. Copy your Bios (and Boot) (suitably assembled) over the distribution Bios (and Boot) and use PUTSYS to write the system back to a fresh disk. Then, provided you’ve made no boobs, you’re away, and can go on to refine the software in a disk-based environment.


Dear Dealer, The fault on my Nascom occurs as follows. As you will see, the display is stable with some degree of flickery as the CPU works. Hitting reset, some characters change, but some stay exactly the same all the time. Now and then the computer enters the HALT state.

Besides this, the machine is dead. Anon.

Page 43 of 51