mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-11-22 14:33:51 +00:00
c64: reset() fixed for ROM cart
This commit is contained in:
parent
3eb942e926
commit
abb1c3fb3e
@ -196,13 +196,14 @@ TODO:
|
|||||||
- emu doesn't reset properly (after gotoxy() BIOS call)
|
- emu doesn't reset properly (after gotoxy() BIOS call)
|
||||||
- disk image support
|
- disk image support
|
||||||
- https://github.com/cc65/cc65/issues/946
|
- https://github.com/cc65/cc65/issues/946
|
||||||
- sample buffer skips
|
- sample buffer skips (need to sync w/ vsync)
|
||||||
|
|
||||||
- upgrade to ES2020?
|
- upgrade to ES2020?
|
||||||
- https://github.com/microsoft/TypeScript/issues/16577
|
- https://github.com/microsoft/TypeScript/issues/16577
|
||||||
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
|
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
|
||||||
- need Edge 79+
|
- need Edge 79+
|
||||||
- no import in workers
|
- no import in workers
|
||||||
|
- copy to gen/ directory (allowJs is weird)
|
||||||
|
|
||||||
|
|
||||||
WEB WORKER FORMAT
|
WEB WORKER FORMAT
|
||||||
|
@ -586,9 +586,10 @@ export class C64_WASMMachine extends BaseWASMMachine implements Machine {
|
|||||||
for (var ch=0; ch<128; ch++) {
|
for (var ch=0; ch<128; ch++) {
|
||||||
this.setKeyInput(ch, 0, KeyFlags.KeyUp);
|
this.setKeyInput(ch, 0, KeyFlags.KeyUp);
|
||||||
}
|
}
|
||||||
if (this.prgstart) {
|
// is program loaded into RAM?
|
||||||
// advance BIOS
|
if (this.prgstart < 0x8000) {
|
||||||
super.advanceFrameClock(null, 180000);
|
// advance BIOS a few frames
|
||||||
|
this.exports.machine_exec(this.sys, 150000);
|
||||||
// set IRQ routine @ 0x314
|
// set IRQ routine @ 0x314
|
||||||
var old0x314 = this.read(0x314) + this.read(0x315) * 256;
|
var old0x314 = this.read(0x314) + this.read(0x315) * 256;
|
||||||
this.write(0x314, 0x0d);
|
this.write(0x314, 0x0d);
|
||||||
@ -600,6 +601,15 @@ export class C64_WASMMachine extends BaseWASMMachine implements Machine {
|
|||||||
// reset 0x314 to old value
|
// reset 0x314 to old value
|
||||||
this.write(0x314, old0x314 & 0xff);
|
this.write(0x314, old0x314 & 0xff);
|
||||||
this.write(0x315, old0x314 >> 8);
|
this.write(0x315, old0x314 >> 8);
|
||||||
|
} else {
|
||||||
|
// get out of reset
|
||||||
|
this.exports.machine_exec(this.sys, 100);
|
||||||
|
// wait until cartridge start
|
||||||
|
// TODO: detect ROM cartridge
|
||||||
|
var warmstart = this.romarr[0x4] + this.romarr[0x5]*256;
|
||||||
|
for (var i=0; i<150000 && this.getPC() != warmstart; i++) {
|
||||||
|
this.exports.machine_tick(this.sys);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
advanceFrame(trap: TrapCondition) : number {
|
advanceFrame(trap: TrapCondition) : number {
|
||||||
|
Loading…
Reference in New Issue
Block a user