원본 : http://kkamagui.springnote.com/pages/416259
내가 만든 간단한 그림판 형식의 메모장 프로그램이다. 메모를 생성하고 삭제하는 기능을 가지고 있으며, 메모 보기 기능도 갖추고 있다.
libfat를 사용하여 디스크에서 직접 데이터 파일을 사용하며 데이터 파일을 백업하여 데이터를 보존할 수 도 있다.
사실 KKAMAGUI NOTEPAD 프로그램을 만들면서 NOTEPAD 프로그램을 개발하는 시간보다 윈도우 MFC 구조와 비슷하게 클래스를 구성하고 코딩하는 시간이 더 많이 걸렸다. UI에 전혀 소질이 없는지라... 출력물은 좀 엉망이지만... 조금만 손보면 그럴듯하게 바꿀 수도 있을듯....
아래는 실행한 화면이다.
<시작화면(좌측)과 메모를 입력하는 화면(가운데), 그리고 메모를 보는 화면(우측)>
KKAMAGUI NOTEPAD는 아래와 같은 특징을 가지고 있다.
KKAMAGUI NOTEPAD의 기능은 아래와 같다.
===>
===>
<연필 모드(좌측)과 지우개 모드(우측)>
===>
===>
<첫번째 메모 화면(좌측)과 두번재 메모 화면(우측)>
메모장을 구현할 때 프로토타입(Prototype)을 만드는데 너무 열중하다 보니, 데이터 파일에 데이터를 저장하는 방식이 조금 이상하다.
데이터를 저장할때 한바이트의 플래그 바이트와 나머지 6Kbyte 화면정보를 연속해서 저장하는 방식으로 동작한다. 데이터가 써지면 플래그 바이트를 0x01로 설정하고 메모가 지워지면 플래그 바이트를 0x00으로 설정하여 빈 공간임을 표시하는 것이다.
메모의 추가 및 삭제가 여러번 반복되면 중간 중간에 플래그 Byte가 0x00 인 부분이 생기게된다. 메모가 추가되면 플래그 Byte 중에 0x00으로 설정된 제일 첫번째 것을 찾아서 해당 위치에 데이터를 추가하고 플래그 바이트를 0x01로 설정한다.
이렇게 동작 하기 때문에 메모가 데이터 파일에 저장되는 순서하고 메모가 기록된 시간적 순서하고 일치하지 않는 문제가 있는데, 메모를 빼먹지는 않으므로(ㅡ,.ㅡ;;;) 그렇다는 것만 알고 넘어가자.
Programmer's Notepad 2 프로그램을 이용할 시에는 Notepad.pnproj 파일을 열어서 컴파일 및 링크하면 되고, 콘솔(cmd.exe)을 사용하는 경우에는 make를 입력하거나 makefile.bat를 더블클릭하여 실행하면 된다. 자세한 방법은 00 NDS 개발 킷(Devkit Pro) 설치 문서를 참조하자.
컴파일 및 링크가 정상적으로 끝나면 Notepad.nds 파일이 생성된다. 에뮬레이터나 디스크에 넣어서 직접 NDS에서 실행하면 된다.
•