21 |
|
|
22 |
our $debug = 0; |
our $debug = 0; |
23 |
|
|
24 |
our @mem; # = (0xff) x 0x10000; # 64M |
our @mem; |
25 |
|
#@mem = (0xff) x 0x10000; # 64M |
26 |
tie @mem, 'M6502::TieMem'; |
tie @mem, 'M6502::TieMem'; |
27 |
|
|
28 |
# program counter |
# program counter |
89 |
my $self = shift; |
my $self = shift; |
90 |
my $addr = shift; |
my $addr = shift; |
91 |
warn sprintf("## M6502::poke_code(%04x,%s)\n", $addr, dump( @_ )) if $self->debug; |
warn sprintf("## M6502::poke_code(%04x,%s)\n", $addr, dump( @_ )) if $self->debug; |
|
#$mem[$addr++] = $_ foreach @_; |
|
92 |
# call low-level write |
# call low-level write |
93 |
$_rw_hooks->{write}->( $addr++, $_ ) foreach @_; |
#$_rw_hooks->{write}->( $addr++, $_ ) foreach @_; |
94 |
|
$mem[$addr++] = $_ foreach @_; |
95 |
} |
} |
96 |
|
|
97 |
=head2 ram |
=head2 ram |
281 |
my $self = shift; |
my $self = shift; |
282 |
my $n = shift; |
my $n = shift; |
283 |
my $val = M6502::mem_peek( $n ); |
my $val = M6502::mem_peek( $n ); |
284 |
warn sprintf("FETCH %04x = %02x\n", $n, $val); |
# warn sprintf("FETCH %04x = %02x\n", $n, $val); |
285 |
return $val; |
return $val; |
286 |
} |
} |
287 |
|
|
300 |
return; |
return; |
301 |
} |
} |
302 |
M6502::mem_poke( $n, $val ); |
M6502::mem_poke( $n, $val ); |
303 |
warn sprintf("STORE %04x <- %02x\n",$n, $val); |
# warn sprintf("STORE %04x <- %02x\n",$n, $val); |
304 |
return $val; |
return $val; |
305 |
} |
} |
306 |
|
|