Crossing the line

Debunking Drawing the line (part 1) and Drawing the line (part 2)

Your correspondent has been a little busy with “real life” for the past week so hasn’t got around to responding but, having caught up this morning, finds that the author’s “programming” is so poor that offering any kind of critique wouldn’t be so much shooting fish in a barrel as using a depth charge. Instead dear reader we will merge the two posts together to correct a couple of issues, skip over the program listings almost entirely since they already demonstrate very well how poor the author’s programming is without any help from your correspondent and perhaps offer a couple of more general thoughts as we go.

Of course, I was originally planning a court case against the computer dealer, the computer magazine, and/or Commodore themselves, challenging them to show in court how to draw a line across the screen. I wanted my money back, as well as compensation for distress caused.

Your correspondent doubts this would have ended well for the author, unless he made the purchase based on someone specifically stating it was easy to do he didn’t have a legal leg to stand on and the judge would have quite rightly laughed him out of court.

To recap, Commodore BASIC V2 was roughly the same as a very early version of Microsoft BASIC for the 6502 processor. Apple used the same source code for their BASIC, but had the decency to add commands for colour, graphics, and sound.

Apple originally used their own BASIC developed by Steve Wozniak and, when Microsoft called, said they weren’t interested; later Apple went to Microsoft, but the first version of Applesoft BASIC came on cassette and didn’t have specific commands for graphics. By the time the second iteration of Applesoft was included on ROM, it had gained graphics commands (but not sound, they were still done with a PEEK) and Apple had done a similar “dirty deal” to Commodore’s with Microsoft where they paid an outright sum.

As mentioned previously, this swapping of BASIC interpreters created significant compatibility issues with BASIC programs; with quite a few users preferring Steve Wozniak’s faster Integer BASIC because not everybody wants a feature-laden, slower interpreter.

…then it wouldn’t be until 17 years later that the Commodore 64 ceased production in 1994!

1994 – 1982 = 12 and we perhaps start to understand more fully why the author is struggling to program anything, apparently even subtraction is an issue for him.

On some computers the address is fixed, but there’s a choice of locations on the Commodore 64 and some other computers. This enables quick switching between screens that have already been drawn. I think the Atari 8 bit also has this, while the Amstrad CPC screen RAM is fixed at &C000 or 49152.

If memory serves, the Amstrad CPC screen can be re-pointed to one of the four 16K blocks in the first 64K of RAM. The Atari 8-bit can seriously mess around with where the screen RAM is kept within a few boundaries on a line-by-line basis, which is how your correspondent’s BASIC game documented here scrolled downwards on screen whilst actually scrolling up in memory using PRINT. It’s worth noting, however, that in both cases that this functionality isn’t available from extended BASIC commands.

Of course, I must comment on TMR’s stupid debunk of me giving notice a couple of days ago that I was about to post an article about how to draw a line across the C64 hires graphics screen. Commodore 64 BASIC V2 makes it impossible for the vast majority of people to actually draw a line across its hires or lores graphics screens.

This is of course a false argument; the majority of people owning all the 8-bits didn’t want this level of knowledge to start with so it’s equally true that the majority of Spectrum or Amstrad owners probably couldn’t draw a line across their bitmapped display despite it being significantly easier. The much smaller subset of owners who wanted to learn on the C64 could do so however, as clearly demonstrated by the author.

Apart from this, TMR has been refusing for about 13 months now to demonstrate to me how this is done, so why does he finally say he’s going to do it?

Because the author needs to understand that nobody is going to do what he demands including your correspondent. Waiting for the author to produce a listing and then converting it with a small spot of machine code so that it works how programmers would actually have done it in the early 1980s[1] was at least an idea that amused your correspondent, but that won’t actually be happening since what the author concocted is so poorly done that it can’t be converted.

Of course, I think it’s a MIRACLE that I’ve managed to work out how to draw a line across the C64 hires screen and I couldn’t care less if TMR or any of his mates say it’s the WRONG way to do it. At the end of the day, IT WORKS! That’s all that matters.

It does indeed work yes, or at least the listing above the quoted paragraph does after the bugs are repaired, but that’s not really important because using a bad piece of programming to “demonstrate” something in this way doesn’t go anywhere towards proving any of the author’s “arguments”.

It does however raise a very important question for you dear reader; should the opinion of somebody who demonstrably struggles with BASIC at such a fundamental level ever carry even the slightest bit of weight when discussing the pros and cons of various dialects? It’s similar to trying to talk with authority about the comparative merits of the Bugatti Veyron or Aston Martin DB9 without actually having driven either or indeed being able to drive in the first place.

Yes, your correspondent has already considered that it might perhaps be argued that the author represents the archetypal beginner to programming, but that’s still not a valid excuse for his inadequacy; he isn’t presenting himself that way in his writings and there are also actual beginners out there right now picking up the C64 like Paulo Garcia who started programming in BASIC six months ago and has recently released his first game Mission: Moon.

Mission: Moon (C64)

Mission: Moon, a BASIC game for the C64 released recently.

We shall end, dear reader, on a response to the author’s note at the start of his second post:

I feel I should start this post by telling you all the news that I’ve just managed to buy a Commodore 128 computer from eBay! I didn’t know if I was doing the right thing in bidding on this, but I was bidding on two or three of them, One of them came with a massive 5.25 inch floppy drive and lots of floppy disks, while this one doesn’t come with a floppy drive or anything else apart from the PSU.

It would seem that the author has once more leapt in without really understanding what he was buying; the C128 was meant to be used with a floppy drive and attempting to do so without one is severely hobbling it. And, since the CP/M mode can’t start up without a boot disk, that means he’s essentially paid over the odds for a C64 and we all get to enjoy some truly industrial levels of irony.

[1] Machine code subroutines like the one your correspondent was going to write were commonplace as type ins from books or magazines, distributed peer to peer by computer club members and so forth.

This entry was posted in Debunking and tagged , , , . Bookmark the permalink.