Welcome to the idp-dev, the Iskra Delta Partner SDK.
We are a group of volunteers interested in preserving our digital heritage. We provide tools and tutorials to developers writing software for the Iskra Delta Partner computer.
We maintain repositories:
- idp-dev. This repository.
- idp-sw.. Sample projects using this SDK.
- idp-games. Games!!!
- idp-doc. Documentation archive.
Additional Partner resources:
If you'd like to donate old Iskra Delta Partner, Gorenje Dialog or Triglav hardware, please consider donating to us.
This repository contains submodules; clone it with --recurse-submodules.
git clone https://github.com/tstih/idp-dev.git --recurse-submodules
Our initial project was the C runtime, consisting of a C compiler and a Standard C library. We adjusted the SDCC compiler suite to produce executables for the Iskra Delta Partner and wrote the standard library.
Later we realized that the wider retro community, using various Z80 machines and CP/M systems, could benefit from our work and we separated it into four projects:
-
libsdcc-z80 is a library for bare metal programming with SDCC. You can use it to write programs from scratch for any Z80 platform. Navigate to it to find out what it does and how to use it.
-
libcpm3-z80 is a platform-independent Standard C library for CP/M 3. If you are interested in how a
.com
program for CP/M is created, and what parts of the Standard library are implemented? You'll find the answers to your questions here. -
libpartner provides access directly to Partner hardware. It also injects platform-specific functions into the libcpm3-z80, enabling extended features, such as managing the system time. This library is now the only native part of the
idp-dev
repository. All other libraries are now separate git submodules. -
libgpx is an early version of a platform-independent library for graphics, current targeting Iskra Delta Partner and ZX Spectrum 48K.
The following figure shows interdependencies between the submodules.
All libraries and software require libsdcc
. Partner programs require libcpm3-z80
, and
this library obtains native functions (such as reading and writing the system clock!) from
libpartner.
The libgpx
is by design a multiplatform library, and it brings its own
graphical drivers ... hence no dependencies to libpartner.
Module | Status (complete) |
---|---|
The SDCC auxiliary library | |
The Standard C library | |
The Partner library | |
The Graphics library |
When we say a library is 100% completed, it means that we implemented everything that was initially planned, not 100% compliance with the standard.
At present
We are still working on the mouse functions for the Partner library, primarily because we don't have a test environment, and we're waiting for more advanced emulation updates.
At present, the build environment is Linux with sdcc
compiler suite installed.
The Standard C Library requires the latest version of SDCC (4.1.6). You are going to have to [build it from the sources] (http://sdcc.sourceforge.net/). To make things more complicated, the build process also requires an exact version of the
automake
tools (1.16.2) and will not compile with other versions. Newer versions will also work.
Compile everything with
make
This compiles libraries and creates the sdk/
directory with .lib
files,
.h
files, and a hello world sample with its' Makefile
.
The "Hello World" sample prints Hello world!. It links all existing IDP libraries so you can use it as a starting point for your own project.
make libs
Compile only libraries and copy them to the bin
directory.