8

Why did Apple include shapes in Applesoft BASIC? There are no sprites on the Apple II, but shapes provide a simple vector drawing tool. As graphics go the shapes are kind of an odd duck, they provide a little bit of what Quickdraw could do later on the Mac. Shapes lack some useful features like fill and xor, so only simple games/programs can use them.

3
  • 1
    somebody must have thought that having them was better than not, and had enough memory to implement it – OmarL Nov 30 '20 at 18:09
  • The Apple II has no hardware sprites so shapes are a way to have sprites in software. – Tim Locke Nov 30 '20 at 18:11
  • 5
    It's a compact way to represent a shape. The drawing code even has collision detection, suggesting it was intended for games. The performance wasn't great, but if you weren't in a hurry it worked fine. (If you were writing your game in Applesoft, you probably weren't in a hurry.) – fadden Dec 1 '20 at 0:55
13

Why did Apple include shapes in Applesoft BASIC?

Because they were introduced with the 'Programmers Aid #1 ROM' for Integer BASIC, so it was rather natural for Applesoft to support it as well.

Shapes lack some useful features like fill and xor,

To start with, there was a XOR mode. In addition, they provided features only vector graphic could add: Arbitrary rotation and scaling.


From Grandpa's Memory:

In fact, one of my earliest Applesoft programs based on the benefits shapes offer. A little program drawing an Adventskranz with its four candles,which could be lighted according to date. I guess one would call it today a 'Seasonal APP' :)

While wreath and candles were static drawn, I used two shapes to draw the flame, which randomly

  • grew and shrinked a bit (using SCALE=)
  • tilted to the sides (using ROT=)

The second shape was smaller than the main shape and drawn inside. Always wit the same tilting, but growing and shrinking on it's own within the main shape. THe resulting image was quite natural ... at least to me.

There was a keystroke to enlight one or more and another to blow them - which first tilted them all to one side, flickering a lot, and only if pressed long enough put them off.

Doing the same with sprites (or similar drawing routines) would have meant to draw more than a dozend sprites to cover each size/tilt combination, while with shapes it was just one for all

Given, not the biggest fish in town, but the whole idea grew when reading the description of shapes and ... well, it was about the same time of the year, 42 years ago: Adventszeit.

3
  • That's an interesting story. I assume you lived in German speaking Europe at that time? Were the Apple II common there? I assumed it was virtually nonexistent there because of its NTSC thing, plus I have never seen one in Denmark or further north. – OmarL Nov 30 '20 at 19:30
  • 1
    @OmarL Location is still the same as in my bio :)) The A2 was quite popular - at least when counting all clones as well. So hard to give numbers. Commodore may have had larger sales with PETs to schools, an later one home computers did ofc outrun the A2, but it was as well the preferred machine for university students - at least until the PC took over in the late 1980s. NTSC wasn't an issue, as green CRTs didn't care. With the II euro+ (and it's clone) PAL colour output was done via an encoder card. – Raffzahn Nov 30 '20 at 19:47
  • 2
    I was never able to determine any situations where shapes drawn at anything other than scale=1 and multiply-of-90-degrees rotation would look good. A function to draw a 7WxH stripe stored in a string would seem like it would have been more useful, especially if combined with a function to left-shift or right-shift a shape stored in a string (thus allowing a program to take one string and produce from it a set of pre-shifted shapes). – supercat Nov 30 '20 at 19:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.