I made a thing started from scratch Sunday. Open source. Here's the blog article. 24 levels of undo/redo. Clipboard copy/paste/cut, and other stuff shown in image including shifting image left/up/down/right. Have fun on the original Vic-20!
If you have any 3K/8K/etc. expanded RAM, remove before you try. Otherwise the source is editable (ACME pure 6502).
Blog: https://techwithdave.davevw.com/2024/04 ... cters.html
D64: https://github.com/davervw/ch20edit/raw ... 20edit.d64
(mod: thread moved to Programming section)
Unexpanded VIC Font Editor
Moderator: Moderators
-
- Vic 20 Newbie
- Posts: 5
- Joined: Mon Jan 23, 2023 10:16 pm
- Website: http://www.davevw.com
- Location: California
- Occupation: Software Engineer
- Mike
- Herr VC
- Posts: 4850
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: Unexpanded VIC Font Editor
Nice! It's an interesting idea to move up the BASIC start to $1800, so the character set sits comfortably at $1000.davervw1 wrote:I made a thing started from scratch Sunday. [...]
You might consider adding a raster split in the middle of the screen, between UI and font display, so the UI can still use the standard character set.
... or use 3K.PRG to temporarily unexpand the VIC-20 (load with "...",8,1) until the next power cycle or reset.If you have any 3K/8K/etc. expanded RAM, remove before you try.
Greetings,
Michael
-
- Vic 20 Newbie
- Posts: 5
- Joined: Mon Jan 23, 2023 10:16 pm
- Website: http://www.davevw.com
- Location: California
- Occupation: Software Engineer
Re: Unexpanded VIC Font Editor
Thanks for moving this into the right board. I now better understand this forum's organization.
The raster/timer split on Vic-20 is an interesting idea I considered. But I chickened out and ran out of RAM -- only 13 bytes free!!! so it could be rather difficult. But there are more bytes/buffers elsewhere that could steal some bytes from, and further space optimizations. Seems like a useful feature. I am definitely shooting for it with its younger sibling Commodore model that comes with more RAM. But that doesn't help us here. Then again, with more Vic-20 RAM, we could also edit 4K double character sets also.
Alternative is that the user can press @ and it will swap RAM/ROM sets on demand.
Ah, I get your temporary unexpand comment... yeah -- since the video memory map is identical, LOAD... 8,1 is necessary then SYS manually instead of RUN. I hadn't tried that yet, but seems like a solid idea too. Bummer is putting character set in the middle of BASIC RAM though. 3K free before the set, and 1.5K free after. Not sure what other options there are, ah I see could relocate set to $1400-$1BFF and then only $1C00-$1DFF (half a K) is "wasted" not available to BASIC. Could also have a new branch for a variation that does this and avoid the manual SYS. Of course that's why we have 8K/16K/24K, etc. RAM expansions too. Doesn't seem like we need to be restricted to unexpanded, it was just a challenge I set myself and that was the configuration I started with in early 80s. I suspect I will submit new versions as I've already dealt with changes necessary for changing some of the addresses for an unnamed other popular Commodore 8-bit system.
Thanks again!
The raster/timer split on Vic-20 is an interesting idea I considered. But I chickened out and ran out of RAM -- only 13 bytes free!!! so it could be rather difficult. But there are more bytes/buffers elsewhere that could steal some bytes from, and further space optimizations. Seems like a useful feature. I am definitely shooting for it with its younger sibling Commodore model that comes with more RAM. But that doesn't help us here. Then again, with more Vic-20 RAM, we could also edit 4K double character sets also.
Alternative is that the user can press @ and it will swap RAM/ROM sets on demand.
Ah, I get your temporary unexpand comment... yeah -- since the video memory map is identical, LOAD... 8,1 is necessary then SYS manually instead of RUN. I hadn't tried that yet, but seems like a solid idea too. Bummer is putting character set in the middle of BASIC RAM though. 3K free before the set, and 1.5K free after. Not sure what other options there are, ah I see could relocate set to $1400-$1BFF and then only $1C00-$1DFF (half a K) is "wasted" not available to BASIC. Could also have a new branch for a variation that does this and avoid the manual SYS. Of course that's why we have 8K/16K/24K, etc. RAM expansions too. Doesn't seem like we need to be restricted to unexpanded, it was just a challenge I set myself and that was the configuration I started with in early 80s. I suspect I will submit new versions as I've already dealt with changes necessary for changing some of the addresses for an unnamed other popular Commodore 8-bit system.
Thanks again!
- Mike
- Herr VC
- Posts: 4850
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: Unexpanded VIC Font Editor
Probably not.davervw1 wrote:Ah, I get your temporary unexpand comment...
The tool I linked to, "3K.PRG", temporarily 'unexpands' the VIC-20. It sets the BASIC limits and the screen position as for the unexpanded VIC-20, so programs that rely on a given position of BASIC start and position of screen memory can be run without the need to physically remove memory expansions.yeah -- since the video memory map is identical, LOAD... 8,1 is necessary then SYS manually instead of RUN.
It is supposed to be loaded with ",8,1" as parts of it load into the $03xx vector area. It thus autostarts, without any SYS or RUN.
-
- Vic 20 Newbie
- Posts: 5
- Joined: Mon Jan 23, 2023 10:16 pm
- Website: http://www.davevw.com
- Location: California
- Occupation: Software Engineer
Re: Unexpanded VIC Font Editor
Ah I completely missed the link. Thanks for the pointer.