ac6502 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +136 -29
- package/dist/index.js +30 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +30 -7
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# 6502
|
|
1
|
+
# 6502 EMULATOR
|
|
2
2
|
|
|
3
3
|
A comprehensive, cycle-accurate emulator for the [A.C. Wright 6502](https://github.com/acwright/6502) computer system, built with TypeScript and Node.js.
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
This emulator provides a complete software implementation of a 65C02-based computer system, designed to run the same code as the hardware implementation. It features full I/O peripheral support, including video, sound, serial communication, storage, and GPIO interfaces.
|
|
7
|
+
This emulator provides a complete software implementation of a 65C02-based computer system, designed to run the same code as the hardware implementation. It features full I/O peripheral support, including video, sound, serial communication, storage, and GPIO interfaces. The emulator supports four different system configurations (targets) to accommodate various use cases from full-featured systems to minimal development boards.
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -26,22 +26,24 @@ This emulator provides a complete software implementation of a 65C02-based compu
|
|
|
26
26
|
- Real-time rendering via SDL
|
|
27
27
|
|
|
28
28
|
- **Audio Output**
|
|
29
|
-
- MOS
|
|
29
|
+
- MOS 6581 SID Sound card emulation with sample generation
|
|
30
30
|
- 44.1 kHz audio output
|
|
31
31
|
- SDL audio integration
|
|
32
32
|
|
|
33
33
|
- **I/O Peripherals**
|
|
34
|
-
- **Serial Card**: 6551 UART communication with configurable baud rate, parity, data/stop bits
|
|
34
|
+
- **Serial Card (ACIA)**: 6551 UART communication with configurable baud rate, parity, data/stop bits
|
|
35
35
|
- **Storage Card**: Compact Flash 8-bit IDE mode persistent storage emulation
|
|
36
36
|
- **RTC Card**: DS1511Y real-time clock emulation with IRQ/NMI support
|
|
37
|
-
- **GPIO Card**: 65C22 VIA (Versatile Interface Adapter) emulation
|
|
37
|
+
- **GPIO Card (VIA)**: 65C22 VIA (Versatile Interface Adapter) emulation
|
|
38
38
|
- Two 8-bit bidirectional I/O ports
|
|
39
39
|
- Two 16-bit timers with interrupts
|
|
40
40
|
- Shift register for serial I/O
|
|
41
|
+
- **Terminal Card**: VTAC fantasy terminal emulation for text-based development
|
|
41
42
|
|
|
42
43
|
- **Input Devices**
|
|
43
44
|
- Keyboard support (matrix and encoder modes)
|
|
44
|
-
- Joystick/gamepad support with button mapping
|
|
45
|
+
- Joystick/gamepad support with button mapping (dual controller support)
|
|
46
|
+
- Keypad support (KIM mode)
|
|
45
47
|
- SDL input handling
|
|
46
48
|
|
|
47
49
|
- **Development Features**
|
|
@@ -58,11 +60,16 @@ Get up and running in seconds:
|
|
|
58
60
|
# Install globally
|
|
59
61
|
npm install -g ac6502
|
|
60
62
|
|
|
61
|
-
# Run the emulator
|
|
63
|
+
# Run the emulator (default COB target)
|
|
62
64
|
ac6502
|
|
63
65
|
|
|
64
66
|
# Load a ROM
|
|
65
67
|
ac6502 --rom /path/to/rom.bin
|
|
68
|
+
|
|
69
|
+
# Run in different system configurations
|
|
70
|
+
ac6502 --target kim --rom /path/to/kim.bin
|
|
71
|
+
ac6502 --target dev --cart /path/to/program.bin
|
|
72
|
+
ac6502 --target vcs --cart /path/to/game.bin
|
|
66
73
|
```
|
|
67
74
|
|
|
68
75
|
## Installation
|
|
@@ -88,7 +95,7 @@ npm install -g ac6502
|
|
|
88
95
|
npm install
|
|
89
96
|
```
|
|
90
97
|
|
|
91
|
-
|
|
98
|
+
#### Build
|
|
92
99
|
|
|
93
100
|
```bash
|
|
94
101
|
npm run build
|
|
@@ -112,14 +119,17 @@ ac6502 [options]
|
|
|
112
119
|
|
|
113
120
|
- `-c, --cart <path>` - Load a cartridge ROM file
|
|
114
121
|
- `-r, --rom <path>` - Load a system ROM file
|
|
115
|
-
- `-f, --freq <frequency>` - Set CPU frequency in Hz (default:
|
|
116
|
-
- `-s, --scale <factor>` - Set display scale factor (default:
|
|
122
|
+
- `-f, --freq <frequency>` - Set CPU frequency in Hz (default: 1000000)
|
|
123
|
+
- `-s, --scale <factor>` - Set display scale factor (default: 1)
|
|
124
|
+
- `-T, --target <target>` - System target: cob, vcs, kim, dev (default: cob)
|
|
117
125
|
- `-p, --port <device>` - Serial port device path
|
|
118
126
|
- `-b, --baudrate <rate>` - Serial baud rate (default: 9600)
|
|
119
127
|
- `-a, --parity <type>` - Serial parity: none, even, odd (default: none)
|
|
120
128
|
- `-d, --databits <bits>` - Serial data bits: 5, 6, 7, 8 (default: 8)
|
|
121
129
|
- `-t, --stopbits <bits>` - Serial stop bits: 1, 1.5, 2 (default: 1)
|
|
122
130
|
- `-S, --storage <path>` - Set storage file path for Compact Flash card persistence
|
|
131
|
+
- `-v, --version` - Output the current emulator version
|
|
132
|
+
- `-h, --help` - Output help / options
|
|
123
133
|
|
|
124
134
|
### Examples
|
|
125
135
|
|
|
@@ -135,12 +145,36 @@ Connect to serial hardware:
|
|
|
135
145
|
ac6502 --port /dev/ttyUSB0 --baudrate 9600 --rom /path/to/monitor.bin
|
|
136
146
|
```
|
|
137
147
|
|
|
148
|
+
Run in KIM mode with LCD and keypad:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
ac6502 --target kim --rom /path/to/kim.bin --scale 2
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Run in development mode with terminal:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
ac6502 --target dev --cart /path/to/program.bin
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Set custom CPU frequency and storage:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
ac6502 --freq 2000000 --storage ./disk.img --cart /path/to/program.bin
|
|
164
|
+
```
|
|
165
|
+
|
|
138
166
|
## Architecture
|
|
139
167
|
|
|
140
|
-
###
|
|
168
|
+
### System Targets
|
|
169
|
+
|
|
170
|
+
The emulator supports four different system configurations via the `--target` option:
|
|
171
|
+
|
|
172
|
+
#### COB (Complete On-Board) - Default
|
|
173
|
+
|
|
174
|
+
Full-featured system with all peripherals:
|
|
141
175
|
|
|
142
176
|
```
|
|
143
|
-
Machine
|
|
177
|
+
Machine (COB)
|
|
144
178
|
├── CPU (65C02)
|
|
145
179
|
├── RAM (System Memory)
|
|
146
180
|
├── ROM (System BIOS/Monitor)
|
|
@@ -148,21 +182,79 @@ Machine
|
|
|
148
182
|
└── I/O Cards (8 slots)
|
|
149
183
|
├── IO1: RAM Card (Expansion)
|
|
150
184
|
├── IO2: RAM Card (Expansion)
|
|
151
|
-
├── IO3: RTC Card (Real-Time Clock)
|
|
185
|
+
├── IO3: RTC Card (DS1511Y Real-Time Clock)
|
|
152
186
|
├── IO4: Storage Card (Compact Flash 8-bit IDE Mode)
|
|
153
|
-
├── IO5: Serial Card (6551
|
|
154
|
-
├── IO6:
|
|
187
|
+
├── IO5: Serial Card (6551 ACIA)
|
|
188
|
+
├── IO6: VIA Card (65C22 GPIO)
|
|
189
|
+
├── IO7: Sound Card (6581 SID)
|
|
190
|
+
└── IO8: Video Card (TMS9918)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
#### VCS (Video Computer System)
|
|
194
|
+
|
|
195
|
+
Minimal system focused on video and sound:
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
Machine (VCS)
|
|
199
|
+
├── CPU (65C02)
|
|
200
|
+
├── RAM (System Memory)
|
|
201
|
+
├── ROM (System BIOS/Monitor)
|
|
202
|
+
├── Cart (Optional Cartridge)
|
|
203
|
+
└── I/O Cards (8 slots)
|
|
204
|
+
├── IO6: VIA Card (65C22 GPIO)
|
|
155
205
|
├── IO7: Sound Card (6581 SID)
|
|
156
206
|
└── IO8: Video Card (TMS9918)
|
|
157
207
|
```
|
|
158
208
|
|
|
159
|
-
|
|
209
|
+
#### KIM (Keyboard Input Monitor)
|
|
160
210
|
|
|
161
|
-
|
|
211
|
+
Single-board computer with LCD and keypad:
|
|
162
212
|
|
|
213
|
+
```
|
|
214
|
+
Machine (KIM)
|
|
215
|
+
├── CPU (65C02)
|
|
216
|
+
├── RAM (System Memory)
|
|
217
|
+
├── ROM (System BIOS/Monitor)
|
|
218
|
+
├── Cart (Optional Cartridge)
|
|
219
|
+
└── I/O Cards (8 slots)
|
|
220
|
+
├── IO5: Serial Card (6551 ACIA)
|
|
221
|
+
└── IO8: VIA Card (65C22 GPIO)
|
|
222
|
+
├── LCD Attachment (HD44780 16×2 character display)
|
|
223
|
+
└── Keypad Attachment (4×6 matrix keypad)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
#### DEV (Development)
|
|
227
|
+
|
|
228
|
+
System for software development with terminal interface:
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
Machine (DEV)
|
|
232
|
+
├── CPU (65C02)
|
|
233
|
+
├── RAM (System Memory)
|
|
234
|
+
├── ROM (System BIOS/Monitor)
|
|
235
|
+
├── Cart (Optional Cartridge)
|
|
236
|
+
└── I/O Cards (8 slots)
|
|
237
|
+
├── IO1: RAM Card (Expansion)
|
|
238
|
+
├── IO2: RAM Card (Expansion)
|
|
239
|
+
├── IO3: RTC Card (DS1511Y Real-Time Clock)
|
|
240
|
+
├── IO4: Storage Card (Compact Flash 8-bit IDE Mode)
|
|
241
|
+
├── IO5: Serial Card (6551 ACIA)
|
|
242
|
+
├── IO6: VIA Card (65C22 GPIO)
|
|
243
|
+
└── IO8: Terminal Card (VTAC)
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### VIA (GPIO) Attachments
|
|
247
|
+
|
|
248
|
+
The VIA card supports multiple attachment types depending on the target:
|
|
249
|
+
|
|
250
|
+
#### Standard Attachments (COB/DEV/VCS)
|
|
163
251
|
- **Keyboard Matrix**: PS/2-style keyboard matrix scanning
|
|
164
252
|
- **Keyboard Encoder**: Parallel keyboard encoder
|
|
165
|
-
- **Joystick**: Game
|
|
253
|
+
- **Joystick A/B**: Game controllers with 8 buttons and directional input
|
|
254
|
+
|
|
255
|
+
#### KIM Attachments
|
|
256
|
+
- **LCD Display**: HD44780-compatible 16×2 character LCD with 5×8 pixel characters
|
|
257
|
+
- **Keypad**: 4×6 matrix keypad with 24-key layout
|
|
166
258
|
|
|
167
259
|
### Memory Map
|
|
168
260
|
|
|
@@ -175,26 +267,31 @@ The system uses a standard 6502 memory layout with I/O cards mapped into the add
|
|
|
175
267
|
```
|
|
176
268
|
src/
|
|
177
269
|
├── index.ts # Main entry point and emulator loop
|
|
270
|
+
├── lib.ts # Library exports
|
|
178
271
|
├── components/
|
|
179
272
|
│ ├── CPU.ts # 65C02 CPU implementation
|
|
180
|
-
│ ├── Machine.ts # System integration
|
|
273
|
+
│ ├── Machine.ts # System integration and target configuration
|
|
181
274
|
│ ├── RAM.ts # RAM module
|
|
182
275
|
│ ├── ROM.ts # ROM module
|
|
183
276
|
│ ├── Cart.ts # Cartridge support
|
|
184
277
|
│ ├── IO.ts # I/O interface
|
|
185
278
|
│ └── IO/ # I/O peripheral implementations
|
|
186
|
-
│ ├──
|
|
187
|
-
│ ├──
|
|
188
|
-
│ ├──
|
|
189
|
-
│ ├──
|
|
190
|
-
│ ├── Sound.ts
|
|
191
|
-
│ ├── Storage.ts
|
|
192
|
-
│ ├── Video.ts
|
|
279
|
+
│ ├── ACIA.ts # 6551 Serial card
|
|
280
|
+
│ ├── VIA.ts # 65C22 GPIO card
|
|
281
|
+
│ ├── RAMBank.ts # RAM expansion card
|
|
282
|
+
│ ├── RTC.ts # Real-time clock card
|
|
283
|
+
│ ├── Sound.ts # 6581 SID sound card
|
|
284
|
+
│ ├── Storage.ts # Compact Flash storage card
|
|
285
|
+
│ ├── Video.ts # TMS9918 video card
|
|
286
|
+
│ ├── Terminal.ts # VTAC terminal card
|
|
287
|
+
│ ├── Empty.ts # Empty slot placeholder
|
|
193
288
|
│ └── Attachments/
|
|
194
289
|
│ ├── Attachment.ts
|
|
195
290
|
│ ├── JoystickAttachment.ts
|
|
196
291
|
│ ├── KeyboardEncoderAttachment.ts
|
|
197
|
-
│
|
|
292
|
+
│ ├── KeyboardMatrixAttachment.ts
|
|
293
|
+
│ ├── KeypadAttachment.ts
|
|
294
|
+
│ └── LCDAttachment.ts
|
|
198
295
|
└── tests/ # Comprehensive test suite
|
|
199
296
|
```
|
|
200
297
|
|
|
@@ -220,7 +317,7 @@ npm run test:coverage
|
|
|
220
317
|
|
|
221
318
|
### Release Build
|
|
222
319
|
|
|
223
|
-
```
|
|
320
|
+
```bash
|
|
224
321
|
git tag vX.Y.Z
|
|
225
322
|
git push origin main --tags
|
|
226
323
|
npm publish
|
|
@@ -234,15 +331,25 @@ npm publish
|
|
|
234
331
|
- **Graphics**: SDL via @kmamal/sdl
|
|
235
332
|
- **Serial**: SerialPort library
|
|
236
333
|
- **CLI**: Commander.js
|
|
334
|
+
- **Terminal**: VTAC Terminal library
|
|
237
335
|
|
|
238
336
|
## Performance
|
|
239
337
|
|
|
240
|
-
The emulator targets
|
|
338
|
+
The emulator targets 1 MHz operation by default (configurable) and attempts to maintain accurate timing by synchronizing with real-time clock cycles. The frame rate is capped at 60 FPS for video output.
|
|
339
|
+
|
|
340
|
+
## Supported Input Devices
|
|
341
|
+
|
|
342
|
+
- **Keyboard**: Full keyboard support via SDL for all targets
|
|
343
|
+
- **Game Controllers**: Dual controller support (Player A and Player B) for VCS and COB targets
|
|
344
|
+
- D-pad and analog stick support
|
|
345
|
+
- 8 buttons: Up, Down, Left, Right, A, B, Select, Start
|
|
346
|
+
- **Keypad**: 4×6 matrix keypad for KIM target (24 keys including arrows, numbers, and function keys)
|
|
241
347
|
|
|
242
348
|
## Credits
|
|
243
349
|
|
|
244
350
|
- CPU implementation adapted from [OneLoneCoder's olcNES](https://github.com/OneLoneCoder/olcNES)
|
|
245
351
|
- TMS9918 implementation based on [vrEmuTms9918](https://github.com/visrealm/vrEmuTms9918) by Troy Schrapel
|
|
352
|
+
- LCD implementation based on [vrEmuLcd](https://github.com/visrealm/vrEmuLcd) by Troy Schrapel
|
|
246
353
|
|
|
247
354
|
## License
|
|
248
355
|
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ const serialport_1 = require("serialport");
|
|
|
20
20
|
const sdl_1 = __importDefault(require("@kmamal/sdl"));
|
|
21
21
|
const promises_1 = require("fs/promises");
|
|
22
22
|
const fs_1 = require("fs");
|
|
23
|
-
const VERSION = '1.
|
|
23
|
+
const VERSION = '1.5.0';
|
|
24
24
|
const WIDTH = 320;
|
|
25
25
|
const HEIGHT = 240;
|
|
26
26
|
// Audio constants
|
|
@@ -58,6 +58,7 @@ class Emulator {
|
|
|
58
58
|
this.setupAudio();
|
|
59
59
|
this.setupWindow();
|
|
60
60
|
this.setupControllers();
|
|
61
|
+
this.machine.reset(true);
|
|
61
62
|
});
|
|
62
63
|
}
|
|
63
64
|
validateOptions() {
|
|
@@ -172,7 +173,7 @@ class Emulator {
|
|
|
172
173
|
};
|
|
173
174
|
}
|
|
174
175
|
setupAudio() {
|
|
175
|
-
if (this.options.target === 'kim'
|
|
176
|
+
if (this.options.target === 'kim')
|
|
176
177
|
return;
|
|
177
178
|
try {
|
|
178
179
|
this.audioDevice = sdl_1.default.audio.openDevice({ type: 'playback' }, {
|
|
@@ -181,7 +182,11 @@ class Emulator {
|
|
|
181
182
|
format: AUDIO_FORMAT,
|
|
182
183
|
buffered: AUDIO_BUFFERED,
|
|
183
184
|
});
|
|
184
|
-
|
|
185
|
+
// Configure Sound sample rate to match audio device (not needed for dev target)
|
|
186
|
+
if (this.options.target !== 'dev') {
|
|
187
|
+
;
|
|
188
|
+
this.machine.io7.sampleRate = this.audioDevice.frequency;
|
|
189
|
+
}
|
|
185
190
|
// Connect the Machine's audio callback to the SDL audio device
|
|
186
191
|
this.machine.play = (samples) => {
|
|
187
192
|
if (!this.audioDevice || this.audioDevice.closed)
|
|
@@ -326,12 +331,31 @@ class Emulator {
|
|
|
326
331
|
for (let i = 0; i < WIDTH * HEIGHT; i++) {
|
|
327
332
|
const v = src[i];
|
|
328
333
|
const off = i * 4;
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
334
|
+
const r3 = (v >> 5) & 0x07;
|
|
335
|
+
const g3 = (v >> 2) & 0x07;
|
|
336
|
+
const b2 = v & 0x03;
|
|
337
|
+
rgbaBuffer[off] = (r3 << 5) | (r3 << 2) | (r3 >> 1);
|
|
338
|
+
rgbaBuffer[off + 1] = (g3 << 5) | (g3 << 2) | (g3 >> 1);
|
|
339
|
+
rgbaBuffer[off + 2] = (b2 << 6) | (b2 << 4) | (b2 << 2) | b2;
|
|
332
340
|
rgbaBuffer[off + 3] = 0xFF;
|
|
333
341
|
}
|
|
334
342
|
this.window.render(WIDTH, HEIGHT, WIDTH * 4, 'rgba32', rgbaBuffer);
|
|
343
|
+
// Synthesize and play any queued VTAC bell tones
|
|
344
|
+
if (this.machine.play && this.audioDevice) {
|
|
345
|
+
const sampleRate = this.audioDevice.frequency;
|
|
346
|
+
while (devBoard.vtac.hasQueuedBells()) {
|
|
347
|
+
const bell = devBoard.vtac.getNextBell();
|
|
348
|
+
if (bell) {
|
|
349
|
+
const numSamples = Math.floor((bell.duration / 60) * sampleRate);
|
|
350
|
+
const samples = new Float32Array(numSamples);
|
|
351
|
+
const twoPiF = 2 * Math.PI * bell.frequency;
|
|
352
|
+
for (let i = 0; i < numSamples; i++) {
|
|
353
|
+
samples[i] = Math.sin(twoPiF * i / sampleRate);
|
|
354
|
+
}
|
|
355
|
+
this.machine.play(samples);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
335
359
|
};
|
|
336
360
|
}
|
|
337
361
|
this.window.on('close', () => this.shutdown());
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ import sdl from '@kmamal/sdl'
|
|
|
12
12
|
import { readFile, writeFile } from 'fs/promises'
|
|
13
13
|
import { existsSync } from 'fs'
|
|
14
14
|
|
|
15
|
-
const VERSION = '1.
|
|
15
|
+
const VERSION = '1.5.0'
|
|
16
16
|
const WIDTH = 320
|
|
17
17
|
const HEIGHT = 240
|
|
18
18
|
|
|
@@ -76,6 +76,7 @@ class Emulator {
|
|
|
76
76
|
this.setupAudio()
|
|
77
77
|
this.setupWindow()
|
|
78
78
|
this.setupControllers()
|
|
79
|
+
this.machine.reset(true)
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
private validateOptions(): void {
|
|
@@ -195,7 +196,7 @@ class Emulator {
|
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
private setupAudio(): void {
|
|
198
|
-
if (this.options.target === 'kim'
|
|
199
|
+
if (this.options.target === 'kim') return
|
|
199
200
|
try {
|
|
200
201
|
this.audioDevice = sdl.audio.openDevice({ type: 'playback' }, {
|
|
201
202
|
channels: AUDIO_CHANNELS as 1,
|
|
@@ -204,8 +205,10 @@ class Emulator {
|
|
|
204
205
|
buffered: AUDIO_BUFFERED,
|
|
205
206
|
})
|
|
206
207
|
|
|
207
|
-
// Configure Sound sample rate to match audio device
|
|
208
|
-
|
|
208
|
+
// Configure Sound sample rate to match audio device (not needed for dev target)
|
|
209
|
+
if (this.options.target !== 'dev') {
|
|
210
|
+
;(this.machine.io7 as Sound).sampleRate = this.audioDevice.frequency
|
|
211
|
+
}
|
|
209
212
|
|
|
210
213
|
// Connect the Machine's audio callback to the SDL audio device
|
|
211
214
|
this.machine.play = (samples: Float32Array) => {
|
|
@@ -347,12 +350,32 @@ class Emulator {
|
|
|
347
350
|
for (let i = 0; i < WIDTH * HEIGHT; i++) {
|
|
348
351
|
const v = src[i]
|
|
349
352
|
const off = i * 4
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
+
const r3 = (v >> 5) & 0x07
|
|
354
|
+
const g3 = (v >> 2) & 0x07
|
|
355
|
+
const b2 = v & 0x03
|
|
356
|
+
rgbaBuffer[off] = (r3 << 5) | (r3 << 2) | (r3 >> 1)
|
|
357
|
+
rgbaBuffer[off + 1] = (g3 << 5) | (g3 << 2) | (g3 >> 1)
|
|
358
|
+
rgbaBuffer[off + 2] = (b2 << 6) | (b2 << 4) | (b2 << 2) | b2
|
|
353
359
|
rgbaBuffer[off + 3] = 0xFF
|
|
354
360
|
}
|
|
355
361
|
this.window.render(WIDTH, HEIGHT, WIDTH * 4, 'rgba32', rgbaBuffer)
|
|
362
|
+
|
|
363
|
+
// Synthesize and play any queued VTAC bell tones
|
|
364
|
+
if (this.machine.play && this.audioDevice) {
|
|
365
|
+
const sampleRate = this.audioDevice.frequency
|
|
366
|
+
while (devBoard.vtac.hasQueuedBells()) {
|
|
367
|
+
const bell = devBoard.vtac.getNextBell()
|
|
368
|
+
if (bell) {
|
|
369
|
+
const numSamples = Math.floor((bell.duration / 60) * sampleRate)
|
|
370
|
+
const samples = new Float32Array(numSamples)
|
|
371
|
+
const twoPiF = 2 * Math.PI * bell.frequency
|
|
372
|
+
for (let i = 0; i < numSamples; i++) {
|
|
373
|
+
samples[i] = Math.sin(twoPiF * i / sampleRate)
|
|
374
|
+
}
|
|
375
|
+
this.machine.play(samples)
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
356
379
|
}
|
|
357
380
|
}
|
|
358
381
|
|