Memory maps, chip documentation

Talk about programming CreatiVision (except games programming). Projects of homebrew hardware are also welcome.
User avatar
carlsson
Posts: 507
Joined: Fri Jun 13, 2008 7:39 am
Location: Västerås, Sweden

Re: Memory maps, chip documentation

Post by carlsson » Wed Mar 25, 2009 11:50 am

Yesterday I chatted with another guy who made his first steps on the TMS 99X9 as recently as last year, actually coming from a Commodore background just like me. He has already managed to write his own game in Z80 machine code (also self-taught) on a MSX class computer. The creatiVision and Laser/Salora machines were mentioned, and while the actual hardware is rare and a bit expensive, there is a good (?) emulator to start on. This guy half promised me to get going with a 99X9 tutorial, something like how he figured it out himself. I don't know where it'll lead but perhaps we can work together and turn him into a cV developer as well. His goal is to have written at least one program/game for each machine he owns, something I don't have the motivation to do although I'd love to try.
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Memory maps, chip documentation

Post by MADrigal » Wed Mar 25, 2009 3:39 pm

That's a great news!

I have a good news also. Kurt recently coded a demo with music playing in the background, graphics mode screen, and a couple of sprites that can be moved by operating the joysticks.

I would put your friend into contact with Kurt, since he's already solved a few mysteries on the CreatiVision programming :)

PS: Anders, I just got all the needed EPROMs, sockets, and electric components to build the Diagnosticart. Yesterday I printed manuals and stickers, and hopefully next week we'll also have the cardboard boxes ready. I wish we could ship all carts within 2 weeks :D
User avatar
carlsson
Posts: 507
Joined: Fri Jun 13, 2008 7:39 am
Location: Västerås, Sweden

Re: Memory maps, chip documentation

Post by carlsson » Wed Mar 25, 2009 4:28 pm

Ideally, everyone interested in development would meet here at the forum and have private discussions only when there is a particular matter. I like the idea with a demo involving both music and sprites. If Kurt posts some very simple machine code listings like how to set up a video mode, how to put a sprite on the screen etc, I think it would help a lot once people have time to spend on development.

The listing of a complete program is nice too but I always found those full sources more a way to show off than being educational since in a bigger program you tend to optimize and do multiple things so it can be hard to follow what is what.
User avatar
Mobsie
Posts: 708
Joined: Fri Jun 13, 2008 10:38 am
Location: Weinheim, Germany

Re: Memory maps, chip documentation

Post by Mobsie » Sun Jul 01, 2012 2:55 pm

Hello,

any news about the simple machine code sample?

How Vtech write the games in the old days?

Best Regards
Mobsie
User avatar
carlsson
Posts: 507
Joined: Fri Jun 13, 2008 7:39 am
Location: Västerås, Sweden

Re: Memory maps, chip documentation

Post by carlsson » Tue Sep 04, 2012 1:47 pm

No code example yet, but I guess it is a matter of one evening's determination to get going. If anything, it shows I haven't mustered enough determination for the past 3.5 years... :oops:
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Memory maps, chip documentation

Post by MADrigal » Tue Sep 04, 2012 5:49 pm

there's no people around willing to code games for creativision. :-(
User avatar
carlsson
Posts: 507
Joined: Fri Jun 13, 2008 7:39 am
Location: Västerås, Sweden

Re: Memory maps, chip documentation

Post by carlsson » Tue Oct 02, 2012 9:40 am

My VDP machine code programming friend is looking to buy my spare Creativision. I'll supply him with at least a Basic cart and we'll see what comes out of that.
User avatar
carlsson
Posts: 507
Joined: Fri Jun 13, 2008 7:39 am
Location: Västerås, Sweden

Re: Memory maps, chip documentation

Post by carlsson » Mon Feb 04, 2013 3:16 pm

I got curious about the memory map again, and tried to summarize what I've read:

$0000 - $03FF: 1K RAM
$0400 - $0FFF: not connected ???
$1000 - $1003: PIA (joysticks, sound)
$2000 - $2001: VDP read
$3000 - $3001: VDP write
$4000 - $7FFF: not connected ???
$8000 - $BFFF : cartridge ROM (at least up to 16K)
$C000 - $F7FF : not connected ???
$F800 - $FFFF: 2K BIOS ROM

Did I miss something important? These are CPU addresses, not VDP addresses. The reason why I start wondering is that the Laser 2001 / Manager is cartridge compatible with the Creativision, and the computer model is advertised to have a total of 32K RAM + 16K ROM. Apparently there is room 16K between $4000 - $7FFF, but also that there is a 16K RAM expansion cartridge for the computer that most likely must sit in $8000 - $BFFF. There is exactly 16K ROM space between $C000 - $FFFF, of which I suppose the first half is for the built-in Basic and the top 2K to some degree are Creativision compatible.

Does the Laser 2001 bank switch in order to use 32K RAM? Obviously there is a lot of unconnected address space between $0400 - $3FFF but with PIA, PSG and VDP there I'm unsure if RAM could be shared. If it wasn't for the 16K RAM expansion cartridge, I'd be willing to think that RAM goes all the way to $BFFF and an inserted cartridge will shadow the RAM, but then it doesn't make sense why to use a memory expansion cartridge.

Unless of course those 32K RAM actually are 16K CPU RAM + 16K VRAM in the VDP. The manual for the Laser 2001 says the RAM(0) command will report number of bytes free + 16384 which would suggest its RAM starts at $4000. One of those days I'll see if I can figure it out.
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Memory maps, chip documentation

Post by MADrigal » Mon Feb 04, 2013 7:59 pm

> I got curious about the memory map again, and tried to summarize what I've read:

> $4000 - $7FFF: not connected ???

That's ROM1 area, 16K

> $8000 - $BFFF : cartridge ROM (at least up to 16K)

That's ROM0 area, 16K

> $C000 - $F7FF : not connected ???

That should be available with the (unreleased?) 16K RAM expansion

> Did I miss something important? These are CPU addresses, not VDP addresses.

You should read Barry Klein's Wizzdom newsletters (from CreatiVEmu website) with the exact memory map for both CPU and VDP.

> The reason why I start wondering is that the Laser 2001 / Manager is cartridge
> compatible with the Creativision, and the computer model is advertised to have
> a total of 32K RAM + 16K ROM.

I suppose the 32K RAM is the same as Creativision ROM0+ROM1 area (32K).

Of course if you place a cartridge, the RAM is disabled, and you'll use the ROM data.

> Apparently there is room 16K between $4000 - $7FFF, but also that there is a
> 16K RAM expansion cartridge for the computer that most likely must sit in $8000
> - $BFFF.

I own that expansion cartridge, but I never peeked into the PCB, so I'm not sure where it's mapped.

> There is exactly 16K ROM space between $C000 - $FFFF, of which I suppose the
> first half is for the built-in Basic and the top 2K to some degree are Creativision
> compatible.

I suppose the Laser 2001 BASIC is mapped in the upper 16K, so the RAM module should go in the lower 16K ($0000-$4000).

> Does the Laser 2001 bank switch in order to use 32K RAM? Obviously there is
> a lot of unconnected address space between $0400 - $3FFF but with PIA, PSG
> and VDP there I'm unsure if RAM could be shared.

Why not? Probably if you put some data to $3001 (etc), some strange behaviour would occur, but all the bytes "around" $3001 (etc) could be writeable.

Problem is: what to do with the additional 16K RAM? Is BASIC capable of storing the listings into the expanded RAM area? Or is it good for storing ASM data?

> If it wasn't for the 16K RAM expansion cartridge, I'd be willing to think that RAM
> goes all the way to $BFFF and an inserted cartridge will shadow the RAM, but then
> it doesn't make sense why to use a memory expansion cartridge.

I think it makes sense, because you'd have 32K RAM (4000-bfff) + 16K module (0-3fff), total 48. Plus 16K BASIC (c000-ffff)

:-)

> Unless of course those 32K RAM actually are 16K CPU RAM + 16K VRAM in the VDP.

Hm I dont think so. You may want to open your Laser 2001 and see how many RAM chips are there :-)

> The manual for the Laser 2001 says the RAM(0) command will report number of bytes
> free + 16384 which would suggest its RAM starts at $4000. One of those days I'll see if
> I can figure it out.

Well you have now some more infos to think about. But please don't waste your precious time with those wanderings....you have a videogame to complete coding hahahaha! :-P
User avatar
carlsson
Posts: 507
Joined: Fri Jun 13, 2008 7:39 am
Location: Västerås, Sweden

Re: Memory maps, chip documentation

Post by carlsson » Mon Feb 04, 2013 9:19 pm

After reading Wizzdom issue 3, the map is said to look like this:

$0000 - $03FF: 1K RAM (mirrored thrice at $0400 - $07FF, $0800 - $0BFF, $0C00 - $0FFF)
$1000 - $1FFF: PIA (joysticks, sound)
$2000 - $2FFF: VDP read
$3000 - $3FFF: VDP write
$4000 - $7FFF: 16K ROM2 (BASIC in upper 4K)
$8000 - $BFFF: 16K ROM1 (BASIC in upper 8K)
$C000 - $E7FF: 10K memory expansion?
$E800 - $EFFF: I/O interface (2K)
$F000 - $F7FF: 2K ???
$F800 - $FFFF: 2K ROM0 (BIOS)

Apparently the I/O interface is for the printer and other (?) expansion units. Barry uses POKE 59392 ($E800) and 59393 to control the printer.
Post Reply