<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=LIB_4</id>
	<title>LIB 4 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=LIB_4"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=LIB_4&amp;action=history"/>
	<updated>2026-05-15T08:40:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=LIB_4&amp;diff=83363&amp;oldid=prev</id>
		<title>Maintenance script: Repair MoniWiki formatting after migration</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=LIB_4&amp;diff=83363&amp;oldid=prev"/>
		<updated>2026-03-26T14:01:39Z</updated>

		<summary type="html">&lt;p&gt;Repair MoniWiki formatting after migration&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:01, 26 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;손이 고생을 많이 해서 그렇지 소스는 별로 많지 않다..다만 다 손으로 치라구 하니 힘들었을 뿐&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;손이 고생을 많이 해서 그렇지 소스는 별로 많지 않다..다만 다 손으로 치라구 하니 힘들었을 뿐&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;여하튼 그래서 주요부분의 소스는 다 보여준 것 같다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;여하튼 그래서 주요부분의 소스는 다 보여준 것 같다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;사실 U_C_OS 도 주석과 쓰잘대기 없는 코드가 좀 많다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;사실 U_C_OS 도 주석과 쓰잘대기 없는 코드가 좀 많다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l71&quot;&gt;Line 71:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 71:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[REAL_LIBOS]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[REAL_LIBOS]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=LIB_4&amp;diff=34054&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=LIB_4&amp;diff=34054&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;손이 고생을 많이 해서 그렇지 소스는 별로 많지 않다..다만 다 손으로 치라구 하니 힘들었을 뿐&lt;br /&gt;
여하튼 그래서 주요부분의 소스는 다 보여준 것 같다.&lt;br /&gt;
사실 U_C_OS 도 주석과 쓰잘대기 없는 코드가 좀 많다.&lt;br /&gt;
그리고 세마포어와 이벤트에 관한 코드는 대부분 비스므레 하다...이유는 거의 동기화하는 방법이&lt;br /&gt;
비슷하게 때문이다. 그래서 중요코드를 보면 그렇게 많지 않다..거기다 U_C_OS-I에서 U_C_OS_II로 가는 도중의&lt;br /&gt;
호환성 때문에 많은 주석이 더 필요했졌다...암튼 그래서..내 코드는 짧다....&lt;br /&gt;
 #if !defined(LIB_STACK_CPP)&lt;br /&gt;
 #define LIB_STACK_CPP&lt;br /&gt;
 void LIB_STACK_INIT (void (*task)(void),INT16U * Stack)&lt;br /&gt;
 {&lt;br /&gt;
 	*Stack-- = 0x0000;&lt;br /&gt;
 	*Stack-- = (INT16U)FP_SEG(task);&lt;br /&gt;
 	*Stack-- = (INT16U)FP_OFF(task);&lt;br /&gt;
 	*Stack-- = (INT16U)0x0202; // Flag Register&lt;br /&gt;
 	*Stack-- = (INT16U)FP_SEG(task);&lt;br /&gt;
 	*Stack-- = (INT16U)FP_OFF(task);&lt;br /&gt;
 	*Stack-- = (INT16U)0xAAAA;// AX&lt;br /&gt;
 	*Stack-- = (INT16U)0xBBBB;// BX&lt;br /&gt;
 	*Stack-- = (INT16U)0xCCCC;// CX&lt;br /&gt;
 	*Stack-- = (INT16U)0xDDDD;// DX&lt;br /&gt;
 	*Stack-- = (INT16U)0xEEEE;// ES&lt;br /&gt;
 	*Stack-- = _DS;&lt;br /&gt;
 	*Stack-- = (INT16U)0x0000;// SI&lt;br /&gt;
 	*Stack-- = (INT16U)0x0000;// DI&lt;br /&gt;
 	*Stack-- = (INT16U)0xFFFF;// BP&lt;br /&gt;
 }&lt;br /&gt;
스택 사이즈 구하는 부분&lt;br /&gt;
 INT16U LIB_STACK_SIZE (INT16U *Stack)&lt;br /&gt;
 {&lt;br /&gt;
 	int size = 0;&lt;br /&gt;
 	for (int i = 0 ; i&amp;amp;lt;256 ; i ++){&lt;br /&gt;
 		if ( (*Stack--) != 0 ) size++;&lt;br /&gt;
 	}&lt;br /&gt;
 	return size;&lt;br /&gt;
 }&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
다음은 TCB 구조체 모양이다....&lt;br /&gt;
TCB는 TASK CONTROL BLOCK의 약자.. 한마디로 태스크에 대한 정보를 담고 있는 구조체&lt;br /&gt;
 #if !defined(LIB_STRU)&lt;br /&gt;
 #define LIB_STRU&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;LIB_DATA.H&amp;quot;&lt;br /&gt;
 struct LIB_TCB {&lt;br /&gt;
 	// Task Priority&lt;br /&gt;
 	INT8U *Task_Name;&lt;br /&gt;
 	INT8U priority;&lt;br /&gt;
 &lt;br /&gt;
 	// Task Stack&lt;br /&gt;
 	INT16U StackSeg;&lt;br /&gt;
 	INT16U StackOff;&lt;br /&gt;
 	INT16U *Stack;&lt;br /&gt;
 &lt;br /&gt;
 	// Task Delay&lt;br /&gt;
 	int  delay;&lt;br /&gt;
 &lt;br /&gt;
 	// Task Status&lt;br /&gt;
 	INT8U     Task_Status;&lt;br /&gt;
 	// Event Ptr;&lt;br /&gt;
 	LIB_TCB *NextEvent;&lt;br /&gt;
 };&lt;br /&gt;
이벤트에 관한 블럭&lt;br /&gt;
 struct LIB_ECB {&lt;br /&gt;
 	void	*Event_Ptr;&lt;br /&gt;
 	LIB_TCB *Wait_TCB;&lt;br /&gt;
 &lt;br /&gt;
 	INT8U	Event_Type;&lt;br /&gt;
 	INT16U	Sema_Count;&lt;br /&gt;
 };&lt;br /&gt;
 #endif&lt;br /&gt;
---&lt;br /&gt;
[[REAL_LIBOS]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>