--- Galaksija.pm 2007/08/04 23:01:25 139 +++ Galaksija.pm 2007/08/05 14:08:01 148 @@ -90,8 +90,14 @@ Z80::reset(); + my $hor_pos = 0; + $self->loop( sub { Z80::exec( $_[0] ); + if ( $hor_pos != $mem[ 0x2ba8 ] ) { + warn "scroll 0x2ba8", $self->hexdump( 0x2ba8 ); + $hor_pos = $mem[ 0x2ba8 ]; + } $self->render_vram; }); @@ -110,8 +116,6 @@ =cut -my $keyboard_none = 255; - my $keyboard = {}; sub read { @@ -138,6 +142,8 @@ my ($addr,$byte) = @_; warn sprintf("# Galaksija::write(%04x,%02x)\n", $addr, $byte) if $self->trace; + return if ( $addr > 0x4000 ); + $self->mmap_pixel( $addr, $byte, 0, 0 ) if $self->show_mem; $mem[$addr] = $byte; return; @@ -161,9 +167,15 @@ my $dump; for my $y ( 0 .. 15 ) { - $dump .= sprintf "%2d: %s\n",$y, join('', map { sprintf("%02x ",$_) } @mem[ $addr .. $addr+31 ] ); +# $dump .= sprintf "%2d: %s\n",$y, join('', map { sprintf("%02x ",$_) } @mem[ $addr .. $addr+31 ] ); + $dump .= sprintf "%2d: %s\n",$y, join('', map { chr( $_ ) } @mem[ $addr .. $addr+31 ] ); $addr += 32; } + + if ( $mem[ 0x2bb0 ] ) { + warn "scroll", $self->hexdump( 0x2bb0 ); + } + if ( $dump ne $last_dump ) { print $dump; $last_dump = $dump; @@ -193,14 +205,17 @@ Dobrica Pavlinusic, C<< >> -Based on Galaxy Win emulator L - =head1 BUGS +Galaksija Plus isn't emulated. I don't have additional rom, but I would +B to have support for this machine. So if you have ROM for Galaksija +Plus, get in touch! + =head1 ACKNOWLEDGEMENTS -See also L<> which is source of all -info about this machine (and even hardware implementation from 2007). +Based on Galaxy emulator L for Windows which +is in turn based on DOS version by Miodrag Jevremoviæ +L. =head1 COPYRIGHT & LICENSE