Path: news1.icaen!news.uiowa.edu!news.physics.uiowa.edu!math.ohio-state.edu!uwm.edu!news-penn.gip.net!news-dc.gip.net!news-peer.gip.net!news.gsl.net!gip.net!news.maxwell.syr.edu!news.cis.ohio-state.edu.MISMATCH!news.cis.ohio-state.edu!magnus.acs.ohio-state.edu!freenet.columbus.oh.us!not-for-mail From: dalloff@freenet.columbus.oh.us (Dave Althoff) Newsgroups: comp.sys.apple2 Subject: Re: The enhanced Apple//e's Assembler/Disassembler. Date: 31 Mar 1998 23:54:35 -0500 Organization: The Greater Columbus FreeNet Lines: 97 Message-ID: <6fshab$k5g@login.freenet.columbus.oh.us> References: <351FEBCA.E895746E@poboxes.com> NNTP-Posting-Host: 164.107.107.11 X-Newsreader: TIN [version 1.2 PL2] Xref: news1.icaen comp.sys.apple2:131960 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