Jump to content
IGNORED

Colecovision Turbopowered BASIC compiler: CVBasic v0.6.0 (now with 6502 support!)


Recommended Posts

So this is as many systems as CVBasic can conceivably cover? Wow, that's thorough. Well, bring on the TI 99/4A support! Whack 'Em Smack 'Em Byrons has got to be AT LEAST as good as Chisholm Trail!

On 8/8/2024 at 11:39 PM, evg2000 said:

hello @MADrigal,

a couple of us have tried to join the CreatiVEmu forum, including @nanochess and we haven’t been able to find a place to register. 

 

also, any chance the site might go https?  my browser and antivirus software really throw a fit about the site. 

 

 

thanks

The entire madrigaldesign.it server is now accessible via HTTPS. It was easier than I thought :) Enjoy it! :)

  • Like 2
10 hours ago, nanochess said:

Wow! Holy smokes! You're a genius! And you are faster than the roadrunner!

 

This would cover the last platform using the VDP processor!

 

Thanks for sharing!

 

So next step , the CV Basic supports the Sega Master System   (others than the SG1000 mode of course!😀) ?

 

 

  • Like 1
11 hours ago, Jess Ragan said:

Well, bring on the TI 99/4A support! Whack 'Em Smack 'Em Byrons has got to be AT LEAST as good as Chisholm Trail!

You'll struggle to win fans from Zero Zap though! 😁

 

More seriously, the TI port currently targets a 32k application -- which means 24k of program and 8k of RAM for variables. Not sure if that's too restrictive for your game?

 

Banking with infinite ROM (128MB is the largest made so far) is feasible, but I'm just trying to get the basic system working first, and then we'll see.

 

  • Like 2

That might be a problem, actually. That's more than enough RAM for variables, but 24K won't be enough for the graphics data. Is your fork going to have pletter compression like the main version does? Is 24K the typical size of TI 99/4A games?

I wonder if there ever was any Motorola 6800, 6803 or 6809 based design with a TMS 9918 type VDP. I can't recall either, but it isn't to say it never has existed. Many Motorola designs tend to be centered around the 6847 or a 6845 with added circuitry, which also exist in Z80 flavors. Besides these CPU's, all the even more oddball ones (RCA 1802, Signetics 2650, Fairchild F8, General Instruments CP-1610 and so on) seem even less likely to have ever been paired with a TMS VDP, and once computers moved to other 16-bit designs such as Intel 8086/8088, Motorola 68000 etc, the video chip was relatively obsolete. Possibly there is some Z800/Z8000 system out there, but I wouldn't assume so. Though we have 6502 support now, I also think 65816 is unthinkable in this context.

 

Edit: Ok, I found a homebrew computer called Ultim809 which combines 6809 with 9918, but I don't think it ever was commercially available:
https://github.com/74hc595/Ultim809/tree/master/circuit

https://www.msarnoff.org/6809/

Edited by carlsson
17 hours ago, Tursi said:

the TI99 port is operational

Does the TI port also cover the 9995 used in Tomy Tutor? If not, that seems like the last TMS system not previously mentioned.

14 hours ago, Jess Ragan said:

That might be a problem, actually. That's more than enough RAM for variables, but 24K won't be enough for the graphics data. Is your fork going to have pletter compression like the main version does? Is 24K the typical size of TI 99/4A games?

Not in the first pass. Might get ambitious, but I'd rather have documentation or C code than reverse engineer it. ;)

 

24k is the typical size for games loaded from floppy, yeah, since that's the largest bank of RAM in the machine.

 

Well, one step at a time. We'll get the basics working, then we can see about moving to ROM if there's any interest. The biggest issue with going to cart on the TI though is the pages are only 8k in size. Generally that means you'd be reworking a lot of your banking.

 

13 hours ago, carlsson said:

Does the TI port also cover the 9995 used in Tomy Tutor? If not, that seems like the last TMS system not previously mentioned.

I don't know anything about the Tomy Tutor, so sadly no.

 

It'll hold. Even if I can't port WESEB to the TI 99/4A, at least I'll be able to whip up some silly animations for it. It's a fascinating machine, in its own odd way. It's a 16-bit machine that in no way looks or sounds 16-bit, with joysticks best described as torture devices.

 

I'm more concerned about the Creativision at the moment, and even that's not a pressing concern. I'd ask Oscar if there's any way to support the system's keypad, because from the looks of things, the game's just not going to be playable without it. (Diagonals are impossible in most emulators as well as the real system, because the Creativision uses 16-direction input, in contrast with the 8-way input of the ColecoVision.) However, as stated before, you can only rub the lamp so many times before the genie gets annoyed. Oscar's already put so much work into CVBasic, and I probably shouldn't press my luck with additional requests.

  • Like 1
10 hours ago, Jess Ragan said:

It'll hold. Even if I can't port WESEB to the TI 99/4A, at least I'll be able to whip up some silly animations for it. It's a fascinating machine, in its own odd way. It's a 16-bit machine that in no way looks or sounds 16-bit, with joysticks best described as torture devices.

 

I'm more concerned about the Creativision at the moment, and even that's not a pressing concern. I'd ask Oscar if there's any way to support the system's keypad, because from the looks of things, the game's just not going to be playable without it. (Diagonals are impossible in most emulators as well as the real system, because the Creativision uses 16-direction input, in contrast with the 8-way input of the ColecoVision.) However, as stated before, you can only rub the lamp so many times before the genie gets annoyed. Oscar's already put so much work into CVBasic, and I probably shouldn't press my luck with additional requests.

He's selling a book - make him work for it! :lol:

 

Yeah... 16 direction joystick... that's weird. But I bet it'd be great for Sinistar! ;)

 

  • Haha 1

Not sure it's worth starting a new thread, but the TI port is functional now. All the sample projects pass excluding the ones that require compression or banking. I took at stab at the pletter unpack but the way the 6502 and Z80 do rotate is different from how the 9900 does, making a naive port very tricky - and I don't understand the code well enough to just reimplement it. I did see that bitbucket which it was derived from has full commented source, but I haven't dug into it to see where it differs.

 

Anyway, so what do you get? 24k of program space and 8k of variable space, on a TI-99/4A with 32k memory expansion and Editor/Assembler cartridge to load it. No compression at this time - cvbasic will attempt to build it but it won't assemble. It requires the xdt99 package to assemble (link in the docs).

 

I'll see about adding the banking when I get a chance, since that's not too difficult. Once that's implemented the target will be a cartridge image instead of an object file, which is easier to share and load. The compression will basically come down to understanding or someone better than me doing the port. ;)

 

There may still be bugs... if you run into any try to narrow it down to the smallest program you can that reproduces it. The sample programs don't cover every code path in the compiler. Not only is the 9900 16-bit versus the 8 bit of the Z80 and 6502, but it's also big endian vs little endian, and register-based versus stack based. It's a lot to keep track of to port!

 

But hey, amusing to have another target, I hope!

 

@nanochess I've issued a pull request for your consideration. But in the meantime - https://github.com/tursilion/CVBasic/tree/ti99

 

Also made a video to show it working: 

 

 

  • Like 6
  • Thanks 4

Wow! This is an amazing effort and an awesome tour de force.

 

I'll be merging the pull and reviewing the code in order to help pinpointing any bugs in the integration.

 

Thanks a lot!

 

 

3 hours ago, Tursi said:

I'm impressed you're diving right in with bug fixes, nice work! :)

 

You did so much work that I needed to help a little.

 

BTW, now the Pletter decompressor is working!

 

CapturadePantalla2024-08-31ala(s)18_40_27.thumb.png.9c3698cce17ee892c21abb7000406ac1.png

 

2 hours ago, carlsson said:

So Tomy Tutor is the last known VDP target not yet supported? That is great nonetheless, for a compiler initially only intended to cover the ColecoVision.

I've heard the Tomy Tutor is basically a TI-99/4A, so it shouldn't be so hard if there is a way to load software into it, or at least an emulator.

 

  • Like 2
2 hours ago, nanochess said:

I've heard the Tomy Tutor is basically a TI-99/4A, so it shouldn't be so hard if there is a way to load software into it, or at least an emulator.

We do have some Tomy Tutor experts on the TI side, we could probably ask on the other thread what needs to be done differently for it to work.

 

  • Like 1

A fork of it, yeah. 24K ROM and 8K RAM is available to the programmer, but for now, you have to access your programs through a disk operating system. Cartridge support will come later.

20 hours ago, drfloyd said:

hi,

 

I try to follow : CV Basic will be soon compatible with TI99 ????!!!!!

CVBasic is already compatible with TI99. At this point, all examples compile just fine.

 

I'm just doing a revision looking for any bugs before doing the official release.

Edited by nanochess
  • Like 3
  • 2 weeks later...
On 8/31/2024 at 10:13 PM, Tursi said:

We do have some Tomy Tutor experts on the TI side, we could probably ask on the other thread what needs to be done differently for it to work.

 

I'm certainly not an expert, but like the unexpanded TI99, the Tutor lacks dedicated CPU ram beyond the scratchpad (internal in the 9995). If you're having to use expansion ram, that won't work until somebody starts making a memory expansion card for it.

 

The Powertran Cortex, on the other hand, with its 64k ram would be a candidate. 

Edited by nuxi
clarification
  • Like 2
  • 1 month later...

Question about the Programming Games for the Colecovision e-book that I purchased a few days ago:

 

Where can I find the CVBasic source codes for the examples listed in the bok? I find it difficult to get a good overview by reading the listings in the book. 

 

Also, is there a recommended tool or editor for creating sprite (BITMAP) data, e.g. like the layered player sprite in Monkey Moon?

 

 

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