Apple II User Manual

Page of 257
BRANCH IF MINUS ONE
     BM1 ea              [ 08 d ]
     A branch is effected only if the prior 'result' was minus one
     ($FFFF Hex). Branch conditions are not changed.
BRANCH IF NOT MINUS ONE
     BNM1 ea             [ 09 d ]
     A branch effected only if the prior 'result' was not minus 1.
     Branch conditions are not changed.
BREAK:
     BK                  [ 0A ]
     A 6502 BRK (break) instruction is executed. SWEET 16 may be
     re-entered non destructively at SW16d after correcting the
     stack pointer to its value prior to executing the BRK.
RETURN FROM SWEET 16 SUBROUTINE:
     RS                  [ 0B ]
     RS terminates execution of a SWEET 16 subroutine and returns to the
     SWEET 16 calling program which resumes execution (in SWEET 16 mode).
     R12, which is the SWEET 16 subroutine return stack pointer, is
     decremented twice. Branch conditions are not changed.
BRANCH TO SWEET 16 SUBROUTINE:
     BS ea               [ 0c d ]
     A branch to the effective address (PC + 2 + d) is taken and
     execution is resumed in SWEET 16 mode. The current PC is pushed
     onto a SWEET 16 subroutine return address stack whose pointer is
     R12, and R12 is incremented by 2. The carry is cleared and branch
     conditions set to indicate the current ACC contents.
     EXAMPLE: (Calling a 'memory move' subroutine to move A034-A03B
              to 3000-3007)
     15 34 A0          SET  R5   $A034     ;Init pointer 1
     14 3B A0          SET  R4   $A03B     ;Init limit 1
     16 00 30          SET  R6   $3000     ;Init pointer 2
     0C 15             BS   MOVE           ;Call move subroutine
     45         MOVE   LD   @R5            ;Move one
     56                ST   @R6            ;byte
     24                LD   R4
     D5                CPR  R5             ;Test if done
     04 FA             BP   MOVE
     0B                RS                  ;Return