thames emulates enough of the ISIS-II environment to be able to run the following programs (used in the CP/M 3 build process):
Installation should just be a matter of the usual sequence of commands:
./configure make make install
You will need to set up environment variables to map Unix directories to ISIS-II drives. For example, in a Bourne-style shell:
ISIS_F0=/home/me/isis ISIS_F1=/home/me/isis/plm80 ISIS_F2=/home/me/isis/asm80 ISIS_F3=/home/me/isis/utils export ISIS_F0 ISIS_F1 ISIS_F2 ISIS_F3
Or in a csh-style shell:
setenv ISIS_F0 /home/me/isis setenv ISIS_F1 /home/me/isis/plm80 setenv ISIS_F2 /home/me/isis/asm80 setenv ISIS_F3 /home/me/isis/utils
It's also possible to set up character devices this way. For example, if the program you want to run needs to use the printer device :LP:, then you can set up a file to receive printer output:
ISIS_LP=/home/me/isis/lp.txt export ISIS_LP setenv ISIS_LP /home/me/isis/lp.txt
Once the variables are set up, you should be able to run an ISIS program like this:
thames :F3:locate put.mod "code(0100H)" "stacksize(100)"
This sequence of commands should build PUT.COM from CP/M 3:
thames :F2:asm80 putf.asm debug thames :F1:plm80 put.plm "pagewidth(100)" debug optimize thames :F3:link mcd80a.obj,put.obj,parse.obj,putf.obj,:F3:plm80.lib to put.mod thames :F3:locate put.mod "code(0100H)" "stacksize(100)" thames :F3:objhex put to put.hex
Areas of functionality not used by the CP/M 3 build tools are untested. These include the system calls RENAME, CONSOLE, ATTRIB, ERROR and WHOCON, and the ability to open files other than the console in line mode.
Set the ISIS_TRACE environment variable to get debug logs. It should be set to an integer between 0 and 4: