12

In the Byte magazine article that Woz wrote about the Apple II (Vol 2, No 5), on page 43's last paragraph he mentioned how SWEET16 was useful and he estimated that about 20% of the Integer BASIC code could have been weeded out by selectively applying SWEET16.

While the wording suggests that Integer BASIC did not use SWEET16, it does leave me wondering if it did and if not, why not especially considering:

  1. The savings it would create in the ROM.
  2. He states there would be no observable performance degradation.
  3. All Apple II machines being shipped at the time included the Integer ROM and thus SWEET16.

So while I'm expecting the answer to be that it wasn't used, I am a bit curious why not especially since it would have given the II another 724 bytes or so of ROM space to do other useful things.

7
  • 3
    Perhaps rewriting the code to incorporate SWEET16 would have taken too long?
    – Jon Custer
    Apr 24, 2020 at 15:08
  • 6
    Woz wrote the original Integer Basic in machine code directly. While an elegant work, that fact also made it brittle when it came to enhancement or refactoring. I don't have any source to back this up, but I have a feeling it probably was just too much of a spaghetti mess to modify on a reasonable schedule. The prospect of adding graphics and floating point and etc. to Integer BASIC was so daunting that Apple eventually ditched it for Microsoft's BASIC implementation.
    – RETRAC
    Apr 24, 2020 at 15:57
  • 5
    FWIW, you can find a commented disassembly here: callapple.org/docs/ap2/special/integerbasic.pdf
    – fadden
    Apr 24, 2020 at 16:05
  • 4
    And as for the "why", I'd guess the sequence of events was (1) Woz writes Integer BASIC, (2) Woz gets irked that this is difficult in 6502, (3) Woz finishes Integer BASIC, (4) Woz solves the problem by inventing Sweet 16, and includes it in the ROM as there's space left, (5) the ROM has to ship.
    – dirkt
    Apr 24, 2020 at 18:42
  • 1
    @RETRAC, Integer BASIC for the Apple II does have graphics commands like HLIN, VLIN, PLOT, SCRN, COLOR, and GR.
    – Tim Locke
    Apr 24, 2020 at 19:48

1 Answer 1

8

Essentially various sides of the same reason:

  • SWEET16 came too late. Incorporating it into Integer BASIC would have postponed the ROM production further.
  • Integer BASIC was working as is, doing a redesign could have added bugs.
  • What to do with the saved space? Of course one could have added more functions but, again, this would have cost time to write and integrate, further postponing the introduction.

Bottom line: Apple had to get the II to market. Success was tied to an early start, so adding time to make it better would be a bad business choice - especially if the gain wasn't anything that could boost sales in the short run.

2
  • Yeah, so many developers seem to think they operate in a world without (non-technical) constraints :-) Regardless of how good your product is, it can still be destroyed by late (or non) shipping.
    – paxdiablo
    Mar 21, 2022 at 2:40
  • 2
    @paxdiablo As usual karma is a bitch: The Apple II was essentially a flop during the first 7 month of sales (1977) less than 600 Apple II were sold. So there would have been plenty time to improve without hurting sales while postponing the ROMS to be made :)
    – Raffzahn
    Mar 21, 2022 at 2:51

You must log in to answer this question.

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