From de08c2e979b838e3142a6a380a6edc76ed86cc15 Mon Sep 17 00:00:00 2001 From: Nikita Orlov Date: Fri, 2 Apr 2021 18:55:32 +0300 Subject: Instructions rename --- src/Instructions.hs | 272 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 src/Instructions.hs (limited to 'src/Instructions.hs') diff --git a/src/Instructions.hs b/src/Instructions.hs new file mode 100644 index 0000000..9c2e2cb --- /dev/null +++ b/src/Instructions.hs @@ -0,0 +1,272 @@ +-- This module describes the semantics of machine instructions. +module Instructions where + +import Prelude hiding (Word) +import Machine +import Utils +import Data.IORef + + +doORICCR :: Emulator () +doORICCR = return () + +doORISR :: Emulator () +doORISR = return () + +doORI :: Int -> Int -> Int -> Emulator () +doORI _ _ _ = return () + +doANDICCR :: Emulator () +doANDICCR = return () + +doANDISR :: Emulator () +doANDISR = return () + +doANDI :: Int -> Int -> Int -> Emulator () +doANDI _ _ _ = return () + +doSUBI :: Int -> Int -> Int -> Emulator () +doSUBI _ _ _ = return () + +doADDI :: Int -> Int -> Int -> Emulator () +doADDI _ _ _ = return () + +doEORICCR :: Emulator () +doEORICCR = return () + +doEORISR :: Emulator () +doEORISR = return () + +doEORI :: Int -> Int -> Int -> Emulator () +doEORI _ _ _ = return () + +doCMPI :: Int -> Int -> Int -> Emulator () +doCMPI _ _ _ = return () + +doMOVEP :: Int -> Int -> Int -> Int -> Emulator () +doMOVEP _ _ _ _ = return () + +doBTST :: Int -> Int -> Int -> Int -> Emulator () +doBTST _ _ _ _ = return () + +doBCHG :: Int -> Int -> Int -> Int -> Emulator () +doBCHG _ _ _ _ = return () + +doBCLR :: Int -> Int -> Int -> Int -> Emulator () +doBCLR _ _ _ _ = return () + +doBSET :: Int -> Int -> Int -> Int -> Emulator () +doBSET _ _ _ _ = return () + +doMOVEA :: Int -> Int -> Int -> Int -> Emulator () +doMOVEA _ _ _ _ = return () + +doMOVE :: Int -> Int -> Int -> Int -> Int -> Emulator () +doMOVE _ _ _ _ _ = return () + +doSRMOVE :: Int -> Int -> Emulator () +doSRMOVE _ _ = return () + +doMOVECCR :: Int -> Int -> Emulator () +doMOVECCR _ _ = return () + +doMOVESR :: Int -> Int -> Emulator () +doMOVESR _ _ = return () + +doNEGX :: Int -> Int -> Int -> Emulator () +doNEGX _ _ _ = return () + +doCLR :: Int -> Int -> Int -> Emulator () +doCLR _ _ _ = return () + +doNEG :: Int -> Int -> Int -> Emulator () +doNEG _ _ _ = return () + +doNOT :: Int -> Int -> Int -> Emulator () +doNOT _ _ _ = return () + +doEXT :: Int -> Int -> Emulator () +doEXT _ _ = return () + +doNBCD :: Int -> Int -> Emulator () +doNBCD _ _ = return () + +doSWAP :: Int -> Emulator () +doSWAP _ = return () + +doPEA :: Int -> Int -> Emulator () +doPEA _ _ = return () + +doILLEGAL :: Emulator () +doILLEGAL = return () + +doTAS :: Int -> Int -> Emulator () +doTAS _ _ = return () + +doTST :: Int -> Int -> Int -> Emulator () +doTST _ _ _ = return () + +doTRAP :: Int -> Emulator () +doTRAP _ = return () + +doLINK :: Int -> Emulator () +doLINK a = do + incPC + addr <- readA a 4 + sp <- readA 7 4 + writeA 7 4 (sp - 4) + setLong (sp - 4) addr + +doUNLK :: Int -> Emulator () +doUNLK a = do + incPC + addr <- readA a 4 + val <- getLong addr + writeA a 4 val + writeA 7 4 (addr + 4) + +doMOVEUSP :: Int -> Int -> Emulator () +doMOVEUSP _ _ = return () + +doRESET :: Emulator () +doRESET = return () + +doNOP :: Emulator () +doNOP = with pc $ \pc -> do + pcval <- readIORef pc + writeIORef pc (pcval + 2) + +doSTOP :: Emulator () +doSTOP = return () + +doRTE :: Emulator () +doRTE = return () + +doRTS :: Emulator () +doRTS = return () + +doTRAPV :: Emulator () +doTRAPV = return () + +doRTR :: Emulator () +doRTR = return () + +doJSR :: Int -> Int -> Emulator () +doJSR _ _ = return () + +doJMP :: Int -> Int -> Emulator () +doJMP _ _ = return () + +doMOVEM :: Int -> Int -> Int -> Int -> Emulator () +doMOVEM _ _ _ _ = return () + +doLEA :: Int -> Int -> Int -> Emulator () +doLEA _ _ _ = return () + +doCHK :: Int -> Int -> Int -> Emulator () +doCHK _ _ _ = return () + +doDBcc :: Int -> Int -> Emulator () +doDBcc _ _ = return () + +doScc :: Int -> Int -> Int -> Emulator () +doScc _ _ _ = return () + +doADDQ :: Int -> Int -> Int -> Int -> Emulator () +doADDQ _ _ _ _ = return () + +doSUBQ :: Int -> Int -> Int -> Int -> Emulator () +doSUBQ _ _ _ _ = return () + +doBRA :: Int -> Emulator () +doBRA _ = return () + +doBSR :: Int -> Emulator () +doBSR _ = return () + +doBcc :: Int -> Int -> Emulator () +doBcc _ _ = return () + +doMOVEQ :: Int -> Int -> Emulator () +doMOVEQ _ _ = return () + +doDIVU :: Int -> Int -> Int -> Emulator () +doDIVU _ _ _ = return () + +doDIVS :: Int -> Int -> Int -> Emulator () +doDIVS _ _ _ = return () + +doSBCD :: Int -> Int -> Int -> Emulator () +doSBCD _ _ _ = return () + +doOR :: Int -> Int -> Int -> Int -> Int -> Emulator () +doOR _ _ _ _ _ = return () + +doSUBA :: Int -> Int -> Int -> Int -> Emulator () +doSUBA _ _ _ _ = return () + +doSUBX :: Int -> Int -> Int -> Int -> Emulator () +doSUBX _ _ _ _ = return () + +doSUB :: Int -> Int -> Int -> Int -> Int -> Emulator () +doSUB _ _ _ _ _ = return () + +doCMPA :: Int -> Int -> Int -> Int -> Emulator () +doCMPA _ _ _ _ = return () + +doCMP :: Int -> Int -> Int -> Int -> Emulator () +doCMP _ _ _ _ = return () + +doCMPM :: Int -> Int -> Int -> Emulator () +doCMPM _ _ _ = return () + +doEOR :: Int -> Int -> Int -> Int -> Emulator () +doEOR _ _ _ _ = return () + +doMULU :: Int -> Int -> Int -> Emulator () +doMULU _ _ _ = return () + +doMULS :: Int -> Int -> Int -> Emulator () +doMULS _ _ _ = return () + +doABCD :: Int -> Int -> Int -> Emulator () +doABCD _ _ _ = return () + +doEXG :: Int -> Int -> Int -> Int -> Emulator () +doEXG _ _ _ _ = return () + +doAND :: Int -> Int -> Int -> Int -> Int -> Emulator () +doAND _ _ _ _ _ = return () + +doADDA :: Int -> Int -> Int -> Int -> Emulator () +doADDA _ _ _ _ = return () + +doADDX :: Int -> Int -> Int -> Int -> Emulator () +doADDX _ _ _ _ = return () + +doADD :: Int -> Int -> Int -> Int -> Int -> Emulator () +doADD _ _ _ _ _ = return () + +doASD :: Int -> Int -> Int -> Emulator () +doASD _ _ _ = return () + +doLSD :: Int -> Int -> Int -> Emulator () +doLSD _ _ _ = return () + +doROXd :: Int -> Int -> Int -> Emulator () +doROXd _ _ _ = return () + +doROd :: Int -> Int -> Int -> Emulator () +doROd _ _ _ = return () + +doADSR :: Int -> Int -> Int -> Int -> Int -> Emulator () +doADSR _ _ _ _ _ = return () + +doLSDR :: Int -> Int -> Int -> Int -> Int -> Emulator () +doLSDR _ _ _ _ _ = return () + +doROXdR :: Int -> Int -> Int -> Int -> Int -> Emulator () +doROXdR _ _ _ _ _ = return () + +doROdR :: Int -> Int -> Int -> Int -> Int -> Emulator () +doROdR _ _ _ _ _ = return () -- cgit v1.2.3