X; Makrodefinitionen
; Revision 28.06.89
:LoadB m
lda #@1
sta @0
/
:LoadW m
lda #<@1
sta @0
lda #>@1
sta @0+1
/
:MoveB m
lda @0
sta @1
/
:MoveW m
lda @0
sta @1
lda @0+1
sta @1+1
/
:add m
clc
adc #@0
/
:adda m
clc
adc @0
/
:AddB m
clc
lda @0
adc @1
sta @1
/
:AddW m
lda @0
clc
adc @1
sta @1
lda @0+1
adc @1+1
sta @1+1
/
X:AddVB m
lda @1
clc
adc #@0
sta @1
/
:AddVW m
lda #<@0
clc
adc @1
sta @1
lda #>@0
adc @1+1
sta @1+1
/
:sub m
sec
sbc #@0
/
:suba m
sec
sbc @0
/
:SubB m
sec
lda @1
sbc @0
sta @1
/
:SubW m
lda @1
sec
sbc @0
sta @1
lda @1+1
sbc @0+1
sta @1+1
/
:SubVB m
sec
lda @1
sbc #@0
sta @1
/
:SubVW m
lda @1
sec
sbc #<@0
sta @1
lda @1+1
sbc #>@0
sta @1+1
/
X:CmpB m
lda @0
cmp @1
/
:CmpBI m
lda @0
cmp #@1
/
:CmpW m
lda @0+1
cmp @1+1
bne :ende
lda @0
cmp @1
::ende
/
:CmpWI m
lda @0+1
cmp #>@1
bne :ende1
lda @0
cmp #<@1
::ende1
/
:PushB m
lda @0
pha
/
:PushW m
lda @0+1
pha
lda @0
pha
/
:PopB m
pla
sta @0
/
:PopW m
pla
sta @0
pla
sta @0+1
/
:bra m
clv
bvc @0
/
X:bge m
bcs @0
/
:bgt m
beq :done
bcs @0
::done
/
:blt m
bcc @0
/
:ble m
beq @0
bcc @0
/
:sbn m
ora #2^@0
/
:sbBn m
lda @0
ora #2^@1
sta @0
/
:sbWn m
lda @0
ora #<2^@1
sta @0
lda @0+1
ora #>2^@1
sta @0+1
/
:cbn m
and #$ff-2^@0
/
:cbBn m
lda @0
and #$ff-2^@1
sta @0
/
:cbWn m
lda @0
and #<$ffff-2^@1
sta @0
lda @0+1
and #>$ffff-2^@1
sta @0+1
/
X:roln m
ldx #@0
beq :done
::10 rol
dex
bne :10
::done
/
:rolBn m
ldx #@1
beq :done
::10 rol @0
dex
bne :10
::done
/
:rolWn m
ldx #@1
beq :done
::10 rol @0
rol @0+1
dex
bne :10
::done
/
:rorn m
ldx #@0
beq :done
::10 ror
dex
bne :10
::done
/
:rorBn m
ldx #@1
beq :done
::10 ror @0
dex
bne :10
::done
/
:rorWn m
ldx #@1
beq :done
::10 ror @0+1
ror @0
dex
bne :10
::done
/
X:asln m
ldx #@0
beq :done
::10 asl
dex
bne :10
::done
/
:aslBn m
ldx #@1
beq :done
::10 asl @0
dex
bne :10
::done
/
:aslWn m
ldx #@1
beq :done
::10 asl @0
rol @0+1
dex
bne :10
::done
/
:lsrn m
ldx #@0
beq :done
::10 lsr
dex
bne :10
::done
/
:lsrBn m
ldx #@1
beq :done
::10 lsr @0
dex
bne :10
::done
/
:lsrWn m
ldx #@1