Commodore PET Projects
petSD+ - IEC Support
As its name indicates, petSD+ was designed to allow Commodore
PET/CBM computers to use SD media for removable storage; like
PET floppy disk drives, petSD+ connects to the PET's IEEE-488
interface. The PET IEEE-488 interface is based on the original
IEEE-488/GPIB interface and uses an 8-bit parallel data bus.
Later Commodore computers, such as the
used an 8-bit serial bus, using a communications protocol based
Devices based on the sd2iec firmware are available that
provide an SD card storage solution for C64 computers, including
hardware device, or non sd2iec based devices such as
Ultimate II or the
Given the availability of existing SD card solutions
for the C64, there was no intention to include C64 compatibility
with petSD+ until a specific request was made from one buyer who
wanted to use petSD+ with a C64.
When Nils was asked about the possibility of using petSD+
with a C64, he felt that "it should be rather easy to build an
adapter cable to use the petSD+ with a custom firmware with the
C64. With a little more effort, it should be possible to switch
menu driven between the serial IEC bus and the parallel IEEE-488
bus at runtime."
Nils has now built and tested a suitable cable and has
integrated IEC support into the petSD+ firmware.
IEC to petSD+ Cable
|The IEEE-488/GPIB signal lines consist of eight
data lines, three handshake lines, and five management
Connector pin assignments are
standardized as shown. 1
|The Commodore 64 uses a serial
version of the bus
||Serial Request-in (not used by C64)
|Cable configuration for petSD+
to Commodore Serial Port
(Serial port pin out as
viewed from the rear of the plug)
|Directory listing from my C64
using BASIC V2.
BASIC 2 doesn't have the disk
handling features of later versions, so legacy commands
are needed to access the disk.
|to display the disk directory
|And, by way of example . . . .
The Hobbit, running on my C64, loaded from petSD+
Toggle IEEE-488 / IEC Mode
The petSD+ menu is used to toggle
the operating mode between IEEE-488 and IEC modes
From the main menu, scroll down to the second page
of the menu until you see the
Press Sel to
select that menu entry
A submenu with the
two entries IEC / IEEE-488
Position the cursor on the required option and press
"IEC" for serial
interfaces, e.g., the Commodore 64, or
"IEEE-488" for parallel
interfaces, i.e., a PET
The Save Settings
dialogue will be displayed
Position the cursor on
the required option and press Sel
Selecting yes will
save the setting to Flash and will persist through
reset or power cycles
The first release of
NODISKEMU to support IEC bus communications was dated
At first release, Fast Loaders were not supported, only
the slower standard kernal routines worked (400 bytes/sec).
Update : 12/04/2017 Fast Loader Support added
with Firmware Version 2017/04/05
|Fix IEC fastloader for petSD+
The AVR fastloader code is hardcoded for 8
MHz and running the device at other speeds breaks
the timing and thus the support of fastloaders.
But the device can not run at 8 MHz because that
would be too slow to respond in time to the IEEE-488
To fix this, a CPU clock
prescaler is introduced to run at 8 MHz when in IEC
mode and at 16 MHz when in IEEE-488 mode. Replace
the crystal on your petSD+ with a 16 MHz type to
benefit from this commit.
However, take care not to damage the PCB
when you exchange the crystal!
petSD+ devices shipped after 01/05/2017 have the 16MHz
oscillator fitted and are "JiffyDOS Ready"
Update : 28/05/2017 Fast Loader (JiffyDOS)
When I first tried the enhanced
petSD+ firmware with JiffyDOS, I knew that it "felt" much
faster, but wanted to try and quantify the speed
improvements. To that end, I tried loading a few games using
a petSD+ with the previous firmware under Commodore DOS,
then repeated the loads using a modified petSD+ and JiffyDOS.
In short, the speed improvement is almost incredible!
devices shipped prior to 01/05/2017 to work with the Fast
Loader compatible firmware is quite straightforward, but in
addition to replacement of the 18.432MHz oscillator with a
16MHz one, the MCU must be programmed with an upgraded
boot-loader. Again, this is a simple task, but requires a
programmer for the MCU.
If you don't have the tools
to carry out the upgrade for yourself, then I
will upgrade petSD+ devices that I built free of charge
if you cover the cost of postage. Drop me an e-mail if you
want me to do the upgrade for you and we can make the
There are very few
known users of petSD+ IEC mode, if you are using it, please
let me know so that I can update this table
User's marked " β
are running "JiffyDOS Ready" version of the
Basic Knowledge and Glossary for GPIB Communication
The Commodore IEC Bus