/[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 125 by dpavlin, Sat Aug 4 15:09:44 2007 UTC revision 126 by dpavlin, Sat Aug 4 15:43:28 2007 UTC
# Line 6  use strict; Line 6  use strict;
6  use Carp qw/confess/;  use Carp qw/confess/;
7  use File::Slurp;  use File::Slurp;
8  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
9  use M6502;  use M6502; # import @mem $PC and friends
10  use Screen qw/$white $black/;  use Screen qw/$white $black/;
11    
12  use base qw(Class::Accessor VRac M6502 Screen Prefs Tape);  use base qw(Class::Accessor VRac M6502 Screen Prefs Tape);
# Line 135  sub run { Line 135  sub run {
135    
136  #       $self->load_tape( '../oraoigre/bdash.tap' );  #       $self->load_tape( '../oraoigre/bdash.tap' );
137    
138          $self->loop;          $self->loop( sub {
139                    M6502::exec( $_[0] );
140                    $self->render_vram;
141            });
142  };  };
143    
144  =head1 Helper functions  =head1 Helper functions
# Line 429  sub write { Line 432  sub write {
432    
433  Render one frame of video ram  Render one frame of video ram
434    
435    $self->render_vram( @video_memory );    $self->render_vram;
436    
437  =cut  =cut
438    
# Line 453  foreach my $i ( 0 .. 255 ) { Line 456  foreach my $i ( 0 .. 255 ) {
456  sub render_vram {  sub render_vram {
457          my $self = shift;          my $self = shift;
458    
         confess "no data?" unless (@_);  
         confess "screen size not 256*256/8 but ",($#_+1) unless (($#_+1) == (256*256/8));  
   
459          return unless $self->booted;          return unless $self->booted;
460    
461          my $pixels = pack("C*", map { $flip[$_] } @_);          my $pixels = pack("C*", map { $flip[$_] } @mem[ 0x6000 .. 0x7fff ]);
462    
463          my $vram = SDL::Surface->new(          my $vram = SDL::Surface->new(
464                  -width => 256,                  -width => 256,

Legend:
Removed from v.125  
changed lines
  Added in v.126

  ViewVC Help
Powered by ViewVC 1.1.26