
map	.macro
	 lda   #bank(\1)
	 tam   #page(\1)
	.endm

vreg	.macro
	 lda	\1
	 sta	<_vreg
	 sta	$0000
	.endm

;-------------------------------

stwz	.macro
	 stz	\1
	 stz	\1+1
	.endm

stwi	.macro
	 lda	#low(\1)
	 sta	\2
	 lda	#high(\1)
	 sta	\2+1
	.endm

addwi	.macro
	 clc
	 lda	\2
	 adc	#low(\1)
	 sta	\2
	 lda	\2+1
	 adc	#high(\1)
	 sta	\2+1
	.endm

subwi	.macro
	 sec
	 lda    \2
	 sbc    #low(\1)
	 sta    \2
	 lda    \2+1
	 sbc    #high(\1)
	 sta    \2+1
	.endm

cmpwi	.macro
	 lda    \2+1
	 cmp    #high(\1)
	 bne    .x_\@
	 lda    \2
	 cmp    #low(\1)
.x_\@:
	.endm

movw	.macro
	 lda    \1
	 sta	\2
	 lda	\1+1
	 sta	\2+1
	.endm

incw	.macro
	 inc    \1
	 bne	.x_\@
	 inc	\1+1
.x_\@:
	.endm

decw	.macro
	 sec
	 lda	\1
	 sbc	#1
	 sta	\1
	 lda	\1+1
	 sbc	#0
	 sta	\1+1
	.endm

addw	.macro
	 clc
	 lda    \2
	 adc    \1
	 sta    \2
	 lda    \2+1
	 adc    \1+1
	 sta    \2+1
	.endm

subw	.macro
	 sec
	 lda    \2
	 sbc    \1
	 sta    \2
	 lda    \2+1
	 sbc    \1+1
	 sta    \2+1
	.endm

cmpw	.macro
	 lda    \2+1
	 cmp    \1+1
	 bne    .x_\@
	 lda    \2
	 cmp    \1
.x_\@:
	.endm

rolw	.macro
	 rol    \1
	 rol    \1+1
	.endm

aslw	.macro
	 asl    \1
	 rol    \1+1
	.endm

lsrw	.macro
	 lsr    \1+1
	 ror    \1
	.endm

rorw	.macro
	 ror    \1+1
	 ror    \1
	.endm

negw	.macro
	 lda    \1
	 eor    #$FF
	 sta    \1
	 lda	\1+1
	 eor    #$FF
	 sta    \1+1
	 inc    \1
	 bne    .x\@
	 inc    \1+1
.x\@:
	.endm

neg	.macro
	 eor    #$ff
	 inc    A
	.endm

add	.macro
	 clc
	 adc    \1
	.endm

sub	.macro
	 sec
	 sbc    \1
	.endm

blo	.macro
	 bcc    \1
	.endm

bhs	.macro
	 bcs	\1
	.endm

;-------------------------------

_stwi	.macro
	 pha
	 lda    #low(\1)
	 sta    \2
	 lda    #high(\1)
	 sta    \2+1
	 pla
	.endm

_addwi	.macro
	 pha
	 clc
	 lda    \2
	 adc    #low(\1)
	 sta    \2
	 lda    \2+1
	 adc    #high(\1)
	 sta    \2+1
	 pla
	.endm

_subwi	.macro
	 pha
	 sec
	 lda    \2
	 sbc    #low(\1)
	 sta    \2
	 lda    \2+1
	 sbc    #high(\1)
	 sta    \2+1
	 pla
	endm

_cmpwi	.macro
	 pha
	 lda    \2+1
	 cmp    #high(\1)
	 bne    .x_\@
	 lda    \2
	 cmp    #low(\1)
.x_\@:
	 pla
	.endm

_movw	.macro
	 pha
	 lda    \1
	 sta    \2
	 lda    \1+1
	 sta    \2+1
	 pla
	.endm

_incw	.macro
	 inc    \1
	 bne    .x_\@
	 inc    \1+1
.x_\@:
	.endm

_decw	.macro
	 pha
	 sec
	 lda    \1
	 sbc    #1
	 sta    \1
	 lda    \1+1
	 sbc    #0
	 sta    \1+1
	 pla
	.endm

_addw	.macro
	 pha
	 clc
	 lda    \2
	 adc    \1
	 sta    \2
	 lda    \2+1
	 adc    \1+1
	 sta    \2+1
	 pla
	.endm

_subw	.macro
	 pha
	 sec
	 lda    \2
	 sbc    \1
	 sta    \2
	 lda    \2+1
	 sbc    \1+1
	 sta    \2+1
	 pla
	.endm

_cmpw	.macro
	 pha
	 lda    \2+1
	 cmp    \1+1
	 bne    .x_\@
	 lda    \2
	 cmp    \1
.x_\@:
	 pla
	.endm

