Mega-Cart
Moderator: Moderators
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
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.
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
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.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
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.
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.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
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.
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
Very interesting!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.
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.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
- eslapion
- ultimate expander
- Posts: 5458
- Joined: Fri Jun 23, 2006 7:50 pm
- Location: Canada
- Occupation: 8bit addict
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.
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.
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
- Mike
- Herr VC
- Posts: 4841
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
@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. 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
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. 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
Hi Mike, i'm happy too see you, yes Waterloo Basic is included and a fixed/enhanced version will be appreciated.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.
Your Hypra-System will be appreciated too, have you a working version to include in the Mega-Cart ?
May you send me the PRG/BIN images so i will check them for Mega-Cart compatibility ?And if you'd also include TRON (from which at least one cartridge - mine - exists) you'd make me a happy man. 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.
Wownbla000 wrote:Hi Mike, i'm happy too see you, yes Waterloo Basic is included and a fixed/enhanced version will be appreciated.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.
Your Hypra-System will be appreciated too, have you a working version to include in the Mega-Cart ?
May you send me the PRG/BIN images so i will check them for Mega-Cart compatibility ?And if you'd also include TRON (from which at least one cartridge - mine - exists) you'd make me a happy man. 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.
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......
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
- Mike
- Herr VC
- Posts: 4841
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
@nbla000: I sent you the cart images.
@6502dude:
Greetings,
Michael
@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.nbla000 wrote:Your Hypra-System will be appreciated too, have you a working version to include in the Mega-Cart?
Greetings,
Michael
Unless NBLA000 has something needing this space during or after Hyper-System runs, you should be able to use $9880 to $99F7For 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.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20
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.
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 - $bfff6502dude wrote:Unless NBLA000 has something needing this space during or after Hyper-System runs, you should be able to use $9880 to $99F7
Snip from Buy/Sell thread...
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.
I like flash chips and have used them in other projects.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.
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.
Mega-Cart: the ultimate cartridge for your Commodore Vic-20