--- M6502/perl.c 2007/07/31 21:43:57 73 +++ M6502/perl.c 2007/07/31 23:48:19 74 @@ -30,7 +30,11 @@ R->S = SvIV( get_sv("M6502::S", FALSE) ); R->PC.W = SvIV( get_sv("M6502::PC", FALSE) ); R->IPeriod = SvIV( get_sv("M6502::IPeriod", FALSE) ); - // ICount IRequest IAutoReset TrapBadOps Trap Trace + R->IRequest = SvIV( get_sv("M6502::IRequest", FALSE) ); + R->IAutoReset = SvIV( get_sv("M6502::IAutoReset", FALSE) ); + R->TrapBadOps = SvIV( get_sv("M6502::TrapBadOps", FALSE) ); + R->Trap = SvIV( get_sv("M6502::Trap", FALSE) ); + R->Trace = SvIV( get_sv("M6502::Trace", FALSE) ); printf("pull_R finished\n"); dump_R; } @@ -46,6 +50,13 @@ XPUSHs( sv_2mortal( newSViv( R->Y ) ) ); XPUSHs( sv_2mortal( newSViv( R->S ) ) ); XPUSHs( sv_2mortal( newSViv( R->PC.W ) ) ); + XPUSHs( sv_2mortal( newSViv( R->IPeriod ) ) ); + XPUSHs( sv_2mortal( newSViv( R->ICount ) ) ); + XPUSHs( sv_2mortal( newSViv( R->IRequest ) ) ); + XPUSHs( sv_2mortal( newSViv( R->IAutoReset ) ) ); + XPUSHs( sv_2mortal( newSViv( R->TrapBadOps ) ) ); + XPUSHs( sv_2mortal( newSViv( R->Trap ) ) ); + XPUSHs( sv_2mortal( newSViv( R->Trace ) ) ); PUTBACK; call_pv("M6502::push_R", G_DISCARD ); printf("push_R called\n");