예제 #1
0
/* in  : val	0 or 1 (コントローラとの併用 : 1) */
void InitMemCard(long val)
{
	InitCARD(val);		/* 通常 val=1 : コントローラと併用 */
	StartCARD();
	_bu_init();
	ChangeClearPAD(0);

	EnterCriticalSection();
	ev0  = OpenEvent(SwCARD, EvSpIOE, EvMdNOINTR, NULL);
	ev1  = OpenEvent(SwCARD, EvSpERROR, EvMdNOINTR, NULL);
	ev2  = OpenEvent(SwCARD, EvSpTIMOUT, EvMdNOINTR, NULL);
	ev3  = OpenEvent(SwCARD, EvSpNEW, EvMdNOINTR, NULL);
	ev10 = OpenEvent(HwCARD, EvSpIOE, EvMdNOINTR, NULL);
	ev11 = OpenEvent(HwCARD, EvSpERROR, EvMdNOINTR, NULL);
	ev12 = OpenEvent(HwCARD, EvSpTIMOUT, EvMdNOINTR, NULL);
	ev13 = OpenEvent(HwCARD, EvSpNEW, EvMdNOINTR, NULL);
	ExitCriticalSection();

	EnableEvent(ev0);
	EnableEvent(ev1);
	EnableEvent(ev2);
	EnableEvent(ev3);
	EnableEvent(ev10);
	EnableEvent(ev11);
	EnableEvent(ev12);
	EnableEvent(ev13);

}
예제 #2
0
파일: CS2.C 프로젝트: arnobmallick/team_psx
/* 初期化API */
CsInit()
{
	ev0 = OpenEvent(SwCARD, EvSpIOE, EvMdINTR, _ioe_handler);
	ev1 = OpenEvent(SwCARD, EvSpERROR, EvMdINTR, _error_handler);
	ev2 = OpenEvent(SwCARD, EvSpTIMOUT, EvMdINTR, _timeout_handler);
	ev3 = OpenEvent(SwCARD, EvSpNEW, EvMdINTR, _new_handler);
	ev10 = OpenEvent(HwCARD, EvSpIOE, EvMdINTR, _deliver_sw0);
	ev11 = OpenEvent(HwCARD, EvSpERROR, EvMdINTR, _deliver_sw1);
	ev12 = OpenEvent(HwCARD, EvSpTIMOUT, EvMdINTR, _deliver_sw2);

	_init_pad();
	InitCARD(1);
	StartCARD();
	_bu_init();
	ChangeClearPAD(0);

	hw = 0;

	EnableEvent(ev0);
	EnableEvent(ev1);
	EnableEvent(ev2);
	EnableEvent(ev3);
	EnableEvent(ev10);
	EnableEvent(ev11);
	EnableEvent(ev12);

	return _work1(chan=0x00); 
}
예제 #3
0
    bool WindowBase::OpenWindow(int width, int height, const String& name, uint32 windowstyle, bool show)
    {
        
        if ( IsWindowOpen() )
            CloseWindow();
        
        if ( IsWindowBind() )
            UnbindWindow();

        
        mWindowHandle = NULL; 
        ::Rect rectWin = {0, 0, height, width }; 
        
        WindowAttributes winAttribute = (windowstyle & WINDOW_FRAME) 
                                        ? kWindowStandardDocumentAttributes 
                                        : 0;
        
        if ( !(windowstyle & WINDOW_SIZE) )
            winAttribute &= ~kWindowResizableAttribute;
        if ( !(windowstyle & WINDOW_MINIMIZE) )	winAttribute &= ~kWindowFullZoomAttribute;
        
        winAttribute |= kWindowStandardHandlerAttribute|kWindowMetalAttribute;
        PRCORE_ASSERT_EXCEPTION( noErr !=  CreateNewWindow (kDocumentWindowClass,winAttribute,
                                                            &rectWin,&mWindowHandle) );
        
        mIsOpen = true;
        
        RenameWindow(name);
     
        ::SetWindowBounds ( mWindowHandle,kWindowContentRgn,&rectWin);
        EnableEvent();
        
        if(show)
            ShowWindow();
        ResizeWindow(width,height);
        if(show)
        {
            ::SetPortWindowPort(mWindowHandle); 
            ::InvalWindowRect (mWindowHandle, &rectWin);
            MoveWindow(50,50);            
        }
            
        return true;
    }
예제 #4
0
main()
{
    long i,fd,ret,max;
    unsigned char *p;

    /* カードとコントローラの初期化 */
    /*他のライブラリとの同時運用ではChangeClearPAD()が必須*/
    /*また他のライブラリを先に初期するかResetCakkback()を最初に実行する*/
#ifdef GRAPHIC
    ResetCallback();
#endif
    cbuf[0][0] = cbuf[1][0] = 0xff;
    InitPAD(&cbuf[0][0],34,&cbuf[1][0],34);
    StartPAD();
    InitCARD(1);
    StartCARD();
    _bu_init();
#ifdef GRAPHIC
    ChangeClearPAD(0);
#endif
		
    /* イベントの初期化 */
    ev0 = OpenEvent(SwCARD, EvSpIOE, EvMdNOINTR, NULL);
    ev1 = OpenEvent(SwCARD, EvSpERROR, EvMdNOINTR, NULL);
    ev2 = OpenEvent(SwCARD, EvSpTIMOUT, EvMdNOINTR, NULL);
    ev3 = OpenEvent(SwCARD, EvSpNEW, EvMdNOINTR, NULL);
    EnableEvent(ev0);  EnableEvent(ev1);  EnableEvent(ev2);  EnableEvent(ev3);
	
    /* データの初期化 */
    for(i=0;i<SIZE*0x2000;i++) {
        data[i] = i/128;    buf[i] = 0xff;
    }

    /* ここのカードの存在とフォーマットテストを置くべき*/

    /* テスト用ファイルの消去 */
    delete(name);

    /* テスト用ファイルの生成 */
    fd = open(name,O_CREAT|SIZE<<16);
    close(fd);

    printf("write\n");
    /* ライト*/
#ifdef NOWAIT
    fd = open(name,O_WRONLY|O_NOWAIT);
    for(i=0,p=data;i<SIZE*0x2000/512;i++,p+=512) {
        _clear_event();
        while(write(fd,p,512)==0)
            ;
        if((ret = _card_event())==1)  break;
    }
    close(fd); max = i; printf("max:%d\n",max);
#else
    fd = open(name,O_WRONLY);
    write(fd,data,SIZE*0x2000);
    close(fd);
#endif

    printf("read\n");
    /* リード */
#ifdef NOWAIT
    fd = open(name,O_RDONLY|O_NOWAIT);
    for(i=0,p=buf;i<max;i++,p+=512) {
        _clear_event();
        while(read(fd,p,512)==0)
            ;
        if((ret = _card_event())==1)  break;
        lseek(fd,128,SEEK_CUR);                  /* バグ対策 */
    }
    close(fd);  max = i;  printf("max:%d\n",max);
#else
    fd = open(name,O_RDONLY);
    read(fd,buf,SIZE*0x2000);
    close(fd);
#endif

    /* 比較 */
    for(i=0;i<max*512;i++) {
        if(data[i]!=buf[i]) {
            printf("error\n");  break;
        }
/*      printf("(%04x:%02x:%02x)\n",i,data[i],buf[i]);*/
    }
    if(i>=max*512)  printf("correct\n");

    /* 後処理 */
eoj:
    CloseEvent(ev0);  CloseEvent(ev1);  CloseEvent(ev2);  CloseEvent(ev3);
    printf("end of test\n");
}