MS 도스상의 M

kphwan의 이미지

현재 운영체제를 배우고 있습니다.
과목이 끝나고 MS 도스에서 돌아가는 M 프로그램을
직접 만들고 싶은데요..
어떤 책들을 봐야 하나요??
시프쪽을 봐야하는건지...
어떤식으로 해야할지 개념이 서질 않네요..
얼마만큼 난이도가 있는 프로젝트인지..
어떻게 공부해나가야 할지..
그리고 어떤 책들을 보면 좋을지..
조언 부탁드립니다.

avatar08의 이미지

M 프로그램 짜는 것과 운영체제와 어떻게 연관이 되는지 잘 이해가 안되네요 .. M 프로그램 기능을 다 써보지 않아서 그런가;;; (복사.실행붙이기 등만 해서 그런지 모르겠지만 )
위의 기능만 한다면 도스 위에 어떻게 gui가 작동하는 지 잘 모르겠지만 그것만 한다면 system함수로(도스에도 system함수가 존재하는지 잘모르겠지만) 도스 명령어 그대로 이용한다면 별로 어렵지 않을듯한 프로젝트 처럼 보이네요 . 도스에는 어떤 함수들이 있는지 잘 모르겠네요 ..

허접한 답변..ㅎㅎ

------------------------------------------------------------
아무것도 모르겠다.
소주나 먹읍시다
blogname : http://smgs2848.blogspot.com

kphwan의 이미지

제가 의도한 바는 이번학기 운영체제를 배우고 다음학기에 시스템 프로그래밍을 배우게 되는데

두개를 연관지어 어떤 하나의 프로젝트를 수행하고 싶었습니다.

그래서 생각난게 도스에서 돌아가는 M에다가 마우스를 올리고 싶은 생각을 했었는데...

연관이 없는건가요??

연관이 없더라도 제가 생각하는 이런 프로그램을 짜고 싶은데..

어떻게 해나가야 할지 방향좀 잡아주시면 감사하겠습니다.

cppig1995의 이미지

여기서 M이 M.EXE 즉, Mdir III 실행파일이 맞다는 전제하에 말씀드립니다. (아니면 어떡하지 ㅠㅠ)
MS-DOS 상에서 Mdir III과 같은 그래픽을 구현하기 위해서는 conio 라이브러리를 사용합니다.
MS-DOS에서 마우스 사용하려면 인터럽트 0x33번을 사용하면 됩니다.

물론 MS-DOS에도 int system(const char *) 함수는 사용가능하며, stdlib.h 및 process.h에 있을 겁니다.



(전략) 항복 권고를 받은 키탈저 태수 아지엣 사카라는 "항복? 먹는 거냐?"라는 짤막한 답장을 써보냈다. 베로시 토프탈은 행간에서 낄낄거림이 묻어나는 문체로 항복은 먹는 것이 아니라 자신의 미력함을 인정하고 상대에게 굴복하는 것이라는 상냥한 답을 보냈다. 그러자 아지엣 사카라는 "못 먹는 것이면 관심 없다."는 답장을 보냈다.
몽화 대사전 - http://cppig1995.n-pure.net/mh

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

kphwan의 이미지

제가 내공이 턱없이 부족하여 무슨말씀이신지 잘 모르겠습니다.

시스템 프로그램밍을 알아야 하는 건가요?

C을 이용하여 작성하는건지...??

방향을 좀 잡는다면 서적을 찾아보면서 공부하겠지만..

어떻게 접근해야 하는지 잘 개념이 서질 않습니다.ㅠㅠ

amorette의 이미지

여기 댓글들을 보세요-

http://kldp.org/node/85844

관련 자료 있었는데 지금 다시 찾아보니 안나오네요..ㅠ

kphwan의 이미지

댓글들을 보았습니다...
그곳에 질문을 한걸 보니..
저도 궁금해 지는게 한가지 더 있네요..
MS-DOS 상에서 돌아가는 M프로그램을 만들려면
C언어보다 저급언어인 어셉블리어를 사용해야 하나요?
C언어에서는 불가능한가요??

지리즈의 이미지

일부 인터럽트에 관련된 부분은 인라인 어셈이긴 하더라도,
어셈블리어의 도움을 약간 받기는 받아야 합니다.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

cppig1995의 이미지

MS-DOS 환경에서 돌아가는 프로그램을 짤 때 저는 특별한 경우가 아닌 한
인터럽트와 관련한 부분에서도 int86, int86x 함수로 처리했었습니다.
DOS 인터럽트만 쓸 거라면 bdos 함수도 있고요.
어셈블리어의 도움을 받아야 하는 경우는 그다지 많지 않은 것 같습니다. :)

GUI 구현은 conio 라이브러리와 확장 문자를 이용한 것일텐데,
(확증: 프로그램을 종료하면 화면이 스크롤되고 프롬프트가 나타납니다.)
한글 출력이 필요하다면 완성형 코드의 ㅂ+[한자] 대역을,
필요 없다면 확장 ASCII의 상자 그리기 문자 대역을 이용하시면 될 겁니다.

초등학교 1학년 때 (당시 기준) 나온 지 13년 된 Turbo C 2.01로 C를 시작했습니다.
이것저것 주워들은 건 많을 겁니다.



(전략) 항복 권고를 받은 키탈저 태수 아지엣 사카라는 "항복? 먹는 거냐?"라는 짤막한 답장을 써보냈다. 베로시 토프탈은 행간에서 낄낄거림이 묻어나는 문체로 항복은 먹는 것이 아니라 자신의 미력함을 인정하고 상대에게 굴복하는 것이라는 상냥한 답을 보냈다. 그러자 아지엣 사카라는 "못 먹는 것이면 관심 없다."는 답장을 보냈다.
몽화 대사전 - http://cppig1995.n-pure.net/mh

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.