Triumph Adler P2

Post Reply
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Triumph Adler P2

Post by stefano »

Alphatronic P2 is based on a standard proposed by a small German company (SKS),
to which many companies of the country adhered, including Hell (now part of siemens), Triumph-Adler and ITT.
It was designed around the i8085 CPU, no BASIC at startup but ROM monitor called "MOS" (Micro Operating System).

Configurations:

A cut-down version with 32k and a single floppy drive (Triumph Adler P1)
The standard, 48k version with two floppy drives (Triumph Adler P2, SKS KISS)
The upgraded, 64k version (Triumph Adler P2U)
The single-board version (Triumph Adler P2E)


The P2 architecture wasn't CP/M compatible, a rebased version of the D.R. CP/M 2.2 was provided together with several applications, including a specific version of MBASIC.COM
The very unusual RAM base was $4200 also used for WBOOT, which means that BDOS entry was at $4205 and the TPA region was at $4300

A standard CP/M implementation was available for the P2U.

I tuned MBASIC.ASM to get flexible enough for this configuration and it works flawlessly.
To get MBASIC 5.22 for the P2:

z80asm -b -DORIGINAL -DBASE=16896 -m8085 mbasic.asm
z88dk-appmake +cpmdisk -f alphatp2 --container=imd -b mbasic.bin


I'm trying to gently evolve the current z88dk CP/M configuration accordingly.

The P2 series is supported by MAME, I suggest to change the frameskip. Type 'B' to tell the ROM MONITOR to boot from the disk drive and use TAP2-02.IMD as a valid system disk. The keyboard is not fully emulated.
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

I did an experiment.
We have 2 samples of relocated CP/M systems, the P2 and the Spectrum 128 with BetaDisk interface (e.g. the Pentagon 128).
The latter was a nice conversion of the CP/M for the Quorum written in 2003 by Kamil Karimov. No system utilities were provided but Kamil included a full implementation of the bds C compiler, enough to build and run othello.c at TPA address $6100 (WBOOT is at $6000).

I've put in z88dk/support/rel a new simple tool which compares two COM files to identify the different memory locations and create an altered program shifted at a desired position.
Obviously you need to be very lucky and spot two COM files originated from the same exact source, with no other tweaks.
To me it worked well on the BDS C librarian tool only, but it worked!
p2_converted.png
You do not have the required permissions to view the files attached to this post.
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

I needed to understand how a CP/M system with a shifted base address works, the original asm sources were a good training for it.
I put a couple of sources modified for the Spectrum128 in z88dk-docs.
https://github.com/z88dk/techdocs/tree/ ... s/zx/zxcpm

I think that a Spectrum running a rebased CP/M able to build ASM from the ASM sources is cool :cool:
zxcpm_asm.png
The new tool provided another couple of commands, PIP.CM6 is rather useful when using CP/M, but I'm not adding the small librarian tools, it is a nonsense to keep them alone without a whole compiler/ assembler suite.
You do not have the required permissions to view the files attached to this post.
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

Actually I forgot I knew already another CP/M implementation with a similar shift, it was the CP/M 1.4 for the TRS-80 Model I, by Small System Software (distributed by Lifeboat Associates). The zero page is at 4200 like on the Alphatronic P2, I suspect some of the SW components for the P2 were borrowed from it.

https://archive.org/details/User_Notes_ ... e/mode/2up

EDIT: the disk format is supported by z88dk-appmake, the omikron format type will work.

A simple stub on top of the files will work perfectly as an adaptor for the binaries, they can be run on a normal command line cp/m emulator.
This allows setting up interesting cross development configurations
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

System disk images for the TRS80 Model I (shifted TPA):

https://archive.org/download/Humongous_ ... M_1_41.zip

https://archive.org/download/Humongous_ ... M15FMG.zip

Editing those files is not simple, the method I'm using implies a first conversion to RAW splitting the first 7.680 bytes of the boot records and the next
73.728 ones for the disk body:

[*] Use the trs80gp emulator and export the DMK image to DMK again, the resulting file will get simpler (the FM encoded disks can be doubled in the DMK container).
[*] Convert it to IMD with SAMDISK
[*] Get the RAW image(boot portion): <msdos> imdu /B /D disk.imd X=3,99 disk_boot.raw
[*] Get the RAW image(body portion): <msdos> imdu /B /D disk.imd X=0,2 disk_body.raw

[*] Use cpmtools to deal with the disk body

Code: Select all

diskdef trs1
 seclen 128
 tracks 35
 sectrk 18
 blocksize 1024
 maxdir 64
 boottrk 0
 skew 4
 os 2.2
end
[*] Extract the files: mkdir extracted_files // cpmcp -f trs1 isk_body.raw 0:*.* extracted_files
[*] Add or remove stuff with cpmtools

[*] You can also create your own blank disk body, a 'formatted byte' is $E5 (in octal it is '345'!):

Code: Select all

cat /dev/zero | tr '\000' '345' | head -c 73728 > blank_body.raw
[*] Join the boot records and the disk body back together, on Windows it can be:

Code: Select all

copy /B disk_boot.raw+disk_body.raw newdisk.raw /y
[*] Let's make a new IMD file with BIN2IMD, it requires a parameter file (cpm14.b2i):

Code: Select all

0  N=35  DM=2  SS=256 SM=0-9 /1
3  DM=2 SS=128 SM=1-18 /1

Code: Select all

msdos bin2imd newdisk.raw newdisk.imd cpm14.b2i
'cpmtools' accepts wildcards, the instructions above can be put in a handy batch creating a SYSGEN'd disk image with your files in it.
Otherwise: z88dk-appmake +cpmtools -f omikron..

EDIT: I rebuilt a disk image collection, most of the ones you can get online were incomplete or has broken files.

https://archive.org/details/model1_48k_cpm
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

ImageDisk is apparently less peeky with the Alphatronic P2 image files, but a similar technique to the one I've described above could be handy.
Direct editing of an IMG file requires cpmtools built including libdsk (enabling option -T imd).

https://forum.vcfed.org/index.php?threa ... st-1336390

I'll create a specular s disk image set soon, it's quite straightforward now
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

A set of disk images for the H8/H89 is possible but the content compatible such a small TPA is rather limited.
MS BASIC and most of the compilers won't run on it. BDS C surprisingly makes it, but only small programs can be built.
By the way the compilers can be used to cross-build programs which will happily run on the H89, such as the BDS C OTHELLO or some BASIC compiled game.
LifeBoat CP/M on the H89 ran on hard-sectored disks, the usual floppy disk image containers are not appropriate, a RAW file can be renamed to H8D, which is the old "standard" disk image type in the Heath-Zenith community. A new container (H17) would be a better choice, I'm trying to add it to cpmdisk, but it is not as simple as it looked.
User avatar
dom
Well known member
Posts: 2239
Joined: Sun Jul 15, 2007 10:01 pm

Re: Triumph Adler P2

Post by dom »

Can you point me in the direction of the boot disks for the Adler 2? I'm sure we can get some non-CP/M support going.
User avatar
RobertK
Well known member
Posts: 397
Joined: Mon Feb 26, 2018 12:58 pm

Re: Triumph Adler P2

Post by RobertK »

dom wrote: Wed Nov 13, 2024 4:54 pm Can you point me in the direction of the boot disks for the Adler 2? I'm sure we can get some non-CP/M support going.
Mail sent.

The P2 even had an optional hires graphics card using a Thomson CSF-EF 9366 chip, but maybe this will never be emulated in any emulator.

A former developer of the P2 has assembled lots of information here...
http://www.waltroper-aufbruch.de/Archiv ... onicP2.php
...although his web site is a bit confusing.
User avatar
dom
Well known member
Posts: 2239
Joined: Sun Jul 15, 2007 10:01 pm

Re: Triumph Adler P2

Post by dom »

Received, thank you. I've got a good idea how to support this one directly now.

There's a bunch of PDFs on ftp://ftp.informatik.uni-stuttgart.de/p ... lphatronic which are very useful - particularly around the MOS commands and entry points.
User avatar
dom
Well known member
Posts: 2239
Joined: Sun Jul 15, 2007 10:01 pm

Re: Triumph Adler P2

Post by dom »

I've just got something loading and running though not as smoothly as it should be - eg the load block command (I) reports with #02 and a quick scan through the docs hasn't yielded the answer. I'll carry on tinkering.
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

Good to hear it!
In the meantime I noticed that Kamil put the CP/M base address at 6000h just because it was easier to do file transfer from the ZX Spectrum, peeking around 4200h shows free memory all around.
The original Quorum CP/M had been reverse engineered an put on GitHub, so getting a version compatible to the P2, the TRS80 and the H8/H89/Z-89 is probably possible
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

https://original.sharpmz.org/pc3201hist.htm
https://sharpmz.no/original/succpminfo02.htm

Apparently also the Sharp PC-3201 had a CP/M version loading programs at 4300h
User avatar
dom
Well known member
Posts: 2239
Joined: Sun Jul 15, 2007 10:01 pm

Re: Triumph Adler P2

Post by dom »

I've merged in basic support, however I'm being tripped up by an inability to load more than 2k of program.

Eyeballing disc images I couldn't see a difference but I've obviously done something wrong, extra eyeballs very welcome.
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

I'm not ignoring you, just my current environment is not ideal for a refresh, plus the rabbit hole which I entered by experimenting with cp/m (I now totally understand the Felipu struggle trying to stay focused on many parallel assembly language environments) .
definitely I should shorten the backlog, eyeballing a little is not a problem
stefano
Well known member
Posts: 2282
Joined: Mon Jul 16, 2007 7:39 pm

Re: Triumph Adler P2

Post by stefano »

I checked the disk image in raw format, apparently appmake is doing everything right .
It's strange the autorun isn't working, though.
Post Reply