Mega-Cart

Modding and Technical Issues

Moderator: Moderators

KilrPilr
Vic 20 Afficionado
Posts: 342
Joined: Wed Mar 24, 2004 12:09 pm

Post by KilrPilr »

NICE!! and WOW!! :D
6502dude
megacart
Posts: 1581
Joined: Wed Dec 01, 2004 9:53 am

Post by 6502dude »

NBLA000 has done a spectacular job in updating the crude SA Loader that I worked on.

He has created a generic loader, which supports all carts, which would not auto start.

Now all games & utilities on Mega-Cart are auto start from the menu :D

This includes all of the Scott Adams games, Baldor's Castle, Programmer's Aid Cart, Super Expander, Vic-mon, Programmer's Aid, Super Expander, Easy Load + a couple of surprises.

Super Expander auto starts and Vic-Mon may be enabled with 24K + 3K RAM available for experimenting pleasure.

Vic-Mon may also be auto started by itself from menu.

Programmer’s Aid has 24,456 bytes available for access.

I am truly amazed where this project has gotten to.

I will start soon on 2nd prototype board to define final design and draw schematic.
Image Mega-Cart: the ultimate cartridge for your Commodore Vic-20
6502dude
megacart
Posts: 1581
Joined: Wed Dec 01, 2004 9:53 am

Post by 6502dude »

I was testing rom images again and found that Basic 4.0 writes to IO3 for bytes $9C00 to $9C03.

In Mega-Cart design, these bytes are used for some favourites storage in NVRAM.

I had a look at the routines and they do not appear to be any form of copy protection.
Since Basic 4.0 was also used in PET computers, I thought maybe some code was simply was ported over and got left in.
However, PET memory map also appers to use same address space for IO or ROM.

Maybe Basic 4.0 was intended to support some external hardware at some point?

Anyway, I patched ROM to fix the problem and it appears to work ok.

It is available here: http://www.6502dude.com/cbm/vic20/multi ... atched.rom in case anyone wants to play with it, or for use in other Multi-cart design.
Image Mega-Cart: the ultimate cartridge for your Commodore Vic-20
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

Eslapion a couple of times mentioned that Basic 4.0 should be able to run in co-operation with an IEEE interface, probably VIC-1112. I tried it with the IEEE cartridge that I sold some of to Denial members, but IIRC the extra Basic commands didn't work with that interface. I could remember wrongly, the thread is somewhere here on the forum to look up.

If it really is meant to be used with an IEEE interface, perhaps the interface uses this I/O space? I don't know how they work technically, if an I/O block is required to shuffle data bytes back and forth.
Anders Carlsson

Image Image Image Image Image
6502dude
megacart
Posts: 1581
Joined: Wed Dec 01, 2004 9:53 am

Post by 6502dude »

carlsson wrote:Eslapion a couple of times mentioned that Basic 4.0 should be able to run in co-operation with an IEEE interface, probably VIC-1112. I tried it with the IEEE cartridge that I sold some of to Denial members, but IIRC the extra Basic commands didn't work with that interface. I could remember wrongly, the thread is somewhere here on the forum to look up.

If it really is meant to be used with an IEEE interface, perhaps the interface uses this I/O space? I don't know how they work technically, if an I/O block is required to shuffle data bytes back and forth.
Very interesting!

There were a few BIT commands as part of the code, so IEEE interface would make sense. I didn't spend much time trying to figure out the code.

Thanks for info.
Image Mega-Cart: the ultimate cartridge for your Commodore Vic-20
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Post by eslapion »

I did notice in the past that Basic V4 and the VIC-1112 use non-conflicting complementary address spaces.

The firmware for the VIC-1112 uses the upper part of BLK5 ($B000-$BFFF) while Basic V4 uses the lower part ($A000-$AFFF).

I suspected these would be comptible with one another but could never test that as I don't own a VIC-1112 myself.
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

It also is important that the Basic extention runs its commands through Kernel vectors as modified by the IEEE interface, and not hard coded directly to a device. The ROM dump to VIC-1112 is on Zimmer's FTP, so anyone who likes to can have a look if it also operates the same bytes in the I/O block. Yet if load and save operations go through regular vectors I don't think the Basic extention would need to put out data directly to the I/O, as it would be job of the IEEE ROM... or?
Anders Carlsson

Image Image Image Image Image
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

@6502dude:

Has Waterloo BASIC already been included? I could contribute a version, that fixes a (small) problem with its error messages, and also includes the DOS-Wedge, and a SYS-callable OLD routine.

And if you'd also include TRON (from which at least one cartridge - mine - exists) you'd make me a happy man. :D Please take this as pre-order for your Mega-Cart.

Both images take up 4K each, for which I'll send you a *.bin file upon request.

Greetings,

Michael
User avatar
nbla000
Salmon Run
Posts: 2582
Joined: Thu Oct 13, 2005 8:58 am
Location: Italy

Post by nbla000 »

Mike wrote: Has Waterloo BASIC already been included? I could contribute a version, that fixes a (small) problem with its error messages, and also includes the DOS-Wedge, and a SYS-callable OLD routine.
Hi Mike, i'm happy too see you, yes Waterloo Basic is included and a fixed/enhanced version will be appreciated.

Your Hypra-System will be appreciated too, have you a working version to include in the Mega-Cart ?
And if you'd also include TRON (from which at least one cartridge - mine - exists) you'd make me a happy man. :D Please take this as pre-order for your Mega-Cart.

Both images take up 4K each, for which I'll send you a *.bin file upon request.
May you send me the PRG/BIN images so i will check them for Mega-Cart compatibility ?
6502dude
megacart
Posts: 1581
Joined: Wed Dec 01, 2004 9:53 am

Post by 6502dude »

nbla000 wrote:
Mike wrote: Has Waterloo BASIC already been included? I could contribute a version, that fixes a (small) problem with its error messages, and also includes the DOS-Wedge, and a SYS-callable OLD routine.
Hi Mike, i'm happy too see you, yes Waterloo Basic is included and a fixed/enhanced version will be appreciated.

Your Hypra-System will be appreciated too, have you a working version to include in the Mega-Cart ?
And if you'd also include TRON (from which at least one cartridge - mine - exists) you'd make me a happy man. :D Please take this as pre-order for your Mega-Cart.

Both images take up 4K each, for which I'll send you a *.bin file upon request.
May you send me the PRG/BIN images so i will check them for Mega-Cart compatibility ?
Wow :!:

This will be a "super" Mega-Cart

I'm amazed at the amount of fixes that are occuring for these cart images.

Zimmers site will need a significant update.

Now I need to get back to testing......
Image Mega-Cart: the ultimate cartridge for your Commodore Vic-20
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

@nbla000: I sent you the cart images.

@6502dude:
nbla000 wrote:Your Hypra-System will be appreciated too, have you a working version to include in the Mega-Cart?
For the disc transfers Hypra-System needs a free 256 Byte RAM block. This should be preferably allocated in the I/O 2 or I/O 3 area. Is this possible? I'd then assemble a specific version.

Greetings,

Michael
6502dude
megacart
Posts: 1581
Joined: Wed Dec 01, 2004 9:53 am

Post by 6502dude »

For the disc transfers Hypra-System needs a free 256 Byte RAM block. This should be preferably allocated in the I/O 2 or I/O 3 area. Is this possible? I'd then assemble a specific version.
Unless NBLA000 has something needing this space during or after Hyper-System runs, you should be able to use $9880 to $99F7
Image Mega-Cart: the ultimate cartridge for your Commodore Vic-20
User avatar
nbla000
Salmon Run
Posts: 2582
Joined: Thu Oct 13, 2005 8:58 am
Location: Italy

Post by nbla000 »

Mike wrote:For the disc transfers Hypra-System needs a free 256 Byte RAM block. This should be preferably allocated in the I/O 2 or I/O 3 area. Is this possible? I'd then assemble a specific version.
6502dude wrote:Unless NBLA000 has something needing this space during or after Hyper-System runs, you should be able to use $9880 to $99F7
I'm not sure but i've some ideas and i may use a lot of these bytes, in any case Mega-Cart may runs programs in RAM too so you may use 256 bytes in your program space in $a000 - $bfff
6502dude
megacart
Posts: 1581
Joined: Wed Dec 01, 2004 9:53 am

Post by 6502dude »

Snip from Buy/Sell thread...
eslapion wrote:At this point, considering that 6502dude has implemented the NVRAM easily and made his own design, I don't see why it would be difficult at all to just get rid of the two EPROM chips and replace them with one single 32MBit FLASH memory chip.

If you do that then truly, there is no point in me going on with the FLASHCart.

Do you think it is feasible?

Truly, the M29F032 FLASH chip is just like a large RAM chip except you have to follow a procedure consisting of 4 poke before being allowed to write a byte.

I am absolutely convinced that if you made it that far in your hardware design then there is no reason you couldn't replace the ROMs with a single larger FLASH chip and it would actually make the MEGACart cheaper and it would double its capacity.
I like flash chips and have used them in other projects.

In fact, I was using 29F040 flash chips in very early MegaCart prototype before I got my hands on some 27C801 eproms. Using an external PC based programmer they are very fast to write to.

I think there are a couple of challenges with using the 29F032.

The chip must be erased prior to writing new data to it.

While the chip does support single sector erase & write, it must be done in a sector which is 64K in size.

For in circuit programming from Vic-20, this presents a problem. Using Basic memory from Vic-20, we only have 4K chunk that can be stored and written to flash's 64K sector.

If we use a 8K RAM (instead of Vic-20 core memory) then we can only transfer 8K during the write cycle.

I may be incorrect, but I think all data must be written in 64K chunk in a single write cycle. I believe subsequent writes to the same sector require sector to be erased before next write cycle.

It may be possible to load 64K file from disk to flash, but IO timing on serial bus may be a problem.

An external programming interface may be an option, but this would add to further design complexity (and cost).

Currently, I can get 27C801 eproms in quantity for about $3.00.

I have further reluctance of changing design significantly at this point as hundreds of hours have gone into compatibility testing, fixing cart images, and menu which supports current hardware.
Image Mega-Cart: the ultimate cartridge for your Commodore Vic-20
User avatar
nbla000
Salmon Run
Posts: 2582
Joined: Thu Oct 13, 2005 8:58 am
Location: Italy

Post by nbla000 »

I agree and i'm not sure that flash cards will work in the 2020 while i'm quite sure for Eproms.

When finished the Mega-Cart, why not a MMC-20 ? like the C64 MMC-64 ?
Post Reply