On 2/15/2021 at 9:02 PM, Cyber said:
In the post below
@Kevin Williams posted
expansion bus pin out, but keep in mind this may be not a final pinout!
Hello All;
Okay, I know you are into all things Commodore and you are basing the Commander 16 loosely on it, but I think you are missing a few points, which would make your board more usable.
I looked at your I/O card bus and it looks to be 90% of the Apple][ I/O bus, so why didn't you just follow the Apple][ I/OBus? (Attached)
Doing so would have given you a host of existing Apple ][ I/O cards which could work with the Commander 16. (You might even get the Apple DISK ][ drives working.)
You could use the User 1 Pin (Pin 39) to control the system clock, while accessing slower I/O devices.
This would also give you access to a host of coprocessor cards like the Microsoft's CPM Z80 card, and several 6809 and 68008 cards.
Curious why you placed the I/O in the middle of Memory. You could have placed it at the top of memory over the ROM or RAM. Seeing there are only 16 Memory location at the top of memory ($FFF0-$FFFF) which are Reserved for system use.
Placing the I/O at the top of memory — Minus the last 16 bytes — would give you the rest RAM as open space.
Also if you replace the 6502 with the 65816 in the future, putting the I/O at the top means, your banks of memory are uninterrupted. Which might be important is the greater vision.
The 816 reminds me of the 8088 / 8086 where memory wasn’t contiguous you could use it in 64K banks, even though you had 256K.
You could have your instant on Basic by sharing the ROM space with RAM, like theApple Language Card. And like the language card, you could copy the PROM in to RAM on reset, using a small utility; or the language could be loaded from the SD card. (BTW, Having two SD cards would be Cool, or even figuring out a way to connect a small SATA SSD or IP Stack for EitherNet or Wireless.)
This would also give you the ability to bring in other languages on to the system, such as Pascal, C, Compiled Basic, and the like, without having the space broken up by the IO map.
Also PROM's are hard to revise, unless your user base has PROM Burners, SD Languages would be way better. (Cause you need the VGA Card and it comes with the SD Card reader.)
Also you claimed the data/address decoding was too difficult to enact, but your method of banking is taking more chips and several memory locations, with is effectively doing the same thing the 816 is doing internally. WDC has a two chip Solution, which is in the 65816 data sheet (page 44).
You would also gain a 16bit register and a host of additional opcodes.
You might also look into some of the 6502 utilities WOZ and others crated for 6502 systems and theApple I & ][.
The Sweet 16 would assist with 16 bit math.
WOS also wrote something to expand the number of registers for the 6502, and I believe that some or all of them were 16bit registers.
Apple had the Programmer's Aid 1 which was a bunch of useful routines.
There are Floating Point Routines for the 6502.
There is also a CP/M like OS out there for the 6502.
Basically I would look at old Dr. Dobbs issues for ideas, of utilities long forgotten, but still useful.
One could expand the 16bit RAM register idea, to 24 bit RAM registers for the 65816. (They had a perfect opportunity to expand the Registers when they created the 816 but they didn’t.)
Well those are my suggestions.
Haslor