PDS is an acronym for "Programmers Development System" and is a development system made by Andy Glaister. The system comprised an "Apricot PC" (an early PC), assembler, debugger, editor, profile, graphics tool and hardware to connect to a target computer. A company called "Programmers Development Systems Ltd" or "PD Systems" sold it.
The target computer ran a program which waited for PDS to send it instructions.
Uses port FBEC-FBEF.
FBEC PDS Z80 PIO Port A Data (8bit data to/from PC) FBED PDS Z80 PIO Port B Data (handshake to/from PC) FBEE PDS Z80 PIO Port A Control FBEF PDS Z80 PIO Port B Control
The handshake bits (in Port FBEDh) are:
0 clock from PC (data transferred on BOTH raising AND falling edges) 1-4 unknown (not connected in spectrum schematic) 5 unknown (something to and/or from PC in spectrum schematic) (could be IRQ) 6 data direction (for 74LS245 transceiver) 7 clock/acknowledge to PC (signals BOTH raising AND falling edges, too)
Note on data direction: This is feature duplicated in hardware, the Z80 PIO itself is bidirectional, so, theoritically, the external 74LS245 transceiver isn't required - it may be there to act as amplifier, or as fuse).
The CPC interface connects to Expansion Port, and contains a Z80 PIO chip, and 74LS245, 74LS04, 74LS32 logic chips, and a Reset button. And a 2x8pin connector, for connecting to PC via 16pin flat-cable.
The PC interface connects to ISA bus, and contains a 8255 PPI chip, five logic chips, and two 2x8pin connectors, allowing to connect to up to two slave computers.
The CPC needs to execute PDS download source code, for communicatiing with the debugger, and for loading CPC software via cable rather than from tape or disc.
Not 100% sure if above describes the original PC/CPC interfaces - or if that are homebrew remakes (?)
Another Version (?)
There seems to be also another version, using Port FBEC-FBEF, too. But assigning different meanings to that ports - using different hardware without Z80 PIO chip.
FBEC - unknown (maybe configuration, or maybe REQUEST to PC) FBED - data to PC (used in Last V8) FBEE - bit0 = CLK signal from PC FBEF - data from PC
Normally, the debug/transfer code isn't included in release versions, however, some CPC release versions do still contain some (unused) code fragments that access some Ports at FBEC-FBEF (in non-Z80 PIO fashion):
- Gremlins (Adventure Soft, UK) (debug I/O code found in spanish Gremlins version)
- Robin of Sherwood (Adventure Soft, UK)
- Seablood aka Seas of Blood (Adventure Soft, UK)
- The Last V8 (Mastertronic)
Unclear if these games were made using an alternate (older or newer) version of the official PDS hardware, or if they were using a similar devkit from another company.
Note: The handshake/timing used in the above games seems to be less stable than in the Z80 PIO version (seem to be working only if the PC software disables interrupts during transfer - unless the hardware includes automatic handshaking, which isn't seen in the Z80 disassemblies), so the four games may have been using an older PDS version (or a third-party remake).
Note that the photos are showing a spanish remake, not the origial hardware (as indicated by the "P DE FRANCISCO" text on the solder side). The PCBs on the photos are dated around late eighties (the newest YYWW datestamp seen on the chips is from week 01 of year 1989). Andy confirmed that the photos aren't showing his cards. The schematics were drawn at a later time, when reverse engineering how those remake PCBs worked), so the schematics are a "remake-of-the-remake".
Info from Andy Glaister
"During the rest of the 1980's I started working on a development system as typing in hex using a two line basic program was becoming more and more difficult. This was developed on one of the first IBM PC clones from England - the 'Apricot PC'.
This was an extremely well designed machine and actually had some advantages over the early IBM PC's - namely a 960K memory limit, a separate LCD in the keyboard and great hardware and software manuals. The assembler, editor, debugger, profiler, graphics tool and hardware card to connect to C64's, ZX Spectrums, Amstrads, C16's etc... became really popular with first my friends and then more and more developers.
I formed a company called 'Programmers Development Systems Ltd.' or PD Systems with Jacqui Lyons (of Marjacq) and Fouad Katan (of Bits) and for the remainder of the 1980's and early 90's we sold about 500 systems to pretty much all the game development companies in England. Many of the people who bought these systems would never have used the PC for anything else, so it was quite a large investment at the time.
It's difficult to find information on PDS these days, I have found a couple of links to companies and individuals who mention PDS: http://tacgr.emuunlim.com/interviews/interviews.php?interview=1, http://www.blitzgames.com/olivertwins/earlyyearsp2.htm"
- Media:The PDS Z80 Manual.pdf - Describes Z80 Assembler, Debugger, and Transfer Protocol (1987)
- Media:The PDS 6502 Manual.pdf - Describes 6502 Assembler, Debugger, and Transfer Protocol
- Media:The PDS Editor Manual.pdf - Describes the PC side (2nd edition, 1988)
- Media:PDS guide early version.pdf - Describes the PC side (early version with only 4 pages)
- Media:P.D.S. Manual.pdf - Describes Assembler directives, Download protocol, Debugger (54 pages) (1987) (OCRed version form worldofspectrum.org)
See DL0,DL1,DL2 source code files for more info on the download protocol.
- Media:PDS source code.zip - DL0/DL1/DL2 source code files (for CPC, C64, BBC, Spectrum)
- Media:PDS executables.zip - PC Executables (Z80 v1.21, v1.26, and 6502 v1.21)
The executables will hardly work on modern PCs (v1.26 shows a blank screen and beeps on any keystrokes, v1.21 accidently complains about needing MSDOS 3 or higher under win98, or needing 640K or more RAM under freedos). Aside from that, the executables are said to work only if the PDS ISA card is installed.