10  .OPT NO LIST
20 ; SAVE #D1:MACROS.M65
30 ;
40 ; The following force MAC/65 to
50 ; use absolute addressing with
60 ; zero page addresses to match
70 ; the original. It is considered
80 ; these are more readable than
90 ; the actual .BYTE and .WORD
0100 ; definitions.
0101 ;
0102 ; Produces AND $00xx
0110  .MACRO AAND
0120  .BYTE $2D
0130  .WORD %1
0140  .ENDM
0150 ;
0160 ; Produces EOR $00xx
0170  .MACRO AEOR
0180  .BYTE $4D
0190  .WORD %1
0200  .ENDM
0210 ;
0220 ; Produces LDA $00xx
0230  .MACRO ALDA
0240  .BYTE $AD
0250  .WORD %1
0260  .ENDM
0270 ;
0280 ; Produces LDX $00xx
0290  .MACRO ALDX
0300  .BYTE $AE
0310  .WORD %1
0320  .ENDM
0330 ;
0340 ; Produces STA $00xx
0350  .MACRO ASTA
0360  .BYTE $8D
0370  .WORD %1
0380  .ENDM
0390 ;
0400 ; Produces STX $00xx
0410  .MACRO ASTX
0420  .BYTE $8E
0430  .WORD %1
0440  .ENDM
0450 ;
0460 ; Readability. These replace
0470 ; the phony BIT opcodes that
0480 ; skip one or two bytes
0490 ;
0500  .MACRO SKIPB
0510  .BYTE $24
0520  .ENDM
0530 ;
0540  .MACRO SKIPW
0550  .BYTE $2C
0560  .ENDM
0570 ;
0580 ; Display list
0590 ;
0600 ; Insert 1-8 blank scan lines
0610 ; usage BLANK [n]
0620 ;
0630  .MACRO BLANK
0640  .IF %0=0
0650  .BYTE 0
0660  .ELSE
0670  .BYTE [%1-1]*$10
0680  .ENDIF
0690  .ENDM
0700 ;
0710 ; Load memory scan, display mode 2
0720 ; usage  LMS Address
0730 ;
0740  .MACRO LMS
0750  .BYTE $42
0760  .WORD %1
0770  .ENDM
0780 ;
0790 ; jump and wait for vertical blank
0800 ; usage JVB Address
0810 ;
0820  .MACRO JVB
0830  .BYTE $41
0840  .WORD %1
0850  .ENDM
0860 ;
0880 ; Assembly and listing control
0890 ;
0900  .MACRO CHECK
0910  .IF *<>%1
0920  .ERROR "PC Mismatch"
0930  .OPT LIST,MLIST
0940 @TMP  .=  *-%1
0944  .OPT NO LIST
0950  LIST 
0960  .ENDIF
0970  .ENDM
0980 ;
0990 ; LIST  use current value of @LF
1000 ; LIST n  set @LF=n and execute
1010 ; 0=no list 1=list 2=list+mlist
1020 ; 3=list+mlist+clist
1030  .MACRO LIST
1040  .IF %0=1
1050 @LF  .=  %1
1060  .ENDIF
1070  .IF @LF
1080  .IF @LF>2
1090  .OPT CLIST
1100  .ENDIF
1110  .IF @LF>1
1120  .OPT MLIST
1130  .ENDIF
1140  .OPT LIST
1150  .ELSE
1160  .OPT NO LIST,NO MLIST
1170  .OPT NO CLIST
1180  .ENDIF
1190  .ENDM
