Jump to content
IGNORED

Colecovision crunchy&tasty BASIC compiler: CVBasic v0.3.0 (now with TMSColor!)


Recommended Posts

Hi all.

 

I didn't want @carlsson predictions to fail, so I struggled to release today 😜

 

Changes in the version 0.3.0:
 

* Added SCREEN statement (to disable/enable the screen and to copy tilesets into the screen)

* Added MODE statement (to reset modes and select one of three useful VDP modes)

* Added BORDER statement (to change color of the screen border).

* Added DEFINE VRAM statement (to copy data directly into VRAM).

* Added ASM statement (for these things that cannot be coded currently).

* Added demo.bas to show how to draw graphics imported by TMSColor on the screen.

* Added oscar.bas to show how to display full-screen graphics.

* Added TMSColor utility to import BMP images and convert these to the VDP data format.

* More optimization of unnecessary 16-bit arithmetic to use only 8-bit.

* Optimization of 8-bit comparisons.

* Added a peephole optimizer to avoid variable reloading.

 

Also corrected a bug that froze CVBasic when your program reached a certain size.

 

All new statements are documented in the included manual.txt.

 

Enjoy it!

 

CapturadePantalla2024-03-08ala(s)16_11_57.thumb.png.2dee3d94f925b84484844c7bae9bb705.png

 

cvbasic_v0.3.0.zip

cvbasic_pi_v0.3.0.zip

  • Like 9
Link to comment
Share on other sites

Oscar, just want to say I am amazed at your abilities. Not only are you a programmer of fantastic games various systems such as the ATARI 2600, MATTEL INTELLIVISION, COLECOVISION, and more... but you have also created the INTYBASIC Intellivision BASIC compiler a few years ago and now the CVBASIC Colecovision BASIC compiler. What fantastic gifts you have shared with us. You are creating tools so other fans of these retro gaming systems can program and create their own games. You are a genius, and I am happy to call you my friend. We have been corresponding for years. We have never met, but I hope to meet you in person someday! 

 

God bless you,

 

Tim

Edited by timdu
typo
  • Like 7
  • Thanks 1
Link to comment
Share on other sites

56 minutes ago, timdu said:

Oscar, just want to say I am amazed at your abilities. Not only are you a programmer of fantastic games various systems such as the ATARI 2600, MATTEL INTELLIVISION, COLECOVISION, and more... but you have also created the INTYBASIC Intellivision BASIC compiler a few years ago and now the CVBASIC Colecovision BASIC compiler. What fantastic gifts you have shared with us. You are creating tools so other fans of these retro gaming systems can program and create their own games. You are a genius, and I am happy to call you my friend. We have been corresponding for years. We have never met, but I hope to meet you in person someday! 

 

God bless you,

 

Tim

I appreciate your words. I'm trying to make easier to create games.

 

I'm also glad of being your friend.

 

Thank you very much!

Link to comment
Share on other sites

13 hours ago, Révo said:

Also can you handle SEGA mapper with banks to make ROM bigger than 48KB? Automatic header at $7FF0 would be nice too!

I've plans for mappers on Colecovision, not sure about SG-1000 yet.

 

BTW for anyone interested, I've added Raspberry Pi binaries for all programs in the first post.

  • Like 2
Link to comment
Share on other sites

5 minutes ago, Gemintronic said:

Be interesting to see a partnership like NES Maker has with Infinitelives.  One side makes the amazing game making tools and another the special (mapper 30) boards and programmer.

There are already available several options for Colecovision cartridges PCB. You can search in G for these. Alternatively, my good friend @5-11under is also able to provide preprogrammed PCB to anyone interested.

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

8 hours ago, Gemintronic said:

Be interesting to see a partnership like NES Maker has with Infinitelives.  One side makes the amazing game making tools and another the special (mapper 30) boards and programmer.

 

8 hours ago, nanochess said:

There are already available several options for Colecovision cartridges PCB. You can search in G for these. Alternatively, my good friend @5-11under is also able to provide preprogrammed PCB to anyone interested.

 

There's also 8Bit Classics, they can even program your game into the eeprom (costs extra though).

 

https://www.8bitclassics.com/product/colecovision-8k-16k-32k-pc-board/

  • Like 2
Link to comment
Share on other sites

10 minutes ago, nanochess said:

I just noticed that today is the release day for v0.4.0 predicted by @carlsson 😅😅😅

 

Happening Pop Tv GIF by Schitt's Creek

 

Quick!  Add commands to shift tile graphics left, right, up or down by an offset.  Could be useful for games with fake scrolling :)

 

ShiftTile( SourceTile, ShiftHorizontal, ShiftVertical, DestinationTile)

  • Like 1
Link to comment
Share on other sites

1 hour ago, Gemintronic said:

 

Quick!  Add commands to shift tile graphics left, right, up or down by an offset.  Could be useful for games with fake scrolling :)

 

ShiftTile( SourceTile, ShiftHorizontal, ShiftVertical, DestinationTile)

Technically you can do already this using the SCREEN statement using as source a very big array. TMSColor can generate big screen arrays.

 

Shifting tile graphics is too expensive in this VDP processor, as it would need to read the VRAM and write it back.

 

Link to comment
Share on other sites

It seems that VPOKE and VPEEK can access all the VDP RAM, but it probably is quite slow for CPU usage. There is also DEFINE VRAM to store chunks of data into VDP RAM, but I suppose you need to VPEEK to read it back.

Link to comment
Share on other sites

2 hours ago, drfloyd said:

Hi,

 

A RANDOMSEED command ?

To initializes the pseudo-random number generator 

I just noticed the random number generator should keep advancing on each video frame. I'll correct it in the next version.

 

Once corrected the trick is to put a title screen waiting for user input, so the random number generator keeps running until the player presses a button.

 

Anyway, you can do it currently by making a title screen and doing #A = RANDOM in the wait loop to keep moving the random number generator.

2 hours ago, drfloyd said:

Is is possible to go up to the 32Kb of ROM with CVbasic ?????

Yes, you can use the 32K of ROM with CVBasic.

2 hours ago, drfloyd said:

Is it possible to use the 4Kb RAM that are not used in the VDP ?

It is possible through VPEEK/VPOKE. There isn't direct support for it in CVBasic as the access is pretty slow.

Link to comment
Share on other sites

IntyBASIC has been around for 10 years. It has a 3rd party SDK and a 3rd party IDE and graphics editor. I don't think the official CvBASIC distribution will include neither, but perhaps the respective developers of the SDK and IDE could include ColecoVision support as well if you really need it to be creative.

Link to comment
Share on other sites

I've been able to use it within Notepad++, by using NppExec.

Then executing the following...

 

NPP_CONSOLE 0
cd "$(CURRENT_DIRECTORY)"
$(CURRENT_DIRECTORY)\cvbasic.exe "$(FILE_NAME)" "$(NAME_PART).asm"
$(CURRENT_DIRECTORY)\gasm80.exe "$(NAME_PART).asm" -o "$(NAME_PART).rom"
Npp_run $(CURRENT_DIRECTORY)\CoolCV.exe "$(NAME_PART).rom"

 

This will compile your cvbasic code, pop out a .rom file, then run the program in CoolCV!

 

NOTE: You have to put all three .exe files in the same folder.

 

Hope this helps!

Edited by Kamshaft
  • Thanks 2
Link to comment
Share on other sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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...