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.
Triumph Adler P2
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