/[VRac]/Orao.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /Orao.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 207 by dpavlin, Mon Apr 14 18:19:06 2008 UTC revision 213 by dpavlin, Mon Apr 14 21:27:19 2008 UTC
# Line 85  sub run { Line 85  sub run {
85          $self->debug( 0 );          $self->debug( 0 );
86    
87          warn "rendering memory\n";          warn "rendering memory\n";
88          $self->render_mem( @mem );          $self->render_mem( M6502::mem_peek_region(0x0000,0xffff) );
89    
90          if ( $self->show_mem ) {          if ( $self->show_mem ) {
91    
# Line 119  sub run { Line 119  sub run {
119    
120  #       $self->load_tape( 'tapes/Orao/bdash.tap' );  #       $self->load_tape( 'tapes/Orao/bdash.tap' );
121  #       $self->load_tape( 'tapes/Orao/crtanje.tap' );  #       $self->load_tape( 'tapes/Orao/crtanje.tap' );
122          $self->load_tape( 'tapes/Orao/jjack.tap' );  #       $self->load_tape( 'tapes/Orao/jjack.tap', 0x168 );
123            $self->load_tape( 'tapes/Orao/muzika.tap', 0x168 );
124    
125          $self->render_vram;          $self->render_vram;
126    
# Line 127  sub run { Line 128  sub run {
128                  my $run_for = shift;                  my $run_for = shift;
129                  warn sprintf("about to exec from PC %04x for %d cycles\n", $PC, $run_for) if $self->trace;                  warn sprintf("about to exec from PC %04x for %d cycles\n", $PC, $run_for) if $self->trace;
130                  M6502::exec( $run_for );                  M6502::exec( $run_for );
131  #               $self->render_vram;                  $self->render_vram;
132                    $self->render_mem( M6502::mem_peek_region(0x0000,0xffff) ) if $self->show_mem;
133          });          });
134  };  };
135    
# Line 377  sub read { Line 379  sub read {
379                  return $self->read_tape;                  return $self->read_tape;
380          }          }
381    
382          $self->mmap_pixel( $addr, 0, $byte, 0 ) if $self->show_mem;  #       $self->mmap_pixel( $addr, 0, $byte, 0 ) if $self->show_mem;
383          return $byte;          return $byte;
384  }  }
385    
# Line 406  sub write { Line 408  sub write {
408          $self->render_vram if ( $addr >= 0x6000 && $addr <= 0x7fff );          $self->render_vram if ( $addr >= 0x6000 && $addr <= 0x7fff );
409    
410          $self->mmap_pixel( $addr, $byte, 0, 0 ) if $self->show_mem;          $self->mmap_pixel( $addr, $byte, 0, 0 ) if $self->show_mem;
411          $mem[$addr] = $byte;  #       $mem[$addr] = $byte;
412          return;          return;
413  }  }
414    
# Line 423  Render one frame of video ram Line 425  Render one frame of video ram
425  sub render_vram {  sub render_vram {
426          my $self = shift;          my $self = shift;
427    
428          my $pixels = pack("C*", map { $flip[$_] } @mem[ 0x6000 .. 0x7fff ]);  #       my $pixels = pack("C*", map { $flip[$_] } @mem[ 0x6000 .. 0x7fff ]);
429    #       my $pixels = pack("C*", map { $flip[$_] } $self->ram( 0x6000, 0x7fff ));
430    #       my $pixels = M6502::mem_peek_region( 0x6000, 0x7fff );
431            my $pixels = pack('C*', map { $flip[$_] } unpack('C*', M6502::mem_peek_region( 0x6000, 0x7fff ) ) );
432    
433          my $vram = SDL::Surface->new(          my $vram = SDL::Surface->new(
434                  -width => 256,                  -width => 256,
# Line 435  sub render_vram { Line 440  sub render_vram {
440          $vram->set_colors( 0, $black, $white );          $vram->set_colors( 0, $black, $white );
441    
442          $self->render_frame( $vram );          $self->render_frame( $vram );
   
         print '.';  
443  }  }
444    
445  =head2 cpu_PC  =head2 cpu_PC
# Line 469  sub _init_callbacks { Line 472  sub _init_callbacks {
472          M6502::set_all_callbacks( 0x00 );          M6502::set_all_callbacks( 0x00 );
473    
474          # video ram          # video ram
475          M6502::set_write_callback( $_ ) foreach ( 0x6000 .. 0x7fff );  #       M6502::set_write_callback( $_ ) foreach ( 0x6000 .. 0x7fff );
476          # keyboard          # keyboard
477          M6502::set_read_callback( $_ ) foreach ( keys %$keyboard );          M6502::set_read_callback( $_ ) foreach ( keys %$keyboard );
478          # tape          # tape

Legend:
Removed from v.207  
changed lines
  Added in v.213

  ViewVC Help
Powered by ViewVC 1.1.26