[comp.sys.cbm] C-power information for a 128

lishka@uwslh.UUCP (Christopher Lishka) (05/29/87)

	I have the oppurtunity to get a C-128 cheap, and since I can't afford
the awe-inspiring Amiga yet (even at ~$650 or ~$500), I am jumping at the 
chance to get ahold of this 2 megahertz machine.  Right now I own a C-64 with
an older version of C-Power, and although I really the the Operating 
'Environment' provided, I am a little turned off by the incredible number of
bugs and inconsistencies with UNIX C.

	My questions then are the following:

	1) How good of a value is the C-128 C-Power compiler?  I am interested
	   in it mainly for the 2 megahertz operation in 80-column mode, as 
	   what I want to do with it does not require graphics.  I know that
	   the benchmarks for C-Power aren't that impressive, but it is all
	   I can afford, and it IS only a two megahertz 6502-modifaction.

	2) Can the 128 version generate code for the C-64?  I know that the
	   the instruction set is the same, and it does not seem unreasonable
	   that the 128 would work with the C-64, considering that C-Power
	   is available for the latter anyway.  That only leaves the differences
	   in internal architecture.  On the same line, how well does C-Power
	   work in 80-column as well as 40-column mode?  I am really interested
	   in 80-column editting, but every now and then I will want to do
	   graphics with the VIC chip, requiring the normal 40-column mode.

	3) How fast is it in terms of disk accessing, including compilation
	   time?  I use C-Power on the C-64 with an Epyx Fastload cartridge
	   (a marvelous piece of hardware), and the speed difference is very
	   helpful (I don't even mind typing 'disk u;' after each major
	   operation).  Does the compilation on the C-128 go faster?  Given
	   the expanded memory inside the machine (even though it bank
	   switches), can BOTH the compiler and source code be resident at
	   one time, requiring fewer disk accesses?  This is also important,
	   because I plan to write a nice, large program (very modular), and
	   any increase in compile/link time would be very nice.

	4) How compatible are the library functions with the ones in the 
	   C-64?  I know there must be differences becaused of the internal
	   layouts of each machine.  Does C-Power provide routines for BOTH
	   machines in the 128 version (cross-compilation to the C-64), and
	   if not, can I get ahold of a decent set for the C-64 that will
	   work with the C-128 version?

	5) Lastely, how bad are the bugs?  I am a Junior in the Comp-Sci
	   Undergrad department, and since my last course dealt with Operating
	   Systems, we programmed heavily in C.  Now I have tried to write
	   the same, modular C code on C-Power-64 that I did in my class,
	   and boy did it crash, crash, crash!  It seems that C-Power could
	   not understand the many very helpful typedef's to pointer structures
	   that we had used HEAVILY in my class.  Since I am going to be 
	   writing something close to a minor coputer language, I NEED those
	   very helpful typoedef's.

	Thanks for any information that anyone may be able to provide me.
Please E-Mail me; if anyone else is interested in the answers to the above,
E-Mail me also.  I really like these low-level Commodore machines (even though
they are now a little outdated as compared to the Amiga), and would not mind
owning a C-128 (with 80-columns) at all, given my limited budget.

						-Chris Lishka


-- 
Chris Lishka                    /lishka@uwslh.uucp
Wisconsin State Lab of Hygiene <-lishka%uwslh.uucp@rsch.wisc.edu
                                \{seismo, harvard,topaz,...}!uwvax!uwslh!lishka

sean1@garfield.UUCP (06/01/87)

In article <243@uwslh.UUCP> lishka@uwslh.UUCP (Christopher Lishka) writes:
>
>	My questions then are the following:
>
>	1) How good of a value is the C-128 C-Power compiler?  I am interested
>	   in it mainly for the 2 megahertz operation in 80-column mode, as 
>	   what I want to do with it does not require graphics.  I know that
>	   the benchmarks for C-Power aren't that impressive, but it is all
>	   I can afford, and it IS only a two megahertz 6502-modifaction.

It is, in my opinion, a good value. If you want to program on a 128, then it is
the best value around. It is C, not assembler, which can be very tedious, and
the speed you get is great considering that it is a high level language. If you
want more speed  you have to step down to Assembler level. I too am interested
in the 80 columns mode of the 128. The shell that is included works in both the
80 and 40 columns. You might like this. The shell is more friendly, but they
have replaced "ls" with "dir" Oh, well...

>	2) Can the 128 version generate code for the C-64?  I know that the
>	   the instruction set is the same, and it does not seem unreasonable
>	   that the 128 would work with the C-64, considering that C-Power
>	   is available for the latter anyway.  That only leaves the differences
>	   in internal architecture.  On the same line, how well does C-Power
>	   work in 80-column as well as 40-column mode?  I am really interested
>	   in 80-column editting, but every now and then I will want to do
>	   graphics with the VIC chip, requiring the normal 40-column mode.

I don't think the compiler can cross-compile for the 64, but as you said, you
already have the C-Power for the 64, so there should be no problem...except
speed. You should have NO problem editing or writing editors in 80 columns. All
of the control movements you need can be done with printf statements, and there
are even escape codes to do neat things that the 64 can only DREAM about. And
you can switch to 40 columns and back by printing "ESC-X" or by poking a simple
location. You can peek that location (I forget which one now) to find out what
mode you are in. I wrote a MORE program which will operate properly, regardless
of the mode you are in, because it checks first.

>	3) How fast is it in terms of disk accessing, including compilation
>	   time?  I use C-Power on the C-64 with an Epyx Fastload cartridge
>	   (a marvelous piece of hardware), and the speed difference is very
>	   helpful (I don't even mind typing 'disk u;' after each major
>	   operation).  Does the compilation on the C-128 go faster?  Given
>	   the expanded memory inside the machine (even though it bank
>	   switches), can BOTH the compiler and source code be resident at
>	   one time, requiring fewer disk accesses?  This is also important,
>	   because I plan to write a nice, large program (very modular), and
>	   any increase in compile/link time would be very nice.

If you have a 1571 disk drive, as opposed to the 1541, the disk access is
approximately 6 times faster. You can also use a speedup cartridge, and I don't
even think it affects the BAM. (Not sure there, though...)
The compile time is FAST! Because, for the main reason, there are TWO built-in
RAM-disks. (They share 191 blocks). You can store your compiler there, plush
your sources, and store your .o file there, and the speed is tremendous,
because there is NO disk access. Or, you can use two drives, or one. It is up
to you, and in either case, it is MUCH faster than the 64 version. The expanded
memory in the machine, (128K) allows you to have the RAMdisk, so in a way, your
source and your compiler can be resident at the same time.


>	4) How compatible are the library functions with the ones in the 
>	   C-64?  I know there must be differences becaused of the internal
>	   layouts of each machine.  Does C-Power provide routines for BOTH
>	   machines in the 128 version (cross-compilation to the C-64), and
>	   if not, can I get ahold of a decent set for the C-64 that will
>	   work with the C-128 version?

Not sure. Sorry.

>	5) Lastely, how bad are the bugs?  I am a Junior in the Comp-Sci
>	   Undergrad department, and since my last course dealt with Operating
>	   Systems, we programmed heavily in C.  Now I have tried to write
>	   the same, modular C code on C-Power-64 that I did in my class,
>	   and boy did it crash, crash, crash!  It seems that C-Power could
>	   not understand the many very helpful typedef's to pointer structures
>	   that we had used HEAVILY in my class.  Since I am going to be 
>	   writing something close to a minor coputer language, I NEED those
>	   very helpful typoedef's.

The bugs are not too serious. There are a few, and they may cause compatibility
problems, but nothing that can't be overcome VERY easily, by changing your
programing style. Really, it is no problem.


>	Thanks for any information that anyone may be able to provide me.

No sweat. You may also like the 128 for telecommunications. That is what I am
using at this moment. I have a 128, with the 1702 monitor, and an 80 column
monochrome monitor at the same time, a 1200 baud 1670 modem, a 1571 disk drive
and a mouse. 

You may be interested to know, that at the same time, you can be displaying
graphics on one monitor, (in 40 column mode) and text on the 80 column monitor.
I have a program that puts a graphic on the 40 column screen, with a
mouse-pointer going, and at the same time, I can be listing my program on the
other monitor. I always use the 80 column monitor for Telecommunicating. I use
the VT100 emulator that comes with the 1670 modem. It is wonderful!

Hope I was of help.


          /|
         / /       //   Sean Huxter   |UUCP: {utai,cbosgd,ihnp4,akgua,
    ____/_/__ __  | |   P.O. Box 366  |    allegra}!garfield!sean1
 -=<_________|__|=|<|   Springdale    |CDNNET: sean1@garfield.mun.cdn
        \ \       | |   NF, Canada    |
         \ \       \\   A0J 1T0       | "THUNDERBIRDS are GO!"
          \|

john13@garfield.UUCP (06/02/87)

[]
The C-Power and Buddy programs from Proline are now being distributed by
Spinnaker, as the Power-C Compiler and the Power Assembler. Both 64 and 128
versions are included in these packages.

I don't know what the story is on Proline, whether they are still around or
have just sold the rights to these programs to Spinnaker.

John

PS The combo is a great value (at least around here :-).

jchikin@polyslo.UUCP (Joe Chikin) (06/06/87)

I had previously read on this netnews about a product called C-ASSM.
Is C-ASSM the same as Power Assembler/Buddy Assmbler?  If it is not
the same, what can it do to enhance my C-Power 128 compiler.  Can I
link my machine language routines directly to my .o files and have
them contiguous in memory.  I'm having problems trying to open a 
channel to device number #2 (modem).  I can't seem to properly open
a channel without it just outputting junk.  Please help.
 
                                         
Thanks in advance
Chikin Joe
Cal Poly SLO, Csc Dept.
San Luis Obispo, Ca 

sentinel@killer.UUCP (The Sentinel) (06/08/87)

In article <354@polyslo.UUCP>, jchikin@polyslo.UUCP (Joe   Chikin) writes:
> I had previously read on this netnews about a product called C-ASSM.
> Is C-ASSM the same as Power Assembler/Buddy Assmbler?  If it is not

    No, it isn't.  C-ASSM is an assembler which operates under the C-Power
environment.  You use the C-Power editor to create and edit source files,
and run the assembler as a shell command.  And the most important feature
of all is that C-ASSM creates C-Power object files which can then be linked
with a C program.  C-ASSM is, to my knowledge (since it was posted to the net),
free of charge.

> the same, what can it do to enhance my C-Power 128 compiler.  Can I
> link my machine language routines directly to my .o files and have
> them contiguous in memory.

    Yes.  If you set things up properly, you can write assembly language
functions for C.  The C-Power environment is also quite nice for developing
stand-alone machine language programs as well, especially considering the
availability of the linker.

> [...]  I'm having problems trying to open a 
> channel to device number #2 (modem).  I can't seem to properly open
> a channel without it just outputting junk.  Please help.

To open an RS-232 channel:

    char params[4] = { 0, 0, 69, 1 };

    open(50,2,0,params);

Note that the values of the array "params" are the values to place in the
RS-232 registers, and the numbers above are for 1200 baud on my 128.  The
third value may differ between individual 128's... is you get garbage,
tweak this value up or down until the garbage goes away.

Also, when inputting from the modem, you will get much better results if you
use sys() to call the Kernal, instead of using the C library routines.

> Thanks in advance
> Chikin Joe
> Cal Poly SLO, Csc Dept.
> San Luis Obispo, Ca 


-- 
Rob Tillotson				...ihnp4!killer!sentinel
3922-1 Newport Ave.				-or-
Fort Wayne, IN 46805			...rutgers!unirot!sentinel
(219) 483-2722				    (top one preferred)

jchikin@polyslo.UUCP (06/10/87)

>To open an RS-232 channel:
>
>    char params[4] = { 0, 0, 69, 1 };
>
>    open(50,2,0,params);
>
>use sys() to call the Kernal, instead of using the C library routines.
>
>Rob Tillotson				...ihnp4!killer!sentinel
>3922-1 Newport Ave.				-or-
>Fort Wayne, IN 46805			...rutgers!unirot!sentinel
>(219) 483-2722				    (top one preferred)

Thanks for the info Rob.  Where can I get C-ASSM now?  Also, where
did you find the info to open the channel.  It isn't in the 128
C-Power manual.  My manual is only a listing of the various C
library calls.  Also, do you know where I might find a memory map
of C-Power 128.  I want to know if I can access zero-page or some
of the system vectors in low mem.

Thanks again

Chikin Joe
Cal Poly Slo, CSc Dept.
San Luis Obispo, Ca 93401.

Address:
61 Broad #216
San Luis Obispo, CA 93401
(805) 544-0907

rayz@csustan.UUCP (R. L. Zarling) (06/12/87)

In article <361@polyslo.UUCP> jchikin@polyslo.UUCP (Joe   Chikin) writes:
>Thanks for the info Rob.  Where can I get C-ASSM now?

C-ASSM is available from either of the co-authors, both of whom are
regular subscribers to this group:

Mark Rinfret
mark@unisec.usi.com
(sorry, I don't have his address handy)

or myself,

Ray Zarling
lll-crg!csustan!rayz
PO Box 932
Turlock, CA 95381

Please send a blank 5.25 inch disk, a postpaid return mailer, and indicate
whether you want the 64 or 128 version (the source is the same, thanks to
#define, but you get the bithe bitss

sentinel@killer.UUCP (The Sentinel) (06/15/87)

In article <361@polyslo.UUCP>, jchikin@polyslo.UUCP (Joe   Chikin) writes:
> [...] Also, where
> did you find the info to open the channel. [...]

    It's done the same way as in BASIC.  open(a,b,c,"d") in C is the same as
OPEN a,b,c,"d" in BASIC.  The array of characters I used for the filename
holds the values for the RS-232 control register, command register, and user
defined baud rate in the same order you would place them in BASIC.  I won't
go into any more detail... just follow the instructions in the Programmers
Reference Guide or any other suitable book.
    BTW, my mention of Kernal routines in the previous message may have been a
bit unclear.  It appears from my experiments that the regular C library
routines are not really meant for RS-232 I/O and don't do quite what I want.
You should probably try them for yourself, though.  Anyway, I found that
simply calling the Kernal was the easiest way of using the port... for output
the C routines were OK, but for input I ended up using the Kernal directly.
    Finally, in the C open() function, the first number is the file number,
which is the same as the channel number under C.  So, you can use it anywhere
a parameter of type FILE is required.  I used 50 in the example, because I
am not sure what range the C library uses.

> [...] Also, do you know where I might find a memory map
> of C-Power 128.  I want to know if I can access zero-page or some
> of the system vectors in low mem.

    I'm not sure yet.  C-Power steals a couple of vectors, and probably uses
every free location in zero page.  It also uses the cassette buffer for
arguments.  If you find any more on this, please post it... in the meantime
I'll keep digging and experimenting...

-- 
Rob Tillotson				...ihnp4!killer!sentinel
3922-1 Newport Ave.				-or-
Fort Wayne, IN 46805			...rutgers!unirot!sentinel
(219) 483-2722				    (top one preferred)