Difference between revisions of "PDS development system"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Technical)
(Pictures (original): Added Original interface scans)
 
(36 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
PDS is an acronym for "Programmers Development System" and is a development system made by Andy Glaister.
 
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.
+
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.
 
A company called "Programmers Development Systems Ltd" or "PD Systems" sold it.
  
The system made it easy to develop for computers like the Amstrad, C64 and Spectrum.
+
The system made it easy to develop for computers like the Amstrad CPC, [[Commodore 64|C64]], [[MSX]], and [[ZX Spectrum]].
 
The code was written on the PC and transferred through the hardware interface to the target computer.
 
The code was written on the PC and transferred through the hardware interface to the target computer.
  
Line 11: Line 11:
  
 
Uses port FBEC-FBEF.
 
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).
  
*FBEC is used to transfer 8-bit data.
+
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.
*FBED input is used to signal data is ready for CPC to read
+
*FBED output is used to signal back to host that data has been received.
+
*FBEE,FBEF purpose unknown (?)
+
  
Not known what the interface contained.
+
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.
  
== CPC Games that contain PDS code ==
+
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.
  
Normally, the PDS related code wasn't included in release versions, however, some release versions do still contain some (unused) code fragments that access some Ports at FBEC-FBEF:
+
''Not 100% sure if above describes the original PC/CPC interfaces - or if that are homebrew remakes (?)''
* Gremlins (spanish version)
+
 
* Last V8
+
== Another Version (?) ==
* Robin of Sherwood
+
 
* Seablood
+
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).
 +
 
 +
== Pictures (original) ==
 +
 
 +
<gallery>
 +
File:PDS_Original_Top.jpg|Unit Top
 +
File:PDS_Original_Bottom.jpg|Unit Bottom
 +
File:PDS_Original_PCB_Top.jpg|PCB Top
 +
 
 +
File:PDS_Original_PCB_Bottom.jpg|PCB Bottom
 +
 
 +
File:PDS_Original_PCCard_Top.jpg|PC Card Top
 +
 
 +
File:PDS_Original_PCCard_Bottom.jpg|PC Card Bottom
 +
 
 +
</gallery>
 +
 
 +
== Pictures (remake) ==
 +
 
 +
<gallery>
 +
File:Manuel Montoto PDS placa Amstrad.jpg|Amstrad (component)
 +
File:Manuel Montoto PDS placa MSX.jpg|MSX (component)
 +
File:Jose Leandro PDS placa Spectrum-A.jpg|Spectrum (component)
 +
File:Jose Leandro PDS placa Spectrum-B.jpg|Spectum (solder)
 +
File:Jose Leandro PDS placa PC-A.jpg|PC (component)
 +
File:Jose Leandro PDS placa PC-B.jpg|PC (solder)
 +
File:Jose Leandro PDS el cable.jpg|Pin1-16 wired to Pin16-1
 +
File:Jose Leandro PDS programa tecla-f1.jpg|PC (software)
 +
File:Jose Leandro PDS Schematic spectrum.png|Schematic (Spectrum)
 +
File:Jose Leandro PDS Schematic PC.png|Schematic (PC)
 +
File:NoPicture.gif|C64 User Port interface
 +
</gallery>
 +
 
 +
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 ==
 
== 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"
+
"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"
 +
 
 +
== Manuals ==
 +
 
 +
* [[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.
 +
 
 +
== Downloads ==
 +
 
 +
* [[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.
  
 
==Links==
 
==Links==
Line 35: Line 113:
 
* http://www.glaister.com/History/Andy/Andy%20History.htm
 
* http://www.glaister.com/History/Andy/Andy%20History.htm
 
* http://noname.c64.org/csdb/forums/?roomid=9&topicid=74874#74983
 
* http://noname.c64.org/csdb/forums/?roomid=9&topicid=74874#74983
 +
* [http://www.speccy.org/trastero/cosas/JL/PDS/Introduccion.html PDS on speccy.org (in Spanish)]
 +
 +
[[Category:CrossDev]][[Category:Peripherals]]

Latest revision as of 16:38, 29 March 2015

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 system made it easy to develop for computers like the Amstrad CPC, C64, MSX, and ZX Spectrum. The code was written on the PC and transferred through the hardware interface to the target computer.

The target computer ran a program which waited for PDS to send it instructions.

Technical

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).

Pictures (original)

Pictures (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"

Manuals

See DL0,DL1,DL2 source code files for more info on the download protocol.

Downloads

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.

Links