Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!lll-winken!uunet!microsoft!brianw From: brianw@microsoft.UUCP (Brian Willoughby) Newsgroups: comp.sys.apple Subject: Re: what is sweet 16? Summary: Not so Sweet, no floating point. Keywords: AutoStart ROM, INTEGER BASIC, 16K Card, early death of Apple hackers Message-ID: <4015@microsoft.UUCP> Date: 11 Apr 89 05:10:47 GMT References: <8904071330.aa29809@SMOKE.BRL.MIL> Organization: Microsoft Corp., Redmond WA Lines: 52 In article <8904071330.aa29809@SMOKE.BRL.MIL>, ALBRO@NIEHS.BITNET writes: > Paul Nakada asks "What is Sweet 16?" > > Sweet 16 is Woz's assembly language machine in the AppleII and /or II+ to > allow floating point arithmetic. In a sense, it's the ultimate precursor > of the SANE routine. I hate to break it to you, but the Sweet 16 routines do not include floating point arithmetic by any means! There is a fully descriptive article in an ancient Byte magazine article which I think was written by the Woz. For those of you with complete libraries nearby, I'll go home tonight and find the issue. From memory, the Woz had a thought that BASIC would be much easier to write with a 16-bit processor, so he simulated one with the instructions he needed and wrote INTEGER BASIC. The genius of The Woz (in both hardware and software) never ceases to amaze me! The Sweet 16 routines are available to anyone who has 64K and the system disk file INTEGER (or an original II, ed.). Regarding another post, the 50 sector INTEGER is larger because it includes the Monitor code. It is basically a BSAVE of $D000.FFFF on an Apple II. After Apple designed the 16K card with the AutoStart ROM on it, they didn't want the easily frightened nouveau crowd of II users to have the AutoStart disabled by loading the contents of the old Monitor ROM in the Language Card. Therefore, the 42 sector INTEGER file is only addresses $D000.F7FF. This is where LOADER.OBJ0 was born. This code (with the proper Basic calling program) copies whatever data is in the motherboard ROM at $F800.FFFF into the RAM bank at the same address. THEN it loads $D000.F7FF with INTEGER Basic. The smaller INTEGER has all the features (i.e. Sweet 16, Mini-Assembler, HiRes Routines and Basic) but it lacks the features of the original Monitor ROM (i.e. 6502 Single-Step and Tracing). An interesting note, it seems like Apple really wanted to push the AutoStart ROM. The 16K RAM card with the 24-pin ROM on it permanently disabled whatever ROM was at $F800.FFFF, and they also tried to prevent it from being overwritten in the RAM bank. I guess this was a combination of keeping software writers happy, because they could almost be guaranteed RESET protection, and making it harder for the hackers to get deep into the guts of the Apple II. In some ways I feel that this early move started the trend of fewer knowledgable hackers, and paved the way for the "new generation" of Apple users who learned BASIC instead of Assembly. Alluding to an earlier post, I can say that my current software engineering career was built on the struggle I went through with my Apple II. Before the Plus and AutoStart, you booted into the Monitor without the fancy "Apple II" title, and I eventually was forced into learning what all those funny 3-letter mnemonics meant. I can't complain too much now, because I like the convenience of restarting with RESET. But I still keep the original non-AutoStart ROM available by a flip of a switch (2732 4K ROMs) for avoiding the dreaded power-off method of cold-start which wreaks havoc on digital circuits. Brian Willoughby microsoft!brianw@uunet.UU.NET or uw-beaver!microsoft!brianw or just microsoft!brianw