#include "mex.h" #include #include #include const unsigned short data_port =0x00378;//D7,D6,D5,D4,D3,D2,D1,D0 const unsigned short status_port =0x00379;//^BSY,^ACK,PE,SLCT,^ERR,・・・,・・・,・・・ //^BSY=0 printer is busy //^ACK=0 ACK受信 //PE=1 ペーパーエンド //^ERR=0 printer error const unsigned short control_port=0x0037A;//・・・,・・・,DIRC,IRQE,SLIN,IPRT,ATFD,STRB //DIRC:ポート方向の切り替え 1:入力 0:出力 //IRQE:ACK割り込み許可    1:許可 0:禁止 //SLIN:プリンタセレクト制御 1:ON 0:OFF //IPRT:プリンタリセット 1:ON 0:OFF //ATFD:オートフィード 1:ON 0:OFF //STRB:ストローブ 1:ON 0:OFF void mexFunction(int nlhs,mxArray *plhs[],int nrhs, const mxArray *prhs[]){ // hns_lpt(uint8 data); double *x; int data; HANDLE h=CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(h==INVALID_HANDLE_VALUE){ printf("Could't access GIVEIO device\n"); return -1; } CloseHandle(h); data=(int)*mxGetPr(prhs[0]); if(data>255){data=255;} if(data<0){data=0;} _outp(control_port,0);// control port 出力モードに _outp(data_port,data);// data port 0~255 }