Difference between revisions of "PDS development system"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Pictures)
(Pictures (original): Added Original interface scans)
 
(14 intermediate revisions by 3 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 CPC, [[C64]], [[MSX]], and [[ZX 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 15: Line 15:
 
  FBEE PDS [[Z80 PIO]] Port A Control
 
  FBEE PDS [[Z80 PIO]] Port A Control
 
  FBEF PDS [[Z80 PIO]] Port B 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 '''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 '''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 (?)''
 
''Not 100% sure if above describes the original PC/CPC interfaces - or if that are homebrew remakes (?)''
Line 29: Line 39:
 
  FBEF - data 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):
 
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 (spanish version)
+
* Gremlins (Adventure Soft, UK) (debug I/O code found in spanish Gremlins version)
* Last V8
+
* Robin of Sherwood (Adventure Soft, UK)
* Robin of Sherwood
+
* Seablood aka Seas of Blood (Adventure Soft, UK)
* Seablood
+
* 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.
 
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: 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 ==
+
== 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>
 
<gallery>
Line 43: Line 68:
 
File:Manuel Montoto PDS placa MSX.jpg|MSX (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-A.jpg|Spectrum (component)
File:Jose Leandro PDS placa Spectrum-B.jpg|Sprectum (solder)
+
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-A.jpg|PC (component)
 
File:Jose Leandro PDS placa PC-B.jpg|PC (solder)
 
File:Jose Leandro PDS placa PC-B.jpg|PC (solder)
Line 53: Line 78:
 
</gallery>
 
</gallery>
  
Note that the photos seem to be showing a spanish remake, not the origial hardware (as indicated by the "P DE FRANCISCO" text on the solder side). The two schematics are a "remake-of-the-remake" (ie. the PCBs seem be authentic old hardware, the latest YYWW year/week datestamp on the chips is from 1989. The schematics were drawn at a later time, when reverse engineering how those PCBs worked).
+
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 ==
Line 67: Line 94:
 
== Manuals ==
 
== Manuals ==
  
* [[Media:The PDS Z80 Manual.pdf]] - Describes Z80 Assembler, Debugger, and Transfer Protocol
+
* [[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 6502 Manual.pdf]] - Describes 6502 Assembler, Debugger, and Transfer Protocol
* [[Media:The PDS Editor Manual.pdf]] - Describes the PC side
+
* [[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 76: Line 114:
 
* 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)]
 
* [http://www.speccy.org/trastero/cosas/JL/PDS/Introduccion.html PDS on speccy.org (in Spanish)]
 +
 +
[[Category:CrossDev]][[Category:Peripherals]]

Latest revision as of 15: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