Childhood coding fun

 

Here’s a list of study programs I’ve worked on since 1991.
They might seem small or simple, but each one helped shape me into the developer I am today.

* Not all the demos include source code.

 

 

 

Contents

  1. MS Visual C++ Addin - IDE Helper
  2. A Networked 3D-Tank Game
  3. A Ladder Game
  4. AURA(Audio Rapper) - Realtime Sound Mixer
  5. Robot - 프로그래밍의 개념을 위한 교육용 인터프리터
  6. Xkin - Internet Explorer 위한 Skin 소프트웨어
  7. LiquidNet - 멀티 프로세서 지원 비동기 네트웍 통신 모듈
  8. LiquidNet - 응용한 파일 전송 모듈
  9. SMLL - Simple Memory Leak Locator
  10. Grade Manager For Students
  11. Anti-Aliased Image Stretcher Using Bi-linear Interpolation
  12. Software-Exhibition Introducing Software
  13. Technical Graphics Programming Demo
  14. External-QuickSort For A Lage Data Using PVM(Parallel Virtual Machine) 3.0 on ATM (155Mbps) Network
  15. TinyShell 2.20 - A Shell Program For The Executables
  16. D - File Lister
  17. 전시회 안내 프로그램
  18. Check
  19. DEX
  20. Fortune

 

* File Unlocker
Sometimes there are files which cannot be deleted, because of some application that opens and still uses them. This finds out the processes that opened the files, and forces to close the opened file handles. So you can remove the files in result. But, you must be notified that to force to close the file handle from another application, can cause undefined critical problems to the software.

* Running Module Lister
Displays all the system processes with paths and internal modules with reference counter. You can see what the process owns(loads) what modules. If you need to replace or delete some DLL and it is being used by some other application, you may want to know what the process has it. You can find the information from the display output. This uses the standard console, so you can redirect the output into the file.

* ProEngineer Wildfire's protk_unlock.exe
Cracked wait-time from 15mins to 3secs.

* Keyboard Typer 1.0
Even until now, some DOS applications require step-by-step input from user for menu handling. This is useful for that case. It types a text in any software.

 

Process Raker 1.0

프로세스들을 한번에 정리 하고자 사용한다. 웜바이러스나 여러가지 이유로 없는 프로세스들이 생성되거나, 죽일 없는 프로세스들이 있는 경우 깔끔하게 정리할 있다.  , 바이러스에 의한 프로세스를 제거하는 경우, 이것을 이용하는 것은 임시방편일 뿐이므로, 반드시 백신을 통해 레지스트리나 하드디스크에서 완전히 제거하여야 한다.

console용이며 실행하면 다음과 같은 메시지가 출력된다:

Process Raker 1.0, jhkim/GEOMania.com

usage: C:>rake.exe {authorized_process_list_file} {c|r}

 

C:>rake.exe list.txt c     ; 현재 프로세스 목록(list.txt) 생성한다. 태스크메니저에서 안보이는것들도 포함된다.

* list.txt 인증된 프로세스 목록??/span> 의미하므로, 불필요한 프로세스들을 notepad등을 통해 삭제한다.

C:>rake.exe list.txt r      ; 인증된 프로세스목록에 포함되지 않는 모든 프로세스를 강제 종료 시킨다.  태스크메니저에서 종료되지 않는 서비스등의 프로세스도 강제종료되므로 주의하여야 한다.

 

 

 

MS Visual C++ Addin - IDE Helper

비주얼 스튜디오 통합환경의 Addin으로써 개발자의 편의를 위한 몇가지 기능을 지원한다:

  • 소스파일과 해당 해더 파일간의 전환
    - CTRL+SHIFT+Q
    누르면 소스파일과 헤더파일간을 전환해 준다. ( cpp,cxx,c  <==> h )  Popup메뉴의 Open document 기능이나 Wintab등의 tab 눌러 전환하는 것보다 편리하겠죠?
  • 자동 코멘트 기능
    -
    코드를 셀렉션한 ??/span> 참고화면의 번째 아이콘인 '/**/' 누르면 셀렉션된 부분을 자동으로 쉬운코멘트 처리 해준다. 만일, 셀렉션한 부분에 이미 코멘트가 들어있으면 자동으로 코멘트를 제거해준다.  코드를 셀렉션하지 않고 누르면, 캐럿이 있는 부분이 한줄 코멘트 처리되며 마찬가지로 한줄 코멘트가 있는 부분에서 누르게되면, 코멘트가 제거된다.
  • 닫기 기능
    -
    번째 아이콘인 'x' 누르면, 현재 활성화된 창을 제외한 나머지 창들을 모두 닫아준다. 저장하지 않은 부분이 있으면 저장 여부를 묻는다.
  • 중괄호 찾기 기능
    - '{'
    '}' 마우스로 셀렉션하고 마지막 아이콘인 '{}' 누르면, 짝이 맞는 중괄호의 위치로 이동한다.
  • 트루컬러 설정 기능
    - Visual Studio
    색상에서 트루컬러의 설정이 가능토록 한다.
  • 대소문자 변경 기능
    -
    선택한 블럭의 문자열을 반대의 / 문자로 변경한다.
  • 소스코드 디렉토리 탐색 기능
    -
    현재 열려있는 파일이 위치하는 디렉토리로 탐색기를 띄운다.

< 참고화면 >

  • ATL DLL 제작됨.

Installation:

    1. C:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns 다운받은 DLL 복사해 넣는다.
    2. Visual Studio IDE 메뉴에서 Tools->Customize->Add-ins and Macro Files 선택하고, PSAddin.DSAddin.1 check 한다.

 

 

A Networked 3D-Tank Game

  • A 3D-Tank(shooting) game using OpenGL. It supports 2 networked players using TCP/IP.
  • It plays background-music using Realtime Sound Mixer(AURA) which I had been developed.

1999 컴퓨터 학술 동아리 '씨애랑' 정기 전시회 출품작

Recommended: P2 400Mhz with 64Mb Memory, 16Bit Soundcard, OpenGL accelerator on Win98 and WinNT 4.0

[Click the picture for detailed information]

 

 

 

A Ladder Game

  • 최대 8인까지 플레이 가능.
  • Realtime Sound Mixer 'AURA' 초기 버전인 'WaveMixer' 사용.
  • 배경음악과 효과음을 동시에 출력하여 게임의 흥미를 .

1998 컴퓨터 학술동아리 '씨애랑' 정기 전시회 출품

시스템 권장 사양: Pentium 100Mhz 이상, 32Mb Mem 이상, 16Bit SoundCard

 

 

 

AURA(Audio Rapper) - Realtime Sound Mixer

  • Realtime audio stream mixer.
  • Supports 11, 22, 44.1khz mono/stereo mixed wave formats.
  • Supports 32 Virtual Channels, 16 Sub-Channels per one Virtual Channel.
  • 16bit output.
  • Runs in multi-threaded environment.
  • Distributed in DLL.

1999 컴퓨터 학술동아리 '씨애랑' 정기전시회 출품

AURA 대한 자세한 설명이 있는 PDF 자료 (White Paper)

 

 

Robot - 프로그래밍의 개념을 위한 교육용 인터프리터

  • 컴퓨터 프로그래밍을 처음 배우는 학생들의 개념을 잡는데 도움을 있도록 개발.
  • GOTO, LEFT, RIGHT, MOVE, STOP, IF 문을 제공, 프로그램 동작 이해.

한림대학교에서 C 배우는 '컴퓨터 프로그래밍 I' 과목의 시간에 이것을 사용했었다.

 

 

Xkin - Internet Explorer 위한 Skin 소프트웨어

  • 스킨을 Explorer 적용.
  • SHOW/HIDE단추에서 스킨의 visibility stretching 설정 제거.
  • HOME GALLERY ?報蔘?/span> 통해 원하는 링크로 이동.

[여기] 눌러 바로 XKin 실험해 보실 있습니다. 주의하실 것은, 누르기 전에 Explorer 보안레벨을 최하로 설정해 놓아야 한다는 겁니다. (시간상 아직 safety 설정을 하지 못했거든요)

 * Netscape 지원하지 않습니다.

 

 

  

2000

LiquidNet - 멀티 프로세서 지원 비동기 네트웍 통신 모듈

설명: LiquidNet TCP/IP 지원하며 비동기로 동작하도록 설계되어 있다. 멀티 프로세서를 지원하여 효과적으로 네트웍 이벤트를 감지하도록 설계되어 있다. LiquidNet Win32 platform에서 동작하며, 현재 NT 5.0(Win2000) 이상의 platform 전용으로 서버용 모듈(LiquidNetHP) 제작중이다. 이것은 NT 5.0 이상의 시스템에서 제공하는 I/O Completion Port 모델을 적용시켜 오직 시스템의 성능만이 동시접속수에 영향을 주게 된다.

 

LiquidNet - 응용한 파일 전송 모듈

설명: LiquidNet 이용하여 원거리에 비동기로 파일을 전송 가능한 모듈. 예측하지 못한 상황으로 비정상적인 연결종료가 있었을 끊어진 부분부터 다시 전송 하는 기능 지원.

 No image prepared.

 

 

2000

SMLL - Simple Memory Leak Locator

설명: C/C++ 프로그래밍시 할당한 메모리의 부적절한 해지나 실수로 해지하지 못한 상황을 발견해 주는 간단한 도구임.

자세한 설명:


기존 C/C++ 문법을 그대로 사용하실 있습니다. ?六?/span> 함수: new, new[], delete, delete[], malloc(), calloc(), realloc(), free() 함수들을 평소대로 사용하시면 됩니다. 어디에서 선언한 변수가 제대로 해지하지 못해 얼마만큼의 크기가 낭비되었는지를 알려주고, 적절치 못한 해지를 시도했을 경우 어디서 선언한 것을 어디서 해지하려 했으며 적절한 해지방법은 무엇이었는지, 이미 해지되거나 할당되지 않은 포인터를 해지하려 했을 등의 정보를 알려줍니다. Multi-thread환경에서도 적절히 돌아갈 있도록 설계되어있습니다. 다만 문제는 MFC macro 충돌을 일으키는데, 이것을 해결하지 못한 상태로, 저와 비슷한 작업을 하는 Simon P. Bullen 이라는 사람이 작성한 Fortify 2.2라는 도구도 같은 에러가 발생해 문의를 놓은 상태입니다. 하지만 지금 것도 MFC 사용하지 않는 프로그램이나 MFC에서 가지 macro 제외한 곳에선 돌아갑니다.


실행환경: Visual C++ 5.0 이상

No image prepared.

 

 

1998

Grade Manager For Students

설명: 학생들의 성적을 관리해 주는 실험용 프로그램. 인터페이스는 DOS 시절에 유명했던 Borland C++ IDE 동일하게 구성했다. 특히 Borland사의 -다운 메뉴는 멋있기로 유명했는데, 그것과 동일한 기능을 하는 pulldown 라이브러리를 제작하여 적용했다. <컴퓨터 학술 동아리 '씨애랑' 정기 전시회 출품 >

실행환경: MS-DOS 5.0 이상

 정말 BC 닮았죠?  특히 메뉴처리기를 구성하는데 수개월 고생했답니다.

 

 

1997

Anti-Aliased Image Stretcher Using Bi-linear Interpolation

설명: 이미지를 확대할 발생하는 모자이크 현상(Pixel-Aliasing Effect) 제거하기 위해 이미지를 선형보간한다. <컴퓨터 학술 동아리 '씨애랑' 정기 전시회 출품작>

실행환경: MS-DOS 5.0 이상

제작환경: Borland C++ 3.1

실행방법: C:\>lz orchid.pcx

 

 

 

1996

Software-Exhibition Introducing Software

설명: 대전 엑스포에서 엑스포를 소개해주는 소프트웨어를 본적이 있다. 그것을 것으로, 동아리에서 개최한 소프트웨어 전시회를 소개하는 안내 소프트웨어를 제작한 것이다. 프로그램을 종료할 없도록 만들었다. Ctrl+Alt+Del키로 부팅도 없도록 만들어 놓았다. (윈도우즈에서는 종료가능)

실행환경: MS-DOS 5.0 이상, Standard VGA

제작환경: Turbo Pascal 6.0

 

 

 

1996

Technical Graphics Programming Demo

설명: 고등학교때 'Future Crew' 'Complex' 특히 유럽인들의 활동이 두드러지는 Contest 있었다. Contest 특수한 그래픽과 환상적인 사운드를 자랑하는 Demo 프로그램들의 대회였다. 특이한 것은 계속되어지는 특수한 그래픽화면이 모두 C Assembly 작성되어진 실시간 Renderer 만들어지고 있다는 것이었다. 사운드도 실시간인건 마찬가지다. 대회는 세계의 젊은 프로그래머들을 대상으로 자신(그룹)들의 실력을 신선하고 독창적인 아이디어와 그래픽, 사운드를 통해 마음껏 펼치는 공간이었다. 유명한 Contest에는 'Party' 시리즈와 'Assembly' 있으며 매년 열리고 있다. (유사한 Contest들도 많이 있다.)  현재는 GUI 기본인 Windows 시대가 도래해, 많은 것이 부족했던 DOS시절에 온갖 기술들로 묘기를 부려야 했던 때와는 달라, 그런 무수한 테크닉들이 필요없게 되어 버렸지만 아직도 많은 사람들은 그때의 흥분되던 시간을 기억한다. 본인도 너무나 그것을 해보고 싶어서 부족한 실력으로 Demo 만들어 보았다. <컴퓨터 학술동아리 '씨애랑' 정기 전시회 출품>

실행환경: MS-DOS 5.0 이상, Standard VGA

제작환경: Turbo C++ 3.0, Turbo Pascal 7.0

실행방법: C:>rundemo

 

같은 의미로 1997년에 Sound 첨가한 간단한 Intro 프로그램을 만들었다. <컴퓨터 학술동아리 '씨애랑' 정기 전시회 출품>

실행환경: MS-DOS 5.0 이상, Standard VGA, SoundBlaster 2.0 이상

제작환경: Turbo C++ 3.0

 

 

 

1996

External-QuickSort For A Lage Data Using PVM(Parallel Virtual Machine) 3.0 on ATM (155Mbps) Network

설명: 1학년때 고성능 통신 연구실에서 분산처리를 실험한적이 있었다. 대상으로 엄청난 규모(목표 1GB) 데이터를 정렬하는 것으로 하였다. 실제 실험은 40MB 데이터를 가지고 했다. FreeBSD에서 PVM 이용해 당시 괜찮은 시스템이었던, Pentium 166Mhz(64Mb Mem) 대를 가지고 실험을 했는데, 로컬 네트웍이었지만 시스템간에 전송되는 자료가 너무 전송속도가 병목이 되었다. 병목을 없애기 위해 ATM 장비를 연결하였다.  그러나 결과는 120% 성능향상이 있었을 뿐이다. 실제적으로 150% 넘기기를 기대했었다.

 No image prepared.

 

 

1994

TinyShell 2.20 - A Shell Program For The Executables

설명: DOS 시절의 컴퓨터 초보 사용자를 위한 작은 유틸리티로써, 어디서든 'T' 입력하면 현재 디렉토리나 지정 디렉토리의 실행 가능 파일들만 보여 주며 , 그중 하나를 선택하면 프로그램을 대신 실행해 준다. 실행시 메모리를 전혀 차지 하지 않으며 실행전 자동으로 백신 프로그램을 이용해 바이러스 검색을 해주기도 한다. 인터페이스가 당시 유행하던 Norton Utility 같아 매우 깔끔했다. <PC-WORLD 1994 3월호에 소개>

제작환경: Turbo Pascal 6.0

 

 

1992-1995

D - File Lister

당시 본인이 알고 있는 거의 모든 기술들을 집합한 프로그램임. 시스템의 각종 정보 얻기, 빠른 화면 출력속도(주로 스크롤 속도) 위한 최적화된 비디오 제어 코드, QuickSort 각종 알고리즘 효과적인 자료구조 설계, 명령행과 초기화 파일 Parsing 알고 있는 기술들을 모두 적용했습니다.

설명 (포함된 도움말 ):

'돋보기' 필요한 알짜배기 기능과 가지 색다른 기능을 내장한 편리하며 속도도 빠른, DIR 대체 유틸리티입니다. 특징은 이와 같습니다. 첫째, 출력 속도가 빠르다. 일반적으로 Dir보다 빠른 속도를 내며 파일의 갯수가 100여개 이상일 경우 Dir과는 현격한 속도의 차이를 보입니다. (실예: CD-ROM 1057 파일목록 출력시 Dir 평균 8.3, 돋보기는 평균 1.2초의 기록. , 기록은 시스템에 따라 달라질 있음. 테스트기종: 2배속 CD-ROM Drive, 486DX2-50, OAK VGA) 둘째, 간단한 지우기, 보기 기능이 지원된다. 셋째, 자동 판별 실행 기능이 지원된다. 넷째, 간단한 Shell 내장하고 있다. (생략)

자세한 도움말은 다운로드하여 포함된 도움말 파일(dbginfo.txt, 조합형) 보십시오.

제작환경: Turbo Pascal 6.0

돋보기 초기버전

 

 

1993

전시회 안내 프로그램

설명: 고등학교 1학년 학교 축제 전산부에서 전시회를 열었다. 우리 동아리와 축제에 참가하고 있는 다른 동아리들을 소개하는 프로그램이다. 프로그램을 종료하려면 Scroll Lock On시키고 'Q' 키를 누름.

제작환경: Turbo Pascal 6.0

실행환경: Standard VGA



 

 

 

Check

File Allocation Unit 때문에 낭비되는 디스크 용량을 통계 내어 준다.

No image prepared.

 

 

DEX

디스크에서 모든 불필요한 파일들을 확장자로 구분하여 삭제 해준다. 파일의 타입은 사용자가 정의할 수도 있다.

No image prepared.

 

 

Fortune

FreeBSD에서 login 때마다 항상 보여지던 각종 격언들을 DOS 그대로 porting 것이다. FreeBSD 데이터를 DOS에서 그대로 사용할 있다. FreeBSD에서 사용되는 매우 방대한 격언이 담긴 문서를 당시의 작은 메모리 용량으로 읽어들일 없?該?/span> 때문에, 별거는 아니지만, 전체 내용에서 임의의 위치에 있는 내용을 빠르게 뽑아내어 보여주는 루틴이 중요했음.

No image prepared.

 

 

 

Reverse Engineering

 

l  CAITA CAA V5 R9 GA: JS0GROUP.DLL cracked

 

l  IntelliSuite / IntelliFab 7.3 cracked

 

l  Fish Screen saver (cracked)

사진은 아시는 분들은 아는 스크린 세이버다.  너무나 사실적이어서 바로 다운받았지만, 데모버전이었고 그래서 중간에서 조금 오른쪽에 있는 노란 물고기 마리만 화면에서 헤엄쳐 다니고 있었다. 너무 이뻐서 사고 싶었다. 그러나 20달러가 주머니에 없던 터라 한번 크랙을 시도해 보았다. softice win32 어셈블러 그리고 바이너리 에디터를 사용하였고, 20 달러짜리 디럭스버전으로 크랙하였다.

 

 

l  Lemmings 1 (unlock), 1992

                      Lemmings ===--- UnProtect


*
사용방법
  
먼저 주위의 레밍스게임을 소지하고있는 누구에게나 3장의 원본을 복사하
  
십시오. 프로그램은 디스켓 프로텍트는 깨지 않기 때문에 하드디스크
  
있어야 하고 복사시 COPYWRITE 같은 특별한 유틸리티 필요없이
  PCTOOLS
같이 기본적인 복사프로그램으로 복사하여도 좋습니다.
  1
디스크에있는 INSTALL.EXE프로그램을 실행시켜서 자신의 하드디스크에
  
설치한 실행해 보십시오. 아마 A드라이브를 읽다가 도스로 빠저 나올것
  
입니다. 빠저 나왔으면 설치한 디렉토리에다가 프로그램을 복사하고
  
시키십시오. 그후 다시 레밍스를 실행시키면 A드라이브를 읽지 않을것
  
입니다.

 

l  Little Big Adventure(LBA) : Saved Data Editor (edits character's properties),  I used Turbo Pascal 6

고등학교 시절에 했던 오래전 게임이라 기억하는 사람이 있을지 모르겠지만, 당시 PC용으로는 상당히
고품질의 3D 어드벤처 게임이었으며 시초격이었다. 상당히 아기자기하고 깔끔했던 게임이다.
게임에서 유리한 상황을 만들어 보고자, 저장된 바이너리 데이터 파일을 PCTOOLS 이용해 분석하였고,
과정에서 찾아낸 설정값들을 쉽게 변조하고자 프로그램을 제작하였다. (당시 이러한 프로그램들이 유행이었다.)
아래 프로그램으로 데이터를 수정하면, 절대 죽일 없??/span> 같았던 코끼리도 한방에 죽일 있었다!

 

 

Something more trivials :)

 

Numerical BaseBall Game (JAVA Applet)

 

 배경음악과 효과음이 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 


Hangman (JAVA Applet)

 

 

 

 

 

 

 

 

 



 

 

 

아래 프로그램들은 Basic으로 처음 프로그래밍을 접할 만들었던 것들을 간추려 놓은 것입니다.

 

디스켓 매거진 - 많은 디스켓들을 관리해 주는 데이터베이스 프로그램

* A: 드라이브의 디스켓에 데이터베이스 파일을 생성하는 화면

* DM 처음 화면

* 메뉴 방식을 지원함

 

 

 

그래픽 에디팅 프로그램

 

 

 

피아노 프로그램 - 음악을 연주하고 기록할 있다

* 기본 옥타브 설정 화면

* 기본 화면

 

 

 

경마 게임 - 말에 돈을 걸고 내기를 있다

* 말들이 달리는 장면 (원래 박스형태인데, W2k에서 T자로 보이네요..)

* 게임이 끝난 결과 화면

 

 

 

의미 없는 타이머 프로그램

1991년경 베이직을 배우는 초반에 그냥 만들어본 (거의) 번째 나의 습작.

하지만 간단한 가지 게임도 지원되고, 프로그램의 로직을 많이 익히게 했던 프로그램.

중학교때라 영어가