mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-11-23 21:31:20 +00:00
vic20: default tiny bios
This commit is contained in:
parent
1c0b3e2fdd
commit
a252ea65bd
5
presets/vic20/cartheader.dasm
Normal file
5
presets/vic20/cartheader.dasm
Normal file
@ -0,0 +1,5 @@
|
||||
org $a000-2 ; so we can write the ...
|
||||
.word $a000 ; cartridge 2-byte header
|
||||
.word Start ; start vector
|
||||
.word Start ; RESTORE vector
|
||||
.byte $41, $30, $c3, $c2, $cd ; "A0CBM"
|
@ -66,13 +66,16 @@ export abstract class BaseWASMMachine {
|
||||
this.exports = wasmResult.exports;
|
||||
} else throw new Error('could not load WASM file');
|
||||
}
|
||||
allocateBIOS(biosBinary: Uint8Array) {
|
||||
this.biosptr = this.exports.malloc(biosBinary.byteLength);
|
||||
this.biosarr = new Uint8Array(this.exports.memory.buffer, this.biosptr, biosBinary.byteLength);
|
||||
}
|
||||
async fetchBIOS() {
|
||||
var biosResponse = await fetch('res/'+this.prefix+'.bios');
|
||||
if (biosResponse.status == 200 || (biosResponse as any as Blob).size) {
|
||||
var biosBinary = await biosResponse.arrayBuffer();
|
||||
this.biosptr = this.exports.malloc(biosBinary.byteLength);
|
||||
this.biosarr = new Uint8Array(this.exports.memory.buffer, this.biosptr, biosBinary.byteLength);
|
||||
this.loadBIOS(new Uint8Array(biosBinary));
|
||||
var biosBinary = new Uint8Array(await biosResponse.arrayBuffer());
|
||||
this.allocateBIOS(biosBinary);
|
||||
this.loadBIOS(biosBinary);
|
||||
} else throw new Error('could not load BIOS file');
|
||||
}
|
||||
async initWASM() {
|
||||
|
@ -26,6 +26,12 @@ export class VIC20_WASMMachine extends BaseWASMMachine implements Machine, Probe
|
||||
loadBIOS(srcArray: Uint8Array) {
|
||||
super.loadBIOS(srcArray);
|
||||
}
|
||||
async fetchBIOS() {
|
||||
let bios = new Uint8Array(20480);
|
||||
bios.set(DEFAULT_BIOS, bios.length - DEFAULT_BIOS.length);
|
||||
this.allocateBIOS(bios);
|
||||
this.loadBIOS(new Uint8Array(bios));
|
||||
}
|
||||
reset() {
|
||||
super.reset();
|
||||
// clear keyboard
|
||||
@ -170,3 +176,19 @@ export class VIC20_WASMMachine extends BaseWASMMachine implements Machine, Probe
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// pretty much just runs autostart ROM and not much else...
|
||||
const DEFAULT_BIOS = [
|
||||
0xA2, 0x10, 0xA0, 0x91, 0x60, 0x71, 0xFF, 0x71, 0xFF, 0x5C, 0xFF, 0xA2, 0xFF, 0x78, 0x9A, 0xD8,
|
||||
0x6C, 0x00, 0xA0, 0xA2, 0x45, 0xA0, 0xFF, 0x18, 0x78, 0x6C, 0x18, 0x03, 0x48, 0x8A, 0x48, 0x98,
|
||||
0x48, 0xAD, 0x1D, 0x91, 0x10, 0x03, 0x6C, 0x02, 0xA0, 0x4C, 0x6C, 0xFF, 0x68, 0xA8, 0x68, 0xAA,
|
||||
0x68, 0x40, 0x48, 0x8A, 0x48, 0x98, 0x48, 0xBA, 0xBD, 0x04, 0x01, 0x29, 0x10, 0xF0, 0x03, 0x6C,
|
||||
0x16, 0x03, 0x6C, 0x14, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x53, 0xFF, 0x4C, 0x44, 0xFF,
|
||||
0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C,
|
||||
0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44,
|
||||
0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF,
|
||||
0x6C, 0x1A, 0x03, 0x6C, 0x1C, 0x03, 0x6C, 0x1E, 0x03, 0x6C, 0x20, 0x03, 0x6C, 0x22, 0x03, 0x6C,
|
||||
0x24, 0x03, 0x6C, 0x26, 0x03, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF, 0x4C, 0x44,
|
||||
0xFF, 0x6C, 0x28, 0x03, 0x6C, 0x2A, 0x03, 0x6C, 0x2C, 0x03, 0x4C, 0x44, 0xFF, 0x4C, 0x44, 0xFF,
|
||||
0x4C, 0x44, 0xFF, 0x4C, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x58, 0xFF, 0x4B, 0xFF, 0x72, 0xFF
|
||||
];
|
||||
|
@ -5,9 +5,9 @@ import { PLATFORMS } from "../common/emu";
|
||||
import { BaseMAME6502Platform } from "../common/mameplatform";
|
||||
|
||||
const VIC20_PRESETS = [
|
||||
{id:'hello.dasm', name:'Hello World (ASM)'},
|
||||
// {id:'hello.dasm', name:'Hello World (ASM)'},
|
||||
{id:'hellocart.dasm', name:'Hello Cartridge (ASM)'},
|
||||
{id:'siegegame.c', name:'Siege Game (C)'},
|
||||
// {id:'siegegame.c', name:'Siege Game (C)'},
|
||||
];
|
||||
|
||||
const VIC20_MEMORY_MAP = { main:[
|
||||
|
Loading…
Reference in New Issue
Block a user