; The following predefinitions are for the Motorola 6801

;	E. McCreight
;	modified February 14, 1977  11:58 AM
;		to fix INX,DEX,INS,DES
;	modified May 12, 1977  2:49 PM
;		to fix STX of all flavors
;	modified August 3, 1978  10:42 AM
;		to fix sba
;	Last modified by J. Bratnober on April 2, 1980  12:13 PM 
;		for 6801 additions
;	Last modified by G. Thompson on August 21, 1980  3:58 PM 
;		to add class comments
;	Last modified by G. Thompson on February 23, 1981  4:57 PM 
;		to put in missing 6800 codes. Merged 6801 stuff with
;		Kowalksi's 6800 predefs file which seemed to be more complete.
;		ROR, ROL, were missing.

	.rdx 16
@OPTOFFSET = -20
@HIORDFIRST = 1
#Pg0Addr = 0
#HighAddrByte = 1
#LowAddrByte = 2

;	There are six classes into which you can put
;	opcodes:

;	@noparclass //No operand required (aka INHERENT)
;	@pcrelclass //Program counter relative
;	@immclass   //Immediate, followed by LoOperand, HiOperand.
;	@pgzclass   //Page zero, + 1 byte addr <256 (aka DIRECT, INDEXED)
;	@extclass   //Extended address followed by HiByte, LoByte.
;	@optclass   //Assembler decides between pgz and ext.

;	First the definitions shared by 6800 and 6801:

	.def addai @immclass 08b
	.def addaz @pgzclass 09b
	.def addax @pgzclass 0ab
	.def addae @extclass 0bb
	.def adda @optclass 0bb

	.def addbi @immclass 0cb
	.def addbz @pgzclass 0db
	.def addbx @pgzclass 0eb
	.def addbe @extclass 0fb
	.def addb @optclass 0fb

	.def aba @noparclass 01b

	.def adcai @immclass 089
	.def adcaz @pgzclass 099
	.def adcax @pgzclass 0a9
	.def adcae @extclass 0b9
	.def adca @optclass 0b9

	.def adcbi @immclass 0c9
	.def adcbz @pgzclass 0d9
	.def adcbx @pgzclass 0e9
	.def adcbe @extclass 0f9
	.def adcb @optclass 0f9

	.def andai @immclass 084
	.def andaz @pgzclass 094
	.def andax @pgzclass 0a4
	.def andae @extclass 0b4
	.def anda @optclass 0b4

	.def andbi @immclass 0c4
	.def andbz @pgzclass 0d4
	.def andbx @pgzclass 0e4
	.def andbe @extclass 0f4
	.def andb @optclass 0f4

	.def bitai @immclass 085
	.def bitaz @pgzclass 095
	.def bitax @pgzclass 0a5
	.def bitae @extclass 0b5
	.def bita @optclass 0b5

	.def bitbi @immclass 0c5
	.def bitbz @pgzclass 0d5
	.def bitbx @pgzclass 0e5
	.def bitbe @extclass 0f5
	.def bitb @optclass 0f5

	.def clrx @pgzclass 06f
	.def clre @extclass 07f
	.def clr @extclass 07f

	.def clra @noparclass 04f

	.def clrb @noparclass 05f

	.def cmpai @immclass 081
	.def cmpaz @pgzclass 091
	.def cmpax @pgzclass 0a1
	.def cmpae @extclass 0b1
	.def cmpa @optclass 0b1

	.def cmpbi @immclass 0c1
	.def cmpbz @pgzclass 0d1
	.def cmpbx @pgzclass 0e1
	.def cmpbe @extclass 0f1
	.def cmpb @optclass 0f1

	.def cba @noparclass 011

	.def comx @pgzclass 063
	.def come @extclass 073
	.def com @extclass 073

	.def coma @noparclass 043

	.def comb @noparclass 053

	.def negx @pgzclass 060
	.def nege @extclass 070
	.def neg @extclass 070

	.def nega @noparclass 040

	.def negb @noparclass 050

	.def daa @noparclass 019

	.def decx @pgzclass 06a
	.def dece @extclass 07a
	.def dec @extclass 07a

	.def deca @noparclass 04a

	.def decb @noparclass 05a

	.def eorai @immclass 088
	.def eoraz @pgzclass 098
	.def eorax @pgzclass 0a8
	.def eorae @extclass 0b8
	.def eora @optclass 0b8

	.def eorbi @immclass 0c8
	.def eorbz @pgzclass 0d8
	.def eorbx @pgzclass 0e8
	.def eorbe @extclass 0f8
	.def eorb @optclass 0f8

	.def incx @pgzclass 06c
	.def ince @extclass 07c
	.def inc @extclass 07c

	.def inca @noparclass 04c

	.def incb @noparclass 05c

	.def ldaai @immclass 086
	.def ldaaz @pgzclass 096
	.def ldaax @pgzclass 0a6
	.def ldaae @extclass 0b6
	.def ldaa @optclass 0b6

	.def ldabi @immclass 0c6
	.def ldabz @pgzclass 0d6
	.def ldabx @pgzclass 0e6
	.def ldabe @extclass 0f6
	.def ldab @optclass 0f6

	.def oraai @immclass 08a
	.def oraaz @pgzclass 09a
	.def oraax @pgzclass 0aa
	.def oraae @extclass 0ba
	.def oraa @optclass 0ba

	.def orabi @immclass 0ca
	.def orabz @pgzclass 0da
	.def orabx @pgzclass 0ea
	.def orabe @extclass 0fa
	.def orab @optclass 0fa

	.def psha @noparclass 036

	.def pshb @noparclass 037

	.def pula @noparclass 032

	.def pulb @noparclass 033

	.def rorx @pgzclass 066
	.def rore @extclass 076
	.def ror @extclass 076

	.def rora @noparclass 046

	.def rorb @noparclass 056

	.def rolx @pgzclass 069
	.def role @extclass 079
	.def rol @extclass 079

	.def rola @noparclass 049

	.def rolb @noparclass 059

	.def aslx @pgzclass 068
	.def asle @extclass 078
	.def asl @extclass 078

	.def asla @noparclass 048

	.def aslb @noparclass 058

	.def asrx @pgzclass 067
	.def asre @extclass 077
	.def asr @extclass 077

	.def asra @noparclass 047

	.def asrb @noparclass 057

	.def lsrx @pgzclass 064
	.def lsre @extclass 074
	.def lsr @extclass 074

	.def lsra @noparclass 044

	.def lsrb @noparclass 054

	.def staaz @pgzclass 097
	.def staax @pgzclass 0a7
	.def staae @extclass 0b7
	.def staa @optclass 0b7

	.def stabz @pgzclass 0d7
	.def stabx @pgzclass 0e7
	.def stabe @extclass 0f7
	.def stab @optclass 0f7

	.def subai @immclass 080
	.def subaz @pgzclass 090
	.def subax @pgzclass 0a0
	.def subae @extclass 0b0
	.def suba @optclass 0b0

	.def subbi @immclass 0c0
	.def subbz @pgzclass 0d0
	.def subbx @pgzclass 0e0
	.def subbe @extclass 0f0
	.def subb @optclass 0f0

	.def sba @noparclass 010

	.def sbcai @immclass 082
	.def sbcaz @pgzclass 092
	.def sbcax @pgzclass 0a2
	.def sbcae @extclass 0b2
	.def sbca @optclass 0b2

	.def sbcbi @immclass 0c2
	.def sbcbz @pgzclass 0d2
	.def sbcbx @pgzclass 0e2
	.def sbcbe @extclass 0f2
	.def sbcb @optclass 0f2

	.def tab @noparclass 016

	.def tba @noparclass 017

	.def tstx @pgzclass 06d
	.def tste @extclass 07d
	.def tst @extclass 07d

	.def tsta @noparclass 04d

	.def tstb @noparclass 05d

	.def cpxi @extclass 08c
	.def cpxz @pgzclass 09c
	.def cpxx @pgzclass 0ac
	.def cpxe @extclass 0bc
	.def cpx @optclass 0bc

	.def dex @noparclass 09

	.def des @noparclass 034

	.def inx @noparclass 08

	.def ins @noparclass 031

	.def ldxi @extclass 0ce
	.def ldxz @pgzclass 0de
	.def ldxx @pgzclass 0ee
	.def ldxe @extclass 0fe
	.def ldx @optclass 0fe

	.def ldsi @extclass 08e
	.def ldsz @pgzclass 09e
	.def ldsx @pgzclass 0ae
	.def ldse @extclass 0be
	.def lds @optclass 0be

	.def stxz @pgzclass 0df
	.def stxx @pgzclass 0ef
	.def stxe @extclass 0ff
	.def stx @optclass 0ff

	.def stsz @pgzclass 09f
	.def stsx @pgzclass 0af
	.def stse @extclass 0bf
	.def sts @optclass 0bf

	.def txs @noparclass 035

	.def tsx @noparclass 030

	.def bra @pcrelclass 020

	.def bcc @pcrelclass 024

	.def bcs @pcrelclass 025

	.def beq @pcrelclass 027

	.def bge @pcrelclass 02c

	.def bgt @pcrelclass 02e

	.def bhi @pcrelclass 022

	.def ble @pcrelclass 02f

	.def bls @pcrelclass 023

	.def blt @pcrelclass 02d

	.def bmi @pcrelclass 02b

	.def bne @pcrelclass 026

	.def bvc @pcrelclass 028

	.def bvs @pcrelclass 029

	.def bpl @pcrelclass 02a

	.def bsr @pcrelclass 08d

	.def jmpx @pgzclass 06e
	.def jmp @extclass 07e

	.def jsrx @pgzclass 0ad
	.def jsr @extclass 0bd

	.def nop @noparclass 01

	.def rti @noparclass 03b

	.def rts @noparclass 039

	.def swi @noparclass 03f

	.def wai @noparclass 03e

	.def clc	@noparclass 0c

	.def cli @noparclass 0e

	.def clv @noparclass 0a

	.def sec	@noparclass 0d

	.def sei @noparclass 0f

	.def sev @noparclass 0b

	.def tap @noparclass 06

	.def tpa @noparclass 07

; Now for the definitions in which the MC6801 differs from the MC6800

	.def abx @noparclass 03a

	.def adddi @extclass 0c3
	.def adddz @pgzclass 0d3
	.def addde @extclass 0f3
	.def adddx @pgzclass 0e3

	.def asld @noparclass 05

	.def lddi @extclass 0cc
	.def lddz @pgzclass 0dc
	.def ldde @extclass 0fc
	.def lddx @pgzclass 0ec

	.def lsrd @noparclass 04

	.def mul @noparclass 03d

	.def pshx @noparclass 03c

	.def pulx @noparclass 038

	.def stdz @pgzclass 0dd
	.def stde @extclass 0fd
	.def stdx @pgzclass 0ed

	.def subdi @extclass 083
	.def subdz @pgzclass 093
	.def subde @extclass 0b3
	.def subdx @pgzclass 0a3