Triumph Adler P2
Triumph Adler P2
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.
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.
Re: Triumph Adler P2
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!
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!
You do not have the required permissions to view the files attached to this post.
Re: Triumph Adler P2
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
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.
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
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.
Re: Triumph Adler P2
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
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
Re: Triumph Adler P2
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
[*] 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'!):
[*] Join the boot records and the disk body back together, on Windows it can be:
[*] Let's make a new IMD file with BIN2IMD, it requires a parameter file (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
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
[*] 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
Code: Select all
copy /B disk_boot.raw+disk_body.raw newdisk.raw /y
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
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
Re: Triumph Adler P2
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
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
Re: Triumph Adler P2
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.
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.
Re: Triumph Adler P2
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.
Re: Triumph Adler P2
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.
Re: Triumph Adler P2
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.
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.
Re: Triumph Adler P2
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.
Re: Triumph Adler P2
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
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
Re: Triumph Adler P2
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
https://sharpmz.no/original/succpminfo02.htm
Apparently also the Sharp PC-3201 had a CP/M version loading programs at 4300h
Re: Triumph Adler P2
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.
Eyeballing disc images I couldn't see a difference but I've obviously done something wrong, extra eyeballs very welcome.
Re: Triumph Adler P2
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
definitely I should shorten the backlog, eyeballing a little is not a problem
Re: Triumph Adler P2
I checked the disk image in raw format, apparently appmake is doing everything right .
It's strange the autorun isn't working, though.
It's strange the autorun isn't working, though.