root/doc_inner/gnu_global/S/175.html

/* [<][>][^][v][top][bottom][index][help] */
<!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/struct_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>/struct_8c_source.tex</h2>
<em class='comment'>/* [&lt;][&gt;][^][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{struct.\+c}
<a id='L2' name='L2'></a>\label{struct_8c_source}\index{src/struct.c@{src/struct.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\ "{}struct.h"{}}}
<a id='L6' name='L6'></a>\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#include\ "{}exec.h"{}}}
<a id='L7' name='L7'></a>\DoxyCodeLine{00003\ }
<a id='L8' name='L8'></a>\DoxyCodeLine{00007\ SYSTEM\ *sys\ =\ NULL;}
<a id='L9' name='L9'></a>\DoxyCodeLine{00008\ }
<a id='L10' name='L10'></a>\DoxyCodeLine{00012\ EXECPTR\ *execptr\ =\ NULL;}
<a id='L11' name='L11'></a>\DoxyCodeLine{00013\ }
<a id='L12' name='L12'></a>\DoxyCodeLine{00017\ \textcolor{keyword}{static}\ \textcolor{keyword}{const}\ COMET2CMD\ comet2cmd[]\ =\ \{}
<a id='L13' name='L13'></a>\DoxyCodeLine{00018\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}NOP"{}},\ NONE,\ 0x0,\ nop\ \},}
<a id='L14' name='L14'></a>\DoxyCodeLine{00019\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}LD"{}},\ R\_ADR\_X,\ 0x1000,\ ld\_r\_adr\_x\ \},}
<a id='L15' name='L15'></a>\DoxyCodeLine{00020\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}ST"{}},\ R\_ADR\_X,\ 0x1100,\ st\ \},}
<a id='L16' name='L16'></a>\DoxyCodeLine{00021\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}LAD"{}},\ R\_ADR\_X,\ 0x1200,\ lad\ \},}
<a id='L17' name='L17'></a>\DoxyCodeLine{00022\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}LD"{}},\ R1\_R2,\ 0x1400,\ ld\_r1\_r2\ \},}
<a id='L18' name='L18'></a>\DoxyCodeLine{00023\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}ADDA"{}},\ R\_ADR\_X,\ 0x2000,\ adda\_r\_adr\_x\ \},}
<a id='L19' name='L19'></a>\DoxyCodeLine{00024\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}SUBA"{}},\ R\_ADR\_X,\ 0x2100,\ suba\_r\_adr\_x\ \},}
<a id='L20' name='L20'></a>\DoxyCodeLine{00025\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}ADDL"{}},\ R\_ADR\_X,\ 0x2200,\ addl\_r\_adr\_x\ \},}
<a id='L21' name='L21'></a>\DoxyCodeLine{00026\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}SUBL"{}},\ R\_ADR\_X,\ 0x2300,\ subl\_r\_adr\_x\ \},}
<a id='L22' name='L22'></a>\DoxyCodeLine{00027\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}ADDA"{}},\ R1\_R2,\ 0x2400,\ adda\_r1\_r2\ \},}
<a id='L23' name='L23'></a>\DoxyCodeLine{00028\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}SUBA"{}},\ R1\_R2,\ 0x2500,\ suba\_r1\_r2\ \},}
<a id='L24' name='L24'></a>\DoxyCodeLine{00029\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}ADDL"{}},\ R1\_R2,\ 0x2600,\ addl\_r1\_r2\ \},}
<a id='L25' name='L25'></a>\DoxyCodeLine{00030\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}SUBL"{}},\ R1\_R2,\ 0x2700,\ subl\_r1\_r2\ \},}
<a id='L26' name='L26'></a>\DoxyCodeLine{00031\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}AND"{}},\ R\_ADR\_X,\ 0x3000,\ and\_r\_adr\_x\ \},}
<a id='L27' name='L27'></a>\DoxyCodeLine{00032\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}OR"{}},\ R\_ADR\_X,\ 0x3100,\ or\_r\_adr\_x\ \},}
<a id='L28' name='L28'></a>\DoxyCodeLine{00033\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}XOR"{}},\ R\_ADR\_X,\ 0x3200,\ xor\_r\_adr\_x\ \},}
<a id='L29' name='L29'></a>\DoxyCodeLine{00034\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}AND"{}},\ R1\_R2,\ 0x3400,\ and\_r1\_r2\ \},}
<a id='L30' name='L30'></a>\DoxyCodeLine{00035\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}OR"{}},\ R1\_R2,\ 0x3500,\ or\_r1\_r2\ \},}
<a id='L31' name='L31'></a>\DoxyCodeLine{00036\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}XOR"{}},\ R1\_R2,\ 0x3600,\ xor\_r1\_r2\ \},}
<a id='L32' name='L32'></a>\DoxyCodeLine{00037\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}CPA"{}},\ R\_ADR\_X,\ 0x4000,\ cpa\_r\_adr\_x\ \},}
<a id='L33' name='L33'></a>\DoxyCodeLine{00038\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}CPL"{}},\ R\_ADR\_X,\ 0x4100,\ cpl\_r\_adr\_x\ \},}
<a id='L34' name='L34'></a>\DoxyCodeLine{00039\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}CPA"{}},\ R1\_R2,\ 0x4400,\ cpa\_r1\_r2\ \},}
<a id='L35' name='L35'></a>\DoxyCodeLine{00040\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}CPL"{}},\ R1\_R2,\ 0x4500,\ cpl\_r1\_r2\ \},}
<a id='L36' name='L36'></a>\DoxyCodeLine{00041\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}SLA"{}},\ R\_ADR\_X,\ 0x5000,\ sla\ \},}
<a id='L37' name='L37'></a>\DoxyCodeLine{00042\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}SRA"{}},\ R\_ADR\_X,\ 0x5100,\ sra\ \},}
<a id='L38' name='L38'></a>\DoxyCodeLine{00043\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}SLL"{}},\ R\_ADR\_X,\ 0x5200,\ sll\ \},}
<a id='L39' name='L39'></a>\DoxyCodeLine{00044\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}SRL"{}},\ R\_ADR\_X,\ 0x5300,\ srl\ \},}
<a id='L40' name='L40'></a>\DoxyCodeLine{00045\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}JMI"{}},\ ADR\_X,\ 0x6100,\ jmi\ \},}
<a id='L41' name='L41'></a>\DoxyCodeLine{00046\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}JNZ"{}},\ ADR\_X,\ 0x6200,\ jnz\ \},}
<a id='L42' name='L42'></a>\DoxyCodeLine{00047\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}JZE"{}},\ ADR\_X,\ 0x6300,\ jze\ \},}
<a id='L43' name='L43'></a>\DoxyCodeLine{00048\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}JUMP"{}},\ ADR\_X,\ 0x6400,\ jump\ \},}
<a id='L44' name='L44'></a>\DoxyCodeLine{00049\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}JPL"{}},\ ADR\_X,\ 0x6500,\ jpl\ \},}
<a id='L45' name='L45'></a>\DoxyCodeLine{00050\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}JOV"{}},\ ADR\_X,\ 0x6600,\ jov\ \},}
<a id='L46' name='L46'></a>\DoxyCodeLine{00051\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}PUSH"{}},\ ADR\_X,\ 0x7000,\ push\ \},}
<a id='L47' name='L47'></a>\DoxyCodeLine{00052\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}POP"{}},\ R\_,\ 0x7100,\ pop\ \},}
<a id='L48' name='L48'></a>\DoxyCodeLine{00053\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}CALL"{}},\ ADR\_X,\ 0x8000,\ call\ \},}
<a id='L49' name='L49'></a>\DoxyCodeLine{00054\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}SVC"{}},\ ADR\_X,\ 0xF000,\ svc\ \},}
<a id='L50' name='L50'></a>\DoxyCodeLine{00055\ \ \ \ \ \{\ \textcolor{stringliteral}{"{}RET"{}},\ NONE,\ 0x8100,\ ret\ \},}
<a id='L51' name='L51'></a>\DoxyCodeLine{00056\ \};}
<a id='L52' name='L52'></a>\DoxyCodeLine{00057\ }
<a id='L53' name='L53'></a>\DoxyCodeLine{00061\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ comet2cmdsize\ =\ ARRAYSIZE(comet2cmd);}
<a id='L54' name='L54'></a>\DoxyCodeLine{00062\ }
<a id='L55' name='L55'></a>\DoxyCodeLine{00066\ \textcolor{keyword}{enum}\ \{}
<a id='L56' name='L56'></a>\DoxyCodeLine{00067\ \ \ \ \ CMDTABSIZE\ =\ 41,}
<a id='L57' name='L57'></a>\DoxyCodeLine{00068\ \};}
<a id='L58' name='L58'></a>\DoxyCodeLine{00069\ }
<a id='L59' name='L59'></a>\DoxyCodeLine{00073\ \textcolor{keyword}{static}\ CMDTAB\ *cmdtab[HASH\_MAX][CMDTABSIZE]\ =\ \{\{NULL\}\};}
<a id='L60' name='L60'></a>\DoxyCodeLine{00074\ }
<a id='L61' name='L61'></a>\DoxyCodeLine{00078\ \textcolor{keywordtype}{unsigned}\ hash\_cmdtype(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *cmd,\ CMDTYPE\ type);}
<a id='L62' name='L62'></a>\DoxyCodeLine{00079\ }
<a id='L63' name='L63'></a>\DoxyCodeLine{00083\ \textcolor{keywordtype}{unsigned}\ hash\_code(WORD\ code);}
<a id='L64' name='L64'></a>\DoxyCodeLine{00084\ }
<a id='L65' name='L65'></a>\DoxyCodeLine{00088\ \textcolor{keywordtype}{unsigned}\ hash\_cmdtype(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *cmd,\ CMDTYPE\ type)}
<a id='L66' name='L66'></a>\DoxyCodeLine{00089\ \{}
<a id='L67' name='L67'></a>\DoxyCodeLine{00090\ \ \ \ \ HKEY\ *keys[2]\ =\ \{NULL\};}
<a id='L68' name='L68'></a>\DoxyCodeLine{00091\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ hashval\ =\ 0;}
<a id='L69' name='L69'></a>\DoxyCodeLine{00092\ }
<a id='L70' name='L70'></a>\DoxyCodeLine{00093\ \ \ \ \ \textcolor{comment}{/*\ 命令名を設定\ */}}
<a id='L71' name='L71'></a>\DoxyCodeLine{00094\ \ \ \ \ keys[0]\ =\ malloc\_chk(\textcolor{keyword}{sizeof}(HKEY),\ \textcolor{stringliteral}{"{}hash\_cmdtype.keys[0]"{}});}
<a id='L72' name='L72'></a>\DoxyCodeLine{00095\ \ \ \ \ keys[0]-\/&gt;type\ =\ CHARS;}
<a id='L73' name='L73'></a>\DoxyCodeLine{00096\ \ \ \ \ keys[0]-\/&gt;val.s\ =\ strdup\_chk(cmd,\ \textcolor{stringliteral}{"{}keys[0].val.s"{}});}
<a id='L74' name='L74'></a>\DoxyCodeLine{00097\ \ \ \ \ \textcolor{comment}{/*\ 命令タイプを設定\ */}}
<a id='L75' name='L75'></a>\DoxyCodeLine{00098\ \ \ \ \ keys[1]\ =\ malloc\_chk(\textcolor{keyword}{sizeof}(HKEY),\ \textcolor{stringliteral}{"{}hash\_cmdtype.keys[1]"{}});}
<a id='L76' name='L76'></a>\DoxyCodeLine{00099\ \ \ \ \ keys[1]-\/&gt;type\ =\ INT;}
<a id='L77' name='L77'></a>\DoxyCodeLine{00100\ \ \ \ \ keys[1]-\/&gt;val.i\ =\ (int)(type\ \&amp;\ 070);}
<a id='L78' name='L78'></a>\DoxyCodeLine{00101\ \ \ \ \ \textcolor{comment}{/*\ ハッシュ値の計算\ */}}
<a id='L79' name='L79'></a>\DoxyCodeLine{00102\ \ \ \ \ hashval\ =\ hash(2,\ keys,\ CMDTABSIZE);}
<a id='L80' name='L80'></a>\DoxyCodeLine{00103\ \ \ \ \ FREE(keys[0]-\/&gt;val.s);}
<a id='L81' name='L81'></a>\DoxyCodeLine{00104\ \ \ \ \ FREE(keys[0]);}
<a id='L82' name='L82'></a>\DoxyCodeLine{00105\ \ \ \ \ FREE(keys[1]);}
<a id='L83' name='L83'></a>\DoxyCodeLine{00106\ \ \ \ \ \textcolor{comment}{/*\ ハッシュ値を返す\ */}}
<a id='L84' name='L84'></a>\DoxyCodeLine{00107\ \ \ \ \ \textcolor{keywordflow}{return}\ hashval;}
<a id='L85' name='L85'></a>\DoxyCodeLine{00108\ \}}
<a id='L86' name='L86'></a>\DoxyCodeLine{00109\ }
<a id='L87' name='L87'></a>\DoxyCodeLine{00113\ \textcolor{keywordtype}{bool}\ create\_cmdtable(CMDTAB\_HASH\ hash)}
<a id='L88' name='L88'></a>\DoxyCodeLine{00114\ \{}
<a id='L89' name='L89'></a>\DoxyCodeLine{00115\ \ \ \ \ CMDTAB\ *p\ =\ NULL;}
<a id='L90' name='L90'></a>\DoxyCodeLine{00116\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ hashval;}
<a id='L91' name='L91'></a>\DoxyCodeLine{00117\ }
<a id='L92' name='L92'></a>\DoxyCodeLine{00118\ \ \ \ \ \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ &lt;\ comet2cmdsize;\ i++)\ \{}
<a id='L93' name='L93'></a>\DoxyCodeLine{00119\ \ \ \ \ \ \ \ \ p\ =\ malloc\_chk(\textcolor{keyword}{sizeof}(CMDTAB),\ \textcolor{stringliteral}{"{}create\_cmdtable.p"{}});}
<a id='L94' name='L94'></a>\DoxyCodeLine{00120\ \ \ \ \ \ \ \ \ p-\/&gt;cmd\ =\ \&amp;comet2cmd[i];}
<a id='L95' name='L95'></a>\DoxyCodeLine{00121\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(hash\ ==\ HASH\_CMDTYPE)\ \{}
<a id='L96' name='L96'></a>\DoxyCodeLine{00122\ \ \ \ \ \ \ \ \ \ \ \ \ hashval\ =\ hash\_cmdtype(comet2cmd[i].name,\ comet2cmd[i].type);}
<a id='L97' name='L97'></a>\DoxyCodeLine{00123\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}(hash\ ==\ HASH\_CODE)\ \{}
<a id='L98' name='L98'></a>\DoxyCodeLine{00124\ \ \ \ \ \ \ \ \ \ \ \ \ hashval\ =\ hash\_code(comet2cmd[i].code);}
<a id='L99' name='L99'></a>\DoxyCodeLine{00125\ \ \ \ \ \ \ \ \ \}}
<a id='L100' name='L100'></a>\DoxyCodeLine{00126\ \ \ \ \ \ \ \ \ p-\/&gt;next\ =\ cmdtab[hash][hashval];}
<a id='L101' name='L101'></a>\DoxyCodeLine{00127\ \ \ \ \ \ \ \ \ cmdtab[hash][hashval]\ =\ p;}
<a id='L102' name='L102'></a>\DoxyCodeLine{00128\ \ \ \ \ \}}
<a id='L103' name='L103'></a>\DoxyCodeLine{00129\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
<a id='L104' name='L104'></a>\DoxyCodeLine{00130\ \}}
<a id='L105' name='L105'></a>\DoxyCodeLine{00131\ }
<a id='L106' name='L106'></a>\DoxyCodeLine{00135\ \textcolor{keywordtype}{void}\ free\_cmdtable(CMDTAB\_HASH\ hash)}
<a id='L107' name='L107'></a>\DoxyCodeLine{00136\ \{}
<a id='L108' name='L108'></a>\DoxyCodeLine{00137\ \ \ \ \ CMDTAB\ *p\ =\ NULL;}
<a id='L109' name='L109'></a>\DoxyCodeLine{00138\ \ \ \ \ CMDTAB\ *q\ =\ NULL;}
<a id='L110' name='L110'></a>\DoxyCodeLine{00139\ }
<a id='L111' name='L111'></a>\DoxyCodeLine{00140\ \ \ \ \ \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ &lt;\ CMDTABSIZE;\ i++)\ \{}
<a id='L112' name='L112'></a>\DoxyCodeLine{00141\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(p\ =\ cmdtab[hash][i];\ p\ !=\ NULL;\ p\ =\ q)\ \{}
<a id='L113' name='L113'></a>\DoxyCodeLine{00142\ \ \ \ \ \ \ \ \ \ \ \ \ q\ =\ p-\/&gt;next;}
<a id='L114' name='L114'></a>\DoxyCodeLine{00143\ \ \ \ \ \ \ \ \ \ \ \ \ FREE(p);}
<a id='L115' name='L115'></a>\DoxyCodeLine{00144\ \ \ \ \ \ \ \ \ \}}
<a id='L116' name='L116'></a>\DoxyCodeLine{00145\ \ \ \ \ \ \ \ \ cmdtab[hash][i]\ =\ NULL;}
<a id='L117' name='L117'></a>\DoxyCodeLine{00146\ \ \ \ \ \}}
<a id='L118' name='L118'></a>\DoxyCodeLine{00147\ \}}
<a id='L119' name='L119'></a>\DoxyCodeLine{00148\ }
<a id='L120' name='L120'></a>\DoxyCodeLine{00153\ WORD\ getcmdcode(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *cmd,\ CMDTYPE\ type)}
<a id='L121' name='L121'></a>\DoxyCodeLine{00154\ \{}
<a id='L122' name='L122'></a>\DoxyCodeLine{00155\ \ \ \ \ CMDTAB\ *p\ =\ NULL;}
<a id='L123' name='L123'></a>\DoxyCodeLine{00156\ \ \ \ \ WORD\ w\ =\ 0xFFFF;}
<a id='L124' name='L124'></a>\DoxyCodeLine{00157\ }
<a id='L125' name='L125'></a>\DoxyCodeLine{00158\ \ \ \ \ assert(cmd\ !=\ NULL);}
<a id='L126' name='L126'></a>\DoxyCodeLine{00159\ \ \ \ \ \textcolor{keywordflow}{for}(p\ =\ cmdtab[HASH\_CMDTYPE][hash\_cmdtype(cmd,\ type)];\ p\ !=\ NULL;\ p\ =\ p-\/&gt;next)\ \{}
<a id='L127' name='L127'></a>\DoxyCodeLine{00160\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(strcmp(cmd,\ p-\/&gt;cmd-\/&gt;name)\ ==\ 0\ \&amp;\&amp;\ type\ ==\ p-\/&gt;cmd-\/&gt;type)\ \{}
<a id='L128' name='L128'></a>\DoxyCodeLine{00161\ \ \ \ \ \ \ \ \ \ \ \ \ w\ =\ p-\/&gt;cmd-\/&gt;code;}
<a id='L129' name='L129'></a>\DoxyCodeLine{00162\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L130' name='L130'></a>\DoxyCodeLine{00163\ \ \ \ \ \ \ \ \ \}}
<a id='L131' name='L131'></a>\DoxyCodeLine{00164\ \ \ \ \ \}}
<a id='L132' name='L132'></a>\DoxyCodeLine{00165\ \ \ \ \ \textcolor{keywordflow}{return}\ w;}
<a id='L133' name='L133'></a>\DoxyCodeLine{00166\ \}}
<a id='L134' name='L134'></a>\DoxyCodeLine{00167\ }
<a id='L135' name='L135'></a>\DoxyCodeLine{00171\ \textcolor{keywordtype}{unsigned}\ hash\_code(WORD\ code)}
<a id='L136' name='L136'></a>\DoxyCodeLine{00172\ \{}
<a id='L137' name='L137'></a>\DoxyCodeLine{00173\ \ \ \ \ HKEY\ *keys[1]\ =\ \{NULL\};}
<a id='L138' name='L138'></a>\DoxyCodeLine{00174\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ h\ =\ 0;}
<a id='L139' name='L139'></a>\DoxyCodeLine{00175\ }
<a id='L140' name='L140'></a>\DoxyCodeLine{00176\ \ \ \ \ \textcolor{comment}{/*\ 命令コードを設定\ */}}
<a id='L141' name='L141'></a>\DoxyCodeLine{00177\ \ \ \ \ keys[0]\ =\ malloc\_chk(\textcolor{keyword}{sizeof}(HKEY),\ \textcolor{stringliteral}{"{}hash\_code.key"{}});}
<a id='L142' name='L142'></a>\DoxyCodeLine{00178\ \ \ \ \ keys[0]-\/&gt;type\ =\ INT;}
<a id='L143' name='L143'></a>\DoxyCodeLine{00179\ \ \ \ \ keys[0]-\/&gt;val.i\ =\ (int)(code\ &gt;&gt;\ 8);}
<a id='L144' name='L144'></a>\DoxyCodeLine{00180\ \ \ \ \ h\ =\ hash(1,\ keys,\ CMDTABSIZE);}
<a id='L145' name='L145'></a>\DoxyCodeLine{00181\ \ \ \ \ FREE(keys[0]);}
<a id='L146' name='L146'></a>\DoxyCodeLine{00182\ \ \ \ \ \textcolor{keywordflow}{return}\ h;}
<a id='L147' name='L147'></a>\DoxyCodeLine{00183\ \}}
<a id='L148' name='L148'></a>\DoxyCodeLine{00184\ }
<a id='L149' name='L149'></a>\DoxyCodeLine{00188\ \textcolor{keyword}{const}\ void\ (*getcmdptr(WORD\ code))}
<a id='L150' name='L150'></a>\DoxyCodeLine{00189\ \{}
<a id='L151' name='L151'></a>\DoxyCodeLine{00190\ \ \ \ \ CMDTAB\ *t\ =\ NULL;}
<a id='L152' name='L152'></a>\DoxyCodeLine{00191\ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *ptr\ =\ NULL;}
<a id='L153' name='L153'></a>\DoxyCodeLine{00192\ }
<a id='L154' name='L154'></a>\DoxyCodeLine{00193\ \ \ \ \ \textcolor{keywordflow}{for}(t\ =\ cmdtab[HASH\_CODE][hash\_code(code)];\ t\ !=\ NULL;\ t\ =\ t-\/&gt;next)\ \{}
<a id='L155' name='L155'></a>\DoxyCodeLine{00194\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(code\ ==\ t-\/&gt;cmd-\/&gt;code)\ \{}
<a id='L156' name='L156'></a>\DoxyCodeLine{00195\ \ \ \ \ \ \ \ \ \ \ \ \ ptr\ =\ t-\/&gt;cmd-\/&gt;ptr;}
<a id='L157' name='L157'></a>\DoxyCodeLine{00196\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L158' name='L158'></a>\DoxyCodeLine{00197\ \ \ \ \ \ \ \ \ \}}
<a id='L159' name='L159'></a>\DoxyCodeLine{00198\ \ \ \ \ \}}
<a id='L160' name='L160'></a>\DoxyCodeLine{00199\ \ \ \ \ \textcolor{keywordflow}{return}\ ptr;}
<a id='L161' name='L161'></a>\DoxyCodeLine{00200\ \}}
<a id='L162' name='L162'></a>\DoxyCodeLine{00201\ }
<a id='L163' name='L163'></a>\DoxyCodeLine{00205\ CMDTYPE\ getcmdtype(WORD\ code)}
<a id='L164' name='L164'></a>\DoxyCodeLine{00206\ \{}
<a id='L165' name='L165'></a>\DoxyCodeLine{00207\ \ \ \ \ CMDTAB\ *t\ =\ NULL;}
<a id='L166' name='L166'></a>\DoxyCodeLine{00208\ \ \ \ \ CMDTYPE\ type\ =\ NONE;}
<a id='L167' name='L167'></a>\DoxyCodeLine{00209\ }
<a id='L168' name='L168'></a>\DoxyCodeLine{00210\ \ \ \ \ \textcolor{keywordflow}{for}(t\ =\ cmdtab[HASH\_CODE][hash\_code(code)];\ t\ !=\ NULL;\ t\ =\ t-\/&gt;next)\ \{}
<a id='L169' name='L169'></a>\DoxyCodeLine{00211\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(code\ ==\ t-\/&gt;cmd-\/&gt;code)\ \{}
<a id='L170' name='L170'></a>\DoxyCodeLine{00212\ \ \ \ \ \ \ \ \ \ \ \ \ type\ =\ t-\/&gt;cmd-\/&gt;type;}
<a id='L171' name='L171'></a>\DoxyCodeLine{00213\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L172' name='L172'></a>\DoxyCodeLine{00214\ \ \ \ \ \ \ \ \ \}}
<a id='L173' name='L173'></a>\DoxyCodeLine{00215\ \ \ \ \ \}}
<a id='L174' name='L174'></a>\DoxyCodeLine{00216\ \ \ \ \ \textcolor{keywordflow}{return}\ type;}
<a id='L175' name='L175'></a>\DoxyCodeLine{00217\ \}}
<a id='L176' name='L176'></a>\DoxyCodeLine{00218\ }
<a id='L177' name='L177'></a>\DoxyCodeLine{00222\ \textcolor{keywordtype}{char}\ *getcmdname(WORD\ code)}
<a id='L178' name='L178'></a>\DoxyCodeLine{00223\ \{}
<a id='L179' name='L179'></a>\DoxyCodeLine{00224\ \ \ \ \ CMDTAB\ *t\ =\ NULL;}
<a id='L180' name='L180'></a>\DoxyCodeLine{00225\ \ \ \ \ \textcolor{keywordtype}{char}\ *cmd\ =\ NULL;}
<a id='L181' name='L181'></a>\DoxyCodeLine{00226\ }
<a id='L182' name='L182'></a>\DoxyCodeLine{00227\ \ \ \ \ \textcolor{keywordflow}{for}(t\ =\ cmdtab[HASH\_CODE][hash\_code(code)];\ t\ !=\ NULL;\ t\ =\ t-\/&gt;next)\ \{}
<a id='L183' name='L183'></a>\DoxyCodeLine{00228\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(code\ ==\ t-\/&gt;cmd-\/&gt;code)\ \{}
<a id='L184' name='L184'></a>\DoxyCodeLine{00229\ \ \ \ \ \ \ \ \ \ \ \ \ cmd\ =\ t-\/&gt;cmd-\/&gt;name;}
<a id='L185' name='L185'></a>\DoxyCodeLine{00230\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
<a id='L186' name='L186'></a>\DoxyCodeLine{00231\ \ \ \ \ \ \ \ \ \}}
<a id='L187' name='L187'></a>\DoxyCodeLine{00232\ \ \ \ \ \}}
<a id='L188' name='L188'></a>\DoxyCodeLine{00233\ \ \ \ \ \textcolor{keywordflow}{return}\ cmd;}
<a id='L189' name='L189'></a>\DoxyCodeLine{00234\ \}}
<a id='L190' name='L190'></a>\DoxyCodeLine{00235\ }
<a id='L191' name='L191'></a>\DoxyCodeLine{00239\ }
<a id='L192' name='L192'></a>\DoxyCodeLine{00240\ \textcolor{keywordtype}{char}\ *grstr(WORD\ word)}
<a id='L193' name='L193'></a>\DoxyCodeLine{00241\ \{}
<a id='L194' name='L194'></a>\DoxyCodeLine{00242\ \ \ \ \ assert(word\ &lt;=\ 7);}
<a id='L195' name='L195'></a>\DoxyCodeLine{00243\ \ \ \ \ \textcolor{keywordtype}{char}\ *str\ =\ NULL;}
<a id='L196' name='L196'></a>\DoxyCodeLine{00244\ }
<a id='L197' name='L197'></a>\DoxyCodeLine{00245\ \ \ \ \ str\ =\ malloc\_chk(3\ +\ 1,\ \textcolor{stringliteral}{"{}grstr.str"{}});}
<a id='L198' name='L198'></a>\DoxyCodeLine{00246\ \ \ \ \ sprintf(str,\ \textcolor{stringliteral}{"{}GR\%d"{}},\ word);}
<a id='L199' name='L199'></a>\DoxyCodeLine{00247\ \ \ \ \ \textcolor{keywordflow}{return}\ str;}
<a id='L200' name='L200'></a>\DoxyCodeLine{00248\ \}}
<a id='L201' name='L201'></a>\DoxyCodeLine{00249\ }
<a id='L202' name='L202'></a>\DoxyCodeLine{00253\ \textcolor{keywordtype}{void}\ reset(\textcolor{keywordtype}{int}\ memsize,\ \textcolor{keywordtype}{int}\ clocks)}
<a id='L203' name='L203'></a>\DoxyCodeLine{00254\ \{}
<a id='L204' name='L204'></a>\DoxyCodeLine{00255\ \ \ \ \ sys\ =\ malloc\_chk(\textcolor{keyword}{sizeof}(SYSTEM),\ \textcolor{stringliteral}{"{}sys"{}});}
<a id='L205' name='L205'></a>\DoxyCodeLine{00256\ \ \ \ \ \textcolor{comment}{/*\ メモリサイズを設定\ */}}
<a id='L206' name='L206'></a>\DoxyCodeLine{00257\ \ \ \ \ sys-\/&gt;memsize\ =\ memsize;}
<a id='L207' name='L207'></a>\DoxyCodeLine{00258\ \ \ \ \ \textcolor{comment}{/*\ クロック周波数を設定\ */}}
<a id='L208' name='L208'></a>\DoxyCodeLine{00259\ \ \ \ \ sys-\/&gt;clocks\ =\ clocks;}
<a id='L209' name='L209'></a>\DoxyCodeLine{00260\ \ \ \ \ \textcolor{comment}{/*\ メモリを初期化\ */}}
<a id='L210' name='L210'></a>\DoxyCodeLine{00261\ \ \ \ \ sys-\/&gt;memory\ =\ calloc\_chk(sys-\/&gt;memsize,\ \textcolor{keyword}{sizeof}(WORD),\ \textcolor{stringliteral}{"{}memory"{}});}
<a id='L211' name='L211'></a>\DoxyCodeLine{00262\ \ \ \ \ \textcolor{comment}{/*\ CPUを初期化\ */}}
<a id='L212' name='L212'></a>\DoxyCodeLine{00263\ \ \ \ \ sys-\/&gt;cpu\ =\ malloc\_chk(\textcolor{keyword}{sizeof}(CPU),\ \textcolor{stringliteral}{"{}cpu"{}});}
<a id='L213' name='L213'></a>\DoxyCodeLine{00264\ \ \ \ \ \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ &lt;\ GRSIZE;\ i++)\ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ 汎用レジスタ\ \ */}}
<a id='L214' name='L214'></a>\DoxyCodeLine{00265\ \ \ \ \ \ \ \ \ sys-\/&gt;cpu-\/&gt;gr[i]\ =\ 0x0;}
<a id='L215' name='L215'></a>\DoxyCodeLine{00266\ \ \ \ \ \}}
<a id='L216' name='L216'></a>\DoxyCodeLine{00267\ \ \ \ \ sys-\/&gt;cpu-\/&gt;sp\ =\ sys-\/&gt;memsize;\ \ \ \textcolor{comment}{/*\ スタックポインタ\ */}}
<a id='L217' name='L217'></a>\DoxyCodeLine{00268\ \ \ \ \ sys-\/&gt;cpu-\/&gt;pr\ =\ 0x0;\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ プログラムレジスタ\ */}}
<a id='L218' name='L218'></a>\DoxyCodeLine{00269\ \ \ \ \ sys-\/&gt;cpu-\/&gt;fr\ =\ 0x0;\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ フラグレジスタ\ */}}
<a id='L219' name='L219'></a>\DoxyCodeLine{00270\ \ \ \ \ \textcolor{comment}{/*\ CASL2プログラムの開始と終了のアドレスを初期化\ */}}
<a id='L220' name='L220'></a>\DoxyCodeLine{00271\ \ \ \ \ execptr\ =\ malloc\_chk(\textcolor{keyword}{sizeof}(EXECPTR),\ \textcolor{stringliteral}{"{}execptr"{}});}
<a id='L221' name='L221'></a>\DoxyCodeLine{00272\ \ \ \ \ execptr-\/&gt;stop\ =\ \textcolor{keyword}{false};}
<a id='L222' name='L222'></a>\DoxyCodeLine{00273\ \}}
<a id='L223' name='L223'></a>\DoxyCodeLine{00274\ }
<a id='L224' name='L224'></a>\DoxyCodeLine{00278\ \textcolor{keywordtype}{void}\ shutdown()}
<a id='L225' name='L225'></a>\DoxyCodeLine{00279\ \{}
<a id='L226' name='L226'></a>\DoxyCodeLine{00280\ \ \ \ \ FREE(execptr);}
<a id='L227' name='L227'></a>\DoxyCodeLine{00281\ \ \ \ \ FREE(sys-\/&gt;memory);}
<a id='L228' name='L228'></a>\DoxyCodeLine{00282\ \ \ \ \ FREE(sys-\/&gt;cpu);}
<a id='L229' name='L229'></a>\DoxyCodeLine{00283\ \ \ \ \ FREE(sys);}
<a id='L230' name='L230'></a>\DoxyCodeLine{00284\ \}}
<a id='L231' name='L231'></a>
<a id='L232' name='L232'></a>\end{DoxyCode}
</pre>
<hr />
<a id='BOTTOM' name='BOTTOM'></a>
<em class='comment'>/* [&lt;][&gt;][^][v]<a href='#TOP'>[top]</a>[bottom]<a href='../mains.html'>[index]</a><a href='../help.html'>[help]</a> */</em>
</body>
</html>

/* [<][>][^][v][top][bottom][index][help] */