
#<2024.01.20.토> : 배포판 제작.

기본 테마색을 "오렌지색" 으로 변경.


#<2023.10.15.일> : 배포판 제작.

"G.M.RC.BASiC" 관련 함수 수정.

- [수신], [완료보고대기] 관련 [수신제한시간] 을 사용자가 지정 할수 있도록 수정.

- RC 서보가 아주 느리게 동작하는 경우 기존 <3 초> 의 완료보고 수신제한 시간안에 종료하지 못하는
  경우가 발생하고 이를 통신 오류로 인식하므로 이를 수정/보완하기 위한것.

- 3D 프린터로 "로봇팔" 작품을 제작하고 <G.M.RC.BASiC> 으로 구동 확인중 이를 발견하고 수정함.


"G.M.RC.BASiC" 관련 API 수정.

- <API_GmrcBasic> 에서 [수신제한시간] 관련 API 수정.


{ [마법사](설계묶음(예제)) } 수정.

- G.M.RC.BASiC 수정 관련.
  "(3)GMRCBASiC 제어(가상)", "(GUI)[예제]GMRCBASiC-IDE", "(예제)GMRCBASiC(가상)".

- [제목줄] 문자열 수정.
  "AVR-ISP", "맷돌28호(G.MTDL.A.RC28)-설정기".


{ 메뉴 : GVMS(PC) } 에 등록된 [가상기계] 수정.

- "AVR-ISP", "GMRCBASiC-IDE", "맷돌28호(G.MTDL.A.RC28)-설정기".


#<2023.06.10.토> : 배포판 제작.

파나소닉 "람대쉬(Ramdash)" 전기 면도기 부활.

- { [마법사](설계묶음(예제)) -> "(고급예제)람대쉬(Ramdash) 전기 면도기 부활" } 추가.

- 파손된 "람대쉬" 제어보드를 "맷돌(G.MTDL.A)" 을 사용한 제어보드로 교체하여 사용 가능 상태로 완벽하게 "부활" 시킴.

- "http://www.gigyenics.co.kr/mtdl/example/ex-high/ex-high-ramdash/example.html" 내용 참조.


#<2023.03.01.수> : 배포판 제작.

"폼디자이너" [설계묶음] 문서 분리 및 정리 완료.


#<2023.02.19.일>

"폼디자이너" [설계묶음] 중요 수정.

- "[설계묶음]\그림부품\GForm.c" 와 같은 형식으로 각 [그림부품] 문서를 분리했음.

  이전에 <__Main.c> 에 전부 기술하여 45,000 줄이 넘는 문서량으로 각 [그림부품] 의 기술내용을 구분하기 어렵고
  [속성] 이나 [이벤트] 등 추가 수정이 복잡한 것을 개선하기 위한것.

- <2023.01.03.화> 에 <맷돌C_번역_문자열()> 함수를 수정하면서 발생한 추가 오류 수정 완료.

  <GTabs:항목>, <GList:전체항목> 의 경우는 <p행단위목록> 으로 구분 처리하도록 수정.

  이전에 '\"' 나 '\\' 의 경우는 앞에 무조건 '\\' 을 붙이는 방식에서, [행단위목록] 처리의 경우 "\r\n" 의
  앞에는 '\\' 을 붙이지 않는 것으로 수정됐음(행단위 목록을 유지하기 위한것).


#<2023.02.02.목> : 배포판 제작.

<ide_main.cpp:Ide_ListSubMenu_GVMS_Thumb_View()> 중요 수정.

- { 메뉴 : GVMS(PC) } 가선택시 해당 GVMS 의 [실행모습] 을 [썸네일] 로 보여주는 기능 추가로 발생한 오류 수정.

  [Linux:Wine] 에서는 <ide_menu_Form->_listSubMenu> 가 [촛점] 을 잃어도 사라지지 않는 등의 불규칙적인
  오류가 있었으나, [윈도우] 와 [Linux:Wine] 의 창 [촛점] 처리 불일치로 발생한 오류로 [썸네일] 을 보여주는
  <_gvms_GImageBox> 를 <_gvms_GImageBox->_Enable(false)> 로 설정([촛점] 을 아예 가질수 없게 됨)하여
  해결했음.


#<2023.02.01.수>

<ide_msg.cpp:_EVENT_V_Scroll()> 의 [촛점설정] 기능 제거.

- 기존 <msg_msg.cpp:_PrintAddXXX()> 함수로 [검증문자열] 출력시 [촛점이동] 때문에 [촛점] 을 가지는 [그림부품] 을
  제대로 검증할수 없는 경우를 해결하기 위한것.


#<2023.01.31.화>

<그림부품:GList> 중요 수정.

- <이벤트:_EVENT_MouseEnter, _EVENT_MouseLeave> 를 <Linux:Wine> 지원을 위한 [타이머] 처리 방식으로 수정.

  //[참고]{-----------------------------------------------------------------------------------------------
  현재 모든 [그림부품] 은 <Linux:Wine> 지원을 위하여 동일하게 내부적으로 [타이머] 를 사용하여 <Mouse:Enter/Leave> 를 처리.
  //}----------------------------------------------------------------------------------------------------

- { 메뉴 : GVMS(PC) } 실행시 [하위메뉴] 의 [촛점] 처리에 오류가 발생하여 사라지지 않는 현상을 해결하기 위한것.

- <GList.cpp:FormMouseDown()> 에 <Linux:Wine> 에서 <GList> 가 보이지 않는 상태에서도 <FormMouseDown()> 이 발생하는
  것을 방지하는 처리 추가.

  { 메뉴 : GVMS(PC) } 실행시, 항목 선택 후 { 위로 마우스 이동 -> GVMS 실행 환경으로 변경된 [맷돌-IDE] 클릭 } 시에 기존 선택
  항목이 부팅된 상태에서 가장 첫 항목이 다시 부팅되는 중복 처리 현상을 해결하기 위한것.


#<2023.01.29.일>

{ 메뉴 : GVMS(PC) } 실행시 GVMS 가 완전히 실행 준비상태가 될때까지 관련 버튼이 "비활성화" 되도록 수정.

- 아직 GVMS 가 완전히 실행준비가 안된 상태에서 GVMS 실행시 VMOS 가 정지하여 [맷돌-IDE] 를 재실행해야 하는 경우를 방지하기 위한것.


{ 메뉴 : GVMS(PC) } 실행시 VMOS 준비 상태를 직접 확인하여 처리.

- 기존 { VMOS 실행 후 "1.5 초" 간 무조건 대기 하는 방식 } => { GVMS 를 설치 할수 있는 상태인지 직접 확인하는 방식} 으로 수정.

- GVMS 실행 준비까지의 처리 시간을 단축하기 위한것.

- <vmos.cpp:VMOS_Ready_GVMS_Install()> 함수 추가.


<ide_main.cpp:Ide_Parser_OneFile(), IDE_Build()> 중요 수정.

- "API 자동 추가 기능" 추가시 <API_Check()> 를 추가하면서 발생한 중요 오류 해결을 위하여 { DATABASE_GetPtr(&database); } 위치 수정.

- 오류가 없는 경우에는 출력창에 <NULL> 행이 출력되지 않도록 수정.


<ide_main.cpp:Ide_Menu_GVMS_Install()> 에 GVMS 실행 방법 문자열 출력 기능 추가.

- GVMS 설치후 [리셋(Reset)] 버튼 아래에 " 실행하려면 이 버튼을 누르세요-------^" 출력.


<GList> 중요 수정.

- [선택항목번호] 가 <-1> 인 경우는 <선택항목문자열> 을 기존에 { 첫 항목반환 } => { "" 반환 } 으로 수정.

- <GList.cpp:_ItemSelStr(), _ItemMouseSelStr()> 함수 수정.


#<2023.01.03.화> : 배포판 제작.

"폼디자이너" 중요 수정.

- [문자열] 을 번역하는 과정에서 [문자열] 안의 [제어문자] 중 '\"', '\\' 를 [제어문자] 로 번역하도록 수정.

  즉, '\"', '\\' 두 개 문자는 무조건 번역시 앞에 '\\' 문자를 붙여 [제어문자] 로 번역해 준다.

  //[기존]
  //{
      <제목줄문자열> : "기계닉스 첨단대장간"

      => GForm_제목줄문자열_(_폼디자인.GForm43, ""기계닉스 첨단대장간"", d_쓰기);
         이렇게 번역되어 실제 해석시 오류가 발생----^----------------^

  //[수정]
  //{
      <제목줄문자열> : "기계닉스 첨단대장간"

      => GForm_제목줄문자열_(_폼디자인.GForm43, "\"기계닉스 첨단대장간\"", d_쓰기);
         [제어문자] 로 번역---------------------^----------------^

  //}


#<2023.01.02.월>

"문서 검색기" 수정.

- "삭제" 시에도 "전체삭제" 시와 같이 [확인대화상자] 를 출력하여 한번 더 확인하도록 수정.


[맷돌-IDE] 중요 기능 추가.

- { 메뉴 : GVMS(PC) } 의 해당 GVMS 항목 가선택시 해당 GVMS 의 "모양새" 를 항목의 오른쪽에 [썸네일] 로 보여줌.


#<2023.01.01.일>

"문서 검색기" 수정.

- <중단요청_GBtn> 이 <기본_GForm> 의 크기 변경이나 이동시에 항상 <기본_GForm> 중간에 위치하도록 수정.


#<2022.12.27.화> : 배포판 제작.

"문서 검색기" 수정.

- <검색결과_GList> 에 내용이 없는 경우 [빠른항목] 이 보였다 사라질때 [풍선도움말] 이 잠시 나왔다 사라지는 문제 수정.


"[IDE]\gigyenics\gvm\gvms" 안에 각 GVMS 의 [썸네일] 추가.

- { 메뉴 : GVMS(PC) } 의 해당 GVMS 항목 가선택시 해당 GVMS 의 "모양새" 를 [썸네일] 로 보여주기 위한것.

- 기능 구현를 위하여 [썸네일] 만 "[GVMS]\__모양새" 폴더 안에 미리 추가해 놓았음.


<그림부품:GList> 중요수정.

- <BCB:GList.cpp> 의 <_Shape()> 함수 중요수정.

  <_itemTopStartIndex> 의 계산관련 유/무를 선택할수 있도록 인수 (bool  pIsCal_ItemTopStartIndex) 추가 및 수정.
  내용에 [추가/삭제/교체/삽입] 등 수정이 있는 경우는 무조건 <_itemTopStartIndex> 을 재계산 한다.

  이전에 [최적화] 때문에 발생된 오류로 "문서 검색기" 의 <이름변경()> 고속화 수정중 발견하고 수정/보완함.


#<2022.12.26.월>

"문서 검색기" 수정.

- <이름변경()> 시에 기존에 <검색결과_GList:_GList_항목교체_()> 를 사용하여 직접 항목을 교체하던 방식에서
  임시목록과 새로만든 <API:_List_교체_()> 를 사용하는 방식으로 수정.

  처리속도의 비약적인 향상 있음.


#<2022.12.25.일>

<API:_List_추가_(), _List_삭제_(), _List_교체_(), _List_삽입_()> 추가.

- "행단위목록" 을 쉽게 처리하기 위한것.

- "문서 검색기" 의 [고급기능] 을 위하여 추가함.

- void _List_삽입_(char  **pr목록_, <---2중 포인터를 API 에 사용한 것은 처음.
                  int     p삽입할행번호,
                  char   *p항목_,
                  int    *r목록저장소크기_,
                  int    *r항목전체길이_,
                  int    *r전체행수_);

  (char  **pr목록_) 과 같이 API 인수에 (**) 등 2중 포인터 사용은 처음이나, 결국에는 [절대주소] 를
  전달받아 처리하는 개념은 동일함.


#<2022.12.19.월>

"문서 검색기" 중요 수정.

- "삭제" 시 [진행막대] 에 진행상태 제대로 반영되도록 수정.

- "이름변경", "삭제" 시 해당 항목의 [경로이름확장자] 가 [진행막대] 에 표시됨.
  <진행_GProgress> 와 <진행막대_GLabel(캡쳐모드)> 를 [합성] 하여 처리.


#<2022.12.15.목>

"문서 검색기" 의 <폼디자인.c:폼디자인_소멸()> 중요 내용 추가.

- _GProgress_삭제_(_폼디자인.진행_GProgress);


#<2022.12.14.수> : 배포판 제작.

배포판 제작/배포.


#<2022.12.13.화>

"문서 검색기" 완료.

- "전체삭제" 시 [확인/취소] 를 위한 [알림창] 출력 추가.


#<2022.12.08.목>

"문서 검색기" 고급 기능 추가 완료.

- "검색", "이름변경", "삭제/전체삭제" 등 고급 기능 추가 완료.


#<2022.11.24.목>

"문서 검색기" 중요 수정.

- [포함할 단어목록], [제외할 단어목록] 의 "검색조합" 기능 추가.
  "또는", "그리고" 중 선택하여 검색할수 있음.


#<2022.11.10.목>

그림부품 <GList> 에 <이벤트:MDown, MUp> 추가.

- <API:_GList_이벤트_MDown_(), _GList_이벤트_MUp_()> 추가.

- "문서 검색기" 고급 기능 지원을 위한것.


#<2022.10.29.토>

"문서 검색기" 수정.

- [이름변경대화상자] 가 보이는 상태에서는 <검색결과_GList> 에 [풍선도움말] 이 출력되지 않도록 수정.

  [풍선도움말] 출력시 촛점이 이동하여 [이름변경대화상자] 의 입력에 영향을 주는 것을 방지하기 위한것.


"IDE\font\system\system.rar" 필요성이 없어 삭제.


#<2022.10.27.목>

[IDE:정보창->API] 와 [IDE:정보창->API 검색] 의 API 정보 "순간보기" 기능 수정.

- "순간보기" 후 기존 [편집중 이던 문서] 를 다시 열어주도록 수정.


#<2022.10.20.목>

<API:_FileStr_확장자얻기_()> 중요 수정.

- 기존에 "C:\\A\\B\\...\\G.M.RC.BASiC\\" 의 경우에 실제 [확장자] 는 없으나,
  무조건 맨 뒤에서 "." 을 기준으로 검사를 하면 "BASiC\\" 이 [확장자] 로 추출된다.

  그러므로, [경로] 만 존재하는 경우는 [확장자:""] 로 반환하도록 수정됨.

- <BCB:ide_library.cpp> 의 <STR_GetFileExt()> 함수 수정.


#<2022.09.25.일>

"문서 검색기" 중요 수정.

- [확장자], [포함할 단어목록], [제외할 단어목록] 자동 수집시 "중지" 기능 추가.

  지정 경로 안에 문서가 너무 많은 경우 처리 시간 때문에 사용자에 의한 중단필요성 있음.


#<2022.09.20.화> : 배포판 제작.

<API:_Dir_선택대화상자_()> 중요수정.

- 이 API 를 구현시 사용된 <BCB:SelectDirectory()> 는 [드라이브] 자체를 지정시 "Z:\\" 와 같이 끝에
  "\\" 이 붙어 나오나, 일반적인 경로 지정시에는 "Z:\\GIGYENICS" 와 같이 "\\" 이 붙어 있지 않다.

  기존에는 무조건 뒤에 "\\" 를 붙였으나, [드라이브] 지정시에는 붙이지 않는 것으로 수정.

- "문서 검색기" 에 고급기능을 추가하면서 이를 발견하고 수정한다.


#<2022.09.18.일>

그림부품 <GList> 에 <이벤트:MClick, MDClick> 추가.

- <API:_GList_이벤트_MClick_(), _GList_이벤트_MDClick_()> 추가.

- "문서 검색기" 고급 기능 지원을 위한것.


"문서 검색기" 수정.

- <검색결과_GList> 에서 기존 항목 선택시 무조건 해당 항목의 위치가 "탐색창" 에서 열리는 것에서 아래와 같이 수정.

  <클릭>    : 해당 항목 선택.
  <더블클릭> : 해당 항목을 "탐색창" 에서 열고 해당 항목 선택 표시.


<API:_Sys_탐색창_열기_()> 내부 수정.

- "Linux:wine" 에서는 <SHOpenFolderAndSelectItems()> 를 지원하지 않기때문에, 이 API 를 사용하는
  <BCB:API_Size.cpp> 의 <_API_Sys_Explorer_Open()> 함수 내부적으로 "Linux:wine" 에서 구동하는
  경우는 <ShellExecute()> 를 대체 사용하는 것으로 수정.

  해당 위치가 열리는 것은 동일하지만 항목지정은 되지 않는다.


#<2022.09.17.토>

<API:_Sys_탐색창_열기_()> 추가.


#************************************
#<2022.09.16.금> : 최초 통합 배포판 제작.
#************************************

"Turbo C++ 2006 Explorer" 와 "C++Builder Community Edition" 을 모두 지원하는 최초의 통합 배포판.

향후 모든 [맷돌-IDE:배포판] 은 "Turbo C++ 2006 Explorer" 와 "C++Builder Community Edition" 을
모두 지원하도록 제작되며, 각각 [설계문서] 도 둘 다 지원 되도록 동시 배포됨.


#-------------------------------------------------
#<2022.09.14.수> : <TC++2006> 과 <ECB/CE> 통합 완료.
#-------------------------------------------------

***********************************************************************************
"Turbo C++ 2006 Explorer" 와 "C++Builder Community Edition" 을 모두 지원하도록 통합 완료.
***********************************************************************************

//[참고]-------------------------------------------------
//<TC++2006> : Turbo C++ 2006 Explorer
//<ECB/CE>   : Embarcadero C++Builder/Community Edition
//}-----------------------------------------------------

- 동일한 [설계문서] 로 <TC++2006> 과 <ECB/CE> 를 모두 지원(Unicode 적용이 지원된 상태).

  <BuildToolDefine.h:d_BuildTool_TC2006:true/false> 로 제작 도구에 따라 기술내용 자동 선택.

  //[사용예]
  //{
      #if d_BuildTool_TC2006
      //{
          //<TC++2006> 으로 제작하는 경우 해당하는 내용 기술.

      //}
      #else
      //{
          //<ECB/CE> 로 제작하는 경우 해당하는 내용 기술.

      //}
      #endif

  //}

- 모든 [폴더/파일] 을 공통으로 사용하나 각각 아래 [2 개 문서] 는 독립적으로 사용(절대 섞이면 안됨).

  - <TC++2006> : "IDE.bdsproj", "BuildToolDefine.h".

  - <ECB/CE>   : "IDE.cbproj", "BuildToolDefine.h".


{ 메뉴 : 도움말 -> "제작정보" } 수정.

- <BuildToolDefine.h:d_BuildTool_Name> 으로 "도구" 정보를 출력하는 것으로 수정.

  "맷돌-IDE" 를 만드는데 사용되는 도구에 따라 [도구이름] 이 자동 선택 출력됨.

  - <TC++2006> : "Turbo C++ 2006 Explorer"

  - <ECB/CE>   : "C++Builder Community Edition"


#<2022.09.11.일>

Turbo C++ 2006 의 [설계묶음] 에서 불필요한 모든 경로 완전 제거.


#<2022.08.28.일>

<link.h> 내용 수정.

- <OPT_1st_symbol_length> => <OPT_name_length> 로 수정.
  이는 "함수이름" 표현의 보다 구체적 표현을 위한것.

  struct LINKLABELITEM
  {
    ...

    //<OPT_1st_symbol_length> => <OPT_name_length> 로 변경(아주 긴 함수이름을 위한것).
    char  name[OPT_name_length];

    ...

  };


<c_define.h> 정의 내용 대폭 수정.

- 아주 긴 "함수이름" 표현을 위한 것으로 관련 정의 대폭 수정.

  //아주 긴 [함수이름] 을 위한것(한글 128 자 까지 허용).
  #define  OPT_name_length                 80 => 256

  //각 부분 번역시 동적 생성되는 임시 저장소 [생성 크기 비율] 을 기존 보다 2 배 크기로 수정.
  #define  OPT_Tempfile_SizeFactor          7 => 7*2
  #define  OPT_Tempfile_ReSizeFactor        4 => 4*2
  #define  OPT_AsmFile_SizeFactor           2 => 2*2
  #define  OPT_Ob1File_SizeFactor           2 => 2*2
  #define  OPT_Ob1LabelItem_SizeFactor      1 => 1*2
  #define  OPT_LinkLabelItem_SizeFactor     1 => 1*2
  #define  OPT_Ob1LineLabel_SizeFactor      2 => 2*2
  #define  OPT_ObjFile_SizeFactor           2 => 2*2
  #define  OPT_LnkFile_SizeFactor           2 => 2*2


"문서 검색기" 크기 변경시 <풍선도움말사용_GLabel> 위치 X 수정 추가.


#<2022.07.17.일> : 배포판 제작.

"찾기" 함수 관련 중요 수정/보완.

- "한글" 이 쪼개져서 검사되지 않도록 수정.

- <ide_library.cpp:STR_Find(), STR_Find_Bound()> 수정.

- 무조건 [1 바이트 단위] 로 문자열을 비교 하는 경우 발생되는 희귀하지만 [확실한] 오류 수정.

  "동" 이라는 문자를 찾는 경우가 대표적인 예로 [한글] 한 개 문자의 코드가 문자열 상에서 겹쳐서 발생.

  "동"   : B5BF

            |<-동-->|
  "도움" : B5B5    BFF2  <---"도" 의 [하위바이트] 와 "움" 의 [상위바이트] 를 합치면 "동" 의 문자 2 바이트가 된다.

            |<-동-->|
  "영역" : BFB5    BFAA  <---"영" 의 [하위바이트] 와 "역" 의 [상위바이트] 를 합치면 "동" 의 문자 2 바이트가 된다.

  즉, 이런 현상때문에 무조건 [1 바이트 단위] 로 비교하는 경우는 "도움", "영역" 에는 "동"이 없는데도, 사이의 코드를
  이어 붙여 "동" 이 있는 것처럼 찾은 위치가 반환되는 오류가 발생.

  이를 막기 위하여, [1 바이트 단위] 로 비교하되 [한글] 을 깨트리지 않고 비교 할수 있도록, [한글] 인 경우 [첫바이트]
  검사 뒤 다음 검사 위치를 <+2> 를 하도록 하는 방법으로 검사하도록 수정.

- [정보창:API/찾기] 와 [편집기] 의 [찾기:색동문자] 모두 수정 반영 됐음.


#<2022.07.16.토> : 배포판 제작.

#<2022.07.15.금>

[맷돌-IDE] 구동시 "읽어보기" 문서를 자동으로 열도록(읽기전용) 수정.

- [맷돌-IDE] 의 기본 개요을 알려주기 위한것.

- <ide_main.cpp:IDE_OnShow()> 함수 추가.
  [맷돌-IDE] 구동 직후 처리할 내용을 기술(실제는 <main_Form:FormShow()> 로 기동한 <ideShowTimer> 타이머에서 호출됨).


{ 메뉴 : 도움말 -> "수정내용", "읽어보기", "Linux Wine 으로 구동 방법" } 수정.

- 해당 문서들을 모두 "읽기전용" 으로 열리도록 수정.


#<2022.07.14.목>

<Tree:API> 나 <Tree:API 검색> 관련 기능 수정 및 추가.

- 마우스 "더블클릭" 으로 API 관련 문서를 여는 경우 [편집기:제목줄] 이 아니라 [편집기] 의 해당 "API 이름" 위치에
  [경로이름확장자] 를 "풍선도움말" 로 출력하도록 수정.

- "API 자동 추가" 시에도 [편집기:제목줄] 이 아니라 [편집기] 의 해당 "API 이름" 위치에 [관련정보] 를 "풍선도움말" 로
  출력하도록 수정.

- [화면지정자] 위치의 항목행이 변경되거나, [Tree] 영역을 벗어나는 경우 보이고 있는 "풍선도움말" 은 무조건 사라짐.
  이는 "풍선도움말" 이 [편집기] 영역을 가려서 "편집기능" 을 방해하는 것을 막기 위한것.

- 이를 지원하기 위하여 <editor_top.cpp:_BalloonBox_Print_At_FindStr()> 새로 제작.


#<2022.07.11.월>

<Tree:API> 나 <Tree:API 검색> 에서 "API 이름 복사" 기능 추가.

- <Ctrl+C> 또는 [빠른목록:"API 이름 복사"] 로 [API 이름] 을 [클립보드] 로 복사할수 있음.

- 이를 지원하기 위하여 <tree_tree.cpp:_Tree_ApiName_ClipBoard_Copy()> 함수 추가.


#<2022.07.05.화>

"편집기" 에서 <Ctrl+P> 로 직접 "API 검색" 기능 추가.

- <Tree:API 검색> 이 자동 활성화 되며, [입력지정자] 가 위치한 단어로 자동 검색 후 결과를 표시해줌.


#<2022.07.03.일>

<Tree:API 검색> 에서 [화면지정자] 가 <Tree> 안에 존재할때 [한줄편집기] 입력시 자동 항목 정렬로 인한 항목 변경으로
"순간보기" 가 일어나고, 이에 따른 촛점 이동시마다 [입력지정자] 의 위치가 <0> 으로 계속 초기화 되는 불편 수정.

- [화면지정자] 의 위치 변경이 없는 경우 "순간보기" 를 하지 않는 방법으로 해결했음.


<Tree:API 검색:한줄편집기> 에서 [키:Up/Down] 으로 API 항목 이동 및 "순간보기" 기능 추가.


#<2022.06.30.목> : 배포판 제작.

"순간보기" 시 촛점이 [편집기] 가 아니라 <Tree:API> 나 <Tree:API 검색:한줄편집기> 에 존재하도록 수정.


<Tree:API> 나 <Tree:API 검색> 에서 "더블클릭" 으로 연 API 정보 문서(gtxt/h) 는 "읽기전용" 으로 설정됨.

- "원본" 문서의 손상을 방지하기 위한것.


#<2022.06.29.수>

<API:_GBalloonBox_자동감추기_()> 추가.

- [풍선도움말] 이 보인뒤 설정 시간 후에 자동으로 사라지는 기능.


#<2022.06.28.화>

<editor_edit_Form.h> 의 <struct TEXTINFO> 에 "문서 용도 종류" <_fileUseKind> 추가.

- "순간보기" 기능 지원을 위한것.


<GBalloonBox> 에 "자동 감추기" 기능 추가.

- [풍선도움말] 이 보인 후 설정 시간이 지나면 자동으로 사라지는 기능.

- <_hideTime> 속성 추가 및 관련 함수 추가.

- 부가적인 내부 함수 대폭 수정 있음.


[IDE:정보창->API] 와 [IDE:정보창->API 검색] 에 API 정보 "순간보기" 구현 방법 변경 및 부가 기능 추가.

- 마우스 "더블클릭" 으로 API 관련 문서를 여는 경우 "편집기제목줄:풍선도움말" 에 [경로이름확장자] 출력.


#<2022.06.26.일>

<BCB:editor_top_Form::_List_Delete()> 에 중요 수정.

- [문서 번호] 로 문서 "삭제" 시 자동으로 해당 문서를 먼저 [편집기] 에 보이도록 하는 기능 추가.

  이는 [편집기] 자체 문서 "삭제" 는 반드시 "현재 보이는 문서" 만을 대상으로 하기 때문.

  기존에 이 기능을 추가 하기 전에는 <_List_Add()> 로 먼저 문서를 편집기에 보이도록 처리 하였으나,
  이제 <_List_Delete()> 함수만으로 처리 가능.


[IDE:정보창->API] 와 [IDE:정보창->API 검색] 에 API 정보 "순간보기" 기능 추가.

- API 항목에 [화면지정자] 를 위치 시키는 경우, 해당 API 의 자세한 정보가 있는 <*.gtxt> 나 <*.h> 를 일시적으로
  [편집기] 에 열어줌.

- [화면지정자] 가 해당 [IDE:정보창->API] 와 [IDE:정보창->API 검색] 의 영역을 벗어 나는 경우는 자동으로 사라짐.


#<2022.06.23.목>

[IDE:정보창->API:Tree] 의 "API 검색" 기능 기본 완성.

- [IDE:정보창->API:Tree] 에서 <Ctrl+F> 시 나오는 [한줄편집기] 에 검색 문자열을 입력시
  [IDE:정보창->API:Tree] 에서 해당 [문자열] 을 포함하는 모든 API 항목을 [IDE:정보창->API 검색:Tree] 에
  정렬해줌.


#<2022.06.20.월>

IDE [설정:대화상자] 의 "자동 저장 설정" 기본값을 [사용 안함] 으로 수정.


#<2022.06.15.수>

[IDE:정보창->API:Tree] 에 검색 기능 활성화시 "정보창:검색" 으로 문자열 변경([한줄편집기] 역활의 명시성을 위한것).


#<2022.06.13.월>

[IDE:정보창->API:Tree] 에 <Ctrl + F> 키 지원 추가.

- 현재 추가중인 "API 검색" 기능 지원을 위한것.


<GEdit> 중요 수정.

- BCB 이벤트 추가.

  <_EVENT_Change, _EVENT_KeyDown_Left, _EVENT_KeyDown_Right, _EVENT_KeyDown_Up,
   _EVENT_KeyDown_Down, _EVENT_KeyDown_Home, _EVENT_KeyDown_End>.

- <_text_org_y_ofs> 추가.

- 현재 추가중인 "API 검색" 기능 지원을 위한것.


<BCB:tree_tree_Form> 수정.

- BCB 이벤트 <_EVENT_KeyDown_Esc> 추가.

- 현재 추가중인 "API 검색" 기능 지원을 위한것.


#<2022.06.12.일> : 배포판 제작.

"[마법사](새설계묶음(예제))" 안의 모든 예제 [함수묶음] 최적화.

- "API 자동 추가 기능" 을 사용하여 [설계묶음] 에서 사용되지 않는 API 모두 제거.


[API:맷돌(가상구동)->API_GmrcBasic->_GmrcBasic.glib] 를 3 개의 API 로 분리함.

- <_GmrcBasic_TxdX.glib>, <_GmrcBasic_Rxd.glib>, <_GmrcBasic_Ack.glib>.

- 이는 최근 추가된 [API 자동 추가 기능] 이 API 1 개당 1 개의 <glib> 를 지원(기계닉스 API 표준)하기
  때문에 이에 맞추기 위한것.


#<2022.06.09.목> : 배포판 제작.

[맷돌-IDE] 실행시 "IDE\glib\def_file.glst" 자동 생성 기능 추가.

- <def_file.glst> 은 API 에 사용된 [정의이름, 구조체/공용체이름] 목록을 가진다.

- <BCB:API_Make_DefFile()> 함수 제작.

- [설계묶음] 에 [정의이름, 구조체/공용체이름] 이 정의된 API 의 "API 자동 추가 기능" 지원을 위한것.


[맷돌-IDE] 에 "API 자동 추가 기능" 대폭 수정/완성.

- [가상기계] 제작(Build)시 기계닉스 형식의 [정의이름, 구조체/공용체이름] 이 정의된 API 를
  [설계묶음] 에 자동으로 추가해주는 기능 추가.

- <BCB:IDE_Build(), Ide_Parser_OneFile()> 함수에 해당 기능 추가.

- 기계닉스 제공 [예제] 의 [함수묶음] 이 삭제된 경우라도, 사용자가 일일히 해당 API 를 추가하지
  않고도 "어떤 경우라도 [예제] 를 실행해 그 결과를 확인할 수 있도록 하기 위한것".


#<2022.06.04.토>

[가상기계] 제작(Build)시 [오류] 가 발생한 경우 이를 명시적으로 알려주는 [알림문] 출력기능 추가.

- <BCB:IDE_Build(), Ide_Parser_OneFile()> 에 해당 기능 추가.


#<2022.06.02.목>

<API:_GBalloonBox_촛점해제사용_()> 추가.

- <GBalloonBox> 에 "촛점해제" 를 제어할수 있는 기능 추가.

- [풍선도움말] 은 촛점이 해제되면 자동으로 사라지지만, 이를 비활성화 할수 있는 제어 기능 추가.
  [풍선도움말] 을 보다 세련된 "알림창" 처럼 사용하기 위한것.


#<2022.05.30.월>

[가상기계] 제작(Build)시 이상없이 종료되는 경우, 기존에 오류로 인하여 지정된 [선택영역] 을 자동 해제 하도록 수정.


[맷돌-IDE] 에 "API 자동 추가 기능" 보완.

- [편집기제목줄:풍선도움말] 에 자동 추가된 "API 정보 출력".

- [편집기제목줄:풍선도움말] 에 일반 문자열을 출력할수 있도록 하기 위하여
  <editor_top.cpp:_BalloonBox_Print()> 함수 추가.


<그림부품:GBalloonBox> 수정.

- <GBalloonBox.cpp:_KillFocusUse()> 추가.

- [풍선도움말] 이 촛점해제 상태에서도 사라지지 않도록 하는 기능 [사용 유/무] 를 설정 할수 있음.


#<2022.05.27.금>

[맷돌-IDE] 에 "API 자동 추가 기능" 추가.

- [설계묶음->함수묶음] 에 API 를 추가하지 않은 상태에서 [가상기계] 제작(Build)시 사용된
  API 가 [설계묶음->함수묶음] 에 자동 추가됨.


#<2022.05.22.일>

"중복폴더 추출기" 를 "폴더 구조 비교기" 로 이름 수정.

- 처리 내용이 2 개의 폴더 구조를 서로 비교하는 것에 가깝기 때문에, 보다 직관적인 이름으로 수정함.

1) { 메뉴 : GVMS(PC) -> "폴더 구조 비교기" } 로 바로 실행.

2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]폴더 구조 비교기" } 로 직접 만들어 사용.


#<2022.05.16.월> : 배포판 제작.

"폼디자이너" 의 중요 수정으로, "폼디자이너" 로 만든 [마법사] 예제 및 해당 [가상기계] 수정.

- { [마법사](설계묶음(예제) } 수정.

  "(GUI)[예제]폼디자이너",
  "(GUI)[예제]API 업데이트 도구", "(GUI)[예제]기계닉스 LED 전광판", "(GUI)[예제]맷돌-IDE 배포판 제작기",
  "(GUI)[예제]문서 검색기", "(GUI)[예제]썸네일 보기", "(GUI)[예제]중복 폴더 추출기".

- { 메뉴 : GVMS(PC) } 에 등록된 [가상기계] 수정.

  "폼디자이너",
  "API 업데이트 도구", "기계닉스 LED 전광판", "맷돌-IDE 배포판 제작기",
  "문서 검색기", "썸네일 보기", "중복 폴더 추출기".


#<2022.05.08.일>

"폼디자이너" 수정 완료.

- [전처리] 부에서 <Ide_Gvms_실행경로()> 함수를 사용하여 [설계묶음/가상기계(GVMS)] 실행시
  모두 정확한 경로를 보장하도록 함수 교체 및 관련 부분 수정.

  이는 "폼디자이너" 에 사용된 [리소스] 의 정확한 경로를 확정하기 위한것.


#<2022.04.29.금> : 배포판 제작.

"문서 검색기" 에 고급기능 추가 완료.

- "문서 검색기" [GVMS] 와 [마법사] 를 새것으로 교체.

- "문서 검색기" 의 풍선도움말에 "반투명" 기능 적용.


#<2022.04.17.일>

<API:_Str_행문자열일치_행번호얻기2_()> 추가.

- <BCB:ide_library.cpp> 의 <STR_Search_LineStr_knowLineCount2()> 함수 추가됨.

- "문서 검색기" 에 고급기능을 추가하기 위한 것.


#<2022.04.12.화> : 배포판 제작.

<BCB:ide_library.cpp> 의 <Str_Line_AutoLine_Width()> 함수 중요 수정.

- "문서 검색기" 에 고급기능을 추가하면서 <GBalloonBox> 의 GUI 오류 발생 부분 해결을 위하여 수정함.


#<2022.03.16.수>

<API:_Str_길이조정_()> 설명 문서 자세하게 수정.


#<2022.01.24.월> : 배포판 제작.

"썸네일 보기", "문서 검색기" 관련 공통 수정.

- { 메뉴 : GVMS(PC) }, { [마법사](설계묶음(예제)) } 모두 수정본으로 교체 됐음.


"폼디자이너" 수정.

- <GLabel> 의 크기 조정시 내부 "다시그리기" 가 안되던 오류 수정.

  "썸네일 보기" 제작시 <GLabel> 의 <BCB:_Width_Height()> 함수 수정으로 인한 것으로,
  속도 최적화 시에도 "다시그리기" 되도록 수정 됐음.


"썸네일 보기" 수정.

- 썸네일 생성시 사용되는 <GImageBox> 의 기본 배경색(흰색)이 보여 발생하는 "깜박임" 현상 제거.


#<2022.01.19.수>

<GPrintBox> 최적화 완료.

- 수만개 이상의 항목도 고속처리 되도록 수정됐음(줄이동 이나 출력 속도 등).

- "맷돌-IDE 배포판 제작기" 지원을 위한것.

- <GPrintBox> 는 행 단위나 묶음 단위로 출력 설정을 개별 적용 할수 있어 활용도가 높음.


#<2022.01.16.일>

<GList> 최적화 완료.

- 수만개 이상의 항목도 고속처리 되도록 수정됐음(줄이동이나 출력 속도, 임시선택 처리 등).

- "문서 검색기" 지원을 위한것.


"문서 검색기" 수정.

- 항목 [임시선택] 시 나오는 [풍선도움말] 위치 수정.


#<2022.01.13.목> : 배포판 제작.

[맷돌-IDE] 의 "검증보기", "검증식 작성" 기능 중요 수정.

- [동적생성:문자열] 의 "문자열보기" 기능시 "?(주소해석불가)" 로 나오던 것을 해당 [문자열] 이 제대로 출력되도록 수정.

- [가상구동] 시 [동적생성:메모리] 는 실제 [시스템 영역(BCB 물리주소 공간)] 에 위치하게 되고 VMOS 주소 공간의
  <0xF:0 - 0xF:F> 으로 맵핑되므로, 이를 구분 처리하여 BCB 상에서 직접 주소에 접근/처리 할수 있도록 수정됐음.

- "검증보기" 관련 수정 함수.
  <debug_view.cpp : DebugView_Str_Cut_CRLF(), DebugView_Str_Read()>.

- "검증식 보기" 간련  수정 함수.
  <debug_view.cpp : DebugView_Opnd_WrRd()>.

  함수 내부적으로 [포인터] 인 경우만 해당하므로 해당 부분 수정됐음.


#<2022.01.09.일> : 배포판 제작.

"문서 검색기" [GVMS] 와 [마법사] 에 추가.

1) { 메뉴 : GVMS(PC) -> "문서 검색기" } 로 바로 실행.

2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]문서 검색기" } 로 직접 만들어 사용.


#<2022.01.08.토>

"문서 검색기" 완성.

- 내가 문서 검색시 필요해서 만든 "문서 검색기" 모두 완성됨.


[마법사] 안 "(GUI)[예제]..." 계열 [설계묶음] 모두 수정.

- [폼디자이너] 로 제작된 "(GUI)[예제]..." 계열 [설계묶음] 내부에 해당 [폼디자이너 문서(*.fmdsn)] 추가.

- "(GUI)[예제]맷돌-IDE 배포판 제작기", "(GUI)[예제]썸네일 보기", "(GUI)[예제]중복 폴더 추출기",
  "(GUI)[예제]기계닉스 LED 전광판" 이 해당.

- 향후 [폼디자이너] 로 제작된 모든 [설계묶음] 에도 동일하게 적용 예정.


[특수주석:문자] 추가.

- '!', '@', '#', '$', '%', '*', '+', '-', '?', '=' 문자의 경우
  아래와 같은 형식에서 [특수주석:문자] 로 인식되어 [색동문자] 가 적용 됨.

- <BCB:editor_edit, GEditor> 둘다 동일하게 수정됨.

- 예)

//[!]...
//[!...]...
//[@]...
//[#]...
//[$]...
//[%]...
//[*]...
//[+]...
//[-]...
//[?]...
//[=]...


[특수주석:날짜표기] 추가.

- 기계닉스 표준 [날짜표기:주석문] 의 경우도 [특수주석] 표기 적용.

- <BCB:editor_edit, GEditor> 둘다 동일하게 수정됨.

- 예)

//[2022.01.08.토][생성]


#<2022.01.07.금>

<API:_GList_전체항목저장소위치얻기_()> 추가.

- <GList> 의 [전체항목문자열] 에 "읽기" 용도 로 바로 접근하기 위한것.

- "문서 검색기" 지원용으로 추가.


#<2022.01.06.목>

<BCB:GEdit, gui_edit> 중요 수정.

- 왼쪽 테두리에 첫 문자가 붙어 보이는 것을 개선하기 위하여 <_text_org_x> 에 <+2> 를 추가.

- <BCB:gui_edit> 를 사용한 <BCB:find_DialogBox> 도 관련 부분 수정됨.


#<2022.01.05.수>

<API:_File_열기대화상자_경로지정_(), _File_저장대화상자_경로지정_()> 중요 수정.

- <BCB:_API_File_OpenDialog_InitDir> 함수 수정.
  <OpenDialog->FileName> => <OpenDialog->InitialDir>.

- <BCB:_API_File_SaveDialog_InitDir> 함수 수정.
  <SaveDialog->FileName> => <SaveDialog->InitialDir>.

- [대화상자:초기경로] 를 지정하는 것이므로 <InitialDir> 를 사용하는 것이 정확/적합.

- <API:_File_열기대화상자_경로지정_(), _File_저장대화상자_경로지정_()> 의 해당 <*.h> 문서의 설명 내용 수정됐음.

- "문서 검색기" 제작중 문제를 발견하고 수정함.


#<2022.01.01.토>

<API:_Str_앞뒤공백제거_()> 추가.

- Trim(), TrimLeft(), TrimRight() 의 기능을 한 개 함수로 합친것.

- "문서 검색기" 개발에 필요해서 제작함.


<API:_GEdit_저장소위치얻기_()> 추가.

- <GEdit> 의 [저장소] 위치를 얻어 문자열 복사 없이 직접 문자열을 읽어 들일수 있도록 하기위한것.

- "문서 검색기" 개발에 필요해서 제작함.


#<2021.12.30.목>

- { 마법사 : "(GUI)[예제]맷돌-IDE 배포판 제작기" } 안 <__Main.c> 안의 주석문 오타 수정.


#<2021.11.28.일> : 배포판 제작.

[맷돌-IDE] 의 "검증보기" 기능 중요 추가/수정.

- "문자열보기" 기능의 경우 기존에 [가상구동] 만을 대상으로 하던 것을 [직접연결:맷돌(G.MTDL.X)] 에도 적용.

- "문자열보기" 의 경우 [문자열] 이 VMOS 의 [허용주소범위] 에 존재하는지 확인하는 "안전장치" 추가.

- BCB 상에서 아래 함수들을 만들고 수정했음.

  => <debug_view.cpp : DebugView_Str_Cut_CRLF(), DebugView_Str_Read()> 함수는 [맷돌(G.MTDL.X)] 에서
     [문자열] 을 읽어 들이기 위하여 새로 제작.

  => <debug_view.cpp : DebugViewDisplay_Make_DisplayStr(), DbgExpTree_Set_Info()> 함수는 "문자열보기"
     기능 및 [허용주소범위] 확인 부분 추가.

  => <debug_view.cpp : DebugView_Create(), AbsAdrRange_Check()>, <ide_main.cpp:Ide_Ctrl_OS_MemRange()>
     함수는 이번 수정에 중요한 함수들이므로 반드시 참조할 것.

//[주의]
- [맷돌(G.MTDL.X)] 을 대상으로 검증 하는 경우, "문자열보기" 시 [문자열] 을 읽어 들이는데 많은 시간이 소요될수
  있으므로, 꼭 필요한 경우만 사용하고 다른 보기(16진수 보기 등) 상태로 전환할 것.

- [맷돌(G.MTDL.X)] 내부의 [메모리지도(MCU 상 실제 구조)] 완성함(간단하게 아래와 같음).
  "System 정보" 영역은 실제는 124 Byte 정도지만, MCU 자체가 Flash Memory 를 1K 단위로 지우기 때문에 1K 를 사용.

  "[BasVM(4K)][System(VMOS 자체 정보수록:1K)][VMOS][ GVMX ... ]"
  |<-------------<5K Byte>-------------->|

  자세한 주소와 각 정보의 크기/순서는 <BCB:vmos_info.cpp>, <IAR:vmos_system_def.h> 를 각각 참조할 것.


#<2021.11.21.일> : 배포판 제작.

"와치와인더" 관련 [마법사] 예제 2 개 수정.

- { 마법사 : "(예제)와치와인더", "(예제)와치와인더(G.M.RC.BASiC.MD 사용)" }.

- RC 서보 모터의 과부하 및 손상을 줄이도록 수정됐음.


#<2021.11.16.화> : 배포판 제작.

ADC 변환기 "MCP3008" 예제 2 개 [마법사] 에 추가.

- { 마법사 : "(예제)ADC MCP3008(API)", "(예제)ADC MCP3008(일반함수)" }


#<2021.11.12.금>

ADC 변환기 "MCP3008" 제어를 위한 API 추가.

- <API:_MCP3008_생성(), _MCP3008_삭제(), _MCP3008_변환()>.

- { API : 맷돌/주변소자/ADC/MCP3008 } 에 등록.

- [맷돌C] 로 만든 "일반 API" 로 [명령형 API] 는 아님.


#<2021.10.27.수> : 배포판 제작.

{ 마법사 : "(예제)GMRCBASiC(API사용)" } 의 [내부정의]  오류 수정.

- [속도] 관련 내부 정의 수정.


{ 마법사 : "(예제)와치와인더(G.M.RC.BASiC.MD 사용)" } 추가.

- [맷돌(G.MTDL.X)] 로 "G.M.RC.BASiC.MD" 를 제어하는 방식으로 와치와인더 구동.
  즉, 실제 [RC 서보] 구동은 "G.M.RC.BASiC.MD" 가 담당.


#<2021.10.23.토>

<API:_GImageBox_그림밝기_()> 추가.

"폼디자이너" 에 <GImageBox> 의 <속성:"그림밝기"> 추가 완료.


#<2021.10.22.금> : 배포판 제작.

"폼디자이너" 에 <GImageBox> 통합 완료.

<BCB> 쪽에서도 <GImageBox> 의 "폼디자이너" 용으로 변환 완료.


#<2021.10.03.일>

[폼디자이너] 에 <GImageBox> 통합 시작.


#<2021.09.01.수> : 배포판 제작.

"API 업데이트 도구" [GVMS] 와 [마법사] 에 추가.

1) { 메뉴 : GVMS(PC) -> "API 업데이트 도구" } 로 바로 실행.

2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]API 업데이트 도구" } 로 직접 만들어 사용.


#<2021.08.22.일>

"API 업데이트 도구" 완성.


#<2021.08.08.일>

[마법사] 안의 모든 [예제] "공백정리" 완료.

API 개발용 "@API" 폴더의 "공백정리" 완료.


#<2021.08.04.수>

<API:_Str_행뒷공백수얻기_()> 추가.


#<2021.07.27.화>

[맷돌-IDE:편집기] 에 "공백정리" 기능 추가.

- 현재 설계문서 전체 및 편집중인 문서의 쓸모없는 공백을 제거 하고 정리.

  1) [공백] 만 있는 행의 경우는 NULL 행으로 만든다.

     예) "    \r\n"           => "\r\n"

  2) 행 뒷 부분의 [공백] 은 모두 제거.

     예) "  기술내용...   \r\n" => "  기술내용...\r\n"

- "맷돌-IDE" 의 [마법사] 에 내장된 다양한 예제의 기술내용을 깔끔하게 만들어 주고 문서량을 줄이기 위한것.

- { 메뉴 : 편집 -> "설계문서 전체 공백(Space) 정리" } : [설계문서:Tree] 에 등록된 <*.c>, <*.h> 문서 전체를 대상으로 처리.

  { 메뉴 : 편집 -> "현재문서 공백(Space) 정리"     } : 현재 편집중인 문서만을 대상으로 처리.

  2 개 항목 추가.


#<2021.07.15.목>

"와치와인더(자동시계 태엽감기)" 완성.

- [자동시계(오토매틱시계)] 의 태엽을 자동으로 감아주는 장치.

- { [설계묶음]->[참고자료] } 안에 회로도, 도면, 사용예 등 내장돼 있음.

- { [마법사](설계묶음(예제)) -> "(예제)와치와인더" } 로 직접 만들어 사용.


#<2021.07.05.월> : 배포판 제작.

"썸네일 보기" [설계묶음] 에 간단한 설명 추가.

"2021.06.29.화+" 새로 배포.


#<2021.06.30.수>

"썸네일 보기" 수정.

- "기호/숫자/영문/한글" 순으로 자동 정렬 되도록 수정.


#<2021.06.29.화> : 배포판 제작.

"썸네일 보기" 와 <그림부품:GImageBox> 및 관련 API 대량 추가.

<API:_Str_목록정렬_()> 추가.

- "썸네일 보기" 에서 "기호/숫자/영문/한글" 순으로 썸네일을 정렬해서 보여주기 위한것.


#<2021.06.28.월>

"썸네일 보기" [GVMS] 와 [마법사] 에 추가.

1) { 메뉴 : GVMS(PC) -> "썸네일 보기" } 로 바로 실행.

2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]썸네일 보기" } 로 직접 만들어 사용.


#<2021.06.26.토>

"썸네일 보기" 완성.

- [가상 인쇄 롤러] 방식의 썸네일 보기 기능.

- <BMP>, <JPG/JPEG> 지원.


#<2021.06.25.금>

<그림부품:GScrollV> 에 "마우스휠" 동작 추가.

- "썸네일 보기" 지원을 위한것.


#<2021.06.16.수>

[찾기목록/책갈피:대화상자] 수정.

- 이미 책갈피에 존재하는 문자열의 경우 기존에 중복됐음을 알려만 주는 것에서
  "중복된 항목을 선택해서 보여주는 것까지" 처리하도록 수정.


#<2021.05.30.일>

<GUI:Bitmap> 추가.

- "비트맵" 을 다루기 위한 API.

- <API:_Bitmap_생성_(), _Bitmap_삭제_(), _Bitmap_폭_(),
       _Bitmap_높이_(), _Bitmap_열기_()> 추가.


#<2021.05.29.토>

<GImageBox> 에 API 추가.

- <API:_GImageBox_비트맵_출력_(), _GImageBox_비트맵_입력_(), _GImageBox_그림경로_기록_()>

- "썸네일 보기" 지원을 위한것.


#<2021.05.25.화>

<API:_GImageBox_그림_저장_> 추가.

- "썸네일 보기" 지원을 위해 추가함.


#<2021.05.23.일>

<BCB:Bmp_Get_Size(), Jpg_Get_Size()> 수정.

- 내부에 <try ... catch> 추가.

- <bmp, jpg, jpeg> 가 아닌 경우 발생 하는 오류에 대응하기 위한것.


<API:_VStrBuf_문자열_()> 내부 수정.

- "썸네일 보기" 제작중 오류 발견하고 수정.


#<2021.04.26.월>

<API:_GImageBox_그림경로_()> 수정.

- 반환형을 (void) => (unsigned char) 수정.

  [확장자] 는 <bmp, jpg, jpeg> 인데 실제 그림은 다른 형식일 경우 발생하는 오류를 처리하기 위한것.


#<2021.04.17.토>

<API:_GPicture_그림크기_얻기_()> 추가.


#<2021.04.12.월>

[그림부품:GImageBox] 완성.

- <API:_GImageBox_그림영역_자동위치_(), _GImageBox_그림위치_X_(), _GImageBox_그림위치_Y_(),
       _GImageBox_그림위치_설정_(), _GImageBox_그림_자동위치_(), _GImageBox_그림영역_테두리_(),
       _GImageBox_그림영역_테두리색_()> 추가.


#<2021.04.11.일>

<API:_GImageBox_이벤트_MWheel_(), _GImageBox_이벤트_MDClick_()> 추가.

<API:_GImageBox_그림영역_설정_()> 추가.

- <API:_GImageBox_그림영역_XXX_()> 등 개별 설정의 경우에, 설정시 마다
  내부적으로 <_Shape()> 를 중복 사용하게 되는 것을 막기 위한것.


<_Event_전체_.h> 에 "알림문" 추가.

- 마우스 "더블클릭" 지원을 위한 것으로 [그림부품:GImageBox] 제작시 필요로 추가됨.

#define  d_GuiMsg_MDClick        0x1b  //{ [ 식별자 ][ 알림문 ][     ][ X ][ Y ] }


#<2021.04.10.토>

<_Event_전체_.h> 에 "알림문" 추가.

- 마우스 "휠" 지원을 위한 것으로 [그림부품:GImageBox] 제작시 필요로 추가됨.

#define  d_GuiMsg_MWheel        0x1a  //{ [ 식별자 ][ 알림문 ][ LMR ][         ] }

//[LMR]
//{
    // ...

    //아래 2 개 항목 추가.
    #define  d_MouseWheel_Up      4
    #define  d_MouseWheel_Down    5

//}

[그림부품:GImageBox] 의 API 이름 변경및 추가.

- <API:_GImageBox_그림위치X_()> => <API:_GImageBox_그림영역_X_()>,
  <API:_GImageBox_그림위치Y_()> => <API:_GImageBox_그림영역_Y_()>,
  <API:_GImageBox_그림폭_()> => <API:_GImageBox_그림영역_폭_()>,
  <API:_GImageBox_그림높이_()> => <API:_GImageBox_그림영역_높이_()>

  로 [그림영역] 으로 정의를 수정하면서 API 이름도 같이 수정됨.

  이는 그림의 "집어끌기" API 지원을 위한것.

- <API:_GImageBox_집어끌기_()> 추가.


#<2021.04.06.화>

<BCB:Bmp_Stretch()> 함수 <gui.cpp> 에 추가.


[그림부품:GImageBox] 제작 완료.

- [그림부품:GImageBox] 용 API 26 개 추가/검증 완료.

- 현재 <GImageBox> 는 "맷돌-핀배치도" 보이기에 사용되고 있음.


#<2021.04.05.월>

"[폼디자이너]\GUI(기본)\__Gui_소멸자.c" 내용 수정.

- <main.c> 에서 <_Gui_기본틀_생성자()> 에서 <__Gui_생성자()> 가 먼저 호출되고(여기서 <_폼디자인_생성()> 이 호출)
  <__Main()> 이 다음에 호출되므로, [소멸] 시에는 역순으로 <__Main_소멸자()> 가 먼저 호출되고 <_폼디자인_소멸()> 이
  나중에 호출되어야 순서상 맞다.

  따라서, <__Gui_소멸자()> 함수 내부를 아래와 같이 수정.

  //<main.c>
  //{
      void main(void)
      {
        //[초기화]
        //{
            // ...

            _Gui_기본틀_생성자(); //<---폼디자이너로 만든 것은 여기서 생성.

        //}

        //[사용자:구현]
        //{
            __Main(); //<---나중에 사용자가 생성한 그림부품들은 여기서 생성.

        //}

        // ...

      }

  //}

  //<__Gui_소멸자.c>
  //{
      void __Gui_소멸자(void)
      {
        // ...

        __Main_소멸자(); //<---사용자가 생성한 그림부품을 먼저 삭제하도록 <_폼디자인_소멸()> 보다 먼저 호출되도록 수정.

        _폼디자인_소멸(); //<---먼저 생성한 것을 나중에 삭제.

        // ...

      }

  //}


#<2021.03.29.월>

[그림부품:GImageBox] 제작 시작.

- "맷돌 핀 배치도" 보이기에 사용하기 위하여 제작 시작.

- 현재 <bmp>, <jpg/jpeg> 문서를 열수 있음.


{ 메뉴 : 도움말 } 에 "맷돌 핀 배치도" 추가.

- "맷돌 A", "맷돌 A1", "맷돌 B" 3 종류의 각 "핀 배치도" 보기 항목 추가.


<BCB:Image_Get_Size()> 함수 <gui.cpp> 에 추가.

- <BCB:Bmp_Get_Size(), Jpg_Get_Size()> 두 함수를 하나로 묶은 것.


#<2021.03.26.금>

<BCB:Bmp_Get_Size(), Jpg_Get_Size()> 함수 <gui.cpp> 에 추가.

- 각각 <bmp>, <jpg/jpeg> 문서의 크기를 반환.


#<2021.03.22.월> : 배포판 제작.

[마법사] 에 예제 2 개 추가.

- "(예제)ADXL345+RC서보"

- "(예제)TXT-LCD+시계+온도계"


[마법사] 의 모든 예제에 "구동선택" 종류 추가.

- //[구동선택]{****
  //[ ]맷돌가상구동
  //[ ]맷돌직접연결
  //}************


#<2021.02.22.월> : 배포판 제작.

[구조체/공용체:구성원] 관련 중요 오류 수정.

- <BCB:IS_Struct_Union_Member_withNAME()> 수정.

  <BCB:REC_Search_Member_withName_inAllFile()> 함수 추가.

- [2018.07.25.수] 의 <EXPRESSION_DataDefault()> 함수의 [구조체/공용체:구성원] 관련 수정/보완 과
  연동되는 문제가 발생하여 수정.

- "반인반마" 설계묶음을 재빌드 하는 과정에서 오류를 발견하고 수정함.


#<2021.02.12.금> : 배포판 제작.

"TC++ 2006 Explorer" 과 "C++ Builder 커뮤니티 에디션" 동기화 완료.


#<2021.02.07.일>

<API:_VStrBuf_할당_()> 수정.

- [할당] 시에 [VStrBuf:저장소] 를 [할당:문자열] 에 맞춰 [재생성(초기화)] 하도록 수정.

  이는 계속된 [추가] 로 인하여 크기가 커진 [VStrBuf:저장소] 때문에 발생하는 메모리 낭비를 막기 위한것.


#<2021.02.06.토>

<API\기계닉스전용\ "VSTRBUF" > API 추가.

- <API:_VStrBuf_생성_(), _VStrBuf_삭제_(), _VStrBuf_할당_(), _VStrBuf_추가_(),
       _VStrBuf_저장소크기_얻기_(), _VStrBuf_문자열길이_얻기_(), _VStrBuf_문자열_()> 추가.

- <AnsiString> 과 같이 사용자가 "저장소 크기를 관리할 필요가 없이" 길이 제한이 없는 문자열을 다루기 위한것.

  즉, 자동으로 크기가 조정되는 문자열 저장소를 제공해 준다.


#<2021.02.05.금>

<API:_Mem_초기화_()> 추가.

- <memset()> 함수를 [맷돌:API] 로 만든것.

- 고속으로 메모리를 초기화 할수 있음.


#<2021.02.01.월> : 배포판 제작.

[C++ Builder 커뮤니티 에디션(10.3.3)] 으로 "유니코드" 및 "GUI" 부분 모두 전환 완료.

- [맷돌-IDE] 의 "GUI" 부분 초기화 오류 완전 해결.

- "C++ Builder 커뮤니티 에디션" 등 [CB10.X:계열] 은 기존 [TC++ 2006 Explorer], [XE:계열] 과는
  [그림부품] 초기화에 약간 차이가 있음.

  즉, [생성자] 에서 [그림부품] 초기화 시 "크기" 가 정상 반영 되더라도, 생성 후 <Parent> 속성을 지정시
  [폼디자인] 의 <*.dfm> 상의 크기로 강제 설정되는 "이상한" 문제가 있음.

  이는 [CB10.X:계열] 에서만 발생하는 것으로 그동안 [기계닉스:그림부품] 초기화를 방해한 원인으로, 이번에
  찾아내어 완벽 해결 하였음(생성시 크기와 <*.dfm> 상의 크기를 같은 크기로 설정하는 것으로 해결).

  [그림부품] "생성" 시에만 발생하며, 크기조정이나 사용시에는 영향을 주지 않음.

- 향후 [맷돌-IDE] 는 "TC++ 2006 Explorer(기본 개발 도구)" 와 "C++ Builder 커뮤니티 에디션" 두 가지로
  모두 공개됨(둘 다 "무료 도구" 이며 [XE:계열(상업용)] 은 이제 불필요).

  "TC++ 2006 Explorer" 로 개발을 하고 있으나 현재 구하기 어려우므로, 쉽게 구할 수 있고 "무료 도구" 인
  "C++ Builder 커뮤니티 에디션" 용 으로도 원본을 공개하고자 하는것.

- [C++ Builder 커뮤니티 에디션] 은 "무료 도구" 이며 아래 주소에서 구할 수 있음.

  < C++ Builder Community Edition : "https://www.embarcadero.com/products/cbuilder/starter" >


#<2021.01.27.수> : 배포판 제작.

"맷돌-IDE 배포판 제작기" 수정/보완.

- [정리목록] 에 [설계묶음<*.gprj>] 을 만들때 <*.gprj> 위치에 자동 생성되는 "glib", "build", "debug" [폴더] 도 추가.


#<2021.01.25.월> : 배포판 제작.

"맷돌-IDE 배포판 제작기" 수정/보완.

- 윈도우 계열에서 자동 생성되는 불필요한 "Thumbs.db" 와 "desktop.ini" 가 배포판에 추가되는 것을
  막기 위하여 [정리목록] 에 "*.db" 와 "*.ini" 도 추가.

1) { 메뉴 : GVMS(PC) -> "맷돌-IDE 배포판 제작기" } 로 바로 실행.

2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]맷돌-IDE 배포판 제작기" } 로 직접 만들어 사용.


[TC++ 2006 Explorer] 와 [XE:계열] 두 종류의 원본 공개 시작.


#<2021.01.24.일>

[TC++ 2006 Explorer] 용 [맷돌-IDE] 의 메모리 문제 완벽 수정.

- new 로 동적 생성하는 과정에서 너무 작은 크기 나 0 으로 생성된 부분(delete 시에 오류 가능성 있음)에 대한 수정.

- new 로 동적 생성하는 경우 가급적 1024(1K) 등 일정 양의 짝수 단위로 생성하도록 수정.

- 이를 위하여 새로 만든 <BCB:UnitX()> 를 사용함.

- 그 동안 사용 중일 때나 특히 [맷돌-IDE] "종료" 시 알수 없는 "메모리 오류" 가 완벽 해결됨.


"기계닉스 LED 전광판" 추가.

- [폼디자이너] 의 간단한 예제로 기계닉스 그림부품인 <GDotMatrix> 를 사용한 "기계닉스 LED 전광판" 추가.

1) { 메뉴 : GVMS(PC) -> "기계닉스 LED 전광판" } 로 바로 실행.

2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]기계닉스 LED 전광판" } 로 직접 만들어 사용.


#<2021.01.21.목>

"유니코드" 관련 사항이 완벽 수정된 [XE:계열] 용 [맷돌-IDE] 의 메모리 문제 완벽 수정.

- new 로 동적 생성하는 과정에서 너무 작은 크기 나 0 으로 생성된 부분(delete 시에 오류 가능성 있음)에 대한 수정.

- new 로 동적 생성하는 경우 가급적 1024(1K) 등 일정 양의 짝수 단위로 생성하도록 수정.

- 이를 위하여 새로 만든 <BCB:UnitX()> 를 사용함.

- 그 동안 사용 중일 때나 특히 [맷돌-IDE] "종료" 시 알수 없는 "메모리 오류" 가 완벽 해결됨.


#<2021.01.17.일>

<*.gvmi> 문서 정보 표기 수정.

- <*.gvmi> 는 <*.gvms> 나 <*.gvmx> 와 모든 내용은 같고 [선행정보(Header)] 를 비롯한 내용을
  HEX 문서 형태로 나열한 문서([맷돌-IDE] 나 일반 메모장에서 열어 볼수 있음).

  2 진화 문서인 <*.gvms> 나 <*.gvmx> 의 내용을 쉽게 확인해 볼수 있게 하는데 목적이 있음.


- 기존 "< Memory Size >" 를 "< Ram    Size >" 로 변경.

  실제 "VMOS 에서 사용 가능한 Ram 크기" 를 의미하므로 의미를 혼동하지 않도록 아예 확실한 표기로 변경한다.

  GVMX, GVMS 한 개가 구동되는 경우를 기준으로.

  { <d_VMEX_Hdr_MemSize> = <VMOS 설정 RAM 크기> - 64(선행정보크기) } 가 된다.

  즉, [가상기계] 한 개 구동시 이 [가상기계] 의 [선행정보(64 바이트)] 를 제외하고 "실제 사용할수 있는 RAM 의 총 크기" 가 된다.


- 선행정보 문자열 수정/재정리.

  < Version     > : 0100000000000000
  < Header Size > : 3000000000000000
  < Code   Size > : 7d470d0000000000
  < Data   Size > : c90c100000000000
  < Ram    Size > : c03f000000000000(gvmx)
                  : c03f260300000000(gvms)
  < Option      > : 0000000000000000


<GVMS> 실행 <d_VMEX_Hdr_MemSize> 변경.

- <GVMS> 를 VMOS 에서 실행할때, 이전에 생성된 가상기계(*.gvms) 의 [선행정보(Header)] 내부의 <d_VMEX_Hdr_MemSize> 값을
  사용하지 않고, 현재 VMOS 의 설정 <d_VMEX_Hdr_MemSize> 크기를 사용하도록(내부적으로 [선행정보] 자체를 치환) 변경.

  이는 VMOS 의 ROM, RAM 크기가 변경된 경우라도 기존에 만들어진 <GVMS> 를 실행할 수 있도록 하기 위한것.


<BCB:UnitX()> 함수 추가.

- <FILE_Open()> 등 파일 처리 함수 내부에서 new 로 동적 생성하는 경우 <35 바이트> 등 크기가 너무 작은 경우,
  [맷돌-IDE] 종료시 간헐적인 메모리 오류가 발생하는 문제를 해결하기 위한것.

- 최소 일정한 크기(예:1024) 단위로 동적 생성할수 있다.

- [폼디자이너] 의 [맷돌-C:자동번역] 처리 후 결과를 [편집기] 로 보여주는 과정에서 특정의 경우 발생하는 "메모리 오류" 를
  [추적/해결] 하는 과정에서 발견한 문제를 죽이기 위한것.


<BCB:_EDITFILE_Open()> 함수 중요 수정.

- <editor_edit_Form>, <GEditor> 가 해당.

- "[임시 문서 만들기]" 시에 '\0' 까지 저장하던 것을 '\0' 를 제외하고 저장하는 것으로 수정.
  편집기에서는 [문자열] 형태로 관리하지만 저장시는 '\0' 를 제외하고 저장해야 하기 때문.

- 그동안 잠복한 오류로 남겨져 있던 것을 발견하고 수정함.

- { <2021.01.15.금> : "맷돌-IDE" 편집기 오류 수정 }의 [오류] 와 직접 관련 있었음.


#<2021.01.15.금>

"맷돌-IDE" 편집기 오류 수정.

- 대용량 문서의 장시간 [편집/수정] 후 [파일크기] 에 오차가 발생하여 저장시 '\0' 이상의
  문자열까지 저장되는 문제 수정.

  이 경우 이 문서를 다시 열면 [문법해석] 시 원인을 알수 없는 오류가 발생할 수 있었음.
  즉, [편집기] 상에서는 보여지지 않는 문자열을 해석하게 되어 발생했던 문제.

- 아래 문제도 같이 해결.

  //[주의][해결됨]
  "내용이 없는 빈 문서" 를 <#include> 하는 경우는 [가상기계:만들기] 중에 "불규칙한 오류" 가 발생할수 있음.
  금일 이를 발견하고 기록함.


"TC++ 2006 Explorer" 설계묶음 옵션 수정.

- { Option->Linker->PE file options } 수정.

  API 가 계속 늘어 남에 따라 사용할 수 있는 메모리 량을 증가시키고 큰 메모리를 사용할 수 있도록 설정 수정.

  "Image flags(-GF)" 안의 링크 설정에 "LARGEADDRESSAWARE" 추가.

- Stack, Heap 관련 메모리 최대 량도 수정.


BCB "VMOS" 의 메모리 초기화 부분 수정.

- 기존에 직접 for() 를 사용한 초기화 에서 <memset()> 함수를 사용하여 "고속" 처리.

- VMOS 에서 사용하는 ROM, RAM 의 양을 늘리면서 VMOS 초기화 시간을 줄이기 위한것(아래 내용 참고).


"맷돌-IDE" 의 VMOS 사용 메모리 크기 조정.

- [폼디자이너] 와 같이 RAM 을 많이 사용하는 [가상기계(GVMS)] 를 위하여 VMOS 메모리 설정을 보다 크게 조정.

  <vmos_memmap_def.h> 내부 정의 수정.

  #define  d_Sim_VMOS_RomSize     (1024*516*10)  //5.16M
  #define  d_Sim_VMOS_RamSize     (1024*516*100) //51.6M
  #define  d_Sim_VMOS_HeapSize    (1024*516)     //516K


#**************************************************
#<2021.01.10.일> : [XE:계열] 로 전환 완료(유니코드 해결).
#**************************************************

[TC++ 2006 Explorer] 용을 [XE:계열] 용으로도 개발 가능하도록 전환 완료.

- [TC++ 2006 Explorer] 이후에 나온 툴의 "유니코드" 지원 문제로 발생한 모든 문제 해결이 중점.

- "C++ Builder 커뮤니티 에디션" 으로 "유니코드" 부분은 모두 전환하였으나 [맷돌-IDE] 의 GUI 를
  제대로 구현하지 못하는 예상하지 못한 문제가 발생.

  "기계닉스" 는 모두 직접 만든 GUI 용 [그림부품] 을 사용하나, 이 [그림부품] 을 "초기화" 하지 못하는 문제가 발생함.
  초기화 시에 <this 포인터> 로 [그림부품] 의 구성요소에 정확하게 접근하지 못하는 이상한 문제에 기인함.

- "C++ Builder 커뮤니티 에디션" 의 위와 같은 문제로 인하여 결국 [XE:계열] 로 전환하여 작업 완료.
  "유니코드" 로 인하여 발생하는 모든 문제는 해결 완료.

- [XE:계열] 로 만든 [맷돌-IDE] 는 [TC++ 2006 Explorer] 로 만든 것에 비하여 <*.exe> 크기가 2 배 정도 크나
  [TC++ 2006 Explorer] 로 만든 것과 완전 동일하게 동작함.

- [TC++ 2006 Explorer] 용으로 [맷돌-IDE] 를 공개하나 [TC++ 2006 Explorer] 를 구하기 어렵기 때문에
  보다 접근이 쉬운 [XE:계열] 로 [설계묶음:전체] 를 배포하는데 전환 작업의 목적이 있음.

- 주 개발은 [TC++ 2006 Explorer] 로 진행.
  단, 배포시는 [TC++ 2006 Explorer], [XE:계열] 용으로 각각 배포함.


#<2021.01.06.일>

[TC++ 2006 Explorer] 용 [맷돌-IDE] 설계묶음 전체를 [XE:계열] 용으로 전환 시작.

- 원래 "C++ Builder 커뮤니티 에디션" 으로 전환을 시작했으나, TC++ 2006 의 것을 제대로 불러 들이지 못하여
  [XE:계열] 을 사용하여 전환을 시작함.

- 전환 자체는 "C++ Builder 커뮤니티 에디션" 으로 시작함.


#<2021.01.01.금> : 2021 배포판 제작.

***********************************
"맷돌-IDE" 2021 년 첫 배포판 제작/배포.
***********************************


"맷돌-IDE 배포판 제작기" 완료.

1) { 메뉴 : GVMS(PC) -> "맷돌-IDE 배포판 제작기" } 로 바로 실행.

2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]맷돌-IDE 배포판 제작기" } 로 직접 만들어 사용.


[마법사] 대화상자 [설계묶음] 설명보기 기능 수정.

- <__Main.c> 가 있는 경우는 <main.c> 대신 <__Main.c> 문서를 열도록 수정.

- [폼디자이너] 로 만든 [설계묶음] 인 경우는 모든 기술이 <__Main.c> 부터 시작하기 때문에
  이를 반영하기 위한것.


"폼디자이너" 수정.

- [맷돌-C] 번역시 <__Main.c> 에 <__Main_소멸자()> 추가 및 관련 부분 수정.
  <__Main()> 함수 종료시 처리를 수행할 수 있음.

- [맷돌-C] 번역시 첫 번째 <GForm> 을 <기본:GForm> 으로 보고, 실행시 가장 앞으로 나오도록 자동 코드 추가.

- "폼디자이너" 실행시 가장 앞으로 나오도록 수정.

- 아래 두 부분 수정.

  1) { 메뉴 : GVMS(PC) -> "맷돌-IDE 배포판 제작기" }.

  2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]맷돌-IDE 배포판 제작기" }.


"맷돌-IDE" 몇가지 개선 점 발견.

- "Linux" 계열에서 "Wine" 으로 구동시 Windows API 에서 사용하는 CallBack 함수를 호출하지 못함.
  파일 "복사/이동" 관련 처리는 완벽 수행되나 진행과정 관련 부분은 완벽하게 동작하지 못함.
  아래 6 개 파일 처리 관련 API 가 영향을 받음.

  <API:_File_고급_복사_(), _File_고급_이동_(), _Files_고급_복사_(),
       _Files_고급_이동_(), _Dir_고급_복사_(), _Dir_고급_이동_()>.

- Linux 계열에서 Wine 으로 구동시 [편집기] 에서 "한글" 입력시 문제.

  "Wine:3.0" 까지는 "iBus", "Fcitx" 모두 잘 동작 하였으나, "Wine:4.0" 이상에서는
  "Fcitx" 만 완벽하게 동작함("iBus" 의 경우는 "한글" 입력시 오류 발생 할수 있음).
  가급적 "Fcitx" 사용 권장.


#<2020.12.22.화>

<API:_Dir_고급_이동_()> 의 [진행대화상자] 오류 수정.

- [전체:진행막대] 가 처음 파일 처리순번을 건너뛰는 문제 수정.

- [복사] 와 달리 [이동] 의 경우 [목록] 의 [역순] 으로 처리하므로 발생했던 문제로 수정/보완 됐음.


#<2020.12.20.일>

파일 처리시 "중단요청" 기능 추가.

- <API:_File_고급_복사_(), _File_고급_이동_(), _Files_고급_복사_(),
       _Files_고급_이동_(), _Dir_고급_복사_(), _Dir_고급_이동_()>.

- 파일 처리시 외부의 "중단요청" 을 받아들여 진행을 중단 시킬수 있음.
  위 6개 API [반환형], [인수] 등 대폭 수정.

- [취소됐음], [처리진행중] 의 경우를 반영하기 위하여 [반환형] 도 (bool) => (int) 로 수정.

- 관련 BCB 내부 파일처리 함수도 모두 수정완료.


파일 처리 API 의 BCB 내부 처리 방식 대폭 수정.

- <API:_File_고급_복사_(), _File_고급_이동_(), _Files_고급_복사_(),
       _Files_고급_이동_(), _Dir_고급_복사_(), _Dir_고급_이동_()>.

- [API 내부 직접 처리 방식] => [타이머(쓰레드)를 통한 간접 처리 방식] 으로 수정.

- 이는 [맷돌-GUI] 가 내부 처리에 묶이는 것을 막기 위한 것.

- API 는 내부 처리함수에 [인수] 만 전달하고 종료되며, 실체 처리는 타이머(쓰레드) 안에서 독립 처리.
  결과는 포인터를 통해서 외부 [맷돌-C] 의 변수로 전달.


#<2020.11.27.금>

<API:_FileStr_이름확장자보존_줄임표적용_()> 추가.

- [경로이름확장자] 를 지정 폭에 맞게 줄이되 제일 뒤에 있는 [이름확장자] 는 보존한다.

- "c:\aaa\bbb\ccc\ddd\eee\fff\이름.확장자" 를

  "c:\aaa\bbb\c...\이름.확장자" 형식으로 변경해 준다.

- <BCB> 의 [파일:복사/이동] 시 나오는 [진행대화상자] 의 경로라벨 두 개도
  <BCB:Str_FileName_Width_Ellipsis()> 로 [줄임문자열] 로 수정..

- <BCB:Str_FileName_Width_Ellipsis()> 사용.


#<2020.11.17.화>

<BCB:File_CopyEx_CallBack()>, <BCB:File_MoveEx_CallBack()> 중요 수정.

- [파일크기:0] 인 경우 내부 진행막대 % 계산 과정에서 분모가 0 이 되는 경우 수정.

  이 경우는 무조건 100% 진행으로 수정하였음.


#<2020.11.04.수>

<API:_File_열기대화상자_다중선택_상태인지_확인_()> 추가.

- 현재 [열기대화상자] 가 [단일/다중선택] 중 어떤 상태인지 알수 있음.

- <_File_열기대화상자_다중선택_(true)> 으로 설정(다중선택)하지 않으면
  기본적으로 [단일선택] 상태임.


#<2020.11.01.일>

<API:_File_열기대화상자_문서이름_()> 수정.

- [반환형] 을 void => int 로 수정.
  [문서이름] 의 [문자열길이] 만 얻는 [시뮬레이션] 기능 지원을 위한것.

- 내부적으로 [열기대화상자] 의 [다중선택:설정] 지원을 위하여 관련 내용 수정됨.

- <*.h> 설명 문서내용 대폭 수정/보완.


<API:_File_열기대화상자_선택된_문서개수_얻기_()> 추가.

- [열기대화상자] 가 [다중선택:설정] 인 경우 선택한 문서의 개수를 반환.
  [단일선택:설정] 인 경우는 항상 1 반환.


<API:_File_열기대화상자_문서항목_()> 추가.

- [열기대화상자] 가 [다중선택:설정] 인 경우 선택한 문서목록에서 지정한 순번의 문서이름을 반환.

- 문자열 처리 함수를 사용해도 무관하나 "집중과 편리" 관점에서 추가.


#<2010.10.31.토>

<API:_File_열기대화상자_다중선택_()> 추가.

- [열기대화상자] 를 [다중/단일:선택] 으로 설정.


#<2020.10.25.일>:배포판 제작.

[맷돌-IDE] 배포판 제작.


<API:_GPrintBox_저장소_()> 의 설명 추가/보완.

- <*.h> 의 내용을 참고.


#<2020.10.22.목>

"중복폴더 추출기" 를 [마법사] 에 추가.

1) { 메뉴 : GVMS(PC) -> "중복 폴더 추출기" } 로 바로 실행.

2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]중복 폴더 추출기" } 로 직접 만들어 사용.


[폼디자이너] 수정.

- <BCB:Application->ProcessMessage()> 와 동일한 기능인 <Ide_이벤트처리()> 지원 기능 추가.

  이에 따른 "맷돌-C:자동 완성 기능" 관련 문서 추가/수정.

  => "GUI(기본)\기계닉스\Event.c"

  => "GUI(기본)\기계닉스\함수모음.c"

  => "GUI(기본)\__Main.c"

- { 메뉴 : GVMS(PC) -> "폼디자이너" } 와 { [마법사](설계묶음(예제)) -> "(GUI)[예제]폼디자이너" }

  각각 위 내용 수정/반영.

- <Ide_이벤트처리()> 를 호출하면 <BCB:Application->ProcessMessage()> 와 동일 기능 수행됨.

  관련 <*.h> 는 이미 자동 기술돼 있으므로 사용자는 BCB 처럼 함수만 호출하면 됨.


#<2020.10.21.수>:[중복 폴더 추출기] 완료.

"중복폴더 추출기" 완료.


[중복 폴더 추출기]

- "검사", "추출" 기능 처리시 다른 버튼 "무효화" 처리 추가.

- 기능 처리중 <Ide_이벤트처리()> 사용으로 다른 버튼을 동작시키는 경우 발생할수 있는 오류를 막기 위한것.


#<2020.10.20.화>:[GUI/이벤트] 완성의 날.

<BCB:Application->ProcessMessage()> 동일한 기능 추가 완료.

- <Ide_이벤트처리()> 함수 추가.

  이벤트 처리중인 함수 내부에서 이 함수를 호출하여 "새로운 이벤트를 감지/처리" 가능.

- [폼디자이너] 의 [맷돌-C] 자동 완성기능 등에 추가 예정.

- BCB 와 동일한 "이벤트" 처리를 가진 완벽한 GUI 구현을 완성하게 됨.


[중복 폴더 추출기]

- "검사", "추출" 처리중 사용자 요청에 따른 "중지" 기능 추가.


#<2020.10.17.토>

<API:_Dir_존재확인_()> 추가.

- [폼디자이너] 로 만든 첫 작품인 "중복 폴더 추출기" 제작에 필요해서 추가.

- <DirectoryExists()> 사용.


<API:_Dir_폴더안의_문서전체이름목록_얻기2_(), _Dir_폴더안의_문서내부이름목록_얻기2_()> 수정.

- "목록 문자열:총 길이" 만 얻기 위한 "시뮬레이션" 기능 추가.

- 함수 반환형 <void> => <int> 로 변경.

- 자세한 내용은 해당 API 의 <*.h> 문서 참고.

- 얻고자 하는 "목록" 의 크기에 딱 맞는 "저장소" 를 생성하는 것에 수정 목적이 있음.


#<2020.10.14.수>

<API:_GPrintBox_출력_(), _GPrintBox_추가_()> 관련 BCB 수정.

- 내부에서 사용되는 <BCB:_BufAdd()> 중요 수정 있음!

- "저장소" 를 "출력 문자열" 과 "동일한 크기" 로 사용하는 경우 발생하는 문제 해결을 위한것.

- "저장소" 생성시 "문자열" 은 물론이고 '\0', "\r\n" 까지 저장할수 있도록 고려하는 것이 요점.

- 자세한 내용은 <BCB:_BufAdd()> 함수 내부 수정 내용 설명 참고.


#<2020.10.11.일>

[맷돌:API] 다수 추가.

- <API:_Dir_내부_삭제_(), _Dir_비었는지_확인_(), _File_고급_복사_(),
       _File_고급_이동_(), _Files_고급_복사_(), _Files_고급_이동_(),
       _Dir_고급_복사_(), _Dir_고급_이동_()>.

- 그동안 "파일처리" 관련 API 가 부족했던 문제 해결을 위한것.

- [폼디자이너] 로 만든 첫 작품인 "중복 폴더 추출기" 지원을 위해서 제작.

- 자세한 것은 각 API 의 <*.h> 문서 안의 설명을 참고.


#<2020.10.10.토>

<API:_FileStr_최종폴더파일목록_얻기_()> 추가.

- <BCB:Str_Get_Real_FileList()> 를 API 로 제작한 것.

- 목록의 항목은 "행 단위" 로 돼 있어야 하고 끝에 '\\' 이 붙어 있어야 한다.

- 주로 <API:_Dir_폴더안의_문서전체이름목록_얻기2_()/_Dir_폴더안의_문서내부이름목록_얻기2_()> 와 같이 사용.

  이 두 함수로 얻은 목록에는 항상 끝에 '\\' 이 붙어 있기 때문.


<BCB:Files_CopyEx()/Files_MoveEx()> 추가.

- "출발지:파일목록", "도착지:파일목록" 을 전달 받아 한꺼번에 "복사/이동" 처리.

- 서로 다른 "드라이브" 의 "파일" 을 한번에 묶어서 처리할수 있음.


<BCB:Dir_CopyEx()/Dir_MoveEx()> 추가.

- "진행대화상자:유/무" 와 "덮어쓰기:유/무" 를 설정 가능.

- "출발지:경로" 에서 "도착지:경로" 로 한번에 "복사/이동" 가능.


#<2020.10.04.일>

<BCB:Str_Get_Real_FileList()> 함수 추가.

- 원래 [폼디자이너] 첫 작품인 "중복 폴더 추출기" 를 만들면서 [맷돌-C] 로 만든 것을 그대로 BCB 로 포팅한것.

- "폴더/파일:목록" 에서 "최종:폴더/파일" 인 경우만 추출하여 "새목록" 으로 만들어 반환.

- "목록" 은 "1 행 : 1 항목" 형식의 "문자열" 로 구성되고 "빈 폴더" 의 경우는 반드시 끝에 '\\' 이 붙어 있어야 한다.

- 이 함수는 "파일 목록", "폴더 목록", "파일/폴더 목록" 에 모두 사용 가능.


<BCB:Dir_IsEmpty()> 추가.

- 지정 경로가 비어있는지 확인.


<BCB:Dir_Delete_Inner()> 추가.

- 지정 경로를 제외하고 내부의 모든 "폴더/파일" 을 삭제.


#<2020.10.03.토>

<BCB:File_MoveEx()> 추가.

- "진행대화상자:유/무", "덮어쓰기:유/무" 를 설정할수 있음.

- "진행대화상자" 를 처리하기 위하여 "콜백" 을 지원하는 <MoveFileWithProgress()> 사용.

- 큰 파일 처리시 시각적으로 진행 상태를 알수 있음.


#<2020.10.02.금>

<BCB:Dir_Copy()> 수정.

- 내부적으로 기존에 "파일" 만 대상으로 처리하던 것에서 "폴더" 까지 처리하는 것으로 수정.

- 관련 <API:_Dir_복사_()> 의 설명(<*.h> 문서) 수정.

- 내부적으로 <BCB:Dir_Get_FileNameList_BoundDir()> 에서 <BCB:Dir_Get_FileNameList_BoundDir2()> 를
  사용하도록 수정.


<API:_Dir_복사_()> 설명 수정/보완.

 - <p경로> 에는 '\\' 까지 붙어 있어야 한다.

 - "파일/폴더" 모두를 대상으로 복사한다는 내용 추가.


<BCB:Dir_Get_FileList_BoundDir2()/Dir_Get_FileNameList_BoundDir2()> 함수 추가.

- <Dir_Get_FileList_BoundDir()> 는 수집한 "폴더목록" 의 경우 뒤에 "\\" 이 붙어 있지 않아
  목록상으로 "폴더" 와 "확장자 없는 파일" 을 구분할수 없는 문제를 해결하기 위한것.

- 짝이 되는 <API> 함수 2 개 추가.


<API:_Dir_폴더안의_문서전체이름목록_얻기2_()/_Dir_폴더안의_문서내부이름목록_얻기2_()> 추가.

- <API:_Dir_폴더안의_문서전체이름목록_얻기_()/_Dir_폴더안의_문서내부이름목록_얻기_()> 와 동일하지만
  항목이 "빈 폴더" 로 끝난 경우, 끝에 "\\" 를 붙여준다는 것에 차이가 있음.

  이는 뒤에 "\\" 이 없으면 "빈 폴더" 와 "확장자 없는 파일" 을 목록상으로는 구분할수 없기 때문.

  기존 API 는 BCB 에서 이미 사용한 곳이 많으므로 기존 API 를 수정하지 않고 새 API 를 만든다.

- 각각 <BCB:Dir_Get_FileList_BoundDir2()>, <BCB:Dir_Get_FileNameList_BoundDir2()> 에 대응.


#<2020.10.01.목>

<BCB:File_CopyEx()> 추가.

- "진행대화상자:유/무", "덮어쓰기:유/무" 를 설정할수 있음.

- "진행대화상자" 를 처리하기 위하여 "콜백" 을 지원하는 <CopyFileEx()> 사용.

- 큰 파일 처리시 시각적으로 진행 상태를 알수 있음.


<GUI:GProgressDialog> 추가.

- "진행대화상자" 를 보여주기 위한것.

- 파일 "복사/이동" 등 처리시 "진행상태" 를 시각적으로 보여준다.

  <CopyFileEx()>, <MoveFileWithProgress()> 의 "콜백함수" 에서 사용.

- BCB 파일 처리 함수 용으로 만든 것이나 [맷돌:그림부품] 을 사용하여 제작.

- 아직, [폼디자이너] 용 [그림부품] 은 아님.


#<2020.09.25.금>

<API:_Dir_선택대화상자_()> 추가.

- "디렉토리" 만 선택할수 있는 대화상자.

- <API:_File_열기대화상자_()> 로 보여지는 "대화상자" 는 특정 "경로" 만 선택할수 없고,
  반드시 "파일" 을 선택해야 하는 문제가 있어 이를 보완하기 위한것.

- [폼디자이너] 를 사용한 첫 작품인 "중복 폴더 추출기" 를 지원하기 위하여 제작.


#<2020>


#<2019.03.08.금>

[맷돌-IDE:편집기] 중요 수정.

- Linux/Unix(LF), 그외(CR) 만으로 행을 구분하는 경우 문서를 읽지 못하는 오류 수정.

- 내부적으로 모두 "CRLF" 로 자동 변환되며 문서 저장시 변환된 문서로 저장됨.

- Linux/FreeBSD 에서 "Wine" 으로 구동하는 경우 "LF" 만 존재하는 문서 지원을 위한것.

- "복사/붙이기" 의 경우도 동일하게 "CRLF" 로 자동 변환됨.

- <BCB:Str_CRLF_Complete()> 추가.

- <GEditor> 도 동일하게 수정.


#<2019.03.03.일>

//[참고]{******************************
[찾기:대화상자] 의 "근접 단어 정렬" 기능 완성.
//}***********************************


[폼디자이너] 수정.

- <GList> 의 <BCB:FormMouseEnter(), FormMouseMove()> 부분 수정.

- [속성창] 에서 나오는 [귀뜸말] 이 [NULL:행] 과 [무효영역] 에서 사라지게 하기 위한것.

- <BCB:_EVENT_ItemMouseSelect()>, <이벤트:MSelect> 관련 수정.


[찾기:대화상자] 수정.

- [찾기] 관련 모든 경우에 "찾을 문자열" 이 [편집기] 에 "형광문자" 로 즉시 반영되도록 수정.


#<2019.03.02.토>

<GList> 수정.

- <BCB:_EVENT_ItemMouseSelect()>, <이벤트:MSelect> 관련 수정.

- [항목영역:밖] 인 경우에도 <_itemMouseSelIndex:-1> 로 [이벤트] 는 발생하도록 수정.

- [찾기이력] 지원을 위한것.

- <BCB:FormMouseMove()> 내부 수정.


#<2019.03.02.토>

<GList> 수정.

- <BCB:SetFocus()> 사용 부분에 <GList> 가 보이는 경우만 처리하도록 수정.


[찾기:대화상자] 에 "근접 단어 정렬" 기능 추가.

- [찾을 문자열:한줄편집기] 부분에 문자열 입력시 [찾은목록] 을 참고로 가까운
  항목만 정리해서 목록으로 보여줌(자동 전개됨).

- 일부 문자 입력만으로 간단하게 [찾을 문자열] 을 완성하기 위한것.


#<2019.03.01.금>

[찾기:대화상자] 에 "찾기이력" 추가.

- [찾을 문자열:한줄편집기] 의 오른쪽 전개 버튼("[▼]")으로 목록을 볼수있음.

- "찾기" 동작시 [찾을 문자열] 의 문자열이 자동으로 [찾은목록] 에 등록됨.

- [찾기:대화상자] 가 보일때 <"IDE\find\find.gtxt"> 를 열어 설정되고
  [찾기:대화상자] 를 닫을때 <"IDE\find\find.gtxt"> 에 현재 목록이 저장됨.


#<2019.02.26.화>

[전체찾기:Tree] 수정.

- 시인성 향상을 위하여 [찾은항목:문자열] 에 [형광문자] 지원.

- 등록된 [행:문자열] 에서 "찾을 문자열" 을 명확하게 확인할수 있음.

- [빠른목록] 에 { "굵은문자 사용", "문자색 설정", "형광색 사용", "형광색 설정" } 추가.

  [찾은항목:문자열] 의 자세한 시인성 표시 설정을 위한것.

  이 4가지 설정은 [맷돌-IDE:환경설정] 에 저장/관리됨.


#<2019.02.25.월>

[폼디자이너] 수정.

- [수정이력:창] 이 보이고 있는 상황에서 [메뉴:되돌리기/되살리기] 동작시에
  "바탕판:무효" 설정이 [해제] 되는 문제 수정.

- <Ide_알림()/Ide_알림_확인취소()> 를 사용한 [알림문:대화상자] 출력시
  [편집기/수정이력:창] 에 "유사모달" 이 적용되지 않는 문제 수정.

  <Ide_알림(), Ide_알림_확인취소()> 수정.


#<2019.02.24.일>

//[참고]{***************
"전체 찾기" 기능 모두 완료.
//}********************


[형식 적용 문자열] 중요 수정.

- <BCB:StrConf_Word_Set()> 함수 수정.

- [형식 적용 문자열] 이 적용되는 [설계정보:Tree], [찾기:Tree] 관련.

  <Parser()> - <Build()> 처리 과정에서 이 두 [Tree] 에 접근하는 경우 내부적으로
  <DB:ParserInfo> 를 동시 사용하여 발생하는 오류로 중단되는 문제 수정을 위한 것.

- <DB:ParserInfo> 를 사용하던 것에서 함수 내부에 선언한 <ParserInfo> 사용으로 변경.


[찾기:대화상자] 변경.

- "찾을 문자열(F3)", "교환 문자열(F4)" 로 각 [기능:키] 명시.

- [모두 교환] 기능시 처리 여부 재확인을 위한 "확인/취소" 기능 추가.

  [전체 찾기:버튼] 조작시 [모두 교환:버튼] 을 잘못 눌러 발생하는 오동작을 방지하기 위한것.


[폼디자이너] 수정.

- { 메뉴 : 복구 -> "그림부품 기본복구" } 처리에도 [수정기록] 추가.

- [되돌리기/되살리기] 지원을 위한것.


#<2019.02.23.토>

[전체찾기] 처리중 "중단" 기능 추가.

- 찾을 항목이 많아 처리 시간이 너무 길어지는 경우 도중에 사용자가 "중단" 시킬수 있음.

- 찾은 결과가 수백만 개 이상인 경우를 위한 것.


<BCB:STR_Find_Bound(), Ide_Project_Get_TotalFileSize()> 추가.

- [전체찾기] 지원을 위한것.


#<2019.02.22.금>

[전체찾기] 기능에 "진행막대" 추가.

- [찾기:대화상자] 의 "찾을 문자열" 위치에 [진행막대] 나옴.

- 찾은 결과가 수백만 개 이상인 경우를 위하여 진행정도를 알수 있도록 추가.
  찾은 항목수가 600만 개 정도 인 경우 10 초 이상 소요 될수 있음.
  단, 사용자 PC 성능에 따라 다름.


<BCB:STRHEAP_Str_Search(), STRHEAP_Get_Count()> 추가.

- [전체찾기] 지원을 위한것.


<BCB:STR_Get_ThisLineStr()> 중요 수정.

- "문자열" 을 반환하지 않는 경우는 [길이] 정보만 반환(처리시간 단축용).

- [전체찾기] 지원을 위한것.


#<2019.02.21.목>

[전체찾기:Tree] 대폭 수정.

- [항목 등록] 시와 [Tree:그리기] 시에 [고속 처리] 등 "속도개선" 을 위한것.

- 300만 개 [검색/등록] 시 약 3 초(PC 에 따라 차이가 있을수 있음) 소요.

- <BCB:_Tree_Search_Item_with_Name(), _Tree_Search_Item_with_Txt(),
       _Tree_Search_Before_Item()> 추가.

- <BCB:STRHEAP_List_ReSizeX(), STRHEAP_Set_List_NoSearch()> 추가.

- 처리 속도 향상을 위하여 [Tree] 구조 변경 있음.

- [새설계묶음] 과 [설계묶음:열기] 시에 초기화.

  <BCB:IDE_Project_New()> 에서 처리.


#<2019.02.17.일>

[전체찾기] 기능 완성.

- [설계묶음] 을 대상으로한 "전체 찾기" 기능 완성.

  [설계묶음:Tree]->[설계문서] 에 등록된 모든 문서만 대상으로 처리됨.

- [현재 열려있는 문서] 를 대상으로한 "현재 문서 전체 찾기" 기능 완성.

- 검색 결과는 [정보창:찾기]->[전체찾기:Tree] 에 출력됨.


[전체찾기:Tree] 수정.

- [항목:문서] 의 경우 [IDE:환경색] 적용.

  [항목:찾은문자열] 과 명확한 구분을 위한것.

- [항목:찾은문자열] 의 경우 "형식 적용 문자열" 이 지원되며 [한줄주석문] 까지 모두 포함되도록 수정.

  이 기능의 지원을 위하여 <BCB:StrConf_Word_Set()> 수정.

- 찾은 결과가 "전체찾기(문서:xxx/항목:xxx)" 형식으로 출력됨.


<BCB:StrConf_Word_Set()> 중요 수정.

- [형식 적용 문자열] 관련.

- 기존 "한줄 주석문" 을 걸러내던 것에서 "한줄 주석문" 까지 처리되는 것으로 수정.

  [한줄주석문] 의 경우는 [기본형식] 으로 적용.

- 처리 대상 문자열에 [한줄주석문] 만 존재하는 경우 [항목 문자열] 출력 오류 수정.
  예) "//..."

- <BCB:tree_tree_Form->_Tree()> 에서 [전체찾기:Tree] 지원을 위한것.


[정보창:Tree], [실시간정보판:Tree] 수정.

- "예약어" 색 [검정] => [검정:밝기(75)] 로 변경.

- "구조체/공용체:이름" 색 [검정:밝기(125)] 로 변경.


[폼디자이너] 수정.

- [모체:변경] 시 나오는 [퐁선도움말] 에 "반투명(225)" 기능 추가.


[정보창:Tree] 의 [빠른목록] 수정.

- ".현재항목 닫기" 항목 추가.


#<2019.02.16.토>

[찾기:대화상자], <GFindDialog>, <GMagBox> 수정.

- [한줄편집기] 배경을 [기본부품색:밝은색] 적용.

  [배경:흰색] 과 명확한 구분을 위한것.

- [찾기:대화상자], <GFindDialog> 의 버튼 간격 수정.

  [버튼:교환], [버튼:모두 교환] 의 간격을 일정하게 수정.


[전체찾기] 기능 추가 시작.

- [정보창:찾기]->[전체찾기:Tree] 추가.


#<2019.02.14.목>

[폼디자이너] 의 [모체:변경] 모두 완료.

- [생성] 시만 지정 가능한 [모체] 를 폼디자인 중 "실시간으로 변경" 할수 있음.


[맷돌-IDE] 검증 기능 수정.

- 검증시 실행("[▶") 버튼을 누른 경우 "행지정자" 를 감추도록 수정.

- [정지점] 이 설정된 경우 등 "행지정자" 가 [검증행] 을 지정해 주는데,
  기존에 실행("[▶") 버튼을 눌러도 "행지정자" 가 그대로 남던 오류 수정.


[맷돌-IDE:편집기] 와 <GEditor> 에 기능 추가.

- [키:F4] 를 누르는 경우 [찾기:대화상자] 의 "교환 문자열" 을 찾아주는 기능 추가.

- [키:F3] 와 대칭적인 동작을 위한것.


#<2019.02.13.수>

[폼디자이너] 에서 [모체:변경] 의 [되돌리기/되살리기] 수정/보완.

- [되돌리기/되살리기] 시에 "순간이동" 처럼 보이게 수정/보완.


[폼디자이너] 의 <GDotMatrix> 의 [되돌리기/되살리기] 오류 수정.

- "전구종류", "전구크기", "전구켜기색", "전구끄기색", "전구테두리", "전구테두리색", "전구배경색"
  7개 [속성] 의 [되돌리기/되살리기] 시 제대로 복구되지 못하는 오류 수정.


#<2019.02.12.화>

<API:_GX_보이기_()> 추가.

- [폼디자이너] 의 [모체:변경] 에서 [그림부품] 이동시 깜박임 현상을 제거하기 위한것.

- [감추기] -> [변경(이동)] -> [보이기] 순으로 처리하여 깜박임 현상 제거.


<GLabel> 에 <이벤트:MEnter/MLeave> 추가.

- <API:_GLabel_이벤트_MEnter_(), _GLabel_이벤트_MLeave_()> 추가.

- { [폼디자이너] -> [기본값] -> "GLabel.fmdv" } 문서의 관련 부분 추가.


#<2019.02.10.일>

[폼디자이너] 의 [모체:변경] "수정이력" 지원 추가.

- [모체:변경] 도 [되돌리기/되살리기] 지원.


[폼디자이너] 의 [모체:변경] 수정/보완.

- [모체:변경] 시 "마우스로 지정한 위치" 에 [그림부품] 이 위치하도록 수정.


<_Event_전체_.h> 수정.

- <이벤트:FDSelect> : { [ 식별자 ][ 알림문 ][ LMR ][ X ][ Y ] } 로 [LMR/X/Y] 정보 추가.

- [폼디자이너] 의 [모체:변경] 시 "마우스로 지정한 위치" 에 [그림부품] 을 배치하는 기능 지원을 위한것.

- <BCB:GPART_GCover_Create()> 에 [LMR/X/Y] 정보 추가.


#<2019.02.09.토>

<BCB:GPART_GetMotherInfo()> 중요 수정

- <Owner>, <Parent> 개념에 따른 <Owner> 정보 전체 수정.

- 추가된 [폼디자이너] 의 [모체:변경] 기능을 완벽하게 지원하기 위한것.

- [맷돌-C:GUI] 에서 [그림부품:생성] 시에 <Owner> 를 "GVmos" 로 일원화.

  <GVmos> 는 [맷돌-C:GUI] 의 기본이고 반드시 한 개 존재하므로 안전.

  <Owner> 는 [생성] 시만 지정 가능하고 실행중에 [변경] 이 불가능하므로
  [그림부품] 의 [모체:변경] 시 오류발생을 막기 위하여 기존과 달리 "GVmos" 로
  일원화 한것.

  <Parent> 는 기존과 동일하게 유지.

- 자세한 중요 내용은 <BCB:GPART_GetMotherInfo()> 함수안의 설명 참고.


[폼디자이너] 의 [모체:변경] 기능 추가.

- [생성] 시에만 지정 가능한 [모체] 를 [폼디자인] 중에 [변경] 할수 있음.

- [마우스] 로 지정하거나 [모체:ID] 를 직접 입력할수 있음.


#<2019.02.04.월>

<API:_GX_모체지정_()> 추가.

- [그림부품:생성] 시점에서만 지정할수 있는 [모체] 를 다른 것으로 재지정 할수 있음.

- [폼디자이너] 지원을 위한것.


#<2019.02.03.일>

<GPrintBox> 오류 수정.

_ <msg_msg_Form> 으로 <GPrintBox> 를 만들면서 <GPrintBox> 와 무관한 불필요한 기술
  때문에 [독립창] 으로 구동시 [문자열:출력] 과 [수직:줄이동] 이 연동되지 않는 오류 수정.

- <_GPrintBox_유효_(false)> 로 설정한 뒤 <_GPrintBox_추가_()> 를 사용하면 오류가 발생하는 문제 수정.
  내부적으로 [무효] 상태에서는 [수직줄이동자:이벤트] 에서 "촛점" 이 설정되지 않도록 수정됐음.


#<2019.02.02.토>

<GLabel> 중요 수정.

- [속성] 의 "우선순위:조합" 에 따른 처리방식으로 수정.

  기존 3 가지 속성의 조합 사용시 충돌을 방지하기 위한것.

- [자동폭/높이]  [제목수평/수직자동위치]  [제목위치X/Y]

     true            무효화            무효화

     false            true            무효화

     false            false            적용


#<2019.02.01.금>

[폼디자이너], [그림부품] 수정.

- <GScrolH>, <GScrollV>, <GProgress> 의 [최대/최소/위치] 의 "자동보정" 관련 수정/보완.

- 어떤 경우라도 { 최소 <= 위치 <= 최대 } 의 [절대조건] 을 만족 시키도록 수정.

  조건에 맞지 않는 경우 내부적으로 "자동보정" 되며, [속성창] 에서 [속성:수정] 시 "자동보정" 값으로
  3 가지 값 모두 자동 변경됨.

  이는 궁극적으로 값이 변하지 않는 경우 [수정기록] 에 등록하지 않는 것에 목적이 있음.


#<2019.01.31.목>

[폼디자이너] 수정.

- <GLabel>, <GList> 의 "자동폭", "자동높이" 가 <true> 인 경우는
  "폭", "높이" 를 [속성창] 에서 수정할수 없음.

  이 경우 [마우스] 를 사용한 크기 조정도 자동적으로 차단됨.

- <GLabel>, <GList> 의 "자동폭", "자동높이" 가 <true> 인 경우는
  "폭", "높이" 가 자동 변경되므로 [크기변경:수정기록] 도 같이 추가되도록 수정.


#<2019.01.30.수>

[폼디자이너] 수정.

- [속성] 수정시 [연동:수정] 되는 모든 속성값이 [속성창] 에 반영됨.


#<2019.01.29.화>

[폼디자이너] 수정.

- <GScrolH>, <GScrollV> 의 [줄이동자:위치] 의 "자동보정" 관련 수정/보완.

- "10진수" 속성 수정시, 10진수 표기 자동 정리(무효 '0' 와 부호 중복 제거 등).
  0000 => 0, +000516 => 516, -0 => 0.

  [속성:수정] 시 다른 값으로 인식되어 [수정기록] 에 반영되는 것을 방지하기 위한것.


#<2019.01.27.일>

<API:_File_열기_()> 의 <*.h> 내용 수정/보완.

[폼디자이너] 수정.

- <GList>, <GPrintBox> 의 [줄이동자위치] 의 "자동보정" 관련 수정/보완.

- <_GList_줄이동자위치_>, <_GPrintBox_수직줄이동자위치_> 해당.

- 줄이동 할 내용이 없는 경우 [줄이동자위치] 입력시 0 으로 "자동보정" 되어
  0 => 0 으로 값의 변화가 없으므로 [수정기록] 에 등록되지 않도록 수정.


#<2019.01.14.월>

[폼디자이너] 의 [되돌리기/되살리기] 기능 완료로 새 배포판 제작/배포.


[폼디자이너] "맷돌-C 번역" 시 <_GDotMatrix_전체_일시정지_()> 자동 추가.

- void _폼디자인_생성(void) [전처리/후처리] 부분에 각각 추가됐음.

- 모든 [폼디자인] 이 완성된 후 최종적으로 [전광판] 이 동시 구동 시작됨.

- [전광판] 이 사용되지 않은 경우는 영향을 주지 않음.


#<2019.01.13.일>

[폼디자이너] 의 [그림부품/속성] 의 모든 [되돌리기/되살리기] 지원 완료.

- { 메뉴 : 편집 -> 되돌리기(Undo)/되살리기(Redo) }
  { 메뉴 : 편집 -> 수정이력 }

- [메뉴막대] 의 [되돌리기(Undo)], [되살리기(Redo)], [수정이력].


[수정이력:창] 자동 [되돌리기/되살리기] 기능 완성.

- { 메뉴 : 편집 -> 수정이력 }, [메뉴막대] 의 [수정이력] 으로 전개.

- 모든 [수정이력] 내용의 "열람" 기능 뿐만 아니라 [수정기록:항목] 선택시
  해당 항목까지 [되돌리기/되살리기] 자동 진행.

- [되돌리기/되살리기] 횟수가 많은 경우 일일히 1 단계씩 처리 하지 않고
  원하는 지점까지 일괄적으로 자동 처리하고자 하는 경우 사용.

- [수정이력:창] 이 보이는 경우는 [폼디자인:편집] 기능이 차단됨.


[폼디자이너] 에서 [그림부품:생성/삭제] 까지 [되돌리기/되살리기] 지원 완료.

- 전체 삭제, 개별 삭제, 구성원이 있는 모체 삭제 등 모든 경우에 해당.


<API:_GDotMatrix_전체_일시정지_()> 추가.

- [폼디자이너] 의 "미리보기", "저장", "열기" 등 시간이 많이 걸리는 부분 처리시
  "전광판" 이 <이동:true> 로 문자열 회전중인 경우, 처리 시간을 증가시키는 문제가
  발견되어 이를 수정하기 위한것.

- [맷돌-IDE]/[폼디자이너] 에서 구동되는 모든 "전광판" 에 일괄 적용됨.
  <GDotMatrix> 의 [개별:속성] 이 아니라 "환경변수" 에 해당.


<API:_GLabel_비활성색적용_()> 추가.

- <GBmpButton> 에도 존재하는 기능으로 <GLabel> 의 [무효화] 설정시
  기본 적용되는 [비활성색:그리기] 를 제어할수 있는 기능.

  [무효화] 설정시만 적용되며 <false> 인 경우는 [비활성색] 을 적용하지 않는다.

- [폼디자이너] 바탕판 지원용.


#<2019.01.11.금>

<*.fmdsn> 문서에 "ID" 정보 추가.

- [그림부품:생성/삭제] 관련 [수정기록] 지원을 위한것.

- [되돌리기/되살리기] 시에 [수정기록] 과 "ID" 로 연동되기 때문.

- [모체] 와 [구성원] 과의 연동에 절대적으로 필요.

- [속성] 과는 무관하고 [그림부품:생성/삭제] 와만 관련됨.

- <*.fmdsn> 문서 "저장" 시나 "제작" 시에 자동 처리됨.


#<2019.01.09.수>

[폼디자이너] 지원을 위한 <API:_GX_크기설정_()> 추가.

- 마우스로 이동시 [되돌리기/되살리기] 지원과 [수정기록:최적화] 를 위한것.


[폼디자이너] 에서 마우스로 [이동/크기조정] 시 수정기록 "최적화" 완료.

- (X, Y)/(폭, 높이) 를 전부 [속성] 방식으로 개별처리(8 항목으로 처리)에서
  각 1 항목씩 2 항목으로 최적화.

- 마우스 [이동/크기조정] 은 빈도수가 높기 때문에 [수정기록:링버퍼] 의 기록량 감소를 위한것.


<GEditor> "형광문자" 추가.

- [찾기:대화상자] 의 [찾을 문자열/교환 문자열] 모두 [형광문자] 지정 추가.

- 두 종류 [형광색] 이 서로 다름.


[찾기:대화상자] 수정.

- 현재 편집기 상에 선택 문자열이 없는 경우 [찾기:대화상자] 를 보일때
  "찾을 문자열" 란에 기존 문자열 유지.

- [형광문자] 유지를 위한것.

- [맷돌-IDE:편집기] 와 <GEditor> 모두 해당.


#<2019.01.08.화>

[맷돌-IDE:편집기] 에 별도 "형광문자" 추가.

- 찾기 대화상자의 [찾을 문자열/교환 문자열] 모두 [형광문자] 지정 추가.

- 두 종류 [형광색] 이 서로 다름.


[찾기:대화상자] 수정.

- 현재 편집기 상에 선택 문자열이 없는 경우 [찾기:대화상자] 를 보일때
  "찾을 문자열" 란에 기존 문자열 유지.

- [형광문자] 유지를 위한것.


#<2019.01.03.목>

[폼디자이너] 에서 "묶음이동" 의 [되돌리기/되살리기] 지원 완료.

- 여러개의 [그림부품] 을 한꺼번에 같은 변위로 이동한 경우 해당.


#<2019.01.02.수>

[폼디자이너] 의 [수정이력:창] 자동 [되돌리기/되살리기] 에서 "속성" 부분 완성.

- [마우스/KEY:Enter] 로 [수정이력:창] 의 항목을 선택시
  지정 항목까지 일괄적으로 [되돌리기(Undo)/되살리기(Redo)] 자동 진행.

- 현재는 "속성" 만 적용되고 "그림부품" 의 [생성/삭제] 시는 적용되지 않음.


#<2018.12.28.금>

<GCover> 이벤트 제어용 API 추가.

- <API:_GCover_이벤트_FDSelect_(), _GCover_이벤트_FDUnSelect_(), _GCover_이벤트_KDown_(),
       _GCover_이벤트_MDown_(), _GCover_이벤트_Drop_(), _GCover_이벤트_Resize_()>.

- [폼디자이너] 지원을 위한 추가 기능.


#<2018.12.27.목>

[폼디자이너] 수정.

- [속성:창] 에서 수정 항목을 다시 [선택] 상태로 유지 하도록 수정.

- [속성] 수정 후 다시 가장 처음으로 줄이동 되는 문제 수정(줄이동자 이동 없음).


#<2018.12.26.수>

<GList> 수정.

- <선택항목 : -1> 인 경우 무조건 <줄이동자 : 0> 으로 초기화 되는 문제 수정.
  [항목:선택] 만 [해제] 되고 줄이동자는 현재 위치를 유지하도록 수정됨.

- [찾기목록/책갈피] 대화상자와 그림부품 <GList> 에 해당.
  선택 항목이 삭제된 경우 [항목:선택] 만 [해제] 되고 줄이동자는 현재 위치를 유지.

- <API:_GList_항목선택_()> 에 해당하는 BCB 함수 수정.


#<2018.12.21.금>

[폼디자이너] "도움말" 열때 [웹문서] 열람 [유/무] 를 확인하는 [대화상자:확인/취소] 추가.


#<2018.12.17.월>

[폼디자이너] 용 <GCover> 의 <이벤트:d_GuiMsg_Resize> 수정.

- [마우스] 를 사용한 크기조정(LMR:L)과, 일반 크기조정(LMR:0)으로 구분 처리.

- 둘은 배타적으로 동작.

- [되돌리기/되살리기] 지원을 위한것.


[폼디자이너] 에서 [그림부품] 이 선택된 경우는 [속성탭:유/무] 에 무관하게
항상 [속성창] 에 [속성:설정] 하는 것으로 수정.

- [되돌리기/되살리기] 지원을 위한것.


#<2018.11.06.화>

<API\기계닉스전용\ "VRINGBUF" > API 추가.

- <API:_VRingBuf_자료영역인지_확인_(), _VRingBuf_정보얻기_(), _VRingBufRead_위치설정_(),
       _VRingBufRead_현재위치를_쓰기위치로_설정_(), _VRingBufRead_앞으로읽기_(),
       _VRingBufRead_뒤로읽기_()> 추가.

- [폼디자이너] 의 [되돌리기/되살리기] 구현 지원용.


#<2018.11.03.토>

<API\기계닉스전용\VRINGBUF> 추가.

- <API:_VRingBuf_생성_(), _VRingBuf_삭제_(), _VRingBuf_비우기_(), _VRingBuf_저장된_개수_얻기_(),
       _VRingBuf_쓰기_(), _VRingBuf_쓰기X_(), _VRingBuf_읽기_(), _VRingBuf_읽기X_()> 추가.

- [RingBuffer] 구현을 위한 API 8 개 추가.

- [RingBuffer] 는 사용 용도가 많으므로 API 로 추가됨.

- [폼디자이너] 의 [되돌리기/되살리기] 구현을 위한 기본 구조로 사용하기 위한것.


#<2018.10.28.일>

[폼디자이너] 수정.

- 미완성 기능 제거.

- { 메뉴: 도움말 } 에 기계닉스 웹 문서 연결.


#<2018.10.23.화>

[폼디자이너] 완료!!!

1) { 메뉴 : GVMS(PC) -> "폼디자이너" } 로 바로 실행.

2) { [마법사](설계묶음(예제)) -> "(GUI)[예제]폼디자이너" } 로 직접 만들어 사용.

- [폼디자인<*.fmdsn>] 을 [맷돌-C] 로 "자동 번역" 하는 기능까지 완료.
  [폼디자인<*.fmdsn>] 과 [같은:이름] 으로 [같은:위치] 에 [번역:폴더] 자동 생성.
  내부의 [설계묶음<*.gprj>] 을 [맷돌-IDE] 에서 바로 사용 가능(별도 기술 없이 바로 실행 가능).

- 사용자는 자동 생성된 [설계묶음<*.gprj>] 에 필요한 내용 기술.


{ 메뉴: GVMS(PC) } 4 종류 다시 제작.

- <GList>, <GEdit> 의 API 내부 수정을 반영하기 위한것.

- "AVR-ISP", "GMRCBASiC-IDE", "맷돌28호(G.MTDL.A.RC28)-설정기".

- "폼디자이너".
  개발 완료된 것으로 반영.


[마법사](설계묶음(예제)) -> "(GUI)[예제]폼디자이너" 수정.

- [폼디자이너] 완료된 것으로 교체.


#<2018.10.21.일>

[맷돌-IDE] 출력창 수정.

- 용량 초과시 자동 적으로 용량 단위로 문자열을 끊어서 출력.
  문자열이 (n * 용량) 이상인 경우 최종적으로 용량 한도의 문자열만 출력됨.

- [바이트:단위] 로 끊지 않고 [행:단위] 로 끊어서 출력시 보기 좋게 유지.

- 검증시 "문자열보기" 지원을 위한것.


[맷돌-IDE] 수정.

- [설계묶음] 이 열려있는 경우 [새설계묶음/열기/종료] 시에 현재 [설계묶음] 을
  바로 닫지 않고 종료 여부를 확인하는 대화상자 보여짐.


#<2018.10.19.금>

<API:_GuiMsgQ_쓰기_int_()>, <API:_GuiMsgQ_쓰기_XY_()> 추가.

- [VMOS] 에 직접 [알림문] 을 전달하여 [그림부품] 을 제어할수 있음.

- 사용자가 직접 [이벤트] 를 발생시켜 [VMOS] 일부과 [그림부품] 제어 가능.


<GCheckButton>, <GRadioButton>, <GDotMatrix> [그림부품] 중요 수정.

- BCB 내부적으로 <이벤트:MClick> 처리부 위치 수정.

- "Linux:Wine" 지원을 위한것.


<_Event_전체_.h> 수정.

- <MClick> 의 경우 [마우스:버튼:L] 만 지원 되므로 MLR 제거.

//수정전.
#define  d_GuiMsg_MClick        0x05  //{ [ 식별자 ][ 알림문 ][ LMR ][ X ][ Y ] }

//수정후.
#define  d_GuiMsg_MClick        0x05  //{ [ 식별자 ][ 알림문 ][     ][ X ][ Y ] }


#<2018.10.17.수>

<API:_GEdit_이벤트_KEsc_()>, <API:_GEdit_이벤트_KEsc_()>,
<API:_GList_이벤트_KEnter_()>, <API:_GList_이벤트_KEsc_()> 수정.

- <d_GuiMsg_KEsc>, <d_GuiMsg_KEnter> 로 별도 [알림문] 을 가지고 독립적으로 동작.

- <이벤트_KDown>, <이벤트_KUp> 과 독립적으로 동작되며 둘 다 사용 가능.

- [폼디자이너] 해당 사용부분 수정.


<_Event_전체_.h> 수정 및 추가.

- [폼디자인너] 의 [맷돌-C] 번역 지원을 위한것.

//[수정!!!] : 정의 값 교체/수정.
//{
    //눌린 키가 올라오는 경우.
    #define  d_GuiMsg_KUp           0x16  //{ [ 식별자 ][ 알림문 ][     ][   키값  ] }

    //키가 눌리는 경우.
    #define  d_GuiMsg_KDown         0x17  //{ [ 식별자 ][ 알림문 ][     ][   키값  ] }

//}

//[추가!!!]
//{
    //[키:Esc:Down] 인 경우.
    #define  d_GuiMsg_KEsc          0x18  //{ [ 식별자 ][ 알림문 ][     ][   키값  ] }

    //[키:Enter:Down] 인 경우.
    #define  d_GuiMsg_KEnter        0x19  //{ [ 식별자 ][ 알림문 ][     ][   키값  ] }

//}


#<2018.10.16.화>

<API:_GX_표시되는_이름설정_()> 추가.

- [그림부품] 이 [독립창] 으로 동작되는 경우 [작업표시줄] 에 나오는 [이름] 설정.

- 기본적으로 [그림부품:종류] 가 나오게 되나 사용자가 직접 지정 가능.

- [폼디자이너] 를 [맷돌-C] 로 번역시 자동 추가됨.


[폼디자이너] 도 [작업표시줄] 표시 이름 "맷돌-폼디자이너" 로 수정.


<GDotMatrix> 수정.

- <API:_GDotMatrix_그림영역높이_()>, <API:_GDotMatrix_그림영역폭_()>,
  <API:_GDotMatrix_이동문자열_()>, <API:_GDotMatrix_전구설정_()> 설정시
  자동적으로 [이동문자열] 이 출력됨([이동문자열] 이 존재하는 경우).

  이는 [전광판] 의 경우 문자열이 출력된 상태에서만 설정 내용을 확인할수 있기 때문.

- [이동문자열] 을 설정하지 않은 상태에서는 아무것도 표시되지 않음(기본상태).


#<2018.10.14.일>

<GForm>, <GButton>, <GBmpButton>, <GLabel>, <GTabs>, <GProgress>,
<GScrollH>, <GScrollV>, <GCheckButton>, <GRadioButton>, <GEdit>,
<GEditor>, <GList>, <GPrintBox>, <GDotMatrix> [그림부품] 중요 수정.

- [폼디자이너] 에서 제공하는 모든 [그림부품] 이 [독립창] 으로 동작되도록 수정.

- [그림부품] 이 [모체] 가 없이 생성된 경우는 [독립창] 으로 동작.
  [작업표시줄] 에 개별적으로 등록됨.

- [맷돌-IDE] 최소화 시 같이 [작업표시줄] 로 이동하지 않고 독립적으로 동작.

- [폼디자이너] 을 위하여 추가된 기능.


#<2018.10.13.토>

<BCB:STR_InsertLineStr> 수정.

- 동적생성 크기 오류 수정.


<API:_Ide_설계묶음_문서에_C_추가_()>, <API:_Ide_설계묶음_문서에_함수묶음_추가_()> 수정.

- 내부적으로 <BCB:STR_InsertLineStr> 사용에 따른 수정 및 재구성.


#<2018.10.11.목>

[마법사](설계묶음(예제)) -> "(GUI)[예제]폼디자이너" 내부 문서 수정.

- "기계닉스\기계닉스_이름정의.h" 문서에 아래 내용 추가.

- "기계닉스\Gui.h" 문서에서 아래 내용 제거.

//[GUI]
//{
    #define  d_Gui_생성자_크기    12

    #define  t_생성자            unsigned char

//}


#<2018.10.11.목>

<API:_File_이름변경_()>, <API:_File_삭제_()>, <API:_File_찾기_()> 추가.


<API\IDE\API_Ide_설계묶음> 추가.

- <API:_Ide_설계묶음_경로이름확장자_()>, <API:_Ide_설계묶음_문서에_C_추가_()>, <API:_Ide_설계묶음_문서에_함수묶음_추가_()> 추가.

- [설계묶음<*.gprj>] 문서에 직접 <*.c>, <*.glib> 를 추가하기 위한것.

- [폼디자이너] 지원을 위하여 새로 제작.


#<2018.10.06.토>

<API:_Dir_경로생성_()> 수정.

- API 내부 구성 함수를 <CreateDir()> => <ForceDirectories()> 로 변경.

- 최후 경로만 생성되는 것에서 존재하지 않는 내부 경로 까지 전부 생성됨.


#<2018.10.05.금>

[맷돌-IDE:편집기] 와 <GEditor> 수정.

- 기계닉스 [특수주석] 에 "형식", "구조" 추가.

//[형식] ...
//[구조] ...


#<2018.10.01.월>

[맷돌-IDE:편집기] 수정.

- _GButton_생성_() 처럼 앞/뒤에 "_" 이 붙은 [기계닉스:특수함수(주로 API)] 의 경우 전용 [색동문자] 가 적용됨.

- d_기계닉스 와 같은 "d_" 를 붙인 [기계닉스:이름정의:표기] 인 경우 [색동문자] 적용.

- event [기계닉스:특수함수] 에 [색동문자] 적용.

- 16진수(0x516), 2진수(0b010100010110) 의 [색동문자:기본색] 변경.


<GEditor> 기능 추가.

- [맷돌-IDE:편집기] 와 동일하게 [색동문자] 추가 적용.

- __Main(), _GButton_생성_() 과 같은 [기계닉스:특수함수] 의 [색동문자] 적용.

- d_기계닉스 와 같은 "d_" 를 붙인 [기계닉스:이름정의:표기] 인 경우 [색동문자] 적용.

- event [기계닉스:특수함수] 에 [색동문자] 적용.

- 16진수(0x516), 2진수(0b010100010110) 의 [색동문자:기본색] 변경.

- 기계닉스 [특수주석] 에 "수정", "보완" 추가.
  "주의", "중요", "참고", "설명", "방법", "조건", "수정", "보완".

//[수정] ...
//[보완] ...


#<2018.09.30.일>

[맷돌-IDE:편집기] 수정.

- __Main() 처럼 앞에 "__" 이 붙은 [기계닉스:특수함수] 의 경우 전용 [색동문자] 가 적용됨.

- [폼디자인] 의 [맷돌-IDE] 통합 지원을 위한것.


#<2018.09.24.월>

<API:_GButton_임시선택색_()>, <API:_GButton_임시선택사용_()>,
<API:_GBmpButton_임시선택색_()>, <API:_GBmpButton_임시선택사용_()> 4개 추가.

- <GButton>, <GBmpButton> 의 "메뉴" 등 다른 용도 사용을 지원하기 위한것.


#<2018.09.20.목>

[폼디자이너] 수정.

- [탭:목록] 의 그림부품 탐색 기능 오류 수정.

- 생성된 그림부품이 하나도 없는 경우는 탐색 동작이 수행되지 않도록 수정.


[폼디자이너] 메뉴 구조 변경.

- 기존의 단순 항목 방식에서 [하위메뉴] 방식으로 변경.
  기능 확장에 대한 대비.


<API:_GList_항목선택_()> 설명 오류 수정.


#<2018.09.13.목>

"*.gvmi" 문서 정보 수정.

- [선행정보] 중 <Memory Size> 정보를 기존 <GVMX> 의 것만 기술하지 않고
  <GVMS> 의 것도 같이 기술.
  이는 <GVMS> 의 활용도가 높아짐에 따른 것.

- 아래와 같이 두개의 행으로 기술하고 끝에 식별자 표기.

  < Memory Size > : c03f000000000000(gvmx)
                  : c0fff90000000000(gvms)


#<2018.09.12.수>

[맷돌-IDE:편집기] "정지점" 관련 수정.

- [정지점:행] 을 기존 전체 행을 지정색으로 칠하는 방식에서
  문자열이 있는 부분까지는 기존과 같고 나머지 영역은 [교차점선(▒)] 으로 수정.

- [편집기] "배경그림" 을 완전히 가리지 않고 [반투명] 상태로 보여주기 위한것.


#<2018.09.11.화>

<GEditor> "정지점" 관련 수정.

- [정지점:행] 을 기존 전체 행을 지정색으로 칠하는 방식에서
  문자열이 있는 부분까지는 기존과 같고 나머지 영역은 [교차점선(▒)] 으로 수정.

- [편집기] "배경그림" 을 완전히 가리지 않고 [반투명] 상태로 보여주기 위한것.


[맷돌-IDE] 메모리 크기 수정.

- ROM(5M), RAM(16M) 로 수정.

- "[v]맷돌가상구동" 선택시 메모리 초기화를 빠르게 수행하도록 적정 크기로 조정.


#<2018.09.05.수>

<GEditor> 모든 구성 [그림부품] 에 [활성/비활성] 모양 만들기 적용 및 수정.

- [편집기] 자체는 유지되고 주변 [그림부품] 에 [활성/비활성] 모양 만들기 적용됨.

- [수직:보조선] 의 [배경:색] 이 [지정행:색] 으로 그려지는 문제 수정.


#<2018.09.01.토>

<API:_GPrintBox_추가_()>, <API:_GPrintBox_출력내용읽기_()>, <API:_GPrintBox_출력내용크기읽기_()>,
<API:_GPrintBox_저장소_()>, <API:_GPrintBox_저장소크기_()>, <API:_GPrintBox_출력형식_()>, <API:_GPrintBox_출력_()>

각 <*.h> 의 설명 수정/보완.


#<2018.08.31.금>

<GList> 의 [수직줄이동자] 도 [활성/비활성] 모양 만들기 적용.


#<2018.08.28.화>

<GVmos> 에 [활성/비활성] 모양 만들기 적용.


#<2018.08.27.월>

<API:_GBmpButton_비활성색적용_()> 추가.

- <GBmpButton> 은 [비활성] 시에 "[비활성] 모양 만들기" 를 제한할수 있음.

- <GMsgBox> 에 사용된 <GBmpButton> 의 [비활성:색] 적용을 제한하는 것으로
  다른 용도로 <GBmpButton> 사용시를 지원하기 위한 것임.


#<2018.08.26.일>

아래 그림부품에 모두 [활성/비활성] 모양 만들기 적용.

<GForm>, <GButton>, <GBmpButton>, <GLabel>, <GTabs>,
<GProgress>, <GScrollV>, <GCheckButton>, <GRadioButton>,
<GEdit>, <GEditor>, <GList>, <GPrintBox>, <GDotMatrix>.


#<2018.08.23.목>

<GScrollH> 에 [활성/비활성] 모양 만들기 적용.


#<2018.08.22.수>

<GDotMatrix(전광판)> 수정.

- [전광판] 이 [무효] 상태에서도 문자열이 "회전" 되는 문제 수정.

- 무효시 [속성:회전 = true] 라도 "회전" 이 정지하고,
  유효시 [속성:회전] 상태를 다시 반영.


#<2018.08.20.월>

[폼디자이너] 에 "묶음이동" 기능 추가.

- [모체] 가 같은 [그림부품] 은 이중 한 개만 이동해도 모두 같이 이동.

- [마우스] 사용시나 [속성창] 에서 직접 X, Y 수치 입력시 모두 적용.


[제어상자] 에 [탭:도구] 추가.

- 폼디자인을 위한 도구 모음 추가를 위한것.

- "[v] 묶음이동" 추가.


#<2018.08.20.월>

<GTabs> 중요/대폭 수정.

- [맷돌-IDE] 에 사용된 <gui_tabs> 과 동일하게 수정.

- [항목] 이 모두 보여지지 않는 경우 자동으로 오른쪽에 [화살표] 보임.
  [화살표] 로 전체 항목 수평이동 가능.

- [속성:"굴림사용"] 추가.
  [항목] 이 모두 보이지 않는 경우 [마우스:휠] 을 사용하여 [수평이동] 할수 있음.
  <API:_GTabs_굴림사용_()> 추가.

- [속성:"화살표보이기"] 추가.
  [항목] 이 모두 보이지 않는 경우에 자동으로 나오는 [화살표] 의 보이기 유/무 선택.
  <API:_GTabs_화살표보이기_()> 추가.

- "폼디자이너" 의 [기본값->"GTabs.fmdv"] 문서에 해당 속성 두개 추가.

- "폼디자이너" 의 [속성창] 에 "굴림사용", "화살표보이기" 두개 속성 추가.

- [속성:"선택색"] 초기값을 <은색(clSilver)> 으로 수정.
  기존 [선택/비선택] 항목의 구분을 확실하게 하기 위한것.


<API:_GX_위치설정_()> 추가.


#<2018.08.15.수>

[Linux:wine] 에서도 [폼디자이너] 완벽하게 동작됨.


<GVmos>, <GForm> "중요" 수정.

- "최대화" <=> "기본화" 전환시 [맷돌-IDE] 가 갑자치 펼쳐지는 문제 수정.

- [Linux:wine]/윈도우 공통 문제 해결.


<API:_GVmos_창최대화_()>, <API:_GVmos_창기본화_()>, <API:_GVmos_창최소화_()>,
<API:_GForm_창최대화_()>, <API:_GForm_창기본화_()>, <API:_GForm_창기본화_()>
API 6개 추가.


{ 메뉴: GVMS(PC) } 의 이전 4 종류 다시 제작.

- [맷돌-C] 용 [그림부품] 들의 [폼디자이너] 지원을 위한 기능 향상을 반영하기 위한것.

- "AVR-ISP", "GMRCBASiC-IDE", "맷돌28호(G.MTDL.A.RC28)-설정기".

- "폼디자이너".


#<2018.08.14.화>

[폼디자이너] <_File_열기_()> 사용 오류 수정.

- [문자열 문서] 인 경우는 반드시 문서를 연뒤 맨 뒤에 '\0' 붙여 문자열로 완성하는 것 추가.


[폼디자이너] 의 [미리보기] 시 [그림부품] 들이 "화면 중간" 을 중심으로 분포하도록 수정.


#<2018.08.12.일>

[폼디자이너] 의 "미리보기" 기능 완성.

- 실제 구현된 모습과 왜곡 없이 완전히 동일하며 모두 실제 그대로 동작함.

- [저장/열기/미리보기] 등에서 "진행막대" 로 진행 상황을 알수 있도록 기능 추가.


#<2018.08.11.토> : [배포판:14.5.16]

{ 메뉴 : GVMS(PC) } 에 "폼디자이너" 추가.


[마법사](설계묶음(예제)) 에 "(GUI)[예제]폼디자이너" 추가.

- 아직 미완성이나 기본 적인 모든 것은 동작함.

- 향후 광범위하게 사용될 [폼디자이너] 개발 원본.


<API:_File_열기대화상자_경로지정_()>, <API:_File_저장대화상자_경로지정_()> 추가.


#<2018.08.10.금>

<API:_GLabel_모양만들기_()> 추가.

- 내부적으로 전체 모양을 만들어 주는 <_Shape()> 함수 자체의 처리 [유/무] 를 결정.

- <_Shape()> 의 "중복처리" 를 막아서 <GLabel> 의 처리 시간을 단축시키기 위한것.


<API:_GLabel_십자보조선_()>, <API:_GLabel_캡쳐모드_()>, <API:_GLabel_캡쳐배경_()> 수정.

- 내부적으로 전체 모양을 만들어 주는 <_Shape()> 함수 처리 [유/무] 를 설정할수 있도록 인수 추가.

- <GLabel> 의 처리 시간 단축을 위한 추가 기능.


<API:_GColor_밝기_()> 수정.

- [밝기] 값이 "음수" 인 경우는 "어둡게" 조정하도록 기능 추가.
  즉, [양수(밝게)], [음수(어둡게)] 모두 적용 가능.

- 인수형을 <unsigned char> => <int> 로 변경(음수 입력을 위한것).


#<2018.08.09.목>

<API:_GLabel_십자보조선_()>, <API:_GLabel_캡쳐모드_()>, <API:_GLabel_캡쳐배경_()> 추가.

[밝기] 값이 "음수" 인 경우는 "어둡게" 조정개념 추가(밝게/어둡게 모두 적용 가능).


#<2018.08.07.화>

<API:_GX_좌표_얻기_()>, <API:_GX_위치크기_얻기_()> 추가.


#<2018.08.02.목>

[폼디자이너] "미리보기", "폼디자인.c/h" 자동 완성 기능 제외하고 모두 완료.

- [폼디자인] 을 <*.fmdsn> 문서로 저장.

- <*.fmdsn> 문서를 열어 [폼디자인] 복원.

- [폼디자인] 문서보기.

- 기본적인 [폼디자인] 모두 사용가능, 각 [그림부품] 설정과 적용 결과 확인 가능.
  각 [그림부품] 을 직관적으로 접근할수 있음.

- [맷돌-C] 로 [폼디자인] 을 제어하는 기능 추가 예정.
  "폼디자인.c", "폼디자인.h" 문서 자동 생성 기능으로 지원.

- [맷돌-C:설계묶음] 에 완벽하게 통합예정.


#<2018.07.26.목>

<GTabs> 수정.

- [선택항목:0] 이 아닌 경우 높이 변경시 항목 문자열이 수직 중간에 자동 정렬되지 않는 문제 수정.


#<2018.07.25.수>

[구조체/공용체:구성원] 이 단독으로 사용시 오류로 인식하지 못한 [맷돌-C:문법검사] 중요 오류 수정.

- ".구성원", "->구성원" 으로 반드시 ".", "->" 연산자와 동반 사용해야 함.


<GList> [마우스:휠] 이동시 이전 [1행] 단위에서 [보이는 행] 단위로 수정.


[맷돌-IDE] 의 [찾기:대화상자] 수정.

- 찾기 문자열 [한줄편집기] 에서 [키:Enter] 로 지정된 문자열을 계속 찾는 기능 추가.


#<2018.07.24.화>

[검증식] 보기에 "문자열보기" 기능 추가.

- 일반 [정보창:검증식 보기] 와 [편집기:검증식 보기판] 모두 동일하게 적용.

- 기본적으로 [1줄/1행] 만 출력됨.
  다중행 문자열의 경우 첫번째 행만 표시.
  이 경우 { "문자열"... } 의 형식으로 표기.

- 해당 항목([문자열] 인 경우) [더블클릭] 시 [문자열 전체 보기] 기능 동작.
  [문자열 전체 보기] 의 경우 [검증출력창] 에 [문자열 전체] 가 출력됨([검증출력창] 용량을 넘는 경우 분할 출력).


[검증식 보기판] 수정.

- "10진수/16진수/2진수/문자열보기" 전환을 [마우스:오른쪽 버튼] 으로 변경.
  누를때 마다 순서대로 계속 변경됨.

- [더블클릭] 의 경우 [문자열 전체 보기] 실행.
  [문자열 전체 보기] 의 경우 [검증출력창] 에 [문자열 전체] 가 출력됨([검증출력창] 용량을 넘는 경우 분할 출력).


#<2018.07.17.화>

<API:_GCover_유효_()> 추가.

- 폼디자이너 지원을 위한것.


#<2018.07.15.일>

<GBmpButton>, <GEditor>, <GPrintBox> 공통 수정.

- 그림이 지정되지 않은 경우는 [배경색:흰색] 으로 배경 처리.


<API:_GDotMatrix_전구설정정보_()> 추가.

- 폼디자이너 지원을 위한것.


#<2018.07.11.수>

<API:_GX_화면지정자_좌표_얻기_()> 추가.


<GHint> 수정.

- 내부적으로 <_ShowHint()> => <_ShowHintAutoLine()> 으로
  <_ShowHintInPart()> => <_ShowHintAutoLineInPart()> 로 API 호출 함수 교체.
  [자동 행바꿈] 적용을 위한것.

- [귀뜸말] 출력시 문자열이 너무 길어 화면 밖으로 나가는 경우 [자동 행바꿈] 적용됨.


#<2018.07.09.월>

<API:_GList_이벤트_Scroll_()> 추가.


[찾기목록(책갈피):대화상자] 수정.

- 책갈피 문자열 찾은후 다시 [찾기목록(책갈피):대화상자] 로 촛점 맞춰지도록 수정.
  지속적인 마우스 휠 기능 사용을 위한것.


<GCover> [촛점:설정] 위치 수정.

- [폼디자이너] 자체 [그림부품] 의 [촛점:설정] 에 영향을 주지 않는 위치로 수정.


#<2018.07.08.일>

<API:_GX_촛점설정_()> 추가.


#<2018.07.07.토>

맷돌-C 언어 해석기 "중요 오류 수정".

- [전역변수/지역변수] 와 [구조체/공용체:구성원] 의 "이름" 이 동일한 경우 해석 오류 수정.

- <BCB:parser.cpp> 의 <EXPRESSION_DataDefault()> 에서 이전 단어가 ".", "->" 인 경우는
  [피연산자] 가 [구조체/공용체:구성원] 인 것으로 간주하고 [전역변수/지역변수] 검사부를 거치치 않고
  바로 [구조체/공용체:구성원] 처리 부로 이동하도록 수정.


#<2018.07.03.화>

<API:_GEdit_이벤트_KEsc_()>, <API:_GList_이벤트_KEnter_()>, <API:_GList_이벤트_KEsc_()> 추가.

<GList> 중요 기능 추가.

- [키:방향 위/아래] 로 항목 가선택 할수 있음.
  <이벤트_MSelect:사용> 인 경우 이벤트 발생.

- [키:Enter] 로 항목 선택.
  <이벤트_Select:사용> 인 경우 이벤트 발생.


#<2018.07.02.월>

<API:_Str_기본글꼴출력정보얻기_()> 추가.


#<2018.06.26.화>

<GList> 수정.

- <API:_GList_항목선택_()> 사용시 선택된 항목이 항상 보이는 위치에 있도록 수정.


#<2018.06.25.월>

GUI_GCover API 추가.

- <API:_GCover_대상얻기_()> 추가.

- [폼디자이너] 지원을 위한것.


#<2018.06.24.일>

GUI_GCover API 군 추가.

- <API:_GCover_생성_()>, <API:_GCover_삭제_()>, <API:_GCover_다시그리기_()> 추가.

- [폼디자이너] 지원을 위한것.


#<2018.06.23.토>

<API:_GBmpButton_그림경로_()> 추가.

- <API:_GBmpButton_그림지정_()> 과 기능은 같지만 [경로] 의 [쓰기/읽기] 가 가능.

- [폼디자이너] 개발시 속성 수정 필요성으로 추가.


<API:_GEditor_배경그림경로_()>, <API:_GPrintBox_배경그림경로_()> 추가.

- [폼디자이너] 개발시 속성 수정 필요성으로 추가.


"glib\맷돌\API_Event\_Event_전체_.h" 문서 내용 수정/추가.

- <GEdit> 키 입력 이벤트 지원을 위한 <d_GuiMsg_KDown>, <d_GuiMsg_KUp> 알림문 추가.


<GEdit> 에 API 3개 추가.

- <API:_GEdit_이벤트_KDown_()>, <API:_GEdit_이벤트_KUp_()>.

- <API:_GEdit_이벤트_KEnter_()>
  기본적으로 "KDown" 으로 동작하고 키값은 VK_RETURN(0x0d) 이 된다.
  자주 사용하는 특별한 경우만 따로 떼어 놓은것.


#<2018.06.21.목>

"glib\맷돌\API_Event\_Event_전체_.h" 문서 내용 수정/추가.

- [폼디자이너] 지원을 위한 <d_GuiMsg_FDSelect>, <d_GuiMsg_FDUnSelect> 알림문 추가.


GUI <GLabel> 에 3개 이벤트 추가.

- 관련 API 3개 추가.
  <API:_GLabel_이벤트_MDown_()>, <API:_GLabel_이벤트_MUp_()>, <API:_GLabel_이벤트_MClick_()>.

- [폼디자이너] 관련 필요성으로 추가.


GUI <GX> 에 2개 API 추가.

- <API:_GX_폼디자인모드설정_()>, <API:_GX_폼디자인선택해제_()>.

- [폼디자이너] 관련 필요성으로 추가.


[마법사] 내부 예제 수정.

- "(GUI)[기본]"
  GUI(그림부품 고유 종류 구분) 와 ID(그림부품 개별 구분) 의 개념을 명확하게 재정의.


#<2018.06.20.수>

[마법사] 내부 예제 수정.

- "(GUI)[기본]"
  "기계닉스\Event.c" 문서의 <_Event_소멸자()> 함수 내부에 GUI 이벤트 소멸자 추가.


#<2018.06.17.일>

[마법사] 내부 예제 수정.

- "(GUI)[기본]"
  GVmos [이벤트] 처리 관련 수정/개선.


#<2018.06.05.화>

{ 도움말 -> Linux Wine 으로 구동 방법 } 내용 추가.

- "jpg.reg" 관련 내용 추가.

- [맷돌-IDE:정보창->참고자료] 에 등록된 <*.jpg> 문서를 열기 위한것.


[맷돌-IDE:출력창] 초기 문자열 수정.

- <Ctrl+S> 삭제, <Ctrl+수평방향키> 추가.

- "Linux:Wine" 으로 구동시 설정 관련 내용 추가.


#<2018.05.10.목>

[맷돌-IDE] "UBUNTU 18.04" + "Wine3.0" 확인 결과 제대로 동작됨.

- GUI 구현 정확도 향상됐음.


#<2018.05.10.목>

[맷돌-IDE:편집기] 내부 "Ctrl+Space" 조합으로 나오는 [실시간 선언 정보판] 관련 수정.

- "Linux:Wine" 에서 [마우스:화면지정자] 올려 놓을시 사라지는 문제 수정.

- "Linux:Wine" 에서 [실시간 선언 정보판] 위에 나오는 [귀뜸말] 이 [실시간 선언 정보판] 뒤로 가는 문제 수정.

- "Linux:Wine" 에서 [빠른목록] 이 [실시간 선언 정보판] 뒤로 가는 문제 수정.


#<2018.05.09.수>

[맷돌-IDE:출력창] 초기 문자열 수정.

- <Ctrl+F9>, <Alt+F9> 내용 삭제.
  "Linux:Wine" 의 경우 "F9" 등 [기능:키] 가 동작되지 않아 의미 없음.
  키 조합은 유지되지만 출력창 초기 문자열에서는 삭제.

- <Ctrl+S> 추가.
  현재 편집 중인 문서 "저장".


#<2018.05.08.화>

[맷돌-IDE:편집기] 의 "문서 수정 알림" 기능 활성화.

- 현재 문서가 수정됐으나 저장 되지 않은 상태인 경우 [버튼:창 닫기], 와 [버튼:문서 닫기] 를
  동작시키려는 경우 편집기 제목줄 아래에 "::: 수정 됐으나 아직 저장하지 않은 문서 :::" 라는
  [풍선 도움말] 출력됨.

- [설정:대화상자] 에서 [켜기/끄기] 설정 가능.
  [설정:대화상자] -> [풍선 도움말 설정] -> "문서 수정 알림 사용".
  기본적으로 사용하도록 설정돼 있음.


[맷돌-IDE:편집기] 에 "1 탭(Tab) 문자" => "지정 개수 공백" 으로 자동 변환하는 기능 추가.

- 사용자가 직접 변환할 공백 수를 지정할 수 있는 대화상자 표시됨.
  현재 편집 중인 문서에만 적용되고 문서 전체를 대상으로 함.

- { 메뉴 : 편집 -> "탭(Tab) => 공백(Space) 변환" }

- [맷돌-IDE] 는 "탭(Tab)" 문자 입력을 지원하지 않으며 탭 문자가 들어 있는 문서를 여는 경우
  출력시 탭 문자를 "1개 공백" 으로 대체 출력 함.

- 탭 문자가 들어 있는 다른 문서를 열어서 편집하는데 절대적으로 필요.
  일반적으로 대부분의 편집기는 "1 탭 => 4 공백" 으로 처리돼 있음.

- "Linux:Wine" 에서는 GUI 부분에서 약간 다른 처리 과정 소요로 처리 시간이 조금 더 걸림.

- [되돌리기/되살리기] 기능 적용 됨.


#<2018.05.06.일>

[맷돌-IDE:검증] 기능 "main():종료" 관련 중요 수정.

- "main()" 이 종료시 자동으로 [탭:가상기계개발] 로 전환되면서 모든 검증 동작 종료.
  "main()" 종료시 대상이 메모리에서 완전히 해제 되므로 더이상 검증 대상이 없기 때문.

- "main()" 종료시 해당 [알림문] 표시됨.

- [PC:가상기계(GVMS)], [맷돌:가상기계(GVMX)] 모두 해당됨.


#<2018.05.05.토>

[맷돌-IDE:편집기] "자동 저장" 기능 추가.

- [편집기] 에 열려있는 모든 문서를 주기(분:단위) 적으로 자동 저장.

- [설정대화상자] -> [자동 저장 설정] 에 관련 설정 추가.
  사용 유/무, 주기(분:단위) 사용자 설정 가능.

- 기본 적으로 "2분" 단위로 "[자동 저장:사용]" 으로 설정돼 있음.


[맷돌-IDE] 내부 "ide_BalloonBox", "GBalloonBox" 에서 미사용 함수 삭제.

- <FormMouseMove()>, <FormMouseDown()>, <FormMouseUp()> 3개 함수 삭제.


#<2018.05.03.목>

[마법사:대화상자] 에 "GUI" 관련 [기본/예제] 추가.

- "(GUI)[기본]"
  기계닉스 [맷돌-C] 전용 GUI 개발 표준 틀.
  향후 모든 [맷돌:GUI] 는 이 표준 틀로 개발 됨.
  "__Main.c" 가 [맷돌:GUI] 사용자 구현 시작 함수.

- "(GUI)[예제]AVR-ISP", "(GUI)[예제]GMRCBASiC-IDE", "(GUI)[예제]맷돌28호-설정기"
  [맷돌-C] 로 개발한 GUI 표준 틀 확립 전의 GUI 예제.
  이미 [맷돌-IDE] 에 내장된 GVMS(PC:가상기계) 의 원본 [GUI:설계묶음].


기계닉스 [맷돌-C] 사용 약식 자료형을 [색동문자] 에 추가.

- t_알림문, t_알림문64, t_알림문_GUI, t_생성자

- t_u1, t_s1, t_u2, t_s2, t_u4, t_s4, t_u8, t_s8, t_f, t_d

- NULL

- 기본 C 언어 자료형의 약식 표현으로 표현을 단순화 하기 위한것.
  일부는 기계닉스 [맷돌-C:GUI] 를 위한것.


[맷돌-C] 용 [그림부품] 중 "GButton", "GBmpGutton" 수정.

- "Linux:Wine" 구동시 [누름] 상태로 [버튼:영역] 을 일정 시간 벗어난 경우 [클릭] 되지 않는 문제 수정.
  내부적으로 <이벤트:OnClick()> 을 다른 방법으로 구현하여 처리.

- [가선택] 시(마우스를 [버튼] 위에 올려 놓는 경우) [버튼:바탕색] 을 [가선택색] 으로 변경.

- "Linux:Wine" 구동시 [누름] 상태로 [버튼:영역] 을 일정 시간 벗어난 경우 <CM_MOUSEENTER>, <CM_MOUSELEAVE>
  인식 불가 오류 때문에 관련 부분을 다른 방법으로 대체 처리.


[맷돌-IDE] 에 사용된 [그림부품] 중 [버튼], [그림버튼] 수정.

- "Linux:Wine" 구동시 [누름] 상태로 [버튼:영역] 을 일정 시간 벗어난 경우 <CM_MOUSEENTER>, <CM_MOUSELEAVE>
  인식 불가 오류 때문에 관련 부분을 다른 방법으로 대체 처리.


#<2018.04.24.화>

[맷돌-IDE] 에 사용된 [그림부품] 중 [버튼], [그림버튼] 수정.

- "Linux:Wine" 구동시 [누름] 상태로 [버튼:영역] 을 일정 시간 벗어난 경우 [클릭] 되지 않는 문제 수정.
  내부적으로 <이벤트:OnClick()> 을 다른 방법으로 구현하여 처리.

- [가선택] 시(마우스를 [버튼] 위에 올려 놓는 경우) [버튼:바탕색] 을 [가선택색] 으로 변경.


[마법사:대화상자] 수정

- "Linux:Wine" 구동시 아래로 줄이동 하는 경우 감춰진 부분이 올라오면서 하얗게 되는 문제 수정.


#<2018.03.24.토>

[전광판] 배경 그림 위치 보정.


#<2018.03.21.수>

[맷돌-IDE:메뉴] 에 { 도움말 -> Linux Wine 으로 구동 방법 } 항목 수정.

- [맷돌-IDE] 를 "Linux:Wine" 에서 구동하는 자세한 방법이 설명된 웹페이지로 이동 및
  "wine.gtxt" 문서도 같이 열어 준다.

- "wine.gtxt" 에는 [맷돌-IDE] 를 "Linux:Wine" 에서 구동하는데 필요한 최소한의 설정을 설명.

- "Linux:Wine" 에서 [맷돌-IDE] 안의 <*.pdf>, <*.html> 문서를 Linux 안의 해당 프로그램으로
  열수 있도록 사전 설정해 줘야 { 도움말 -> Linux Wine 으로 구동 방법 } 의 웹문서를 열어볼수 있기 때문.
  이를 위하여 "Wine:레지스트리" 에 <html.reg>, <pdf.reg> 를 등록하는 방법 등 설명돼 있음.
  즉, 윈도우 용 <ShellExecute()> 를 Linux 에서도 지원해 주기 위한것.


#<2018.03.17.토>

[맷돌-IDE] 를 비롯하여 [제목줄] 을 가진 모든 [그림부품] 수정.

- [제목줄] 이동 방식을 "상대좌표수정" -> "절대좌표계산" 으로 변경.

- "윈도우" 와 "Linux:Wine" 의 차이를 줄이기 위한것.

- 제목줄이 있는 그림부품이 다른 그림부품안에 생성된 경우도 제목줄 집어 이동이 정확하게 동작함.


#<2018.03.16.금>

[맷돌-IDE:메뉴] 에 { 도움말 -> Linux Wine 으로 구동 방법 } 항목 추가.

- [맷돌-IDE] 를 "Linux:Wine" 에서 구동하는 자세한 방법이 설명된 웹페이지로 이동.


#<2018.03.06.화>


[설정대화상자] 가 "Linux:Wine" 에서는 <Modal> 이 아닌 것으로 수정(윈도우 에서는 <Modal>).

- "Linux:Wine" 에서는 <Modal> 을 제대로 지원하지 못하기 때문에 "항상위로" 대화 상자로 대체함.


[설정대화상자:통신포트] 관련 수정.

- 현재 [통신포트:열림] 경우는 [포트번호] 를 바꿀수 없도록 수정.


#<2018.03.04.일>

[맷돌-IDE] 를 비롯하여 [제목줄] 을 가진 모든 [그림부품] "Linux:Wine" 지원 추가.

- "제목줄" 로 집어 이동 기능 "Linux:Wine" 지원 추가.

- "Linux:Wine" 은 <Move> 관련 메세지가 영역 밖에서는 제대로 처리되지 못하므로
  [윈도우] 와 다른 방법으로 처리.


[설정대화상자] "Linux:Wine" 지원 추가.

- 아래 부분 내용이 보이는 곳으로 줄이동 되는 경우 제대로 그려지지 않는 문제 수정.


#<2018.03.01.목>

<GForm>, <GVmos> 크기 조정 위치 추가.

- 제목줄 아래 내부 테두리 "위", "오른:위", "왼:위" 3 군데 에서도 크기 조정 가능 하도록 수정.


#<2018.02.27.화>

<GForm>, <GVmos> 모두 폼 [크기:최대/기본] 기능 "Linux:Wine" 지원 추가.


#<2018.02.26.월>

[맷돌-IDE] 의 [크기:최대/기본] 기능 "Linux:Wine" 지원 추가.


#<2018.02.25.일>

[맷돌-IDE] 크기 조정 위치 추가.

- "위", "오른:위", "왼:위" 3 군데 에서도 크기 조정 가능 하도록 수정.

- [맷돌-IDE] 테두리를 "더블클릭" 시에도 [크기:최대/기본] 전환되던 문제 수정.


#<2018.02.24.토>

[한줄편집기(Edit)] 보완.

- 한줄편집기(Edit) Ctrl+A "전체선택" 기능 추가.

- 한줄편집기(Edit) 에 "붙여넣기" 시에 [입력지정자] 를 붙여넣은 문자열 끝에 위치하도록 수정.


[편집기/한줄편집기] "Linux:Wine" 지원 추가.

- "한/영" 전환시 "한글" 입력 안되던 문제 수정.

- [윈도우] 에서와 동일한 "한글" 지원.

- iBUS 완벽지원, Fcitx 의 경우 "한글" 모드에서 ";" 문자 입력시 문제는 [맷돌-IDE] { 도움말 -> Linux Wine 으로 구동 방법 } 참고.


#<2018.02.20.화>

[전광판] 기능 활성화.

- 편집기에 문서를 열지 않은 기본 상태에서 보이며, 사용자 지정 문자열 회전 출력.


[설정대화상자] 에 관련 설정 기능 추가.

- "사용유무", "회전유무", "회전속도", "사용 문자열" 설정 가능.


#<2018.02.14.수>

[편집기] 에 단축키 추가.

- 되살리기 "Ctrl+R" 키 조합 추가.

- 기존 "Ctrl+Shift" 는 "Linux:Wine" 에서 연속동작이 되지 않으므로 연속동작이 되는 조합을 추가한것.


#<2018.02.00.0>

"Linux:Wine" 지원 기능 추가 시작.

- [설정대화상자] -> [wine 구동 설정] 에 확인 [v].

- [맷돌-IDE] 를 UBUNTU:16.04 기준으로 Wine 으로 구동하는데 문제 없도록 해당 지원 기능 추가시작.

- "UBUNTU:16.04" 에서 Wine 으로 [맷돌-IDE] 를 윈도우에서와 같이 동일하게 구동 가능(통신포트 등 동일하게 사용 가능) 목표.

- Wine3.0 기준.
  "UBUNTU:16.04" 자체 지원되는 것은 버전이 낮으므로(V1.6) 해당 사이트의 최신판 V3.0 을 기준으로 함.


Wine 3.0 "winecfg:그래픽" 설정 상태

- [v] 창관리자가 Wine창을 꾸미도록 함.
- [v] 창관리자가 Wine창을 관리하도록 함.

위의 설정 상태를 기준으로 진행.


//--------------------------------------------------------------------------------------------

#<2016.05.16.월>

전체 새로 빌드.


#<2015.01.22.목>

[VCOM] 추가.

- PC 의 모든 COM 포트를 "동시 제어" 가능.

- 관련 <API:_VCom_XXX_()> 추가.

- 기존 <Ide_통신포트> 의 경우 통신포트를 한 번에 한 개밖에 접근할수 없는 점에 대한 보완.

- VMOS 에서는 가상 통신포트 형식(VCOM) 으로 "실시간 생성/삭제" 가능.

- 기계닉스 전용.


[맷돌-통합개발환경] 통신포트(COM) 지정 오류 수정.

- 2 자리수 이상 통신포트번호("COM10", "COM11" ... ) 지정 오류 수정.

- [맷돌-통합개발환경] 자체 사용 통신포트, 검증창 통신포트, <Ide_통신포트> 및
  [VCOM] 지정 통신포트 모두 해당.


[편집기] 색동문자 지정 "예약어" 추가.

- C, C++, JAVA 의 모든 예약어 지원.

- C, C++, JAVA 문서를 [맷돌-통합개발환경] 에서 보기 위한 지원 기능.


#<2013.06.20.목>

[맷돌-통합개발환경] 내장 "GMRCBASiC-IDE" 기능 수정/개선.

- { 메뉴 : GVMS(PC) -> GMRCBASiC-IDE } 에 등록.

- "주기" 를 기존 10-20ms 에서 "3-50ms" 까지 넓은 범위까지 확대 설정 가능.
  일부 [RC 헬기] 용 디지탈 서보의 경우 PWM 주기 3ms 를 적용하는 제품들에 대응하기 위한것.

- G.M.RC.BASiC 계열 서보 제어기가 보다 다양한 모든 종류의 아날로그/디지탈 RC 서보에 대응 가능.


[맷돌-통합개발환경] 내장 "맷돌28호(G.MTDL.A.RC28)-설정기" 기능 수정/개선.

- "주기" 를 기존 5-25ms 에서 "3-50ms" 까지 넓은 범위까지 확대 설정 가능.
  일부 [RC 헬기] 용 디지탈 서보의 경우 PWM 주기 3ms 를 적용하는 제품들에 대응하기 위한것.

- 맷돌28호(G.MTDL.A.RC28) 계열 서보 제어기가 보다 다양한 모든 종류의 아날로그/디지탈 RC 서보에 대응 가능.


#<2013.06.19.수>

맷돌(G.MTDL.X) 계열에 설치한 가상기계(GVMX) 를 다시 읽어들여 <*.gvmx> 로 저장하는 기능 활성화.

- 맷돌(G.MTDL.X) 계열에만 적용.

- 기본 저장위치에 기본 이름으로 자동 저장되며 [알림창] 에 전체 경로 출력.

- 읽어들인 <*.gvmx> 는 맷돌(G.MTDL.X) 계열에 바로 설치가능.


[직렬버스(ComBus)] API 추가.

- { API : 기계닉스전용 -> 직렬버스 }

- 기계닉스 전용으로 사용자와 무관.


#<2013.01.22.화>

"마법사" 에 GMRCBASiC 용 신형 API 관련 [기본설계묶음/예제] 추가.

- 기본설계묶음 "(5)GMRCBASiC 고급제어(가상)".

- 예제 "(예제)GMRCBASiC(가상)".


#<2013.01.20.일>

"GMRCBASiC" 제품군을 위한 "[v]맷돌가상구동" 용 API 추가.

- { API : 맷돌(가상구동) -> API_GmrcBasic }

- 기존 설계문서 형태로 제공되던 것에 비하여 안전성 강화.

- "시간제한" 적용으로 통신오류시 "무한반복" 에 빠지는 것을 방지.
  모든 API 는 처리 후 이상유무 결과를 반환하도록 재설계됐음.


#<2012.12.19.수>

"단군" 탄생을 기념하며 "맷돌-통합개발환경" 전체 BSD 허가로 공개.

향후 관련 모든 자료 순서대로 공개 예정.
별도 요청은 메일로 문의.


#<2012.10.01.월> : 국군의날

<API:_Ide_통신포트_열기_()> 수정.

- 통신포트가 열려 있는 경우 자동으로 "닫기" => "일정시간 대기" => "열기" 로 수정.


#<2012.09.29.토>

[맷돌-통합개발환경] 내장 [GMRCBASiC-IDE] 개선.

- { 메뉴 : GVMS(PC) -> GMRCBASiC-IDE }.

- 통신오류시 재기동 함수를 새로 만든 <API:_Ide_통신포트_재기동_()> 로 대체.


#<2012.09.28.금>

<API:_Ide_통신포트_재기동_()> 추가.


#<2012.09.27.목>

{ 메뉴 : 도움말 -> 도움말(맷돌-C/한국형C/한글C) } 추가.

- 맷돌-C(한국형C/한글C) 자체 간단한 도움말.

- 도움말 내용은 계속 수정/보완됨.


#<2012.09.23.일>

검증식 작성기능 추가.

- 검증시 기존의 [선택영역] 의 검증식을 추가하는 것 외에 직접 검증식을 작성할수 있음.

- { 빠른목록 -> 검증식 작성 } 을 선택시 [한줄 편집기] 가 나오고 여기서 직접 검증식 작성후
  <키:Enter> 를 누르면 검증식 보기창에 추가됨.


#<2012.08.20.월>

기존 [GMRCBASiC-IDE(통합개발환경)] 를 [맷돌-통합개발환경] 으로 만들어 통합.

- { 메뉴 : GVMS(PC) -> GMRCBASiC-IDE } 에 등록.

- [맷돌-통합개발환경] 과 [맷돌-C언어(한국형C/한글C)] 를 이용하여 제작.

- 기존 [GMRCBASiC-IDE] 와 "100%" 호환.
  설정문서(*.gmrcconfig)와 [인터프리터] 프로그램문서(*.gmrcbasic) 서로 교환사용 가능.
  형태 배치 등이 유사하여 기존 사용자도 쉽게 사용 가능(풍선도움말 지원).

- [제어판] 과 [편집기] 부분을 분리하여 [편집기] 의 활용도를 높였음.
  "되돌리기", "되살리기" 등 [맷돌-통합개발환경] 의 [편집기] 를 사용하여 동일한 기능 지원.

- 기본예제 내장, 편집기 색동문자색 등 마음대로 설정 가능.

- "명령표" 기능 내장으로 [인터프리터] 프로그램 작성시 편리.

- 향후 [GMRCBASiC-IDE] 는 [맷돌-통합개발환경] 에 내장/통합된 것만 지속적으로 지원예정.

- { 메뉴 : GVMS(PC) -> GMRCBASiC-IDE } 수정/보완.
  [버튼 누르고 있는 동안 실행] 기능 동작 안되던것 수정.

- [인터프리터] 동작 상태가 즉시 [제어판] 의 [각도/속도] 에 반영되도록 수정.
  실시간으로 보다 시각적인 동작 확인이 가능.


[맷돌-통합개발환경] 에 기계닉스 전용으로 많은 API 가 추가됐음.

- { 메뉴 : GVMS(PC) } 에 등록된 [기계닉스] 제공 [가상기계] 도 이에 맞게 다시 제작됐음.
  각각 크기조정 안되도록 수정.
  "AVR-ISP", "맷돌28호(G.MTDL.A.RC28)-설정기".


#<2012.08.14.화>

[편집기] 에서 <Ctrl + G> 로 보여지는 [세로줄] 이 [검증판] 영역에 보이는 문제 수정.


#<2012.08.06.월>:중요수정

"<","<=", ">", ">=", "==", "!=" [연산자] 에서 각각 [포인터] 와 <상수:0> 을 직접 비교할수 있도록 수정.


#<2012.08.03.금>

<_GEditor_편집기저장소위치얻기_()> API 추가.
<GLabel> 의 문자열을 [동적생성] 방식으로 변경.


#<2012.08.02.목>

<_Mem_생성_()>, <_Mem_삭제_()> API 추가.


#<2012.08.01.수>

[맷돌(G.MTDL.X):VMOS] 와 같은 방법으로 [PC:물리주소] 에 접근할수 있도록 [PC:VMOS] 주소체계 수정.
단, 기존 [가상기계(GVMS/GVMX)] 는 영향이 없으며 기계닉스 전용 기능.


#<2012.07.20.금>

[GMsgBox] 이벤트 <Show/Hide> 추가 및 관련 API 추가.
<_GMsgBox_이벤트_Hide_()>, <_GMsgBox_이벤트_Show_()>.


#<2012.07.19.목>

GUI 용 [GVmos] 공용 [열기/저장 대화상자] 제거(VMOS 용을 같이 사용).


#<2012.07.17.화>

[화면영역(작업표시줄을 제외한 유효영역)] 높이/폭 구하기 API 추가.
<_Sys_화면영역높이_()>, <_Sys_화면영역폭_()>.


#<2012.07.12.목>

[알림창] 왼쪽 아래 "모서리 깍기" 적용.

기본 환경색 변경.


#<2012.07.10.화>

"11.5.16판" 배포시작.

[맷돌:GUI] 기본 개념 중요 수정.

- [그림부품:생성자] 가 기존 <10> 바이트에서 <12> 바이트로 수정.
  예) unsigned char  생성자[12];

- "10.5.16판" 에서 만든 [GUI:가상기계(GVMS)] 는 "11.5.16판" 에서 다시 제작해야 함.

- { 메뉴 : GVMS(PC) } 에 등록된 [기계닉스] 제공 [가상기계] 도 이에 맞게 다시 제작되었음.
  "AVR-ISP", "맷돌28호(G.MTDL.A.RC28)-설정기" 역시도 [맷돌-C] 로 제작됐기 때문.
  기계닉스 제공 GUI 관련 제어환경은 모두 [맷돌-C] 로 만들어졌음.


#<2012.07.04.수>

검증시 [문서 관리 개수] 기능으로 인한 문제 해결.

- 검증시 [->>>] 버튼으로 [명령단위] 로 [검증] 하는 경우 API 에 해당하는 <*.glib> 문서등이
  계속 열리게 되고 "문서 관리 개수 초과" 상태에 걸려 더이상 검증할수 없는 상태에 도달하는 현상 해결.

- 검증시 "문서 관리 개수 초과" 의 경우 현재 보이는 문서를 닫고 새 문서를 연다.


#<2012.07.02.월>

가상기계 부품조립(Link) 단계에서 "크기 최적화" 기능 추가.

- "고급/중요 기능으로 기계닉스 [맷돌-C] 의 중요한 발전".

- [설계묶음] 안에 [함수/함수묶음] 이 아무리 많이 추가돼 있어도 "사용된 함수" 만 조립됨.
  한개의 [함수묶음] 안에 여러개의 [함수] 가 들어 있는 경우도 이중에서 "사용된 함수" 만 조립됨.

- 이전에 [설계묶음] 안의 모든 [함수/함수묶음] 이 다 추가되는 것에 비하여 [가상기계(GVMS/GVMX)] 크기 최소화.

- 맷돌(G.MTDL.X) 의 경우 내부 ROM 을 효율적으로 사용 가능.

- [가상기계] 생성 크기를 줄이기 위하여 [설계묶음] 안에서 사용하지 않는 [함수/함수묶음] 을 골라낼 필요 없음.


{ 메뉴 : GVMS(PC) } 에 등록된 [기계닉스] 제공 [가상기계] 판올림.

- AVR-ISP.

- 맷돌28호(G.MTDL.A.RC28)-설정기.

  [설정정보보기] 기능 "단순/고속화" 로 [맷돌28호 설정 정보] 를 순간적으로 확인 가능.

  내부에 [설정정보] 를 일반 <*.txt> 문서로 저장할수 있는 기능 추가(설정정보 인쇄 등에 유용).

- "크기 최적화" 반영됐음.


#<2012.06.29.금> 제2연평해전

[실시간 선언 정보판] 기능 보완/추가.

- [함수] 정보의 경우 자동적으로 [제목줄] 을 가진 [귀뜸말] 이 보여지고 이 [제목줄] 을
  [집어끌기] 로 마음대로 위치를 변경 가능.

  이때 [귀뜸말] 에 [닫기:버튼] 이 추가되고 독립적으로 동작되며 [실시간 선언 정보판] 은 감춰짐.

- [편집기] 에서 <ESC> 를 누르거나 [제목줄] 의 [닫기:버튼] 을 누를때 사라짐.

- 위치 이동시 항상 모든 내용이 보이도록 자동적으로 크기 조정됨.


#<2012.06.24.일>

[실시간 선언 정보판] 기능 보완/추가.

- "[구조체/공용체] 형의 [구성원] 정보 열람 기능 추가".

- "->", "." 연산자 오른쪽에 [입력지정자] 를 위치 시키고 <Ctrl+Space> 를 누르면
  해당 [구조체/공용체:선언형] 을 찾아 [구성원] 목록을 보여줌.
  [식] 이 미완성 상태라도 동작됨.

  [구성원] 이 일부 조합중인 경우는 가장 가까운 것을 찾아 보여주고 아예 비워진 상태라면
  [구조체/공용체:선언형] 을 찾아서 [구성원] 목록을 보여줌.

- [주석문], [문자열], [문자상수] 안은 "무효 영역" 으로 간주하여 [실시간 선언 정보판] 을
  보여주지 않음.


#<2012.06.19.화>

[묶음주석] 이 [보이는 영역 처음] 위치에서 "/*" 로 시작한뒤 "/*" 를 삭제하여 [해제] 시
제대로 해제되지 않는  문제 수정([색동문자] 처리 기능과만 관련있고 [문법] 과는 무관).


#<2012.06.17.일>

[편집기] 기계닉스 [특수주석] 에 "수정", "보완" 추가.

//[수정] ...
//[보완] ...


#<2012.06.13.수>

[선택영역] 존재시 [되돌리기/되살리기] 적용시 [선택영역] 은 내부적으로 해제되었으나
[다시 그리기] 가 되지 않아 [선택영역] 상태 그대로 보이는 문제 수정.


#<2012.06.12.화>

[묶음주석] 처리 방식 재설계 및 속도 개선.

- 이제까지 [키:오름] 시 적용에서 [키:내림] 시 즉시 적용으로 변경.
  "/*", "*/" 입력시 즉시 [묶음주석] 부분에 [색동문자] 적용.

- /*...*/ 주석문 정보 수집/해석 부분 내부적으로 완전 재설계.
  [보이는 영역] 관련 정보만 수집하므로 편집시 문서량에 따른 영향을 전혀 받지 않음.

- 저사양 PC 에서도 편집시 연속적인 문자입력에 전혀 영향을 주지 않을 정도로 향상.
  10만줄 편집시에도 전혀 영향을 주지 않음.


#<2012.06.09.토>

[편집기] 에 [세로줄] 보조선 기능 추가.

- <Ctrl+G>, <Ctrl+g> 로 켜기/끄기.

- 현재 [입력지정자] 위치에 [세로줄] 이 나오고 [수평 줄이동] 과 동기화.

- "{", "}" 등 세로 칸 맞춤시 "보조선" 으로 사용.

- 각 문서마다 개별적으로 설정.

- "출력창" 에 관련 [단축키] 내용 추가.

- [편집시] 만 보이고 [검증] 등 다른 부분에서는 보이지 않음.


[편집기] 내부 중복 그리기 처리 방지.

- 문자 연속 입력시 [중복 그리기] 방지로 반복 입력시간 단축.


#<2012.06.08.금>

[특수 주석 단어] 색동문자 적용 조건 수정.

- "설명", "중요", "방법", "참고", "주의", "조건" 등의 기계닉스 특수주석 조건 강화.
  해당 [단어] 사용시만 적용.

  //[설명] 은 적용.
  //[설명!!!] 도 적용.
  //[설명문] 은 미 적용.


[마법사(새설계묶음(예제)):대화상자] 의 [미리보기] 기능 보완.

- [비워진 묶음] 과 같이 내부에 "main.c" 문서가 없는 경우는 이미 열려있는 문서를 모두 닫아 준다.
  기존 문서를 현재의 것으로 인식하는 혼란을 막기 위한것.


#<2012.06.07.목>

[가상기계 제작 진행 상황] 대화상자 개선.

- [가상기계] 제작시 잘라내기 된 부분이 검정색으로 보이는 문제 수정.

- [가상기계] 제작시 [대화상자] 가 굳어서 움직이지 않는 문제 수정.

- 저사양 PC 에서 처리 속도 문제로 발생하던 것으로 일반 적인 PC 와는 무관.


#<2012.06.06.수> : 현충일

[전체 크기] 조정시 [화면크기] 를 넘지 않도록 수정.

[하위항목] 및 일부 [그림부품] 내부 개선으로 그리기 고속화.


#<2012.06.05.화>

[편집기] 고속화.

- 내부 개선으로 최소 영역만 [다시 그리기] 반영으로 고속화.
  [선택영역] 지정시나 [줄이동] 시 2배 정도 속도 향상.

- 크기 조정시 조정 속도 향상.


[정보창] 그리기 고속화.

- [정보창] 내부 개선으로 그리기 속도 향상.
  [줄이동] 시 2배 이상 고속화.

- [키] 로 탐색시 처리 시간 단축.


[실시간 선언 정보판] 크기 조정시 두단계가 아니라 한단계로 크기 조정되도록 수정.


[맷돌-통합개발환경] 전체 크기 조정시 여러 단계를 거치지 않고 한단계로 조정되도록 수정.


#<2012.06.04.월>

[실시간 선언 정보판] 그리기 고속화.

- 크게 펼쳐진 경우 [수직 줄이동] 시 고속 이동
  기존 대비 3배 이상 고속 이동 가능.

- [키] 로 탐색시 처리 시간 단축.


#<2012.06.03.일>

[실시간 선언 정보판] 잔상 제거.

- "투명" 속성 적용시 이전 내용이 잔상으로 잠깐 보이는 문제 수정.


[정보창:설계정보] 깜박임 문제 수정.

- 중복된 [다시 그리기] 로인 한 깜박임 문제 수정.


#<2012.06.02.토>

[실시간 선언 정보판] "근접 단어 정렬" 기능 추가.

- [실시간 선언 정보판] 이 보이고 있는 상태로 단어조합 시 현재 조합중인 [단어] 와 가장 가까운
  항목들로 실시간 재정렬.

- 선언된 자료들에서 현재 사용할수 있는 정보를 쉽게 검색하고 추가할수 있음.

- 조합중인 [단어] 와 일치하는 항목은 [선택항목] 으로 지정되고 아래에 [귀뜸말] 로 전체 정보 표시.

- [빠른목록] 에 해당 기능 [사용 유/무] 설정 항목 추가(즉시 반영).


[실시간 선언 정보판] 수정/보완.

- 선택 항목을 <Space>, <Enter> 로 현재 [입력지정자] 위치 [단어] 를 교체시 "깜박임" 문제 수정.


#<2012.05.29.화>

[실시간 선언 정보판] 수정/보완.

- [일반 항목] 의 경우 [일반형/제목줄형:귀뜸말] 을 선택적으로 사용가능.

- [빠른목록] 으로 간단하게 설정.


#<2012.05.28.월>

[실시간 선언 정보판] 수정/보완.

- [함수 영역 정보] 를 보여주는 경우는 [제목줄형:귀뜸말] 로 출력.


[편집기:문서목록] 해당 [풍선 도움말] 출력 시간을 상황에 따라 가변 적용.

- [편집기] 위 [문서목록] 의 [풍선도움말] 보이는 시간 수정.
  이미 보이고 있는 경우는 보여지는 시간을 짧게 하여 연속적으로 확인할수 있도록 수정.


[출력창] 에 [편집기] 용 중요 [단축키] 설명 추가.

- [맷돌-통합개발환경] 실행시 [출력창] 에 내용 출력.

- [가상기계] 개발시 유용하고 중요한 기능만 설명.


[편집용] 중요 단축키 [개발검증] 시에는 사용 불가.

- <Ctrl+F9>, <Alt+F9>, <Ctrl+Space> 는 "검증시" 동작 불가.


#<2012.05.27.일>

[실시간 선언 정보판] 수정/보완.

- 간혹 오류 나던것 완벽 수정(하드디스크 대역폭 부족시 문서 접근 오류때문).

- 직접 "선언위치" 찾기 기능 추가.
  [2중선택] 시 해당 정보의 "선언위치" 를 찾아준다.
  <#define> 으로 선언한 [정의이름] 을 찾아 수정할때 대단히 편리.

- [정보창:설계정보] 에도 같은 정보 정리.
  <*.h> 문서나 [전역:영역] 인 경우 [정보판] 이 보이지 않지만 [설계정보] 에는 정리되므로
  현재 선언한 자료들을 한눈에 확인하고 위치 찾기 가능.
  각 [선언자료] 는 모두 [2중선택] 으로 즉시 "선언위치" 를 찾을수 있음.
  <Ctrl+Space> 로 수시 확인가능.


#<2012.05.26.토>

[실시간 선언 정보판] 추가.

- "<Ctrl+Space>" 로 호출.
  현재 편집중인 문서와 이 문서에서 <include> 된 모든 문서의 "선언정보" 만 수집하여
  독립된 창으로 보여준다.
  [문장], [식] 등의 오류는 검증하지 않고 "선언" 부분만 검사.

- [함수:영역] 에서만 보여짐(선언된 자료를 "사용" 하는데 도움을 주는 것이 목적).
  <*.h> 나 [전역:영역] 에서 호출시에도 [선언정보] 는 수집되지만 [실시간 선언 정보판] 을
  보여주지는 않는다.

- [단어] 가 없는 [빈공간], [공백] 등에서 <Ctrl+Space> 를 누르는 경우는
  현재 [입력지정자] 가 위치한 [함수:영역] 정보를 항목에서 찾아 보여줌.
  편집시 현재 어떤 함수 안에서 작업중인지 수시로 확인할때 유용.

- 조합중인 단어와 가장 근접한 단어순으로 [재정리] 기능은 곧 추가 예정.
  [구조체/공용체] 의 [구성원] 정보는 향후 식별 예정.

- 일반적으로 설계문서 작성시 현재 사용 가능한 [선언정보] 를 즉시 열람할수 있음.


[정보창] 항목 [귀뜸말] 깜박임 문제 수정.

- [+], [-] 전환시나 항목 선택등의 경우 깜박임 문제 수정.


#<2012.05.21.월>

[정보창] 항목 표기에 "형식 적용 문자열" 적용.

- [설계정보], [검증보기] 가 해당.

- [함수], [구조체/공용체], [변수] 등 일반 항목에 적용.

- [선택 항목] 의 경우도 지정 출력 형식으로 출력됨.


#<2012.05.20.일>

[찾기목록(책갈피):대화상자] 수정.

- [제목줄] 가장자리를 집어 이동하는 경우 떨림 문제 수정.

- <키:ESC> 눌린 경우 닫기.


<키:ESC> 로 "닫기" 기능 추가.

- [찾기/교환:대화상자], [마법사:대화상자], [VMOS/OSX 설치:대화상자], [설정:대화상자],
  [알림창] 에 적용.

- [알림창] 의 경우는 [취소] 가 눌린것으로 처리됨.


#<2012.05.19.토>

"형식 적용 문자열" 기능 [맷돌-통합개발환경] 에 추가.

- 특정 [단어] 를 지정 형식으로 출력 가능.

- 향후 [맷돌-통합개발환경] 에 광범위하게 적용 예정.


[Tree:정보창] 에 나오는 [귀뜸말] 을 "형식 적용 문자열" 로 보여주도록 수정.

- [설계정보], [검증보기] 에 적용.

- [예약어], "*", [C 언어 선언형], [구조체/공용체 선언 이름] 등에 적용되어 확실한 정보 식별 가능.
  [함수 선언형] 정보 확인시 유용.

- [맷돌-통합개발환경] 지정색과 동일한 색 적용으로 환경색에 따라 같은 색으로 변경됨.

- [포인터] 선언시 [차원] 표기는 기존 "* * *" 로 분리된 것을 "***" 로 붙여서 표기.
  모든 단어에 [공백] 을 추가하던 것에서 [기계닉스] 표준 방식으로 재정리 하였음.


#<2012.05.11.금>

[문법검사] 방법 추가/수정/보완.

- <Alt+F9> 조합시 기존의 "[설계묶음] 에 속한 모든 문서 검사" 에서
  "현재 편집중인 문서만 검사" 로 수정.

- [버튼:문법검사] 의 동작 구분 처리.

  [일반선택] : 현재 편집중인 문서만 검사(열린 문서가 있는 경우).
  [길게선택] : [설계묶음] 에 속한 모든 문서 검사.
             길게(약 0.4초) 누르고 있는 경우 그림이 변경됨.

- [문법검사] 완료시 자동으로 [정보창:설계정보] 에 정보 등록.


[통합 개발환경 설정] 대화상자 [수직 줄이동] 시 내부 그림부품이 위로 올라가는 경우
[오려내기] 한 부분이 해제되는 오류(하얗게 흔적이 남는) 수정.


#<2012.05.09.수>

이미 선언된 함수의 본체 선언부가 미완성된 상태로 [문서 끝] 에 도달한 경우 발생 오류 수정.
아주 특수한 경우로 일반 사용자와는 무관.


[묶음주석] [색동문자] 처리 오류 수정.

- 미완성 [문자열/문자상수] 바로 다음행에 [묶음주석] 이 있는 경우 [색동문자] 처리 오류 수정.

- 문법과는 무관하고 편집기의 [색동문자] 처리에만 해당.


[STRHEAP] 에 지정 문자열이 존재하지 않는 경우 "" 문자열 반환기능 추가.


#<2012.05.08.화>

[검증] 시 [검증식] 중복 처리 되지 않도록 수정.


#<2012.05.07.월>

[맷돌 운영체제 설치], [맷돌 변환 운영체제:OSX 설치] 대화상자 아래 설명용 [풍선 도움말] 의
자동 위치 조정 기능 수정/보완.

[귀뜸말], [풍선 도움말] 및 여러 [대화상자] 의 [가장 앞에 보이기] 속성 수정/보완.


#<2012.05.05.토>

[맷돌-통합개발한경] 의 정상적인 "[ ]맷돌가상구동" 강제 종료 지원.

- [맷돌-C] 로 만든 GUI 환경이 구동중인 상황에서도 "[ ]맷돌가상구동" 해제로 즉시 [가상구동] 종료 가능.

- 모든 사용 메모리 반환.


[그림부품:GMsgBox] 의 "유사모달" 속성 지원 추가.

- [맷돌-C] 로 GUI 개발시 VMOS(가상구동)로 <GMsgBox> "유사모달" 속성 지원.
  대화상자 종료시까지 VMOS 진행 중지.

- <API:_GMsgBox_눌린버튼확인_()> 추가.
  <API:_GMsgBox_기본_()>, <API:_GMsgBox_확인취소_()>, <API:_GMsgBox_한줄편집기_()> 내부 수정.

- <GMsgBox> 가 사용된 [맷돌-통합개발환경] 내장 GVMS 수정.
  "AVR-ISP", "맷돌28호(G.MTDL.A.RC28)-설정기".


[가상기계 제작 진행 상황] 대화상자 수정.

- [맷돌-C:GUI] 를 구동후 [맷돌-통합개발환경] 뒤로 사라지는 문제 수정.
  항상 [가장 앞에 보이기] 가 제대로 동작되도록 수정.


#<2012.04.30.월>

[맷돌-통합개발한경] 이 지원하는 [그림부품] 의 사용 메모리 해제 되지 않는 부분 수정.

- "AVR-ISP", "맷돌28호(G.MTDL.A.RC28)-설정기" 등 [기계닉스:그림부품] 과 [맷돌-C] 로
  만들어진 GUI 환경 종료시 사용 메모리 전부 해제.


{ 메뉴 : GVMS(PC) } 에 등록된 기계닉스 제공 [가상기계] 생성 메모리 해제 부분 추가.

- AVR-ISP.

- 맷돌28호(G.MTDL.A.RC28)-설정기.


#<2012.04.28.토>

[맷돌-통합개발한경] 으로 [가상기계(GVMS/GVMX)] 개발시 사용 메모리 해제 되지 않는 부분 수정.

- 개발환경 내부적으로 동적 생성된 메모리의 완벽한 해제 기능 추가.

- 개발 중 계속 메모리가 증가하지 않으며 일정 수준을 유지.


#<2012.04.27.금>

[찾기 대화상자] 안 [한줄 편집기] 의 [입력지정자] 가 특정 조건에서 깜박이지 않는 문제 수정.

[편집기] 의 [입력지정자] 가 특정 조건에서 깜박이지 않는 문제 수정.

[찾기목록:책갈피] 대화상자 [자동 줄이동자 보이기] 기능 수정/보완.


#<2012.04.26.목>

[검증창:Tree] 를 [키] 로 제어시 [검증식] 자동계산 기능 추가.

- [검증식] 항목이 열리는 경우([+] => [-]) 자동으로 [검증식] 계산후 결과 보임.


[검증창:Tree] 를 마우스 제어시 [검증식] 자동계산 기능 추가.

- [검증식] 항목이 열리는 경우([+] => [-]) 자동으로 [검증식] 계산후 결과 보임.


#<2012.04.25.수>

[찾기 대화상자] 보일때 [선택영역(문자열)] 이 없는 경우 [찾기 문자열] 비우도록 수정.

- 이전 [찾기 문자열] 이 이미 나와 있어 새 문자열을 지정하는데 번거로움을 줄이기 위한것.


[정보창:Tree] 를 [키] 로 제어시 [깜박임] 현상 제거.


#<2012.04.24.화>

[정보창:Tree] 에 [키] 탐색/제어 기능 추가.

<Up>               : 위로 항목 선택.
<Down>             : 아래로 항목 선택.

<Ctrl+Up>          : 위로 줄이동.
<Ctrl+Down>        : 아래로 줄이동.

<Right>            : [옹이] 열기.
<Left>             : [옹이] 닫기.

<Shift+Right>      : [옹이] 모든 하위 항목 열기.
<Shift+Left>       : [옹이] 모든 하위 항목 닫기.

<Ctrl+Right>       : 같은 단계 [옹이] 모두 열기.
<Ctrl+Left>        : 같은 단계 [옹이] 모두 닫기.

<Shift+Ctrl+Right> : 전체 열기.
<Shift+Ctrl+Left>  : 전체 닫기.

<PageUp>           : 높이 단위 위로 이동.
<PageDown>         : 높이 단위 아래로 이동.

<Home>             : 상위 [옹이] 지정.
<End>              : [옹이] 의 직계가지 마지막 항목 지정.

<Ctrl+Home>        : 열려있는 가장 상위 첫항목 지정.
<Ctrl+End>         : 열려 있는 가장 하위 마지막 항목 지정.

<Enter>            : 항목 관련 동작.


#<2012.04.23.월>

내부적으로 [DATABASE] 내부 [문자열] 관리 구조 개선.

- 문자열 자료 관리를 위한 전용 [STRHEAP] 사용.

- 길이에 제한받지 않는 문자열 관리가능.
  함수 선언형 정보 등 아주 긴 문자열도 제한 없이 관리.


[정보창:Tree] 개선.

- 문자열 자료 관리를 위한 전용 [STRHEAP] 사용.

- 항목 문자열을 길이제한 없이 표시 가능.

- 함수선언정보 길이제한 없이 모두 표시.

- [귀뜸말] 보일때 모든 문자열이 다 보이도록 자동 줄바꿈 적용.
  이전과 달리 아주 긴 [함수 선언형] 정보도 전부 볼수 있음.

- 항목 선택시 자동적으로 [귀뜸말] 이 사라지는 기능 추가.
  이전처럼 항목 선택시 [귀뜸말] 이 항목을 가리지 않음.


#<2012.04.08.일>

define 정의단어 적용방식 개선.

- define 으로 정의된 단어가 많은 경우 기존에 비하여 3배 정도 문법 해석 속도 향상.


include 로 문서가 상호 교차 참조되는 경우 오류로 간주.

- 자신이 자신을 include 한 경우.

- 자신이 include 한 문서가 자신을 include 한 경우.


#<2012.03.31.토>

[풍선도움말] 자동 위치 기능 추가.

- 모든 경우 항상 화면안에 위치하도록 자동 위치 수정(수평좌표만 적용).
  [맷돌-통합개발환경] 과 [기계닉스:그림부품] 모두 적용.

- 위치 고정시 자동 [줄바꿈] 기능 추가.
  문자열이 너무 긴 경우 자동 [줄바꿈] 으로 전체 내용을 표시.


[편집기:제목줄] 출력 형식 수정.

- 문서 이름이 너무 긴 경우 [경로...\이름.확장자] 형식의 [줄임 문자열] 로 처리.
  [이름.확장자] 는 항상 표시되므로 문서자체는 쉽게 확인/구별 가능.

- 전체 경로는 [풍선도움말] 로 보여줌(제목줄/목록 모두 적용).
  자동 줄바꿈 적용으로 어떤 상황에서도 전체 경로 확인 가능.


수정된 문서를 저장하지 않고 닫으려는 경우 [수정된 문서] 임을 알려주는 풍선도움말 출력.

[마법사] 안의 [맷돌28호] 관련 예제 내부 주석문 일부 수정.


기계닉스 전용 GUI 관련 API 추가.

- <_GBalloonBox_자동행적용설정_>, <_GBalloonBox_자동행적용그림부품안설정_> 추가.

- 사용자는 무관.


#<2012.03.28.수>

[마법사(새설계묶음(예제)):대화상자] 에 [미리보기] 기능 추가.

- [마법사:대화상자] 에서 해당 [설계묶음] 를 가선택 하는 경우 [편집기] 에
  해당 [설계묶음] 의 "main.c" 문서를 자동으로 열어 보여준다.
  일일히 [설계묶음] 을 열어보지 않아도 쉽게 내용 파악 가능.

- [기계닉스] 의 모든 [예제] 는 "main.c" 로 시작하고 이 안에 [설명] 이
  들어 있으므로 사용자는 [기계닉스] 에서 제공하는 [예제] 를 쉽게 파악가능.


#<2012.03.27.화>

[마법사/예제] 의 "(3)GMRCBASiC 제어(가상)" 수정.


#<2012.03.26.월>

[마법사/예제] 에 [맷돌28호(G.MTDL.A.RC28)] API 사용 제어 2개 추가.

- (예제)맷돌28호-각도제어방식(API).

- (예제)맷돌28호-듀티제어방식(API).


#<2012.03.25.일>

[마법사/예제] 안의 모든 [설계묶음] 설명 재정리/수정.


#<2012.03.21.수>

DS1620 관련 [마법사/예제] 수정.

- DS1620 은 "영하(-55도)/영상(+125도)" 범위의 온도를 측정 가능하므로 이에 맞게 수정.
  이전 [마법사/예제] 는 [영하] 처리가 반영돼 있지 않았음.

- 관련 설명 보강.


#<2012.03.18.일>

[설계묶음] 에 [가상기계] 항목 추가.

- GVMS(PC구동), GVMX(맷돌(G.MTDL.X) 계열 구동) 등록 가능.
  이 위치에서 바로 실행(GVMS)/설치(GVMX) 가능.

- 각각의 GVMS/GVMX 항목에 관련 [문서(*.*)] 등록/열기 가능.

- [가상기계] 항목 추가로 [설계묶음(*.gprj)] 내부 구조 수정.


[책갈피/찾기목록] 이 크기 조정중 최소크기 지정으로 사라지는 것 방지.


#<2012.03.18.일>

[맷돌-통합개발환경] 의 [편집기] 에서 열수 있는 문서종류 재정의.

- "*.c/h/txt/gtxt/gtxt/gasm/gcsm/gobj/glib/gob1/gtmp/glnk/$lst/$/gvmi".

- "*.glnk/$lst/$/gvmi" 추가.


[설계묶음:참고문서] 항목에 등록된 문서중 [맷돌-통합개발환경] 에서 지원하는 문서인 경우
[외부 실행] 으로 열지 않고 직접 열도록 수정("*.txt" 등).


#<2012.03.14.수>

[가상기계:전용환경] 으로 전환시 현재 [설계묶음] 을 닫지 않도록 수정.

- { 메뉴 : 가상기계 } 관련 기능.
  { 메뉴 : GVMS(PC) }, { 메뉴 : GVMX(맷돌) } 관련 기능.


[통신포트] 를 여는 경우 지원하지 않는 전송률(BAUD) 등 설정으로 오류가 발생하는 경우
[맷돌-통합개발환경] 을 다시 시작하지 않으면 해당 [통신포트] 에 다시 접근하지 못하는 문제 수정.


#<2012.03.12.월>

[맷돌직접연결:통신포트] 와 [검증출력창:통신포트] 간 배타적인 [열기] 기능 적용.

- 서로 같은 [PC:통신포트] 를 사용하는 경우 새로 여는 통신포트를 우선하고
  이미 열려 있는 상대방 통신 포트는 닫는다.

- 서로 다른 통신포트(COM1, COM3 ...)를 사용하는 경우는 무관하고
  한 개의 PC 통신포트만 사용하여 맷돌(G.MTDL.X) 계열을 개발하는 경우 유용.

- 맷돌(G.MTDL.X) 계열에서 [맷돌:통신포트] 로 PC 쪽으로 문자열을 전송하고
  이 문자열을 [맷돌-통합개발환경] 의 "검증출력창" 으로 받아 보는 예제 등에 유용.
  통신포트를 전환하기 위하여 번거롭게 [닫기/열기] 를 반복할 필요가 없음.


#<2012.03.10.토>

[DS1620(온도센서IC)] 관련 API 추가.

- { API:API->맷돌->주변소자->온도->DS1620 } 참고.

- "영하(-55도)/영상(+125도)" 범위의 온도 측정 가능.

- API 에 [영상(+)/영하(-)] 처리 반영돼 있음.
  부호있는 변수로 온도를 읽어 들이는 경우 "영하(-)" 인 경우는 "음수" 값이됨.

- SPI 를 사용한 일반적인 제어보다 훨씬 간단하게 DS1620 제어 가능.

- [마법사] 에 예제 추가.


#<2012.03.04.일>

[책갈피/찾기목록] 기능 추가.

- 문서에서 찾을 문자열을 목록화 하여 쉽게 찾을수 있도록 한것.

- 문자열로 문서상의 위치를 찾는 [책갈피] 기능으로 사용 가능.

- 문서 [열기/전환] 시 해당 문서의 [책갈피] 내용으로 자동 재설정.

- 항목을 선택하여 찾을 경우 자동으로 [찾기대화상자] 에 등록되어 "형광문자" 로 지정됨.

- { 메뉴 : 편집->찾기목록/책갈피(Ctrl+B) } 나 <Ctrl+B> 로 [책갈피] 에 문자열 등록 및
  [책갈피 대화상자] 를 열수 있음.


[수평이동:왼쪽] 수정.

- [수평이동:왼쪽] 에서 더이상 이동할수 없는 경우 [선택영역] 오류 수정.


#<2012.02.23.목>

{ sizeof [식] } 까지 지원.

- { sizeof(자료형) } 에 이어 <sizeof> 전 기능 지원.

- <sizeof> 는 선언된 "논리적 크기" 가 아니라, 실제 메모리 상에서 차지하는
  "물리적인 공간의 크기" 를 반환.
  [맷돌-C] 의 경우는 "논리적 크기" 와 "물리적 크기" 가 정확하게 일치.

- <sizeof> 는 실제 [명령어] 로 번역되지 않으며 [의사명령어] 와 같이 [맷돌-C] 언어
  자체적으로 내부 처리되고, 실제는 [상수값] 과 같이 해석.

- { sizeof "문자열" } 의 경우는 문자열끝을 알려주는 '\0' 까지 포함된 크기를 반환.

- 일반식, 상수식, 검증식 모두에서 다 사용가능.


#<2012.02.20.월>

[함수묶음<*.glib>] 이 하나도 없는 [설계묶음<*.gprj>] 의 경우 [검증] 시에
검증행 지정이 안되는 문제 수정.

<main()> 함수 종료시 이를 알리는 [알림창] 이 안나오던 문제 수정.


<sizeof> "예약어 지원 추가!!!".

- 기존에 [맷돌-C] 에서 지원하지 않았던 <sizeof> 연산자 지원 시작.

- 편집기 [색동문자] 에 <sizeof> 지원 추가.

- { sizeof(자료형) } 은 현재 지원되나 { sizeof [식] } 은 지원 준비중.


#<2012.02.08.수>

[편집기:수평이동] 기능 { 메뉴 : 편집 } 에 추가.

- 선택된 영역이 걸쳐 있는 [시작행] 부터 [끝행] 사이의 모든 행의 문자열을 수평이동.

- [Ctrl+수평방향키] 조합의 경우는 "한칸씩" 이동하나,
  이 { 메뉴 : 편집 } 의 기능은 사용자가 "이동폭" 을 지정하여 "여러칸을 한번에 이동" 가능.

- C 언어 문서 작성시 여러행을 한꺼번에 "들여쓰기" 하는 경우 사용.

- [되돌리기/되살리기] 기능 적용됨.


#<2012.02.07.화>

[편집기:수평이동] 기능 추가.

- 선택된 영역이 걸쳐 있는 [시작행] 부터 [끝행] 사이의 모든 행의 문자열을 수평이동.

- [Ctrl+수평방향키] 를 조합하여 사용(한칸씩 이동).
  오른쪽이동(Ctrl+[->]), 왼쪽이동(Ctrl+[<-]).

- C 언어 문서 작성시 여러행을 한꺼번에 "들여쓰기" 하는 경우 사용.

- [되돌리기/되살리기] 기능 적용됨.


#<2012.01.27.금>

[찾기/교환 대화상자] 의 [모두 교환] 시 [입력지정자] 가 보이지 않도록 수정.


#<2012.01.14.토>

<API:_Gpio_포트출력설정_()>, <API:_Gpio_포트입력설정_()> 두개 API 추가.

- 모든 VMOS 계열에 해당.

- <API_Gpio> 관련 기능으로 <API:_Gpio_출력설정_()>, <API:_Gpio_입력설정_()> 이
  한번에 한개 비트만 설정하는 것에 비하여, 새로 추가된 API 는 "포트당 한번에"
  각 핀의 [입/출력] 을 설정할수 있음(해당 API 의 <*.gtxt> 설명문서 참고).

- 계속 [포트:핀] 의 [입/출력] 방향을 변경할 필요가 있는 경우 사용시 "전환속도" 가 빨라짐.

기계닉스 전용 API 1 개 추가(사용자는 무관).

새로운 API 의 추가로 vmos_0, vmos_2, vmos_3 는 각 "1K" 씩 사용자 ROM 크기 감소.


#<2012.01.04.수>

[수학 API] 관련 설명문서(*.gtxt) 안의 예제부분 자세하게 수정/보완.


#<2012.01.01.일> : 2012.10.5.16판 배포 시작.

"VMOS 전부 신형으로 수정".

VMOS API 호출 방식 변경.

- 신형 API 호출 방식 적용으로 대응하는 "모든 VMOS 가 2012년 판으로 수정되었음".

- 수정된 VMOS 에 맞게 내장 [API 함수묶음(*.glib)] 모두 변경.
  동일한 API 라도 크기가 1/2 정도 감소.

- "API 함수 자체(선언<*.h> 명세)는 모두 그대로" 이므로 이전 설계문서는 수정할 필요 없음.
  사용자는 기존 문서/방식 그대로 사용하면 됨.

- API 호출 속도가 기존 방식의 1/2 로 향상.
  API 사용 빈도가 높았던 [가상기계] 는 실행 속도가 향상.

- [맷돌-통합개발환경] 안의 내장 API 모두 신형으로 교체.


VMOS 사용자 ROM 크기 증가.

- VMOS 크기 감소로 사용자 ROM 이 1-3K 바이트 증가.
  단, <VMOS:AT45DB041X> 계열은 512K 바이트 그대로.


[가상기계:판번호] 수정.

- VMOS, API 개선으로 [가상기계:판번호] 가 '0'=>'1' 로 수정.
  [맷돌-통합개발환경] 내부적으로 자동 검사되므로 사용자는 고려할 필요 없음.

- 기존 [판번호:0] 의 [가상기계(GVMS/GVMX)] 는 신형 [맷돌-통합개발환경] 에서 바로
  "가상구동" 하거나 "설치" 할수 없음.
  반드시, [설계묶음] 을 이용하여 신형 [맷돌-통합개발환경] 에서 다시 [가상기계] 를 제작해야 함.
  단, [설계묶음] 을 수정할 필요는 없음.

- 기존 [맷돌-통합개발환경] 에서 신형 [맷돌-통합개발환경] 으로 제작된 [판번호:1] 의 [가상기계] 를
  "가상구동" 하거나 "설치" 할 경우 "치명적 오류" 가 발생하게 되므로 이런 방식으로 사용하지 말것.
  반드시, 신형 [맷돌-통합개발환경] 에서 사용해야 함.


<*.cpp> 문서도 [색동문자] 기능 적용.
단, 문서 보기 기능 뿐으로 [맷돌-C] 에서 <*.cpp> 문서 처리를 지원하지는 않음.


//-------------------------------------------------------------------------------
//[2011 년도 수정 내용]-------------------------------------------------------------
//-------------------------------------------------------------------------------

#<2011.11.27.일>

[맷돌-통합개발환경] 내장 [AVR-ISP] 에 "ISP 활성화" 기능 추가.

- { 메뉴 : GVMS(PC)->AVR-ISP }.

- AVR 의 [상위설정바이트] 중 "SPIEN" 를 해제한 경우 더이상 ISP 방식으로 접근이 불가능해진다.
  이 경우는 반드시 "병렬" 방식으로만 접근하여 다시 "활성화" 시킬수 있는데,
  이를 위하여 "병렬" 방식으로 접근하여 "SPIEN" 을 다시 설정할수 있는 기능을 추가하였음.

- [AVR-ISP], [AVR-병렬접근제어] 는 각각 맷돌(G.MTDL.X)에 설치되는 가상기계(GVMX)가 제공됨.

- [AVR-ISP/병렬접근] 은 동일한 방식을 사용하는 모든 AVR 에 적용 가능.

- 관련 회로도 제공.


#<2011.11.20.일>

[AVR-ISP] 기능 추가.

- { 메뉴 : GVMS(PC)->AVR-ISP } 로 바로 실행 가능.

- TC++ 2006 Explorer 로 제작되어 별도 제공되던 것을 [맷돌-C] 로 제작한 것으로 많이
  사용되는 일반적인 AVR 기종에 쉽게 사용 가능함.
  실제 기계닉스의 제품생산에 사용되고 있음.
  이전에 자료실에서 제공되던 AVR-ISP 와 완벽하게 호환되고 동일한 <*.avrspec> 문서를
  사용가능함(사용자가 필요에 따라 새로운 기종의 <*.avrspec> 문서를 생성 가능함).


[주항목] 에 "GVMS(PC)" 와 "GVMX(맷돌)" 추가.

- GVMS(PC)의 경우는 [하위항목] 을 [설계묶음] 등을 열지 않고 바로 실행.

- GVMX(맷돌)의 경우는 [하위항목] 을 [설계묶음] 등을 열지 않고 바로 맷돌(G.MTDL.X)에 설치.

- 모두 [맷돌-C] 로 제작된 것으로 기계닉스에서 제공하는 [가상기계] 들임.


[맷돌-통합개발환경] 안의 보조기능 수정.

- 설계묶음을 열지 않고 직접 가상기계(GVMX)만 설치하도록 수정.
  현재 작업중인 설계묶음을 닫지않고 보조기능을 사용할수 있음.

- { 메뉴 : 설정->RC 서보모터 영점 조정기(맷돌 내장 제어기용) }
  { 메뉴 : 설정->G.M.RC.BASiC 설정기 }
  { 메뉴 : 설정->G.M.RC.BASiC 자동 제작기 }
  3개 항목이 수정 대상.


[맷돌(G.MTDL.X)] 관련 <API:MTDL> 추가.

- 기계닉스 전용으로 사용자와 무관.


#<2011.11.09.수>

<API:_Sys_외부실행_()> 추가(기계닉스 전용으로 사용자는 무관).


#<2011.10.24.월>:중요수정

함수 인수처리 오류 수정.

- 인수가 포인터로 선언된 함수 사용시 포인터 인수에 상수 0 을 사용하는 경우 번역오류 수정.
  [상수] 가 아니라 [상수포인터] 로 번역되도록 수정.

기계닉스 전용 API 대량 추가.

- 맷돌-C 로 PC 용 가상기계 제작을 위한 것으로 일반 사용자는 무관함.

[맷돌가상구동] 에 사용되는 ROM(512K=>1M) 로 RAM(512K=>1M) 로 각각 증가.


#<2011.10.01.토>:중요수정

"->", "." 연산자 오류 수정.

- [구성원] 이 [순수배열이름(구조체/공용체 제외)] 인 경우 [간접주소지정] 으로 인한 주소계산오류 수정.
  이 경우는 [간접주소지정] 으로 연산결과가 번역되지 않도록 수정되었음.

[구조체/공용체] 선언문 안에서 [지시어] 사용할수 있도록 수정.


#<2011.09.10.토>

[G.M.RC.BASiC 자동 제작기] 수정/보완.

- { 메뉴 : 설정->G.M.RC.BASiC 자동 제작기 } 를 확실한 동작이 보장되도록 수정.

- VMOS 의 고속화로 인한 [시간지연함수] 의 부정확한 동작을 [타이머] 를 사용한 방식으로 정밀하게 수정.

- VMOS 종류에 무관하게 확실하게 G.M.RC.BASiC 을 ISP 방식으로 제작할수 있음.


#<2011.08.21.일>

[출력창] 관련 기능의 수정.

- [출력창] 을 전환시 정확한 명칭과 내용이 표시되도록 수정.

- [검증출력창] 의 경우 지정 [통신포트] 로 수신되는 문자열 뒤에 '\0' 이 붙어 있거나 없거나에 상관없이
  자동적으로 수신될때마다 문자열을 출력하도록 수정.
  이전에는 반드시 문자열 뒤에 '\0' 까지 붙여서 보내야 출력되었음.

- KS5601 완성형 한글의 경우 2바이트 중 첫번째 바이트만 수신되고 중단되는 경우라도 자동으로 문자열을 마감하여 출력.

- 이전과 달리 수신되는 문자열을 놓치지 않고 모두 받아 출력해 줌(806400BPS 에서도 누락이 없음).


#<2011.08.20.토>

[라벨] 의 [색동문자] 적용시 <default:> 까지 [라벨] 로 색동문자 지정되는 것 수정.


#<2011.07.25.월>

[검증식 보기창] 추가.

- [정보창] 에 [검증보기] 로 추가되었음([개발검증/재검증] 시에만 보여짐).

- [검증식] 을 여러개 등록하여 실시간으로 값을 볼수 있음.
  각각의 [검증식] 에는 자세한 정보가 표시됨.

- 여러개의 행으로 이루어지고, 사이에 [주석문] 이 있는 경우라도 [한줄 검증식] 으로 정리하여 표시.

- "[+]검증식" 형태의 경우는 [검증식] 을 처리 하지 않으며 "[-]검증식" 으로 열려 있는 경우만 처리.
  "[+]검증식보기" 로 전체가 닫혀있는 경우는 모든 [검증식] 을 처리 하지 않으며
  "[-]검증식보기" 로 열려 있는 경우 모든 [검증식] 을 처리.
  [정보창]:[검증보기] 항목이 보이지 않는 경우는 [검증식] 을 처리하지 않음.
  따라서, 이미 등록된 [검증식] 을 처리하지 않게 하여 검증시 처리 시간을 줄이려면 "[+]검증식" 으로
  등록된 [검증식] 을 닫아 주면 됨.

[검증식 보기판] 수정.

- 여러개의 행으로 이루어지고, 사이에 [주석문] 이 있는 경우라도 [한줄 검증식] 으로 정리하여 표시.

[통신오류] 시 [검증식] 계산이 바로 중단 되도록 하여 계속되는 [통신오류] 유발 방지.

[정보창] 의 선택항목 변경.

- 항목일부가 보이지 않는 경우 [수평이동] 할수 있도록 수정.

- [가상기계개발] 과 [개발검증/재검증] 시에 다른 항목을 표시.

[정보창]:[상태정보] 항목역시 [개발검증/재검증] 시에만 보이도록 수정.

[편집기] 의 [빠른목록] 역시 [가상기계개발] 과 [개발검증/재검증] 시에 다른 항목 표시되도록 수정.

이번 판에는 [교육/검증] 시 반드시 필요한 [검증식보기] 기능의 추가로, [변수] 나 [식] 의 계산 결과를
"실시간" 으로 확인할수 있어 효과가 극대화 되며 고성능 개발툴과 비교하여 별 차이없는 개발환경을 제공하게 되었음.


#<2011.07.15.금>

/* ... */ [주석문] 으로 문서가 끝나는 경우 "*/" 이 단어로 인식되어 [문법검사] 시
오류가 되는 문제 수정.


#<2011.07.04.월>

[검증식 보기판] 계산시 [함수영역] 에 따른 정확한 처리 추가.

- [검증식] 에 [전역변수] 만 사용된 경우는 어떤 경우라도 계산가능.

- [검증식] 에 [지역변수] 가 있는 경우는 [함수영역] 에 따라 계산 가능여부 판단 처리.


#<2011.07.02.토> : 7.5.16+판 배포시작

[검증식 보기판] 추가.

- [검증] 시에 선택된 [검증식(변수, 수식)] 을 계산하여 해당 값을 보여준다.

- [2진수/10진수/16진수] 로 사용자가 보기 설정 가능.

- 검증시 값을 확인할수 있으므로 매우 편리하며 교육적으로 큰 도움이 됨.

- ++, --, = 등 직접 변수 값을 수정하는 연산자나 반환값이 있는 함수는 해당하지 않음.

- [기본보기(선택 식 아래에 표시)/고정보기(편집기 위에 고정 표기)] 를 전환할수 있음.


#<2011.06.16.목>

[특수 주석] 처리로 인한 [한줄 주석문] 안에서 [형광문자] 가 지원되지 않는 문제 수정.


#<2011.06.09.목>

<define> 으로 정의한 [정의이름] 해석시 <*.c> 문서의 크기가 [정의이름] 의 문자열보다
작은 경우 발생하는 문제 수정.


#<2011.06.06.월> : 현충일

<*.gtmp> 문서도 [색동문자] 지원.

<*.gasm>, <*.gcsm>, <*.glib>, <*.gobj>, <*.gob1>, <*.gtmp> 문서도
열수 있도록 [문서 열기 대화상자] 에 목록 추가.
- 사용자는 번역되는 과정을 보고자 할때 이 문서를 직접 열어서 볼수 있음.


#<2011.06.04.토>

[특수 주석 단어] 추가.

- "설명", "중요", "방법", "참고", "주의", "조건" 의 단어를 기계닉스 정의 조건인 경우에
  별도의 [색동문자] 로 처리함.

- 이는 기계닉스 전용 기능으로 [예제] 등의 설명시 [시인성] 을 높여주기 위한 편집기상 추가 기능임.
  보여줄때만 자동 적용되는 기능으로 실제는 [주석문] 으로 처리됨.

//[설명]...
//[중요]...
//[방법]...
//[참고]...
//[주의]...
//[조건]...


#<2011.06.03.금>

[맷돌직접연결] 을 해제할때 사용한 통신포트를 자동으로 닫아 주도록 수정.
여러개의 [맷돌-통합개발환경] 을 동시에 사용하는 경우 별도로 [설정] 에서 직접 닫지 않아도 됨.


#<2011.06.02.목>

[검증] 시 [함수묶음<*.glib>] 의 경우도 일반적인 [검증] 이 모두 가능하도록 지원.

- 이전에는 [함수묶음] 안에 [무한 반복문] 이 들어 있는 경우는 [검증] 시 빠져나오지 못하고
  진행되지 않는 문제가 있었으나, 이제는 자동으로 [함수묶음<*.glib>] 문서를 열어 검증을
  계속 할수 있도록 해줌.

[함수묶음<*.glib>] 문서도 검증대상에 포함되므로 이 문서도 [색동문자] 지원함.

전체적인 [검증 속도] 개선.


#<2011.05.28.토>

[검증] 시 [기동], [재기동] 으로 동작중인 경우는 [C/ASM/CASM] 문서전환이 돼지 않도록 수정.
이 외에 [정지] 상태나, [자동검증] 관련 기능이 실행 중인 경우 등 모든 경우에는 가능함.
이는 보다 정확한 검증위치를 지정핳기 위한 것임.


#<2011.05.16.월+2>

[검증] 시 [정지점] 이 다량 설정돼 있는 경우 [C/ASM/CASM] 문서 전환시 시간이 많이 걸리는 문제 수정.

[정보창:상태정보] 가 보이지 않는 경우는 검증시 해당 내용을 갱신하기 위하여 맷돌로부터 레지스터등 정보를
읽어들이지 않도록 수정. 결과적으로 검증시 처리 속도가 빨라짐.


#<2011.05.16.월+1>

[OSX] 계열 [운영체제] 가 설치된 맷돌(G.MTDL.X) 계열에 다시 <VMOS:AT45DB041X> 계열
[운영체제] 설치시 제대로 진입하지 못하는 문제 수정.


#<2011.05.16.월>

[Tree:설계묶음] 의 대규모 [설계묶음(함수묶음 400개 이상)] 열때 오류 수정.


#<2011.05.15.일>

[마법사] 와 [예제] 안의 [참고자료] 의 자료 및 회로도 보강.


#<2011.05.14.토> : 7.5.16판 배포시작.

7.5.16판 배포 시작.

배포시 <API:DataRom> 빠진것 보완.

[마법사] 의 <(고급예제)RC서보-DC모터 동시제어> 내용 [운영체제] 에 맞게 수정.


#<2011.05.13.금>

<API:DataRom>, <맷돌28호:듀티구동> 관련 예제 [마법사] 에 추가.

[맷돌28호] 관련 [마법사] 예제안의 [회로도] 자세한 것으로 교체.


#<2011.05.12.목>

[편집기] 의 [색동문자] 에 [라벨] 지원 추가.


#<2011.05.11.수>

[편집기] 상에서 <Ctrl + 마우스 왼쪽 버튼> 으로 [단어 선택 지정] 기능 추가.


#<2011.05.10.화>

[정보창]:[함수묶음] 항목을 이전의 [경로] 방식에서 [계보] 방식으로 변경.

[정보창]:[설계묶음] 의 항목 삭제 기능 수정.
- [제목] 을 삭제하는 경우는 해당 [제목] 의 하위 항목만 전부 비운다.
- [옹이] 의 경우는 자신을 비롯한 모든 하위 항목을 비운다.
- [항목] 의 경우는 항목만 삭제한다.

[정보창]:[함수묶음] 의 [설명문서<*.gtxt>] 를 [계보] 순으로 [합성] 하여 표시하는 기능 추가.
- <*.gtxt> 문서가 존재하지 않는 경우는 자동으로 <*.h> 문서를 합성.


#<2011.05.06.금>

[함수묶음] 항목에서 <*.glib> 에 대응하는 설명문서 <*.gtxt> 가 존재하지 않는 경우
자동으로 해당 <*.h> 문서를 열어 주는 것으로 수정.


#<2011.05.05.목>

[편집기] 상의 [Ctrl + Alt + 마우스이동] 기능에서 [편집기 영역] 별로 줄이동 양의 구분 적용.
<Ctrl + Alt> 를 함께 누르는 경우는 [3 가지 영역] 을 구분하는 [점선] 이 자동으로 보여짐.
- 왼쪽 1/5 영역은 1줄씩 이동.
- 오른쪽 1/5 영역은 1장씩 이동.
- 가운데 3/5 영역은 기본줄이동 크기로 이동(이전과 같은 줄이동 양).


#<2011.05.05.목>

{ 메뉴 : 가상기계->기계닉스 제공 PC 구동 [가상기계(*.gvms)] 모음 } 과
{ 메뉴 : 가상기계->기계닉스 제공 맷돌(G.MTDL.X) 구동 [가상기계(*.gvmx)] 모음 }
실행시 항상 지정된 [GVMS(*.gvms)] 또는 [GVMX(*.gvmx)] 폴더가 열리도록 강제 설정.


#<2011.05.01.일>

[한줄 주석문] 오류 수정.

// ... /* ...

의 경우 "/*" 이 오류가 되는 문제 수정.


#<2011.05.01.일>

[가상기계] 제작시 [가상기계 제작 진행 상황] 대화상자로 진행 상태 볼수 있도록 수정.
[가상기계] 검증 문서(<*.gasm>, <*gcsm> 등) 제작 속도가 훨씬 빨라짐(시간이 거의 걸리지 않음).
그외 부분적인 최적화가 이루어짐.


#<2011.04.26.화>

<VMOS:AT45DB041X> 계열 [운영체제] 설치시 VMOS 의 ROM 영역이 자동으로 소거되도록 수정.
- 이전 [가상기계] 오류시 [운영체제] 를 재설치에도 ROM 안의 [가상기계] 가 그대로 남아
  다시 오류가 반복되는 문제 완전 수정(단, <VMOS:AT45DB041X> 계열만의 문제).

<API:DataRom> 추가
- <VMOS:AT45DB041X> 계열 [운영체제] 에만 해당.
- <VMOS:AT45DB041X> 에 내장된 AT45DB041X SPI FLASH ROM 의 남는 영역을 사용자가
  일반 적인 <DATA ROM> 으로 사용할수 있음.
- 쓰기/읽기 등 관련 API 추가됨(운영체제 재설치 필요).


#<2011.02.15.화>

[맷돌28호] OSX [듀티구동] <API:_GMTDLARC_DutySyncMove()> 처리 부분 오류 수정.
[맷돌28호] 사용자는 OSX 를 다시 설치해야 함.

[맷돌28호] 는 맷돌A(G.MTDL.A) 에만 설치하도록 수정.
맷돌A1, 맷돌B 는 내부의 AT45DB041X 에 [맷돌28호] 의 PWM[23:26] 이 연결돼 있어 사용불가함.

"[맷돌24호] OSX 추가"

[맷돌24호] OSX 추가되었음.
- [맷돌28호] 와 완전히 동일하며 단지 PWM[23:26] 4개만 사용할수 없음.
- 맷돌A1, 맷돌B 에 장착하여 [맷돌28호] API 로 동일하게 사용 가능함.


#<2011.02.14.월> : 6.5.16판 배포시작.

"[맷돌28호] 에 서보 가감속 동조기동 기능 추가"

[맷돌28호(OSX)] [RC 서보 전용 제어기] 의 [동조기동] 기능이 [가속/감속/가감속] 의 경우도 완벽하게 지원됨.
- <API:_GMTDLARC_DegSyncMove()>, <API:_GMTDLARC_DutySyncMove()> 에 인수가 추가되었음.
- 관련 [마법사], [예제] 등이 전부 수정되었음.
- 예제에 내장된 사용자용 API 내부 일부 수정.
- 28 개의 RC 서보를 완벽하게 가감속 동조기동(협력제어) 할수있음.
  최대 28개의 RC 서보가 사용되며 상당 수준의 정밀도와 제어성이 요구되는 로봇, 보행로봇(2각, 4각) 등과
  곤충형 다각 보행체, 팔, 손가락 등에 사용시 부드러운 고급 제어 가능.

이에 따라 [맷돌28호] 의 OSX 운영체계가 모두 수정되었음.

[맷돌-통합개발환경] 에 내장된 [맷돌28호 설정기] 수정.


#<2011.02.09.수>

"완벽한 RC 서보 가감속 동조기동 지원"

VMOS 내장 [RC 서보 제어기] 의 [동조기동] 기능이 [가속/감속/가감속] 의 경우도 완벽하게 지원됨.
- <API:_Servo_동조기동_()> 에 인수가 추가되었음.
- 관련 [마법사], [예제] 등이 전부 수정되었음.
- 12 개의 RC 서보를 완벽하게 가감속 동조기동 할수있음.
  다리 당 3 자유도의 4각 보행체, 곤충형 다각 보행체, 팔, 손가락 등에 사용시 부드러운 제어 가능.

이에 따라 PWM 을 지원하는 VMOS 계열이 전부 수정됨.


#<2011.01.15.토>:큰폭수정!!!

"모든 VMOS 계열 [운영체제] 를 전부 다시 제작하였음."

<API_Pwm> 의 RC 서보제어 관련 대폭 수정되었음.
- [맷돌28호] 와 유사한 방식으로 전부 변경되었음.
- [영점90도], [각도원점] 기능 추가.
- 서보제어용 "생성자[30]" 으로 변경되었음.
- _Servo_각도원점_, _Servo_영점0_, _Servo_영점180_,
  _Servo_영점90_, _Servo_완료확인_, _Servo_전체완료확인_
  API 가 추가되었음.
- 관련 VMOS 전부 수정되었음.
- 관련 설명문, 예제, 마법사, 함수묶음 전부 수정되었음.
- API_Pwm 계열은 <#define> 으로 정의된 [영문이름] 삭제되었음.


[VMOS:AT45DB041X1] 추가.
- AT45DB041D(66MHz) 신형 SPI Flash(512K Byte) 를 지원하기 위한것.
- 향후 기계닉스 맷돌A1(G.MTDL.A1), 맷돌B(G.MTDL.B) 에는 AT45DB041D(66Mhz) 만 장착.
  모든 VMOS 계열 운영체제, OSX 계열 운영체제를 설치 가능함.

VMOS 계열, OSX 계열 운영체제 설치대화상자에 [풍선 도움말] 형 설명보기 추가.
- 해당 운영체제를 선택하면 자세한 설명을 [풍선 도움말] 로 볼수 있음.


맷돌A1(G.MTDL.A1) 개념 시작.
- 맷돌A(G.MTDl.A) 에 AT45DB041D(66Mhz:512K) 를 장착하기 위한 추가 PCB 내장.
- 최대 ROM:512K 까지 사용 가능함.
- 모든 기능은 맷돌A/B 와 완전히 동일함.


#<2010.12.31.금>

처리 진행시 아직 [새설계묶음] 상태인 경우는 기존의 [저장 대화상자] 를 보여주는 방식에서
알림문만 보여주고 [새설계묶음] 저장은 사용자가 직접 처리하도록 수정.

#<2010.12.30.목>

검증시 [C/ASM/C+ASM] 으로 문서를 전환할때 자동으로 명령이 실행되지 않도록 수정.

#<2010.12.28.화>

[상수식] 처리 기능 추가.

배열 선언시 배열크기 지정부분에 [상수식] 사용 가능.
예)
int 배열이름[1024*3][10];

함수 선언시 인수에 배열이 사용되는 경우 배열크기 지정부분에 [상수식] 사용 가능.
예)
void 함수이름(int  p배열이름[10*2], short  p인수0, long  p인수1) { ... }

<switch ... case> 문에서 case 에 [상수식] 사용 가능.

예)

switch(변수)
{
  case 10*4 : ...

  case -4 : ... //음수도 사용가능.

  case (2*3 + 2) : ... //() 를 비롯한 복잡한 식도 기술 가능.

  case  100 : ...

  default : ...

}

[상수식] 은 [피연산자] 가 [상수] 로만 이루어진 수식을 말하며, 실행 문장으로 변억되지 않으며
해석기가 직접 계산한 결과인 [상수값] 만 실제 반영됨.

[맷돌-C] 의 [상수식] 지원으로 보다 보기 쉬운 문장을 작성할수 있게 되었음.

{ 메뉴 : 가상기계->개발환경으로 돌아가기 } 항목 위에 [분리줄] 추가.

#<2010.12.21.화>

<define> 등 [지시어] 를 영역에 상관없이 아무 곳에서나 사용할수 있도록 수정.

[가상기계<*.gvmx>] 설치시 VMOS:AT45DB041X 계열을 VMOS 계열로 인식하지 못하는 문제 수정.

#<2010.12.18.토>

[포인터] 에 상수 0 을 [형변환] 없이 바로 할당할수 있도록 수정.

#<2010.12.17.금>

<5.5.16 판> 배포 시작.

"모든 VMOS 계열 [운영체제] 를 전부 다시 제작하였음."

[수학 API] 등 모든 API 가 VMOS 계열에 통합됨.

지원 API 에 따라 VMOS 계열이 세분화 되었으며, 사용자 ROM 크기도 VMOS 계열에 따라 달라짐.
이에 따라 VMOS 계열 설치용 전용 대화상자 추가(운영체제 선택의 폭이 넓어짐).
{ 메뉴 : 설정->맷돌 [운영체제] 설치 }

맷돌 변환 운영체제(OSX) 설치 대화상자 추가.
{ 메뉴 : 맷돌변환->맷돌 변환 [운영체제:OSX] 설치 }

[운영체제] 설치용 대화상자의 각 [운영체제] 항목을 선택시 자세한 설명이 [출력창] 에 출력됨.

<*.gvmx> 가상기계 설치시 자동 검사 기능 추가.
- 사용 API 가 맷돌에 현재 설치돼 있는 VMOS 계열에서 지원하는 것인지 여부.
- 현재 맷돌에 설치돼 있는 VMOS 계열 [운영체제] 가 [최신판] 인지 여부.

{ 메뉴 : 설정->맷돌 [운영체제] 정보 확인 } 의 출력 내용이 보다 자세해짐.

[전광판] 기능 제거.

#<2010.12.01.수>

<2010.11.30.화> 수정 내용에 수학 API 내부 오류의 경우도 추가.

신뢰성이 향상된 VMOS 사용을 위하여 맷돌에 운영체제 재설치 필요.

#<2010.11.30.화>

맷돌 운영체제 VMOS 의 신뢰성 향상.

맷돌 내부적으로 [치명적 오류/VMOS 오류] 발생시 처리 개선.
- 실행시 : 재기동 -> 약 3초 간 통신대기 -> 사용자 가상기계 실행.
- 검증시 : 재기동 -> 정지상태로 대기(사용자 가상기계를 실행하지 않음).

어떤 경우라도 오류(논리적/물리적) 발생시 자동적으로 재기동(검증시에는 정지) 되며,
항상 [맷돌-통합개발환경] 과 통신할수 있는 상태를 유지함.

신뢰성이 향상된 VMOS 사용을 위하여 맷돌에 운영체제 재설치 필요.

#<2010.11.24.수>

맷돌 운영체제가 전반적으로 [속도 향상] 되었음.
<VMOS>            : 100% 향상(이전에 비하여 2배 이상 고속화 됨).
<VMOS:AT45DB041X> : 20% 향상.

굳이 수학 API 를 사용할 필요가 없는 경우, 기본 VMOS 를 설치하면 가장 고속으로 맷돌을 구동 가능함.
이 경우 ROM:30K, RAM:16K 를 사용가능하며 모든 예제는 다 고속으로 실행 가능함.

고속화된 VMOS 사용을 위하여 맷돌에 운영체제 재설치 필요.

#<2010.11.12.금>

맷돌B(G.MTDL.B) 출시로 통합개발환경 도움말등 일부 내용 수정.

마법사 예제에 맷돌B(G.MTDL.B) 관련 내용 추가.
모든 예제는 맷돌A/B 모두 동일하게 사용 가능함.

[참고!!!]{----------------------------------------------------------------------
맷돌B(G.MTDL.B) 의 개발로 기존 맷돌(G.MTDL.A) 는 맷돌A(G.MTDL.A) 로 명칭이 변경되었습니다.
맷돌B 는 맷돌A 와 완전히 동일하며 모든 예제는 상호 사용이 가능합니다. 따라서, 맷돌의 모든 내용은
맷돌A/B 모두에 공통적으로 적용됩니다.
}------------------------------------------------------------------------------

#<2010.09.28.화>

가상기계를 만들때 일시적으로 [통합개발환경] 이 멈추어 Win7 계열에서 하얗게 되는 문제 방지.

#<2010.09.05.일>

[편집기] 에 <Ctrl> + [마우스 상/하 움직임] 만으로 줄이동 가능한 탐색기능의 키 조합을
<Ctrl + Alt> + [마우스 상/하 움직임] 으로 수정하고(다른 기능키와 간섭 배제), 민감도를 수정하였음.

#<2010.08.30.월>

맷돌28호 운영체제 2종류로 분화.

[맷돌28호(G.MTDL.A.RC28) : 일반형]
- Open-Drain I/O + VCCIO(5V/3.3V) 사용으로 5V/3.3V PWM 을 모두 출력 가능함.
- 단, Open-Drain 의 전류 유입으로 인한 다량의 "발열" 이 발생함(동작에는 지장 없음).
  내부 1K 풀업 저항을 사용하지 않고(VCCIO 에 아무것도 연결하지 않음) 4.7K 이상의 저항으로
  외부 풀업을 하는 경우 발열이 감소함.

[맷돌28호(G.MTDL.A.RC28) : 3.3V 전용]
- Push-Pull I/O 사용으로 3.3V PWM 출력만 가능함.
- RC 서보는 3.3V PWM 에서도 안정적으로 동작됨.
- 장시간 사용에도 발열이 거의 없으며, 안정적임.
- 단, "맷돌의 VCCIO 에는 아무것도 연결하지 않아야 함".
  이미 I/O 가 3.3V 전용으로 설정돼 있으므로 VCCIO 는 절대사용해서는 안됨.
- 74HC245 를 사용하여 5V PWM 으로 변환한 것을 사용해도 무방함(권장).

어느 경우라도, 자체 전원은 5V/3.3V 모두 사용 가능함.

OSX 의 식별자를 '문자상수' 에서 '16진 8바이트 값' 으로 변경함.


["맷돌28호 운영체제수정"]
특정 각도 단위마다 PWM 이 약간 떨리는 문제 수정(완벽한 PWM 으로 서보의 진동이 없어짐).
이전 사용자는 반드시 맷돌28호 사용시 최신의 운영체체를 설치하여 사용하기 바람.

#<2010.08.28.토>

[편집기] 에 <Ctrl> + [마우스 상/하 움직임] 만으로 줄이동 가능한 탐색기능 추가.

#<2010.08.14.토>

<OSX:G.MTDL.A.RC28> 의 가감속, 완료보고 등을 실제 각도변화량을 대상으로 계산하도록 수정.

맷돌28호에 "90도 위치 보정" 기능 추가.
영점0도/영점180도 뿐만 아니라 구형 아날로그 서보도 정확한 각도제어를 위하여 90도 위치 보정 기능 제공.
<맷돌28호-설정기> 도 이에 따라 GUI 가 수정되었음.

맷돌28호 API 의 도움말을 <*.h> 문서에 기술하는 것으로 수정.

MSG_DegSyncMove 의 명령구조가 변경되었으며, 이에따라 _GMTDLARC_DegSyncMove() API 변경.
관련 예제, 마법사 예제 등 수정되었음.

<VMOS:AT45DB041B> 구동시 AT45DB041B 가 완전히 초기화 된후 VMOS 가 구동되도록 수정.
전원등이 불안정한 상태로 시작하는 경우라도 확실하게 맷돌(G.MTDL.A)이 기동됨.

#<2010.07.19.월>

<OSX:G.MTDL.A.RC28> 의 FLASH 에 저장된 내용 복원 뒤 <Msg_MemSet> 명령 적용 오류 수정.

#<2010.07.17.토>

맷돌28호로 변신하기 위하여 OSX 설치후 자동으로 기본 설정값이 FLASH 에 기록되도록 수정.

#<2010.07.16.금>

맷돌28호 API 이름을 _GMTDLARC_Msg_XXX() => _GMTDLARC_XXX() 로 전부 수정하였음.

#<2010.07.10.토>

"VMOS 수정"
<OS:VMOS> 계열 모두 내부 새로운 핵심 명령 추가로 새롭게 만들어졌음.
맷돌(G.MTDL.A) 사용자는 반드시 새로운 운영체제를 설치하기 바람.

[가상기계] 설치후 [재기동] 없이 바로 [실행] 할수 있도록 수정.

"[가상기계] 전용 환경 추가"
PC 구동 [가상기계(*.gvms)] 와 맷돌(G.MTDL.A) 구동 [가상기계(*.gvmx)] 를 바로 읽어들여 실행할수
있는 기능 추가. 이전처럼 [설계묶음] 을 열 필요없이 바로 [가상기계] 를 설치/실행할수 있음.
이 경우는 [맷돌-통합개발환경] 이 [가상기계] 구동용 서버로 전환됨(개발환경의 모양이 변환됨).
{ 메뉴 : [가상기계] } 항목 추가.

맷돌28호(G.MTDL.A.RC28) 를 위한 [설정기] 를 PC 구동 [가상기계(*.gvms)] 로 [맷돌-개발환경] 에
내장하였음. { 메뉴 : [가상기계]->기계닉스 제공 PC 구동 [가상기계(*.gvms)] 모음 } 에서 불러들여
바로 실행 가능함.

#<2010.07.01.목>

4.5.16판 시작.

"<OSX:G.MTDL.A.RC28> 운영체제 추가"
맷돌(G.MTDL.A) 에 이 OS 를 설치하면 최대 28개의 RC 서보를 완전 독립적으로 동시 제어 할수 있는
전용 [서보 제어기] 로 변환됨(매돌-C 로 프로그램 불가).
{ 메뉴 : [맷돌변환]->[... ] } 에서 <OSX:G.MTDL.A.RC28> 운영체제를 설치할수 있음.
다시 <VMOS 계열> 운영체제를 설치하면 다시 원래 맷돌(G.MTDL.A) 로 변환할수 있음.
0도위치/180도 위치 전환가능, 최소 0.5도이하 분해능, 806400BPS 까지 통신지원 등.
<맷돌-C> 로 만든 전용 [설정기] 와 제어용 API 지원.

<G.MTDL.A.RC28> 용 [통합개발환경] 을 <맷돌-C> 로 개발하기 위하여 새로운 [그림부품] 과 관련 API 추가.

찾기 대화상자의 [찾기 문자열] 란에 문자열 추가시, 크기/행 제한 적용됨.
찾기 대화상자 호출시 선택된 문자열을 자동으로 찾기 문자열로 등록해줌.

[되돌리기/되살리기] 시 [선택영역] 이 있는 경우 제대로 동작되지 않는 문제 수정.

<Ctrl + 마우스굴림> 인 경우는 쪽단위로 이동하도록 수정.

#<2010.05.17.월>

내장 RC서보 제어기의 작은 각도 쪽의 가속구간 속도 계산 오류 수정.

가감속 속도 계산식 수정으로 보다 부드러운 가감속 구현.

#<2010.05.11.화>

[전광판] 기능이 Win7 에서는 동작이 느려져 동작 명령에 제대로 응답하지 못하는 문제 수정.
이 문제는 WinXP 계열에는 해당하지 않음.

Win7 계열에서도 보기 좋게 전체 모양을 수정하고 제목줄문자열이 제목줄의 중간에 위치하도록 수정.

#<2010.05.05.수>

<VMOS:기본> 과 <VMOS:AT45DB041B> 둘다 타이머 관련 수정되었음.

<API_Timer> 묶음에 <_Timer_단위주기_> API 추가로 보다 세밀한 타이머 조정이 가능.

[멜로디] 관련 예제를 실시간 [타이머] 사용으로 수정하여 OS 에 상관 없이 정확한 박자를 구현.
멜로디관련 예제의 모든 곡을 [전곡] 으로 수정하였음(실제 원곡 그대로 출력됨).
마법사의 [멜로디] 관련 예제도 타이머 사용으로 수정됨.

단일 문자열 길이를 최대 10K 바이트 까지 처리 할수 있도록 수정.

#<2010.04.30.금>

<API_Pwm> 묶음안의 <_Servo_XXX> 관련 API 의 생성자 크기 [22] => [26] 으로 수정.
여러개의 서보를 시간적으로 동기화 기동할수 있는 <_Servo_동조기동> API 추가됨.
<_Servo_속도_> API 의 [속도] 가 1 -> 2 바이트 크기로 수정됨.
전반적으로 RC 서보 제어기능이 향상됨.

[마법사] 에 8개 RC서보와 2개 DC모터를 동시 제어(L298 사용)할수 있는 고급예제 추가되었음.
2개 DC모터 주행부와 다수의 RC서보를 사용한 로봇팔을 가진 혼합형 로봇에 유용함.

#<2010.04.28.수>
"중요수정!!!"
[다차원 포인터] 를 "[]" 연산자로 [다차원 배열] 처럼 사용하는 경우 주소계산 오류 수정.

#<2010.04.22.목>

I2C, SPI, PWM, TIMER 관련 API 의 생성자 지정이 "배열 => 포인터" 로 변경되었음.

#<2010.04.21.수>

맷돌 운영체제의 속도가 부분적으로 향상되었으며 PWM:멜로디 관련 설정이 일부변경되었음.
PWM 관련 공급 주파수가 38.7072Mhz => 77.4144MHz 로 변경되었으며 API 도움말 수정됨.
관련 예제와 마법사의 예제 등이 수정됨.

#<2010.04.10.토>

GUI 함수중 통합개발환경 [최소/기본] 크기 조정 API 수정.

[맷돌가상구동/맷돌직접연결] 이 선택된 경우 [전광판] 이 자동 정지 하도록 수정.

[검증] 시에 통합개발환경이 작업표시줄에 있는 경우라도 [정지점] 에 도달한 경우는
자동으로 다시 원래 크기로 복구되어 [정지점] 이 설정된 행이 보여지도록 수정.

[맷돌가상구동] 의 [검증] 시에는 가상구동기용 VMOS 가 API 로도 정지되지 않도록 수정.

#<2010.04.08.목>

통합개발환경 [크기조정] 기능을 보다 단순하게 처리하여 처리 시간을 단축.

[설계묶음] 을 열때 갑자기 통합개발환경의 크기가 조정되는 등의 문제 수정.

#<2010.04.06.화>

3.5.16판 배포시작.

문서가 열려있는 상태에서는 [전광판] 이 보일수 없도록 수정.

기계닉스에서 최근 개발완료한 [그림부품] 을 위한 API 추가와 [가상구동기] 에 이의 지원을 위한 기능 추가.
[가상구동기] 에도 [이벤트] 기능 추가되었음.

이 기능은 아직은 기계닉스 전용 기능으로 편리한 도구를 제공해 주기 위한것임.
향후 [가상구동기] 를 독립시켜 [한국형-C] 로도 윈도우용 GUI 개발을 할수 있도록 할 예정임.
현재는 맷돌-통함개발환경에서만 실행 가능함.

G.M.RC.BASiC 제어용 간단한 GUI 예제 [설계묶음 마법사] 에 추가.

임시문서를 위한 <temp> 폴더가 삭제된 경우도 자동 생성되도록 수정.

#<2010.03.25.목>

다중 <switch...case> 안에서 단순 <if> 문 사용시 ASM 번역 오류 수정.

#<2010.03.24.수>

[설계묶음] 저장시 [함수묶음] 정보 정리 오류 수정.

#<2010.03.21.일>

최대 열수 있는 문서수 제한(40개).

{ 메뉴 : [설계묶음] } 의 [열기] 와 [저장] 사이에 분리줄 추가.
[열기] 하려다 [저장] 을 눌러 기존의 [설계묶음] 을 덮어쓰는 것을 방지.

#<2010.03.05.금>

문서당 <include> 될수있는 문서의 최대수 충분하게 증가.

#<2010.03.04.목>

[전광판] 을 보이지 않게 설정 후 다시 시작시 개발환경 동작 속도 느려지는 문제 수정.

#<2010.02.23.화>

[전광판] 기능 추가.
[편집기] 에 아무 문서도 열려 있지 않은 경우는 [전광판] 이 나와 문자열을 이동시켜줌.
사용자가 직접 문자열, 문자색을 지정 가능함.
기계닉스 차세대 [그림부품] 중 하나로 재미난 기능이라 넣어 보았음.
{ 메뉴 : [전광판] } 참고.

#<2010.02.17.수>

[편집기] 의 검증시 행 지정기능을 보다 단순하고 빠르며 직관적으로 수정.

#<2010.01.16.토>

[마법사] 에 포함된 모든 예제의 회로도와 내용이 일부 수정되었음(LED 를 P0 포트에 연결).

회로도자체의 맷돌 전원(5V/3.3V) 구성이 변경되었음.
첨부된 모든 회로도에 자세한 설명 추가 후 보기좋게 수정.

기계닉스의 맷돌 제품란의 [기본예제] 부분에 보다 자세한 그림설명 추가(회로도를 직관적으로 이해가능).
도움말에 [기본예제] 바로가기 추가.

#<2010.01.04.월>

[문자 LCD] 제어용 API 추가.
제공되는 예제의 회로도 대로 연결후 API 를 사용하여 간단하게 [문자 LCD] 를 제어할수 있음.
최대 20*4 문자 LCD 까지 모두 제어 가능함.

해당 관련 예제 추가.

<VMOS:AT45DB0410B> 운영체제 문자열 포인터관련 부분오류 수정.

새설계묶음 [마법사] 기능에 각종 [예제] 추가.

#<2009.12.28.월>

[재검증] 기능 추가.
[개발검증] 과 같은 [검증] 기능이지만 [가상기계] 를 설치하지 않고 바로 [검증] 단계로 넘어감.
[설계묶음] 의 내용이 수정되지 않은 경우는 굳이 계속 설치 하지 않고 바로 [검증] 으로 진행할수 있음.

[설계묶음] 이 수정되지 않은 경우는 [개발검증] 이나 [재검증] 으로 넘어 갈때 다시 빌드하지 않도록 수정.

#<2009.12.24.목>

맷돌 [운영체제] 및 사용자 [가상기계] 영역 보호기능 추가.

<VMOS:AT45DB0410B> 새로운 운영체제를 위한 AT45DB041B 와 맷돌(G.MTDL.A) 연결 회로도 추가.
{ 메뉴 : [설정]->[회로도[VMOS(AT45DB041B)]] } 참고.

<VMOS:AT45DB0410B> 의 AT45DB041B SPI FLASH 접근 속도 향상.

#<2009.12.23.수>

VMOS 초기화 부분 통신관련 수정/보완.

사용자 가상기계 설치/확인 독립 처리시 일단 VMOS 를 정지시키고 처리 하는 것으로 수정.
VMOS:AT45DB041B 의 새로운 운영체제 추가로 인한 것임.

#<2009.12.22.화>

[문장묶음], [문장] 해석 보완.

맷돌 운영체제 설치 관련 정보확인 항목 표시내용 자세하게 수정.
{ 메뉴 : [설정]->[맷돌 운영체제 정보 확인] } 참고.

통신포트 수신중 맷돌을 정지시키는 경우 맷돌과 [맷돌 통합개발환경] 간의 통신문제 보완.

쓰기 영역이 ROM 영역인 경우는 쓰기오류로 간주하도록 수정(맷돌이 정지함).

#<2009.12.20.일>

AT45DB041B 512K 바이트 SPI FLASH 를 사용자 ROM 으로 사용하는 새로운 운영체제 완성/포함.
SPI FLASH 의 특성상 실행 속도는 저하 되었으나 [수학 API] 를 전부 포함하고도 512K 바이트의 충분한
공간을 ROM 으로 사용가능하여 사실상 사용자가 만든 가상기계의 크기제한이 없어짐.
이는 AT45DB041B 를 제공되는 회로도 대로 연결하고 해당 운영체제를 [맷돌 통함개발환경] 에서 설치하면
바로 사용할수 있음.

이와 관련된 [맷돌 통함개발환경] 의 상당 부분이 수정 되었음.

#<2009.12.09.수>

맷돌 구동중 발생하는 [치명적인 오류] 의 경우에도 VMOS 를 복구/재설치하지 않고 모든 기능이 동작
되도록 VMOS [치명적 오류 처리부] 추가(어떤 상태라도 통합개발환경과 통신이 가능해짐).
[개발검증] 시에는 통합개발환경에서 해당 대화상자로 상태를 알수 있음.
[치명적 오류 상태] 시에는 자동적으로 VMOS 가 재기동하고 일단 정지상태가 됨.

[알림 대화상자] 의 모달속성으로 인한 간접오류 수정.

#<2009.12.08.화>

[반환형] 이 있는 함수는 반드시 [반환값] 을 가지도록 수정.

#<2009.12.07.월>

맷돌(G.MTDL.A)로 G.M.RC.BASiC을 자동 제작해 주는 [G.M.RC.BASiC 자동 제작기] 내장.
{ 메뉴 : [설정]->[G.M.RC.BASiC 자동 제작기] } 참고.

사용자는 이제 맷돌(G.MTDL.A)을 사용하여 G.M.RC.BASiC을 마음껏 만들어 사용가능함.

#<2009.12.05.토>

_SPI_생성2_(), _SPI_삭제2_() API 추가및 SPI 관련 API 일부 수정/보완.

#<2009.12.03.목>

_Print_문자열출력() API 추가.

#<2009.12.02.수>

SPI 읽기관련 API 함수 일부 수정.

#<2009.11.30.월>

맷돌의 통신포트에 연결된 G.M.RC.BASiC을 직접 설정하기 위한 [G.M.RC.BASiC 설정기] 내장.
{ 메뉴 : [설정]->[G.M.RC.BASiC 설정기] } 참고.

G.M.RC.BASiC 전용 통합개발환경의 설정 기능을 [맷돌-통합개발환경] 자체적으로 지원하게 됨.
G.M.RC.BASiC 설정을 위한 별도의 통신포트없이 맷돌에 연결된 상태로 모든 설정이 가능함.

[검증개발내용] 창의 수신문자열 용량 초과시 오류 수정.

#<2009.11.23.월>

G.M.RC.BASiC 을 간단하게 제어할수 있는 전용 API 추가.

#<2009.11.21.토>

<1.5.16판> 으로 확정됨(실제 실용판의 시작).

새롭게 맷돌(G.MTDL.A)에 내장된 [RC서보모터 제어기] 를 위한 [RC 서보모터 영점 조정기] 를 추가하였음.
{ 메뉴 : [설정]->[RC 서보모터 영점 조정기] } 참고.

#<2009.11.20.금>

수 KByte 단위 문자열을 사용하는 경우 발생 오류 등 수정.

#<2009.11.18.수>

PWM 장치 3 개 지원.
PWM 장치 1 개당 PWM, 서보제어, 멜로디출력 기능 중 동작기능을 설정가능함.

각 4 개의 PWM 채널 지원으로 총 12 개의 PWM 을 제어 가능함.
PWM 장치당 1 개의 멜로디 출력 기능 추가.

맷돌에 12 개의 RC-SERVO 를 완벽하게 동시에 독립적으로 제어할수 있는 기능 추가.
PWM 장치당 4 개의 서보를 제어가능함.
등속, 가감속, 가속, 감속등 4개의 속도제어 기능사용가능.
각각 독립적인 완료보고 시점 설정 기능및 각 서보당 완료보고를 알려주는 이벤트기능 추가.
전체완료보고 기능추가및 전체완료보고를 알려주는 이벤트기능 추가.
PWM 장치당 주기조정가능.
PWM 장치당 서보속도제어를 위한 속도상수 독립 설정가능으로 현존하는 모든 서보에 적합한 설정이 가능함.
G.M.RC.BASiC 계열의 서보전용 제어기보다 같거나 더 세밀하고 강력한 서보제어기능 탑재.

위 기능 추가에 대응하는 API 추가되었음.

#<2009.11.13.금>

최종 <*.gvmx> 설치시 크기오류 수정.
우연한 상황에서 발생할수 있는 문제를 수정한 것임.

#<2009.11.12.목>

<switch ... case> 문에서 default 가 사용되지 않은 경우 예외처리 오류 수정.

#<2009.10.22.목>

맷돌이 [실행 중지] 상태인 경우는 [이벤트] 가 발생하지 않도록 수정.
모든 [이벤트] 는 다시 맷돌이 실행중일때만 동작됨(이는 검증때도 그대로 적용).

#<2009.10.21.수>

API_Timer 계열 API 추가.
VMOS 가 10ms 분해능의 8개의 [타이머] 를 지원하게 됨.

VMOS 크기 증가로 사용자 사용 <ROM> 의 크기가 기존 보다 1K 바이트 감소함.

#<2009.10.15.목>

검증시 <문서목록> 이 펼쳐져 있는 경우 <행지정상자> 의 위치변화 수정.

문법 오류시 출력되는 알림문자열 내용 수정/보완.

#<2009.10.10.토>

API_Print 계열 API 추가(맷돌 전용).
값을 해당 문자열로 변환하여 지정 통신포트로 출력하는 기능으로 검증시 편리한 기능임.

#<2009.10.08.목>

"&" 연산자의 [구조체/공용체 배열] 의 경우 연산 결과 오류 수정.

#<2009.10.06.화>

bool 의 경우도 색동문자 적용되도록 수정.

#<2009.10.06.화>

생성된 가상기계의 크기가 설치장소보다 큰 경우 자세한 정보 출력되도록 수정.

#<2009.10.04.일>

<정보창> 에서 항목의 문자열이 너무 긴 경우는 자동으로 문자열의 길이가 조정되도록 수정.

#<2009.10.03.토>

<0.5.16 판> 출시.

<맷돌(G.MTDL.A)> 모듈을 개발완료에 따른 <맷돌(G.MTDL.A)> 지원용 <0.5.16 판> 으로 새롭게 개발되었음.
비로소 실제 <맷돌(G.MTDL.A)> 을 지원하는 진정한 <맷돌 통합개발환경> 이 되었음.

<맷돌(G.MTDL.A)> 지원을 위하여 <맷돌직접연결> 기능 활성화.
이 기능을 활성화 하는 경우 자동으로 통신포트가 열림.

<맷돌(G.MTDL.A)> 을 지원하는 수많은 API 추가.

<맷돌(G.MTDL.A)> 의 <64BiT 가상기계형 운영체제 VMOS> 를 설치하는 기능 추가.
일반형 운영체제와 수학 API 를 지원하는 운영체제 두 가지중 사용자가 선택하여 재설치 가능.
향후 보다 향상된 운영체제를 자유롭게 설치할수 있음.

현재 운영체제 판번호를 확인하는 기능 추가.

<맷돌가상구동> 에서 지원되던 API 중 일부가 <맷돌(G.MTDL.A)> 에서도 사용 가능한 공유 API 로 변환되었음.

통신상태를 알려주는 LED 부품 추가.

<맷돌(G.MTDL.A)> 에서 통신포트로 송신하는 문자열을 간단하게 수신해서 볼수 있는 별도 통신기능 추가되었음.
이는 <알림창:개발검증내용> 을 선택하면 해당 통신포트설정기능이 활성화 됨.

<정보창:설계정보> 의 처리 용량이 무한대로 증가 되었음(대규모 정보를 가진 프로그램도 대응함).

실제 <맷돌(G.MTDL.A)> 을 지원하기 위하여 검증기능 등 부분적으로 수정되었음.

출력창에서 마우스 가운데 버튼을 누르면 출력창을 비울수 있음.

#<2009.07.10.금>

_Ide_통신포트_XXX 함수군이 내부적으로 보다 효율적으로 수정되었음.
따라서, 해당 함수들의 사용법과 도움말이 약간 수정되었음(함수자체는 동일).
수신처리 관련 함수들은 보다 사용이 편해지고 강력해 졌음.

#<2009.07.03.금>

[3.0판] 으로 보완되었음.

_Ide_통신포트_XByte입력_() 통신함수 API 추가.

#<2009.06.03.수>

[2.0판] 으로 발전하면서 많은 개량과 보완이 이루어졌음.
이제야 좀 제대로된 모양과 기능을 갖추게 됨.

[설계묶음 마법사] 기능 추가.
이미 여러 목적에 따라 완성된 [설계묶음] 을 선택하는 것 만으로 사용자가 지정한 경로에 자동으로
해당 [설계묶음] 을 완성해 주고 기본 구성해 줌.
처음 접하는 사용자에게 큰 도움이 될 것임.
향후 보다 다양한 종류를 지원할 예정임.

[API] 정보창 추가.
기계닉스에서 제공하는 [맷돌-C] 용 API 를 열람하고 사용자 [설계묶음] 에 추가할수 있는 기능 추가.
각각의 항목을 선택하면 해당 설명문서를 볼수 있음.

/* ... */ 묶음주석도 [색동문자] 기능 지원함.

[함수묶음] 용 설명문서인 <*.gtxt> 문서형식 추가.
각각의 [함수묶음] 의 자세한 설명을 볼수 있음.

정보창의 [빠른목록] 에 보다 다양한 조정 기능 추가.

[설계묶음] 에 등록된 [함수묶음] 을 사용하기위한 <함수묶음.h> 문서 자동 생성기능 추가.
사용자는 [함수묶음] 을 사용시 일일히 해당 <*.h> 를 추가할 필요 없이 자동생성되는 <함수묶음.h>
문서만 <*.c> 등에 추가하면 됨.
등록된 [함수묶음] 이 추가/삭제되는 경우도 항상 <함수묶음.h> 문서가 자동 생성되므로 사용자는
내부 내용 수정에 신경쓰지 않아도 됨.

[새문서] 를 만들고 저장시 확장자가 <*.c>, <*.h>, <*.gtxt> 인 경우는 바로 [색동문자] 기능 활성화.

문법검사(Alt+F9), 만들기(Ctrl+F9) 단축키 기능 추가.

[수정이력] 추가시 수정내용이 너무 큰 경우 인식하고 걸러내는 기능오류 수정.

지원 API 함수이름 규칙 변경및 함수단위로 개별 지원.
마치 함수를 하나의 기계부품 처럼 사용하기 위한 것으로 함수 한개가 한개의 [함수묶음] 으로 지원됨.

강력한 기본 [수학함수] API 지원및 기본 문자열 처리 API 등 지원(API 정보창 참고).

"통신포트" 를 "설정대화상자" 에서 열지 않고 API 만으로 열고 닫을수 있도록 수정.


#<2009.05.25.월>

signed 즉, 부호있는 변수의 경우 "음수" 처리시 작은 값을 큰 공간으로 할당하는 경우 "음수" 가
유지 않는 문제 수정.

"편집기" 에서 잘라내기, 붙이기, 선택영역의 삭제등의 처리 후 <Key-Up>, <Key-Down> 등을 사용하는
경우 "입력지정자" 의 위치를 보다 정확한 위치게 있도록 수정.

API 내장 함수의 이름규칙 수정.
API 함수는 [한글/영문] 이름 모두 선택 사용가능하도록 <*.h> 문서 수정.


#<2009.05.22.금>

편집기 "제목줄" 을 선택하면 "문서목록" 이 보이도록 수정.


#<2009.05.21.목>

문서이름의 "대/소문자" 구분으로 인한 중복 문서 열기 수정.
goto 의 라벨이름 인식문제 수정.
"선언과 동시 초기화" 를 지원하지 않음을 알리는 알림정보 추가.


#<2009.05.14.목>

"문자열", "문자상수" 에 사용된 "제어문자" 인식오류 수정.
\\, \n, \0, \", \', \r, \t

최소크기 유지기능 추가.

"찾기/교환 대화상자" 에서 입력지정자가 동시에 나오는 문제 수정.


#<2009.05.13.수>

통합개발환경에서 PC 직렬통신포트에 접근하는 API 함수이름과 내용이 수정됨.
포함된 예제도 같이 수정되었음.

문법검사시 중복 이름으로 인한 무응답문제 해결(맷돌-C).


#<2009.05.10.일>

[맷돌 - 통합개발환경] 0.1판 을 G.M.RC.BASiC 와 일반 제어용으로 처음 출시.
G.M.RC.BASiC 을 위한 PC 에서 제어 하기 위한 "통신포트" 관련 API 를 지원함.
일반 ANSI-C 와 동일한 수준의 문서작성으로 PC 에서 기본적인 제어를 바로 수행해 볼수 있음.

