/[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 65 by dpavlin, Tue Jul 31 16:41:46 2007 UTC revision 68 by dpavlin, Tue Jul 31 17:15:54 2007 UTC
# Line 344  sub prompt { Line 344  sub prompt {
344    
345  =cut  =cut
346    
347    my $show_R = 0;
348    
349  sub cli {  sub cli {
350          my $self = shift;          my $self = shift;
351          my $a = $PC || confess "no pc?";          my $a = $PC || confess "no pc?";
352            warn $self->dump_R() if $show_R;
353          while ( my ($line, @v) = $self->prompt( $a, $last ) ) {          while ( my ($line, @v) = $self->prompt( $a, $last ) ) {
354                  my $c = shift @v;                  my $c = shift @v;
355                  next unless defined($c);                  next unless defined($c);
# Line 371  t\t\ttrace [$t] Line 374  t\t\ttrace [$t]
374  d\t\tdebug [$d]  d\t\tdebug [$d]
375    
376  __USAGE__  __USAGE__
377                          warn sprintf(" PC: %04x A:%02x P:%02x X:%02x Y:%02x S:%02x\n", $PC, $A, $P, $X, $Y, $S);                          warn $self->dump_R;
378                  } elsif ( $c =~ m/^e/i ) {                  } elsif ( $c =~ m/^e/i ) {
379                          $a = $v if defined($v);                          $a = $v if defined($v);
380                          my $to = shift @v;                          my $to = shift @v;
# Line 383  __USAGE__ Line 386  __USAGE__
386                                  $a += 8;                                  $a += 8;
387                          }                          }
388                          $last = '+';                          $last = '+';
389                            $show_R = 0;
390                  } elsif ( $c =~ m/^\+/ ) {                  } elsif ( $c =~ m/^\+/ ) {
391                          $a += 8;                          $a += 8;
392                            $show_R = 0;
393                  } elsif ( $c =~ m/^\-/ ) {                  } elsif ( $c =~ m/^\-/ ) {
394                          $a -= 8;                          $a -= 8;
395                            $show_R = 0;
396                  } elsif ( $c =~ m/^m/i ) {                  } elsif ( $c =~ m/^m/i ) {
397                          $a = $v;                          $a = $v;
398                          $self->poke_code( $a, @v );                          $self->poke_code( $a, @v );
399                          printf "poke %d bytes at %04x\n", $#v + 1, $a;                          printf "poke %d bytes at %04x\n", $#v + 1, $a;
400                          $last = '+';                          $last = '+';
401                            $show_R = 0;
402                  } elsif ( $c =~ m/^l/i ) {                  } elsif ( $c =~ m/^l/i ) {
403                          my $to = shift @v || 0x1000;                          my $to = shift @v || 0x1000;
404                          $a = $to;                          $a = $to;
# Line 403  __USAGE__ Line 410  __USAGE__
410                  } elsif ( $c =~ m/^r/i ) {                  } elsif ( $c =~ m/^r/i ) {
411                          $run_for = $v || 1;                          $run_for = $v || 1;
412                          print "run_for $run_for instructions\n";                          print "run_for $run_for instructions\n";
413                            $show_R = 1;
414                          last;                          last;
415                  } elsif ( $c =~ m/^(u|j)/ ) {                  } elsif ( $c =~ m/^(u|j)/ ) {
416                          my $to = $v || $a;                          my $to = $v || $a;
# Line 410  __USAGE__ Line 418  __USAGE__
418                          $PC = $to;      # remember for restart                          $PC = $to;      # remember for restart
419                          $run_for = 1;                          $run_for = 1;
420                          $last = "r $run_for";                          $last = "r $run_for";
421                            $show_R = 1;
422                          last;                          last;
423                  } elsif ( $c =~ m/^t/ ) {                  } elsif ( $c =~ m/^t/ ) {
424                          $self->trace( not $self->trace );                          $self->trace( not $self->trace );

Legend:
Removed from v.65  
changed lines
  Added in v.68

  ViewVC Help
Powered by ViewVC 1.1.26