Jump to content
IGNORED

16K Vic 20 character redefinition?


Recommended Posts

Hello all.  I'm new to the Vic and I need to know how to redefine characters , but with the 16K memory expansion.

 

I watched a video on youtube of a guy defining a smiley face character, and attempted to do the same but it wouldn't work, seems only works in 3.5k.

 

Anyone got any pokes numbers I could use some help?  

 

Thanks in advance.

 

Link to comment
Share on other sites

ahhhh crap.

 

https://sleepingelephant.com/~sleeping/ipw-web/bulletin/bb/viewtopic.php?t=7905

I was gonna redefine chars and compile a game using Austro Compiler but that compiler doesn't take a new start-of-basic location into account , so i can't have redefined characters.

 

Well, that's fudged that then.  

 

How on earth did this fucking computer win the price war.

Link to comment
Share on other sites

Have you considered some other compiler than Austrocomp? For instance MOSpeed which was mentioned in the other thread should support VIC-20 and provide decent results.

 

Technically there are a few ways to solve it, of which the easiest one would be to move start of BASIC forward from $1200 to $1400, giving room for 64 characters. However it would need to be done in a two step process, where the loader first moves the pointer, then executes the program at the new address which itself would define the graphics.

 

There is an unused memory hole at address 673 - 767 (slightly smaller on the C64: 678 - 767). You can fit 11 characters between 680 and 767, which match symbols 85 (capital U) to Pi and the triangle following it. You would use POKE 36869,248 to get there, but unfortunately you have no access to character ROM nor any other RAM at that point so the entire character generator would rely on whichever data is between address 0 - 1023. A lot of it is used for the system, so you would find yourself limited to a game with 11 symbols for everything.

 

An alternative to learning assembly language would be trying a different higher level language. Like I mentioned, TRSE has become popular, in particular with VIC-20 developement so you might want to give it 30 minutes some day.

Link to comment
Share on other sites

Yeah. I sprinkled a post in @Retrospect's other thread with several links but perhaps it went unnoticed. I understand this is a Pascal inspired language which has built in support for software sprites and more, so very nicely targeted at VIC-20 if BASIC seems too limited but assembly language too complicated.

Link to comment
Share on other sites

4 hours ago, carlsson said:

Yeah. I sprinkled a post in @Retrospect's other thread with several links but perhaps it went unnoticed. I understand this is a Pascal inspired language which has built in support for software sprites and more, so very nicely targeted at VIC-20 if BASIC seems too limited but assembly language too complicated.

I noticed Carlsson, that's how I found the Mospeed compiler but I did forget to thank you for that so thanks. :)

 

I've decided to go with the C64 for now, for the game I had in mind, which is a conversion of my Dodge City for the TI-99.  

I'll be compiling with Mospeed and if there's a way to do it, I'd like to put a SID tune in there that'll play along in the background, but that's a way off yet!  
( won't be my tune either , I'm in no way affluent musically or SIDically.)

  • Like 2
Link to comment
Share on other sites

On 3/22/2024 at 11:54 PM, Retrospect said:

I was gonna redefine chars and compile a game using Austro Compiler but that compiler doesn't take a new start-of-basic location into account , so i can't have redefined characters.

 

Well, that's fudged that then.  

 

How on earth did this fucking computer win the price war.

Wha?  You should not be blaming the computer for a limitation of the "Austro Compiler", which was a pretty obscure third party product.  VIC-20 owners at the time programmed it in the built-in BASIC or machine language, and you would not have any issues with the redefinable characters with either.

  • Like 1
Link to comment
Share on other sites

1 hour ago, westman said:

Wha?  You should not be blaming the computer for a limitation of the "Austro Compiler", which was a pretty obscure third party product.  VIC-20 owners at the time programmed it in the built-in BASIC or machine language, and you would not have any issues with the redefinable characters with either.

I was having a tantrum.  Stamping my feet.  I'm over it now but if you wanna take me up on it fine.

Link to comment
Share on other sites

Btw, I saw on Denial that others suggested putting custom characters in the tape buffer, address 828-1023. Essentially you could fit 24 characters between 832 - 1023, plus the 11 between 680 - 767, for a total of 35 custom characters but then you have no access at all to ROM graphics. If you use 10 of those for numbers for a score display, it leaves 25 for other purposes.

 

I haven't studied Austrocomp, and those who have don't seem to have many much of a progress in determining a way that would let it create a memory hole between SYS stub and the compiled BASIC code, which is where you otherwise would put custom characters, around $1220. Then again I haven't compared the options, which compilers can produce a program that merges in a binary chunk between the stub and the actual program, as you ideally want the compiled program to start at $1201 for easy loading in one file. A different programming language intended for compiling and handling binary data by itself will probably be a better candidate in these days, as you may already have figured out.

 

Yes, the VIC-20 memory map is a pain in the behind, in particular how it relocates itself regarding start, end and certain register content depending on your memory expansion.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...