Jump to content

  • Log In with Google      Sign In   
  • Create Account






C64 BASIC kinks

Posted by ManTis, in C64 06 March 2012 · 537 views

C64 BASIC
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!

Posted Image

And now back to studying the architecture, instead of faffing about ;)




September 2014 »

S M T W T F S
 1 2 3456
78910111213
14151617181920
21222324252627
282930    
PARTNERS