*************************************************************************** * MACRO instructions * ------------------ * (pseudo instruction set extension) *************************************************************************** * FEDCBA98 76543210 ;whole register is SR; lower byte is CCR * T-S--III ---XNZVC sec MACRO ;function : set the CARRY flag ori.b #%00001,CCR ENDM clc MACRO ;function : clear the CARRY flag andi.b #$FF-1,CCR ENDM sez MACRO ;function : set the ZERO flag ori.b #%00100,CCR ENDM clz MACRO ;function : clear the ZERO flag andi.b #$FF-4,CCR ENDM req MACRO ;function : return if ZERO beq dummy ENDM rne MACRO ;function : return if NOT ZERO bne dummy ENDM rcc MACRO ;function : return if CARRY CLEAR bcc dummy ENDM rcs MACRO ;function : return if CARRY SET bcs dummy ENDM rpl MACRO ;function : return if POSITIVE bpl dummy ENDM rmi MACRO ;function : return if NEGATIVE bmi dummy ENDM clrh MACRO ;Dn ;function : ANDI.L #$0000FFFF,Dn swap \1 clr.w \1 swap \1 ENDM MODULO MACRO ;DANGER : HUGE LOOP POSSIBILITY sub.w \2,\1 bpl.s *-2 add.w \2,\1 ENDM EXEC MACRO ;call an EXEC system function jsr _LVO\1(a6) ENDM DOS MACRO ;call an AmigaDOS system function jsr _LVO\1(a6) ENDM GFX MACRO ;call a graphics system function jsr _LVO\1(a6) ENDM INTUI MACRO ;call an Intuition system function jsr _LVO\1(a6) ENDM LSTRING MACRO ;usage: STRING labelid,<'string parameter'> \1 dc.w \1_e-\1_s \1_s dc.b \2 \1_e ENDM LSTRINGR MACRO \1 dc.w \1_e-\1_s \1_s dc.b \2,LF \1_e ENDM PRINT_AT MACRO ;usage: PRINT_AT x,y,labelid,<'your string'> dc.w \1,\2 \3 dc.w \3_e-\3_s \3_s dc.b \4 \3_e ENDM *************************************************************************** * Software Constants * ------------------ *************************************************************************** TRUE equ -1 FALSE equ 0 NULL equ 0 ; Names of common ASCII codes SOH equ $01 TAB equ $09 FF equ $0C SHIFT_OUT equ $0E SHIFT_IN equ $0F ESC equ $1B DOUBLE_QUOTE equ $22 SINGLE_QUOTE equ $27 COMMA equ $2C SPC equ $20 CLS equ FF ;Form Feed is used to clear screen ; Common Amiga 4096 colors RED equ $f00 GREEN equ $0f0 BLUE equ $00f YELLOW equ RED+GREEN CYAN equ GREEN+BLUE MAGENTA equ RED+BLUE WHITE equ $FFF GREY equ $777 BLACK equ $000 _AbsExecBase equ 4 CUSTOM_BASE equ $DFF000 COLOR_BASE equ $DFF180