[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The enhanced Apple//e's Assembler/Disassembler.



Since the //c has the same roms and cpu as the //e-enhanced, the Monitor 
and Mini Assembler works the same way in both machines.

Doug Browning
dougbrow@freenet.mb.ca
(formerly: vgt507@freenet.mb.ca)
http://www.winnipeg.freenet.mb.ca/~dougbrow

On 31 Mar 1998, Dave Althoff wrote:

> Klil N. (spamfree@poboxes.com) wrote:
> : Hello,
> : I stumbled into some kind of Asm/Dasm utility with a '*'
> : prompt.
> : I found that 'I' creates inverted text while 'N' turns it
> : back to normal. Could anyone please tell me of it's
> : commands?
> : Thank you kindly in advance,
> : Klil N.
> 
> Actually, that part is on ALL Apple ]['s, though there are subtle variations.
> 
> I:  Set text mode to INVERSE
> N:  Set text mode to NORMAL
> n^P:  Jump to $Cn00, where 0<=n<=7, effectively booting the device in that
>       slot
> ^B:  Enter the current BASIC (Applesoft or Integer) (current program lost)
> ^C:  Enter the current BASIC (Applesoft or Integer) (current program retained)
> ^Y:  Jump to the Monitor's user vector (I forget the address...)
> 
> addrL:  Disassemble a page of assembly beginning at addr
> addr1.addr2:  Display (hex dump) the contents of all memory locations from 
>               addr1 to addr2.
> addr:  Display the contents of memory location addr
> addrG:  Jump to addr and start executing the code there
> addr:value:  Put hex value into memory location addr.  If more than one
>              byte is given, subsequent bytes will be written into
>              successive memory locations.  So 
>              *300:4C D0 03 
>              is the equivalent of
>              *300:4C
>              *301:D0
>              *302:03
> 
> There are more, for instance, commands for displaying the contents of the
> registers.  You are looking at the Monitor, and you can get there from
> BASIC without crashing with a 
> ]CALL -151
> 
> And you can return to BASIC with a 
> *3D0G
> 
> If you entered the Monitor from Integer BASIC, i.e....
> >CALL -151
> 
> then you have a couple of other features available, most notably...
> 
> *F666G
> which will take you to the Mini Assembler!
> In the Mini Assembler, you can enter a line of 6502 mnemonic code and it
> will automagically be converted to object code.  Sorry, no labels.  Use
> the address for the first line, a leading space for subsequent lines.  So
> you type...
> 
> !300:LDA #$87
> ! JSR $FDED
> ! RTS
> 
> and what will appear on the screen is...
> 0300- A9 87    LDA #$87
> 0302- 20 ED FD JSR $FDED
> 0305- 60       RTS
> !
> You can issue Monitor commands to the Mini Assembler by prefixing the
> command with a "$".  Return to the Monitor by jumping to its entry point...
> 
> !$FF69G
> *
> 
> Note that the Mini-Assembler does not exist in the Applesoft BASIC version
> of the Monitor...you MUST enter the Monitor from Integer BASIC to use the
> Mini Assembler.
> 
> EXCEPTION--Integer BASIC not required--
> The Mini-Assembler is back in the *enhanced* //e and in the IIgs (not sure
> about the //c).  From the Monitor prompt, just type the Mini-Assembler
> prompt--
> 
> *!
> !
> 
> Pressing RETURN on a blank line will take you back to the Monitor.
> 
> In the Apple ][ (NOT the ][+ or later), in addition to the "G" command,
> you could also use the "S"tep and "T"race commands for
> instruction-by-instruction debugging...the Monitor would show you the
> registers after each instruction.  As I have //e's and a IIgs, I've never
> used STEP and TRACE.
> 
> There you have it...an introduction to the Monitor and Mini-Assembler.
> 
> --Dave Althoff, ][.
> -- 
>     /^\        _       _              ***  Closed for the season  ***
>    /XXX\      /X\     /X\_      _     /X\__      _     _        _____  
>   /XXXXX\    /XXX\  _/XXXX\_   /X\   /XXXXX\    /X\   /X\      /XXXXX
> _/XXXXXXX\__/XXXXX\/XXXXXXXX\_/XXX\_/XXXXXXX\__/XXX\_/XXX\_/\_/XXXXXX
> 
>