antoine-source/appleworksgs/Macros/m16.branch

1 line
3.1 KiB
Plaintext
Executable File
Raw Blame History

;..............................................................................;
;
; Bgt & Ble - Branch greater than and branch less than equal
;
; Bgt adrs - Branch if Z flag clear and Carry set
; Ble adrs - Branch if Z flag set or Carry clear
;
;..............................................................................;
MACRO
bgt &adr
beq *+4
bge &adr
MEND
MACRO
ble &adr
blt &adr
beq &adr
MEND
;..............................................................................;
;
; Jcc adrs - Jump (long branch) on condition code macros
;
; Jmi adrs - Branch if N flag set
; Jpl adrs - Branch if N flag clear
; Jeq adrs - Branch if Z flag set
; Jne adrs - Branch if Z flag clear
; Jcs adrs - Branch if carry set
; Jcc adrs - Branch if carry clear
; Jlt adrs - Branch if less than (carry clear)
; Jge adrs - Branch if greater than or equal (carry set)
; Jle adrs - Branch if less than or equal
; Jgt adrs - Branch if greater than
;..............................................................................;
MACRO
jmi &adr
bpl *+5
brl &adr
mexit
MEND
MACRO
jpl &adr
bmi *+5
brl &adr
mexit
MEND
MACRO
jeq &adr
bne *+5
brl &adr
mexit
MEND
MACRO
jne &adr
beq *+5
brl &adr
mexit
MEND
MACRO
jcs &adr
bcc *+5
brl &adr
mexit
MEND
MACRO
jcc &adr
bcs *+5
brl &adr
mexit
MEND
MACRO
jlt &adr
bcs *+5
brl &adr
mexit
MEND
MACRO
jge &adr
bcc *+5
brl &adr
mexit
MEND
MACRO
jle &adr
beq ~bra&sysindex
bge ~nobra&sysindex
~bra&sysindex
brl &adr
~nobra&sysindex
mexit
MEND
MACRO
jgt &adr
blt ~nobra&sysindex
beq ~nobra&sysindex
brl &adr
~nobra&sysindex
mexit
MEND
;..............................................................................;
;
; JTS tableadrs,index - Jump Subroutine Table Short
; BTS tableadrs,index - Jump Table Short
;
; Thess macros implement a short jump to subroutine using the value of the
; accumulator or index to index into the table for the subroutines address.
;
;..............................................................................;
MACRO
JTS &table,&index
IF &nbr(&syslist) <20> 2 THEN
lda &index
ENDIF
asl a
tax
jsr (&table,x)
MEND
MACRO
BTS &table,&index
IF &nbr(&syslist) <20> 2 THEN
lda &index
ENDIF
asl a
tax
jmp (&table,x)
MEND
;..............................................................................;
;
; JTL tableadrs - Jump Subroutine Table Long
;
; This macros implements a long jump to subroutine using the value of the
; accumulator to index into the given table for the subroutines address.
;
;..............................................................................;
MACRO
JTL &table,&index
IF &nbr(&syslist) <20> 2 THEN
lda &index
ENDIF
asl a
asl a
tax
lda &table+1,x
sta ~b&sysindex+2
lda &table,x
sta ~b&sysindex+1
~b&sysindex
jsl *
mexit
MEND
********************************************************************
*
* AWGS WP module requires a case sensitive jsl to call the
* SpellChecker.
*
*
*
* Thursday, May 4, 1989 11:16:10 AM
********************************************************************
MACRO
&lab Case_Jsl &to
&lab
Case Object
jsl &to
Case Off
mend