black and white high resolution graphics work
This commit is contained in:
parent
5fc2be1fdc
commit
a9a12189af
|
@ -144,10 +144,13 @@ class AppleIIBase: NSObject, EmulatedSystem {
|
||||||
videoMode = getCurrentVideoMode(switches: videoSoftswitches)
|
videoMode = getCurrentVideoMode(switches: videoSoftswitches)
|
||||||
|
|
||||||
let videoMemoryStart: Address
|
let videoMemoryStart: Address
|
||||||
|
let hgrMemoryStart: Address
|
||||||
if(videoSoftswitches.PAGE_2) {
|
if(videoSoftswitches.PAGE_2) {
|
||||||
videoMemoryStart = 0x800
|
videoMemoryStart = 0x800
|
||||||
|
hgrMemoryStart = 0x4000
|
||||||
} else {
|
} else {
|
||||||
videoMemoryStart = 0x400
|
videoMemoryStart = 0x400
|
||||||
|
hgrMemoryStart = 0x2000
|
||||||
}
|
}
|
||||||
|
|
||||||
if(videoMode == .Text)
|
if(videoMode == .Text)
|
||||||
|
@ -175,9 +178,9 @@ class AppleIIBase: NSObject, EmulatedSystem {
|
||||||
putGlyphs(buffer: buf!, start: videoMemoryStart + 0x350, end: videoMemoryStart + 0x378)
|
putGlyphs(buffer: buf!, start: videoMemoryStart + 0x350, end: videoMemoryStart + 0x378)
|
||||||
putGlyphs(buffer: buf!, start: videoMemoryStart + 0x3D0, end: videoMemoryStart + 0x3F8)
|
putGlyphs(buffer: buf!, start: videoMemoryStart + 0x3D0, end: videoMemoryStart + 0x3F8)
|
||||||
} else if(videoMode == .Hires) {
|
} else if(videoMode == .Hires) {
|
||||||
|
putHiresPixels(buffer: buf!, start: hgrMemoryStart, end: hgrMemoryStart + 0x1fff)
|
||||||
} else if(videoMode == .MixedHires) {
|
} else if(videoMode == .MixedHires) {
|
||||||
putHiresPixels(buffer: buf!, start: 0x2000, end: 0x3fff)
|
putHiresPixels(buffer: buf!, start: hgrMemoryStart, end: hgrMemoryStart + 0x1fff)
|
||||||
|
|
||||||
//Draw the bottom 4 text rows.
|
//Draw the bottom 4 text rows.
|
||||||
putGlyphs(buffer: buf!, start: videoMemoryStart + 0x250, end: videoMemoryStart + 0x278)
|
putGlyphs(buffer: buf!, start: videoMemoryStart + 0x250, end: videoMemoryStart + 0x278)
|
||||||
|
|
|
@ -22,10 +22,13 @@ extension AppleIIBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
//Convert the address into an (X,Y) pixel coordinate.
|
//Convert the address into an (X,Y) pixel coordinate.
|
||||||
var offset = address - 0x2000
|
var offset = address - pageBase
|
||||||
|
|
||||||
|
/*
|
||||||
if(offset >= 0x2000) { //Page 2 address
|
if(offset >= 0x2000) { //Page 2 address
|
||||||
offset -= 0x2000
|
offset -= 0x2000
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
//Find the row number.
|
//Find the row number.
|
||||||
var rowNumber = 0
|
var rowNumber = 0
|
||||||
|
@ -44,6 +47,7 @@ extension AppleIIBase {
|
||||||
}
|
}
|
||||||
else if(0x78 ... 0x7F ~= lowByte || 0xF8 ... 0xFF ~= lowByte) {
|
else if(0x78 ... 0x7F ~= lowByte || 0xF8 ... 0xFF ~= lowByte) {
|
||||||
//Discard.
|
//Discard.
|
||||||
|
return
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//Top third.
|
//Top third.
|
||||||
|
@ -67,12 +71,11 @@ extension AppleIIBase {
|
||||||
let dot4 = (pixel & 0x10) == 0x10
|
let dot4 = (pixel & 0x10) == 0x10
|
||||||
let dot5 = (pixel & 0x20) == 0x20
|
let dot5 = (pixel & 0x20) == 0x20
|
||||||
let dot6 = (pixel & 0x40) == 0x40
|
let dot6 = (pixel & 0x40) == 0x40
|
||||||
//let dot7 = (pixel & 0x80) == 0x80
|
|
||||||
|
|
||||||
let pixelRowOffset = Int(rowNumber * AppleII.ScreenDelegate.PIXEL_WIDTH)
|
let pixelRowOffset = Int(rowNumber * AppleII.ScreenDelegate.PIXEL_WIDTH)
|
||||||
let pixelColumnOffset = Int(UInt16(columnByte) * 7)
|
let pixelColumnOffset = Int(UInt16(columnByte) * 7)
|
||||||
|
|
||||||
if(pixelRowOffset + pixelColumnOffset == 17920) {
|
if(pixelRowOffset + pixelColumnOffset == (5 * AppleII.ScreenDelegate.PIXEL_WIDTH)) {
|
||||||
let x = 0
|
let x = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue