레이블이 -Jiwoo OS인 게시물을 표시합니다. 모든 게시물 표시
레이블이 -Jiwoo OS인 게시물을 표시합니다. 모든 게시물 표시

2013년 2월 26일 화요일

Jiwoo OS 만들기 - 커널 #1

틈틈히 작업 중인 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 일부분입니다.




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




2012년 12월 25일 화요일

Jiwoo OS 만들기 - MSX용 OS

얼마전에 DOS2용 GUI 런처를 만들어볼까 생각한 적이 있는데요.

안드로이드용 홈런처 같은 것 말이죠. ㅎ.ㅎㅋ


하.지.만... 곧 마음을 접고 OS를 만들기로 정했습니다.


멀티 태스킹을 지원하고 기존 DOS1/2용 프로그램 실행을 위한 에뮬레이션(또는 DOS 전환)을 구현할 예정입니다.

기본 커널 만드는데에도 시간 꽤 걸리겠지만.ㅋ 조금씩 진행해봅니다요~~


컴파일러는 SDCC 윈도버전 사용합니다.

Z80 쪽으로는 문법이 좀 특이해서 다른 툴로는 좀 어려울것 같네요. ㅎ.ㅎ




2012년 11월 20일 화요일

GUI 쉘을 만든다면 쓸모가 있을까요?

그냥 갑자기 든 생각입니다.

뭐, "느려터진 MSX로요?"가 먼저 떠오르긴 하지만요. ㅎ.ㅎ;


MSX에 GUI로 된 쉘이 몇가지 있던걸로 기억하는데, 실제로 잘 활용하시는 분 있나요?

저는 터보알GT 처음 샀을때 MSX-View 몇번 눌러본거랑...

SymbOS는 처음 나왔을때 잠깐 써본정도입니다요.


암튼, 제가 최근 MSX 사용한걸 생각해보니 대강~~

 M, MPXP, MIDRY, GRUN, MMCSD멀티롬 정도로 요약이 되더군요. 

사실 M에서 MP3/IMS 음악듣는게 50% 정도...ㅋ

노트북에서 코딩한거 테스트하는데 25%, 나머지는 겜 한두판 하는 정도입니다.


그동안 M을 주로 쓰면서 필요한 기능들을 M에 내장하는 방향으로 가고 있었는데요.

만약 GUI 쉘을 잘(?) 만들어져서 MS윈도3.1, SymbOS 같은 멀티태스킹이 되면 재밌지 않을까 생각이 들어서요.

적어도 제가 활용하는 선에서는 괜찮을 것 같아요. (자꾸 속도 문제가 떠오르긴 한데...ㅋ)


기존 롬팩으로 된 SW도 어느정도 실행이 가능하고,

DOS1, DOS2 프로그램도 완벽 실행되면 좀 쓸모있지 않을까요?

게임은 VDP/PSG 직접 액세스도 허용해야되니 풀스크린 옵션도 넣고요. ㅋ


그래픽은 스크린7 인터레이스랑 오버스캔 모드를 쓰려고 합니다.

512 x 480 해상도에 16컬러가 되겠지요.


암튼 잡설이었습니다. ㅎ.ㅎ


의견 있으시면 댓글 달아주세요~~