• entries
    50
  • comments
    92
  • views
    65807

C64 BASIC kinks

Sign in to follow this  
ManTis

1099 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