[comp.sys.cbm] 1581 & C-Power

dwl10@amdahl.amdahl.com (Dave Lowrey) (09/11/87)

After several days of trial and error, I have successfully set up
a "C-Power" (C64) development environment using a 1541 & a 1581 drive.
In this environment, I can still use my FASTLOAD cartridge to load
executables, and I never have to swap a disk during compile or link.

The disks are arranged as follows:
(Files marked with *** have been modified. See below)

      1541 (Device 8, shell SYSTEM drive)
------------------------------------------
shell
cc.sh ***
compiler
translator
link.sh ***
ed.sh
ced.sh
trim.sh
(any other often used executables)

          1581 (Device 10 or 11, shell WORK drive)
---------------------------------------------------
Partition #1:   all system ".l" & ".obj" files, from both sides of the
                distribution disk.
Partition #2:   Personal ".l" & ".obj" files
Partition #3:   System header (".h") files
Partition #4:   Personal header files
Partition #5-n: Development partitions.

When the shell is booted, I set the system device to be #8, the 1541. I
set the work device to be #11, the 1581 (There are FASTLOAD problems
if the 1581 is device 8 or 9).

To create a source file, use the 'disk' shell command to select the
proper development partitionon the 1581. Then edit away with ed or ced.
You can use the editor's 'disk' primary command to change partitions. That
is how I get copies of the '.h' files into the development partition, from
the header partition.

To compile, verify you are in the correct partition by listing the
directory with the 'l' shell command. Then use the 'cc -p' command
to compile. The cc command was modified to not do any 'i0:' commands
to the work disk. If the 'i0:' were allowed, the disk would reset to the
root partition, and all of the .o files would end up there.

Linking took a bit of work to accomplish. I had to modify the link
command so it would allow partition switching. I have added a new
command to link, the '@' command. On any link input line, you enter
@cmd where cmd is any valid disk command (usually a partition switch
command). link was also modified to read the system libraries from the
WORK disk, instead of the SYSTEM disk. A minor change was necessary to
incorporate the mods: the <- (left arrow) key is now the abort key,
instead of 'x'.

The linking process for a "typical" program would look like
this:

$ disk /                    /* change to root partition /*
$ disk /sourcedir           /* change to the development partition */
$ link                      /* execute the link command */
> myprog.o                  /* read my object file */
> mysubs.o                  /*  (same) */
> @/                        /* change to root partition */
> @/syslib                  /* change to system library partition */
> ^ (up arrow)              /* include system routines */
> @/                        /* change to root partition */
> @/sourcedir               /* change to development partition */
> (cr)
> (enter .sh file name)
$

Altho it looks a bit complicated, it works great. There is no disk
swapping, and you get the added benifit of the 1581's much faster
directory searches on your system .o files.

I doubt that, due to copyrights and all, I can distribute my
modified versions of cc.sh and link.sh. But, if anyone is interested,
I could mail the zaps to the two modules. All you need is a ml
monitor.
-- 
-------------------------------------------------------------------

                  "Familiarity breeds attempt"

                          Dave Lowrey
                          Amdahl Corp.
                          Houston, Texas
                          (713)-850-8828
                         ...!{ihnp4,cbosgd,hplabs,oliveb}!amdahl!dwl10

[ The opinions expressed <may> be those of the author and not necessarily
  those of his most eminent employer. ]