******************************************************************************* * Example of using bset/bclr for managing the enabling/disabling of a system. ******************************************************************************* org $3000 START _main: jsr _enable jsr _enable ; should not print jsr _disable jsr _disable ; should not print move.b #9,d0 ; exit trap #15 * macro for printing a given null-terminated string print MACRO lea \1,a1 move.l #13,d0 ; print null-terminated string trap #15 ENDM ******************************************************************************* * Enabled the system. Do not re-enable if already enabled. _enable: bset #ENABLED,FLAGS bne enDone ; if already enabled, return print _msg1 enDone rts * Disable the system. Do not re-disable if already disabled. _disable: bclr #ENABLED,FLAGS beq disDone ; if already disabled, return print _msg2 disDone rts ******************************************************************************* FLAGS dc.b 0 ENABLED equ 0 _msg1 dc.b 'Enabling...',0 _msg2 dc.b 'Disabling...',0 end START