\hypertarget{namespaceComSquare_1_1CPU}{}\doxysection{Com\+Square\+::C\+PU Namespace Reference} \label{namespaceComSquare_1_1CPU}\index{ComSquare::CPU@{ComSquare::CPU}} \doxysubsection*{Classes} \begin{DoxyCompactItemize} \item class \mbox{\hyperlink{classComSquare_1_1CPU_1_1CPU}{C\+PU}} \begin{DoxyCompactList}\small\item\em The main \mbox{\hyperlink{classComSquare_1_1CPU_1_1CPU}{C\+PU}}. \end{DoxyCompactList}\item class \mbox{\hyperlink{classComSquare_1_1CPU_1_1DMA}{D\+MA}} \begin{DoxyCompactList}\small\item\em Class handling all D\+M\+A/\+H\+D\+MA transfers (Direct \mbox{\hyperlink{namespaceComSquare_1_1Memory}{Memory}} Access or H-\/\+Blank Direct \mbox{\hyperlink{namespaceComSquare_1_1Memory}{Memory}} Access) \end{DoxyCompactList}\item struct \mbox{\hyperlink{structComSquare_1_1CPU_1_1Instruction}{Instruction}} \begin{DoxyCompactList}\small\item\em Struct containing basic information about instructions. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structComSquare_1_1CPU_1_1InternalRegisters}{Internal\+Registers}} \begin{DoxyCompactList}\small\item\em Struct containing internal registers of the \mbox{\hyperlink{classComSquare_1_1CPU_1_1CPU}{C\+PU}}. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structComSquare_1_1CPU_1_1Registers}{Registers}} \begin{DoxyCompactList}\small\item\em Struct containing registers for the main \mbox{\hyperlink{classComSquare_1_1CPU_1_1CPU}{C\+PU}}. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection*{Enumerations} \begin{DoxyCompactItemize} \item enum \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457}{Addressing\+Mode}} \{ \newline \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457acd8fcc4496326cbe0dd18211ebb0dc47}{Implied}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a7bcef71a06e2df855e7aca1012fa86f4}{Immediate8bits}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ab8f66f879c3b026441bcaa7aca38e029}{Immediate16bits}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a58510fab517f8812207224914c0cfaa7}{Immediate\+ForA}}, \newline \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457aca92aedeca4eff5896004725520abf36}{Immediate\+ForX}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a80a8525aa014121ce3a7cb079a5d5b1d}{Absolute}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ad925a12fd389c34063e9db6b34c6b83a}{Absolute\+Long}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a8aaf1565c9df8c1fe873b82657b3ae9b}{Direct\+Page}}, \newline \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a14efc00593674809516223db3bd74dfc}{Direct\+Page\+Indirect}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ad308602f5c0c78247a560f1a7e7a23ca}{Direct\+Page\+Indirect\+Long}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a1859f65cdd1465fe9901eabfacd0df20}{Absolute\+Indexed\+ByX}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a351eb0c6bd22dae73ea79a956c9f6be4}{Absolute\+Indexed\+By\+X\+Long}}, \newline \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457af9bfd672a1688caab5b9ed84d4ce747a}{Absolute\+Indexed\+ByY}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a05ba97647c1f248806a111ab9019c257}{Direct\+Page\+Indexed\+ByX}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a97565e3c007a203eecce1329fe87c92b}{Direct\+Page\+Indexed\+ByY}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ae18f65162857240edac585be873333f7}{Direct\+Page\+Indirect\+Indexed\+ByX}}, \newline \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457af6b42909228e082ded31f267a47b578b}{Direct\+Page\+Indirect\+Indexed\+ByY}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a2cfc23e3909ccab2e4f7381c1f6f9c56}{Direct\+Page\+Indirect\+Indexed\+By\+Y\+Long}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a793bc02c69f2996acd85c0a728e96ee1}{Stack\+Relative}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a87c0b6f5865703960009d46d8de63c16}{Stack\+Relative\+Indirect\+Indexed\+ByY}}, \newline \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a50d330f16cc2ba70786341a2cc769fc1}{Absolute\+Indirect}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a7329b72d0c451087fd32b0e9bd78c277}{Absolute\+Indirect\+Indexed\+ByX}}, \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a73e46c3309b051cec64ca56bdedba302}{Absolute\+Indirect\+Long}} \} \begin{DoxyCompactList}\small\item\em Different addressing modes that instructions can use for the main C\+PU. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Enumeration Type Documentation} \mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457}} \index{ComSquare::CPU@{ComSquare::CPU}!AddressingMode@{AddressingMode}} \index{AddressingMode@{AddressingMode}!ComSquare::CPU@{ComSquare::CPU}} \doxysubsubsection{\texorpdfstring{AddressingMode}{AddressingMode}} {\footnotesize\ttfamily enum \mbox{\hyperlink{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457}{Com\+Square\+::\+C\+P\+U\+::\+Addressing\+Mode}}} Different addressing modes that instructions can use for the main \mbox{\hyperlink{classComSquare_1_1CPU_1_1CPU}{C\+PU}}. \begin{DoxyEnumFields}{Enumerator} \raisebox{\heightof{T}}[0pt][0pt]{\index{Implied@{Implied}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!Implied@{Implied}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457acd8fcc4496326cbe0dd18211ebb0dc47}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457acd8fcc4496326cbe0dd18211ebb0dc47}} Implied&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{Immediate8bits@{Immediate8bits}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!Immediate8bits@{Immediate8bits}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a7bcef71a06e2df855e7aca1012fa86f4}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a7bcef71a06e2df855e7aca1012fa86f4}} Immediate8bits&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{Immediate16bits@{Immediate16bits}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!Immediate16bits@{Immediate16bits}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ab8f66f879c3b026441bcaa7aca38e029}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ab8f66f879c3b026441bcaa7aca38e029}} Immediate16bits&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{ImmediateForA@{ImmediateForA}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!ImmediateForA@{ImmediateForA}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a58510fab517f8812207224914c0cfaa7}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a58510fab517f8812207224914c0cfaa7}} Immediate\+ForA&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{ImmediateForX@{ImmediateForX}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!ImmediateForX@{ImmediateForX}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457aca92aedeca4eff5896004725520abf36}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457aca92aedeca4eff5896004725520abf36}} Immediate\+ForX&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{Absolute@{Absolute}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!Absolute@{Absolute}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a80a8525aa014121ce3a7cb079a5d5b1d}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a80a8525aa014121ce3a7cb079a5d5b1d}} Absolute&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{AbsoluteLong@{AbsoluteLong}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!AbsoluteLong@{AbsoluteLong}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ad925a12fd389c34063e9db6b34c6b83a}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ad925a12fd389c34063e9db6b34c6b83a}} Absolute\+Long&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{DirectPage@{DirectPage}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!DirectPage@{DirectPage}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a8aaf1565c9df8c1fe873b82657b3ae9b}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a8aaf1565c9df8c1fe873b82657b3ae9b}} Direct\+Page&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{DirectPageIndirect@{DirectPageIndirect}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!DirectPageIndirect@{DirectPageIndirect}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a14efc00593674809516223db3bd74dfc}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a14efc00593674809516223db3bd74dfc}} Direct\+Page\+Indirect&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{DirectPageIndirectLong@{DirectPageIndirectLong}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!DirectPageIndirectLong@{DirectPageIndirectLong}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ad308602f5c0c78247a560f1a7e7a23ca}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ad308602f5c0c78247a560f1a7e7a23ca}} Direct\+Page\+Indirect\+Long&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{AbsoluteIndexedByX@{AbsoluteIndexedByX}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!AbsoluteIndexedByX@{AbsoluteIndexedByX}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a1859f65cdd1465fe9901eabfacd0df20}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a1859f65cdd1465fe9901eabfacd0df20}} Absolute\+Indexed\+ByX&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{AbsoluteIndexedByXLong@{AbsoluteIndexedByXLong}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!AbsoluteIndexedByXLong@{AbsoluteIndexedByXLong}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a351eb0c6bd22dae73ea79a956c9f6be4}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a351eb0c6bd22dae73ea79a956c9f6be4}} Absolute\+Indexed\+By\+X\+Long&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{AbsoluteIndexedByY@{AbsoluteIndexedByY}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!AbsoluteIndexedByY@{AbsoluteIndexedByY}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457af9bfd672a1688caab5b9ed84d4ce747a}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457af9bfd672a1688caab5b9ed84d4ce747a}} Absolute\+Indexed\+ByY&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{DirectPageIndexedByX@{DirectPageIndexedByX}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!DirectPageIndexedByX@{DirectPageIndexedByX}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a05ba97647c1f248806a111ab9019c257}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a05ba97647c1f248806a111ab9019c257}} Direct\+Page\+Indexed\+ByX&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{DirectPageIndexedByY@{DirectPageIndexedByY}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!DirectPageIndexedByY@{DirectPageIndexedByY}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a97565e3c007a203eecce1329fe87c92b}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a97565e3c007a203eecce1329fe87c92b}} Direct\+Page\+Indexed\+ByY&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{DirectPageIndirectIndexedByX@{DirectPageIndirectIndexedByX}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!DirectPageIndirectIndexedByX@{DirectPageIndirectIndexedByX}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ae18f65162857240edac585be873333f7}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457ae18f65162857240edac585be873333f7}} Direct\+Page\+Indirect\+Indexed\+ByX&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{DirectPageIndirectIndexedByY@{DirectPageIndirectIndexedByY}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!DirectPageIndirectIndexedByY@{DirectPageIndirectIndexedByY}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457af6b42909228e082ded31f267a47b578b}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457af6b42909228e082ded31f267a47b578b}} Direct\+Page\+Indirect\+Indexed\+ByY&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{DirectPageIndirectIndexedByYLong@{DirectPageIndirectIndexedByYLong}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!DirectPageIndirectIndexedByYLong@{DirectPageIndirectIndexedByYLong}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a2cfc23e3909ccab2e4f7381c1f6f9c56}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a2cfc23e3909ccab2e4f7381c1f6f9c56}} Direct\+Page\+Indirect\+Indexed\+By\+Y\+Long&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{StackRelative@{StackRelative}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!StackRelative@{StackRelative}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a793bc02c69f2996acd85c0a728e96ee1}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a793bc02c69f2996acd85c0a728e96ee1}} Stack\+Relative&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{StackRelativeIndirectIndexedByY@{StackRelativeIndirectIndexedByY}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!StackRelativeIndirectIndexedByY@{StackRelativeIndirectIndexedByY}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a87c0b6f5865703960009d46d8de63c16}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a87c0b6f5865703960009d46d8de63c16}} Stack\+Relative\+Indirect\+Indexed\+ByY&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{AbsoluteIndirect@{AbsoluteIndirect}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!AbsoluteIndirect@{AbsoluteIndirect}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a50d330f16cc2ba70786341a2cc769fc1}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a50d330f16cc2ba70786341a2cc769fc1}} Absolute\+Indirect&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{AbsoluteIndirectIndexedByX@{AbsoluteIndirectIndexedByX}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!AbsoluteIndirectIndexedByX@{AbsoluteIndirectIndexedByX}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a7329b72d0c451087fd32b0e9bd78c277}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a7329b72d0c451087fd32b0e9bd78c277}} Absolute\+Indirect\+Indexed\+ByX&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{AbsoluteIndirectLong@{AbsoluteIndirectLong}!ComSquare::CPU@{ComSquare::CPU}}\index{ComSquare::CPU@{ComSquare::CPU}!AbsoluteIndirectLong@{AbsoluteIndirectLong}}}\mbox{\Hypertarget{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a73e46c3309b051cec64ca56bdedba302}\label{namespaceComSquare_1_1CPU_a2c9982ab8e7f411dc611a2f3f5131457a73e46c3309b051cec64ca56bdedba302}} Absolute\+Indirect\+Long&\\ \hline \end{DoxyEnumFields}