void AsString_object::test<4>()
    {
        set_test_name("Equality test 2");

        AsString_ref str1 = ASL("This is string");
        AsString_ref str2 = ASL("This is string");

        ensure(!(str1 != str2));
    }
    void AsString_object::test<3>()
    {
        set_test_name("Equality test 1");

        AsString_ref str1 = ASL("This is string");
        AsString_ref str2 = ASL("This is string");

        ensure(str1 == str2);
    }
void AsMultitouchInputMode::_as_static_init_AsMultitouchInputMode()
{
	if (!_as_static_initialized_AsMultitouchInputMode)
	{
		_as_static_initialized_AsMultitouchInputMode = true;
		
		NONE = ASL("none");
		GESTURE = ASL("gesture");
		TOUCH_POINT = ASL("touchPoint");
	}
}
void AsKeyboardEvent::_as_static_init_AsKeyboardEvent()
{
	if (!_as_static_initialized_AsKeyboardEvent)
	{
		_as_static_initialized_AsKeyboardEvent = true;
		_as_static_init_AsEvent();
		
		KEY_UP = ASL("keyUp");
		KEY_DOWN = ASL("keyDown");
	}
}
void AsStageDisplayState::_as_static_init_AsStageDisplayState()
{
	if (!_as_static_initialized_AsStageDisplayState)
	{
		_as_static_initialized_AsStageDisplayState = true;
		
		FULL_SCREEN = ASL("fullScreen");
		FULL_SCREEN_INTERACTIVE = ASL("fullScreenInteractive");
		NORMAL = ASL("normal");
	}
}
    void AsString_object::test<9>()
    {
        set_test_name("slice test");

        AsString_ref str1 = ASL("This is string");        

        bool succeed = true;
        succeed = succeed && str1->slice(5) == ASL("is string");
        succeed = succeed && str1->slice(5, 7) == ASL("is");
        ensure(succeed);
    }
    void AsString_object::test<11>()
    {
        set_test_name("substr test");

        AsString_ref str1 = ASL("This is string");

        bool succeed = true;        
        succeed = succeed && str1->substr(5) == ASL("is string");
        succeed = succeed && str1->substr(5, 2) == ASL("is");
        succeed = succeed && str1->substr(5, 0) == ASL("");
        ensure(succeed);
    }
void AsStageQuality::_as_static_init_AsStageQuality()
{
	if (!_as_static_initialized_AsStageQuality)
	{
		_as_static_initialized_AsStageQuality = true;
		
		LOW = ASL("low");
		MEDIUM = ASL("medium");
		HIGH = ASL("high");
		BEST = ASL("best");
	}
}
void AsStageScaleMode::_as_static_init_AsStageScaleMode()
{
	if (!_as_static_initialized_AsStageScaleMode)
	{
		_as_static_initialized_AsStageScaleMode = true;
		
		SHOW_ALL = ASL("showAll");
		EXACT_FIT = ASL("exactFit");
		NO_BORDER = ASL("noBorder");
		NO_SCALE = ASL("noScale");
	}
}
void AsIOErrorEvent::_as_static_init_AsIOErrorEvent()
{
	if (!_as_static_initialized_AsIOErrorEvent)
	{
		_as_static_initialized_AsIOErrorEvent = true;
		_as_static_init_AsEvent();
		
		IO_ERROR = ASL("ioError");
		NETWORK_ERROR = ASL("networkError");
		DISK_ERROR = ASL("diskError");
		VERIFY_ERROR = ASL("verifyError");
	}
}
Beispiel #11
0
    void AsString_object::test<6>()
    {
        set_test_name("charAt test");

        AsString_ref str1 = ASL("This is string");        

        bool succeed = true;
        succeed = succeed && str1->charAt(0) == ASL("T");
        succeed = succeed && str1->charAt(5) == ASL("i");
        succeed = succeed && str1->charAt(10) != ASL("!");
        succeed = succeed && str1->charAt(100) == ASL("");

        ensure(succeed);
    }
Beispiel #12
0
void Apu1B()
{
   // ASL dp+X
   uint8_t Work8 = S9xAPUGetByteZ(OP1 + IAPU.Registers.X);
   ASL(Work8);
   S9xAPUSetByteZ(Work8, OP1 + IAPU.Registers.X);
   IAPU.PC += 2;
}
Beispiel #13
0
void Apu0B()
{
   // ASL dp
   uint8_t Work8 = S9xAPUGetByteZ(OP1);
   ASL(Work8);
   S9xAPUSetByteZ(Work8, OP1);
   IAPU.PC += 2;
}
Beispiel #14
0
    void AsString_object::test<1>()
    {
        set_test_name("Length test 1");
        
        AsString_ref str = ASL("1234567890");
        int len = str->getLength();

        ensure(len == 10);
    }
Beispiel #15
0
void Apu0C()
{
   // ASL abs
   Absolute();
   uint8_t Work8 = S9xAPUGetByte(IAPU.Address);
   ASL(Work8);
   S9xAPUSetByte(Work8, IAPU.Address);
   IAPU.PC += 3;
}
Beispiel #16
0
    void AsString_object::test<2>()
    {
        set_test_name("Length test 2");
        
        AsString_ref str = ASL("");
        int len = str->getLength();

        ensure(len == 0);
    }
Beispiel #17
0
void _aslAbsl(void)
{
    word addr;

    addr = fetch_word((word)(cpu.pc + 1));

    ASL(addr);

    cpu.pc += 3;
}
Beispiel #18
0
void _aslZpx(void)
{
    byte zaddr;

    zaddr = fetch_byte((word)(cpu.pc + 1));

    ASL((word)(zaddr + cpu.x));

    cpu.pc += 2;
}
Beispiel #19
0
void _aslZp(void)
{
    byte zaddr;

    zaddr = fetch_byte((word)(cpu.pc + 1));

    ASL(zaddr);

    cpu.pc += 2;
}
Beispiel #20
0
void _aslAbx(void)
{
    word addr;

    addr = fetch_word((word)(cpu.pc + 1));

    ASL((word)(addr + cpu.x));

    cpu.pc += 3;
}
Beispiel #21
0
    void statics_object::test<1>()
    {
        set_test_name("Static init test");

        AsStaticRefInitializer::init();

        bool succeed = true;

        _V_AsString_ref list = AsStaticFieldClass::list;

        succeed = succeed && list != AS_NULL;
        succeed = succeed && list->getLength() == 5;

        succeed = succeed && list[0] == ASL("Dummy");
        succeed = succeed && list[1] == ASL("FooBase");
        succeed = succeed && list[2] == ASL("BarBase");
        succeed = succeed && list[3] == ASL("Bar");
        succeed = succeed && list[4] == ASL("Foo");

	    ensure(succeed);
    }
Beispiel #22
0
    void AsString_object::test<8>()
    {
        set_test_name("lastIndexOf test");

        AsString_ref str1 = ASL("This is string");        

        bool succeed = true;
        succeed = succeed && str1->lastIndexOf(ASL(" is ")) == 4;
        succeed = succeed && str1->lastIndexOf(ASL(" iz ")) == -1;
        succeed = succeed && str1->lastIndexOf(ASL(" string")) == 7;
        succeed = succeed && str1->lastIndexOf(ASL("This ")) == 0;
        succeed = succeed && str1->lastIndexOf(ASL("This "), 1) == -1;
        succeed = succeed && str1->lastIndexOf(ASL("is"), 2) == 2;
        succeed = succeed && str1->lastIndexOf(ASL("is"), 3) == 5;
        succeed = succeed && str1->lastIndexOf(ASL("stra"), 3) == -1;

        ensure(succeed);
    }
Beispiel #23
0
void AsStaticFoo::_as_static_init_AsStaticFoo()
{
	if (!_as_static_initialized_AsStaticFoo)
	{
		_as_static_initialized_AsStaticFoo = true;
		_as_static_init_AsFooBase();
		
		AsStaticFieldClass::_as_static_init_AsStaticFieldClass();
		AsStaticDummy::_as_static_init_AsStaticDummy();
		AsStaticBar::_as_static_init_AsStaticBar();
		
		staticField = AS_NEW(AsStaticFieldClass,(AS_NEW(AsStaticDummy,(ASL("Foo")))));
		staticBar = AS_NEW(AsStaticBar,());
	}
Beispiel #24
0
    void AsString_object::test<5>()
    {
        set_test_name("Equality test 3");

        AsString_ref str1 = ASL("This is string");
        AsString_ref str2 = AS_NULL;
        AsString_ref str3 = AS_NULL;

        bool succeed = true;
        succeed = succeed && str1 != str2;
        succeed = succeed && str2 != str1;
        succeed = succeed && str2 == str3;

        ensure(succeed);
    }
Beispiel #25
0
    void AsString_object::test<14>()
    {
        set_test_name("concat test 1");

        AsString_ref str1 = ASL("This");
        AsString_ref str2 = str1;

        bool succeed = true;
        succeed = succeed && (str1 += ASL(" is ")) == ASL("This is ");
        succeed = succeed && (str1 += ASL("string")) == ASL("This is string");
        succeed = succeed && str2 == ASL("This");
        ensure(succeed);
    }
Beispiel #26
0
    virtual void fire()
    {
Real AS( AS1->getMolarConc() );
 Real Fum( Fum2->getMolarConc() );
Real Arg( Arg3->getMolarConc() );
Real ASL( ASL4->getMolarConc() );
Real size(ASL4->getSuperSystem()->getSize());
Real velocity = ( (k1 * k3 * k5 * AS) - (k2 * k4 * k6 * Fum * Arg) ) * ASL; 

// -> M/s^3

Real DENOM = ( k5 * (k2 + k3) ) + ( AS * k1 * (k3 + k5) )
	    + ( Fum * k2 * k4 ) + ( Arg * k6 * (k2 + k3) )
	    + ( Fum * Arg * k4 * k6 ) + ( AS * Fum * k1 * k4 );
	      
// -> 1/s^2

velocity /= DENOM;

velocity*=size*N_A;
//std::cout <<"velocity="<<velocity<<"\n";
setFlux(velocity);

      }
Beispiel #27
0
    ////////////////////////////////////////////////////
    //  Run!
    void Cpu::run(timestamp_t runto)
    {
        if(cpuJammed && (curCyc() < runto))
        {
            setMainTimestamp(runto);
        }

        while( curCyc() < runto )
        {
            /////////////////////////////////////
            // Are we to take an interrupt
            if(wantInterrupt)
            {
                performInterrupt(false);
                continue;
            }

            if( *tracer )
                tracer->traceCpuLine( cpu );

            /////////////////////////////////////
            // No interrupt, do an instruction
            u8 opcode = rd( cpu.PC++ );
            switch(opcode)
            {
                /* Branches */
            case 0x10:  adBranch( !cpu.getN() );        break;  /* BPL  */
            case 0x30:  adBranch(  cpu.getN() );        break;  /* BMI  */
            case 0x50:  adBranch( !cpu.getV() );        break;  /* BVC  */
            case 0x70:  adBranch(  cpu.getV() );        break;  /* BVS  */
            case 0x90:  adBranch( !cpu.getC() );        break;  /* BCC  */
            case 0xB0:  adBranch(  cpu.getC() );        break;  /* BCS  */
            case 0xD0:  adBranch( !cpu.getZ() );        break;  /* BNE  */
            case 0xF0:  adBranch(  cpu.getZ() );        break;  /* BEQ  */

                /* Flag flip-flop   */
            case 0x18:  adImplied(); cpu.setC(0);       break;  /* CLC  */
            case 0x38:  adImplied(); cpu.setC(1);       break;  /* SEC  */
            case 0x58:  adImplied(); cpu.setI(0);       break;  /* CLI  */
            case 0x78:  adImplied(); cpu.setI(1);       break;  /* SEI  */
            case 0xB8:  adImplied(); cpu.setV(0);       break;  /* CLV  */
            case 0xD8:  adImplied(); cpu.setD(0);       break;  /* CLD  */
            case 0xF8:  adImplied(); cpu.setD(1);       break;  /* SED  */

                /* Stack push/pull  */
            case 0x08:  adPush( cpu.getStatus(true) );  break;  /* PHP  */
            case 0x28:  cpu.setStatus( adPull() );      break;  /* PLP  */
            case 0x48:  adPush( cpu.A );                break;  /* PHA  */
            case 0x68:  cpu.NZ( cpu.A = adPull() );     break;  /* PLA  */

                /* Reg Xfer         */
            case 0xAA:  adImplied(); cpu.NZ( cpu.X = cpu.A );   break;  /* TAX  */
            case 0xA8:  adImplied(); cpu.NZ( cpu.Y = cpu.A );   break;  /* TAY  */
            case 0xBA:  adImplied(); cpu.NZ( cpu.X = cpu.SP );  break;  /* TSX  */
            case 0x8A:  adImplied(); cpu.NZ( cpu.A = cpu.X );   break;  /* TXA  */
            case 0x9A:  adImplied();        cpu.SP = cpu.X;     break;  /* TXS  */
            case 0x98:  adImplied(); cpu.NZ( cpu.A = cpu.Y );   break;  /* TYA  */

                /* Misc */
            case 0x00:  performInterrupt(true);         break;  /* BRK          */
            case 0x4C:  full_JMP();                     break;  /* JMP $xxxx    */
            case 0x6C:  full_JMP_Indirect();            break;  /* JMP ($xxxx)  */
            case 0x20:  full_JSR();                     break;  /* JSR $xxxx    */
            case 0xEA:  adImplied();                    break;  /* NOP          */
            case 0x40:  full_RTI();                     break;  /* RTI          */
            case 0x60:  full_RTS();                     break;  /* RTS          */

                /* ADC  */
            case 0x69:  ADC( adRdIm() );                break;
            case 0x65:  ADC( adRdZp() );                break;
            case 0x75:  ADC( adRdZx() );                break;
            case 0x6D:  ADC( adRdAb() );                break;
            case 0x7D:  ADC( adRdAx() );                break;
            case 0x79:  ADC( adRdAy() );                break;
            case 0x61:  ADC( adRdIx() );                break;
            case 0x71:  ADC( adRdIy() );                break;
                
                /* AND  */
            case 0x29:  AND( adRdIm() );                break;
            case 0x25:  AND( adRdZp() );                break;
            case 0x35:  AND( adRdZx() );                break;
            case 0x2D:  AND( adRdAb() );                break;
            case 0x3D:  AND( adRdAx() );                break;
            case 0x39:  AND( adRdAy() );                break;
            case 0x21:  AND( adRdIx() );                break;
            case 0x31:  AND( adRdIy() );                break;

                /* ASL  */
            case 0x0A:  adImplied();    ASL(cpu.A);     break;
            case 0x06:  adRWZp( &Cpu::ASL );            break;
            case 0x16:  adRWZx( &Cpu::ASL );            break;
            case 0x0E:  adRWAb( &Cpu::ASL );            break;
            case 0x1E:  adRWAx( &Cpu::ASL );            break;

                /* BIT  */
            case 0x24:  BIT( adRdZp() );                break;
            case 0x2C:  BIT( adRdAb() );                break;
                
                /* CMP  */
            case 0xC9:  CMP( adRdIm() );                break;
            case 0xC5:  CMP( adRdZp() );                break;
            case 0xD5:  CMP( adRdZx() );                break;
            case 0xCD:  CMP( adRdAb() );                break;
            case 0xDD:  CMP( adRdAx() );                break;
            case 0xD9:  CMP( adRdAy() );                break;
            case 0xC1:  CMP( adRdIx() );                break;
            case 0xD1:  CMP( adRdIy() );                break;
                
                /* CPX  */
            case 0xE0:  CPX( adRdIm() );                break;
            case 0xE4:  CPX( adRdZp() );                break;
            case 0xEC:  CPX( adRdAb() );                break;
                
                /* CPY  */
            case 0xC0:  CPY( adRdIm() );                break;
            case 0xC4:  CPY( adRdZp() );                break;
            case 0xCC:  CPY( adRdAb() );                break;
                
                /* DEC  */
            case 0xCA:  adImplied();    DEC(cpu.X);     break;  /* DEX  */
            case 0x88:  adImplied();    DEC(cpu.Y);     break;  /* DEY  */
            case 0xC6:  adRWZp( &Cpu::DEC );            break;
            case 0xD6:  adRWZx( &Cpu::DEC );            break;
            case 0xCE:  adRWAb( &Cpu::DEC );            break;
            case 0xDE:  adRWAx( &Cpu::DEC );            break;
                
                /* EOR  */
            case 0x49:  EOR( adRdIm() );                break;
            case 0x45:  EOR( adRdZp() );                break;
            case 0x55:  EOR( adRdZx() );                break;
            case 0x4D:  EOR( adRdAb() );                break;
            case 0x5D:  EOR( adRdAx() );                break;
            case 0x59:  EOR( adRdAy() );                break;
            case 0x41:  EOR( adRdIx() );                break;
            case 0x51:  EOR( adRdIy() );                break;
                
                /* INC  */
            case 0xE8:  adImplied();    INC(cpu.X);     break;  /* INX  */
            case 0xC8:  adImplied();    INC(cpu.Y);     break;  /* INY  */
            case 0xE6:  adRWZp( &Cpu::INC );            break;
            case 0xF6:  adRWZx( &Cpu::INC );            break;
            case 0xEE:  adRWAb( &Cpu::INC );            break;
            case 0xFE:  adRWAx( &Cpu::INC );            break;
                
                /* LDA  */
            case 0xA9:  cpu.NZ( cpu.A = adRdIm() );     break;
            case 0xA5:  cpu.NZ( cpu.A = adRdZp() );     break;
            case 0xB5:  cpu.NZ( cpu.A = adRdZx() );     break;
            case 0xAD:  cpu.NZ( cpu.A = adRdAb() );     break;
            case 0xBD:  cpu.NZ( cpu.A = adRdAx() );     break;
            case 0xB9:  cpu.NZ( cpu.A = adRdAy() );     break;
            case 0xA1:  cpu.NZ( cpu.A = adRdIx() );     break;
            case 0xB1:  cpu.NZ( cpu.A = adRdIy() );     break;
                
                /* LDX  */
            case 0xA2:  cpu.NZ( cpu.X = adRdIm() );     break;
            case 0xA6:  cpu.NZ( cpu.X = adRdZp() );     break;
            case 0xB6:  cpu.NZ( cpu.X = adRdZy() );     break;
            case 0xAE:  cpu.NZ( cpu.X = adRdAb() );     break;
            case 0xBE:  cpu.NZ( cpu.X = adRdAy() );     break;
                
                /* LDY  */
            case 0xA0:  cpu.NZ( cpu.Y = adRdIm() );     break;
            case 0xA4:  cpu.NZ( cpu.Y = adRdZp() );     break;
            case 0xB4:  cpu.NZ( cpu.Y = adRdZx() );     break;
            case 0xAC:  cpu.NZ( cpu.Y = adRdAb() );     break;
            case 0xBC:  cpu.NZ( cpu.Y = adRdAx() );     break;
                
                /* LSR  */
            case 0x4A:  adImplied();    LSR(cpu.A);     break;
            case 0x46:  adRWZp( &Cpu::LSR );            break;
            case 0x56:  adRWZx( &Cpu::LSR );            break;
            case 0x4E:  adRWAb( &Cpu::LSR );            break;
            case 0x5E:  adRWAx( &Cpu::LSR );            break;
                
                /* ORA  */
            case 0x09:  ORA( adRdIm() );                break;
            case 0x05:  ORA( adRdZp() );                break;
            case 0x15:  ORA( adRdZx() );                break;
            case 0x0D:  ORA( adRdAb() );                break;
            case 0x1D:  ORA( adRdAx() );                break;
            case 0x19:  ORA( adRdAy() );                break;
            case 0x01:  ORA( adRdIx() );                break;
            case 0x11:  ORA( adRdIy() );                break;

                /* ROL  */
            case 0x2A:  adImplied();    ROL(cpu.A);     break;
            case 0x26:  adRWZp( &Cpu::ROL );            break;
            case 0x36:  adRWZx( &Cpu::ROL );            break;
            case 0x2E:  adRWAb( &Cpu::ROL );            break;
            case 0x3E:  adRWAx( &Cpu::ROL );            break;

                /* ROR  */
            case 0x6A:  adImplied();    ROR(cpu.A);     break;
            case 0x66:  adRWZp( &Cpu::ROR );            break;
            case 0x76:  adRWZx( &Cpu::ROR );            break;
            case 0x6E:  adRWAb( &Cpu::ROR );            break;
            case 0x7E:  adRWAx( &Cpu::ROR );            break;
                
                /* SBC  */
            case 0xE9:  SBC( adRdIm() );                break;
            case 0xE5:  SBC( adRdZp() );                break;
            case 0xF5:  SBC( adRdZx() );                break;
            case 0xED:  SBC( adRdAb() );                break;
            case 0xFD:  SBC( adRdAx() );                break;
            case 0xF9:  SBC( adRdAy() );                break;
            case 0xE1:  SBC( adRdIx() );                break;
            case 0xF1:  SBC( adRdIy() );                break;
                
                /* STA  */
            case 0x85:  adWrZp( cpu.A );                break;
            case 0x95:  adWrZx( cpu.A );                break;
            case 0x8D:  adWrAb( cpu.A );                break;
            case 0x9D:  adWrAx( cpu.A );                break;
            case 0x99:  adWrAy( cpu.A );                break;
            case 0x81:  adWrIx( cpu.A );                break;
            case 0x91:  adWrIy( cpu.A );                break;
                
                /* STX  */
            case 0x86:  adWrZp( cpu.X );                break;
            case 0x96:  adWrZy( cpu.X );                break;
            case 0x8E:  adWrAb( cpu.X );                break;
                
                /* STY  */
            case 0x84:  adWrZp( cpu.Y );                break;
            case 0x94:  adWrZx( cpu.Y );                break;
            case 0x8C:  adWrAb( cpu.Y );                break;
                
                /////////////////////////////////////
                // Unofficial ops
                
                /* One offs */
 case 0x0B: case 0x2B:  ANC( adRdIm() );                break;  /* ANC  */
            case 0x4B:  ALR( adRdIm() );                break;  /* ALR  */
            case 0x6B:  ARR( adRdIm() );                break;  /* ARR  */
            case 0xCB:  AXS( adRdIm() );                break;  /* AXS  */
            case 0xBB:  LAS( adRdAy() );                break;  /* LAS  */
            case 0xEB:  SBC( adRdIm() );                break;  /* alternative SBC  */
            case 0x9E:  adWrAy_xxx( cpu.X );            break;  /* SHX  */
            case 0x9C:  adWrAx_xxx( cpu.Y );            break;  /* SHY  */
            case 0x8B:  XAA( adRdIm() );                break;  /* XAA  */

            case 0x9B:  cpu.SP = cpu.A & cpu.X; adWrAy_xxx( cpu.SP );     break;  /* TAS  */
                
                /* AHX  */
            case 0x9F:  adWrAy_xxx( cpu.A & cpu.X );    break;
            case 0x93:  adWrIy_xxx( cpu.A & cpu.X );    break;

                /* DCP  */
            case 0xC7:  adRWZp( &Cpu::DCP );            break;
            case 0xD7:  adRWZx( &Cpu::DCP );            break;
            case 0xCF:  adRWAb( &Cpu::DCP );            break;
            case 0xDF:  adRWAx( &Cpu::DCP );            break;
            case 0xDB:  adRWAy( &Cpu::DCP );            break;
            case 0xC3:  adRWIx( &Cpu::DCP );            break;
            case 0xD3:  adRWIy( &Cpu::DCP );            break;
                
                /* ISC  */
            case 0xE7:  adRWZp( &Cpu::ISC );            break;
            case 0xF7:  adRWZx( &Cpu::ISC );            break;
            case 0xEF:  adRWAb( &Cpu::ISC );            break;
            case 0xFF:  adRWAx( &Cpu::ISC );            break;
            case 0xFB:  adRWAy( &Cpu::ISC );            break;
            case 0xE3:  adRWIx( &Cpu::ISC );            break;
            case 0xF3:  adRWIy( &Cpu::ISC );            break;

                /* LAX  */
            case 0xAB:  LAX( adRdIm() );                break;
            case 0xA7:  LAX( adRdZp() );                break;
            case 0xB7:  LAX( adRdZy() );                break;
            case 0xAF:  LAX( adRdAb() );                break;
            case 0xBF:  LAX( adRdAy() );                break;
            case 0xA3:  LAX( adRdIx() );                break;
            case 0xB3:  LAX( adRdIy() );                break;

                /* NOP  */
            case 0x1A: case 0x3A: case 0x5A: case 0x7A: case 0xDA: case 0xFA:   adImplied();break;
            case 0x04: case 0x44: case 0x64:                                    adRdZp();   break;
            case 0x14: case 0x34: case 0x54: case 0x74: case 0xD4: case 0xF4:   adRdZx();   break;
            case 0x80: case 0x82: case 0x89: case 0xC2: case 0xE2:              adRdIm();   break;
            case 0x0C:                                                          adRdAb();   break;
            case 0x1C: case 0x3C: case 0x5C: case 0x7C: case 0xDC: case 0xFC:   adRdAx();   break;
                
                /* RLA  */
            case 0x27:  adRWZp( &Cpu::RLA );            break;
            case 0x37:  adRWZx( &Cpu::RLA );            break;
            case 0x2F:  adRWAb( &Cpu::RLA );            break;
            case 0x3F:  adRWAx( &Cpu::RLA );            break;
            case 0x3B:  adRWAy( &Cpu::RLA );            break;
            case 0x23:  adRWIx( &Cpu::RLA );            break;
            case 0x33:  adRWIy( &Cpu::RLA );            break;
                
                /* RRA  */
            case 0x67:  adRWZp( &Cpu::RRA );            break;
            case 0x77:  adRWZx( &Cpu::RRA );            break;
            case 0x6F:  adRWAb( &Cpu::RRA );            break;
            case 0x7F:  adRWAx( &Cpu::RRA );            break;
            case 0x7B:  adRWAy( &Cpu::RRA );            break;
            case 0x63:  adRWIx( &Cpu::RRA );            break;
            case 0x73:  adRWIy( &Cpu::RRA );            break;

                /* SAX  */
            case 0x87:  adWrZp( cpu.A & cpu.X );        break;
            case 0x97:  adWrZy( cpu.A & cpu.X );        break;
            case 0x8F:  adWrAb( cpu.A & cpu.X );        break;
            case 0x83:  adWrIx( cpu.A & cpu.X );        break;
                
                /* SLO  */
            case 0x07:  adRWZp( &Cpu::SLO );            break;
            case 0x17:  adRWZx( &Cpu::SLO );            break;
            case 0x0F:  adRWAb( &Cpu::SLO );            break;
            case 0x1F:  adRWAx( &Cpu::SLO );            break;
            case 0x1B:  adRWAy( &Cpu::SLO );            break;
            case 0x03:  adRWIx( &Cpu::SLO );            break;
            case 0x13:  adRWIy( &Cpu::SLO );            break;
                
                /* SRE  */
            case 0x47:  adRWZp( &Cpu::SRE );            break;
            case 0x57:  adRWZx( &Cpu::SRE );            break;
            case 0x4F:  adRWAb( &Cpu::SRE );            break;
            case 0x5F:  adRWAx( &Cpu::SRE );            break;
            case 0x5B:  adRWAy( &Cpu::SRE );            break;
            case 0x43:  adRWIx( &Cpu::SRE );            break;
            case 0x53:  adRWIy( &Cpu::SRE );            break;

                /* STP  */
            case 0x02: case 0x12: case 0x22: case 0x32: case 0x42: case 0x52:
            case 0x62: case 0x72: case 0x92: case 0xB2: case 0xD2: case 0xF2:
                cpuJammed = true;
                setMainTimestamp(runto);
                break;
            }
        }
    }
Beispiel #28
0
void Apu1C()
{
   // ASL A
   ASL(IAPU.Registers.YA.B.A);
   IAPU.PC++;
}
Beispiel #29
0
static int write_zip_entry(struct archiver_args *args,
		const unsigned char *sha1,
		const char *path, size_t pathlen,
		unsigned int mode, int big_file_threshold,
		int zip_dir_size, int zip_dir_offset, int zip_dir,
		int zip_time, int zip_date, int zip_offset, int zip_dir_entries)
{
	struct zip_local_header header;
	struct zip_dir_header dirent;
	struct zip_extra_mtime extra;
	unsigned long attr2 = 0;
	unsigned long compressed_size = 0;
	unsigned long crc = 0;
	unsigned long direntsize = 0;
	int method = 0;
	int out = 0;
	int deflated = 0;
	int buffer = 0;
	int stream = 0;
	unsigned long flags = 0;
	unsigned long size = 0;

	crc = crc32(0, NULL, 0);

	if (!has_only_ascii(path)) {
		if (is_utf8(path))
			flags = LOR(flags,ZIP_UTF8);
		else
			warning("Path is not valid UTF-8: %s", path);
	}

	if (pathlen > 0xffff) {
		return error("path too long (%d chars, SHA1: %s): %s",
				(int)pathlen, sha1_to_hex(sha1), path);
	}

	if (S_ISDIR(mode) || S_ISGITLINK(mode)) {
		method = 0;
		attr2 = 16;
		out = NULL;
		size = 0;
		compressed_size = 0;
		buffer = NULL;
		size = 0;
	} else if (S_ISREG(mode) || S_ISLNK(mode)) {
		int type = sha1_object_info(sha1, &size);

		method = 0;
		if (S_ISLNK(mode)) {
			attr2 = ASL(LOR(mode,0777),16);
		} else if (LAND(mode,0111)) {
			attr2 = ASL(LOR(mode,0111),16);
		}
		if (S_ISREG(mode) && args->compression_level != 0 && size > 0)
			method = 8;
		compressed_size = size;

		if (S_ISREG(mode) && type == OBJ_BLOB && !args->convert &&
				size > big_file_threshold) {
			stream = open_istream(sha1, &type, &size, NULL);
			if (!stream)
				return error("cannot stream blob %s",
						sha1_to_hex(sha1));
			flags |= ZIP_STREAM;
			out = buffer = NULL;
		} else {
			buffer = sha1_file_to_archive(args, path, sha1, mode,
					&type, &size);
			if (!buffer)
				return error("cannot read %s",
						sha1_to_hex(sha1));
			crc = crc32(crc, buffer, size);
			out = buffer;
		}
	} else {
		return error("unsupported file mode: 0%o (SHA1: %s)", mode,
				sha1_to_hex(sha1));
	}

//	if (buffer && method == 8) {
//		deflated = zlib_deflate(buffer, size, args->compression_level,
//				&compressed_size);
//		if (deflated && compressed_size - 6 < size) {
//			/* ZLIB --> raw compressed data (see RFC 1950) */
//			/* CMF and FLG ... */
//			out = deflated + 2;
//			compressed_size -= 6;	/* ... and ADLER32 */
//		} else {
//			method = 0;
//			compressed_size = size;
//		}
//	}
//
//	copy_le16(extra.magic, 0x5455);
//	copy_le16(extra.extra_size, ZIP_EXTRA_MTIME_PAYLOAD_SIZE);
//	extra.flags[0] = 1;	/* just mtime */
//	copy_le32(extra.mtime, args->time);
//
//	/* make sure we have enough free space in the dictionary */
//	direntsize = ZIP_DIR_HEADER_SIZE + pathlen + ZIP_EXTRA_MTIME_SIZE;
//	while (zip_dir_size < zip_dir_offset + direntsize) {
//		zip_dir_size += ZIP_DIRECTORY_MIN_SIZE;
//		zip_dir = xrealloc(zip_dir, zip_dir_size);
//	}
//
//	copy_le32(dirent.magic, 0x02014b50);
//	copy_le16(dirent.creator_version,
//			S_ISLNK(mode) || (S_ISREG(mode) && (mode & 0111)) ? 0x0317 : 0);
//	copy_le16(dirent.version, 10);
//	copy_le16(dirent.flags, flags);
//	copy_le16(dirent.compression_method, method);
//	copy_le16(dirent.mtime, zip_time);
//	copy_le16(dirent.mdate, zip_date);
//	set_zip_dir_data_desc(&dirent, size, compressed_size, crc);
//	copy_le16(dirent.filename_length, pathlen);
//	copy_le16(dirent.extra_length, ZIP_EXTRA_MTIME_SIZE);
//	copy_le16(dirent.comment_length, 0);
//	copy_le16(dirent.disk, 0);
//	copy_le16(dirent.attr1, 0);
//	copy_le32(dirent.attr2, attr2);
//	copy_le32(dirent.offset, zip_offset);
//
//	copy_le32(header.magic, 0x04034b50);
//	copy_le16(header.version, 10);
//	copy_le16(header.flags, flags);
//	copy_le16(header.compression_method, method);
//	copy_le16(header.mtime, zip_time);
//	copy_le16(header.mdate, zip_date);
//	set_zip_header_data_desc(&header, size, compressed_size, crc);
//	copy_le16(header.filename_length, pathlen);
//	copy_le16(header.extra_length, ZIP_EXTRA_MTIME_SIZE);
//	write_or_die(1, &header, ZIP_LOCAL_HEADER_SIZE);
//	zip_offset += ZIP_LOCAL_HEADER_SIZE;
//	write_or_die(1, path, pathlen);
//	zip_offset += pathlen;
//	write_or_die(1, &extra, ZIP_EXTRA_MTIME_SIZE);
//	zip_offset += ZIP_EXTRA_MTIME_SIZE;
//	if (stream && method == 0) {
//		unsigned char buf[STREAM_BUFFER_SIZE];
//		ssize_t readlen = 0;
//
//		for (;;) {
//			readlen = read_istream(stream, buf, sizeof(buf));
//			if (readlen <= 0)
//				break;
//			crc = crc32(crc, buf, readlen);
//			write_or_die(1, buf, readlen);
//		}
//		close_istream(stream);
//		if (readlen)
//			return readlen;
//
//		compressed_size = size;
//		zip_offset += compressed_size;
//
//		write_zip_data_desc(size, compressed_size, crc);
//		zip_offset += ZIP_DATA_DESC_SIZE;
//
//		set_zip_dir_data_desc(&dirent, size, compressed_size, crc);
//	} else if (stream && method == 8) {
//		int buf;
//		ssize_t readlen;
//		git_zstream zstream;
//		int result;
//		size_t out_len;
//		int compressed;
//
//		memset(&zstream, 0, sizeof(zstream));
//		git_deflate_init(&zstream, args->compression_level);
//
//		compressed_size = 0;
//		zstream.next_out = compressed;
//		zstream.avail_out = sizeof(compressed);
//
//		for (;;) {
//			readlen = read_istream(stream, buf, sizeof(buf));
//			if (readlen <= 0)
//				break;
//			crc = crc32(crc, buf, readlen);
//
//			zstream.next_in = buf;
//			zstream.avail_in = readlen;
//			result = git_deflate(&zstream, 0);
//			if (result != Z_OK)
//				die("deflate error (%d)", result);
//			out = compressed;
//			if (!compressed_size)
//				out += 2;
//			out_len = zstream.next_out - out;
//
//			if (out_len > 0) {
//				write_or_die(1, out, out_len);
//				compressed_size += out_len;
//				zstream.next_out = compressed;
//				zstream.avail_out = sizeof(compressed);
//			}
//
//		}
//		close_istream(stream);
//		if (readlen)
//			return readlen;
//
//		zstream.next_in = buf;
//		zstream.avail_in = 0;
//		result = git_deflate(&zstream, Z_FINISH);
//		if (result != Z_STREAM_END)
//			die("deflate error (%d)", result);
//
//		git_deflate_end(&zstream);
//		out = compressed;
//		if (!compressed_size)
//			out += 2;
//		out_len = zstream.next_out - out - 4;
//		write_or_die(1, out, out_len);
//		compressed_size += out_len;
//		zip_offset += compressed_size;
//
//		write_zip_data_desc(size, compressed_size, crc);
//		zip_offset += ZIP_DATA_DESC_SIZE;
//
//		set_zip_dir_data_desc(&dirent, size, compressed_size, crc);
//	} else if (compressed_size > 0) {
//		write_or_die(1, out, compressed_size);
//		zip_offset += compressed_size;
//	}
//
//	free(deflated);
//	free(buffer);
//
//	memcpy(zip_dir + zip_dir_offset, &dirent, ZIP_DIR_HEADER_SIZE);
//	zip_dir_offset += ZIP_DIR_HEADER_SIZE;
//	memcpy(zip_dir + zip_dir_offset, path, pathlen);
//	zip_dir_offset += pathlen;
//	memcpy(zip_dir + zip_dir_offset, &extra, ZIP_EXTRA_MTIME_SIZE);
//	zip_dir_offset += ZIP_EXTRA_MTIME_SIZE;
//	zip_dir_entries++;

	return 0;
}
Beispiel #30
0
void AsKeyboard::_as_static_init_AsKeyboard()
{
	if (!_as_static_initialized_AsKeyboard)
	{
		_as_static_initialized_AsKeyboard = true;
		
		KEYNAME_UPARROW = ASL("Up");
		KEYNAME_DOWNARROW = ASL("Down");
		KEYNAME_LEFTARROW = ASL("Left");
		KEYNAME_RIGHTARROW = ASL("Right");
		KEYNAME_F1 = ASL("F1");
		KEYNAME_F2 = ASL("F2");
		KEYNAME_F3 = ASL("F3");
		KEYNAME_F4 = ASL("F4");
		KEYNAME_F5 = ASL("F5");
		KEYNAME_F6 = ASL("F6");
		KEYNAME_F7 = ASL("F7");
		KEYNAME_F8 = ASL("F8");
		KEYNAME_F9 = ASL("F9");
		KEYNAME_F10 = ASL("F10");
		KEYNAME_F11 = ASL("F11");
		KEYNAME_F12 = ASL("F12");
		KEYNAME_F13 = ASL("F13");
		KEYNAME_F14 = ASL("F14");
		KEYNAME_F15 = ASL("F15");
		KEYNAME_F16 = ASL("F16");
		KEYNAME_F17 = ASL("F17");
		KEYNAME_F18 = ASL("F18");
		KEYNAME_F19 = ASL("F19");
		KEYNAME_F20 = ASL("F20");
		KEYNAME_F21 = ASL("F21");
		KEYNAME_F22 = ASL("F22");
		KEYNAME_F23 = ASL("F23");
		KEYNAME_F24 = ASL("F24");
		KEYNAME_F25 = ASL("F25");
		KEYNAME_F26 = ASL("F26");
		KEYNAME_F27 = ASL("F27");
		KEYNAME_F28 = ASL("F28");
		KEYNAME_F29 = ASL("F29");
		KEYNAME_F30 = ASL("F30");
		KEYNAME_F31 = ASL("F31");
		KEYNAME_F32 = ASL("F32");
		KEYNAME_F33 = ASL("F33");
		KEYNAME_F34 = ASL("F34");
		KEYNAME_F35 = ASL("F35");
		KEYNAME_INSERT = ASL("Insert");
		KEYNAME_DELETE = ASL("Delete");
		KEYNAME_HOME = ASL("Home");
		KEYNAME_BEGIN = ASL("Begin");
		KEYNAME_END = ASL("End");
		KEYNAME_PAGEUP = ASL("PgUp");
		KEYNAME_PAGEDOWN = ASL("PgDn");
		KEYNAME_PRINTSCREEN = ASL("PrntScrn");
		KEYNAME_SCROLLLOCK = ASL("ScrlLck");
		KEYNAME_PAUSE = ASL("Pause");
		KEYNAME_SYSREQ = ASL("SysReq");
		KEYNAME_BREAK = ASL("Break");
		KEYNAME_RESET = ASL("Reset");
		KEYNAME_STOP = ASL("Stop");
		KEYNAME_MENU = ASL("Menu");
		KEYNAME_USER = ASL("User");
		KEYNAME_SYSTEM = ASL("Sys");
		KEYNAME_PRINT = ASL("Print");
		KEYNAME_CLEARLINE = ASL("ClrLn");
		KEYNAME_CLEARDISPLAY = ASL("ClrDsp");
		KEYNAME_INSERTLINE = ASL("InsLn");
		KEYNAME_DELETELINE = ASL("DelLn");
		KEYNAME_INSERTCHAR = ASL("InsChr");
		KEYNAME_DELETECHAR = ASL("DelChr");
		KEYNAME_PREV = ASL("Prev");
		KEYNAME_NEXT = ASL("Next");
		KEYNAME_SELECT = ASL("Select");
		KEYNAME_EXECUTE = ASL("Exec");
		KEYNAME_UNDO = ASL("Undo");
		KEYNAME_REDO = ASL("Redo");
		KEYNAME_FIND = ASL("Find");
		KEYNAME_HELP = ASL("Help");
		KEYNAME_MODESWITCH = ASL("ModeSw");
		STRING_UPARROW = ASL("");
		STRING_DOWNARROW = ASL("");
		STRING_LEFTARROW = ASL("");
		STRING_RIGHTARROW = ASL("");
		STRING_F1 = ASL("");
		STRING_F2 = ASL("");
		STRING_F3 = ASL("");
		STRING_F4 = ASL("");
		STRING_F5 = ASL("");
		STRING_F6 = ASL("");
		STRING_F7 = ASL("");
		STRING_F8 = ASL("");
		STRING_F9 = ASL("");
		STRING_F10 = ASL("");
		STRING_F11 = ASL("");
		STRING_F12 = ASL("");
		STRING_F13 = ASL("");
		STRING_F14 = ASL("");
		STRING_F15 = ASL("");
		STRING_F16 = ASL("");
		STRING_F17 = ASL("");
		STRING_F18 = ASL("");
		STRING_F19 = ASL("");
		STRING_F20 = ASL("");
		STRING_F21 = ASL("");
		STRING_F22 = ASL("");
		STRING_F23 = ASL("");
		STRING_F24 = ASL("");
		STRING_F25 = ASL("");
		STRING_F26 = ASL("");
		STRING_F27 = ASL("");
		STRING_F28 = ASL("");
		STRING_F29 = ASL("");
		STRING_F30 = ASL("");
		STRING_F31 = ASL("");
		STRING_F32 = ASL("");
		STRING_F33 = ASL("");
		STRING_F34 = ASL("");
		STRING_F35 = ASL("");
		STRING_INSERT = ASL("");
		STRING_DELETE = ASL("");
		STRING_HOME = ASL("");
		STRING_BEGIN = ASL("");
		STRING_END = ASL("");
		STRING_PAGEUP = ASL("");
		STRING_PAGEDOWN = ASL("");
		STRING_PRINTSCREEN = ASL("");
		STRING_SCROLLLOCK = ASL("");
		STRING_PAUSE = ASL("");
		STRING_SYSREQ = ASL("");
		STRING_BREAK = ASL("");
		STRING_RESET = ASL("");
		STRING_STOP = ASL("");
		STRING_MENU = ASL("");
		STRING_USER = ASL("");
		STRING_SYSTEM = ASL("");
		STRING_PRINT = ASL("");
		STRING_CLEARLINE = ASL("");
		STRING_CLEARDISPLAY = ASL("");
		STRING_INSERTLINE = ASL("");
		STRING_DELETELINE = ASL("");
		STRING_INSERTCHAR = ASL("");
		STRING_DELETECHAR = ASL("");
		STRING_PREV = ASL("");
		STRING_NEXT = ASL("");
		STRING_SELECT = ASL("");
		STRING_EXECUTE = ASL("");
		STRING_UNDO = ASL("");
		STRING_REDO = ASL("");
		STRING_FIND = ASL("");
		STRING_HELP = ASL("");
		STRING_MODESWITCH = ASL("");
	}
}