mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-12-22 12:30:01 +00:00
atari8: fixed help links
This commit is contained in:
parent
162113b915
commit
20954fd5ce
@ -165,13 +165,13 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
||||
<a tabindex="-1" href="#">Computers</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="?platform=c64">Commodore 64</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=atari8-800">Atari 800</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=msx">MSX (BIOS)</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=msx-libcv">MSX (libCV)</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=apple2">Apple ][+</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=zx">ZX Spectrum</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=x86">x86 (FreeDOS)</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=cpc.6128">Amstrad CPC6128</a></li>
|
||||
<li><a class="dropdown-item" href="?platform=atari8-800">Atari 800</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown dropdown-submenu">
|
||||
|
@ -369,17 +369,17 @@ x................... .. .. ..
|
||||
const activity = Standing
|
||||
decode vcs_sprite
|
||||
---
|
||||
..xxx... f8
|
||||
.xxxxx.. f8
|
||||
..xxx... f4
|
||||
.xxxxx.. f6
|
||||
x.xxxx.. f8
|
||||
.xxx.x.. f8
|
||||
.xxx.x.. 0c
|
||||
x.xxxxx. f8
|
||||
x.xxxx.. f8
|
||||
..xx.... f8
|
||||
..xxxx.. f8
|
||||
...xxx.. f8
|
||||
...xx... f8
|
||||
...xx... f8
|
||||
...xx... f6
|
||||
...xx... f6
|
||||
..xxx... 38
|
||||
..xxx... 48
|
||||
.x.xxx.. 58
|
||||
|
@ -42,14 +42,6 @@ system MusicPlayer
|
||||
{{!musicpulse}} ; update song
|
||||
{{!musicframe}} ; update registers
|
||||
---
|
||||
on prekernel do once
|
||||
---
|
||||
{{!musicframe}} ; update registers
|
||||
---
|
||||
on postkernel do once
|
||||
---
|
||||
{{!musicframe}} ; update registers
|
||||
---
|
||||
on postframe do once
|
||||
---
|
||||
{{!musicframe}} ; update registers
|
||||
|
@ -430,112 +430,3 @@ export class Atari5200 extends Atari800 {
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
|
||||
export class Atari8_WASMMachine extends BaseWASIMachine
|
||||
implements Machine, Probeable, VideoSource, AcceptsROM, FrameBased, AcceptsKeyInput, AcceptsPaddleInput {
|
||||
|
||||
numTotalScanlines = 312;
|
||||
cpuCyclesPerLine = 63;
|
||||
|
||||
prgstart: number;
|
||||
joymask0 = 0;
|
||||
joymask1 = 0;
|
||||
|
||||
loadROM(rom: Uint8Array) {
|
||||
super.loadROM(rom);
|
||||
this.reloadROM();
|
||||
}
|
||||
reloadROM() {
|
||||
if (this.sys) {
|
||||
var result = this.exports.machine_load_rom(this.sys, this.romptr, this.romlen);
|
||||
console.log('machine_load_rom', result);
|
||||
//console.log(this.wasmFs.fs.existsSync('atari8.img'), result);
|
||||
}
|
||||
}
|
||||
loadBIOS(srcArray: Uint8Array) {
|
||||
super.loadBIOS(srcArray);
|
||||
}
|
||||
reset() {
|
||||
this.reloadROM();
|
||||
}
|
||||
advanceFrame(trap: TrapCondition): number {
|
||||
// TODO
|
||||
this.exports.machine_start_frame(this.sys);
|
||||
if (trap) {
|
||||
this.advanceFrameClock(trap, 999999); // TODO?
|
||||
} else {
|
||||
this.exports.machine_advance_frame(this.sys);
|
||||
}
|
||||
this.syncVideo();
|
||||
this.syncAudio();
|
||||
return 1;
|
||||
}
|
||||
getCPUState() {
|
||||
this.exports.machine_save_cpu_state(this.sys, this.stateptr);
|
||||
var s = this.statearr;
|
||||
var pc = s[6] + (s[7] << 8);
|
||||
return {
|
||||
PC: pc,
|
||||
SP: s[2],
|
||||
A: s[0],
|
||||
X: s[3],
|
||||
Y: s[4],
|
||||
C: s[1] & 1,
|
||||
Z: s[1] & 2,
|
||||
I: s[1] & 4,
|
||||
D: s[1] & 8,
|
||||
V: s[1] & 64,
|
||||
N: s[1] & 128,
|
||||
o: this.readConst(pc),
|
||||
}
|
||||
}
|
||||
saveState() {
|
||||
var cpu = this.getCPUState();
|
||||
this.exports.machine_save_state(this.sys, this.stateptr);
|
||||
return {
|
||||
c: cpu,
|
||||
state: this.statearr.slice(0),
|
||||
//ram:this.statearr.slice(18640, 18640+0x200), // ZP and stack
|
||||
};
|
||||
}
|
||||
loadState(state): void {
|
||||
this.statearr.set(state.state);
|
||||
this.exports.machine_load_state(this.sys, this.stateptr);
|
||||
}
|
||||
getVideoParams() {
|
||||
return { width: 384, height: 240, overscan: true, videoFrequency: 60 };
|
||||
}
|
||||
pollControls() {
|
||||
}
|
||||
setKeyInput(key: number, code: number, flags: number): void {
|
||||
// modifier flags
|
||||
if (flags & KeyFlags.Shift) key |= 0x100;
|
||||
if (flags & KeyFlags.Ctrl) key |= 0x200;
|
||||
// keyboard -> joystick
|
||||
var mask = 0;
|
||||
if (key == 37) { key = 0x8; mask = 0x4; } // LEFT
|
||||
if (key == 38) { key = 0xb; mask = 0x1; } // UP
|
||||
if (key == 39) { key = 0x9; mask = 0x8; } // RIGHT
|
||||
if (key == 40) { key = 0xa; mask = 0x2; } // DOWN
|
||||
if (key == 32) { mask = 0x100; } // FIRE
|
||||
// set machine inputs
|
||||
if (flags & KeyFlags.KeyDown) {
|
||||
this.exports.machine_key_down(this.sys, key);
|
||||
this.joymask0 |= mask;
|
||||
} else if (flags & KeyFlags.KeyUp) {
|
||||
this.exports.machine_key_up(this.sys, key);
|
||||
this.joymask0 &= ~mask;
|
||||
}
|
||||
this.setJoyInput(0, this.joymask0);
|
||||
this.setJoyInput(1, this.joymask1);
|
||||
}
|
||||
setJoyInput(joy: number, mask: number) {
|
||||
this.exports.machine_joy_set(this.sys, joy, mask);
|
||||
}
|
||||
setPaddleInput(controller: number, value: number): void {
|
||||
this.exports.machine_paddle_set(this.sys, controller, value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -77,12 +77,7 @@ abstract class Atari8MAMEPlatform extends BaseMAME6502Platform {
|
||||
getToolForFilename = getToolForFilename_Atari8;
|
||||
getOpcodeMetadata = getOpcodeMetadata_6502;
|
||||
getDefaultExtension() { return ".asm"; };
|
||||
showHelp(tool:string, ident:string) {
|
||||
if (tool == 'fastbasic')
|
||||
window.open("https://github.com/dmsc/fastbasic/blob/master/manual.md", "_help");
|
||||
else
|
||||
window.open("https://atariwiki.org/wiki/Wiki.jsp?page=Assembler", "_help"); // TODO
|
||||
}
|
||||
showHelp = atari8_showHelp;
|
||||
}
|
||||
|
||||
class Atari800MAMEPlatform extends Atari8MAMEPlatform implements Platform {
|
||||
@ -152,8 +147,11 @@ function atari8_getROMExtension(rom: Uint8Array) {
|
||||
else return ".rom";
|
||||
}
|
||||
|
||||
function atari8_showHelp() {
|
||||
return "https://8bitworkshop.com/docs/platforms/atari8/";
|
||||
function atari8_showHelp(tool: string, ident: string) {
|
||||
if (tool == 'fastbasic')
|
||||
window.open("https://github.com/dmsc/fastbasic/blob/master/manual.md", "_help");
|
||||
else
|
||||
window.open("https://8bitworkshop.com/docs/platforms/atari8/", "_help");
|
||||
}
|
||||
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user