cpmcp -f z80pack-hd ./disks/drivea.dsk 0:XSUB.COM XSUB.COM RTM/Z80 - Retro Tiny Multitasking system for Z80 On this https://groups.google.com/g/rc2014-z80/c/is43UD_1vFA Google group forum was introduced very interesting project - RTM/Z80. Here I'ill collect my experiences with it. https://www.autometer.de/unix4fun/z80pack/ Follow chapter: Quickstart to run the Digital Research OS's z80pack-1.37.tgz Preparing Z80-SIM on Linux (Debian 10.4 in my case) ------------------------------------------------------------------------- On Linux: Expand z80pack-1.37.tgz somewhere, I use home dir: cd z80pack-1.37/cpmsim/ In cpmsim directory: ln disks/library/hd-tools.dsk disks/drivei.cpm cpmls -f z80pack-hd disks/drivei.cpm mkdskimg i mkdskimg j ./cpm2 If everything is OK, Z80-SIM is started and you can see CP/M console. ------------------------------------------------------------------------- On CP/M shell explore drives: A>dir A>dir B A>dir I A>dir J Use A:bye command to exit CP/M emulator. ========================================================================= Cpmtools 2.21 ------------- This package allows to access CP/M file systems and transer files between Linux filesystem and CP/M drives. Download cpmtools-2.21.tar.gz from http://www.moria.de/~michael/cpmtools/ to Linux directory cpmtools-2.21 and folllow instrunctions in INSTALL. Read https://www.autometer.de/unix4fun/z80pack/doc_cpm_disks.html to understand, how it works. Linux CP/M tools manpages for commands important for as: https://linux.die.net/man/1/cpmls https://linux.die.net/man/1/cpmcp https://linux.die.net/man/1/cpmrm ========================================================================= RC 2014 - I use drive I: for build things for RC2014 with SC108 + SC102 + SIO/2. ========================================================================= On Linux shell: Check if you have in config.mac: DEBUG equ 0 ;1=debug mode ON: verify task SP, task TCB, dealloc, lists, etc. SIM equ 0 ;1=Runs under CP/M, 0=Runs on RC2014(SC108+SC110) DIG_IO equ 1 ;1=RC2014 Digital I/O module is used CMD equ 0 ;1=CON CMD task is included RSTS equ 1 ;1=use RST for list routines (not for CP/M) WATSON equ 0 ;1=Watson is used (not for CP/M) C_LANG equ 1 ;1=Support for C language API IO_COMM equ 1 ;1=Support for async communications I/O MM equ 0 ;1=Memory Module is used, 0=SC108 is used BDOS equ 1 ;1=BDOS disk file support LPT equ 0 ;1=Parallel Printer (Compatibility mode) (not for SIM) RAM128K equ 1 ;0=only 64K RAM, 1= 2 x 64K RAM available BIOS.AS: SIZE64 equ 0; set 0 for 128 On Linux shell: cpmrm -f z80pack-hd ./disks/drivei.dsk *.* # Copy HiTech C compiler 3.0.9 to I: cpmcp -f z80pack-hd ./disks/drivei.dsk HTC309/*.COM 0: cpmcp -f z80pack-hd ./disks/drivei.dsk HTC309/*.OBJ 0: cpmcp -f z80pack-hd ./disks/drivei.dsk HTC309/*.LIB 0: cpmcp -t -f z80pack-hd ./disks/drivei.dsk HTC309/*.H 0: cpmcp -t -f z80pack-hd ./disks/drivei.dsk HTC309/OPTIONS 0: # Copy RTM/Z80 to I: cpmcp -t -f z80pack-hd ./disks/drivei.dsk RTM-Z80_RC2014/*.sub 0: cpmcp -t -f z80pack-hd ./disks/drivei.dsk RTM-Z80_RC2014/*.as 0: cpmcp -t -f z80pack-hd ./disks/drivei.dsk RTM-Z80_RC2014/*.h 0: cpmcp -t -f z80pack-hd ./disks/drivei.dsk RTM-Z80_RC2014/*.c 0: cpmcp -t -f z80pack-hd ./disks/drivei.dsk RTM-Z80_RC2014/*.mac 0: cpmcp -f z80pack-hd ./disks/drivei.dsk RTM-Z80_RC2014/*.hex 0: ------------------------------------------------------------------------- On CP/M shell (run those commands one-by-one line, don't use copy/paste whole content): I>A:pip I:=A:xsub.com I>A:submit make.sub I>A:submit makelib.sub ------------------------------------------------------------------------- On Linux shell: cpmrm -f z80pack-hd ./disks/drivei.dsk TESTPIOS.* cpmrm -f z80pack-hd ./disks/drivei.dsk MYMAKE1.SUB cpmrm -f z80pack-hd ./disks/drivei.dsk MYMAKE2.SUB cpmcp -t -f z80pack-hd ./disks/drivei.dsk RTM-Z80_RC2014/mymake1.sub 0: cpmcp -t -f z80pack-hd ./disks/drivei.dsk RTM-Z80_RC2014/mymake2.sub 0: cpmcp -t -f z80pack-hd ./disks/drivei.dsk RTM-Z80_RC2014/testpios.c 0: ------------------------------------------------------------------------- On CP/M shell: a:submit mymake1 a:submit mymake2 ------------------------------------------------------------------------- On Linux shell: cpmcp -f z80pack-hd ./disks/drivei.dsk 0:HEXBOOT.HEX hexboot.hex cpmcp -f z80pack-hd ./disks/drivei.dsk 0:RTMDEMO.HEX rtmdemo.hex cpmcp -f z80pack-hd ./disks/drivei.dsk 0:MSORT.HEX msort.hex cpmcp -f z80pack-hd ./disks/drivei.dsk 0:TESTXR.HEX testxr.hex cpmcp -f z80pack-hd ./disks/drivei.dsk 0:TESTXS.HEX testxs.hex cpmcp -f z80pack-hd ./disks/drivei.dsk 0:TBDOS.HEX tbdos.hex cpmcp -f z80pack-hd ./disks/drivei.dsk 0:GETXFILE.HEX getxfile.hex cpmcp -f z80pack-hd ./disks/drivei.dsk 0:TESTPIOS.HEX testpios.hex Then use WinSCP to copy hexboot.hex to your local directory. Open it and copy content to clipboard. Then switch to Putty connected to RC2014, reset it and type *gE000. Make right-mouse-click over terminal to send content of hexboot.hex to RC2014. If you have SC108, you may try directly to run the demo (DEMO/HEX/SC108/rtmdemo.hex). Load first HEXBOOT.HEX, run-it with gE000 then feed someprog.hex ========================================================================= CP/M - I use drive J: for build things for CP/M emulated on Z80-SIM. ========================================================================= On Linux shell: Check if you have in config.mac: SIM equ 1 ;1=Runs under Z80SIM, 0=Runs on RC2014(SC108+SC110) cpmrm -f z80pack-hd ./disks/drivej.dsk *.* # Copy HiTech C compiler 3.0.9 to J: cpmcp -f z80pack-hd ./disks/drivej.dsk HTC309/*.COM 0: cpmcp -f z80pack-hd ./disks/drivej.dsk HTC309/*.OBJ 0: cpmcp -f z80pack-hd ./disks/drivej.dsk HTC309/*.LIB 0: cpmcp -t -f z80pack-hd ./disks/drivej.dsk HTC309/*.H 0: cpmcp -t -f z80pack-hd ./disks/drivej.dsk HTC309/OPTIONS 0: # Copy RTM-Z80 to J: cpmcp -t -f z80pack-hd ./disks/drivej.dsk RTM-Z80_CPM/*.sub 0: cpmcp -t -f z80pack-hd ./disks/drivej.dsk RTM-Z80_CPM/*.as 0: cpmcp -t -f z80pack-hd ./disks/drivej.dsk RTM-Z80_CPM/*.h 0: cpmcp -t -f z80pack-hd ./disks/drivej.dsk RTM-Z80_CPM/*.c 0: cpmcp -t -f z80pack-hd ./disks/drivej.dsk RTM-Z80_CPM/*.mac 0: cpmcp -f z80pack-hd ./disks/drivej.dsk RTM-Z80_CPM/*.hex 0: ------------------------------------------------------------------------- On CP/M shell: J>A:pip J:=A:xsub.com J>A:submit make.sub J>A:submit makelib.sub J>C -iJ0: -o rtmdemo.c rand.as rt.lib J>rtmdemo cpmcp -f z80pack-hd ./disks/drivea.dsk 0:XSUB.COM XSUB.COM