Skip to content

Commit a7f5ded

Browse files
committed
Auto-format all the things
1 parent ad85ad9 commit a7f5ded

18 files changed

+431
-382
lines changed

docs/index.html

Lines changed: 106 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,110 @@
1-
<!doctype html>
1+
<!DOCTYPE html>
22
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1" />
6+
<title>Silicon8</title>
7+
<link rel="icon" type="image/x-icon" href="favicon.ico" />
8+
<link href="style/app/index.css" rel="stylesheet" />
9+
<script type="module" src="js/app/index.js"></script>
310

4-
<head>
5-
<meta charset="utf-8">
6-
<meta name="viewport" content="width=device-width, initial-scale=1">
7-
<title>Silicon8</title>
8-
<link rel="icon" type="image/x-icon" href="favicon.ico" />
9-
<link href="style/app/index.css" rel="stylesheet" />
10-
<script type="module" src="js/app/index.js"></script>
11+
<!-- Global site tag (gtag.js) - Google Analytics -->
12+
<script
13+
async
14+
src="https://www.googletagmanager.com/gtag/js?id=G-SERBNVPJ42"
15+
></script>
16+
<script>
17+
window.dataLayer = window.dataLayer || [];
18+
function gtag() {
19+
dataLayer.push(arguments);
20+
}
21+
gtag("js", new Date());
22+
gtag("config", "G-SERBNVPJ42");
23+
</script>
24+
</head>
1125

12-
<!-- Global site tag (gtag.js) - Google Analytics -->
13-
<script async src="https://www.googletagmanager.com/gtag/js?id=G-SERBNVPJ42"></script>
14-
<script>
15-
window.dataLayer = window.dataLayer || [];
16-
function gtag(){dataLayer.push(arguments);}
17-
gtag('js', new Date());
18-
gtag('config', 'G-SERBNVPJ42');
19-
</script>
20-
</head>
26+
<body>
27+
<div class="display-wrapper">
28+
<canvas id="display"></canvas>
29+
</div>
2130

22-
<body>
23-
<div class="display-wrapper">
24-
<canvas id="display"></canvas>
25-
</div>
31+
<div class="notification"></div>
2632

27-
<div class="notification"></div>
33+
<div class="keyboard left-keyboard">
34+
<button data-value="1">1</button> <button data-value="2">2</button>
35+
<button data-value="4">4</button> <button data-value="5">5</button>
36+
<button data-value="7">7</button> <button data-value="8">8</button>
37+
<button data-value="10">A</button> <button data-value="0">0</button>
38+
</div>
39+
<div class="keyboard right-keyboard">
40+
<button data-value="3">3</button> <button data-value="12">C</button>
41+
<button data-value="6">6</button> <button data-value="13">D</button>
42+
<button data-value="9">9</button> <button data-value="14">E</button>
43+
<button data-value="11">B</button> <button data-value="15">F</button>
44+
</div>
2845

29-
<div class="keyboard left-keyboard">
30-
<button data-value="1">1</button> <button data-value="2">2</button>
31-
<button data-value="4">4</button> <button data-value="5">5</button>
32-
<button data-value="7">7</button> <button data-value="8">8</button>
33-
<button data-value="10">A</button> <button data-value="0">0</button>
34-
</div>
35-
<div class="keyboard right-keyboard">
36-
<button data-value="3">3</button> <button data-value="12">C</button>
37-
<button data-value="6">6</button> <button data-value="13">D</button>
38-
<button data-value="9">9</button> <button data-value="14">E</button>
39-
<button data-value="11">B</button> <button data-value="15">F</button>
40-
</div>
41-
42-
<div class="settings">
43-
<div class="nes-container">
44-
<h3>Interpreter type</h3>
45-
<label>
46-
<input type="radio" class="nes-radio is-dark" name="interpreter" value="0" checked>
47-
<span>Auto-detect</span>
48-
</label>
49-
<label>
50-
<input type="radio" class="nes-radio is-dark" name="interpreter" value="1">
51-
<span>VIP</span>
52-
</label>
53-
<label>
54-
<input type="radio" class="nes-radio is-dark" name="interpreter" value="3">
55-
<span>SCHIP</span>
56-
</label>
57-
<label>
58-
<input type="radio" class="nes-radio is-dark" name="interpreter" value="4">
59-
<span>XO-CHIP</span>
60-
</label>
61-
</div>
62-
<div class="nes-container">
63-
<h3>Execution speed</h3>
64-
<div class="nes-select">
65-
<select name="speed">
66-
<option value="7">420Hz - 7 cycles per frame</option>
67-
<option value="15">900Hz - 15 cycles per frame</option>
68-
<option value="20">1.2KHz - 20 cycles per frame</option>
69-
<option value="30" selected>1.8KHz - 30 cycles per frame</option>
70-
<option value="100">6KHz - 100 cycles per frame</option>
71-
<option value="200">12KHz - 200 cycles per frame</option>
72-
<option value="500">30KHz - 500 cycles per frame</option>
73-
<option value="1000">60KHz - 1000 cycles per frame</option>
74-
<option value="20000">1.2MHz - Octo Ludicrous speed</option>
75-
<option value="50000">3MHz - 50000 cycles per frame</option>
76-
<option value="100000">6MHz - 100000 cycles per frame</option>
77-
<option value="200000">12MHz - 200000 cycles per frame</option>
78-
<option value="400000">24MHz - 400000 cycles per frame</option>
79-
</select>
80-
</div>
81-
</div>
82-
<!---
46+
<div class="settings">
47+
<div class="nes-container">
48+
<h3>Interpreter type</h3>
49+
<label>
50+
<input
51+
type="radio"
52+
class="nes-radio is-dark"
53+
name="interpreter"
54+
value="0"
55+
checked
56+
/>
57+
<span>Auto-detect</span>
58+
</label>
59+
<label>
60+
<input
61+
type="radio"
62+
class="nes-radio is-dark"
63+
name="interpreter"
64+
value="1"
65+
/>
66+
<span>VIP</span>
67+
</label>
68+
<label>
69+
<input
70+
type="radio"
71+
class="nes-radio is-dark"
72+
name="interpreter"
73+
value="3"
74+
/>
75+
<span>SCHIP</span>
76+
</label>
77+
<label>
78+
<input
79+
type="radio"
80+
class="nes-radio is-dark"
81+
name="interpreter"
82+
value="4"
83+
/>
84+
<span>XO-CHIP</span>
85+
</label>
86+
</div>
87+
<div class="nes-container">
88+
<h3>Execution speed</h3>
89+
<div class="nes-select">
90+
<select name="speed">
91+
<option value="7">420Hz - 7 cycles per frame</option>
92+
<option value="15">900Hz - 15 cycles per frame</option>
93+
<option value="20">1.2KHz - 20 cycles per frame</option>
94+
<option value="30" selected>1.8KHz - 30 cycles per frame</option>
95+
<option value="100">6KHz - 100 cycles per frame</option>
96+
<option value="200">12KHz - 200 cycles per frame</option>
97+
<option value="500">30KHz - 500 cycles per frame</option>
98+
<option value="1000">60KHz - 1000 cycles per frame</option>
99+
<option value="20000">1.2MHz - Octo Ludicrous speed</option>
100+
<option value="50000">3MHz - 50000 cycles per frame</option>
101+
<option value="100000">6MHz - 100000 cycles per frame</option>
102+
<option value="200000">12MHz - 200000 cycles per frame</option>
103+
<option value="400000">24MHz - 400000 cycles per frame</option>
104+
</select>
105+
</div>
106+
</div>
107+
<!---
83108
<fieldset id="xo-colours">
84109
<legend>Colour palette</legend>
85110
<p>?</p>
@@ -89,10 +114,9 @@ <h3>Execution speed</h3>
89114
<p>?</p>
90115
</fieldset>
91116
//-->
92-
<div class="align-right">
93-
<button class="nes-btn is-success">Start!</button>
94-
</div>
95-
</div>
96-
</body>
97-
117+
<div class="align-right">
118+
<button class="nes-btn is-success">Start!</button>
119+
</div>
120+
</div>
121+
</body>
98122
</html>

docs/js/app/display.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
const canvas = document.getElementById('display');
2-
const context = canvas.getContext('2d');
1+
const canvas = document.getElementById("display");
2+
const context = canvas.getContext("2d");
33

44
export default {
55
render: (width, height, bytes) => {
66
canvas.width = width;
77
canvas.height = height;
88
const imageData = context.createImageData(width, height);
9-
for ( let i = 0; i < height * width; i++ ) {
10-
const displayOffset = i * 4;
9+
for (let i = 0; i < height * width; i++) {
10+
const displayOffset = i * 4;
1111
const silicon8Offset = i * 3;
12-
imageData.data[displayOffset+0] = bytes[silicon8Offset+0];
13-
imageData.data[displayOffset+1] = bytes[silicon8Offset+1];
14-
imageData.data[displayOffset+2] = bytes[silicon8Offset+2];
15-
imageData.data[displayOffset+3] = 0xFF;
12+
imageData.data[displayOffset + 0] = bytes[silicon8Offset + 0];
13+
imageData.data[displayOffset + 1] = bytes[silicon8Offset + 1];
14+
imageData.data[displayOffset + 2] = bytes[silicon8Offset + 2];
15+
imageData.data[displayOffset + 3] = 0xff;
1616
}
1717
context.putImageData(imageData, 0, 0);
18-
}
18+
},
1919
};

docs/js/app/emulator.js

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,54 @@
33
import "../lib/wasm_exec.js";
44
const go = new Go();
55

6-
if (!WebAssembly.instantiateStreaming) { // polyfill
6+
if (!WebAssembly.instantiateStreaming) {
7+
// polyfill
78
WebAssembly.instantiateStreaming = async (resp, importObject) => {
89
const source = await (await resp).arrayBuffer();
910
return await WebAssembly.instantiate(source, importObject);
1011
};
1112
}
1213

1314
export default class {
14-
15-
constructor({playSound, stopSound, display}) {
15+
constructor({ playSound, stopSound, display }) {
1616
playSound ||= () => {};
1717
stopSound ||= () => {};
1818
this._running = false;
1919
this._stopSound = stopSound;
2020

2121
Object.assign(go.importObject.env, {
22-
randomByte: () => Math.floor(Math.random() * 256) & 0xFF,
23-
playSound: (playingPattern, pattern, pitch) => {
22+
randomByte: () => Math.floor(Math.random() * 256) & 0xff,
23+
playSound: (playingPattern, pattern, pitch) => {
2424
pattern = new Uint8Array(this._cpu.memory.buffer, pattern, 16);
2525
playSound(playingPattern, pattern, pitch);
2626
},
27-
stopSound: stopSound,
27+
stopSound: stopSound,
2828
render: (width, height, dataPtr) => {
29-
const bytes = new Uint8Array(this._cpu.memory.buffer, dataPtr, width * height * 3);
29+
const bytes = new Uint8Array(
30+
this._cpu.memory.buffer,
31+
dataPtr,
32+
width * height * 3
33+
);
3034
display.render(width, height, bytes);
31-
}
35+
},
3236
});
3337
}
3438

3539
init() {
36-
return WebAssembly.instantiateStreaming(fetch("silicon8.wasm"), go.importObject)
37-
.then(result => {
38-
this._cpu = result.instance.exports;
39-
go.run(result.instance);
40-
this._interval = setInterval(() => {
41-
if (this._running)
42-
this._cpu.clockTick()
43-
}, 1000 / 60);
44-
})
45-
.catch(e => {
46-
console.error(e);
47-
});
40+
return WebAssembly.instantiateStreaming(
41+
fetch("silicon8.wasm"),
42+
go.importObject
43+
)
44+
.then((result) => {
45+
this._cpu = result.instance.exports;
46+
go.run(result.instance);
47+
this._interval = setInterval(() => {
48+
if (this._running) this._cpu.clockTick();
49+
}, 1000 / 60);
50+
})
51+
.catch((e) => {
52+
console.error(e);
53+
});
4854
}
4955

5056
setCyclesPerFrame(newCycles) {
@@ -53,9 +59,14 @@ export default class {
5359

5460
loadProgram(type, program) {
5561
this._cpu.reset(type);
56-
const ram = new Uint8Array(this._cpu.memory.buffer, this._cpu.ramPtr(), this._cpu.ramSize());
62+
const ram = new Uint8Array(
63+
this._cpu.memory.buffer,
64+
this._cpu.ramPtr(),
65+
this._cpu.ramSize()
66+
);
5767
// Load program into RAM
58-
for ( let i = 0x200; i < 0x200 + program.length; i++ ) ram[i] = program[i - 0x200];
68+
for (let i = 0x200; i < 0x200 + program.length; i++)
69+
ram[i] = program[i - 0x200];
5970
}
6071

6172
dumpStatus() {
@@ -78,5 +89,4 @@ export default class {
7889
this._stopSound();
7990
this._running = false;
8091
}
81-
8292
}

0 commit comments

Comments
 (0)