CSL Cart...

Talk about programming CreatiVision (except games programming). Projects of homebrew hardware are also welcome.
Post Reply
User avatar
Scouter3d
Posts: 646
Joined: Mon Jun 28, 2010 7:02 am
Location: Wien
Contact:

CSL Cart...

Post by Scouter3d » Thu Jan 30, 2014 6:41 pm

Hi,

Here a little "Teaser" for our "CSL Cart"

The "CSL Cart" converts the CreatiVision to a full Laser 2001 / Salora Manager Computer...
The "CSL Cart" adds 32K Ram (like an expanded Laser / Salora Computer)
The "CSL Cart" uses the Salora Manager BASIC including Highres Graphic commands
The "CSL Cart" can load and play Binary Files (Modul Images) from Tape / PC Soundcard or other Sound Sources...

So you can easily write your own cool CV Software, or load all the other cool "homebrews" or other modul-Images...

Coming Soon ;0)

Picture attached of a CV using the "CSL Cart" Prototype loading the "Color Maze" Demo from PC Soundcard...
CLOAD.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
Bill Loguidice
Posts: 14
Joined: Thu Feb 02, 2012 4:07 pm
Location: Central New Jersey, USA
Contact:

Re: CSL Cart...

Post by Bill Loguidice » Thu Jan 30, 2014 9:40 pm

Great! Do you have a target price in mind?
=========================
Bill Loguidice
http://about.me/billloguidice
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Fri Jan 31, 2014 8:13 am

It's an incredible goal for this small community of enthusiasts!

I think I've never seen such a hw+sw combo in the homebrew scene!

Very well done! Keep us posted please.
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Sat Feb 01, 2014 9:56 am

A question about loading files from tape.

When in "Laser 2001" mode, will this allow loading the games which were originally released on tape? I mean, the commercial tapes of Sonic Invader, Tennis, etc... for the L2001/SM?

Or will it load a "custom" file which you designed?

And what do you mean by "modul images"? Are they 32KBytes "custom-made" binaries, similar to the ones I used on the Multicart?
User avatar
Scouter3d
Posts: 646
Joined: Mon Jun 28, 2010 7:02 am
Location: Wien
Contact:

Re: CSL Cart...

Post by Scouter3d » Sat Feb 01, 2014 10:50 am

Hi,

Yes, the "CSL Cart" will load all the original Tapes from LASER 2001 / Salora Manager...
(It is compatible with the L2K1/Salora CLOAD, CRUN, CSAVE, BSAVE, BLOAD,... Format)

Homebrew "bin" files can be converted easily with a small utility into a "wav" file for loading... (on CSL or real LASER 2001 / Salora Manager)
(As naturally all the comercial cartridge "roms" can also be converted...)

In fact the CSL turns the CreatiVision into a Laser 2001 / Salora Manager with only a few changes / additions
(More RAM (32K like a fully expanded LASER 2001 / Salora Manager), no LPRINT / LLIST as CV has no Standard Printer Port and the I/O Interface sadly occupies the same Memoryspace..., 16K Room for future updates... )

TOM:0)
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Sat Feb 01, 2014 10:56 am

> Yes, the "CSL Cart" will load all the original Tapes from LASER 2001 / Salora Manager...
> (It is compatible with the L2K1/Salora CLOAD, CRUN, CSAVE, BSAVE, BLOAD,... Format)

That's OK. I thought you were adding a special LOAD function to the BASIC interpreter, enabling to load "custom" format.


> Homebrew "bin" files can be converted easily with a small utility into a "wav" file for
> loading... (on CSL or real LASER 2001 / Salora Manager)
> (As naturally all the comercial cartridge "roms" can also be converted...)

Do you mean that with your tool you can load large games (Chopper Rescue, for example) to the CV+CSL, and then save them to L2001 tape format, making them available for use with a normal L2001?

And then we would load Chopper Rescue from tape to a L2001 with addit 16 KBytes RAM expansion?

In such case the tape must contain 32 KBytes of data, that's the full RAM area where the game program is mapped when loading.


> In fact the CSL turns the CreatiVision into a Laser 2001 / Salora Manager with only
> a few changes / additions (More RAM (32K like a fully expanded LASER 2001 / Salora
> Manager), no LPRINT / LLIST as CV has no Standard Printer Port and the I/O Interface
> sadly occupies the same Memoryspace..., 16K Room for future updates... )

That's great. :-)

Thanks!
User avatar
@username@
Posts: 320
Joined: Tue Oct 22, 2013 6:59 pm
Location: Scotland

Re: CSL Cart...

Post by @username@ » Sat Feb 01, 2014 2:32 pm

MADrigal wrote: Do you mean that with your tool you can load large games (Chopper Rescue, for example) to the CV+CSL, and then save them to L2001 tape format, making them available for use with a normal L2001?

And then we would load Chopper Rescue from tape to a L2001 with addit 16 KBytes RAM expansion?

In such case the tape must contain 32 KBytes of data, that's the full RAM area where the game program is mapped when loading.!
The tool is a simple bin to WAV converter. It's available here http://sourceforge.net/projects/creativ ... z/download

You need to naturalise the memory footprint - then it just loads to a flat address.

Mirroring is an artefact - not mandatory, or has Tom missed the VTech-MMU-Hamster-Chip in his analysis?

I await your interesting explanation of how 4K Sonic Invader works - or even Mobsie's demos!
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Sat Feb 01, 2014 2:52 pm

> The tool is a simple bin to WAV converter. It's available here
> http://sourceforge.net/projects/creativ ... z/download

I just read the "readme" included in the converter. I have one question: what's the use of the -l parameter? I thought that the utility created a WAV file with header + raw data (binary) + footer in the L2001 standard.
When loading the WAV on the L2001, you should then execute it with a "call" command, so what's the use of the "address" declaration?

One more question about the -c parameter. I understand that it makes the smbloader add a "loader" to the WAV file. But what does it have to do with CreatiVision? Is the smbloader still encoding the WAV in L2001 format, or does it encode in CV format, assuming the file will be loaded in the "hacked BASIC with CALL function" you did?


> You need to naturalise the memory footprint - then it just loads to a flat address.

That's what I meant. If you want to load Chopper Rescue (which is 18 KBytes data) you should first build a 18 KBytes binary (or more, including mirrored data, if needed) and then encode that. Is this correct?


> Mirroring is an artefact - not mandatory, or has Tom missed the VTech-MMU-Hamster-Chip in his analysis?

Huh?


> I await your interesting explanation of how 4K Sonic Invader works - or even Mobsie's demos!

What are you talking about?
User avatar
@username@
Posts: 320
Joined: Tue Oct 22, 2013 6:59 pm
Location: Scotland

Re: CSL Cart...

Post by @username@ » Sat Feb 01, 2014 3:19 pm

Ok,

The utility does indeed create a wave file. A little background, the header to a BLOAD file contains 4 bytes, being WORD load_address, WORD length. Without these, well, where would it go? Random address is perhaps not a good idea.

So -l specifies that load address.

The -c option adds a small BASIC loader which will do the necessary POKEs and BLOAD to get the SM/L2K1 into CV compatibility mode.

Thus a simple CRUN will load and run Sonic Invader, for example.

Your previous statement assumed that all 32k had to be mirrored or filled. This is completely false. That was my point. The RETAIL Sonic Invader is EXACTLY the same from tape as it is from cartridge. It occupies only 4Kbytes of memory, It is not mirrored. There is no magical algorithm at play to do so.

If you analyse the dumped carts, you will see that in the vast majority of cases - no mirroring is required. For the handful which do, they can easily be 'fixed', as it tends to be duplicate reads from the wrong address.

However, SM/L2K1 do mirror 0/4000/8000 - so I highly doubt that any cartridge which uses those pages will run. I'm sure Tom will correct me if I'm wrong on that.
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: CSL Cart...

Post by MADrigal » Sat Feb 01, 2014 3:45 pm

> The utility does indeed create a wave file. A little background, the header
> to a BLOAD file contains 4 bytes, being WORD load_address, WORD length.
> Without these, well, where would it go? Random address is perhaps not a good idea.

From my memory (I didnt "review" the L2001 BASIC manual) I thought it was the loader to specify to which RAM address the data must be loaded. e.g.
-> CLOAD a BASIC program
-> program contains "10 BLOAD $C000"
-> RUN
-> the remaining part of the tape is loaded from $C000 on.

I understand that I was wrong, as you write that the L2001 binary file has such information. That's great! :)

> So -l specifies that load address.

OK perfect. The info is needed to build the header.


> The -c option adds a small BASIC loader which will do the necessary POKEs and
> BLOAD to get the SM/L2K1 into CV compatibility mode.

Sorry I dont remember about the POKEs and the "compatiblity mode" you're talking about, but I suppose you wrote about these somewhere on the forum, did you?


> Thus a simple CRUN will load and run Sonic Invader, for example.

From my memory, the "original tape" of Sonic Invader for the L2001 has a loader with just "10 BLOAD $C800" or similar. Or are there any addit. "poke's"? What's their use?


> Your previous statement assumed that all 32k had to be mirrored or filled. This is completely
> false. That was my point. The RETAIL Sonic Invader is EXACTLY the same from tape as it is
> from cartridge. It occupies only 4Kbytes of memory, It is not mirrored. There is no magical
> algorithm at play to do so.

You're right, it was a typo. I had to make clearer that I was talking about the Chopper Rescue case only.

I know the CV memory map very well, otherwise I couldn't produce a working Multicart. Games up to 8 KBytes don't need any mirroring, unless the game programs "JMP" to any mirrored area (that would be due to unproper programming).

The problem comes with larger games than 8 KBytes, where the ROM program must be "prepared" in order to make it load properly "with all data in a row".

On programs such as BASIC 1982 R2, 1983, V1, Locomotive and Music Maker you don't need to mirror the whole data, all you have to do is "swapping" the various parts of the ROM in order to make them match the correct memory map as needed. Obviously I'm talking about the ROMs which circulate on the Internet, where the "banks" are not in the same order as the memory map.

From my memory: BASIC 1982 R1 doesn't work properly unless you mirror the lower 4K data to $4000 (or was it $5000?) instead of the "usual" $7000.


> If you analyse the dumped carts, you will see that in the vast majority of cases -
> no mirroring is required. For the handful which do, they can easily be 'fixed', as
> it tends to be duplicate reads from the wrong address.

That's it!

I think BASIC 82 is the only program affected by such problem.

A Chopper Rescue ROM to "convert" to WAV should be 20K, that's lower 2K at $7000 + 2K blank (or mirrored, probably useless) + upper 16K at $8000 in order to work properly. If you use the ROM taken from the Internet, the upper 16K must be cut into two halves of 8K each, and swapped.


> However, SM/L2K1 do mirror 0/4000/8000 - so I highly doubt that any cartridge
> which uses those pages will run.

L2001 mirrors zeropage to $4000? Are you sure? Isn't that where the lower 1KB RAM stands, for compatibility to CV games?

Would you kindly post the full L2001 memory map here?

Thanks much for the kind explanations, much appreciated. :)
Post Reply