--- Galaksija.pm 2007/08/06 07:04:40 165 +++ Galaksija.pm 2007/09/29 12:07:12 178 @@ -8,6 +8,7 @@ use Data::Dump qw/dump/; use Z80; use Screen; +use Time::HiRes qw/time/; use base qw(Class::Accessor VRac Z80 Screen Prefs Session); __PACKAGE__->mk_accessors(qw(booted)); @@ -94,7 +95,8 @@ my $hor_pos = 0; $self->loop( sub { - Z80::exec( $_[0] ); + my $run_for = shift; + Z80::exec( $run_for ); if ( $hor_pos != $mem[ 0x2ba8 ] ) { warn "scroll 0x2ba8", $self->hexdump( 0x2ba8 ); $hor_pos = $mem[ 0x2ba8 ]; @@ -156,8 +158,8 @@ 'a' .. 'z', qw/up down left right space/, '0' .. '9', - ':', '"', ',', '=', '.', '/', 'enter', 'tab', - 'left alt', 'delete', 'scroll lock', 'left shift' + ':', '"', ',', '=', '.', '/', 'return', 'tab', + 'left alt', 'backspace', 'scroll lock', 'left shift' ); my $remap; @@ -174,7 +176,7 @@ sub key_down { my ( $self, $key ) = @_; - warn "key down: $key ", $remap->{$key}; + warn "registered key down: $key ", $remap->{$key}; $self->write( 0x2000 + $remap->{$key}, 0xfe ); } @@ -184,7 +186,7 @@ sub key_up { my ( $self, $key ) = @_; - warn "key up: $key ", $remap->{$key}; + warn "registred key up: $key ", $remap->{$key}; $self->write( 0x2000 + $remap->{$key}, 0xff ); } @@ -217,6 +219,8 @@ sub render_vram { my $self = shift; + my $t = time(); + my $addr = 0x2800; my @pixels = ("\x00") x ( 32 * 16 * 13 ); @@ -242,11 +246,13 @@ -pitch => 32, # bytes per line -from => pack("C*", @pixels), ); - $vram->set_colors( 0, $black, $white ); + $vram->set_colors( 0, $white, $black ); $self->render_frame( $vram ); # $self->render_vram_text; + + printf("frame in %.2fs\n", time()-$t); }