Acme-6502
    
    
  
  
  
view release on metacpan or search on metacpan
inc/MyBuilder.pm view on Meta::CPAN
package MyBuilder;
use base qw( Module::Build );
sub create_build_script {
  my ( $self, @args ) = @_;
  $self->_auto_mm;
  return $self->SUPER::create_build_script( @args );
}
sub _auto_mm {
  my $self = shift;
  my $mm   = $self->meta_merge;
  my @meta = qw( homepage bugtracker MailingList repository );
  for my $meta ( @meta ) {
    next if exists $mm->{resources}{$meta};
    my $auto = "_auto_$meta";
    next unless $self->can( $auto );
    
  
  
  lib/Acme/6502/Tube.pm view on Meta::CPAN
  OSWRCH => 0xFFEE,
  OSRDCH => 0xFFE0,
  OSWORD => 0xFFF1,
  OSBYTE => 0xFFF4,
  OSCLI  => 0xFFF7
};
sub _BUILD {
  my ( $self, $args ) = @_;
  $self->SUPER::_BUILD( $args );
  $self->{ time_base } = time();
  # Inline OSASCI code
  $self->poke_code( OSASCI,
    0xC9, 0x0D,          # CMP #&0D
    0xD0, 0x07,          # BNE +7
    0xA9, 0x0A,          # LDA #&0A
    0x20, 0xEE, 0xFF,    # JSR &FFEE
    0xA9, 0x0D           # LDA #&0D
    
  
  
  lib/Acme/6502/Tube.pm view on Meta::CPAN
  die "OSFIND not handled\n";
}
sub make_vector {
    my( $self, $name, $vec, $code ) = @_;
    my $addr = $self->$name;
    my $vecno = scalar @{ $self->{ os } };
    push @{ $self->{ os } }, [ $code, $name ];
    $self->SUPER::make_vector( $addr, $vec, $vecno );
}
sub call_os {
  my $self = shift;
  my $vecno = shift;
  eval {
    my $call = $self->{ os }->[ $vecno ] || die "Bad OS call $vecno\n";
    $call->[ 0 ]->( $self );
  };
    
  
  
  
( run in 0.684 second using v1.01-cache-2.11-cpan-a1d94b6210f )