/[VRac]/Tape.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 /Tape.pm

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

revision 145 by dpavlin, Sun Aug 5 13:27:27 2007 UTC revision 169 by dpavlin, Mon Aug 6 09:20:20 2007 UTC
# Line 6  use strict; Line 6  use strict;
6  use warnings;  use warnings;
7    
8  use base qw/Class::Accessor/;  use base qw/Class::Accessor/;
9  __PACKAGE__->mk_accessors(qw(tape tape_pos tape_rate trace));  __PACKAGE__->mk_accessors(qw(tape tape_path tape_pos trace));
10    
11  use File::Slurp;  use File::Slurp;
12  use Carp qw/confess/;  use Carp qw/confess/;
# Line 47  sub read_tape { Line 47  sub read_tape {
47          }          }
48    
49          my $byte = ord( substr($self->tape,$pos,1) );          my $byte = ord( substr($self->tape,$pos,1) );
50          warn sprintf("tape pos %d = %02x\n", $pos, $byte) if $self->trace;          warn sprintf("tape pos %d = %02x\n", $pos, $byte); # if $self->trace;
51    
52          $pos++;          $pos++;
53          $self->tape_pos( $pos );          $self->tape_pos( $pos );
# Line 81  sub load_tape { Line 81  sub load_tape {
81          my $path = shift || return;          my $path = shift || return;
82    
83          my $tape = read_file( $path ) || confess "can't load $path: $!";          my $tape = read_file( $path ) || confess "can't load $path: $!";
84            $self->tape_path( $path );
85    
86          $self->tape_pos( 0 );          $self->tape_pos( 0 );
87          $self->tape( $tape );          $self->tape( $tape );
         $self->tape_rate( 512 );  
88          warn "loaded tape $path ", -s $path, " bytes rate ", $self->tape_rate, "\n";          warn "loaded tape $path ", -s $path, " bytes rate ", $self->tape_rate, "\n";
89          return 1;          return 1;
90  }  }
91    
92    =head tape_status
93    
94      print $self->tape_status;
95    
96    =cut
97    
98    sub tape_status {
99            my $self = shift;
100    
101            return "No tape in (simulated) drive" unless $self->tape;
102    
103            my $size = length( $self->tape );
104    
105            return sprintf(
106                    "tape file: %s with %d 0x%x bytes, current position: %d 0x%x",
107                    $self->tape_path, $size, $size, $self->pos, $self->pos,
108            );
109    }
110    
111  =head1 SEE ALSO  =head1 SEE ALSO
112    
113  L<VRac>  L<VRac>

Legend:
Removed from v.145  
changed lines
  Added in v.169

  ViewVC Help
Powered by ViewVC 1.1.26