2016-06-03 6 views
0

나는 프로그래밍 언어를 만들고 있는데, 어떻게 화면에 글자를 인쇄 할 수 있습니까? 비디오 메모리 (0xB8000)를 사용하여 인쇄하려고하면 프로그램이 충돌합니다 ...인쇄 기능은 어떻게 만들어 졌습니까?

+0

비디오 메모리에 직접 쓰는 것은 보호 모드 운영 체제가 일반화되기 이전의 방법이었습니다. 실제로 이런 식으로 시도하려면 Linux에서'dosemu '를 사용할 수 있습니다. 아마도'VirtualBox'에 무료 버전의'DOS '가 설치되어있을 것입니다.하지만 여기서 답을 원한다면 어떤 운영체제에서 실행을 계획하시는 것이 좋습니다 – infixed

+0

실제로 베어 메탈 PC에서 작업하신다면 말이죠. 베어 메탈 (pre-OS) 모드로 화면에 인쇄하는 '공식적인'방법은 INT 10 H를 통해 BIOS 호출을 사용하는 것입니다. https://en.wikipedia.org/wiki/INT_10H 정확하게 가장 재미있는 방법은 아닙니다. 일을하는 것 – infixed

답변

1

Erm, 아니요 그렇게하지 마십시오. 이것은 운영 체제가 화면에 내용을 인쇄 할 수있는 방법이지만, 일종의 세그먼트 화 위반 없이는 동일한 작업을 수행 할 수 있습니다.

화면에 텍스트를 인쇄하고 UNIX 계열 시스템을 사용한다고 가정하면 write [1] 시스템 호출을 사용하거나 표준 출력 파일 (stdout)을 열면 언어에서 파일을 열려면) 거기에 쓰십시오.

[1] : 이것은 쓰기를위한 서명 : ssize_t write(int fd, const void *buf, size_t nbytes);입니다. 자세한 내용은 read this