My mod from yesteryear

Modding and Technical Issues

Moderator: Moderators

Post Reply
User avatar
srowe
Vic 20 Scientist
Posts: 1325
Joined: Mon Jun 16, 2014 3:19 pm

My mod from yesteryear

Post by srowe »

Thought I'd post a picture of the internal memory expansion that I built about 35 years ago.

It piggy-backs on the character ROM with a pair of 6116s, the flyleads pick up RAM1, RAM2, RAM3 and VR/W. I also had to mod UA1 to stop the RAM blocks being gated on to the expansion bus, that way the 3K block can be used for screens & character sets.
Attachments
vicmem.jpg
vicmem.jpg (362.6 KiB) Viewed 2805 times
User avatar
joshuadenmark
Big Mover
Posts: 1217
Joined: Sat Oct 23, 2010 11:32 am
Location: Fr-Havn, Denmark
Occupation: Service engineer

Re: My mod from yesteryear

Post by joshuadenmark »

Wow thats a cool modification. Does it still run?
Kind regards, Peter.
____________________________________________________
In need of a wiki logon - PM me
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: My mod from yesteryear

Post by Mike »

Nice one! :)

I did a similar mod on my VIC-20. I also extended the colour RAM with a 16Kx4 SRAM chip. There, the additional address lines are taken from the user port.
that way the 3K block can be used for screens & character sets.
Yep. That was exactly the reason I did it for.
I also had to mod UA1 to stop the RAM blocks being gated on to the expansion bus
I rerouted the /RAMx signals by socketing UC4, on the CR variant of the mainboard U13 combines pairs of the /RAMx signals to provide the /CS for originally two, now four 2Kx8 SRAMs. The original /RAM123 are tied high over 4K7 to H-level, because you don't want the inputs of UD9 to place a 'logic' level on the expansion bus that's essentially undefined for CMOS inputs. Of course, UD9 has not anymore to separate CPU and VIC bus in case of CPU accesses to $0400 to $0FFF. And in any case, the internal expansion takes priority over what's present at the expansion port.
User avatar
srowe
Vic 20 Scientist
Posts: 1325
Joined: Mon Jun 16, 2014 3:19 pm

Re: My mod from yesteryear

Post by srowe »

joshuadenmark wrote:Wow thats a cool modification. Does it still run?
Yep sure does, the fit is a bit tight under the keyboard and the ROM creeps a bit at times. I'd like to build a replacement that also pages between the ROM and RAM.
User avatar
Richardc64
Vic 20 Drifter
Posts: 33
Joined: Mon Feb 01, 2010 3:55 pm

Re: My mod from yesteryear

Post by Richardc64 »

I did something similar around the same time. I used an 8kx8 with 3k of it as RAM1,2,3 and 4k "under" the Character ROM so I could have custom characters without using any "main" memory.

I've since thought of a way to have both VID accessible internal 3K OR normal external 3k not accessible for video. Would this be worth the effort?

Also, Mike, 16k for Color Memory seems a bit extreme. Any suggestions for what could be done with a more modest amount, say, 2k? (Four color maps.)
I'd like to build a replacement that also pages between the ROM and RAM.
Did that, too. The thing about RAM under ROM is to arrange the banking circuitry so that the RAM can be written without switching out the ROM. That way, the ROM can be copied to RAM by PEEK/POKE (or LDA/STA) the same addresses, then modified before making the switch. This would apply to BASIC and Kernel ROMs, as well as to Character ROM
Attachments
The other ICs in the poor-quality webcam pic are a latch and buffer as a Configuration Register and logic to select what the 6502 "sees" in character space and what the VIC sees.
The other ICs in the poor-quality webcam pic are a latch and buffer as a Configuration Register and logic to select what the 6502 "sees" in character space and what the VIC sees.
charrampic.jpg (27.36 KiB) Viewed 2746 times
"I am endeavoring, ma'am, to create a mnemonic memory circuit... using stone knives and bearskins." -- Spock to Edith Keeler
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: My mod from yesteryear

Post by Mike »

Richardc64 wrote:Also, Mike, 16k for Color Memory seems a bit extreme. Any suggestions for what could be done with a more modest amount, say, 2k? (Four color maps.)
Sorry?

I wanted to do fullscreen FLI. Not something else. As the underlying bitmap mode uses double-height characters, VIC-I accesses the same addresses in colour RAM for 16 raster lines. The display routine for VFLI now cycles the new upper 4 address lines through the values 0..15 so that VIC-I sees different values from colour RAM in each raster, giving one pixel high attributes.
User avatar
srowe
Vic 20 Scientist
Posts: 1325
Joined: Mon Jun 16, 2014 3:19 pm

Re: My mod from yesteryear

Post by srowe »

Did that, too. The thing about RAM under ROM is to arrange the banking circuitry so that the RAM can be written without switching out the ROM. That way, the ROM can be copied to RAM by PEEK/POKE (or LDA/STA) the same addresses, then modified before making the switch. This would apply to BASIC and Kernel ROMs, as well as to Character ROM
Cool, would you care to share your schematic?
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: My mod from yesteryear

Post by Mike »

srowe wrote:Cool, would you care to share your schematic?
The schematics of Richardc64s internal expansion are found on his site.

As ambitious as this mod is, it would have been helpful if Richardc64 also had provided some software at least to demonstrate the advantages of doing those mods. That is something I didn't miss out with my VFLI mod. :)

'Just' talking about to have extra video RAM, and the mere possibilities to use changed contents of BASIC or KERNAL ROM doesn't cut it for me.
User avatar
Richardc64
Vic 20 Drifter
Posts: 33
Joined: Mon Feb 01, 2010 3:55 pm

Re: My mod from yesteryear

Post by Richardc64 »

Mike wrote:
srowe wrote:Cool, would you care to share your schematic?
The schematics of Richardc64s internal expansion are found on his site.

As ambitious as this mod is, it would have been helpful if Richardc64 also had provided some software at least to demonstrate the advantages of doing those mods. That is something I didn't miss out with my VFLI mod. :)

'Just' talking about to have extra video RAM, and the mere possibilities to use changed contents of BASIC or KERNAL ROM doesn't cut it for me.
Yeah, I pretty much abandoned the VIC after getting a C128. I've since thought of better and more versatile ways of doing what I did -- and more -- but don't expect to ever actually do them.

Sorry.
"I am endeavoring, ma'am, to create a mnemonic memory circuit... using stone knives and bearskins." -- Spock to Edith Keeler
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: My mod from yesteryear

Post by Mike »

Richardc64 wrote:Yeah, I pretty much abandoned the VIC after getting a C128. I've since thought of better and more versatile ways of doing what I did -- and more -- but don't expect to ever actually do them.

Sorry.
Ummm... ok. Well, that might be a 'career' shared by many who write here in Denial: the VIC-20 as first computer, replaced by a C64 or C128 or one of the 264 series, later on an Amiga or some entirely different computer, etc. Somewhere around 2002 I saw that emulators had gotten mature enough to think about what might have been possible to do on the VIC-20, giving one's own knowledge of today. Even better if you had kept the original hardware to run the newly written programs on the real iron. ;)

That being said, I now count at least five 'officially' known VIC-20s with at least the +3K between $0400 and $0FFF filled with RAM accessible by VIC: yours, srowe's, wimoos', freshlamb's and mine. Now, my VFLI mod actually was a spin-off of a longer project tokra and I did over the four years from 2010 to 2014: explore the display capabilities of the VIC-I. In doing so, we two managed to produce resolutions for bitmapped displays and also uniform colour resolutions that were unheard of before. Especially the 208x256 resolution was regarded as sort-of holy grail (especially for the German members) to achieve. We finally managed to do this, and even supported this resolution with an own BASIC extension. In parallel to this, another mode was created with 72x256 pixels, FLI, i.e. all 3 global colours refreshed on each raster, and 8x1 pixel colour attributes (which required rewriting 9 bytes of colour RAM data on each raster!)

Both modes work on an unaltered VIC-20, just a RAM expansion is needed. Then, the CPU shuffles bitmap or colour data in sync to the raster beam into the RAM accessible to VIC. Which more or less monopolises the CPU to aid the VIC for the display. The foreground program is halted during display.

I wanted to see both things, that resolution of 208x256, and FLI, at once. Together with at least some remaining time (~20%) for the main CPU to run own programs. That's what I devised my VFLI mod for! Four years later, there's a slightly enhanced resolution of 224x280 available without FLI, and 104x256 is possible for FLI, without modding the hardware. We know now for sure, that doing both things at once is completely beyond the limits for an unmodded VIC-20.

For the former 208x256 resolution without FLI, I wrote a display routine which only requires two NMIs per frame to put the bitmap on screen (i.e. effectively 100% CPU time available!!) That routine should run unaltered on your modded VIC-20's as well (it does not require the 16Kx4 colour RAM). I've put it here for download. In the d/l directory I put also some other tools, for example 'max.prg' moves the screen to $0400 and makes even more memory available for BASIC. There's also a slide show ('vfli_pan_slide') as demonstrator which loads VFLI images into an unmodded VIC-20 to display them, even if at reduced width (72 vs. 208 pixels), but with a sliding window. Please take your time to try out those programs.

There's still a lot to discover on our old friendly computer. No reason to throw the helve after the hatchet. :)
Vic20-Ian
Vic 20 Scientist
Posts: 1213
Joined: Sun Aug 24, 2008 1:58 pm

Re: My mod from yesteryear

Post by Vic20-Ian »

srowe wrote:
Did that, too. The thing about RAM under ROM is to arrange the banking circuitry so that the RAM can be written without switching out the ROM. That way, the ROM can be copied to RAM by PEEK/POKE (or LDA/STA) the same addresses, then modified before making the switch. This would apply to BASIC and Kernel ROMs, as well as to Character ROM
Cool, would you care to share your schematic?
Would that mean it would be possible to boot the Vic, copy the character rom to ram, load and overwrite with a custom character set, flick a switch and use the Vic with a custom character set?

I might fancy trying that for a Jeff Minter themed Vic. I love his space game fonts.

I would need some help figuring out the circuitry but I have plenty of Vic's now.
Vic20-Ian

The best things in life are Vic-20

Upgrade all new gadgets and mobiles to 3583 Bytes Free today! Ready
User avatar
srowe
Vic 20 Scientist
Posts: 1325
Joined: Mon Jun 16, 2014 3:19 pm

Re: My mod from yesteryear

Post by srowe »

Yes, I'm intending to use a 74LS175 as a write-only register to manage bank switching so it's all controlled by software.

My first experiments didn't quite work out so I'm going to have to spend so more time debugging this. I'll post a schematic once I think I have something that works.
User avatar
Richardc64
Vic 20 Drifter
Posts: 33
Joined: Mon Feb 01, 2010 3:55 pm

Re: My mod from yesteryear

Post by Richardc64 »

Vic20-Ian wrote: Would that mean it would be possible to boot the Vic, copy the character rom to ram, load and overwrite with a custom character set, flick a switch and use the Vic with a custom character set?
In my modification mechanical switches were used only to configure the normally expandable areas; RAM1,2,3 and BLOCKS1,2,3 and 5, in much the same way as some bus expanders or RAM packs were built. Character and Kernal ROM (or BASIC, if I had included that possibility,) were bankable only via software, although mechanical switching would certainly be possible. (And electronically simpler!)
I would need some help figuring out the circuitry but I have plenty of Vic's now.
The first thing to decide is just how much you want to change the VIC's architecture. I chose to arrange things so that if I didn't close any switches or twiddled any bits that on power up my VIC would appear mostly unmodified. (It could never have external 3K and the number of VIA "images" were reduced.) This meant NOT using any User Port bits for a "Configuration Register" and instead adding a latch and buffer, plus address and R/W decoding for them. I never had any device that plugged into the User Port, so using VIA bits would've been possible and made the project somewhat simpler -- except I wouldn't have been able to do the trick I did with BLK5.

Yeah, I made it more complicated than it needed to be.

If one were to do Mike's 16K Color Memory mod there would still be 4 VIA bits available for other configuration/banking features.

Ian, feel free to email or PM me.
"I am endeavoring, ma'am, to create a mnemonic memory circuit... using stone knives and bearskins." -- Spock to Edith Keeler
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: My mod from yesteryear

Post by Mike »

Richardc64 wrote:If one were to do Mike's 16K Color Memory mod there would still be 4 VIA bits available for other configuration/banking features.
I provided the source code of the display routine (here: link), so it's quite easy to change it for a banking register at another address.
Post Reply