diff --git a/apple2js.html b/apple2js.html
index eba8910..dce26ec 100644
--- a/apple2js.html
+++ b/apple2js.html
@@ -49,7 +49,7 @@
-
+
diff --git a/apple2jse.html b/apple2jse.html
index a0991ec..b031680 100644
--- a/apple2jse.html
+++ b/apple2jse.html
@@ -50,7 +50,7 @@
-
+
diff --git a/js/canvas2e.js b/js/canvas.js
similarity index 91%
rename from js/canvas2e.js
rename to js/canvas.js
index 7941a97..98aabe8 100644
--- a/js/canvas2e.js
+++ b/js/canvas.js
@@ -36,7 +36,7 @@ var scanlines = false;
*
***************************************************************************/
-function LoresPage(page, charset, context)
+function LoresPage(page, charset, e, context)
{
'use strict';
@@ -119,12 +119,6 @@ function LoresPage(page, charset, context)
_init();
return {
- start: function() {
- var self = this;
- window.setInterval(function() {
- self.blink();
- }, 267);
- },
bank0: function() {
var self = this;
return {
@@ -189,19 +183,29 @@ function LoresPage(page, charset, context)
// 000001cd eabab000 -> 000abcde
var ab = (adj & 0x18),
cd = (page & 0x03) << 1,
- e = adj >> 7;
+ ee = adj >> 7;
var idx, jdx;
- var row = ab | cd | e;
+ var row = ab | cd | ee;
var b;
var data = _imageData.data;
if ((row < 24) && (col < 40)) {
var color;
if (textMode || hiresMode || (mixedMode && row > 19)) {
- var flash = ((val & 0xc0) == 0x40) &&
- _blink && !_80colMode && !altCharMode;
- fore = flash ? _black : (_greenMode ? _green : _white);
- back = flash ? (_greenMode ? _green : _white) : _black;
+ if (e) {
+ var flash = ((val & 0xc0) == 0x40) &&
+ _blink && !_80colMode && !altCharMode;
+ fore = flash ? _black : (_greenMode ? _green : _white);
+ back = flash ? (_greenMode ? _green : _white) : _black;
+ } else {
+ if (val & 0x80 || ((val & 0x40) && _blink)) {
+ fore = _greenMode ? _green : _white;
+ back = _black;
+ } else {
+ fore = _black;
+ back = _greenMode ? _green : _white;
+ }
+ }
if (_80colMode) {
if (!enhanced) {
@@ -238,15 +242,29 @@ function LoresPage(page, charset, context)
back = _colors[_buffer[1][base] & 0x0f];
}
- for (jdx = 0; jdx < 8; jdx++) {
- b = charset[val * 8 + jdx];
- for (idx = 0; idx < 7; idx++) {
- color = (b & 0x01) ? back : fore;
- _drawPixel(data, off, color);
- b >>= 1;
- off += 8;
+ if (e) {
+ for (jdx = 0; jdx < 8; jdx++) {
+ b = charset[val * 8 + jdx];
+ for (idx = 0; idx < 7; idx++) {
+ color = (b & 0x01) ? back : fore;
+ _drawPixel(data, off, color);
+ b >>= 1;
+ off += 8;
+ }
+ off += 546 * 4 + 560 * 4;
+ }
+ } else {
+ for (jdx = 0; jdx < 8; jdx++) {
+ b = charset[val * 8 + jdx];
+ b <<= 1;
+ for (idx = 0; idx < 7; idx++) {
+ color = (b & 0x80) ? fore : back;
+ _drawPixel(data, off, color);
+ b <<= 1;
+ off += 8;
+ }
+ off += 546 * 4 + 560 * 4;
}
- off += 546 * 4 + 560 * 4;
}
}
} else {
@@ -275,7 +293,7 @@ function LoresPage(page, charset, context)
}
for (jdx = 0; jdx < 8; jdx++) {
color = _colors[(jdx < 4) ?
- (val & 0x0f) : (val >> 4)];
+ (val & 0x0f) : (val >> 4)];
for (idx = 0; idx < 7; idx++) {
_drawHalfPixel(data, off, color);
off += 4;
@@ -306,8 +324,7 @@ function LoresPage(page, charset, context)
}
} else {
for (jdx = 0; jdx < 8; jdx++) {
- color = _colors[(jdx < 4) ?
- (val & 0x0f) : (val >> 4)];
+ color = _colors[(jdx < 4) ? (val & 0x0f) : (val >> 4)];
for (idx = 0; idx < 7; idx++) {
_drawPixel(data, off, color);
off += 8;
@@ -355,6 +372,22 @@ function LoresPage(page, charset, context)
context.putImageData(_imageData, 0, 0, 0, 0, 560, 384);
}
},
+ start: function() {
+ var self = this;
+ setInterval(function() {
+ self.blink();
+ }, 267);
+ return this._start();
+ },
+ end: function() {
+ return this._end();
+ },
+ read: function(page, off) {
+ return this._read(page, off, 0);
+ },
+ write: function(page, off, val) {
+ return this._write(page, off, val, 0);
+ },
getState: function() {
return {
page: _page,
@@ -767,6 +800,18 @@ function HiresPage(page, context)
context.putImageData(_imageData, 0, 0, 0, 0, 560, 384);
}
},
+ start: function() {
+ return this._start();
+ },
+ end: function() {
+ return this._end();
+ },
+ read: function(page, off) {
+ return this._read(page, off, 0);
+ },
+ write: function(page, off, val) {
+ return this._write(page, off, val, 0);
+ },
getState: function() {
return {
page: _page,
@@ -788,7 +833,7 @@ function HiresPage(page, context)
};
}
-function VideoModes(gr, hgr, gr2, hgr2) {
+function VideoModes(gr, hgr, gr2, hgr2, e) {
var _grs = [gr, gr2];
var _hgrs = [hgr, hgr2];
var _seq = '';
@@ -836,6 +881,7 @@ function VideoModes(gr, hgr, gr2, hgr2) {
}
},
_80col: function(on) {
+ if (!e) { return; }
var old = _80colMode;
_80colMode = on;
@@ -848,6 +894,7 @@ function VideoModes(gr, hgr, gr2, hgr2) {
}
},
altchar: function(on) {
+ if (!e) { return; }
var old = altCharMode;
altCharMode = on;
if (old != on) {
@@ -867,6 +914,7 @@ function VideoModes(gr, hgr, gr2, hgr2) {
}
},
doublehires: function(on) {
+ if (!e) { return; }
var old = doubleHiresMode;
doubleHiresMode = on;
diff --git a/js/canvas2.js b/js/canvas2.js
deleted file mode 100644
index fdfe0be..0000000
--- a/js/canvas2.js
+++ /dev/null
@@ -1,499 +0,0 @@
-/* Copyright 2010-2016 Will Scullin
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation. No representations are made about the suitability of this
- * software for any purpose. It is provided "as is" without express or
- * implied warranty.
- */
-
- /*globals allocMemPages: false,
- base64_encode: false, base64_decode: false */
- /*exported LoresPage, HiresPage, VideoModes*/
-
-var textMode = true;
-var mixedMode = true;
-var hiresMode = false;
-var pageMode = 1;
-var scanlines = false;
-var multiScreen = false;
-
-/****************************************************************************
- *
- * Text/Lores Graphics
- *
- ***************************************************************************/
-
-function LoresPage(page, charset, context)
-{
- 'use strict';
-
- // $00-$3F inverse
- // $40-$7F flashing
- // $80-$FF normal
-
- var _page = page;
- var _imageData;
- var _buffer = [];
- var _refreshing = false;
- var _greenMode = false;
- var _blink = false;
-
- var _black = [0x00,0x00,0x00];
- var _white = [0xff,0xff,0xff];
- var _green = [0x00,0xff,0x80];
-
- var _colors = [
- [0x00,0x00,0x00], // black
- [0xdd,0x00,0x33], // 0x1 deep red
- [0x00,0x00,0x99], // 0x2 dark blue
- [0xdd,0x00,0xdd], // 0x3 purple
- [0x00,0x77,0x00], // 0x4 dark green
- [0x55,0x55,0x55], // 0x5 dark gray
- [0x23,0x22,0xff], // 0x6 medium blue
- [0x66,0xaa,0xff], // 0x7 light blue
- [0x88,0x55,0x22], // 0x8 brown
- [0xff,0x66,0x00], // 0x9 orange
- [0xaa,0xaa,0xaa], // 0xa light gray
- [0xff,0x99,0x88], // 0xb pink
- [0x00,0xdd,0x00], // 0xc green
- [0xff,0xff,0x00], // 0xd yellow
- [0x00,0xff,0x99], // 0xe aquamarine
- [0xff,0xff,0xff] // 0xf white
- ];
-
- function _init() {
- var idx;
- _imageData = context.createImageData(560, 384);
- for (idx = 0; idx < 560 * 384 * 4; idx++) {
- _imageData.data[idx] = 0xff;
- }
- _buffer = allocMemPages(0x4);
- }
-
- function _drawPixel(data, off, color) {
- var c0 = color[0], c1 = color[1], c2 = color[2];
- data[off + 0] = data[off + 4] = c0;
- data[off + 1] = data[off + 5] = c1;
- data[off + 2] = data[off + 6] = c2;
- if (!scanlines) {
- data[off + 560 * 4] = data[off + 560 * 4 + 4] = c0;
- data[off + 560 * 4 + 1] = data[off + 560 * 4 + 5] = c1;
- data[off + 560 * 4 + 2] = data[off + 560 * 4 + 6] = c2;
- } else {
- data[off + 560 * 4] = data[off + 560 * 4 + 4] = c0 >> 1;
- data[off + 560 * 4 + 1] = data[off + 560 * 4 + 5] = c1 >> 1;
- data[off + 560 * 4 + 2] = data[off + 560 * 4 + 6] = c2 >> 1;
- }
- }
-
- function _drawHalfPixel(data, off, color) {
- var c0 = color[0], c1 = color[1], c2 = color[2];
- data[off + 0] = c0;
- data[off + 1] = c1;
- data[off + 2] = c2;
- if (!scanlines) {
- data[off + 560 * 4] = c0;
- data[off + 560 * 4 + 1] = c1;
- data[off + 560 * 4 + 2] = c2;
- } else {
- data[off + 560 * 4] = c0 >> 1;
- data[off + 560 * 4 + 1] = c1 >> 1;
- data[off + 560 * 4 + 2] = c2 >> 1;
- }
- }
-
- _init();
-
- return {
- start: function() {
- var self = this;
- window.setInterval(function() {
- self.blink();
- }, 267);
- return (0x04 * _page);
- },
- end: function() { return (0x04 * _page) + 0x03; },
- read: function(page, off) {
- var addr = (page << 8) | off,
- base = addr - 0x400 * _page;
- return _buffer[base];
- },
- write: function(page, off, val) {
- var addr = (page << 8) | off,
- base = addr - 0x400 * _page;
-
- if (_buffer[base] === val && !_refreshing)
- return;
- _buffer[base] = val;
-
- var col = (base % 0x80) % 0x28,
- adj = off - col;
-
- // 000001cd eabab000 -> 000abcde
- var ab = (adj & 0x18),
- cd = (page & 0x03) << 1,
- e = adj >> 7;
-
- var row = ab | cd | e, color, idx, jdx, b;
-
- if ((row < 24) && (col < 40)) {
- var data = _imageData.data, fore, back;
- off = (col * 14 + row * 560 * 8 * 2) * 4;
-
- if (textMode || hiresMode || (mixedMode && row > 19)) {
- if (val & 0x80 || ((val & 0x40) && _blink)) {
- fore = _greenMode ? _green : _white;
- back = _black;
- } else {
- fore = _black;
- back = _greenMode ? _green : _white;
- }
- for (jdx = 0; jdx < 8; jdx++) {
- b = charset[val * 8 + jdx];
- b <<= 1;
- for (idx = 0; idx < 7; idx++) {
- color = (b & 0x80) ? fore : back;
- _drawPixel(data, off, color);
- b <<= 1;
- off += 8;
- }
- off += 546 * 4 + 560 * 4;
- }
- } else {
- if (_greenMode) {
- fore = _green;
- back = _black;
- for (jdx = 0; jdx < 8; jdx++) {
- b = (jdx < 4) ? (val & 0x0f) : (val >> 4);
- b |= (b << 4);
- b |= (b << 8);
- if ((col & 0x1) !== 0) {
- b <<= 2;
- }
- for (idx = 0; idx < 14; idx++) {
- color = (b & 0x8000) ? fore : back;
- _drawHalfPixel(data, off, color);
- b <<= 1;
- off += 4;
- }
- off += 546 * 4 + 560 * 4;
- }
- } else {
- for (jdx = 0; jdx < 8; jdx++) {
- b = (jdx < 4) ? (val & 0x0f) : (val >> 4);
- color = _colors[b];
- for (idx = 0; idx < 7; idx++) {
- _drawPixel(data, off, color);
- off += 8;
- }
- off += 546 * 4 + 560 * 4;
- }
- }
- }
- }
- },
- refresh: function() {
- var addr = 0x400 * _page;
- _refreshing = true;
- for (var idx = 0; idx < 0x400; idx++, addr++) {
- this.write(addr >> 8, addr & 0xff, _buffer[idx]);
- }
- _refreshing = false;
- },
- blink: function() {
- var addr = 0x400 * _page;
- _refreshing = true;
- _blink = !_blink;
- for (var idx = 0; idx < 0x400; idx++, addr++) {
- var b = _buffer[idx];
- if ((b & 0xC0) == 0x40) {
- this.write(addr >> 8, addr & 0xff, _buffer[idx]);
- }
- }
- _refreshing = false;
- },
- green: function(on) {
- _greenMode = on;
- this.refresh();
- },
- blit: function(mixed) {
- if (mixed) {
- context.putImageData(_imageData, 0, 0, 0, 320, 560, 64);
- } else {
- context.putImageData(_imageData, 0, 0, 0, 0, 560, 384);
- }
- },
- getState: function() {
- return {
- page: _page,
- green: _green,
- buffer: base64_encode(_buffer)
- };
- },
- setState: function(state) {
- _page = state.page;
- _green = state.green;
- _buffer = base64_decode(state.buffer);
-
- this.refresh();
- }
- };
-}
-
-function HiresPage(page, context)
-{
- var _page = page;
- var _imageData;
-
- var orangeCol = [0xff, 0x65, 0x00];
- var greenCol = [0x00, 0xff, 0x00];
- var blueCol = [0x09, 0x2a, 0xff];
- var violetCol = [0xc9, 0x39, 0xc7];
- var whiteCol = [0xff, 0xff, 0xff];
- var blackCol = [0x00, 0x00, 0x00];
-
- var _buffer = [];
- var _refreshing = false;
-
- var _green = [0x00, 0xff, 0x80];
- var _greenMode = false;
-
- function _init() {
- var idx;
- _imageData = context.createImageData(560, 384);
- for (idx = 0; idx < 560 * 384 * 4; idx++) {
- _imageData.data[idx] = 0xff;
- }
- _buffer = allocMemPages(0x20);
- }
-
- function _drawPixel(data, off, color) {
- var c0 = color[0], c1 = color[1], c2 = color[2];
-
- data[off + 0] = data[off + 4] = c0;
- data[off + 1] = data[off + 5] = c1;
- data[off + 2] = data[off + 6] = c2;
- if (!scanlines) {
- data[off + 560 * 4] = data[off + 560 * 4 + 4] = c0;
- data[off + 560 * 4 + 1] = data[off + 560 * 4 + 5] = c1;
- data[off + 560 * 4 + 2] = data[off + 560 * 4 + 6] = c2;
- } else {
- data[off + 560 * 4] = data[off + 560 * 4 + 4] = c0 >> 1;
- data[off + 560 * 4 + 1] = data[off + 560 * 4 + 5] = c1 >> 1;
- data[off + 560 * 4 + 2] = data[off + 560 * 4 + 6] = c2 >> 1;
- }
- }
-
- _init();
-
- return {
- start: function() { return (0x20 * _page); },
- end: function() { return (0x020 * _page) + 0x1f; },
- read: function(page, off) {
- var addr = (page << 8) | off,
- base = addr - 0x2000 * _page;
- return _buffer[base];
- },
- write: function(page, off, val) {
- function dim(c) {
- return [c[0] * 0.75, c[1] * 0.75, c[2] * 0.75];
- }
- var addr = (page << 8) | off,
- base = addr - 0x2000 * _page;
- if (_buffer[base] === val && !_refreshing)
- return;
- _buffer[base] = val;
-
- var hbs = val & 0x80;
- val &= 0x7f;
-
- var col = (base % 0x80) % 0x28,
- adj = off - col;
-
- // 000001cd eabab000 -> 000abcde
- var ab = (adj & 0x18),
- cd = (page & 0x03) << 1,
- e = adj >> 7;
-
- var rowa = ab | cd | e,
- rowb = base >> 10;
-
- if ((rowa < 24) && (col < 40)) {
- var data = _imageData.data,
- dy = rowa * 8 + rowb,
- dx = col * 14 - 2,
- b0 = col > 0 ? _buffer[base - 1] : 0,
- b2 = col < 39 ? _buffer[base + 1] : 0;
- val |= (b2 & 0x3) << 7;
- var v0 = b0 & 0x20, v1 = b0 & 0x40, v2 = val & 0x1,
- odd = (col & 0x1) === 0,
- color,
- oddCol = (hbs ? orangeCol : greenCol),
- evenCol = (hbs ? blueCol : violetCol);
-
- off = dx * 4 + dy * 560 * 4 * 2;
- for (var idx = 0; idx < 9; idx++, off += 8) {
- val >>= 1;
-
- if (v1) {
- if (_greenMode) {
- color = _green;
- } else if (v0 || v2) {
- color = whiteCol;
- } else {
- color = odd ? oddCol : evenCol;
- }
- } else {
- if (_greenMode) {
- color = blackCol;
- } else if (odd && v2 && v0) {
- color = v0 ? dim(evenCol) : evenCol;
- } else if (!odd && v0 && v2) {
- color = v2 ? dim(oddCol) : oddCol;
- } else {
- color = blackCol;
- }
- }
-
- if (dx > -1 && dx < 560) {
- _drawPixel(data, off, color);
- }
- dx += 2;
-
- v0 = v1;
- v1 = v2;
- v2 = val & 0x01;
- odd = !odd;
- }
- }
- },
- refresh: function() {
- var addr = 0x2000 * _page;
- _refreshing = true;
- for (var idx = 0; idx < 0x2000; idx++, addr++) {
- this.write(addr >> 8, addr & 0xff, _buffer[idx]);
- }
- _refreshing = false;
- },
- green: function(on) {
- _greenMode = on;
- this.refresh();
- },
- blit: function(mixed) {
- if (mixed) {
- context.putImageData(_imageData, 0, 0, 0, 0, 560, 320);
- } else {
- context.putImageData(_imageData, 0, 0, 0, 0, 560, 384);
- }
- },
- getState: function() {
- return {
- page: _page,
- green: _greenMode,
- buffer: base64_encode(_buffer)
- };
- },
- setState: function(state) {
- _page = state.page;
- _greenMode = state.green;
- _buffer = base64_decode(state.buffer);
-
- this.refresh();
- }
- };
-}
-
-function VideoModes(gr,hgr,gr2,hgr2) {
- var _grs = [gr, gr2];
- var _hgrs = [hgr, hgr2];
-
- function _refresh() {
- _grs[0].refresh();
- _grs[1].refresh();
- _hgrs[0].refresh();
- _hgrs[1].refresh();
- }
-
- return {
- refresh: function() {
- _refresh();
- },
- text: function(on) {
- var old = textMode;
- textMode = on;
- if (old != on) {
- _refresh();
- }
- },
- hires: function(on) {
- var old = hiresMode;
- hiresMode = on;
- if (old != on) {
- _refresh();
- }
- },
- mixed: function(on) {
- var old = mixedMode;
- mixedMode = on;
- if (old != on) {
- _refresh();
- }
- },
- page: function(pageNo) {
- pageMode = pageNo;
- },
- blit: function() {
- if (multiScreen) {
- _grs[0].blit();
- _grs[1].blit();
- _hgrs[0].blit();
- _hgrs[1].blit();
- } else {
- if (hiresMode && !textMode) {
- if (mixedMode) {
- _grs[pageMode - 1].blit(true);
- _hgrs[pageMode - 1].blit(true);
- } else {
- _hgrs[pageMode - 1].blit();
- }
- } else {
- _grs[pageMode - 1].blit();
- }
- }
- },
- getState: function() {
- return {
- grs: [_grs[0].getState(), _grs[1].getState()],
- hgrs: [_hgrs[0].getState(), _hgrs[1].getState()],
- textMode: textMode,
- mixedMode: mixedMode,
- hiresMode: hiresMode,
- pageMode: pageMode
- };
- },
- setState: function(state) {
- textMode = state.textMode;
- mixedMode = state.mixedMode;
- hiresMode = state.hiresMode;
- pageMode = state.pageMode;
-
- _grs[0].setState(state.grs[0]);
- _grs[1].setState(state.grs[1]);
- _hgrs[0].setState(state.hgrs[0]);
- _hgrs[1].setState(state.hgrs[1]);
- },
- green: function(on) {
- _grs[0].green(on);
- _grs[1].green(on);
- _hgrs[0].green(on);
- _hgrs[1].green(on);
- },
- scanlines: function(on) {
- scanlines = on;
- _refresh();
- }
- };
-}
diff --git a/js/cards/disk2.js b/js/cards/disk2.js
index 392047c..a96343f 100644
--- a/js/cards/disk2.js
+++ b/js/cards/disk2.js
@@ -70,15 +70,15 @@ function DiskII(io, slot, callbacks)
DRIVEWRITEMODE: 0x8F // Q7H
};
-// var DO = [0x0,0x7,0xE,0x6,0xD,0x5,0xC,0x4,
-// 0xB,0x3,0xA,0x2,0x9,0x1,0x8,0xF];
+ // var DO = [0x0,0x7,0xE,0x6,0xD,0x5,0xC,0x4,
+ // 0xB,0x3,0xA,0x2,0x9,0x1,0x8,0xF];
var _DO = [
0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,
0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF
];
-// var PO = [0x0,0x8,0x1,0x9,0x2,0xa,0x3,0xb,
-// 0x4,0xc,0x5,0xd,0x6,0xe,0x7,0xf];
+ // var PO = [0x0,0x8,0x1,0x9,0x2,0xa,0x3,0xb,
+ // 0x4,0xc,0x5,0xd,0x6,0xe,0x7,0xf];
var _PO = [
0x0,0x2,0x4,0x6,0x8,0xa,0xc,0xe,
0x1,0x3,0x5,0x7,0x9,0xb,0xd,0xf
@@ -130,7 +130,7 @@ function DiskII(io, slot, callbacks)
];
function _debug() {
- console.log.apply(this, arguments);
+ // console.log.apply(this, arguments);
}
function _init() {
@@ -507,9 +507,9 @@ function DiskII(io, slot, callbacks)
}
var _phase_delta = [[ 0, 1, 2,-1],
- [-1, 0, 1, 2],
- [-2,-1, 0, 1],
- [ 1,-2,-1, 0]];
+ [-1, 0, 1, 2],
+ [-2,-1, 0, 1],
+ [ 1,-2,-1, 0]];
function setPhase(phase, on) {
// _debug('phase ' + phase + (on ? ' on' : ' off'));
@@ -670,7 +670,7 @@ function DiskII(io, slot, callbacks)
0xc8,0xd0,0xee,0xe6,0x27,0xe6,0x3d,0xa5,
0x3d,0xcd,0x00,0x08,0xa6,0x2b,0x90,0xdb,
0x4c,0x01,0x08,0x00,0x00,0x00,0x00,0x00 ];
-/*
+ /*
var diskII_13 = [
0xa2,0x20,0xa0,0x00,0xa9,0x03,0x85,0x3c,
0x18,0x88,0x98,0x24,0x3c,0xf0,0xf5,0x26,
diff --git a/js/main2.js b/js/main2.js
index 33d1c0d..4e25217 100644
--- a/js/main2.js
+++ b/js/main2.js
@@ -28,7 +28,8 @@
pauseRun, step,
restoreState, saveState,
dumpProgram, PageDebug,
- multiScreen
+ multiScreen,
+ enhanced
*/
var kHz = 1023;
@@ -91,9 +92,12 @@ function DriveLights()
{
return {
driveLight: function(drive, on) {
- $('#disk' + drive).css('background-image',
- on ? 'url(css/red-on-16.png)' :
- 'url(css/red-off-16.png)');
+ $('#disk' + drive).css(
+ 'background-image',
+ on ?
+ 'url(css/red-on-16.png)' :
+ 'url(css/red-off-16.png)'
+ );
},
dirty: function() {
// $('#disksave' + drive).button('option', 'disabled', !dirty);
@@ -330,7 +334,7 @@ function doLoadHTTP(drive, _url) {
req.responseType = 'arraybuffer';
req.onload = function() {
- var parts = url.split(/[\/\.]/);
+ var parts = url.split(/[/.]/);
var name = decodeURIComponent(parts[parts.length - 2]);
var ext = parts[parts.length - 1].toLowerCase();
if (disk2.setBinary(drive, name, ext, req.response)) {
@@ -381,6 +385,7 @@ if (canvas4) {
}
var romVersion = prefs.readPref('computer_type2');
+var enhanced = false;
var rom;
var char_rom = apple2_charset;
switch (romVersion) {
@@ -406,8 +411,8 @@ default:
rom = new Apple2ROM();
}
-var gr = new LoresPage(1, char_rom, context1);
-var gr2 = new LoresPage(2, char_rom, context2);
+var gr = new LoresPage(1, char_rom, false, context1);
+var gr2 = new LoresPage(2, char_rom, false, context2);
var hgr = new HiresPage(1, context3);
var hgr2 = new HiresPage(2, context4);
@@ -416,7 +421,7 @@ var ram1 = new RAM(0x00, 0x03),
ram3 = new RAM(0x60, 0xBF);
-var vm = new VideoModes(gr, hgr, gr2, hgr2);
+var vm = new VideoModes(gr, hgr, gr2, hgr2, false);
var dumper = new ApplesoftDump(cpu);
var drivelights = new DriveLights();
@@ -942,17 +947,17 @@ $(function() {
}
evt.preventDefault();
})
- .mouseup(function(evt) {
- if (!gamepad) {
- io.buttonUp(evt.which == 1 ? 0 : 1);
- }
- })
- .bind('contextmenu', function(evt) { evt.preventDefault(); });
+ .mouseup(function(evt) {
+ if (!gamepad) {
+ io.buttonUp(evt.which == 1 ? 0 : 1);
+ }
+ })
+ .bind('contextmenu', function(evt) { evt.preventDefault(); });
$('body').mousemove(_mousemove);
$('input,textarea').focus(function() { focused = true; })
- .blur(function() { focused = false; });
+ .blur(function() { focused = false; });
keyboard.create($('#keyboard'));
@@ -973,9 +978,7 @@ $(function() {
});
}
- if (romVersion != 'original') {
- reset();
- }
+ reset();
run();
setInterval(updateKHz, 1000);
updateSound();
diff --git a/js/main2e.js b/js/main2e.js
index 0f9b294..18a9fa5 100644
--- a/js/main2e.js
+++ b/js/main2e.js
@@ -89,8 +89,8 @@ function DriveLights()
return {
driveLight: function(drive, on) {
$('#disk' + drive).css('background-image',
- on ? 'url(css/red-on-16.png)' :
- 'url(css/red-off-16.png)');
+ on ? 'url(css/red-on-16.png)' :
+ 'url(css/red-off-16.png)');
},
dirty: function() {
// $('#disksave' + drive).button('option', 'disabled', !dirty);
@@ -327,7 +327,7 @@ function doLoadHTTP(drive, _url) {
req.responseType = 'arraybuffer';
req.onload = function() {
- var parts = url.split(/[\/\.]/);
+ var parts = url.split(/[/.]/);
var name = decodeURIComponent(parts[parts.length - 2]);
var ext = parts[parts.length - 1].toLowerCase();
if (req.response.byteLength >= 400 * 1024) {
@@ -401,12 +401,12 @@ if (canvas4) {
context4 = context1;
}
-var gr = new LoresPage(1, char_rom, context1);
-var gr2 = new LoresPage(2, char_rom, context2);
+var gr = new LoresPage(1, char_rom, true, context1);
+var gr2 = new LoresPage(2, char_rom, true, context2);
var hgr = new HiresPage(1, context3);
var hgr2 = new HiresPage(2, context4);
-var vm = new VideoModes(gr, hgr, gr2, hgr2);
+var vm = new VideoModes(gr, hgr, gr2, hgr2, true);
var dumper = new ApplesoftDump(cpu);
var drivelights = new DriveLights();
@@ -919,20 +919,20 @@ $(function() {
}
evt.preventDefault();
})
- .mouseup(function(evt) {
- if (!gamepad) {
- io.buttonUp(evt.which == 1 ? 0 : 1);
- }
- })
- .bind('contextmenu', function(evt) { evt.preventDefault(); });
+ .mouseup(function(evt) {
+ if (!gamepad) {
+ io.buttonUp(evt.which == 1 ? 0 : 1);
+ }
+ })
+ .bind('contextmenu', function(evt) { evt.preventDefault(); });
$('body').mousemove(_mousemove);
$('body > div').hover(function() { focused = false; },
- function() { focused = true; });
+ function() { focused = true; });
$('input,textarea').focus(function() { focused = true; })
- .blur(function() { focused = false; });
+ .blur(function() { focused = false; });
keyboard.create($('#keyboard'));