<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>doc_inner/doxygen/latex/exec_8c_source.tex</title>
<meta name='robots' content='noindex,nofollow' />
<meta name='generator' content='GLOBAL-6.6.14' />
<meta http-equiv='Content-Style-Type' content='text/css' />
<link rel='stylesheet' type='text/css' href='../style.css' />
</head>
<body>
<a id='TOP' name='TOP'></a><h2 class='header'><a href='../mains.html'>root</a>/<a href='../files/2920.html'>doc_inner</a>/<a href='../files/2921.html'>doxygen</a>/<a href='../files/2922.html'>latex</a>/exec_8c_source.tex</h2>
<em class='comment'>/* [<][>][^][v][top]<a href='#BOTTOM'>[bottom]</a><a href='../mains.html'>[index]</a><a href='../help.html'>[help]</a> */</em>
<hr />
<pre>
<a id='L1' name='L1'></a>\doxysection{exec.\+c}
<a id='L2' name='L2'></a>\label{exec_8c_source}\index{src/exec.c@{src/exec.c}}
<a id='L3' name='L3'></a>\textbf{ Go to the documentation of this file.}
<a id='L4' name='L4'></a>\begin{DoxyCode}{0}
<a id='L5' name='L5'></a>\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#include\ "{}exec.h"{}}}
<a id='L6' name='L6'></a>\DoxyCodeLine{00002\ }
<a id='L7' name='L7'></a>\DoxyCodeLine{00010\ \textcolor{keywordtype}{char}\ *pr2str(WORD\ pr);}
<a id='L8' name='L8'></a>\DoxyCodeLine{00011\ }
<a id='L9' name='L9'></a>\DoxyCodeLine{00016\ \textcolor{keywordtype}{void}\ svcin();}
<a id='L10' name='L10'></a>\DoxyCodeLine{00017\ }
<a id='L11' name='L11'></a>\DoxyCodeLine{00022\ \textcolor{keywordtype}{void}\ svcout();}
<a id='L12' name='L12'></a>\DoxyCodeLine{00023\ }
<a id='L13' name='L13'></a>\DoxyCodeLine{00029\ \textcolor{keywordtype}{void}\ setfr(WORD\ adr);}
<a id='L14' name='L14'></a>\DoxyCodeLine{00030\ }
<a id='L15' name='L15'></a>\DoxyCodeLine{00038\ WORD\ get\_r\_r1(WORD\ oprx);}
<a id='L16' name='L16'></a>\DoxyCodeLine{00039\ }
<a id='L17' name='L17'></a>\DoxyCodeLine{00047\ WORD\ get\_x\_r2(WORD\ oprx);}
<a id='L18' name='L18'></a>\DoxyCodeLine{00048\ }
<a id='L19' name='L19'></a>\DoxyCodeLine{00057\ WORD\ get\_adr\_x(WORD\ adr,\ WORD\ oprx);}
<a id='L20' name='L20'></a>\DoxyCodeLine{00058\ }
<a id='L21' name='L21'></a>\DoxyCodeLine{00067\ WORD\ get\_val\_adr\_x(WORD\ adr,\ WORD\ oprx);}
<a id='L22' name='L22'></a>\DoxyCodeLine{00068\ }
<a id='L23' name='L23'></a>\DoxyCodeLine{00072\ \textcolor{keyword}{static}\ CERR\ cerr\_exec[]\ =\ \{}
<a id='L24' name='L24'></a>\DoxyCodeLine{00073\ \ \ \ \ \{\ 201,\ \textcolor{stringliteral}{"{}Program\ Register\ (PR)\ -\/\ memory\ overflow"{}}\ \},}
<a id='L25' name='L25'></a>\DoxyCodeLine{00074\ \ \ \ \ \{\ 202,\ \textcolor{stringliteral}{"{}Stack\ Pointer\ (SP)\ -\/\ stack\ overflow"{}}\ \},}
<a id='L26' name='L26'></a>\DoxyCodeLine{00075\ \ \ \ \ \{\ 203,\ \textcolor{stringliteral}{"{}Stack\ Pointer\ (SP)\ -\/\ stack\ underflow"{}}\ \},}
<a id='L27' name='L27'></a>\DoxyCodeLine{00076\ \ \ \ \ \{\ 204,\ \textcolor{stringliteral}{"{}OP\ in\ word\ \#1\ -\/\ not\ command\ code"{}}\ \},}
<a id='L28' name='L28'></a>\DoxyCodeLine{00077\ \ \ \ \ \{\ 205,\ \textcolor{stringliteral}{"{}r/r1\ in\ word\ \#1\ -\/\ not\ GR"{}}\ \},}
<a id='L29' name='L29'></a>\DoxyCodeLine{00078\ \ \ \ \ \{\ 206,\ \textcolor{stringliteral}{"{}x/r2\ in\ word\ \#1\ -\/\ not\ GR"{}}\ \},}
<a id='L30' name='L30'></a>\DoxyCodeLine{00079\ \ \ \ \ \{\ 207,\ \textcolor{stringliteral}{"{}address\ in\ word\ \#2\ -\/\ out\ of\ memory"{}}\ \},}
<a id='L31' name='L31'></a>\DoxyCodeLine{00080\ \ \ \ \ \{\ 208,\ \textcolor{stringliteral}{"{}SVC\ input\ -\/\ memory\ overflow"{}}\ \},}
<a id='L32' name='L32'></a>\DoxyCodeLine{00081\ \ \ \ \ \{\ 209,\ \textcolor{stringliteral}{"{}SVC\ output\ -\/\ memory\ overflow"{}}\ \},}
<a id='L33' name='L33'></a>\DoxyCodeLine{00082\ \};}
<a id='L34' name='L34'></a>\DoxyCodeLine{00083\ }
<a id='L35' name='L35'></a>\DoxyCodeLine{00087\ EXECMODE\ execmode\ =\ \{\textcolor{keyword}{false},\ \textcolor{keyword}{false},\ \textcolor{keyword}{false},\ 0,\ 0xFFFF,\ \textcolor{keyword}{false},\ \textcolor{keyword}{false}\};}
<a id='L36' name='L36'></a>\DoxyCodeLine{00088\ }
<a id='L37' name='L37'></a>\DoxyCodeLine{00089\ \textcolor{keywordtype}{char}\ *pr2str(WORD\ pr)}
<a id='L38' name='L38'></a>\DoxyCodeLine{00090\ \{}
<a id='L39' name='L39'></a>\DoxyCodeLine{00091\ \ \ \ \ \textcolor{keywordtype}{char}\ *str\ =\ malloc\_chk(CERRSTRSIZE\ +\ 1,\ \textcolor{stringliteral}{"{}pr2str.pr"{}});}
<a id='L40' name='L40'></a>\DoxyCodeLine{00092\ }
<a id='L41' name='L41'></a>\DoxyCodeLine{00093\ \ \ \ \ sprintf(str,\ \textcolor{stringliteral}{"{}PR:\#\%04X"{}},\ pr);}
<a id='L42' name='L42'></a>\DoxyCodeLine{00094\ \ \ \ \ \textcolor{keywordflow}{return}\ str;}
<a id='L43' name='L43'></a>\DoxyCodeLine{00095\ \}}
<a id='L44' name='L44'></a>\DoxyCodeLine{00096\ }
<a id='L45' name='L45'></a>\DoxyCodeLine{00097\ \textcolor{keywordtype}{void}\ svcin()}
<a id='L46' name='L46'></a>\DoxyCodeLine{00098\ \{}
<a id='L47' name='L47'></a>\DoxyCodeLine{00099\ \ \ \ \ \textcolor{keywordtype}{int}\ i;}
<a id='L48' name='L48'></a>\DoxyCodeLine{00100\ \ \ \ \ \textcolor{keywordtype}{char}\ *buf\ =\ malloc\_chk(INSIZE\ +\ 1,\ \textcolor{stringliteral}{"{}svcin.buf"{}});}
<a id='L49' name='L49'></a>\DoxyCodeLine{00101\ }
<a id='L50' name='L50'></a>\DoxyCodeLine{00102\ \ \ \ \ \textcolor{keywordflow}{if}(fgets(buf,\ INSIZE,\ stdin)\ ==\ NULL)\ \{}
<a id='L51' name='L51'></a>\DoxyCodeLine{00103\ \ \ \ \ \ \ \ \ sys-\/>memory[sys-\/>cpu-\/>gr[1]]\ =\ sys-\/>memory[sys-\/>cpu-\/>gr[2]]\ =\ 0x0;}
<a id='L52' name='L52'></a>\DoxyCodeLine{00104\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};}
<a id='L53' name='L53'></a>\DoxyCodeLine{00105\ \ \ \ \ \}}
<a id='L54' name='L54'></a>\DoxyCodeLine{00106\ \ \ \ \ \textcolor{keywordflow}{for}(i\ =\ 0;\ i\ <\ INSIZE;\ i++)\ \{}
<a id='L55' name='L55'></a>\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(!buf[i]\ ||\ buf[i]\ ==\ \textcolor{charliteral}{'\(\backslash\)n'})\ \{}
<a id='L56' name='L56'></a>\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ \ \ \ \ -\/-\/i;}
<a id='L57' name='L57'></a>\DoxyCodeLine{00109\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L58' name='L58'></a>\DoxyCodeLine{00110\ \ \ \ \ \ \ \ \ \}}
<a id='L59' name='L59'></a>\DoxyCodeLine{00111\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[1]\ +\ i\ >\ execptr-\/>end)\ \{}
<a id='L60' name='L60'></a>\DoxyCodeLine{00112\ \ \ \ \ \ \ \ \ \ \ \ \ setcerr(208,\ \textcolor{stringliteral}{"{}"{}});\ \ \ \ \textcolor{comment}{/*\ SVC\ input\ -\/\ memory\ overflow\ */}}
<a id='L61' name='L61'></a>\DoxyCodeLine{00113\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L62' name='L62'></a>\DoxyCodeLine{00114\ \ \ \ \ \ \ \ \ \}}
<a id='L63' name='L63'></a>\DoxyCodeLine{00115\ \ \ \ \ \ \ \ \ sys-\/>memory[sys-\/>cpu-\/>gr[1]\ +\ i]\ =\ buf[i];}
<a id='L64' name='L64'></a>\DoxyCodeLine{00116\ \ \ \ \ \}}
<a id='L65' name='L65'></a>\DoxyCodeLine{00117\ \ \ \ \ sys-\/>memory[sys-\/>cpu-\/>gr[2]]\ =\ i\ +\ 1;}
<a id='L66' name='L66'></a>\DoxyCodeLine{00118\ \ \ \ \ FREE(buf);}
<a id='L67' name='L67'></a>\DoxyCodeLine{00119\ \}}
<a id='L68' name='L68'></a>\DoxyCodeLine{00120\ }
<a id='L69' name='L69'></a>\DoxyCodeLine{00121\ \textcolor{keywordtype}{void}\ svcout()}
<a id='L70' name='L70'></a>\DoxyCodeLine{00122\ \{}
<a id='L71' name='L71'></a>\DoxyCodeLine{00123\ \ \ \ \ \textcolor{keywordtype}{int}\ i;}
<a id='L72' name='L72'></a>\DoxyCodeLine{00124\ \ \ \ \ WORD\ w;}
<a id='L73' name='L73'></a>\DoxyCodeLine{00125\ }
<a id='L74' name='L74'></a>\DoxyCodeLine{00126\ \ \ \ \ \textcolor{keywordflow}{for}(i\ =\ 0;\ i\ <\ sys-\/>memory[sys-\/>cpu-\/>gr[2]];\ i++)\ \{}
<a id='L75' name='L75'></a>\DoxyCodeLine{00127\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[1]\ +\ i\ >\ execptr-\/>end)\ \{}
<a id='L76' name='L76'></a>\DoxyCodeLine{00128\ \ \ \ \ \ \ \ \ \ \ \ \ setcerr(209,\ \textcolor{stringliteral}{"{}"{}});\ \ \ \ \textcolor{comment}{/*\ SVC\ output\ -\/\ memory\ overflow\ */}}
<a id='L77' name='L77'></a>\DoxyCodeLine{00129\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};}
<a id='L78' name='L78'></a>\DoxyCodeLine{00130\ \ \ \ \ \ \ \ \ \}}
<a id='L79' name='L79'></a>\DoxyCodeLine{00131\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ 「JIS\ X\ 0201ラテン文字・片仮名用8ビット符号で規定する文字の符号表」}}
<a id='L80' name='L80'></a>\DoxyCodeLine{00132\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ に記載された文字と、改行(CR)/タブを表示\ */}}
<a id='L81' name='L81'></a>\DoxyCodeLine{00133\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ それ以外の文字は、「.」で表す\ */}}
<a id='L82' name='L82'></a>\DoxyCodeLine{00134\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(((w\ =\ sys-\/>memory[sys-\/>cpu-\/>gr[1]+i])\ >=\ 0x20\ \&\&\ w\ <=\ 0x7E)\ ||\ \ \ \ \textcolor{comment}{/*\ JIS\ X\ 0201ラテン文字\ */}}
<a id='L83' name='L83'></a>\DoxyCodeLine{00135\ \ \ \ \ \ \ \ \ \ \ \ (w\ >=\ 0xA0\ \&\&\ w\ <=\ 0xFE)\ ||\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ JIS\ X\ 0201片仮名用8ビット符号\ */}}
<a id='L84' name='L84'></a>\DoxyCodeLine{00136\ \ \ \ \ \ \ \ \ \ \ \ w\ ==\ 0xA\ ||\ w\ ==\ \textcolor{charliteral}{'\(\backslash\)t'})}
<a id='L85' name='L85'></a>\DoxyCodeLine{00137\ \ \ \ \ \ \ \ \ \{}
<a id='L86' name='L86'></a>\DoxyCodeLine{00138\ \ \ \ \ \ \ \ \ \ \ \ \ putchar((\textcolor{keywordtype}{char})w);}
<a id='L87' name='L87'></a>\DoxyCodeLine{00139\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
<a id='L88' name='L88'></a>\DoxyCodeLine{00140\ \ \ \ \ \ \ \ \ \ \ \ \ putchar(\textcolor{charliteral}{'.'});}
<a id='L89' name='L89'></a>\DoxyCodeLine{00141\ \ \ \ \ \ \ \ \ \}}
<a id='L90' name='L90'></a>\DoxyCodeLine{00142\ \ \ \ \ \}}
<a id='L91' name='L91'></a>\DoxyCodeLine{00143\ \}}
<a id='L92' name='L92'></a>\DoxyCodeLine{00144\ }
<a id='L93' name='L93'></a>\DoxyCodeLine{00145\ \textcolor{keywordtype}{void}\ setfr(WORD\ adr)}
<a id='L94' name='L94'></a>\DoxyCodeLine{00146\ \{}
<a id='L95' name='L95'></a>\DoxyCodeLine{00147\ \ \ \ \ sys-\/>cpu-\/>fr\ =\ 0x0;}
<a id='L96' name='L96'></a>\DoxyCodeLine{00148\ \ \ \ \ \textcolor{comment}{/*\ 第15ビットが1のとき、SFは1\ */}}
<a id='L97' name='L97'></a>\DoxyCodeLine{00149\ \ \ \ \ \textcolor{keywordflow}{if}((adr\ \&\ 0x8000)\ ==\ 0x8000)\ \{}
<a id='L98' name='L98'></a>\DoxyCodeLine{00150\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ SF;}
<a id='L99' name='L99'></a>\DoxyCodeLine{00151\ \ \ \ \ \}}
<a id='L100' name='L100'></a>\DoxyCodeLine{00152\ \ \ \ \ \textcolor{comment}{/*\ 演算結果が0のとき、ZFは1\ */}}
<a id='L101' name='L101'></a>\DoxyCodeLine{00153\ \ \ \ \ \textcolor{keywordflow}{if}(adr\ ==\ 0x0)\ \{}
<a id='L102' name='L102'></a>\DoxyCodeLine{00154\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ ZF;}
<a id='L103' name='L103'></a>\DoxyCodeLine{00155\ \ \ \ \ \}}
<a id='L104' name='L104'></a>\DoxyCodeLine{00156\ \}}
<a id='L105' name='L105'></a>\DoxyCodeLine{00157\ }
<a id='L106' name='L106'></a>\DoxyCodeLine{00158\ WORD\ get\_r\_r1(WORD\ oprx)}
<a id='L107' name='L107'></a>\DoxyCodeLine{00159\ \{}
<a id='L108' name='L108'></a>\DoxyCodeLine{00160\ \ \ \ \ WORD\ r\ =\ 0;}
<a id='L109' name='L109'></a>\DoxyCodeLine{00161\ \ \ \ \ \textcolor{keywordtype}{char}\ *s\ =\ NULL;}
<a id='L110' name='L110'></a>\DoxyCodeLine{00162\ }
<a id='L111' name='L111'></a>\DoxyCodeLine{00163\ \ \ \ \ \textcolor{keywordflow}{if}((r\ =\ ((oprx\ \&\ 0x00F0)\ >>4))\ >\ GRSIZE\ -\/\ 1)\ \{}
<a id='L112' name='L112'></a>\DoxyCodeLine{00164\ \ \ \ \ \ \ \ \ setcerr(205,\ s\ =\ pr2str(sys-\/>cpu-\/>pr));\ \ \ \ \textcolor{comment}{/*\ r/r1\ in\ word\ \#1\ -\/\ not\ GR\ */}}
<a id='L113' name='L113'></a>\DoxyCodeLine{00165\ \ \ \ \ \ \ \ \ FREE(s);}
<a id='L114' name='L114'></a>\DoxyCodeLine{00166\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0x0;}
<a id='L115' name='L115'></a>\DoxyCodeLine{00167\ \ \ \ \ \}}
<a id='L116' name='L116'></a>\DoxyCodeLine{00168\ \ \ \ \ \textcolor{keywordflow}{return}\ r;}
<a id='L117' name='L117'></a>\DoxyCodeLine{00169\ \}}
<a id='L118' name='L118'></a>\DoxyCodeLine{00170\ }
<a id='L119' name='L119'></a>\DoxyCodeLine{00171\ WORD\ get\_x\_r2(WORD\ oprx)}
<a id='L120' name='L120'></a>\DoxyCodeLine{00172\ \{}
<a id='L121' name='L121'></a>\DoxyCodeLine{00173\ \ \ \ \ WORD\ x\ =\ 0;}
<a id='L122' name='L122'></a>\DoxyCodeLine{00174\ \ \ \ \ \textcolor{keywordtype}{char}\ *s\ =\ NULL;}
<a id='L123' name='L123'></a>\DoxyCodeLine{00175\ }
<a id='L124' name='L124'></a>\DoxyCodeLine{00176\ \ \ \ \ \textcolor{keywordflow}{if}((x\ =\ (oprx\ \&\ 0x000F))\ >\ GRSIZE\ -\/\ 1)\ \{}
<a id='L125' name='L125'></a>\DoxyCodeLine{00177\ \ \ \ \ \ \ \ \ setcerr(206,\ s\ =\ pr2str(sys-\/>cpu-\/>pr));\ \ \ \ \textcolor{comment}{/*\ r/r1\ in\ word\ \#1\ -\/\ not\ GR\ */}}
<a id='L126' name='L126'></a>\DoxyCodeLine{00178\ \ \ \ \ \ \ \ \ FREE(s);}
<a id='L127' name='L127'></a>\DoxyCodeLine{00179\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0x0;}
<a id='L128' name='L128'></a>\DoxyCodeLine{00180\ \ \ \ \ \}}
<a id='L129' name='L129'></a>\DoxyCodeLine{00181\ \ \ \ \ \textcolor{keywordflow}{return}\ x;}
<a id='L130' name='L130'></a>\DoxyCodeLine{00182\ \}}
<a id='L131' name='L131'></a>\DoxyCodeLine{00183\ }
<a id='L132' name='L132'></a>\DoxyCodeLine{00184\ WORD\ get\_adr\_x(WORD\ adr,\ WORD\ oprx)}
<a id='L133' name='L133'></a>\DoxyCodeLine{00185\ \{}
<a id='L134' name='L134'></a>\DoxyCodeLine{00186\ \ \ \ \ WORD\ a\ =\ adr;}
<a id='L135' name='L135'></a>\DoxyCodeLine{00187\ \ \ \ \ WORD\ x\ =\ get\_x\_r2(oprx);}
<a id='L136' name='L136'></a>\DoxyCodeLine{00188\ }
<a id='L137' name='L137'></a>\DoxyCodeLine{00189\ \ \ \ \ \textcolor{keywordflow}{if}(x\ >\ 0)\ \{}
<a id='L138' name='L138'></a>\DoxyCodeLine{00190\ \ \ \ \ \ \ \ \ a\ +=\ sys-\/>cpu-\/>gr[x];}
<a id='L139' name='L139'></a>\DoxyCodeLine{00191\ \ \ \ \ \}}
<a id='L140' name='L140'></a>\DoxyCodeLine{00192\ \ \ \ \ \textcolor{keywordflow}{return}\ a;}
<a id='L141' name='L141'></a>\DoxyCodeLine{00193\ \}}
<a id='L142' name='L142'></a>\DoxyCodeLine{00194\ }
<a id='L143' name='L143'></a>\DoxyCodeLine{00195\ WORD\ get\_val\_adr\_x(WORD\ adr,\ WORD\ oprx)}
<a id='L144' name='L144'></a>\DoxyCodeLine{00196\ \{}
<a id='L145' name='L145'></a>\DoxyCodeLine{00197\ \ \ \ \ WORD\ a\ =\ 0;}
<a id='L146' name='L146'></a>\DoxyCodeLine{00198\ \ \ \ \ \textcolor{keywordtype}{char}\ *s\ =\ NULL;}
<a id='L147' name='L147'></a>\DoxyCodeLine{00199\ }
<a id='L148' name='L148'></a>\DoxyCodeLine{00200\ \ \ \ \ \textcolor{keywordflow}{if}((a\ =\ get\_adr\_x(adr,\ oprx))\ >=\ sys-\/>memsize)\ \{}
<a id='L149' name='L149'></a>\DoxyCodeLine{00201\ \ \ \ \ \ \ \ \ setcerr(207,\ s\ =\ pr2str(sys-\/>cpu-\/>pr\ +\ 1));\ \ \ \ \textcolor{comment}{/*\ address\ in\ word\ \#2\ -\/\ out\ of\ memory\ */}}
<a id='L150' name='L150'></a>\DoxyCodeLine{00202\ \ \ \ \ \ \ \ \ FREE(s);}
<a id='L151' name='L151'></a>\DoxyCodeLine{00203\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0x0;}
<a id='L152' name='L152'></a>\DoxyCodeLine{00204\ \ \ \ \ \}}
<a id='L153' name='L153'></a>\DoxyCodeLine{00205\ \ \ \ \ \textcolor{keywordflow}{return}\ sys-\/>memory[a];}
<a id='L154' name='L154'></a>\DoxyCodeLine{00206\ \}}
<a id='L155' name='L155'></a>\DoxyCodeLine{00207\ }
<a id='L156' name='L156'></a>\DoxyCodeLine{00208\ \textcolor{comment}{/*\ exec.hで定義された関数群\ */}}
<a id='L157' name='L157'></a>\DoxyCodeLine{00209\ \textcolor{keywordtype}{void}\ addcerrlist\_exec()}
<a id='L158' name='L158'></a>\DoxyCodeLine{00210\ \{}
<a id='L159' name='L159'></a>\DoxyCodeLine{00211\ \ \ \ \ addcerrlist(ARRAYSIZE(cerr\_exec),\ cerr\_exec);}
<a id='L160' name='L160'></a>\DoxyCodeLine{00212\ \}}
<a id='L161' name='L161'></a>\DoxyCodeLine{00213\ }
<a id='L162' name='L162'></a>\DoxyCodeLine{00214\ \textcolor{keywordtype}{void}\ nop()}
<a id='L163' name='L163'></a>\DoxyCodeLine{00215\ \{}
<a id='L164' name='L164'></a>\DoxyCodeLine{00216\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L165' name='L165'></a>\DoxyCodeLine{00217\ \}}
<a id='L166' name='L166'></a>\DoxyCodeLine{00218\ }
<a id='L167' name='L167'></a>\DoxyCodeLine{00219\ \textcolor{keywordtype}{void}\ ld\_r\_adr\_x()}
<a id='L168' name='L168'></a>\DoxyCodeLine{00220\ \{}
<a id='L169' name='L169'></a>\DoxyCodeLine{00221\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L170' name='L170'></a>\DoxyCodeLine{00222\ \ \ \ \ setfr(sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ =\ get\_val\_adr\_x(w[1],\ w[0]));}
<a id='L171' name='L171'></a>\DoxyCodeLine{00223\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L172' name='L172'></a>\DoxyCodeLine{00224\ \}}
<a id='L173' name='L173'></a>\DoxyCodeLine{00225\ }
<a id='L174' name='L174'></a>\DoxyCodeLine{00226\ \textcolor{keywordtype}{void}\ ld\_r1\_r2()}
<a id='L175' name='L175'></a>\DoxyCodeLine{00227\ \{}
<a id='L176' name='L176'></a>\DoxyCodeLine{00228\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L177' name='L177'></a>\DoxyCodeLine{00229\ \ \ \ \ setfr(sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ =\ sys-\/>cpu-\/>gr[get\_x\_r2(w[0])]);}
<a id='L178' name='L178'></a>\DoxyCodeLine{00230\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L179' name='L179'></a>\DoxyCodeLine{00231\ \}}
<a id='L180' name='L180'></a>\DoxyCodeLine{00232\ }
<a id='L181' name='L181'></a>\DoxyCodeLine{00233\ \textcolor{keywordtype}{void}\ st()}
<a id='L182' name='L182'></a>\DoxyCodeLine{00234\ \{}
<a id='L183' name='L183'></a>\DoxyCodeLine{00235\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L184' name='L184'></a>\DoxyCodeLine{00236\ \ \ \ \ sys-\/>memory[get\_adr\_x(w[1],\ w[0])]\ =\ sys-\/>cpu-\/>gr[get\_r\_r1(w[0])];}
<a id='L185' name='L185'></a>\DoxyCodeLine{00237\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L186' name='L186'></a>\DoxyCodeLine{00238\ \}}
<a id='L187' name='L187'></a>\DoxyCodeLine{00239\ }
<a id='L188' name='L188'></a>\DoxyCodeLine{00240\ \textcolor{keywordtype}{void}\ lad()}
<a id='L189' name='L189'></a>\DoxyCodeLine{00241\ \{}
<a id='L190' name='L190'></a>\DoxyCodeLine{00242\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L191' name='L191'></a>\DoxyCodeLine{00243\ \ \ \ \ sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ =\ get\_adr\_x(w[1],\ w[0]);}
<a id='L192' name='L192'></a>\DoxyCodeLine{00244\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L193' name='L193'></a>\DoxyCodeLine{00245\ \}}
<a id='L194' name='L194'></a>\DoxyCodeLine{00246\ }
<a id='L195' name='L195'></a>\DoxyCodeLine{00247\ \textcolor{keywordtype}{void}\ adda(WORD\ r,\ WORD\ val)}
<a id='L196' name='L196'></a>\DoxyCodeLine{00248\ \{}
<a id='L197' name='L197'></a>\DoxyCodeLine{00249\ \ \ \ \ \textcolor{keywordtype}{long}\ tmp;}
<a id='L198' name='L198'></a>\DoxyCodeLine{00250\ }
<a id='L199' name='L199'></a>\DoxyCodeLine{00251\ \ \ \ \ sys-\/>cpu-\/>fr\ =\ 0x0;}
<a id='L200' name='L200'></a>\DoxyCodeLine{00252\ \ \ \ \ \textcolor{comment}{/*\ 引数の値を16ビット符号付整数として加算し、オーバーフローをチェック\ */}}
<a id='L201' name='L201'></a>\DoxyCodeLine{00253\ \ \ \ \ assert(\textcolor{keyword}{sizeof}(\textcolor{keywordtype}{short})\ *\ 8\ ==\ 16\ \&\&\ (\textcolor{keywordtype}{short})0xFFFF\ ==\ -\/1);}
<a id='L202' name='L202'></a>\DoxyCodeLine{00254\ \ \ \ \ \textcolor{keywordflow}{if}((tmp\ =\ (\textcolor{keywordtype}{short})(sys-\/>cpu-\/>gr[r])\ +\ (\textcolor{keywordtype}{short})val)\ >\ 32767\ ||\ tmp\ <\ -\/32768)\ \{}
<a id='L203' name='L203'></a>\DoxyCodeLine{00255\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ OF;}
<a id='L204' name='L204'></a>\DoxyCodeLine{00256\ \ \ \ \ \}}
<a id='L205' name='L205'></a>\DoxyCodeLine{00257\ \ \ \ \ \textcolor{comment}{/*\ 加算した結果を、WORD値に戻す\ */}}
<a id='L206' name='L206'></a>\DoxyCodeLine{00258\ \ \ \ \ sys-\/>cpu-\/>gr[r]\ =\ (WORD)(tmp\ \&\ 0xFFFF);}
<a id='L207' name='L207'></a>\DoxyCodeLine{00259\ \ \ \ \ \textcolor{keywordflow}{if}((sys-\/>cpu-\/>gr[r]\ \&\ 0x8000)\ ==\ 0x8000)\ \{}
<a id='L208' name='L208'></a>\DoxyCodeLine{00260\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ SF;}
<a id='L209' name='L209'></a>\DoxyCodeLine{00261\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[r]\ ==\ 0x0)\ \{}
<a id='L210' name='L210'></a>\DoxyCodeLine{00262\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ ZF;}
<a id='L211' name='L211'></a>\DoxyCodeLine{00263\ \ \ \ \ \}}
<a id='L212' name='L212'></a>\DoxyCodeLine{00264\ \}}
<a id='L213' name='L213'></a>\DoxyCodeLine{00265\ }
<a id='L214' name='L214'></a>\DoxyCodeLine{00266\ \textcolor{keywordtype}{void}\ adda\_r\_adr\_x()}
<a id='L215' name='L215'></a>\DoxyCodeLine{00267\ \{}
<a id='L216' name='L216'></a>\DoxyCodeLine{00268\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L217' name='L217'></a>\DoxyCodeLine{00269\ \ \ \ \ adda(get\_r\_r1(w[0]),\ get\_val\_adr\_x(w[1],\ w[0]));}
<a id='L218' name='L218'></a>\DoxyCodeLine{00270\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L219' name='L219'></a>\DoxyCodeLine{00271\ \}}
<a id='L220' name='L220'></a>\DoxyCodeLine{00272\ }
<a id='L221' name='L221'></a>\DoxyCodeLine{00273\ \textcolor{keywordtype}{void}\ adda\_r1\_r2()}
<a id='L222' name='L222'></a>\DoxyCodeLine{00274\ \{}
<a id='L223' name='L223'></a>\DoxyCodeLine{00275\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L224' name='L224'></a>\DoxyCodeLine{00276\ \ \ \ \ adda(get\_r\_r1(w[0]),\ sys-\/>cpu-\/>gr[get\_x\_r2(w[0])]);}
<a id='L225' name='L225'></a>\DoxyCodeLine{00277\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L226' name='L226'></a>\DoxyCodeLine{00278\ \}}
<a id='L227' name='L227'></a>\DoxyCodeLine{00279\ }
<a id='L228' name='L228'></a>\DoxyCodeLine{00280\ \textcolor{keywordtype}{void}\ suba\_r\_adr\_x()}
<a id='L229' name='L229'></a>\DoxyCodeLine{00281\ \{}
<a id='L230' name='L230'></a>\DoxyCodeLine{00282\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L231' name='L231'></a>\DoxyCodeLine{00283\ \ \ \ \ adda(get\_r\_r1(w[0]),\ \string~(get\_val\_adr\_x(w[1],\ w[0]))\ +\ 1);}
<a id='L232' name='L232'></a>\DoxyCodeLine{00284\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L233' name='L233'></a>\DoxyCodeLine{00285\ \}}
<a id='L234' name='L234'></a>\DoxyCodeLine{00286\ }
<a id='L235' name='L235'></a>\DoxyCodeLine{00287\ \textcolor{keywordtype}{void}\ suba\_r1\_r2()}
<a id='L236' name='L236'></a>\DoxyCodeLine{00288\ \{}
<a id='L237' name='L237'></a>\DoxyCodeLine{00289\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L238' name='L238'></a>\DoxyCodeLine{00290\ \ \ \ \ adda(get\_r\_r1(w[0]),\ \string~(sys-\/>cpu-\/>gr[get\_x\_r2(w[0])])\ +\ 1);}
<a id='L239' name='L239'></a>\DoxyCodeLine{00291\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L240' name='L240'></a>\DoxyCodeLine{00292\ \}}
<a id='L241' name='L241'></a>\DoxyCodeLine{00293\ }
<a id='L242' name='L242'></a>\DoxyCodeLine{00294\ \textcolor{keywordtype}{void}\ addl\_gr(WORD\ r,\ WORD\ val,\ \textcolor{keywordtype}{bool}\ add)}
<a id='L243' name='L243'></a>\DoxyCodeLine{00295\ \{}
<a id='L244' name='L244'></a>\DoxyCodeLine{00296\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{long}\ o\ =\ 0;}
<a id='L245' name='L245'></a>\DoxyCodeLine{00297\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{long}\ s\ =\ 0;}
<a id='L246' name='L246'></a>\DoxyCodeLine{00298\ }
<a id='L247' name='L247'></a>\DoxyCodeLine{00299\ \ \ \ \ o\ =\ sys-\/>cpu-\/>gr[r];}
<a id='L248' name='L248'></a>\DoxyCodeLine{00300\ \ \ \ \ sys-\/>cpu-\/>fr\ =\ 0;\ \ \ \ \textcolor{comment}{/*\ flag\ initialize\ */}}
<a id='L249' name='L249'></a>\DoxyCodeLine{00301\ }
<a id='L250' name='L250'></a>\DoxyCodeLine{00302\ \ \ \ \ \textcolor{keywordflow}{if}(add\ ==\ \textcolor{keyword}{true})\ \{}
<a id='L251' name='L251'></a>\DoxyCodeLine{00303\ \ \ \ \ \ \ \ \ s\ =\ o\ +\ val;}
<a id='L252' name='L252'></a>\DoxyCodeLine{00304\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(s\ >\ 0xFFFF)\ \{}
<a id='L253' name='L253'></a>\DoxyCodeLine{00305\ \ \ \ \ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ OF;}
<a id='L254' name='L254'></a>\DoxyCodeLine{00306\ \ \ \ \ \ \ \ \ \}}
<a id='L255' name='L255'></a>\DoxyCodeLine{00307\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
<a id='L256' name='L256'></a>\DoxyCodeLine{00308\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(o\ <\ val)\ \{}
<a id='L257' name='L257'></a>\DoxyCodeLine{00309\ \ \ \ \ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ OF;}
<a id='L258' name='L258'></a>\DoxyCodeLine{00310\ \ \ \ \ \ \ \ \ \}}
<a id='L259' name='L259'></a>\DoxyCodeLine{00311\ \ \ \ \ \ \ \ \ s\ =\ o\ +\ (\string~val\ +\ 1);}
<a id='L260' name='L260'></a>\DoxyCodeLine{00312\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(s\ >\ 0xFFFF)\ \{}
<a id='L261' name='L261'></a>\DoxyCodeLine{00313\ \ \ \ \ \ \ \ \ \ \ \ \ s\ \&=\ 0xFFFF;}
<a id='L262' name='L262'></a>\DoxyCodeLine{00314\ \ \ \ \ \ \ \ \ \}}
<a id='L263' name='L263'></a>\DoxyCodeLine{00315\ \ \ \ \ \}}
<a id='L264' name='L264'></a>\DoxyCodeLine{00316\ \ \ \ \ sys-\/>cpu-\/>gr[r]\ =\ (WORD)s;}
<a id='L265' name='L265'></a>\DoxyCodeLine{00317\ }
<a id='L266' name='L266'></a>\DoxyCodeLine{00318\ \ \ \ \ \textcolor{keywordflow}{if}((s\ \&\ 0x8000)\ ==\ 0x8000)\ \{}
<a id='L267' name='L267'></a>\DoxyCodeLine{00319\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ SF;}
<a id='L268' name='L268'></a>\DoxyCodeLine{00320\ \ \ \ \ \}}
<a id='L269' name='L269'></a>\DoxyCodeLine{00321\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(s\ ==\ 0x0)\ \{}
<a id='L270' name='L270'></a>\DoxyCodeLine{00322\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ ZF;}
<a id='L271' name='L271'></a>\DoxyCodeLine{00323\ \ \ \ \ \}}
<a id='L272' name='L272'></a>\DoxyCodeLine{00324\ \}}
<a id='L273' name='L273'></a>\DoxyCodeLine{00325\ }
<a id='L274' name='L274'></a>\DoxyCodeLine{00326\ \textcolor{keywordtype}{void}\ addl\_r\_adr\_x()}
<a id='L275' name='L275'></a>\DoxyCodeLine{00327\ \{}
<a id='L276' name='L276'></a>\DoxyCodeLine{00328\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L277' name='L277'></a>\DoxyCodeLine{00329\ \ \ \ \ addl\_gr(get\_r\_r1(w[0]),\ get\_val\_adr\_x(w[1],\ w[0]),\ \textcolor{keyword}{true});}
<a id='L278' name='L278'></a>\DoxyCodeLine{00330\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L279' name='L279'></a>\DoxyCodeLine{00331\ \}}
<a id='L280' name='L280'></a>\DoxyCodeLine{00332\ }
<a id='L281' name='L281'></a>\DoxyCodeLine{00333\ \textcolor{keywordtype}{void}\ addl\_r1\_r2()}
<a id='L282' name='L282'></a>\DoxyCodeLine{00334\ \{}
<a id='L283' name='L283'></a>\DoxyCodeLine{00335\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L284' name='L284'></a>\DoxyCodeLine{00336\ \ \ \ \ addl\_gr(get\_r\_r1(w[0]),\ sys-\/>cpu-\/>gr[get\_x\_r2(w[0])],\ \textcolor{keyword}{true});}
<a id='L285' name='L285'></a>\DoxyCodeLine{00337\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L286' name='L286'></a>\DoxyCodeLine{00338\ \}}
<a id='L287' name='L287'></a>\DoxyCodeLine{00339\ }
<a id='L288' name='L288'></a>\DoxyCodeLine{00340\ \textcolor{keywordtype}{void}\ subl\_r\_adr\_x()}
<a id='L289' name='L289'></a>\DoxyCodeLine{00341\ \{}
<a id='L290' name='L290'></a>\DoxyCodeLine{00342\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L291' name='L291'></a>\DoxyCodeLine{00343\ \ \ \ \ addl\_gr(get\_r\_r1(w[0]),\ get\_val\_adr\_x(w[1],\ w[0]),\ \textcolor{keyword}{false});}
<a id='L292' name='L292'></a>\DoxyCodeLine{00344\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L293' name='L293'></a>\DoxyCodeLine{00345\ \}}
<a id='L294' name='L294'></a>\DoxyCodeLine{00346\ }
<a id='L295' name='L295'></a>\DoxyCodeLine{00347\ \textcolor{keywordtype}{void}\ subl\_r1\_r2()}
<a id='L296' name='L296'></a>\DoxyCodeLine{00348\ \{}
<a id='L297' name='L297'></a>\DoxyCodeLine{00349\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L298' name='L298'></a>\DoxyCodeLine{00350\ \ \ \ \ addl\_gr(get\_r\_r1(w[0]),\ sys-\/>cpu-\/>gr[get\_x\_r2(w[0])],\ \textcolor{keyword}{false});}
<a id='L299' name='L299'></a>\DoxyCodeLine{00351\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L300' name='L300'></a>\DoxyCodeLine{00352\ \}}
<a id='L301' name='L301'></a>\DoxyCodeLine{00353\ }
<a id='L302' name='L302'></a>\DoxyCodeLine{00354\ \textcolor{keywordtype}{void}\ and\_r\_adr\_x()}
<a id='L303' name='L303'></a>\DoxyCodeLine{00355\ \{}
<a id='L304' name='L304'></a>\DoxyCodeLine{00356\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L305' name='L305'></a>\DoxyCodeLine{00357\ \ \ \ \ setfr(sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ \&=\ get\_val\_adr\_x(w[1],\ w[0]));}
<a id='L306' name='L306'></a>\DoxyCodeLine{00358\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L307' name='L307'></a>\DoxyCodeLine{00359\ \}}
<a id='L308' name='L308'></a>\DoxyCodeLine{00360\ }
<a id='L309' name='L309'></a>\DoxyCodeLine{00361\ \textcolor{keywordtype}{void}\ and\_r1\_r2()}
<a id='L310' name='L310'></a>\DoxyCodeLine{00362\ \{}
<a id='L311' name='L311'></a>\DoxyCodeLine{00363\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L312' name='L312'></a>\DoxyCodeLine{00364\ \ \ \ \ setfr(sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ \&=\ sys-\/>cpu-\/>gr[get\_x\_r2(w[0])]);}
<a id='L313' name='L313'></a>\DoxyCodeLine{00365\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L314' name='L314'></a>\DoxyCodeLine{00366\ \}}
<a id='L315' name='L315'></a>\DoxyCodeLine{00367\ }
<a id='L316' name='L316'></a>\DoxyCodeLine{00368\ \textcolor{keywordtype}{void}\ or\_r\_adr\_x()}
<a id='L317' name='L317'></a>\DoxyCodeLine{00369\ \{}
<a id='L318' name='L318'></a>\DoxyCodeLine{00370\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L319' name='L319'></a>\DoxyCodeLine{00371\ \ \ \ \ setfr(sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ |=\ get\_val\_adr\_x(w[1],\ w[0]));}
<a id='L320' name='L320'></a>\DoxyCodeLine{00372\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L321' name='L321'></a>\DoxyCodeLine{00373\ \}}
<a id='L322' name='L322'></a>\DoxyCodeLine{00374\ }
<a id='L323' name='L323'></a>\DoxyCodeLine{00375\ \textcolor{keywordtype}{void}\ or\_r1\_r2()}
<a id='L324' name='L324'></a>\DoxyCodeLine{00376\ \{}
<a id='L325' name='L325'></a>\DoxyCodeLine{00377\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L326' name='L326'></a>\DoxyCodeLine{00378\ \ \ \ \ setfr(sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ |=\ sys-\/>cpu-\/>gr[get\_x\_r2(w[0])]);}
<a id='L327' name='L327'></a>\DoxyCodeLine{00379\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L328' name='L328'></a>\DoxyCodeLine{00380\ \}}
<a id='L329' name='L329'></a>\DoxyCodeLine{00381\ }
<a id='L330' name='L330'></a>\DoxyCodeLine{00382\ \textcolor{keywordtype}{void}\ xor\_r\_adr\_x()}
<a id='L331' name='L331'></a>\DoxyCodeLine{00383\ \{}
<a id='L332' name='L332'></a>\DoxyCodeLine{00384\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L333' name='L333'></a>\DoxyCodeLine{00385\ \ \ \ \ setfr(sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ \string^=\ get\_val\_adr\_x(w[1],\ w[0]));}
<a id='L334' name='L334'></a>\DoxyCodeLine{00386\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L335' name='L335'></a>\DoxyCodeLine{00387\ \}}
<a id='L336' name='L336'></a>\DoxyCodeLine{00388\ }
<a id='L337' name='L337'></a>\DoxyCodeLine{00389\ \textcolor{keywordtype}{void}\ xor\_r1\_r2()}
<a id='L338' name='L338'></a>\DoxyCodeLine{00390\ \{}
<a id='L339' name='L339'></a>\DoxyCodeLine{00391\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L340' name='L340'></a>\DoxyCodeLine{00392\ \ \ \ \ setfr(sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ \string^=\ sys-\/>cpu-\/>gr[get\_x\_r2(w[0])]);}
<a id='L341' name='L341'></a>\DoxyCodeLine{00393\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L342' name='L342'></a>\DoxyCodeLine{00394\ \}}
<a id='L343' name='L343'></a>\DoxyCodeLine{00395\ }
<a id='L344' name='L344'></a>\DoxyCodeLine{00396\ \textcolor{keywordtype}{void}\ cpa(WORD\ r,\ WORD\ val)}
<a id='L345' name='L345'></a>\DoxyCodeLine{00397\ \{}
<a id='L346' name='L346'></a>\DoxyCodeLine{00398\ \ \ \ \ sys-\/>cpu-\/>fr\ =\ 0;}
<a id='L347' name='L347'></a>\DoxyCodeLine{00399\ \ \ \ \ \textcolor{keywordflow}{if}((\textcolor{keywordtype}{short})sys-\/>cpu-\/>gr[r]\ <\ (\textcolor{keywordtype}{short})val)\ \{}
<a id='L348' name='L348'></a>\DoxyCodeLine{00400\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ =\ SF;}
<a id='L349' name='L349'></a>\DoxyCodeLine{00401\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[r]\ ==\ val)\ \{}
<a id='L350' name='L350'></a>\DoxyCodeLine{00402\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ =\ ZF;}
<a id='L351' name='L351'></a>\DoxyCodeLine{00403\ \ \ \ \ \}}
<a id='L352' name='L352'></a>\DoxyCodeLine{00404\ \}}
<a id='L353' name='L353'></a>\DoxyCodeLine{00405\ }
<a id='L354' name='L354'></a>\DoxyCodeLine{00406\ \textcolor{keywordtype}{void}\ cpa\_r\_adr\_x()}
<a id='L355' name='L355'></a>\DoxyCodeLine{00407\ \{}
<a id='L356' name='L356'></a>\DoxyCodeLine{00408\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L357' name='L357'></a>\DoxyCodeLine{00409\ \ \ \ \ cpa(get\_r\_r1(w[0]),\ get\_val\_adr\_x(w[1],\ w[0]));}
<a id='L358' name='L358'></a>\DoxyCodeLine{00410\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L359' name='L359'></a>\DoxyCodeLine{00411\ \}}
<a id='L360' name='L360'></a>\DoxyCodeLine{00412\ }
<a id='L361' name='L361'></a>\DoxyCodeLine{00413\ \textcolor{keywordtype}{void}\ cpa\_r1\_r2()}
<a id='L362' name='L362'></a>\DoxyCodeLine{00414\ \{}
<a id='L363' name='L363'></a>\DoxyCodeLine{00415\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L364' name='L364'></a>\DoxyCodeLine{00416\ \ \ \ \ cpa(get\_r\_r1(w[0]),\ sys-\/>cpu-\/>gr[get\_x\_r2(w[0])]);}
<a id='L365' name='L365'></a>\DoxyCodeLine{00417\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L366' name='L366'></a>\DoxyCodeLine{00418\ \}}
<a id='L367' name='L367'></a>\DoxyCodeLine{00419\ }
<a id='L368' name='L368'></a>\DoxyCodeLine{00420\ \textcolor{keywordtype}{void}\ cpl(WORD\ r,\ WORD\ val)}
<a id='L369' name='L369'></a>\DoxyCodeLine{00421\ \{}
<a id='L370' name='L370'></a>\DoxyCodeLine{00422\ \ \ \ \ sys-\/>cpu-\/>fr\ =\ 0x0;}
<a id='L371' name='L371'></a>\DoxyCodeLine{00423\ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[r]\ <\ val)\ \{}
<a id='L372' name='L372'></a>\DoxyCodeLine{00424\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ =\ SF;}
<a id='L373' name='L373'></a>\DoxyCodeLine{00425\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[r]\ ==\ val)\ \{}
<a id='L374' name='L374'></a>\DoxyCodeLine{00426\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ =\ ZF;}
<a id='L375' name='L375'></a>\DoxyCodeLine{00427\ \ \ \ \ \}}
<a id='L376' name='L376'></a>\DoxyCodeLine{00428\ \}}
<a id='L377' name='L377'></a>\DoxyCodeLine{00429\ }
<a id='L378' name='L378'></a>\DoxyCodeLine{00430\ \textcolor{keywordtype}{void}\ cpl\_r\_adr\_x()}
<a id='L379' name='L379'></a>\DoxyCodeLine{00431\ \{}
<a id='L380' name='L380'></a>\DoxyCodeLine{00432\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L381' name='L381'></a>\DoxyCodeLine{00433\ \ \ \ \ cpl(get\_r\_r1(w[0]),\ get\_val\_adr\_x(w[1],\ w[0]));}
<a id='L382' name='L382'></a>\DoxyCodeLine{00434\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L383' name='L383'></a>\DoxyCodeLine{00435\ \}}
<a id='L384' name='L384'></a>\DoxyCodeLine{00436\ }
<a id='L385' name='L385'></a>\DoxyCodeLine{00437\ \textcolor{keywordtype}{void}\ cpl\_r1\_r2()}
<a id='L386' name='L386'></a>\DoxyCodeLine{00438\ \{}
<a id='L387' name='L387'></a>\DoxyCodeLine{00439\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L388' name='L388'></a>\DoxyCodeLine{00440\ \ \ \ \ cpl(get\_r\_r1(w[0]),\ sys-\/>cpu-\/>gr[get\_x\_r2(w[0])]);}
<a id='L389' name='L389'></a>\DoxyCodeLine{00441\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L390' name='L390'></a>\DoxyCodeLine{00442\ \}}
<a id='L391' name='L391'></a>\DoxyCodeLine{00443\ }
<a id='L392' name='L392'></a>\DoxyCodeLine{00444\ \textcolor{keywordtype}{void}\ sla()}
<a id='L393' name='L393'></a>\DoxyCodeLine{00445\ \{}
<a id='L394' name='L394'></a>\DoxyCodeLine{00446\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L395' name='L395'></a>\DoxyCodeLine{00447\ \ \ \ \ WORD\ r\ =\ get\_r\_r1(w[0]);}
<a id='L396' name='L396'></a>\DoxyCodeLine{00448\ \ \ \ \ WORD\ sign\ =\ sys-\/>cpu-\/>gr[r]\ \&\ 0x8000;}
<a id='L397' name='L397'></a>\DoxyCodeLine{00449\ \ \ \ \ WORD\ last\ =\ 0;}
<a id='L398' name='L398'></a>\DoxyCodeLine{00450\ }
<a id='L399' name='L399'></a>\DoxyCodeLine{00451\ \ \ \ \ sys-\/>cpu-\/>fr\ =\ 0;}
<a id='L400' name='L400'></a>\DoxyCodeLine{00452\ \ \ \ \ sys-\/>cpu-\/>gr[r]\ \&=\ 0x7FFF;}
<a id='L401' name='L401'></a>\DoxyCodeLine{00453\ \ \ \ \ \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ get\_adr\_x(w[1],\ w[0]);\ i++)\ \{}
<a id='L402' name='L402'></a>\DoxyCodeLine{00454\ \ \ \ \ \ \ \ \ last\ =\ sys-\/>cpu-\/>gr[r]\ \&\ 0x4000;}
<a id='L403' name='L403'></a>\DoxyCodeLine{00455\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>gr[r]\ <<=\ 1;}
<a id='L404' name='L404'></a>\DoxyCodeLine{00456\ \ \ \ \ \}}
<a id='L405' name='L405'></a>\DoxyCodeLine{00457\ \ \ \ \ sys-\/>cpu-\/>gr[r]\ =\ sign\ |\ (sys-\/>cpu-\/>gr[r]\ \&\ 0x7FFF);}
<a id='L406' name='L406'></a>\DoxyCodeLine{00458\ \ \ \ \ \textcolor{comment}{/*\ OFに、レジスタから最後に送り出されたビットの値を設定\ */}}
<a id='L407' name='L407'></a>\DoxyCodeLine{00459\ \ \ \ \ \textcolor{keywordflow}{if}(last\ >\ 0x0)\ \{}
<a id='L408' name='L408'></a>\DoxyCodeLine{00460\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ OF;}
<a id='L409' name='L409'></a>\DoxyCodeLine{00461\ \ \ \ \ \}}
<a id='L410' name='L410'></a>\DoxyCodeLine{00462\ \ \ \ \ \textcolor{comment}{/*\ 符号(第15ビット)が1のとき、SFは1\ */}}
<a id='L411' name='L411'></a>\DoxyCodeLine{00463\ \ \ \ \ \textcolor{keywordflow}{if}(sign\ >\ 0x0)\ \{}
<a id='L412' name='L412'></a>\DoxyCodeLine{00464\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ SF;}
<a id='L413' name='L413'></a>\DoxyCodeLine{00465\ \ \ \ \ \}}
<a id='L414' name='L414'></a>\DoxyCodeLine{00466\ \ \ \ \ \textcolor{comment}{/*\ 演算結果が0のとき、ZFは1\ */}}
<a id='L415' name='L415'></a>\DoxyCodeLine{00467\ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[r]\ ==\ 0x0)\ \{}
<a id='L416' name='L416'></a>\DoxyCodeLine{00468\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ ZF;}
<a id='L417' name='L417'></a>\DoxyCodeLine{00469\ \ \ \ \ \}}
<a id='L418' name='L418'></a>\DoxyCodeLine{00470\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L419' name='L419'></a>\DoxyCodeLine{00471\ \}}
<a id='L420' name='L420'></a>\DoxyCodeLine{00472\ }
<a id='L421' name='L421'></a>\DoxyCodeLine{00473\ \textcolor{keywordtype}{void}\ sra()}
<a id='L422' name='L422'></a>\DoxyCodeLine{00474\ \{}
<a id='L423' name='L423'></a>\DoxyCodeLine{00475\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L424' name='L424'></a>\DoxyCodeLine{00476\ \ \ \ \ WORD\ r\ =\ get\_r\_r1(w[0]);}
<a id='L425' name='L425'></a>\DoxyCodeLine{00477\ \ \ \ \ WORD\ sign\ =\ sys-\/>cpu-\/>gr[r]\ \&\ 0x8000;}
<a id='L426' name='L426'></a>\DoxyCodeLine{00478\ \ \ \ \ WORD\ last\ =\ 0;}
<a id='L427' name='L427'></a>\DoxyCodeLine{00479\ }
<a id='L428' name='L428'></a>\DoxyCodeLine{00480\ \ \ \ \ sys-\/>cpu-\/>fr\ =\ 0;}
<a id='L429' name='L429'></a>\DoxyCodeLine{00481\ \ \ \ \ sys-\/>cpu-\/>gr[r]\ \&=\ 0x7FFF;}
<a id='L430' name='L430'></a>\DoxyCodeLine{00482\ \ \ \ \ \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ get\_adr\_x(w[1],\ w[0]);\ i++)\ \{}
<a id='L431' name='L431'></a>\DoxyCodeLine{00483\ \ \ \ \ \ \ \ \ last\ =\ sys-\/>cpu-\/>gr[r]\ \&\ 0x1;}
<a id='L432' name='L432'></a>\DoxyCodeLine{00484\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>gr[r]\ >>=\ 1;}
<a id='L433' name='L433'></a>\DoxyCodeLine{00485\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(sign\ >\ 0)\ \{}
<a id='L434' name='L434'></a>\DoxyCodeLine{00486\ \ \ \ \ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>gr[r]\ |=\ 0x4000;}
<a id='L435' name='L435'></a>\DoxyCodeLine{00487\ \ \ \ \ \ \ \ \ \}}
<a id='L436' name='L436'></a>\DoxyCodeLine{00488\ \ \ \ \ \}}
<a id='L437' name='L437'></a>\DoxyCodeLine{00489\ \ \ \ \ sys-\/>cpu-\/>gr[r]\ =\ sign\ |\ sys-\/>cpu-\/>gr[r];}
<a id='L438' name='L438'></a>\DoxyCodeLine{00490\ \ \ \ \ \textcolor{comment}{/*\ OFに、レジスタから最後に送り出されたビットの値を設定\ */}}
<a id='L439' name='L439'></a>\DoxyCodeLine{00491\ \ \ \ \ \textcolor{keywordflow}{if}(last\ >\ 0x0)\ \{}
<a id='L440' name='L440'></a>\DoxyCodeLine{00492\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ OF;}
<a id='L441' name='L441'></a>\DoxyCodeLine{00493\ \ \ \ \ \}}
<a id='L442' name='L442'></a>\DoxyCodeLine{00494\ \ \ \ \ \textcolor{comment}{/*\ 符号(第15ビット)が1のとき、SFは1\ */}}
<a id='L443' name='L443'></a>\DoxyCodeLine{00495\ \ \ \ \ \textcolor{keywordflow}{if}(sign\ >\ 0x0)\ \{}
<a id='L444' name='L444'></a>\DoxyCodeLine{00496\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ SF;}
<a id='L445' name='L445'></a>\DoxyCodeLine{00497\ \ \ \ \ \}}
<a id='L446' name='L446'></a>\DoxyCodeLine{00498\ \ \ \ \ \textcolor{comment}{/*\ 演算結果が0のとき、ZFは1\ */}}
<a id='L447' name='L447'></a>\DoxyCodeLine{00499\ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[r]\ ==\ 0x0)\ \{}
<a id='L448' name='L448'></a>\DoxyCodeLine{00500\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ ZF;}
<a id='L449' name='L449'></a>\DoxyCodeLine{00501\ \ \ \ \ \}}
<a id='L450' name='L450'></a>\DoxyCodeLine{00502\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L451' name='L451'></a>\DoxyCodeLine{00503\ \}}
<a id='L452' name='L452'></a>\DoxyCodeLine{00504\ }
<a id='L453' name='L453'></a>\DoxyCodeLine{00505\ \textcolor{keywordtype}{void}\ sll()}
<a id='L454' name='L454'></a>\DoxyCodeLine{00506\ \{}
<a id='L455' name='L455'></a>\DoxyCodeLine{00507\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L456' name='L456'></a>\DoxyCodeLine{00508\ \ \ \ \ WORD\ last\ =\ 0;}
<a id='L457' name='L457'></a>\DoxyCodeLine{00509\ \ \ \ \ WORD\ r\ =\ get\_r\_r1(w[0]);}
<a id='L458' name='L458'></a>\DoxyCodeLine{00510\ }
<a id='L459' name='L459'></a>\DoxyCodeLine{00511\ \ \ \ \ sys-\/>cpu-\/>fr\ =\ 0x0;}
<a id='L460' name='L460'></a>\DoxyCodeLine{00512\ \ \ \ \ \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ get\_adr\_x(w[1],\ w[0]);\ i++)\ \{}
<a id='L461' name='L461'></a>\DoxyCodeLine{00513\ \ \ \ \ \ \ \ \ last\ =\ sys-\/>cpu-\/>gr[r]\ \&\ 0x8000;}
<a id='L462' name='L462'></a>\DoxyCodeLine{00514\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>gr[r]\ <<=\ 1;}
<a id='L463' name='L463'></a>\DoxyCodeLine{00515\ \ \ \ \ \}}
<a id='L464' name='L464'></a>\DoxyCodeLine{00516\ \ \ \ \ \textcolor{comment}{/*\ OFに、レジスタから最後に送り出されたビットの値を設定\ */}}
<a id='L465' name='L465'></a>\DoxyCodeLine{00517\ \ \ \ \ \textcolor{keywordflow}{if}(last\ >\ 0x0)\ \{}
<a id='L466' name='L466'></a>\DoxyCodeLine{00518\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ OF;}
<a id='L467' name='L467'></a>\DoxyCodeLine{00519\ \ \ \ \ \}}
<a id='L468' name='L468'></a>\DoxyCodeLine{00520\ \ \ \ \ \textcolor{comment}{/*\ 第15ビットが1のとき、SFは1\ */}}
<a id='L469' name='L469'></a>\DoxyCodeLine{00521\ \ \ \ \ \textcolor{keywordflow}{if}((sys-\/>cpu-\/>gr[r]\ \&\ 0x8000)\ >\ 0x0)\ \{}
<a id='L470' name='L470'></a>\DoxyCodeLine{00522\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ SF;}
<a id='L471' name='L471'></a>\DoxyCodeLine{00523\ \ \ \ \ \}}
<a id='L472' name='L472'></a>\DoxyCodeLine{00524\ \ \ \ \ \textcolor{comment}{/*\ 演算結果が0のとき、ZFは1\ */}}
<a id='L473' name='L473'></a>\DoxyCodeLine{00525\ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[r]\ ==\ 0x0)\ \{}
<a id='L474' name='L474'></a>\DoxyCodeLine{00526\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ ZF;}
<a id='L475' name='L475'></a>\DoxyCodeLine{00527\ \ \ \ \ \}}
<a id='L476' name='L476'></a>\DoxyCodeLine{00528\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L477' name='L477'></a>\DoxyCodeLine{00529\ \}}
<a id='L478' name='L478'></a>\DoxyCodeLine{00530\ }
<a id='L479' name='L479'></a>\DoxyCodeLine{00531\ \textcolor{keywordtype}{void}\ srl()}
<a id='L480' name='L480'></a>\DoxyCodeLine{00532\ \{}
<a id='L481' name='L481'></a>\DoxyCodeLine{00533\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L482' name='L482'></a>\DoxyCodeLine{00534\ \ \ \ \ WORD\ last\ =\ 0;}
<a id='L483' name='L483'></a>\DoxyCodeLine{00535\ \ \ \ \ WORD\ r\ =\ get\_r\_r1(w[0]);}
<a id='L484' name='L484'></a>\DoxyCodeLine{00536\ }
<a id='L485' name='L485'></a>\DoxyCodeLine{00537\ \ \ \ \ sys-\/>cpu-\/>fr\ =\ 0x0;}
<a id='L486' name='L486'></a>\DoxyCodeLine{00538\ \ \ \ \ \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ get\_adr\_x(w[1],\ w[0]);\ i++)\ \{}
<a id='L487' name='L487'></a>\DoxyCodeLine{00539\ \ \ \ \ \ \ \ \ last\ =\ sys-\/>cpu-\/>gr[r]\ \&\ 0x0001;}
<a id='L488' name='L488'></a>\DoxyCodeLine{00540\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>gr[r]\ >>=\ 1;}
<a id='L489' name='L489'></a>\DoxyCodeLine{00541\ \ \ \ \ \}}
<a id='L490' name='L490'></a>\DoxyCodeLine{00542\ \ \ \ \ \textcolor{comment}{/*\ OFに、レジスタから最後に送り出されたビットの値を設定\ */}}
<a id='L491' name='L491'></a>\DoxyCodeLine{00543\ \ \ \ \ \textcolor{keywordflow}{if}(last\ >\ 0x0)\ \{}
<a id='L492' name='L492'></a>\DoxyCodeLine{00544\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ OF;}
<a id='L493' name='L493'></a>\DoxyCodeLine{00545\ \ \ \ \ \}}
<a id='L494' name='L494'></a>\DoxyCodeLine{00546\ \ \ \ \ \textcolor{comment}{/*\ 第15ビットが1のとき、SFは1\ */}}
<a id='L495' name='L495'></a>\DoxyCodeLine{00547\ \ \ \ \ \textcolor{keywordflow}{if}((sys-\/>cpu-\/>gr[r]\ \&\ 0x8000)\ >\ 0x0)\ \{}
<a id='L496' name='L496'></a>\DoxyCodeLine{00548\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ SF;}
<a id='L497' name='L497'></a>\DoxyCodeLine{00549\ \ \ \ \ \}}
<a id='L498' name='L498'></a>\DoxyCodeLine{00550\ \ \ \ \ \textcolor{comment}{/*\ 演算結果が0のとき、ZFは1\ */}}
<a id='L499' name='L499'></a>\DoxyCodeLine{00551\ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>gr[r]\ ==\ 0x0)\ \{}
<a id='L500' name='L500'></a>\DoxyCodeLine{00552\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>fr\ +=\ ZF;}
<a id='L501' name='L501'></a>\DoxyCodeLine{00553\ \ \ \ \ \}}
<a id='L502' name='L502'></a>\DoxyCodeLine{00554\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L503' name='L503'></a>\DoxyCodeLine{00555\ \}}
<a id='L504' name='L504'></a>\DoxyCodeLine{00556\ }
<a id='L505' name='L505'></a>\DoxyCodeLine{00557\ \textcolor{keywordtype}{void}\ jpl()}
<a id='L506' name='L506'></a>\DoxyCodeLine{00558\ \{}
<a id='L507' name='L507'></a>\DoxyCodeLine{00559\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L508' name='L508'></a>\DoxyCodeLine{00560\ \ \ \ \ \textcolor{keywordflow}{if}((sys-\/>cpu-\/>fr\ \&\ (SF\ |\ ZF))\ ==\ 0)\ \{}
<a id='L509' name='L509'></a>\DoxyCodeLine{00561\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ =\ get\_adr\_x(w[1],\ w[0]);}
<a id='L510' name='L510'></a>\DoxyCodeLine{00562\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
<a id='L511' name='L511'></a>\DoxyCodeLine{00563\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L512' name='L512'></a>\DoxyCodeLine{00564\ \ \ \ \ \}}
<a id='L513' name='L513'></a>\DoxyCodeLine{00565\ \}}
<a id='L514' name='L514'></a>\DoxyCodeLine{00566\ }
<a id='L515' name='L515'></a>\DoxyCodeLine{00567\ \textcolor{keywordtype}{void}\ jmi()}
<a id='L516' name='L516'></a>\DoxyCodeLine{00568\ \{}
<a id='L517' name='L517'></a>\DoxyCodeLine{00569\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L518' name='L518'></a>\DoxyCodeLine{00570\ \ \ \ \ \textcolor{keywordflow}{if}((sys-\/>cpu-\/>fr\ \&\ SF)\ >\ 0)\ \{}
<a id='L519' name='L519'></a>\DoxyCodeLine{00571\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ =\ get\_adr\_x(w[1],\ w[0]);}
<a id='L520' name='L520'></a>\DoxyCodeLine{00572\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
<a id='L521' name='L521'></a>\DoxyCodeLine{00573\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L522' name='L522'></a>\DoxyCodeLine{00574\ \ \ \ \ \}}
<a id='L523' name='L523'></a>\DoxyCodeLine{00575\ \}}
<a id='L524' name='L524'></a>\DoxyCodeLine{00576\ }
<a id='L525' name='L525'></a>\DoxyCodeLine{00577\ \textcolor{keywordtype}{void}\ jnz()}
<a id='L526' name='L526'></a>\DoxyCodeLine{00578\ \{}
<a id='L527' name='L527'></a>\DoxyCodeLine{00579\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L528' name='L528'></a>\DoxyCodeLine{00580\ \ \ \ \ \textcolor{keywordflow}{if}((sys-\/>cpu-\/>fr\ \&\ ZF)\ ==\ 0)\ \{}
<a id='L529' name='L529'></a>\DoxyCodeLine{00581\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ =\ get\_adr\_x(w[1],\ w[0]);}
<a id='L530' name='L530'></a>\DoxyCodeLine{00582\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
<a id='L531' name='L531'></a>\DoxyCodeLine{00583\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L532' name='L532'></a>\DoxyCodeLine{00584\ \ \ \ \ \}}
<a id='L533' name='L533'></a>\DoxyCodeLine{00585\ \}}
<a id='L534' name='L534'></a>\DoxyCodeLine{00586\ }
<a id='L535' name='L535'></a>\DoxyCodeLine{00587\ \textcolor{keywordtype}{void}\ jze()}
<a id='L536' name='L536'></a>\DoxyCodeLine{00588\ \{}
<a id='L537' name='L537'></a>\DoxyCodeLine{00589\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L538' name='L538'></a>\DoxyCodeLine{00590\ \ \ \ \ \textcolor{keywordflow}{if}((sys-\/>cpu-\/>fr\ \&\ ZF)\ >\ 0)\ \{}
<a id='L539' name='L539'></a>\DoxyCodeLine{00591\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ =\ get\_adr\_x(w[1],\ w[0]);}
<a id='L540' name='L540'></a>\DoxyCodeLine{00592\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
<a id='L541' name='L541'></a>\DoxyCodeLine{00593\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L542' name='L542'></a>\DoxyCodeLine{00594\ \ \ \ \ \}}
<a id='L543' name='L543'></a>\DoxyCodeLine{00595\ \}}
<a id='L544' name='L544'></a>\DoxyCodeLine{00596\ }
<a id='L545' name='L545'></a>\DoxyCodeLine{00597\ \textcolor{keywordtype}{void}\ jov()}
<a id='L546' name='L546'></a>\DoxyCodeLine{00598\ \{}
<a id='L547' name='L547'></a>\DoxyCodeLine{00599\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L548' name='L548'></a>\DoxyCodeLine{00600\ \ \ \ \ \textcolor{keywordflow}{if}((sys-\/>cpu-\/>fr\ \&\ OF)\ >\ 0)\ \{}
<a id='L549' name='L549'></a>\DoxyCodeLine{00601\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ =\ get\_adr\_x(w[1],\ w[0]);}
<a id='L550' name='L550'></a>\DoxyCodeLine{00602\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
<a id='L551' name='L551'></a>\DoxyCodeLine{00603\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L552' name='L552'></a>\DoxyCodeLine{00604\ \ \ \ \ \}}
<a id='L553' name='L553'></a>\DoxyCodeLine{00605\ \}}
<a id='L554' name='L554'></a>\DoxyCodeLine{00606\ }
<a id='L555' name='L555'></a>\DoxyCodeLine{00607\ \textcolor{keywordtype}{void}\ jump()}
<a id='L556' name='L556'></a>\DoxyCodeLine{00608\ \{}
<a id='L557' name='L557'></a>\DoxyCodeLine{00609\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L558' name='L558'></a>\DoxyCodeLine{00610\ \ \ \ \ sys-\/>cpu-\/>pr\ =\ get\_adr\_x(w[1],\ w[0]);}
<a id='L559' name='L559'></a>\DoxyCodeLine{00611\ \}}
<a id='L560' name='L560'></a>\DoxyCodeLine{00612\ }
<a id='L561' name='L561'></a>\DoxyCodeLine{00613\ \textcolor{keywordtype}{void}\ push()}
<a id='L562' name='L562'></a>\DoxyCodeLine{00614\ \{}
<a id='L563' name='L563'></a>\DoxyCodeLine{00615\ \ \ \ \ assert(sys-\/>cpu-\/>sp\ >\ execptr-\/>end\ \&\&\ sys-\/>cpu-\/>sp\ <=\ sys-\/>memsize);}
<a id='L564' name='L564'></a>\DoxyCodeLine{00616\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L565' name='L565'></a>\DoxyCodeLine{00617\ \ \ \ \ sys-\/>memory[-\/-\/(sys-\/>cpu-\/>sp)]\ =\ get\_adr\_x(w[1],\ w[0]);}
<a id='L566' name='L566'></a>\DoxyCodeLine{00618\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L567' name='L567'></a>\DoxyCodeLine{00619\ \}}
<a id='L568' name='L568'></a>\DoxyCodeLine{00620\ }
<a id='L569' name='L569'></a>\DoxyCodeLine{00621\ \textcolor{keywordtype}{void}\ pop()}
<a id='L570' name='L570'></a>\DoxyCodeLine{00622\ \{}
<a id='L571' name='L571'></a>\DoxyCodeLine{00623\ \ \ \ \ assert(sys-\/>cpu-\/>sp\ >\ execptr-\/>end);}
<a id='L572' name='L572'></a>\DoxyCodeLine{00624\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr]\};}
<a id='L573' name='L573'></a>\DoxyCodeLine{00625\ \ \ \ \ \textcolor{keywordtype}{char}\ *s\ =\ NULL;}
<a id='L574' name='L574'></a>\DoxyCodeLine{00626\ }
<a id='L575' name='L575'></a>\DoxyCodeLine{00627\ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>sp\ >=\ sys-\/>memsize)\ \{}
<a id='L576' name='L576'></a>\DoxyCodeLine{00628\ \ \ \ \ \ \ \ \ setcerr(203,\ s\ =\ pr2str(sys-\/>cpu-\/>pr));\ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Stack\ Pointer\ (SP)\ -\/\ stack\ underflow\ */}}
<a id='L577' name='L577'></a>\DoxyCodeLine{00629\ \ \ \ \ \ \ \ \ FREE(s);}
<a id='L578' name='L578'></a>\DoxyCodeLine{00630\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
<a id='L579' name='L579'></a>\DoxyCodeLine{00631\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>gr[get\_r\_r1(w[0])]\ =\ sys-\/>memory[(sys-\/>cpu-\/>sp)++];}
<a id='L580' name='L580'></a>\DoxyCodeLine{00632\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 1;}
<a id='L581' name='L581'></a>\DoxyCodeLine{00633\ \ \ \ \ \}}
<a id='L582' name='L582'></a>\DoxyCodeLine{00634\ \}}
<a id='L583' name='L583'></a>\DoxyCodeLine{00635\ }
<a id='L584' name='L584'></a>\DoxyCodeLine{00636\ \textcolor{keywordtype}{void}\ call()}
<a id='L585' name='L585'></a>\DoxyCodeLine{00637\ \{}
<a id='L586' name='L586'></a>\DoxyCodeLine{00638\ \ \ \ \ assert(sys-\/>cpu-\/>sp\ >\ execptr-\/>end\ \&\&\ sys-\/>cpu-\/>sp\ <=\ sys-\/>memsize);}
<a id='L587' name='L587'></a>\DoxyCodeLine{00639\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L588' name='L588'></a>\DoxyCodeLine{00640\ \ \ \ \ sys-\/>memory[-\/-\/(sys-\/>cpu-\/>sp)]\ =\ sys-\/>cpu-\/>pr\ +\ 1;}
<a id='L589' name='L589'></a>\DoxyCodeLine{00641\ \ \ \ \ sys-\/>cpu-\/>pr\ =\ get\_adr\_x(w[1],\ w[0]);}
<a id='L590' name='L590'></a>\DoxyCodeLine{00642\ \}}
<a id='L591' name='L591'></a>\DoxyCodeLine{00643\ }
<a id='L592' name='L592'></a>\DoxyCodeLine{00644\ \textcolor{keywordtype}{void}\ ret()}
<a id='L593' name='L593'></a>\DoxyCodeLine{00645\ \{}
<a id='L594' name='L594'></a>\DoxyCodeLine{00646\ \ \ \ \ assert(sys-\/>cpu-\/>sp\ <=\ sys-\/>memsize);}
<a id='L595' name='L595'></a>\DoxyCodeLine{00647\ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>sp\ ==\ sys-\/>memsize)\ \{}
<a id='L596' name='L596'></a>\DoxyCodeLine{00648\ \ \ \ \ \ \ \ \ execptr-\/>stop\ =\ \textcolor{keyword}{true};}
<a id='L597' name='L597'></a>\DoxyCodeLine{00649\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>sp\ <\ sys-\/>memsize)\ \{}
<a id='L598' name='L598'></a>\DoxyCodeLine{00650\ \ \ \ \ \ \ \ \ sys-\/>cpu-\/>pr\ =\ sys-\/>memory[(sys-\/>cpu-\/>sp)++]\ +\ 1;}
<a id='L599' name='L599'></a>\DoxyCodeLine{00651\ \ \ \ \ \}}
<a id='L600' name='L600'></a>\DoxyCodeLine{00652\ \}}
<a id='L601' name='L601'></a>\DoxyCodeLine{00653\ }
<a id='L602' name='L602'></a>\DoxyCodeLine{00654\ \textcolor{keywordtype}{void}\ svc()}
<a id='L603' name='L603'></a>\DoxyCodeLine{00655\ \{}
<a id='L604' name='L604'></a>\DoxyCodeLine{00656\ \ \ \ \ WORD\ w[]\ =\ \{sys-\/>memory[sys-\/>cpu-\/>pr],\ sys-\/>memory[sys-\/>cpu-\/>pr\ +\ 1]\};}
<a id='L605' name='L605'></a>\DoxyCodeLine{00657\ \ \ \ \ \textcolor{keywordflow}{switch}(get\_adr\_x(w[1],\ w[0]))}
<a id='L606' name='L606'></a>\DoxyCodeLine{00658\ \ \ \ \ \{}
<a id='L607' name='L607'></a>\DoxyCodeLine{00659\ \ \ \ \ \textcolor{keywordflow}{case}\ 0x0:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ STOP\ */}}
<a id='L608' name='L608'></a>\DoxyCodeLine{00660\ \ \ \ \ \ \ \ \ execptr-\/>stop\ =\ \textcolor{keyword}{true};}
<a id='L609' name='L609'></a>\DoxyCodeLine{00661\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L610' name='L610'></a>\DoxyCodeLine{00662\ \ \ \ \ \textcolor{keywordflow}{case}\ 0x1:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ IN\ */}}
<a id='L611' name='L611'></a>\DoxyCodeLine{00663\ \ \ \ \ \ \ \ \ svcin();}
<a id='L612' name='L612'></a>\DoxyCodeLine{00664\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L613' name='L613'></a>\DoxyCodeLine{00665\ \ \ \ \ \textcolor{keywordflow}{case}\ 0x2:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ OUT\ */}}
<a id='L614' name='L614'></a>\DoxyCodeLine{00666\ \ \ \ \ \ \ \ \ svcout();}
<a id='L615' name='L615'></a>\DoxyCodeLine{00667\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L616' name='L616'></a>\DoxyCodeLine{00668\ \ \ \ \ \}}
<a id='L617' name='L617'></a>\DoxyCodeLine{00669\ \ \ \ \ sys-\/>cpu-\/>pr\ +=\ 2;}
<a id='L618' name='L618'></a>\DoxyCodeLine{00670\ \}}
<a id='L619' name='L619'></a>\DoxyCodeLine{00671\ }
<a id='L620' name='L620'></a>\DoxyCodeLine{00672\ \textcolor{keywordtype}{void}\ exec()}
<a id='L621' name='L621'></a>\DoxyCodeLine{00673\ \{}
<a id='L622' name='L622'></a>\DoxyCodeLine{00674\ \ \ \ \ clock\_t\ clock\_begin\ =\ 0;}
<a id='L623' name='L623'></a>\DoxyCodeLine{00675\ \ \ \ \ clock\_t\ clock\_end\ =\ 0;}
<a id='L624' name='L624'></a>\DoxyCodeLine{00676\ \ \ \ \ void\ (*cmdptr)()\ =\ NULL;}
<a id='L625' name='L625'></a>\DoxyCodeLine{00677\ \ \ \ \ \textcolor{keywordtype}{char}\ *s\ =\ NULL;}
<a id='L626' name='L626'></a>\DoxyCodeLine{00678\ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *monmsg\ =\ \textcolor{stringliteral}{"{}COMET\ II\ machine\ code\ monitor.\ Type\ ?\ for\ help.\(\backslash\)n"{}};}
<a id='L627' name='L627'></a>\DoxyCodeLine{00679\ }
<a id='L628' name='L628'></a>\DoxyCodeLine{00680\ \ \ \ \ create\_cmdtable(HASH\_CODE);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ 命令のコードとタイプがキーのハッシュ表を作成\ */}}
<a id='L629' name='L629'></a>\DoxyCodeLine{00681\ }
<a id='L630' name='L630'></a>\DoxyCodeLine{00682\ \ \ \ \ \textcolor{keywordflow}{if}(execmode.trace\ ==\ \textcolor{keyword}{true})\ \{}
<a id='L631' name='L631'></a>\DoxyCodeLine{00683\ \ \ \ \ \ \ \ \ fprintf(stdout,\ \textcolor{stringliteral}{"{}\(\backslash\)nExecuting\ machine\ codes\(\backslash\)n"{}});}
<a id='L632' name='L632'></a>\DoxyCodeLine{00684\ \ \ \ \ \}}
<a id='L633' name='L633'></a>\DoxyCodeLine{00685\ \ \ \ \ \textcolor{comment}{/*\ 機械語の実行\ */}}
<a id='L634' name='L634'></a>\DoxyCodeLine{00686\ \ \ \ \ \textcolor{keywordflow}{for}\ (sys-\/>cpu-\/>pr\ =\ execptr-\/>start;\ ;\ )\ \{}
<a id='L635' name='L635'></a>\DoxyCodeLine{00687\ \ \ \ \ \ \ \ \ clock\_begin\ =\ clock();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ クロック周波数設定のため、実行開始時間を格納\ */}}
<a id='L636' name='L636'></a>\DoxyCodeLine{00688\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(execmode.dump\ ||\ execmode.trace)\ \{\ \ \ \ \ \ \textcolor{comment}{/*\ traceまたはdumpオプション指定時、改行を出力\ */}}
<a id='L637' name='L637'></a>\DoxyCodeLine{00689\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(execmode.trace)\ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ traceオプション指定時、レジスタを出力\ */}}
<a id='L638' name='L638'></a>\DoxyCodeLine{00690\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fprintf(stdout,\ \textcolor{stringliteral}{"{}\#\%04X:\ Register::::\(\backslash\)n"{}},\ sys-\/>cpu-\/>pr);}
<a id='L639' name='L639'></a>\DoxyCodeLine{00691\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dspregister();}
<a id='L640' name='L640'></a>\DoxyCodeLine{00692\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
<a id='L641' name='L641'></a>\DoxyCodeLine{00693\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(execmode.dump)\ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ dumpオプション指定時、メモリを出力\ */}}
<a id='L642' name='L642'></a>\DoxyCodeLine{00694\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fprintf(stdout,\ \textcolor{stringliteral}{"{}\#\%04X:\ Memory::::\(\backslash\)n"{}},\ sys-\/>cpu-\/>pr);}
<a id='L643' name='L643'></a>\DoxyCodeLine{00695\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dumpmemory(execmode.dump\_start,\ execmode.dump\_end);}
<a id='L644' name='L644'></a>\DoxyCodeLine{00696\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
<a id='L645' name='L645'></a>\DoxyCodeLine{00697\ \ \ \ \ \ \ \ \ \ \ \ \ fprintf(stdout,\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
<a id='L646' name='L646'></a>\DoxyCodeLine{00698\ \ \ \ \ \ \ \ \ \}}
<a id='L647' name='L647'></a>\DoxyCodeLine{00699\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ ステップモードまたはブレークポイントの場合、モニターを起動\ */}}
<a id='L648' name='L648'></a>\DoxyCodeLine{00700\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(}
<a id='L649' name='L649'></a>\DoxyCodeLine{00701\ \ \ \ \ \ \ \ \ \ \ \ \ (execmode.monitor\ ==\ \textcolor{keyword}{true}\ \&\&\ sys-\/>cpu-\/>pr\ ==\ execptr-\/>start)\ ||}
<a id='L650' name='L650'></a>\DoxyCodeLine{00702\ \ \ \ \ \ \ \ \ \ \ \ \ execmode.step\ ==\ \textcolor{keyword}{true}\ ||\ getbps(sys-\/>cpu-\/>pr)\ ==\ \textcolor{keyword}{true})}
<a id='L651' name='L651'></a>\DoxyCodeLine{00703\ \ \ \ \ \ \ \ \ \{}
<a id='L652' name='L652'></a>\DoxyCodeLine{00704\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>pr\ ==\ execptr-\/>start)\ \{}
<a id='L653' name='L653'></a>\DoxyCodeLine{00705\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fprintf(stdout,\ \textcolor{stringliteral}{"{}\%s"{}},\ monmsg);}
<a id='L654' name='L654'></a>\DoxyCodeLine{00706\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
<a id='L655' name='L655'></a>\DoxyCodeLine{00707\ \ \ \ \ \ \ \ \ \ \ \ \ monitor();}
<a id='L656' name='L656'></a>\DoxyCodeLine{00708\ \ \ \ \ \ \ \ \ \}}
<a id='L657' name='L657'></a>\DoxyCodeLine{00709\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ プログラムレジスタをチェック\ */}}
<a id='L658' name='L658'></a>\DoxyCodeLine{00710\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>pr\ >=\ sys-\/>memsize)\ \{}
<a id='L659' name='L659'></a>\DoxyCodeLine{00711\ \ \ \ \ \ \ \ \ \ \ \ \ setcerr(201,\ s\ =\ pr2str(sys-\/>cpu-\/>pr));\ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Program\ Register\ (PR)\ -\/\ memory\ overflow\ */}}
<a id='L660' name='L660'></a>\DoxyCodeLine{00712\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ execfin;}
<a id='L661' name='L661'></a>\DoxyCodeLine{00713\ \ \ \ \ \ \ \ \ \}}
<a id='L662' name='L662'></a>\DoxyCodeLine{00714\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ スタックポインタをチェック\ */}}
<a id='L663' name='L663'></a>\DoxyCodeLine{00715\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(sys-\/>cpu-\/>sp\ <=\ execptr-\/>end)\ \{}
<a id='L664' name='L664'></a>\DoxyCodeLine{00716\ \ \ \ \ \ \ \ \ \ \ \ \ setcerr(202,\ s\ =\ pr2str(sys-\/>cpu-\/>pr));\ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Stack\ Pointer\ (SP)\ -\/\ stack\ overflow\ */}}
<a id='L665' name='L665'></a>\DoxyCodeLine{00717\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ execfin;}
<a id='L666' name='L666'></a>\DoxyCodeLine{00718\ \ \ \ \ \ \ \ \ \}}
<a id='L667' name='L667'></a>\DoxyCodeLine{00719\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ コードから命令を取得\ */}}
<a id='L668' name='L668'></a>\DoxyCodeLine{00720\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ 取得できない場合はエラー終了\ */}}
<a id='L669' name='L669'></a>\DoxyCodeLine{00721\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}((cmdptr\ =\ getcmdptr(sys-\/>memory[sys-\/>cpu-\/>pr]\ \&\ 0xFF00))\ ==\ NULL)\ \{}
<a id='L670' name='L670'></a>\DoxyCodeLine{00722\ \ \ \ \ \ \ \ \ \ \ \ \ setcerr(204,\ s\ =\ pr2str(sys-\/>cpu-\/>pr));\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ OP\ in\ word\ \#1\ -\/\ not\ command\ code\ */}}
<a id='L671' name='L671'></a>\DoxyCodeLine{00723\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ execfin;}
<a id='L672' name='L672'></a>\DoxyCodeLine{00724\ \ \ \ \ \ \ \ \ \}}
<a id='L673' name='L673'></a>\DoxyCodeLine{00725\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ 命令の実行\ */}}
<a id='L674' name='L674'></a>\DoxyCodeLine{00726\ \ \ \ \ \ \ \ \ (*cmdptr)();}
<a id='L675' name='L675'></a>\DoxyCodeLine{00727\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ エラー発生時はエラー終了\ */}}
<a id='L676' name='L676'></a>\DoxyCodeLine{00728\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(cerr-\/>num\ >\ 0)\ \{}
<a id='L677' name='L677'></a>\DoxyCodeLine{00729\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ execfin;}
<a id='L678' name='L678'></a>\DoxyCodeLine{00730\ \ \ \ \ \ \ \ \ \}}
<a id='L679' name='L679'></a>\DoxyCodeLine{00731\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ 終了フラグがtrueの場合は、モニターまたは正常終了\ */}}
<a id='L680' name='L680'></a>\DoxyCodeLine{00732\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(execptr-\/>stop\ ==\ \textcolor{keyword}{true})\ \{}
<a id='L681' name='L681'></a>\DoxyCodeLine{00733\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(execmode.monitor\ ==\ \textcolor{keyword}{true})\ \{}
<a id='L682' name='L682'></a>\DoxyCodeLine{00734\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fprintf(stdout,\ \textcolor{stringliteral}{"{}Return\ to\ top.\(\backslash\)n"{}});}
<a id='L683' name='L683'></a>\DoxyCodeLine{00735\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ monitor();}
<a id='L684' name='L684'></a>\DoxyCodeLine{00736\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
<a id='L685' name='L685'></a>\DoxyCodeLine{00737\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L686' name='L686'></a>\DoxyCodeLine{00738\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
<a id='L687' name='L687'></a>\DoxyCodeLine{00739\ \ \ \ \ \ \ \ \ \}}
<a id='L688' name='L688'></a>\DoxyCodeLine{00740\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ クロック周波数の設定\ */}}
<a id='L689' name='L689'></a>\DoxyCodeLine{00741\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
<a id='L690' name='L690'></a>\DoxyCodeLine{00742\ \ \ \ \ \ \ \ \ \ \ \ \ clock\_end\ =\ clock();}
<a id='L691' name='L691'></a>\DoxyCodeLine{00743\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{while}(clock\_end\ -\/\ clock\_begin\ <\ CLOCKS\_PER\_SEC\ /\ sys-\/>clocks);}
<a id='L692' name='L692'></a>\DoxyCodeLine{00744\ \ \ \ \ \}}
<a id='L693' name='L693'></a>\DoxyCodeLine{00745\ execfin:}
<a id='L694' name='L694'></a>\DoxyCodeLine{00746\ \ \ \ \ FREE(s);}
<a id='L695' name='L695'></a>\DoxyCodeLine{00747\ \ \ \ \ freebps();}
<a id='L696' name='L696'></a>\DoxyCodeLine{00748\ \ \ \ \ free\_cmdtable(HASH\_CODE);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ 命令のコードとタイプがキーのハッシュ表を解放\ */}}
<a id='L697' name='L697'></a>\DoxyCodeLine{00749\ \ \ \ \ \textcolor{keywordflow}{if}(cerr-\/>num\ >\ 0)\ \{}
<a id='L698' name='L698'></a>\DoxyCodeLine{00750\ \ \ \ \ \ \ \ \ fprintf(stderr,\ \textcolor{stringliteral}{"{}Execute\ error\ -\/\ \%d:\ \%s\(\backslash\)n"{}},\ cerr-\/>num,\ cerr-\/>msg);}
<a id='L699' name='L699'></a>\DoxyCodeLine{00751\ \ \ \ \ \}}
<a id='L700' name='L700'></a>\DoxyCodeLine{00752\ \}}
<a id='L701' name='L701'></a>
<a id='L702' name='L702'></a>\end{DoxyCode}
</pre>
<hr />
<a id='BOTTOM' name='BOTTOM'></a>
<em class='comment'>/* [<][>][^][v]<a href='#TOP'>[top]</a>[bottom]<a href='../mains.html'>[index]</a><a href='../help.html'>[help]</a> */</em>
</body>
</html>