wrench-0.0.6.3
Safe HaskellNone
LanguageHaskell2010

Wrench.Isa.M68k

Synopsis

Documentation

data M68kIsa w l Source #

The M68kIsa type represents the instruction set architecture for the M68k machine. Each constructor corresponds to a specific instruction.

Constructors

Move 

Fields

MoveA 

Fields

Not 

Fields

Neg 

Fields

Clr 

Fields

And 

Fields

Or 

Fields

Xor 

Fields

Add 

Fields

Sub 

Fields

Mul 

Fields

Div 

Fields

Cmp 

Fields

Asl 

Fields

Asr 

Fields

Lsl 

Fields

Lsr 

Fields

Jmp 

Fields

Bcc 

Fields

Bcs 

Fields

Beq 

Fields

Bne 

Fields

Blt 

Fields

Bgt 

Fields

Ble 

Fields

Bge 

Fields

Bmi 

Fields

Bpl 

Fields

Bvc 

Fields

Bvs 

Fields

Jsr 

Fields

Rts 
Link 

Fields

Unlk 

Fields

Halt 

Instances

Instances details
IsWord w => DerefMnemonic (M68kIsa w) w Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

derefMnemonic :: (Text -> Maybe w) -> w -> M68kIsa w (Ref w) -> M68kIsa w w Source #

IsWord w => Machine (M68kSt w) (M68kIsa w w) w Source # 
Instance details

Defined in Wrench.Isa.M68k

Show l => Show (M68kIsa w l) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

showsPrec :: Int -> M68kIsa w l -> ShowS #

show :: M68kIsa w l -> String #

showList :: [M68kIsa w l] -> ShowS #

Eq l => Eq (M68kIsa w l) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

(==) :: M68kIsa w l -> M68kIsa w l -> Bool #

(/=) :: M68kIsa w l -> M68kIsa w l -> Bool #

ByteSizeT w => ByteSize (M68kIsa w l) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

byteSize :: M68kIsa w l -> Int Source #

CommentStart (M68kIsa w l) Source # 
Instance details

Defined in Wrench.Isa.M68k

IsWord w => MnemonicParser (M68kIsa w (Ref w)) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

mnemonic :: Parser (M68kIsa w (Ref w)) Source #

data Argument w l Source #

Note that for (A0)+ and −(A0), the actual increment or decrement value is dependent on the operand size: a byte access adjusts the address register by 1, a word by 2, and a long by 4.

Constructors

DirectDataReg DataReg 
DirectAddrReg AddrReg 
IndirectAddrReg Int AddrReg (Maybe IndexRegister)

Address with a 16-bit signed offset, e.g. 16(A0) TODO: Register indirect with index register & 8-bit signed offset e.g. 8(A0,D0) or 8(A0,A1)

IndirectAddrRegPreDecrement AddrReg

Address with pre-decrement, e.g. −(A0)

IndirectAddrRegPostIncrement AddrReg

Address with post-increment, e.g. (A0)+

Immediate l 

Instances

Instances details
Show l => Show (Argument w l) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

showsPrec :: Int -> Argument w l -> ShowS #

show :: Argument w l -> String #

showList :: [Argument w l] -> ShowS #

Eq l => Eq (Argument w l) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

(==) :: Argument w l -> Argument w l -> Bool #

(/=) :: Argument w l -> Argument w l -> Bool #

ByteSizeT w => ByteSize (Argument w l) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

byteSize :: Argument w l -> Int Source #

data Mode Source #

Constructors

Long 
Byte 

Instances

Instances details
Show Mode Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

showsPrec :: Int -> Mode -> ShowS #

show :: Mode -> String #

showList :: [Mode] -> ShowS #

Eq Mode Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

(==) :: Mode -> Mode -> Bool #

(/=) :: Mode -> Mode -> Bool #

data M68kSt w Source #

Constructors

M68kSt 

Fields

Instances

Instances details
Show w => Show (M68kSt w) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

showsPrec :: Int -> M68kSt w -> ShowS #

show :: M68kSt w -> String #

showList :: [M68kSt w] -> ShowS #

IsWord w => InitState (M68kSt w) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

initState :: Int -> MemOf (M68kSt w) -> StdGen -> M68kSt w Source #

IsWord w => Inspectable (M68kSt w) Source # 
Instance details

Defined in Wrench.Isa.M68k

Associated Types

type WordOf (M68kSt w) 
Instance details

Defined in Wrench.Isa.M68k

type WordOf (M68kSt w) = w
type IsaOf (M68kSt w) 
Instance details

Defined in Wrench.Isa.M68k

type IsaOf (M68kSt w) = M68kIsa w w
IsWord w => Machine (M68kSt w) (M68kIsa w w) w Source # 
Instance details

Defined in Wrench.Isa.M68k

type IsaOf (M68kSt w) Source # 
Instance details

Defined in Wrench.Isa.M68k

type IsaOf (M68kSt w) = M68kIsa w w
type MemOf (M68kSt w) Source # 
Instance details

Defined in Wrench.Isa.M68k

type MemOf (M68kSt w) = IoMem (M68kIsa w w) w
type WordOf (M68kSt w) Source # 
Instance details

Defined in Wrench.Isa.M68k

type WordOf (M68kSt w) = w

data IndexRegister Source #

Instances

Instances details
Show IndexRegister Source # 
Instance details

Defined in Wrench.Isa.M68k

Eq IndexRegister Source # 
Instance details

Defined in Wrench.Isa.M68k

data DataReg Source #

Constructors

D0 
D1 
D2 
D3 
D4 
D5 
D6 
D7 

Instances

Instances details
Generic DataReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Associated Types

type Rep DataReg 
Instance details

Defined in Wrench.Isa.M68k

type Rep DataReg = D1 ('MetaData "DataReg" "Wrench.Isa.M68k" "wrench-0.0.6.3-GOHhJzRU80S94JGLGysv3F" 'False) (((C1 ('MetaCons "D0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D7" 'PrefixI 'False) (U1 :: Type -> Type))))

Methods

from :: DataReg -> Rep DataReg x #

to :: Rep DataReg x -> DataReg #

Read DataReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Show DataReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Eq DataReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

(==) :: DataReg -> DataReg -> Bool #

(/=) :: DataReg -> DataReg -> Bool #

Hashable DataReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

hashWithSalt :: Int -> DataReg -> Int

hash :: DataReg -> Int

Default w => Default (HashMap DataReg w) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

def :: HashMap DataReg w

type Rep DataReg Source # 
Instance details

Defined in Wrench.Isa.M68k

type Rep DataReg = D1 ('MetaData "DataReg" "Wrench.Isa.M68k" "wrench-0.0.6.3-GOHhJzRU80S94JGLGysv3F" 'False) (((C1 ('MetaCons "D0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "D4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "D6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "D7" 'PrefixI 'False) (U1 :: Type -> Type))))

data AddrReg Source #

Constructors

A0 
A1 
A2 
A3 
A4 
A5 
A6 
A7 

Instances

Instances details
Generic AddrReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Associated Types

type Rep AddrReg 
Instance details

Defined in Wrench.Isa.M68k

type Rep AddrReg = D1 ('MetaData "AddrReg" "Wrench.Isa.M68k" "wrench-0.0.6.3-GOHhJzRU80S94JGLGysv3F" 'False) (((C1 ('MetaCons "A0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "A2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "A4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "A6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A7" 'PrefixI 'False) (U1 :: Type -> Type))))

Methods

from :: AddrReg -> Rep AddrReg x #

to :: Rep AddrReg x -> AddrReg #

Read AddrReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Show AddrReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Eq AddrReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

(==) :: AddrReg -> AddrReg -> Bool #

(/=) :: AddrReg -> AddrReg -> Bool #

Hashable AddrReg Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

hashWithSalt :: Int -> AddrReg -> Int

hash :: AddrReg -> Int

Default w => Default (HashMap AddrReg w) Source # 
Instance details

Defined in Wrench.Isa.M68k

Methods

def :: HashMap AddrReg w

type Rep AddrReg Source # 
Instance details

Defined in Wrench.Isa.M68k

type Rep AddrReg = D1 ('MetaData "AddrReg" "Wrench.Isa.M68k" "wrench-0.0.6.3-GOHhJzRU80S94JGLGysv3F" 'False) (((C1 ('MetaCons "A0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "A2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "A4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "A6" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "A7" 'PrefixI 'False) (U1 :: Type -> Type))))