[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Monitoring Program
Michael Black <blackm00@CAM.ORG> wrote:
> On Wed, 3 Feb 1999, Dennis McCormick-Kovacich wrote:
> [stuff deleted]
> >
> > That's all I can remember right now. Some models have a built-in
> > assembler called Sweet-16 that was written by Steve Wozniak, but I'm not
> > sure which models have it. I think the command to enter it was simply an
> > exclamation mark (!). I think its prompt was also the "!". If you have
> > it, this will allow you to enter programs using 6502 assembly mneumonics
> > instead of having to know the hex values. When you're done with the
> > monitor and want to return to AppleSoft, there are three ways to do it:
> >
> I thought the mini-assembler disappeared when the II+ came out.
Yes, but it came back again later (IIgs, IIc UniDisk ROM version,
enhanced IIe). The one in later machines works a little differently,
though.
You can get the original mini-assembler on any Apple II if you boot DOS
3.3, go into Integer BASIC, then get into the monitor and type F666G. I
forget how you get out again - possibly $FF69G. The $ sign is a prefix
for issuing monitor commands while in the mini-assembler.
For the IIe, IIc and IIgs mini-assembler, you just type ! to get into
it, and press return to get out again. It doesn't support embedded
monitor commands. The IIgs version has one feature that the IIe and IIc
ones are missing: you can enter the first instruction from the monitor
command line, e.g.
*!300:LDA #C8
00/0300 A9 C8 LDA #C8
!
Another point where all versions differ is the instruction set
supported. The original Integer BASIC and enhanced IIe mini-assemblers
only support 6502 instructions. The IIc one supports 65C02 and the IIgs
one supports 65816.
> The mini-assembler used some of the routines in the disassembler.
The lookup table for the mnemonics, and possibly the instruction size
tables and/or the "how big is this instruction" call. I can't quite see
how, though.
> However, Sweet-16 was not the name of the mini-assembler. It was an
> interpreter for a 16-bit pseudo-machine language. It was meant to be
> invoked when 16-bit operations were needed, and then you'd switch back to
> 6502 machine language.
Yep. Sweet-16 was a virtual machine, with eight 16-bit registers, using
zero page locations $00 through $1F to hold the register data. Quite a
nice little machine.
> WOZ mentioned it in connection with integer BASIC, but I can't remember
> whether he said in the interview that integer BASIC used Sweet-16, or that
> he didn't have it ready in time for use with the BASIC.
Integer BASIC doesn't use Sweet-16, but some of the "Programmer's Aid
#1" utilities (accessed via CALLs) do.
Sweet-16 was also used by the Big Mac/Merlin assembler, up to and
including Merlin-Pro and Merlin-8. Merlin-16 and Merlin-16+ are written
in native 65816 assembly language.
--
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand