Acorn's newly-released I/O Podule brings further BBC micro compatibility to Archimedes users. Yet its provision of analogue port, digital user port, 1 MHz bus, and optional MIDI interface will appeal to Beeb and non-Beeb users alike. The podule consists of a single PCB of around 170 x 180 mm in size. This is twice the width of podules such as the CC ROM board reviewed last month, and will take up the space of two podules of the possible 4 on a 400 series machine. On a 300 series machine, which will only take two podules at maximum, it still leaves room for a second. This could conceivably be a second I/O podule, though I am not aware that this possibility has been explored.
The I/O podule plugs into a socket on the podule backplane. The backplane itself is an optional extra on 300 series machines, though it comes as standard with the 400 series. Fitting the I/O Podule is extremely easy, since all the interface sockets on the board are already fitted to the back panel, which simply replaces one of the blank panels at the rear of the machine.
4 analogue input channels
8 bit accuracy
Conversion rate 10 msec/channel
Two "fire" button lines
Single 8-bit bi-directional port with timers and control lines
Read/write access to two 256-byte memory-mapped blocks at 1MHz clock rate
Once installed, you should check that the resident module called Podule is not software-unplugged. Then at power-up the podule module (!) will automatically load into the RMA one or two further modules called I/O_Podule and MIDI (both resident in EPROM on the I/O Podule board). MIDI is only loaded if your board has the MIDI upgrade. For the purposes of this review we will assume that the MIDI module is not present, though users with this option should note that when the MIDI module is installed, it sets the number of voices on the sound system to 8 (the default is 1). This dramatically reduces sound output (VDU7 is barely audible). Acorn have agreed to fix this in future versions of the software, but for the moment, you may wish to use *UNPLUG MIDI to remove the module until it is required.
The I/O podule relocatable module contains all the software for implementing the I/O board interfaces, and essentially provides a set of operating system calls to send data to and from each port. The majority of these are implemented as OSBYTE calls, similar to those used on the Model B and Master. In a similar way to earlier BBC micros, the interfaces on the podule are address-mapped, and the areas of memory used are given the same names: Jim and Fred for the 1MHz bus, and Sheila for the user and analogue ports. Of course Jim, Fred and Sheila are all controlled by Arthur! - and the base address is no longer &FE00, as it is on the BBC micro, but is dependent on which of the 4 possible podule sockets are used.
Acorn have implemented a special call which returns the I/O podule base address, but unfortunately both the call address, and the call name are wrongly given in the manual (actually, they are not even close!). The correct call number is SYS &40500 or SYS "I/O_Podule_Hardware". Thus if you type:
SYS &40500 TO A,B
PRINT~B
you will get the required base address. With the I/O board in socket zero (use *Podules to find out), I obtained the result: &33C0000. Unfortunately, all attempts to access this area (or the area at &33C2000 given in the manual) gave "Abort on data transfer" errors, so there may be more errors in the manual. Generally speaking of course, the user should not need to know the base address of his podule hardware, since he can fully access all ports with the system calls provided.
An easy way to check that your I/O podule is functioning correctly is to type:
PRINT ADVAL 2
With no device plugged into channel 2 of the analogue port you will get a result of around 53700. If Arthur can't find Sheila then you will get a "Bad command" message. As a test of the analogue port, I checked it out with a pair of BBC micro joysticks. These worked quite satisfactorily, though if you are going to use the port for precise voltage measurements, you will be disappointed to hear that no accurate reference source is supplied. The analogue to digital converter still makes use of the same reference source as the old Beeb, even though to upgrade this would have been a trivial matter.
When testing the user port, I found the manual quite misleading. It implies that the ARM equivalent of OSBYTE 150 and 151 can be used to read and write to the 16 registers of the 6522 VIA used by the podule. In fact the podule software will not let you access registers 1 and 3 (at Sheila offset &61 and &63). These two registers give access to port A of the VIA, and this is used for other purposes, including ROM paging.
To write the value 128 to register 0 of the VIA, use:
*FX151,96,128
(96=&60+0)
To read register 4 of the VIA, use:
SYS 6,150,&64 TO A,B,C
PRINT C
Thus a test program which I was using to read and display all VIA registers repeatedly crashed. But once I stopped it from reading the two prohibited registers it worked ok. This is not fully compatible with the old Beeb, where no block is placed on the two port A registers. One other small point of incompatibility is that the VIA on the podule runs twice as fast as that of the Beeb. But the new 2MHz clocking speed will only really affect the VIA's timers, which will run at twice the speed of those on a Beeb.
In conclusion, Acorn have produced a creditable I/O podule whose strength lies in its high degree of compatibility with the Beeb's hardware. The many users of the Beeb's excellent set of interfaces, including those in schools and colleges, who have upgraded to the Archimedes should find this an invaluable product.
The Acorn I/O Podule costs £90.85
The MIDI add-on to this podule costs £33.35
Prices include VAT.
Acorn are on (0223) 214411