C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[6822] Re:[질문] asm out ...
이형종 [jonglee] 3653 읽음    2001-04-14 10:40
NT 계열에서는 당연히 in, out을 직접 쓰지 못하죠.
무조건 Device Driver가 있어야 합니다.

근데 다행이 NT나 2000에서도 Direct Port I/O를 해주는 컴퍼넌트가 있더군요.

DLPortIO - 이거는 프리웨어인데 불행히도 빌더 5.0용이 아직 나와있지 않습니다.
제가 4.0용 갖고 어떻게 해볼라그랬는데 안되더군요.

NTPort - 이거는 빌더용 컴퍼넌트는 아니지만 라이브러리 하나만 프로젝트에 추가하면
되고 사용하기도 아주 쉽습니다. (Output(), Input() 함수만 쓰면 되죠)
단, 쉐어라서 그냥 사용하면 쉐어임을 알리는 메시지 박스가 뜨더군요.

물론 환경이 NT계열이니만큼 사용 이전에 드라이버는 설치를 해야 합니다.
저는 NTPort를 조금 써봤는데, Administrator로 로긴하면 잘 동작하는데
일반 유저로 로긴하면 안되더군요. 자세히 디버깅은 못해서 원인은 못찾았구요..

Delphi Super Page에서 찾으면 있습니다.



방태윤 님이 쓰신 글 :
: 아래는 스피커에 소리내는 부분입니다.
:
: Win98까지 이상없었는데..
:
: Win2000 에서 실행시 privileged instruction 에러가 나는군요...
:
: 해결방법이나 Win2000 에서
:
: 스피커제어를 할수있는 방법 좀 부탁드립니다.
:
: void sound(short dore,short del)
: {
:      asm    mov    al, 0xb6
:     asm    out    0x43, al
:     asm    mov    ax,dore
:     asm    out    0x42, al
:     asm    mov    al, ah
:     asm    out    0x42, al
:     asm    in    al,0x61
:     asm    or    al,3
:     asm    out    0x61, al
:   Sleep(del);
:     asm    in    al, 0x61
:     asm    and    al,0xfc
:     asm    out    0x61,al
: }
: .끝.

+ -

관련 글 리스트
6802 [질문] asm out ... 방태윤 2171 2001/04/13
6822     Re:[질문] asm out ... 이형종 3653 2001/04/14
6823         감사합니다.^^ 방태윤 2132 2001/04/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.