KJIST

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ KJIST ] in KIDS
글 쓴 이(By): cch (않가르쳐줘�)
날 짜 (Date): 1996년07월15일(월) 23시45분51초 KDT
제 목(Title): [re] 도와 주세용.....



으하하하....   찾았다.....

제가 학부때 마이크로프로세서 보드와 통신하는 프로그램 짜려고 찾다가 구한 
겁니다..

저도 비슷한 경험을 했죠... 책에 나와 있는거 그대로 컴파일해서 실행해도 
않되죠...

여러개 해봤는데... 쓰레기 값만 나오고 보래이트가 않 맞는지.. 하여간 ..

이건되요...

이상한 글짜는 코맨튼데... 한글타입이 서로 않맞나봐요...    수고하세요....


#include  <stdio.h>
#include  <conio.h>
#include  <dos.h>
#include  <bios.h>
#include  "hghlib.h"        /* 한글 라이브러리 화일 */


#define   TRUE -1
#define   FALSE 0

#define   COM1  0
#define   COM21

#define   BUFLEN 0x4000

#define   DATA  0x3f8/* com2 : 0x2f..*/
#define   IER   0x3f9
#define   IIR   0x3fa
#define   MCR   0x3fc
#define   MSR   0x3fe
#define   LSR0x3fd
#define   LCR   0x3fb


#define   ONMSK  0xe7   /* Turn IRQ4/IRQ3 On*/
#define   OFFMSK 0x18   /* Turn IRQ4/IRQ3 Off*/

#define   PICMSK 0x21/* 8259 mask register*/
#define  PICEOI 0x20 /* 8259 EOI instr.*/
#define   IRQ4   0x0c   
#define   IRQ3   0x0b   

#define   DATA7 0x02    /* Data is 7 bit*/
#define   DATA8 0x03    /* Data is 8 bit        */

#define   STOP1 0x00/* Stop Bit is  one      */

#define   NOPA0x00/* No Parity */
#define  ODDP0x08
#define  EVEVP0x18

#define   B12000x80/* Baud rate */
#define   B2400 0xa0
#define   B4800 0xc0
#define   B9600 0xe0

unsigned charibuffer[BUFLEN];
unsigned intifront=0,irear=0;
void interrupt (*oldvect)(...);


void interrupt intsr(...)
{
irear %= BUFLEN;
ibuffer[irear++]=inportb(DATA);
outportb(PICEOI,0x20);
}


int rsready()
{
return((ifront != irear)? TRUE:FALSE);
}


char rsin()
{
ifront %= BUFLEN;
return(ibuffer[ifront++]);
}


void rsout(char ch)
{
do{/*...*/}while(!(inportb(LSR) & 0x20));
outportb(DATA,ch);
}


void init_port()
{
oldvect=getvect(IRQ4);
setvect(IRQ4,intsr);
bioscom(0,DATA8|STOP1|NOPA|B9600,COM1);

outportb(MCR,0x0b);
outportb(IER,0x01);
outportb(PICMSK,(inportb(PICMSK)&(ONMSK)));


}


void close_port()
{
/*outportb(MCR,0);*/
outportb(IER,0);
outportb(PICMSK,(inportb(PICMSK)|OFFMSK));

setvect(IRQ4,oldvect);

}

/****************************************************/
/*    */
/*          MAIN PROGRAM                      */
/*            */
/****************************************************/

extern void commain()
{
unsigned char ch, in;

init_port();

while(1){
if(rsready()) {
       putch(rsin());
//if ((in = rsin()) != NULL)  hgEngPutch(hgGetOutX(), hgGetOutY(), in);
}
if(kbhit()){
//ch=hgGetCh();
ch=getch();
if (ch) rsout(ch);
else if(getch()==45) break;
/*ALT-X then exit.......*/
}
}
close_port();
}


와.... 이거 되게 않 올라가네....

배우고 말거야... 화일로 올리는 법....



 
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.