apple2js/js/main2e.js

74 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-03-01 05:21:18 +00:00
import Prefs from './prefs';
import { driveLights, initUI, updateUI } from './ui/apple2';
2019-03-01 05:21:18 +00:00
import Printer from './ui/printer';
import DiskII from './cards/disk2';
2019-03-01 05:21:18 +00:00
import Parallel from './cards/parallel';
import RAMFactor from './cards/ramfactor';
import SmartPort from './cards/smartport';
2019-03-01 05:21:18 +00:00
import Thunderclock from './cards/thunderclock';
import apple2e_charset from './roms/apple2e_char';
import apple2enh_charset from './roms/apple2enh_char';
2019-03-01 18:15:17 +00:00
import rmfont_charset from './roms/rmfont_char';
2019-03-01 05:21:18 +00:00
import Apple2eROM from './roms/apple2e';
import Apple2eEnhancedROM from './roms/apple2enh';
import { Apple2 } from './apple2';
2016-11-22 05:17:34 +00:00
var prefs = new Prefs();
2017-09-23 04:42:57 +00:00
var romVersion = prefs.readPref('computer_type2e');
var enhanced = false;
var rom;
var characterRom = apple2e_charset;
2017-09-23 04:42:57 +00:00
switch (romVersion) {
case 'apple2e':
rom = new Apple2eROM();
break;
case 'apple2rm':
rom = new Apple2eEnhancedROM();
characterRom = rmfont_charset;
enhanced = true;
break;
default:
rom = new Apple2eEnhancedROM();
characterRom = apple2enh_charset;
enhanced = true;
2017-09-23 04:42:57 +00:00
}
var options = {
gl: prefs.readPref('gl_canvas') === 'true',
canvas: document.getElementById('screen'),
rom: rom,
characterRom: characterRom,
e: true,
enhanced: enhanced,
cards: [],
tick: updateUI
};
2017-09-23 04:42:57 +00:00
export var apple2 = new Apple2(options);
var io = apple2.getIO();
var cpu = apple2.getCPU();
2016-11-22 05:17:34 +00:00
var printer = new Printer('#printer-modal .paper');
2016-11-22 05:17:34 +00:00
var parallel = new Parallel(printer);
var slinky = new RAMFactor(1024 * 1024);
var disk2 = new DiskII(io, driveLights);
var clock = new Thunderclock();
2021-03-14 00:07:29 +00:00
var smartport = new SmartPort(cpu, { block: !enhanced });
2016-11-22 05:17:34 +00:00
initUI(apple2, disk2, smartport, printer, options.e);
2016-11-22 05:17:34 +00:00
2016-12-06 05:16:21 +00:00
io.setSlot(1, parallel);
io.setSlot(2, slinky);
io.setSlot(5, clock);
2016-12-06 05:16:21 +00:00
io.setSlot(6, disk2);
io.setSlot(7, smartport);
2016-11-22 05:17:34 +00:00