diff options
Diffstat (limited to 'SrcShared/ATraps.h')
-rw-r--r-- | SrcShared/ATraps.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/SrcShared/ATraps.h b/SrcShared/ATraps.h new file mode 100644 index 0000000..7558e0f --- /dev/null +++ b/SrcShared/ATraps.h @@ -0,0 +1,58 @@ +/* -*- mode: C++; tab-width: 4 -*- */ +/* ===================================================================== *\ + Copyright (c) 1998-2001 Palm, Inc. or its subsidiaries. + All rights reserved. + + This file is part of the Palm OS Emulator. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. +\* ===================================================================== */ + +#ifndef _ATRAPS_H_ +#define _ATRAPS_H_ + +#include "Miscellaneous.h" // StMemoryMapper +#include "UAE.h" // regstruct + +class SessionFile; + +class ATrap +{ + public: + ATrap (void); + ~ATrap (void); + + void Call (uint16 trapWord); + + void PushByte (uint8 iByte); + void PushWord (uint16 iWord); + void PushLong (uint32 iLong); + + void SetNewDReg (int regNum, uint32 value); + void SetNewAReg (int regNum, uint32 value); + + uint32 GetD0 (void); + uint32 GetA0 (void); + + protected: + + void DoCall (uint16 trapWord); + + char* GetStackBase (void); + + private: + regstruct fOldRegisters; + regstruct fNewRegisters; + +// static const int kStackSize = 4096; // VC++ is a bit medieval here... + enum { kStackSize = 4096 }; + char fStack[kStackSize + 3]; + + StMemoryMapper fEmulatedStackMapper; +}; + +#endif /* _ATRAPS_H_ */ + |