diff --git a/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/UserInterfaceState.xcuserstate b/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/UserInterfaceState.xcuserstate
index 3fdd4b1..43524db 100644
Binary files a/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/UserInterfaceState.xcuserstate and b/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist b/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist
index a085337..674450b 100644
--- a/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist
+++ b/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist
@@ -1139,6 +1139,17 @@
+
+
+
+
+
+
+
+
diff --git a/A2Mac/LoRes.swift b/A2Mac/LoRes.swift
index d9a3d7b..3da29c3 100644
--- a/A2Mac/LoRes.swift
+++ b/A2Mac/LoRes.swift
@@ -30,12 +30,12 @@ class LoRes: NSView {
static let Page1Addr = 0x400
static let Page2Addr = 0x800
- static let PixelWidth = 40
+ static let PixelWidth = 80
static let PixelMixedHeight = 40
static let PixelHeight = 48
static let MixedTextHeight = 4
static let blockRows = 24
- static let blockCols = 40
+ static let blockCols = 80
static let blockWidth = PixelWidth / blockCols
static let blockHeight = PixelHeight / blockRows
@@ -270,8 +270,8 @@ class LoRes: NSView {
let B = 0
let A = 3
- var blockChanged = [Bool](repeating: false, count: LoRes.blockRows * LoRes.blockCols)
- var shadowScreen = [Int](repeating: 0, count: PageSize)
+ var blockChanged = [Bool](repeating: false, count: LoRes.blockRows * LoRes.blockCols / 2)
+ var shadowScreen = [Int](repeating: 0, count: LoRes.blockRows * LoRes.blockCols)
var was = 0;
@@ -371,7 +371,7 @@ class LoRes: NSView {
var y = 0
- blockChanged = [Bool](repeating: false, count: LoRes.blockRows * LoRes.blockCols)
+ blockChanged = [Bool](repeating: false, count: LoRes.blockRows * LoRes.blockCols / 2)
LoRes.context?.clear( CGRect(x: 0, y: 0, width: frame.width, height: frame.height) )
@@ -384,23 +384,29 @@ class LoRes: NSView {
let blockVertIdx = y * LoRes.blockCols
- for blockHorIdx in 0 ..< LoRes.blockCols {
+ for x in stride(from: 0, to: LoRes.blockCols, by: 2) {
+ let blockHorIdx = x / 2
// print("blockVertIdx:", blockVertIdx, " blockHorIdx:", blockHorIdx)
let block = Int(LoResBufferPointer[ Int(lineAddr + blockHorIdx) ])
let screenIdx = blockVertIdx + blockHorIdx
- let pixelHAddr = blockVertIdx * 2 + blockHorIdx
+ let blockIdx = screenIdx / 2
+ let pixelHAddr = blockVertIdx * 2 + blockHorIdx * 2
let pixelLAddr = pixelHAddr + LoRes.blockCols
// get all changed blocks
- blockChanged[ screenIdx ] = blockChanged[ screenIdx ] || shadowScreen[ screenIdx ] != block
+ blockChanged[ blockIdx ] = blockChanged[ blockIdx ] || shadowScreen[ screenIdx ] != block
shadowScreen[ screenIdx ] = block
colorPixel(pixelAddr: pixelHAddr, color: block & 0x0F )
colorPixel(pixelAddr: pixelLAddr, color: (block >> 4) & 0x0F )
+
+ colorPixel(pixelAddr: pixelHAddr + 1, color: block & 0x0F )
+ colorPixel(pixelAddr: pixelLAddr + 1, color: (block >> 4) & 0x0F )
}
+
y += 1
if ( y >= LoRes.PixelHeight ) {
@@ -417,12 +423,13 @@ class LoRes: NSView {
let blockScreenHeigth = CGFloat(frame.height) / CGFloat(HiRes.blockRows)
for blockVertIdx in 0 ..< LoRes.blockRows {
- for blockHorIdx in 0 ..< LoRes.blockCols {
- if blockChanged[ blockVertIdx * LoRes.blockCols + blockHorIdx ] {
+ for x in stride(from: 0, to: LoRes.blockCols, by: 2) {
+ let blockHorIdx = x / 2
+ if blockChanged[ blockVertIdx * LoRes.blockCols / 2 + blockHorIdx ] {
// refresh the entire screen
- let x = CGFloat(blockHorIdx) * blockScreenWidth - CGFloat(screenBlockMargin)
+ let x = CGFloat(blockHorIdx * 2) * blockScreenWidth - CGFloat(screenBlockMargin)
let y = frame.height - CGFloat(blockVertIdx) * blockScreenHeigth - blockScreenHeigth - CGFloat(screenBlockMargin)
- let w = blockScreenWidth + CGFloat(screenBlockMargin) * 2
+ let w = blockScreenWidth + CGFloat(screenBlockMargin) * 8
let h = blockScreenHeigth + CGFloat(screenBlockMargin) * 2
let boundingBox = CGRect(x: x, y: y, width: w, height: h)