Exemplo n.º 1
0
UINT8 __fastcall md_port_r(UINT16 port)
{
    switch(port & 0xC0)
    {
    case 0x00:
        return z80_read_unmapped();

    case 0x40:
        return vdp_counter_r(port);

    case 0x80:
        return vdp_read(port);

    case 0xC0:
        switch(port)
        {
        case 0xC0:
        case 0xC1:
        case 0xDC:
        case 0xDD:
            return input_r(port);
        }
        return z80_read_unmapped();
    }

    /* Just to please the compiler */
    return 0;
}
Exemplo n.º 2
0
UINT8 __fastcall smsj_port_r(UINT16 port)
{
    port &= 0xFF;

    if(port == 0xF2 && !(sms.memctrl & 4))
        return fmunit_detect_r();

    switch(port & 0xC0)
    {
    case 0x00:
        return z80_read_unmapped();

    case 0x40:
        return vdp_counter_r(port);

    case 0x80:
        return vdp_read(port);

    case 0xC0:
        return input_r(port);
    }

    /* Just to please the compiler */
    return 0;
}
Exemplo n.º 3
0
uint8 ggms_port_r(uint16 port)
{
    port &= 0xFF;

    switch(port & 0xC0)
    {
        case 0x00:
            return z80_read_unmapped();

        case 0x40:
            return vdp_counter_r(port);

        case 0x80:
            return vdp_read(port);

        case 0xC0:
            switch(port)
            {
                case 0xC0:
                case 0xC1:
                case 0xDC:
                case 0xDD:
                    return input_r(port);
            }
            return z80_read_unmapped();
    }

    /* Just to please the compiler */
    return -1;
}
Exemplo n.º 4
0
uint8 sms_port_r(uint16 port)
{
    switch(port & 0xC0)
    {
        case 0x00:
            return z80_read_unmapped();

        case 0x40:
            return vdp_counter_r(port);

        case 0x80:
            return vdp_read(port);

        case 0xC0:
            return input_r(port);
    }

    /* Just to please the compiler */
    return -1;
}
Exemplo n.º 5
0
int main()
{
    scanf("%d %d %d %d",&s,&r,&l,&c);
    int n=s+r+l;
    input_s();
    input_r();
    input_l();
    input_c();
    int w=0,k=0,sum=0,e=0;
    double z;
    int p,q;
    for(int i=0;i<n;i++)
        for(int j=i+1;j<n;j++)//求线和线的交点
    {
            if(intersect2D_2Segments(seg[i],seg[j]))
            {
                //printf("%d %d    ",i,j);
                points[sum].x=I0->x;
                points[sum].y=I0->y;
                sum++;
                //printf("%lf %lf\n",I0->x,I0->y);
            }
    }
    for(int i=0;i<c;i++)
        for(int j=0;j<n;j++)//求线和圆的交点
    {
        e=judge(cir[i],seg[j]);
        if(e==0)continue;
        else if(e==1)
        {
            points[sum].x=I0->x;
            points[sum].y=I0->y;
            sum++;
            //printf("%lf %lf\n",I0->x,I0->y);
        }
        else if(e==2)
        {
            points[sum].x=I0->x;
            points[sum].y=I0->y;
            sum++;
            //printf("%lf %lf\n",I0->x,I0->y);
            points[sum].x=I1->x;
            points[sum].y=I1->y;
            sum++;
            //printf("%lf %lf\n",I1->x,I1->y);
        }
    }

    //printf("%d %d\n",sum,sumover);

    //printf("%d %d\n",sum,sumover);
    for(int i=0;i<c;i++)
        for(int j=i+1;j<c;j++)
    {
        //printf("i=%d j=%d\n",i,j);
        if(insect(cir[i],cir[j])==1)
        {
            //printf("1\n");
            points[sum].x=I0->x;
            points[sum].y=I0->y;
            sum++;
            //printf("%lf %lf\n",I0->x,I0->y);
        }
        else if(insect(cir[i],cir[j])==2)
        {
            //printf("2\n");
            points[sum].x=I0->x;
            points[sum].y=I0->y;
            sum++;
            //printf("%lf %lf\n",I0->x,I0->y);
            points[sum].x=I1->x;
            points[sum].y=I1->y;
            //printf("%lf %lf\n",I1->x,I1->y);
            sum++;
        }
    }

    int sumover=sum;
    //printf("%d %d\n",sum,sumover);
  /*  for(int i=0;i<sum;i++)
    {
        if(use[i]==0)
        {
            for(int j=i+1;j<sum;j++)
            {
                if(use[j]==0)
                {
                    if(sub(points[i],points[j])<SMALL_NUM)
                    {
                        sumover--;
                        use[j]=1;
                        //printf("%d %d %d\n",i,j ,sumover);
                    }
                }
            }
           // printf("i=%d %lf %lf\n",i,points[i].x,points[i].y);
        }
    }*/

   printf("%d\n",sumover);
    return 0;
}