[comp.sys.apple2] BRK Reality

bazyar@ernie (Jawaid Bazyar) (01/17/91)

In article <11204@ucrmath.ucr.edu> rhyde@koufax.ucr.edu (randy hyde) writes:
>>> On the II gs BRK has an operand.
   The above poster is quite correct.

>This is an artifact of the disassembler.  The "operand" for the
>break instruction goes all the way back to the 6502.  The original
>chip had a bug which pushed the return address of the *next* instruction
>(rather than next instruction minus one).  BRK handlers on the older
>chips always compensated for this.  The GS' disassembler simply treated
>BRK as a single byte instruction.  If you look at all manufacturer's 
>literature, BRK is always listed as a single byte instruction.  It was
>Apple who decided it should be a two-byte instruction.  COP, OTOH, is
>listed in WDC's literature as a two-byte instruction.

  That's really strange, since I'm sitting here staring the WDC literature
in the face, and it plainly states that in native mode a signature byte
is fetched for both COP AND BRK.  In emulation mode, only a single byte
is fetched for BRK (the opcode).

--
Jawaid Bazyar               | Girl don't stop the screamin',
Senior/Computer Engineering |  you're sounding so sincere
bazyar@cs.uiuc.edu          | There's so much beauty
   Apple II Forever!        |  in the tracks of your tears	(BOC)

rhyde@feller.ucr.edu (randy hyde) (01/24/91)

BRK and COP have signature bytes.


You're right, the latest WDC literature explains the bug in the BRK in
this fashion.  Originally, though, BRK was a one byte instruction with
a bug in the microcode which pushed the return address.
*** Randy Hyde