9

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
    – Lorraine
    Nov 30, 2020 at 18:09
  • The Apple II has no hardware sprites so shapes are a way to have sprites in software.
    – Tim Locke
    Nov 30, 2020 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, 2020 at 0:55

1 Answer 1

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.
    – Lorraine
    Nov 30, 2020 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, 2020 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, 2020 at 19:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .