EUG PD
1st April 1997Categories: Description: Utility
Author: Robert Sprowson
Published in EUG #31
Introduction
This is the second part of my "Build It" series, where part one brought you the handy 16K Eprom Emulator.
This time I present a BBC Slower Owner.
As we all know, the BBC is very fast in all that it does - but some things are just better in slow motion.
Advantages
- Watch games in slow motion
- See how the OS does things slowly
- No software required, so requires no RAM or ROM sockets
- Does not hog the User Port
Disadvantages
- Loss of 1MHz bus socket
- Requires external power source the circuit - the main circuit is
The Circuit
The main circuit is based around the easy-to-use (and cheap!) 555 timer chip. Other oscillators, such as push/pull transistors could have been used, but the 555 gives most control over the time high to time low ratio.
The values chosen in the diagram are only rough values, they happened to be the parts that I had in my bits 'n bobs drawer at the time. In general any NPN transistor will do, only its switching properties are required. Because of the way a 555 charges its timing capacitor, the low time is always shorter than the high time. This is not what I wanted, so the transistor also acts to invert the 555's output. It also means that I present either a low pulse or a high impedance to the IRQ line and never a logic high. This is required as the IRQ line is wire-ORed to all the other IRQ sources. The ratio of resistances should be kept approximately the same otherwise he ratio of time high to time low will alter and the effect will be spoilt.
I suggest trying a logarithmic potentiometer so that all the action doesn't happen in the first two or three degrees of turning the knob!
How it works
With the pot fully rotated, there is zero resistance between its pin-outs. So the output of the 555 is permanently LOW and so the NPN transistor is off. Increasing the pot's resistance makes the 555 oscillate, and the high period is proportional to the pot's resistance and so the transistor is on for longer and longer periods at a time. Then on, the transistor spikes nIRQ to round and causes an interrupt. As the interrupt comes from the 1MHz bus, the OS isn't interested in it and passes it to the paged ROMs, who also ignore it and send it through IRQ2V whereupon it returns to the OS which simply does an RTI instruction. All of this handling and polling takes a finite amount of time, so if the IRQ occurs often enough then the BBC doesn't have time to do its other tasks such as updating the screen, or running the game that is in memory.
Originally, my design ran at higher frequency, spiking nIRQ low for shorter times, but more often. This seemed to have little effect on the BBC. Clearly it's just too fast!
Now the interrupts come long and frequently - giving little time for foreground activities. Try this - two things of particular amusement are changing to Mode 0 and typing COLOUR 29 then CLS. You can watch exactly how the OS sets all the 20K of locations to 255. Also, if you have it, play Hopper at low speed - you can hear the individual notes in the envelopes used to create the tune and sound effects.
Warning: Do not use this with the SNAPIT ROM that I sent a few issues back as it monitors the 1MHz bus interrupt line and starts the disk drive up every time nIRQ goes low! If you feel the need to press BREAK with the slower downer plugged in then make sure you turn the pot down to zero resistance otherwise an IRQ occurs during reset. Nasty! Let me know how you get on...
Robert Sprowson, EUG #31