Oddities of C64 BASIC

1 BORDER=1

Can you tell me why the very short BASIC programme above has a syntax error?

1 BRDER=1

But then the one with a slightly renamed variable name is perfectly ok?

It turns out it’s one of the limitations of Commodore BASIC V2. As explained here:

Variable names were limited to two letters. Or, specifically, any variable name longer than two characters was truncated, so that MARKUP and MAINTOTAL would both point to a single variable named MA.

Can somebody confirm this? IIRC, the C64 could handle longer variable names, but it’s a long time ago so I could be wrong.

Correct, the first two letters of a variable name must be unique. Also, your example variable MAINTOTAL contains the reserved word INT which would produce a ?SYNTAX ERROR.CarstenKlapp

http://wiki.c2.com/?CommodoreBasic

The word BORDER contains the BASIC command OR that cannot be used in a variable name!

I have no idea if I knew this back in the 90s. I presume I did but it had me scratching my head for 10 minutes last tonight trying to figure out why my BASIC programme wasn’t running.

The (re)discovery that variable names shouldn’t be longer than 2 characters long also explains the terse variable names I used in the BASIC portion of DMSREADER. We’re spoiled these days.

I also discovered that petcat doesn’t like uppercase BASIC commands but I have a nice Makefile now to compile BASIC and ASM portions of Disk Masher and copy them into a D64 for testing so it was a productive night.

From Rio to Waterfalls

Follow along from “I Go To Rio” to “Ritmo De La Noche” to “Every Teardrop Is a Waterfall” by Coldplay. I had no idea Ritmo De La Noche had such a history!

Of course there’s a C64 version! Maduplec of BUDS/NATO/Crest fame created a SID version of Ritmo De La Noche for his 1992 Glober demo. Every time I hear that song I think of that demo. I couldn’t find it on Youtube so you’ll just have to fire up an emulator to watch the spinning globe but here’s the SID tune!

I rescued a cat today

Somehow a cat got stuck in the cavity blocks of a wall in Blarney today. My wife was alerted to it by a post on the Muskerry News Facebook page. She was very upset and decided immediately to go up there and see what she could do.

I know the area well as I bring my dog for a walk there most days. I thought I could get the cat out by breaking the block around it so I grabbed a hammer and screwdriver, and for height a plastic chair from the garden.

The cat was so calm and friendly. She didn’t once give out, or try to claw me. She was obviously in distress because she had only her head and a single paw out.

After 20 minutes of carefully digging around her she pulled back into the wall so I was able to break it apart more quickly She came back too soon and poked her head out again, and wouldn’t duck her head back down to make my job easier!

My wife had a brain wave then to get the tin of cat food she had left in the car. We allowed the cat to smell it and made sure she saw us drop a few bits into the block in front of her. A moment later she ducked down to eat and I was able to dig away at a faster pace.

Once again she came up for air, but she backed down again and eventually the hole was big enough and out she popped with a little help! 🙂

I took her off the wall and put the tools away in the car to shouts that, “the cat has jumped up on the wall and is trying to get in again!” Luckily there were humans around to discourage this adventurous side of her personality. I grabbed a few rocks and covered the hole.

I recognised the cat once she was out. She tried to make friends with my dog a few times when we were out walking. Lovely cat, hopefully she’ll keep out of trouble now!

Three days later I went for a walk this morning and the cat is still safe and sound. 🙂

Ballintemple on Sullivan’s Quay.

If you go over to Google Maps and click on the location of the now demolished IDA building you’ll be told that you’re in Ballintemple, somewhere that is a few km to the east.

A neat way to quickly get home if you happen to live in that area, but awkward when Google Timeline thinks I’ve been in Blackrock every time I head into town ..

Odd things:

  • The popup marker shows the old building there.
  • Clicking on it will zoom out and mark the real Ballintemple on the map.

Hopefully it’ll be fixed sooner rather than later as I remember this showing up several weeks ago but forgot to report the problem before now.

Firefox printing with no headers and footers

First it was Netscape, then Chromium, on to Chrome and now (back) to Firefox, but the paperless office is still a pipe dream for me and most people.

Printing from Firefox can be annoying. I don’t like seeing the title, URL, current time, etc in the headers and footers so I would change those settings each time. Since I don’t print that often I’d always forget to find out how to save those settings, until today.

Turns out it’s quite easy, but it does require some tinkering with internal Firefox settings!

In Firefox, type about:config.

  1. Search for print.print and list of entries will appear.
  2. Look for:
    • print.print_headercenter
    • print.print_headerleft
    • print.print_headerright
    • print.print_footercenter
    • print.print_footerleft
    • print.print_footerright
  3. Double click on each one and remove the text in the (value) box.

This will remove the header and footer information when you print.

Next time I tried to print a page the headers and footers were both blank!

Retro Reading in 2019

Reading about retro computers in 2019!

You can be nostalgic about something for a lot longer than that thing was current. So it is with the Commodore 64, the Speccy and early computers in general.

I had a rubber keyed Spectrum 48K for a couple of years followed by a C64 that I used every day for another 4 years or so and here we are in 2019 and I’m reading about those ancient computers. I’m not the only one. There are vibrant communities around both computers and it’s great to see!

Somehow I can’t see myself feeling the same way about Windows 3.1, but I have to admit I have maybe not so fond memories of tuning autoexec.bat to get a few KB more memory in the DOS days…

What are the books I’m reading and where can I get them?

  1. The latest issue of FREEZE64 fanzine.
  2. Crash Annual 2019.
  3. The story of the Commodore 64 in pixels_.

error: btn: invalid btn_btree.bt_key_count

I recognised the symptoms:

  1. Excessive disk trashing.
  2. General slow down.
  3. Backblaze and Time Machine causing the rainbow spinner.

My filesystem needed first aid. I think I can trace this back to the latest macOS update. I swear that half the updates cause filesystem corruption of some sort, but it also feels like I’m running First Aid at least once a month anyway!

Unfortunately for me, the error this time was:

error: btn: invalid btn_btree.bt_key_count

Apparently Diskutil can’t fix that error. The only thing you can do is erase the drive, reinstall MacOS and then restore your data. I was dreading it.

I have a Time Machine backup but I decided to make another backup of my home directory, while logged into another account. Lucky I did as an IO error showed up in Library/Caches/ – thankfully I think in an Apple app I don’t use.

I expected the business of restoring everything to be awful, but in the end the MacOS installer fired up Migration Assistant which let me restore my last Time Machine backup.

With that done it was time to install Brew again. The first package to go back in was coreutils but “brew reinstall” has a bug where it won’t accept parameters. I should have used “install” but “reinstall” with  “–with-default-names” doesn’t work. Also coreutils and related packages are “keg-only” now so no symlinks to /usr/local/bin are made. You have to run “brew link” to link all the commands. It was a simple job then to rename each file, removing the “g” prefix.

I’ll find more things as I go that aren’t configured I’m sure, but thankfully restoring from Time Machine made the job much easier!