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 » Tue Feb 12, 2013 4:19 pm

I am afraid not, but I can rewrite it or even put together some more formal developer's documentation that eventually can be hosted on the main site instead of sprinkled in the forum threads. A wiki perhaps, with limited editing options to not get a lot of garbage and disruption?
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 Feb 12, 2013 10:33 pm

I had another go at documenting the $10 - $1F range, see attached Zip archive which contains both PDF and MS Word files. If possible, please double check my work. I think I got most of it right, but I'm not entirely sure about the non-alphanumeric parts of the keyboard and how they relate to the joysticks. It also struck me that the joysticks are 16-way, while the registers $18 and $1A may only register eight of those directions. I really should burn myself an EPROM and try some code on a real Creativision soon.
You do not have the required permissions to view the files attached to this post.
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 Feb 12, 2013 10:54 pm

carlsson wrote:I am afraid not, but I can rewrite it or even put together some more formal developer's documentation that eventually can be hosted on the main site instead of sprinkled in the forum threads. A wiki perhaps, with limited editing options to not get a lot of garbage and disruption?
I',m not too familiar with Wiki, but I'm planning a new "homebrew" section on the CreatiVEmu website, it would be a great place to store tutorials, code sniplets, etc.

By the way I really wish you'll release the source code to Reversi, that would be a GREAT help for wannabe ASM programmers (including me) :-)
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 Feb 13, 2013 2:59 pm

Sure, I will release the source code when I've got it all working. More specifically I think my set of helper routines are of general interest, but you'll get access to all of it.
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 Feb 13, 2013 3:56 pm

This is great news. :-)

In what manner could I help you "double check" the infos you put on these docs? Please tell me...

PS: you don't have a Diagnosticart, do you?

Well the Diagnosticart contains the "Keyboard test" which actually gets inputs from all 16 directions. In fact if you put the joy in a middle position between (for example) N and NW, the diagnostic program returns the "N-NW" position as active.

This means that the 16 directions *are* caught by the PIA. Simply, the games make no use of these "middle" directions.
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 Feb 13, 2013 4:25 pm

Yes, I've got a Diagnosticart but never considered that there already would be a keyboard/joystick tester included. It means the code for that program could be analyzed to see if it reads the same memory locations.

Double checking would mostly consist of running the keys.bin posted above and check the readings vs what I documented in the controllers.pdf, in case I mixed up some values. Mainly the different joystick buttons - which one is Fire 1 and 2, which one is left or right fire buttons - tend to confuse me a little.
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Memory maps, chip documentation

Post by MADrigal » Thu Feb 14, 2013 4:20 pm

Hi,

I checked your doc and found it mostly correct, except a few mistakes I marked in "yellow".

Please read the attached doc with my fixes. Maybe something is still missing, but it's correct as for the "function" keys and the buttons.
You do not have the required permissions to view the files attached to this post.
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 » Thu Feb 14, 2013 5:05 pm

MADrigal wrote:Afaik, the memory expansion module for CV was never actually released.
I read the manual for the Wizzard parallel I/O interface, and it says that if you've got the memory expansion module, it needs to be connected to the Creativision and then the I/O interface into the memory expansion and any additional cartridge into the I/O interface. While the memory expansion mostly might be vaporware, it is an interesting notion to have in the manual for another product.

Thanks for the corrections to the document, I'll have a closer look later.
User avatar
MADrigal
Site Admin
Posts: 1189
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Memory maps, chip documentation

Post by MADrigal » Fri Feb 15, 2013 12:59 pm

Well the memory expansion module is also mentioned on the back of the Addit. Keyboard box
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 Aug 26, 2013 9:25 am

The rest of you who program for the Creativision, how do you treat the 1K RAM?

$0000 - $00ff : Obviously zeropage with all its benefits and limitations
$0100 - $01ff : Stack, but perhaps we don't need all of it?
$0200 - $02ff : Empty RAM, or is part of it used by the BIOS?
$0300 - $03ff : Empty RAM, this is the area I've mainly been using

Basically I wonder if the 256 bytes at $0200 are safe to use or if they will mess up running with interrupts enabled. I also realize the stack pointer can be lowered, but one would have to watch out with all those PHA, JSR etc so the stack isn't used up.

Perhaps it is time to clear up all the wizzdom (pun intended) in this thread and make a sticky out of it, just like we did regarding VDP programming and general 6502 knowledge. I can see some PSG programming sticky as well, although it was fairly straightforward once reading about it. One just needs to know which base frequency the real console uses, and that emulation doesn't quite seem to get that right?
Post Reply