| |
Krill
Registered: Apr 2002 Posts: 2825 |
Alt-history no-cost design changes with great value
Which things in the C-64 could have been implemented or connected differently without conceivable extra cost, for coding advantages?
Thinking of things like shuffling the chip register bits like VIC's $d011 and $d016 differently (such that some effects can be achieved with fewer register writes or less twiddling).
Or putting some IO register to $01 (and move the memory configuration somewhere else, somehow).
Maybe also having different PLA memory configurations (not necessarily more).
Or connecting external signals to the CIA port pins in a different order.
Discuss! =) |
|
... 65 posts hidden. Click here to view all posts.... |
| |
Krill
Registered: Apr 2002 Posts: 2825 |
Quoting CopyfaultMaybe someone already wrote this, so sorry in case I missed it: having all the memory-changing opcodes with index in play writing to the non-fixed hi-byte adress first and then writing to the correct adress in the following cycle would really be nice ;) (thinking of INC abs,X; STA abs,X and the like) Er... you mean writing twice, to two different memory locations on page boundary crossing? |
| |
chatGPZ
Registered: Dec 2001 Posts: 11100 |
How would that be nice and not just be a major WTF? |
| |
JackAsser
Registered: Jun 2002 Posts: 1987 |
Route CHAREN, HIRAM and LORAM signals to the expansion bus. If you don't want a wider connector (more expensive carts) then just replace one of the +5V and 2 of the 4 GNDs. |
| |
Krill
Registered: Apr 2002 Posts: 2825 |
I guess any changes in the CPU behaviour would have been anything than cheap, though. Picking another existing CPU, ok, if produced in-house at MOS. :)
Quoting GroepazQuote:parallel drive interface (we know it was compatibility decision, not cost decision)
it was pure cost decision, the cable and connectors for ieee488 cost a small fortune back then. Yes, and with that fast serial failure...
Would have been nice to have a different layout in drive-side $1800 to write to the serial bus.
E.g., with DATA and CLK out on say bits 4 and 0, could bitbang out a byte in just 4+3*6 cycles (not 4+3*8) via STA $1800 : lsr : STA $1800 etc.
And if not that, having ATNA and CLK out on bits 1 and 0 would have been the next best thing. =) |
| |
ChristopherJam
Registered: Aug 2004 Posts: 1370 |
Quoting GroepazHow would that be nice and not just be a major WTF?
You could clear RAM at a hair over 2.5 cycles per byte! Epic! |
| |
Shadow Account closed
Registered: Apr 2002 Posts: 355 |
Quote: A simpler way to sync the CPU to the VIC-II. Either via some kind of halt facility, or at least having a up-counting timer to measure how far from the time of IRQ assertion we are.
Yeah, this one for sure! So convenient when coding on the Atari 8-bit machines or the VCS/2600 for that matter to just do a STA WSYNC - and you are in perfect sync again.
Cycle/raster-exact code on the C64 is such a nightmare in comparison. First you have to use some convoluted methods with double IRQs or whatnot to actually get in sync, and then it's a struggle to actually keep it once you start having badlines and sprites etc.
That's why my answer when someone makes suggestion on anything I code "But couldn't thing X be in the sideborder?" the answer is always a resolute "NO!" :) |
| |
Krill
Registered: Apr 2002 Posts: 2825 |
Quoting ShadowThat's why my answer when someone makes suggestion on anything I code "But couldn't thing X be in the sideborder?" the answer is always a resolute "NO!" :) Too lame or lazy, in other words. :)
I think setting up a CIA timer counting 63 cycles once, then querying that after VIC raster interrupts and having a little delay slide isn't really that much hassle. Especially since you can easily re-use that piece of code. |
| |
Dwangi
Registered: Dec 2001 Posts: 129 |
Maybe not an answer to the original question.
But I miss the Z-register. |
| |
Copyfault
Registered: Dec 2001 Posts: 466 |
Another what-if idea: grouping CSEL (not RSEL, mind!) and the YSCROLL-bits together in one VIC-II-control register would sometimes help to do badline- and sideborder-stuff in one go. |
| |
Krill
Registered: Apr 2002 Posts: 2825 |
Quoting CopyfaultAnother what-if idea: grouping CSEL (not RSEL, mind!) and the YSCROLL-bits together in one VIC-II-control register would sometimes help to do badline- and sideborder-stuff in one go. Just have a global border-disable bit as Oswald suggested, and be done with it. :) |
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 - Next |