sharksym's MSX World

sharksym.egloos.com

포토로그


구글 애드센스 (블로그 기본)


[Jiwoo] OS 만들기 - 커널 #1 by sharksym

틈틈히 작업 중인 OS 얘기입니다~ 첫글이군요!

HI-TECH C 를 주로 쓰다 이번엔 SDCC를 쓰고 있는데, 삽질 좀 많이 하네요.
그나마 컴파일러가 c99 를 일부분 지원해줘서 감사하게 생각하고 있습니다. ㅎ.ㅎ

소스는 GPL이구요.
전체적으로 리눅스 모양을 많이 따왔습니다. 
MSX가 아닌 Z80 베이스의 다른 컴퓨터(SPC-1000 등)에서도 쓸수 있도록 만드는게 목표인데, 잘 될지 모르겠네요. ㅋ

아직 스케쥴러, 파일 시스템은 구현이 안되어있구요. (문서만 대충...ㅋ)
driver만 조금 만들어보고 있습니다.
MSX는 time tick용 인터럽트가 따로 없어서, 그냥 VDP의 v-blk 인터럽트 쓰도록 했습니다.

메모리 쪽은 아래 처럼 가상의 32bit 주소로 배치되어있고, 메모리 간 전송은 virtual dma driver로 구현됩니다.
I/O 포트는 일반 Z80의 16bit 주소를 쓸수 있습니다.

  DDDD PP SS : xx HHHHHH : LLLLLLLL : LLLLLLLL
  |    |  |       |        |
  |    |  |       |        `16bits low addr
  |    |  |       `6bits high addr
  |    |  `sec-slot no
  |    `pri-slot no
  `device type
   b0000: RAM MAIN       (MAX 4096KB / slot)
   b0001: RAM DISK       (MAX 4096KB)
   b0010: VRAM MAIN      (MAX  128KB)
   b0011: VRAM EXT       (MAX   64KB)
   b1000: I/O PORT       (MAX   64KB)


아래는 코드 맛보기(?) 용 스크린샷입니다.
device, driver 구조는 리눅스랑 비슷합니다. 놀라지마세요~ ㅋ


start_kernel() 두둥~ ㅎ

machine 설정입니다.

vdp platform_device 네요.

vdp driver 일부분입니다.

에뮬에서 구동한 모습입니다.


덧글

  • 유우 2013/02/26 13:18 # 삭제

    자신만의 세계를 처음부터 하나하나 만드시는것같아서 신기하고 멋지네요.
  • sharksym 2013/02/26 18:12 #

    남들 잘 안하는걸 조금씩 해보는것도 잼납니다~ ㅎ.ㅎㅋ
    사실 요즘 겜 할 시간도 별로 없고... MSX 만지는게 유일한 낙이네요.
  • 틸더마크 2013/02/27 23:23 #

    어헠헠헠...ㄷㄷㄷㄷ
    UZIX를 보면서 으아 이게 뭐야 ㅎㄷㄷㄷ 했던 기억이 나는데
    더 대단한게 나올거 같은 예감이 더럭! 드는군요! +_+
  • sharksym 2013/02/28 10:03 #

    예전 UZIX 나왔을 때도 기대 많이 했었는데,
    제가 선라이즈 IDE / RS-232C가 없다보니... 활용할 방법이 없더군요. ㅎ.ㅎ;
    결국 자기가 쓸건 직접 만들어야 ㅜ.ㅜㅋ
  • geijoenr 2013/04/06 04:58 # 삭제

    ei, the code looks great! it follows the linux structure a lot!

    are you releasing it as GPL? I would like to contribute.



Title MSXrating email rss

CCL

크리에이티브 커먼즈 라이선스
Yeongman Seo에 의해 작성된 저작물은, 별도의 라이선스 조건이 없는 경우 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

ClusterMaps

구글 애드센스 (세로 큰직사각형)

통계 위젯 (화이트)

813
138
156521

이 이글루를 링크한 사람 (화이트)

26