Gentlemen, Thanks to Steve Gray’s simple MAX machine modification, I now have my MAX working via composite out to my LCD TV. Despite having ipad’s, Nintendo DS’s and a Wii, my kids spent hours playing the ultimax mode cartridges which is testament to the playability of the very earliest games from HAL labs and the other stuff produced in Japan. Given it’s one of the rarer of my Commodore machines, I didn’t particularly like the idea of my 6-year old Son swapping the cartridges himself so it got me thinking that it would pretty easy to make an ultimax mode cartridge which would boot into a menu and allow the user to select an image with the joystick. As there was only a total of about 30 ultimax compatible games (and even then, several of these were different versions of the same game), they would all fit onto a 256k x 8 prom. I know there’s several solutions that do this for the stock 64 (easyflash, alienflash, u1541 etc) but none work on a max machine as far as I know and, besides, this is more an exercise to see if I can. Although I’ve spent a few years on the forum, I’ve never done much hardware hacking myself, mainly just for repairing and knowledge, so I wanted to run a couple of ideas past you guys to see if they’re workable. If I assume I’m using a 2mb prom, which would hold up to 32 x 8k images, I need to find a way to programmatically control A13 -> A17. My idea was to use a tri-stateable latch such a 74LS373 which I would latch with one of the chip selects on the MAX expansion port. Pin 7 controls /EXRAM which I think is only used by the MAX-Basic cartridge. I haven’t checked, but I assume this maps to $0800-$0FFF, so I can latch these address lines with a write to an address in this space, AND’ing this with the R/W line. If I copy a small banking routine into the RAM at $0000-$03FF, I can set the latch and JMP ($FFFC) to start the image. This will all come a bit unstuck if the image makes writes to the $0800-$0FFF address space but the only image that would do that would be the MAX-BASIC, which I would not include. This leaves the problem of how to ensure it comes up properly when RESET. My idea with the tri-stateable latch was that I could pull-up (or down) the banking address lines with a resistor pack and control the output enable with another line exposed on the MAX cartridge port. What this line might be is more problematic. On the MAX schematic on Zimmers, I notice that P2 of the 6510 I/O port is exposed on pin-22 through a 470ohm resistor. On a 64, this would be ground, but maybe I can use this to control /OE on the MAX? This raised another questions though which I might have asked before on this forum which is: Q) When a 6510 is reset, what’s the default state of the DDR and I/O ports? The answer I am hoping for is that they are set for input so that I could have a pull-up resistor on /OE up to disable the latch outputs and rely on the pull-ups on the address lines to bank in the correct menu image when RESET. The worst answer would be that it’s not deterministic at all, in which case it would be very difficult to use P2. If this will not work, I am open to suggestions as to an alternative. If I used an octal latch like the 673 I would still have 3 unused with a 2mb PROM so I wonder if I could use some nasty feedback option where I use one of the unused latches to control its own output enable. If I then use /EXRAM to control /OE and (inverted) LE, writing a 0 to the latch would enable it and a 1 would disable it. Could these ideas work or am I talking garbage? Don’t feel bad about tearing my ideas apart. Cheers, Rob Message was sent through the cbm-hackers mailing listReceived on 2012-12-19 17:00:05
Archive generated by hypermail 2.2.0.