/[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 102 by dpavlin, Thu Aug 2 17:31:13 2007 UTC revision 103 by dpavlin, Thu Aug 2 18:01:51 2007 UTC
# Line 315  my $keyboard = { Line 315  my $keyboard = {
315                  'left'          => 224,                  'left'          => 224,
316                  'backspace' => 224,                  'backspace' => 224,
317          },          },
318          0x87FD => {          0x87FD => sub {
319                  'return' => sub {                  my ( $self, $key ) = @_;
320                    if ( $key eq 'return' ) {
321                          M6502::_write( 0xfc, 13 );                          M6502::_write( 0xfc, 13 );
322                          return 0;                          return 0;
323                  },                  } elsif ( $self->key_down( 'left ctrl' ) || $self->key_down( 'right ctrl' ) ) {
324                  'left ctrl'  => 16,                          return 16;
325                  'right ctrl' => 16,                  }
326          },          },
327          0x87FA => {          0x87FA => {
328                  'f4' => 16,                  'f4' => 16,
# Line 329  my $keyboard = { Line 330  my $keyboard = {
330                  'f2' => 192,                  'f2' => 192,
331                  'f1' => 224,                  'f1' => 224,
332          },          },
333          0x87FB => {          0x87FB => sub {
334                  'space' => 32,                  my ( $self, $key ) = @_;
335                  'left shift' => 16,                  if ( $key eq 'space' ) {
336                  'right shift' => 16,                          return 32;
337                    } elsif ( $self->key_down( 'left shift' ) || $self->key_down( 'right shift' ) ) {
338                            return 16;
339                    }
340          },          },
341          0x87F6 => {          0x87F6 => {
342                  '6' => 16,                  '6' => 16,
# Line 395  my $keyboard = { Line 399  my $keyboard = {
399                  'v' => 16,                  'v' => 16,
400          },          },
401          0x85FE => {          0x85FE => {
402                  ':' => 16,                  ';' => sub { $_[0]->key_down('left shift') ? 16 : 224 },
403                  '\\' => 128,                  '\\' => 128,
404                  '\'' => 192,                  '\'' => 192,
405                  ';' => 224,  #               ';' => 224,
406                  '8' => 16,      # FIXME?                  '8' => 16,      # FIXME?
407          },          },
408          0x85FF => {          0x85FF => {
# Line 433  sub read { Line 437  sub read {
437                  warn sprintf("keyboard port: %04x\n",$addr) if $self->trace;                  warn sprintf("keyboard port: %04x\n",$addr) if $self->trace;
438                  my $key = $self->key_pressed;                  my $key = $self->key_pressed;
439                  if ( defined($key) ) {                  if ( defined($key) ) {
440                            my $ret = $keyboard_none;
441                          my $r = $keyboard->{$addr} || confess "no definition for keyboard port found";                          my $r = $keyboard->{$addr} || confess "no definition for keyboard port found";
442                          if ( my $ret = $r->{$key} ) {                          if ( ref($r) eq 'CODE' ) {
443                                    $ret = $r->($self, $key);
444                            } elsif ( $ret = $r->{$key} ) {
445                                  if ( ref($ret) eq 'CODE' ) {                                  if ( ref($ret) eq 'CODE' ) {
446                                          $ret = $ret->();                                          $ret = $ret->($self);
447                                          warn "executed $key and got: $ret\n";                                          warn "executed $key and got: $ret\n";
448                                  } else {                                  } else {
449                                          warn sprintf("keyboard port: %04x key: '%s' code: %02x\n", $addr, $key, $ret);                                          warn sprintf("keyboard port: %04x key: '%s' code: %02x\n", $addr, $key, $ret);

Legend:
Removed from v.102  
changed lines
  Added in v.103

  ViewVC Help
Powered by ViewVC 1.1.26