Jump to content
  • Advertisement
  • entries
    50
  • comments
    92
  • views
    66638

C64 BASIC kinks

Sign in to follow this  
ManTis

1238 views

Next day of studying the VIC-II architecture and using BASIC to play around with it.

First, I managed to solve yesterday's problems - since the booklet I was reading from is, like I said, crappy quality, I tried peeking 53240 instead of 53248 ( 0xd000 ) for character ROM. Once I translated the values into hex, the mistake was easy to spot. Since each character consists of 8 bytes ( 8 lines of 8 bits ), the off-by-8 error caused each character to be off-by-one ( 0 instead of 1, A instead of B etc ).

After I fixed that, I managed to work on RAM character memory and create custom characters ( a smiley, to be precise :D ), and called it a day. Today I wanted to throw together a quick Mandelbrot renderer, start by putting character 81 ( a filled circle ) all around the screen and changing its color based on standard escape time algorithm. Unfortunately, I've been hitting a wall. Basically, I've been having problem with nested FOR loops. At first I thought that maybe something is off with the nesting depth, but I've figured out that C64 BASIC allows for up to 9 nested loops. Then I thought that maybe there's a problem with NEXT. Finally, I wrote incredibly simple test case:


10 FOR LCX = 0 TO 5
20 FOR LCY = 0 TO 5
30 PRINT "LCX";LCX;"LCY";LCY
40 NEXT LCY
50 NEXT LCX
60 END


The result, which caused massive wtf in my brain was:

LCX 0 LCY 0
LCX 1 LCY 1
LCX 2 LCY 2
LCX 3 LCY 3
LCX 4 LCY 4
LCX 5 LCY 5


?NEXT WITHOUT FOR ERROR IN 50

And then a friend told me to try 'lx' and 'ly'. And it worked. Apparently, C64 BASIC only uses first two letters of a variable as an identifier, even though the names can be over 100 chars long. After this obstacle was down, the results were following fast. And when I say 'fast' I mean, 'it took couple minutes for C64 to render it in character mode' ;). Without further ado, pics!

gallery_66033_391_6029.png

And now back to studying the architecture, instead of faffing about ;)
Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!