Welcome to My World (www.dgmayor.com)

dgmayor 276

12. 인터럽트 IDT 구현

https://github.com/SIMHANGSUB/HoGoS/tree/master/10 10 ~ 13강 소스코드입니다. -------------------------------------------------------------------------------- 저번에 설명했듯이 인터럽트를 구현하기 위해서는 크게 3단계를 구현해야 합니다. 1. PIC 셋팅 ( 하드웨어 셋팅 ) 2. IDT ( 전에 구현했던 GDT와 같은 종류 ) 3. ISR ( 실제 인터럽트 발생 시 실행되는 코드 ) 요번 포스트에서는 저번에 IDT 선언에 이어 실제로 구현해보도록 하겠습니다. 당장 interrupt.c를 만들어 다음과 같이 작성해봅시다. 1 2 3 4 5 6 7 8 9 10 11 #include "interrup..

11. 인터럽트 - IDT 선언

https://github.com/SIMHANGSUB/HoGoS/tree/master/10 10~13강 소스코드입니다. -------------------------------------------------------------------------------- 저번에 설명했듯이 인터럽트를 구현하기 위해서는 크게 3단계를 구현해야 합니다. 1. PIC 셋팅 ( 하드웨어 셋팅 ) 2. IDT ( 전에 구현했던 GDT와 같은 종류 ) 3. ISR ( 실제 인터럽트 발생 시 실행되는 코드 ) 요번 포스트에서는 2. IDT ( 전에 구현했던 GDT와 같은 종류 ) 을 다뤄보도록 하죠. 구글링을 통한 여러 포스트를 살펴보면 IDT를 어셈블리로 구현하는 분들이 대부분입니다. 물론 그렇게 하면 나름 쉽게 셋팅이 가..

10. 인터럽트 - PLC 세팅

https://github.com/SIMHANGSUB/HoGoS/tree/master/10 10~13강 소스코드입니다. -------------------------------------------------------------------------------- 인터럽트를 이제 구현해봅시다! 이 파트는 굉장히 복잡하고 하드코어하기 때문에 포스트를 여러 번 나누어서 할 겁니다. 준비 단단히 하시기 바랍니다. 인터럽트를 구현하기 위해서는 크게 3단계를 구현해야 합니다. 1. PIC 셋팅 ( 하드웨어 셋팅 ) 2. IDT ( 전에 구현했던 GDT와 같은 종류 ) 3. ISR ( 실제 인터럽트 발생 시 실행되는 코드 ) 요번 포스트에서는 1. PIC 셋팅 을 다뤄보도록 하죠. ------------------..

8. 커널 프로그램 만들기

목차 커널이 뭔가요? 커널 프로그램 코드 설명 vmware 시뮬레이션 커널이 뭔가요? 사전적 정의를 먼저 살펴보겠습니다. 씨앗의 안쪽 부분. 생각이나 주제에 대한 중심의, 중요한 부분. - oxford 영어사전 컴퓨터에서의 커널이란, 다음 그림과 같습니다. 사진에 나와 있는 내용을 전부 다루지는 않습니다. 책에서 주로 다루는 내용은 프로세스 관리( Process Management )와 메모리 관리( Memory Management )입니다. 두 부분을 좀 더 중점적으로 공부할 수 있을 것으로 예상합니다. 커널 프로그램 아직 커널이라고 하기에는 많이 부족한 프로그램이지만, 커널을 만들어봅시다. kernel.asm 파일로 작성해주세요. kernel.asm 코드 설명 ( line 7 ) xor ax, ax ..

7. boot loader 작성하기

OS [32bit] 부트로더 작성하기 by 올리고당 2021. 7. 27. 목차 전체 코드 BIOS 인터럽트 코드 설명 실제 동작 전체 코드 이전 코드에서 삭제된 부분은 line 20 ~ 41입니다. 추가된 부분은 아래 사진에서 // 로 표시된 line 22 ~ 37 부분입니다. 추가된 코드의 모든 부분이 int 13h 명령어( line 33 )에 대해 준비하고, 그 결과에 대한 처리를 하는 과정입니다. BIOS 인터럽트 int 13h 명령어는 BIOS에서 제공하는 인터럽트 중 하나입니다. 인터럽트란, 특정 외부 입력이 들어오면 진행 중이던 절차( main program )를 잠시 멈추고, 외부 입력에 대응하는 절차( ISR : Interrupt Service Routine )를 수행한 후, 멈춘 부분(..

6. boot sector에서 프로그램 꺼내기 2

곧 부트로더가 될 프로그램 일단 해봅시다! boot1.asm 파일을 다음과 같이 작성해주세요. boot1.asm 코드 설명 Q1. mov ds, cs는 불가능 한가? : CPU 내부 구조적인 문제로, 세그먼트 레지스터의 값을 바꾸려면, 범용 레지스터를 거쳐야 합니다. - 인텔 매뉴얼 vol.1 6-16page 6.3.1.1 절 참고. Q2. 비디오 메모리 세그먼트 16비트 세그먼트:오프셋 방식으로 표현할 수 있는 주소는 0000:0000 ~ FFFF:FFFF입니다. 이 중 모두를 RAM이 사용하는 것이 아니라, 다른 주변장치에도 주소가 할당되어 있습니다. 어느 기기에 어느 주소가 할당되었는지에 대한 분포를 나타낸 것을 메모리 맵이라 합니다. 메모리 맵 ( 참고도서 36페이지 발췌 ) 실습 코드에서는 컬러..

5. boot sector에서 프로그램 꺼내기 1

코드를 이해하기 위한 레지스터 n-bit 레지스터란, n자리의 이진수를 저장할 수 있는 하드웨어입니다. CPU에 내장되어 있습니다. 포인터 레지스터 ip : 다음에 실행할 명령어를 가리키는 포인터 레지스터 ( instruction pointer ). 바로 다음 주소의 명령어를 가리키고 있습니다. 범용 레지스터 ax : 주 누산기(primary accumulator)인 ax는 주로 입출력과 대부분의 산술 연산에 쓰입니다. eax(extended ax)의 하위 16비트. ax의 상위 8비트를 ah, 하위 8비트를 al 이라고도 합니다. cx : 카운트 레지스터. 루프 반복의 횟수 혹은 쉬프트 연산 횟수를 저장하는 데에 쓰입니다. ecx(extended cx)의 하위 16비트. cx의 상위 8비트를 ch, 하..

20. 포트리더기랑 수정....

패치 내역... 설비 db 연동 UI 개선... 프린터, 큰화면 등 취사 선택 가능.. 실행시 자바 필요 없음... 만들고 나니, 생각지도 못했던 중복 상태시 프린트 에러 발생 및, & 제거 기능 사라짐... 화면 상에는 없지만 어찌 되었든 에러 해결... 마음 같아서는 추가 기능을 더 넣고... device 메뉴 설정 하는 버튼을 좀 더 고치고 싶은데;; 각이 안 나오고... 피곤해서 못 하겠음;; 뭐... 없어도 약간 귀찮다는 거지, 프로그램 운용에는 전혀 지장이 없음... 사용 방법을 안다는 전제 하에서...

41. 레지스트리란?

레지스트리란 윈도우계열 시스템에서 사용하는 시스템 구성 정보를 저장한 데이터베이스를 말한다. 프로세스종류, 주기억장치의 용량, 주변장치의 정보, 시스템 매개변수, 응용소프웨어에서 취급하는 파일 타입과 매개변수 등을 기록한 저장소를 말한다. 간단히 말해 레지스트리는 윈도우 계열에서 사용하는 PC의 기본설정으로 - 내가 PC를 켰을 때 자동으로 켜지는 프로그램 설정 정보 - 마우스 우클릭을 했을 때 실행되는 정보 - .txt, .mp3 등 해당 확장자를 어떤 프로그램으로 열지 등 윈도우를 이용할 때 필요한 모든 정보들이 담겨 있는 윈도우 설정 정보들이라고 생각하면 될 것 같다. 위 화면 처럼 "실행창" 에서 > "Regedit" 을 기입하여 레지스트리를 편집할 수 있습니다. 해당 명령어를 기입하면 위 화면처..

51. 자바 마우스 우측 버튼 클릭

guiex.SwingTest.java package guiex; import java.awt.Frame; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; /* 프레임에 팝업 메뉴 - 마우스 오른쪽으로 이벤트 동작 */ public class SwingTest { public static void main(String[] args) { Frame f = new Frame("팝업 메뉴"); f.setSize(300,300); // 팝업 메뉴를 만들어 놓자 PopupMenu pMenu = new PopupMenu("edit"); // Lab..

40. 유용한 이클립스 플러그인 다시 정리 2

Run Jetty Run Running a web application in Eclipse should be as simple as ‘clicking run’. Home Site : http://code.google.com/p/run-jetty-run/ Update Site : http://run-jetty-run.googlecode.com/svn/trunk/updatesite Full maven support , simply run maven J2EE project without any config JSDT-jQuery 광고 이 광고 신고 This is a plugin for the Eclipse JavaScript Development Tools (JSDT) that adds jQuery autoco..

38. 현재 필자의 최신 개발 환경이다.

LSJ_Eclipse download | SourceForge.net LSJ_Eclipse Download LSJ_Eclipse for free. Eclipse customized by Lee Seung Jae. this eclipse is customized by Lee Seung Jae. base is Eclipse Mars R but, added Setup, Dark Theme, C development Tool, Window Builder, CSV Edit, and many libraries. sourceforge.net LSJ_Utilitie란 폴더에 매우 유용한 유틸들을 미리 다 묶어 놓았다. VM_Ware 이미지를 제외 하고도..... LSJ_Eclipse, LSJ_Utilities, LSJ..

19. LSJ 이클립스 프로그램 배포

LSJ_Eclipse download | SourceForge.net LSJ_Eclipse Download LSJ_Eclipse for free. Eclipse customized by Lee Seung Jae. this eclipse is customized by Lee Seung Jae. base is Eclipse Mars R but, added Setup, Dark Theme, C development Tool, Window Builder, CSV Edit, and many libraries. sourceforge.net 생각해보니, 아주 오래전 7년전에 게시판을 업로드 했었구나;; 지금 보니, 좀 수준이 낮기는 한데;; 나도 잊고 있었다. 생각해보니 나는 소스 포지에 뭐 어찌 되었든 두가지의 프..

18. 개인 마개조 이클립스 제작

드라이버 설치 하거나 포맷 후 항상 꼬여버리는 문제, 이클립스 설정 매번 해주는 게 너무 귀찮았지만.... 이번에 프로그램 만들면서 획득한 지식으로 단순화... 하려 한다. 단점은 내가 입만 앞선다. https://drive.google.com/file/d/1s8mudbatd28M2CPKYMLScc-bXVf1HB0c/view?usp=sharing LSJ_Eclipse_22521_Setup.exe drive.google.com 회사 업무 시간에 과제로 받은 프로그램을 만들고, 이클립스 설정 문제로 골치를 앓다가, 퇴근 후 집에 와서 만든 프로그램;; 다 만들었고, 나름 간지가 나나..... 배포가 문제다. 나중 회사에서 뭐라 하면.... 새로 하나 만들어 줘야 겠다.. ㅜ

37. 이클립스 플러그인 개발 [펌]

Eclipse 플러그인 개발을 위한 개념 정리 ※Eclipse 란? 문제 해결을 돕기 위한 자바 기반의 도구와 기반 구조를 개발하는 사람들의 오픈 소스 커뮤니티이다. 1.컴포넌트 : 이클립스 기반 시스템은 플러그인 이라고 알려진 컴포넌트를 조합해서 구성된다. 2. 미들웨어 및 기반구조 : 이클립스 RCP는 본질적으로 미들웨어 기능이다. 3. 네이티브 사용자 경험 : 이클립스 SWT는 운영체제의 네이티브 UI 편의 기능에 대해 효율적이고 이식성이 높은 접근 방법을 제공한다. 4. 이식성 : 다양한 운영체제 및 클라이언트 환경을 지원한다. 5. 지능적인 설치와 업데이트 : 다양한 메커니즘을 사용해서 플러그인을 배치하고 업데이트 할 수 있게 한다. 6. 비연결성 동작 : 네트워크에 접속하지 않아도 독립적으로 ..

17. 프린트와 중복 체크

첫 회사에서 못 풀었던 프린터.... 그리고 이번에 겨우 풀어낸 프린터 포맷 형식.... 지난 주에 알라딘으로 잡을 수 있을 줄 알았던 중복 체크..... 하나가 풀리자 갑자기 옆에 것이 쉽게 해결이 된다. 하고 나니까.... 스캐너 용 보다 식물 키우기 용으로 더 보이는 것 같다. 어쨌든 프린트 스킬도 획득하고 기분이 좋다.

50. 단일 패널 인쇄 자바

1. PrintJob pb = p1.getToolkit().getPrintJob(jf, "프린트 테스트", null); if(pb != null) { Graphics pg = pb.getGraphics(); if(pg != null) { pb.print(pg); pg.dispose(); pb.end(); } } } 2. package Test; import java.awt.Graphics; import java.awt.print.PageFormat; import java.awt.print.Paper; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; import j..