cmsx.machine Namespace

Classes

public class Add
public class Addi
public class AddressTranslationCache
public class AddressTranslationCacheEntry
public class Addu
public class Addui
public class And
public class Andi
public class Andn
public class Andnh
public class Andni
public class Andnl
public class Andnmh
public class Andnml
public class Bdif
public class Bdifi
public class Bev
public class Bevb
public class Bn
public class Bnb
public class Bnn
public class Bnnb
public class Bnp
public class Bnpb
public class Bnz
public class Bnzb
public class Bod
public class Bodb
public class Bp
public class Bpb
public class Bz
public class Bzb
public class Call
public class Calli
public class Clock
public class ClockDriver
public class Cmp
public class Cmpi
public class Cmpu
public class Cmpui
public class Csev
public class Csevi
public class Csn
public class Csni
public class Csnn
public class Csnni
public class Csnp
public class Csnpi
public class Csnz
public class Csnzi
public class Csod
public class Csodi
public class Csp
public class Cspi
public class Csz
public class Cszi
public class Debug
public class Div
public class Divi
public class Divu
public class Divui
public class Fadd
public class Fcmp
public class Fdiv
public class Fint
public class Fix
public class Fixu
public class Flot
public class Floti
public class Flotu
public class Flotui
public class Fmul
public class Formatter
public class Fsub
public class Get
public class GetA
public class GetAb
public class Go
public class Goi
public class I16Addu
public class I16Addui
public class I2Addu
public class I2Addui
public class I4Addu
public class I4Addui
public class I8Addu
public class I8Addui
public class Inch
public class Incl
public class Incmh
public class Incml
public class Instruction
public class Jmp
public class Jmpb
public class Ldb
public class Ldbi
public class Ldbu
public class Ldbui
public class Ldht
public class Ldhti
public class Ldo
public class Ldoi
public class Ldou
public class Ldoui
public class Ldsf
public class Ldsfi
public class Ldt
public class Ldti
public class Ldtu
public class Ldtui
public class Ldw
public class Ldwi
public class Ldwu
public class Ldwui
public class Machine
public class Memory
public class Mul
public class Muli
public class Mulu
public class Mului
public class Mux
public class Muxi
public class Nand
public class Nandi
public class Neg
public class Negi
public class Negu
public class Negui
public class Nor
public class Nori
public class Nxor
public class Nxori
public class Odif
public class Odifi
public class OpCodeMap
public class Or
public class Orh
public class Ori
public class Orl
public class Ormh
public class Orml
public class Orn
public class Orni
public class PageFrame
public class Pbev
public class Pbevb
public class Pbn
public class Pbnb
public class Pbnn
public class Pbnnb
public class Pbnp
public class Pbnpb
public class Pbnz
public class Pbnzb
public class Pbod
public class Pbodb
public class Pbp
public class Pbpb
public class Pbz
public class Pbzb
public class Processor
public class Put
public class Registers
public class Ret
public class SFlot
public class SFloti
public class SFlotu
public class SFlotui
public class Sadd
public class Saddi
public class Seth
public class Setl
public class Setmh
public class Setml
public class Sl
public class Sli
public class Slu
public class Slui
public class Sr
public class Sri
public class Sru
public class Srui
public class Stb
public class Stbi
public class Stbu
public class Stbui
public class Stco
public class Stcoi
public class Stht
public class Sthti
public class Sto
public class Stoi
public class Stou
public class Stoui
public class Stsf
public class Stsfi
public class Stt
public class Stti
public class Sttu
public class Sttui
public class Stw
public class Stwi
public class Stwu
public class Stwui
public class Sub
public class Subi
public class Subu
public class Subui
public class Swym
public class Tdif
public class Tdifi
public class Trap
public class Wdif
public class Wdifi
public class Xor
public class Xori
public class Zsev
public class Zsevi
public class Zsn
public class Zsni
public class Zsnn
public class Zsnni
public class Zsnp
public class Zsnpi
public class Zsnz
public class Zsnzi
public class Zsod
public class Zsodi
public class Zsp
public class Zspi
public class Zsz
public class Zszi

Functions

public inline nothrow ulong BitCount(ulong x)
public nothrow void DisableAllInterrupts(Registers& regs)
public nothrow void EnableAllInterrupts(Registers& regs)
public inline nothrow void ExtractDigitsFromPageNumber(ulong pageNum, ushort& digit0, ushort& digit1, ushort& digit2)
public String<char> FormatInstruction(ulong address, byte opCode, byte x, byte y, byte z, Formatter& formatter)
public nothrow String<char> GetInterruptName(int irq)
public Machine& GetMachine()
public nothrow ulong GetMaxStackSize(ushort addressSpaceNumber)
public nothrow int GetOpCode(const String<char>& opCodeName)
public nothrow const String<char>& GetOpCodeName(byte opCode)
public inline nothrow ulong GetPageNumber(ulong address)
public String<char> GetProtectionStr(Protection protection)
public inline nothrow byte GetSegmentIndex(ulong virtualAddress)
public inline nothrow ulong GetSegmentPart(ulong virtualAddress)
public nothrow bool GetUseTranslationCache()
public nothrow bool GrowStack(ushort addressSpaceNumber)
public nothrow void InvokePageFault(Registers& regs, ulong virtualAddress, Protection pageProtection, Protection access)
public nothrow bool IsProcessorInKernelMode(Registers& regs)
public nothrow bool IssuePageFault()
public nothrow Protection MakeDefaultPageProtection(byte segmentIndex)
public inline nothrow ulong MakeInterruptHandlerPtrAddress(byte irq)
public inline nothrow ulong MakePageTableEntry(ulong pageAddress, ushort addressSpaceNumber, Protection protection)
public inline nothrow ushort MakeSegmentOffset(byte segmentIndex)
public inline nothrow ulong MakeVirtualTranslationRegisterValue(ulong rootPageAddress, ushort addressSpaceNumber)
public inline nothrow ulong PackProtection(Protection pageProtection, Protection protection)
public void Panic(const String<char>& message)
public nothrow bool PanicThrows()
public nothrow void PrintAddressValues(bool get, ushort addressSpaceNumber, ulong pageAddress, int entryIndex, ulong sourcePageNumber)
public nothrow byte ReadMemoryByte(ulong address)
public nothrow uint ReadMemoryUInt(ulong address)
public nothrow ulong ReadMemoryULong(ulong address)
public nothrow ushort ReadMemoryUShort(ulong address)
public inline nothrow byte SaturatingSubtraction(byte x, byte y)
public inline nothrow uint SaturatingSubtraction(uint x, uint y)
public inline nothrow ulong SaturatingSubtraction(ulong x, ulong y)
public inline nothrow ushort SaturatingSubtraction(ushort x, ushort y)
public nothrow void SetKernelGrowStackFunction(KernelGrowStackFunction kernelGrowStackFunction_)
public nothrow void SetKernelMaxStackSizeFunction(KernelMaxStackSizeFunction kernelMaxStackSizeFunction_)
public nothrow void SetKernelShutdownFunc(KernelShutdownFunc kernelShutdownFunc_)
public nothrow void SetProcessorToKernelMode(Registers& regs)
public nothrow void SetProcessorToUserMode(Registers& regs)
public nothrow void SetSecurityViolation(Registers& regs, ulong virtualAddress)
public nothrow void SetStartUserTimeFunction(StartUserTimeFunction fun)
public nothrow void SetStopUserTimeFunction(StopUserTimeFunction fun)
public nothrow void SetUseTranslationCacheValue(bool use)
public inline nothrow void UnpackPageTableEntry(ulong pte, ulong& pageAddress, ushort& addressSpaceNumber, Protection& protection)
public inline nothrow void UnpackProtection(ulong packedValue, Protection& pageProtection, Protection& protection)
public inline nothrow void UnpackVirtualTranslationRegisterValue(ulong virtualTranslationRegisterValue, ulong& rootPageAddress, ushort& addressSpaceNumber)
public inline nothrow bool UseTranslationCache()
public nothrow void WriteMemoryByte(ulong address, byte b)
public nothrow void WriteMemoryUInt(ulong address, uint u)
public nothrow void WriteMemoryULong(ulong address, ulong u)
public nothrow void WriteMemoryUShort(ulong address, ushort s)

Delegates

public delegate void BootProc(Machine & machine)
public delegate void InterruptHandler(Machine & machine, byte  irq)
public delegate void InterruptReturnDelegate()
public delegate bool KernelGrowStackFunction(ushort  addressSpaceNumber)
public delegate ulong KernelMaxStackSizeFunction(ushort  addressSpaceNumber)
public delegate void KernelShutdownFunc()
public delegate void StartUserTimeFunction()
public delegate void StopUserTimeFunction()

Enumerated Types

public enum Protection

Constants

public const byte ADD = 0x20u
public const byte ADDI = 0x21u
public const byte ADDU = 0x22u
public const byte ADDUI = 0x23u
public const ulong ALL_INTERRUPT_BITS = 0xFFFFFFFFFFFFFFFFu
public const byte AND = 0xC8u
public const byte ANDI = 0xC9u
public const byte ANDN = 0xCAu
public const byte ANDNH = 0xECu
public const byte ANDNI = 0xCBu
public const byte ANDNL = 0xEFu
public const byte ANDNMH = 0xEDu
public const byte ANDNML = 0xEEu
public const byte BDIF = 0xD0
public const byte BDIFI = 0xD1u
public const byte BEV = 0x4Eu
public const byte BEVB = 0x4Fu
public const byte BN = 0x40u
public const byte BNB = 0x41u
public const byte BNN = 0x48u
public const byte BNNB = 0x49u
public const byte BNP = 0x4Cu
public const byte BNPB = 0x4Du
public const byte BNZ = 0x4Au
public const byte BNZB = 0x4Bu
public const byte BOD = 0x46u
public const byte BODB = 0x47u
public const byte BP = 0x44u
public const byte BPB = 0x45u
public const byte BZ = 0x42u
public const byte BZB = 0x43u
public const byte CALL = 0xBEu
public const byte CALLI = 0xBFu
public const ulong CLOCK_BIT = cast<ulong>(1u) << irqClock
public const byte CMP = 0x30u
public const byte CMPI = 0x31u
public const byte CMPU = 0x32u
public const byte CMPUI = 0x33u
public const ulong COW_BIT = cast<ulong>(1u) << irqCOW
public const byte CSEV = 0x6Eu
public const byte CSEVI = 0x6Fu
public const byte CSN = 0x60u
public const byte CSNI = 0x61u
public const byte CSNN = 0x68u
public const byte CSNNI = 0x69u
public const byte CSNP = 0x6Cu
public const byte CSNPI = 0x6Du
public const byte CSNZ = 0x6Au
public const byte CSNZI = 0x6Bu
public const byte CSOD = 0x66u
public const byte CSODI = 0x67u
public const byte CSP = 0x64u
public const byte CSPI = 0x65u
public const byte CSWAP = 0x94u
public const byte CSWAPI = 0x95u
public const byte CSZ = 0x62u
public const byte CSZI = 0x63u
public const ulong DISK_BIT = cast<ulong>(1u) << irqDisk
public const byte DIV = 0x1Cu
public const byte DIVI = 0x1Du
public const byte DIVU = 0x1Eu
public const byte DIVUI = 0x1Fu
public const byte FADD = 0x04u
public const byte FCMP = 0x01u
public const byte FCMPE = 0x11u
public const byte FDIV = 0x14u
public const byte FEQL = 0x03u
public const byte FEQLE = 0x13u
public const byte FINT = 0x17u
public const byte FIX = 0x05u
public const byte FIXU = 0x07u
public const byte FLOT = 0x08u
public const byte FLOTI = 0x09u
public const byte FLOTU = 0x0Au
public const byte FLOTUI = 0x0Bu
public const byte FMUL = 0x10u
public const byte FREM = 0x16u
public const byte FSQRT = 0x15u
public const byte FSUB = 0x06u
public const byte FUN = 0x02u
public const byte FUNE = 0x12u
public const byte GET = 0xFEu
public const byte GETA = 0xF4u
public const byte GETAB = 0xF5u
public const byte GO = 0x9Eu
public const byte GOI = 0x9Fu
public const byte I16ADDU = 0x2Eu
public const byte I16ADDUI = 0x2Fu
public const byte I2ADDU = 0x28u
public const byte I2ADDUI = 0x29u
public const byte I4ADDU = 0x2Au
public const byte I4ADDUI = 0x2Bu
public const byte I8ADDU = 0x2Cu
public const byte I8ADDUI = 0x2Du
public const byte INCH = 0xE4u
public const byte INCL = 0xE7u
public const byte INCMH = 0xE5u
public const byte INCML = 0xE6u
public const byte JMP = 0xF0u
public const byte JMPB = 0xF1u
public const ulong KEYBOARD_BIT = cast<ulong>(1u) << irqKeyboard
public const ulong K_BIT = cast<ulong>(1u) << irqK
public const byte LDB = 0x80u
public const byte LDBI = 0x81u
public const byte LDBU = 0x82u
public const byte LDBUI = 0x83u
public const byte LDHT = 0x92u
public const byte LDHTI = 0x93u
public const byte LDO = 0x8Cu
public const byte LDOI = 0x8Du
public const byte LDOU = 0x8Eu
public const byte LDOUI = 0x8Fu
public const byte LDSF = 0x90u
public const byte LDSFI = 0x91u
public const byte LDT = 0x88u
public const byte LDTI = 0x89u
public const byte LDTU = 0x8Au
public const byte LDTUI = 0x8Bu
public const byte LDUNC = 0x96u
public const byte LDUNCI = 0x97u
public const byte LDVTS = 0x98u
public const byte LDVTSI = 0x99u
public const byte LDW = 0x84u
public const byte LDWI = 0x85u
public const byte LDWU = 0x86u
public const byte LDWUI = 0x87u
public const ulong MACHINE_INTERRUPT_BITS = R_BIT | W_BIT | X_BIT | N_BIT | K_BIT | COW_BIT | S_BIT | P_BIT
public const byte MOR = 0xDCu
public const byte MORI = 0xDDu
public const byte MUL = 0x18u
public const byte MULI = 0x19u
public const byte MULU = 0x1Au
public const byte MULUI = 0x1Bu
public const byte MUX = 0xD8u
public const byte MUXI = 0xD9u
public const byte MXOR = 0xDEu
public const byte MXORI = 0xDFu
public const byte NAND = 0xCCu
public const byte NANDI = 0xCDu
public const byte NEG = 0x34u
public const byte NEGI = 0x35u
public const byte NEGU = 0x36u
public const byte NEGUI = 0x37u
public const byte NOR = 0xC4u
public const byte NORI = 0xC5u
public const byte NXOR = 0xCEu
public const byte NXORI = 0xCFu
public const ulong N_BIT = cast<ulong>(1u) << irqN
public const byte ODIF = 0xD6u
public const byte ODIFI = 0xD7u
public const byte OR = 0xC0u
public const byte ORH = 0xE8u
public const byte ORI = 0xC1u
public const byte ORL = 0xEBu
public const byte ORMH = 0xE9u
public const byte ORML = 0xEAu
public const byte ORN = 0xC2u
public const byte ORNI = 0xC3u
public const byte PBEV = 0x5Eu
public const byte PBEVB = 0x5Fu
public const byte PBN = 0x50u
public const byte PBNB = 0x51u
public const byte PBNN = 0x58u
public const byte PBNNB = 0x59u
public const byte PBNP = 0x5Cu
public const byte PBNPB = 0x5Du
public const byte PBNZ = 0x5Au
public const byte PBNZB = 0x5Bu
public const byte PBOD = 0x56u
public const byte PBODB = 0x57u
public const byte PBP = 0x54u
public const byte PBPB = 0x55u
public const byte PBZ = 0x52u
public const byte PBZB = 0x53u
public const byte PREGO = 0x9Cu
public const byte PREGOI = 0x9Du
public const byte PRELD = 0x9Au
public const byte PRELDI = 0x9Bu
public const byte PREST = 0xBAu
public const byte PRESTI = 0xBBu
public const byte PUSHJ = 0xF2u
public const byte PUSHJB = 0xF3u
public const byte PUT = 0xF6u
public const byte PUTI = 0xF7u
public const ulong P_BIT = cast<ulong>(1u) << irqP
public const byte RESUME = 0xF9u
public const byte RET = 0xF8u
public const ulong R_BIT = cast<ulong>(1u) << irqR
public const byte SADD = 0xDAu
public const byte SADDI = 0xDBu
public const byte SAVE = 0xFAu
public const byte SETH = 0xE0u
public const byte SETL = 0xE3u
public const byte SETMH = 0xE1u
public const byte SETML = 0xE2u
public const byte SFLOT = 0x0Cu
public const byte SFLOTI = 0x0Du
public const byte SFLOTU = 0x0Eu
public const byte SFLOTUI = 0x0Fu
public const byte SL = 0x38u
public const byte SLI = 0x39u
public const byte SLU = 0x3Au
public const byte SLUI = 0x3Bu
public const ulong SOFTWARE_INTERRUPT_BIT = cast<ulong>(1u) << irqSoftware
public const byte SR = 0x03Cu
public const byte SRI = 0x3Du
public const byte SRU = 0x3Eu
public const byte SRUI = 0x3Fu
public const byte STB = 0xA0u
public const byte STBI = 0xA1u
public const byte STBU = 0xA2u
public const byte STBUI = 0xA3u
public const byte STCO = 0xB4u
public const byte STCOI = 0xB5u
public const byte STHT = 0xB2u
public const byte STHTI = 0xB3u
public const byte STO = 0xACu
public const byte STOI = 0xADu
public const byte STOU = 0xAEu
public const byte STOUI = 0xAFu
public const byte STSF = 0xB0u
public const byte STSFI = 0xB1u
public const byte STT = 0xA8u
public const byte STTI = 0xA9u
public const byte STTU = 0xAAu
public const byte STTUI = 0xABu
public const byte STUNC = 0xB6u
public const byte STUNCI = 0xB7u
public const byte STW = 0xA4u
public const byte STWI = 0xA5u
public const byte STWU = 0xA6u
public const byte STWUI = 0xA7u
public const byte SUB = 0x24u
public const byte SUBI = 0x25u
public const byte SUBU = 0x26u
public const byte SUBUI = 0x27u
public const byte SWYM = 0xFDu
public const byte SYNC = 0xFCu
public const byte SYNCD = 0xB8u
public const byte SYNCDI = 0xB9u
public const byte SYNCID = 0xBCu
public const byte SYNCIDI = 0xBDu
public const ulong S_BIT = cast<ulong>(1u) << irqS
public const byte TDIF = 0xD4u
public const byte TDIFI = 0xD5u
public const byte TRAP = 0x00u
public const byte TRIP = 0xFFu
public const byte UNSAVE = 0xFBu
public const byte WDIF = 0xD2u
public const byte WDIFI = 0xD3u
public const ulong W_BIT = cast<ulong>(1u) << irqW
public const byte XOR = 0xC6u
public const byte XORI = 0xC7u
public const ulong X_BIT = cast<ulong>(1u) << irqX
public const byte ZSEV = 0x7Eu
public const byte ZSEVI = 0x7Fu
public const byte ZSN = 0x70u
public const byte ZSNI = 0x71u
public const byte ZSNN = 0x78u
public const byte ZSNNI = 0x79u
public const byte ZSNP = 0x7Cu
public const byte ZSNPI = 0x7Du
public const byte ZSNZ = 0x7Au
public const byte ZSNZI = 0x7Bu
public const byte ZSOD = 0x76u
public const byte ZSODI = 0x77u
public const byte ZSP = 0x74u
public const byte ZSPI = 0x75u
public const byte ZSZ = 0x72u
public const byte ZSZI = 0x73u
public const ulong addressSpaceMask = (cast<ulong>(1u) << numAddressSpaceBits) - 1u
public const ulong bootProcAddress = kernelBaseAddress + dataSegmentBaseAddress
public const ulong dataSegmentBaseAddress = 0x2000000000000000u
public const byte dataSegmentIndex = 1u
public const byte firstGlobalReg = 248u
public const ulong interruptVectorBaseAddress = kernelDataBaseAddress + dataSegmentBaseAddress + 512u
public const ulong interruptVectorEndAddress = interruptVectorBaseAddress + cast<ulong>(irqMax) * 8u
public const ulong invalidAddrSpaceMask = ~addressSpaceMask
public const ulong invalidAddress = cast
public const byte irqCOW = 37u
public const byte irqClock = 1u
public const byte irqDisk = 2u
public const int irqFirstSetBegin = 0
public const int irqFirstSetEnd = 4
public const byte irqK = 36u
public const byte irqKeyboard = 3u
public const byte irqMax = 64u
public const byte irqN = 35u
public const byte irqP = 39u
public const byte irqR = 32u
public const byte irqS = 38u
public const int irqSecondSetBegin = 32
public const int irqSecondSetEnd = 40
public const byte irqSoftware = 0u
public const byte irqW = 33u
public const byte irqX = 34u
public const ushort kernelAddressSpaceNumber = 0u
public const ulong kernelBaseAddress = 0x8000000000000000u
public const ulong kernelDataBaseAddress = kernelBaseAddress
public const ulong m2Mask = ~cast
public const ulong m4Mask = ~cast
public const ulong m8Mask = ~cast
public const ushort maxDigit = 511u
public const int maxTraps = 256
public const byte numAddressSpaceBits = 10u
public const ushort numDirectEntries = numSegmentPageEntriesInRootPage - 3u
public const ushort numDirectTranslationCaches = 16u
public const byte numProtectionBits = 3u
public const byte numPteBits = 9u
public const ushort numPtesInPage = 512u
public const ushort numSegmentPageEntriesInRootPage = numPtesInPage / numSegments
public const byte numSegments = 4u
public const int numTranslationCacheEntries = 4096
public const int numTranslationCacheIndexSegmentEntries = 1024
public const byte numVirtualAddressBits = 48u
public const byte pageOffsetBits = 12u
public const ulong pageOffsetMask = 0x0FFFu
public const ulong pageSize = 0x1000u
public const ulong poolSegmentBaseAddress = 0x4000000000000000u
public const byte poolSegmentIndex = 2u
public const ulong protectionMask = (cast<ulong>(1u) << numProtectionBits) - 1u
public const ushort pteOffsetMask = 0x1FFu
public const byte regAX = 255u
public const byte regBX = 254u
public const byte regCX = 253u
public const byte regDX = 252u
public const byte regEX = 251u
public const byte regFP = 249u
public const byte regIX = 248u
public const byte regSP = 250u
public const byte segmentNumberMask = 0x03u
public const byte segmentNumberShift = 61u
public const ulong stackSegmentBaseAddress = 0x6000000000000000u
public const byte stackSegmentIndex = 3u
public const ulong textSegmentBaseAddress = 0x0000000000000000u
public const byte textSegmentIndex = 0u
public const ulong translationCacheIndexMask = (4096u / numSegments) - 1u
public const ulong trapTableBaseAddress = interruptVectorEndAddress
public const ulong trapTableEndAddress = trapTableBaseAddress + cast<ulong>(maxTraps) * 8u
public const ulong trapXMask = 0x0000000000FF0000u
public const byte trapXShift = 16u
public const ulong trapYMask = 0x000000000000FF00u
public const byte trapYShift = 8u
public const ulong trapZMask = 0x00000000000000FFu
public const byte trapZShift = 0u
public const ulong virtualAddressBase = cast<ulong>(1u) << numVirtualAddressBits
public const ulong virtualAddressBaseMask = virtualAddressBase - 1u

Function Details

BitCount Function

public inline nothrow ulong BitCount(ulong x)

Definition
Line 5 of cmsxm/Bit.cm


DisableAllInterrupts Function

public nothrow void DisableAllInterrupts(Registers& regs)

Definition
Line 69 of cmsxm/Interrupt.cm


EnableAllInterrupts Function

public nothrow void EnableAllInterrupts(Registers& regs)

Definition
Line 75 of cmsxm/Interrupt.cm


ExtractDigitsFromPageNumber Function

public inline nothrow void ExtractDigitsFromPageNumber(ulong pageNum, ushort& digit0, ushort& digit1, ushort& digit2)

Definition
Line 239 of cmsxm/Memory.cm


FormatInstruction Function

public String<char> FormatInstruction(ulong address, byte opCode, byte x, byte y, byte z, Formatter& formatter)

Definition
Line 5169 of cmsxm/Instruction.cm


GetInterruptName Function

public nothrow String<char> GetInterruptName(int irq)

Definition
Line 134 of cmsxm/Interrupt.cm


GetMachine Function

public Machine& GetMachine()

Definition
Line 364 of cmsxm/Machine.cm


GetMaxStackSize Function

public nothrow ulong GetMaxStackSize(ushort addressSpaceNumber)

Definition
Line 96 of cmsxm/Memory.cm


GetOpCode Function

public nothrow int GetOpCode(const String<char>& opCodeName)

Definition
Line 918 of cmsxm/OpCode.cm


GetOpCodeName Function

public nothrow const String<char>& GetOpCodeName(byte opCode)

Definition
Line 913 of cmsxm/OpCode.cm


GetPageNumber Function

public inline nothrow ulong GetPageNumber(ulong address)

Definition
Line 170 of cmsxm/Memory.cm


GetProtectionStr Function

public String<char> GetProtectionStr(Protection protection)

Definition
Line 128 of cmsxm/Memory.cm


GetSegmentIndex Function

public inline nothrow byte GetSegmentIndex(ulong virtualAddress)

Definition
Line 224 of cmsxm/Memory.cm


GetSegmentPart Function

public inline nothrow ulong GetSegmentPart(ulong virtualAddress)

Definition
Line 229 of cmsxm/Memory.cm


GetUseTranslationCache Function

public nothrow bool GetUseTranslationCache()

Definition
Line 70 of cmsxm/Memory.cm


GrowStack Function

public nothrow bool GrowStack(ushort addressSpaceNumber)

Definition
Line 108 of cmsxm/Memory.cm


InvokePageFault Function

public nothrow void InvokePageFault(Registers& regs, ulong virtualAddress, Protection pageProtection, Protection access)

Definition
Line 96 of cmsxm/Interrupt.cm


IsProcessorInKernelMode Function

public nothrow bool IsProcessorInKernelMode(Registers& regs)

Definition
Line 63 of cmsxm/Interrupt.cm


IssuePageFault Function

public nothrow bool IssuePageFault()

Definition
Line 91 of cmsxm/Interrupt.cm


MakeDefaultPageProtection Function

public nothrow Protection MakeDefaultPageProtection(byte segmentIndex)

Definition
Line 212 of cmsxm/Memory.cm


MakeInterruptHandlerPtrAddress Function

public inline nothrow ulong MakeInterruptHandlerPtrAddress(byte irq)

Definition
Line 46 of cmsxm/Interrupt.cm


MakePageTableEntry Function

public inline nothrow ulong MakePageTableEntry(ulong pageAddress, ushort addressSpaceNumber, Protection protection)

Definition
Line 199 of cmsxm/Memory.cm


MakeSegmentOffset Function

public inline nothrow ushort MakeSegmentOffset(byte segmentIndex)

Definition
Line 234 of cmsxm/Memory.cm


MakeVirtualTranslationRegisterValue Function

public inline nothrow ulong MakeVirtualTranslationRegisterValue(ulong rootPageAddress, ushort addressSpaceNumber)

Definition
Line 176 of cmsxm/Memory.cm


PackProtection Function

public inline nothrow ulong PackProtection(Protection pageProtection, Protection protection)

Definition
Line 187 of cmsxm/Memory.cm


Panic Function

public void Panic(const String<char>& message)

Definition
Line 22 of cmsxm/Machine.cm


PanicThrows Function

public nothrow bool PanicThrows()

Definition
Line 17 of cmsxm/Machine.cm


PrintAddressValues Function

public nothrow void PrintAddressValues(bool get, ushort addressSpaceNumber, ulong pageAddress, int entryIndex, ulong sourcePageNumber)

Definition
Line 160 of cmsxm/Memory.cm


ReadMemoryByte Function

public nothrow byte ReadMemoryByte(ulong address)

Definition
Line 249 of cmsxm/Memory.cm


ReadMemoryUInt Function

public nothrow uint ReadMemoryUInt(ulong address)

Definition
Line 282 of cmsxm/Memory.cm


ReadMemoryULong Function

public nothrow ulong ReadMemoryULong(ulong address)

Definition
Line 306 of cmsxm/Memory.cm


ReadMemoryUShort Function

public nothrow ushort ReadMemoryUShort(ulong address)

Definition
Line 264 of cmsxm/Memory.cm


SaturatingSubtraction Function

public inline nothrow byte SaturatingSubtraction(byte x, byte y)

Definition
Line 20 of cmsxm/Bit.cm


SaturatingSubtraction Function

public inline nothrow uint SaturatingSubtraction(uint x, uint y)

Definition
Line 30 of cmsxm/Bit.cm


SaturatingSubtraction Function

public inline nothrow ulong SaturatingSubtraction(ulong x, ulong y)

Definition
Line 35 of cmsxm/Bit.cm


SaturatingSubtraction Function

public inline nothrow ushort SaturatingSubtraction(ushort x, ushort y)

Definition
Line 25 of cmsxm/Bit.cm


SetKernelGrowStackFunction Function

public nothrow void SetKernelGrowStackFunction(KernelGrowStackFunction kernelGrowStackFunction_)

Definition
Line 91 of cmsxm/Memory.cm


SetKernelMaxStackSizeFunction Function

public nothrow void SetKernelMaxStackSizeFunction(KernelMaxStackSizeFunction kernelMaxStackSizeFunction_)

Definition
Line 86 of cmsxm/Memory.cm


SetKernelShutdownFunc Function

public nothrow void SetKernelShutdownFunc(KernelShutdownFunc kernelShutdownFunc_)

Definition
Line 10 of cmsxm/Machine.cm


SetProcessorToKernelMode Function

public nothrow void SetProcessorToKernelMode(Registers& regs)

Definition
Line 51 of cmsxm/Interrupt.cm


SetProcessorToUserMode Function

public nothrow void SetProcessorToUserMode(Registers& regs)

Definition
Line 57 of cmsxm/Interrupt.cm


SetSecurityViolation Function

public nothrow void SetSecurityViolation(Registers& regs, ulong virtualAddress)

Definition
Line 81 of cmsxm/Interrupt.cm


SetStartUserTimeFunction Function

public nothrow void SetStartUserTimeFunction(StartUserTimeFunction fun)

Definition
Line 17 of cmsxm/Processor.cm


SetStopUserTimeFunction Function

public nothrow void SetStopUserTimeFunction(StopUserTimeFunction fun)

Definition
Line 22 of cmsxm/Processor.cm


SetUseTranslationCacheValue Function

public nothrow void SetUseTranslationCacheValue(bool use)

Definition
Line 75 of cmsxm/Memory.cm


UnpackPageTableEntry Function

public inline nothrow void UnpackPageTableEntry(ulong pte, ulong& pageAddress, ushort& addressSpaceNumber, Protection& protection)

Definition
Line 205 of cmsxm/Memory.cm


UnpackProtection Function

public inline nothrow void UnpackProtection(ulong packedValue, Protection& pageProtection, Protection& protection)

Definition
Line 192 of cmsxm/Memory.cm


UnpackVirtualTranslationRegisterValue Function

public inline nothrow void UnpackVirtualTranslationRegisterValue(ulong virtualTranslationRegisterValue, ulong& rootPageAddress, ushort& addressSpaceNumber)

Definition
Line 181 of cmsxm/Memory.cm


UseTranslationCache Function

public inline nothrow bool UseTranslationCache()

Definition
Line 65 of cmsxm/Memory.cm


WriteMemoryByte Function

public nothrow void WriteMemoryByte(ulong address, byte b)

Definition
Line 255 of cmsxm/Memory.cm


WriteMemoryUInt Function

public nothrow void WriteMemoryUInt(ulong address, uint u)

Definition
Line 293 of cmsxm/Memory.cm


WriteMemoryULong Function

public nothrow void WriteMemoryULong(ulong address, ulong u)

Definition
Line 321 of cmsxm/Memory.cm


WriteMemoryUShort Function

public nothrow void WriteMemoryUShort(ulong address, ushort s)

Definition
Line 273 of cmsxm/Memory.cm