Jump to content
newcoleco

CCI3 - Alpha version

Recommended Posts

Hello,

 

After modifying my devkit, I've noticed that some CCI2.exe files wasn't properly made for the new SDCC version, and even worst may add unwanted slowdown to execute the NMI routine.

 

To solve both problems, and let the compile do its job properly, I've programmed a new CCI.

 

First, you can use both CCI2 and CCI3, specially if you want to compare both versions.

 

Second, CCI3 don't go into each of your project folders, which are subfolders of "z80", but right in the main folder "z80".

 

This is what the ICON looks like

post-3651-0-72881200-1314819842_thumb.gif

 

This is what the interface looks like

post-3651-0-63580000-1314820136_thumb.gif

 

And this is the actual EXE file

CCI3.zip

 

As is, this program works fine on my computer and should works fine too on your computer, unless your OS isn't Windows, Java is not well installed, or simply this program is not in the right folder.

 

This is probably my last effort on Coleco projects from my part this summer. I still have other obligations like sounds to work on so I'm not gonna take too much time developing this project... unless there is a huge demand to complete it.

Edited by newcoleco

Share this post


Link to post
Share on other sites

There is an interest on this product? Good because I've made an update which fix a few things.

 

+ Added RUN button

+ Added auto-scroll for the output text box

+ Fixed bug when clicking on compile while no file is selected

 

I've also changed the Java wraper program, so now the EXE file is way smaller as it should be.

 

Instead of adding files constantly on this forum, this is a direct link to the zip file inside my DropBox virtual drive account.

 

Note : There is an advert before accessing the zip file, just ignore it and click on the button (upper-right) to access the file.

 

http://adf.ly/2WiAL

Share this post


Link to post
Share on other sites

Does it work only with your last version of your Devkit?

 

Becauce i tried, the tool runs , i choose my project , select a .C file, click compile... it display the command it runs (cd, sdcc... , cd..)

 

But nothing is compiled. :(

Share this post


Link to post
Share on other sites

Does it work only with your last version of your Devkit?

 

Becauce i tried, the tool runs , i choose my project , select a .C file, click compile... it display the command it runs (cd, sdcc... , cd..)

 

But nothing is compiled. :(

 

If your version of SDCC doesn't include the possibility to specify --max-allocs-per-node parameter then it's normal. CCI3 is based on CCI2 but uses the advantage of the updated SDCC version by using this parameter, and the value is kinda specified by the slider "FAST ... SLOW" you've noticed in the new interface. I can add a checkbox right before the slider to enable it, and if it's disabled then you'll be able to compile without specifying any --max-allocs-per-node parameter and use older SDCC versions.

 

There is also an issue with the textbox that only shows commands, not the error and warning messages the compile and linker provides. It's the way CCI3 coded at the moment and I'm working on this.

Share this post


Link to post
Share on other sites

Update (see the adf.ly link in previous post)

 

+ Colored ouput text

+ Code Clean up

+ Checkbox to enable/disable "--max-allocs-per-node" parameter (and slider).

Share this post


Link to post
Share on other sites

Update 2 September 2011

 

+ Added selection (rabio buttons) for optimization focus : speed or size

+ Added refresh button to refresh the entire projects list : so if you made a new source file or new project folder, you'll need to click this button to see the changes

 

This software seems stable enough even if it's still a work in progress project. I can't promise anything but I'll be able to adjust and improve this project with your feedback.

 

What is missing?

 

  • Button "Compile All"
  • List of available libraries

 

Without any objection I'll totally replace CCI2 by CCI3 in my devkit, because to me this version seems stable enough and allow to perform a better optimization overall.

 

post-3651-0-31099700-1314975489_thumb.png

Edited by newcoleco

Share this post


Link to post
Share on other sites

It does not really work for me. :(

 

Ok , now i can compile and link and the rom works.... but ...

 

using CCI2 , i got a rom size of : 4 901 bytes

 

using CCI3 with size optimization , i got a rom of : 30 212 bytes!! with speed optimization i got : 30 215 !

 

May be because i use a old version of SDCC. :?

 

And 2 remarks :

 

- you should add a message or something that say the compile or the link is completed.

 

and when i link using CCI3 , i got a huge bunch of message "Multiple definition of.... <function> or <variable>" (that could explain the final size of the rom) ... but i have absolutly no error using CCI2.

 

Anyway don't worry about my problems if it works for others. I use CCI2 and my old kit , i'm very happy with that! :)

Share this post


Link to post
Share on other sites

This is what you are experiencing : you've extra *.rel files in your project folder. The link button see all these *.rel files and try to compile them all. No wonder why you got a huge rom file and multiple messages of multiple definition.

 

Clean up your project folders first and then try again.

Edited by newcoleco

Share this post


Link to post
Share on other sites

My late tests are interesting... I've tried to recompile some projects and just to show you, here is an example with Diamond Dash:

 

 

2003
DIAMOND DASH - 4K MINIGAME, SUBMITTED TO THE MINIGAMECOMPO

SIZE : 4066 bytes, filled up to 4096 bytes by the compiler (HI-TECH C FOR CP/M)

2011

DIAMOND DASH RECOMPILED WITH SDCC version 3.0.2 (I think) AND EVEN MORE OPTIMIZED COLECO LIBRARIES

SIZE : 3858 bytes

 

For a ColecoVision homebrewer, freeing more than 1KB in a 32KB project can means making a good game even better. For the case of Diamond Dash it's more than 5% space saved just by using a different compiler and the updated (optimized) libraries. Can this project be reduced even more? Of course, by coding by hand some parts in ASM, but that's not the idea of the tests I was doing.

 

 

Just in case you want to see it by yourself, here are the 2 different ROM files of Diamond Dash.

diamond dash original (2003) and recompiled (2011).zip

Share this post


Link to post
Share on other sites

Very interresting. I will surely use you new version of the kit and compiler for my current project when size will become critical!

 

Thanks !

Share this post


Link to post
Share on other sites

I really can't leave the forums more than a month, can I? I've received a message from RK telling me that he can't install the devkit, and now that I've tried too, I can see why and I'm about to fix the part I can fix.

 

SDCC changed, the compiler code and also the installation process. The default path was, for me and many others, "program files (x86)" but it's now "program files" with the new installer, making my batch file not working properly... which I can fix somehow if eventually the user/programmer realise that there is left an old and incomplete SDCC folder in "program files (x86)". An updated (patched) version adapted to the new SDCC installer will be uploaded in the next hours.

 

But actually, there is another problem... the SDCC version I've just tested can't compile a simple C program if it uses a routine with parameters like "(char, char)" or "(unsigned char, unsigned char")... giving a segmentation fault issue for no good reason. So it's impossible to compile any lines like "vdp_out(1,2);" because the funtion is (in coleco.h) "vdp_out(char a, char b);" if it was simply vdp_out(char a); or even vdp_out(int ba); it will have worked. So, I'm really confused and I hope this issue will be solved.

Edited by newcoleco

Share this post


Link to post
Share on other sites

Is it possible to have a version that does NOT use Java?

Some people just view Java as a waste of time and valuable resources when there is 100% no need for it to have any life in windows.

So many tools out there and people for some reason want to add another layer to an already working system>

I had the same argument about the Magic User Interface for the Amiga.
What ended up happening is everyone started using that instead of developing native programs so you have to use that extra layer in order to go online.

Share this post


Link to post
Share on other sites

The first CCI was in a weird programming language no more supported. After that, my devkit changed to stop using commercial product Hi-Tech C cross-compiler and I've used Java as a programming language for the 3rd version of CCI because it's a programming language possible for many platforms and used with success for decades already.

 

CCI is basically just a user-friendly way to avoid typing command-lines by creating ".BAT" files according to what you click to compile and link. I suggest that you make your own batch files based on the SDCC documentation which can do more than what CCI allows you to do.

 

Really, CCI is just a time and headache saving for me to compile my ColecoVision projects and I shared that tool as is. Sorry, it's not in a language you like.

 

Ideally, there should be a way to make an IDE support SDCC compiler and color-code Z80 opcodes to compile ColecoVision projects, but I don't know any, and I don't know if any can be used with my good old devkit libraries.

 

Good luck!

 

Is it possible to have a version that does NOT use Java?

Some people just view Java as a waste of time and valuable resources when there is 100% no need for it to have any life in windows.

So many tools out there and people for some reason want to add another layer to an already working system>

I had the same argument about the Magic User Interface for the Amiga.
What ended up happening is everyone started using that instead of developing native programs so you have to use that extra layer in order to go online.

Edited by newcoleco

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...