1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-04-11 15:39:14 +00:00

Add DHGR pixel plotting (560x192)

This commit is contained in:
David Schmenk 2024-11-12 19:15:05 -08:00
parent 94d47f031a
commit 6593a32253
4 changed files with 35 additions and 3 deletions

Binary file not shown.

View File

@ -6,6 +6,8 @@ import dcgrutils
predef dcgrBoldStr(clr, x, y, strptr)#0
predef dcgrFont(font)#0
predef dcgrRect(x, y, w, h)#0
predef dhgrSet(dhx, y)#0
predef dhgrUnset(dhx, y)#0
predef spriteRead(filestr)#5
predef spriteWrite(filestr, xorg, yorg, width, height, sprptr)#1
predef screenRead(filestr)#1

View File

@ -5,6 +5,11 @@ include "inc/dcgrlib.plh"
const page1m = $C054
const page1x = $C055
//
// Color -> DHGR pixel
//
byte[] dhgrPix = 2, 4, 8, 1
byte[] dhgrMask = 13, 12, 7, 14
//
// Apple //e hires character font
//
byte fontWide[]
@ -97,9 +102,6 @@ export def dcgrFont(font)#0
pThin = fontThin
pWide = @fontWide
for rows = 0 to 96*8
//bits = (^pWide | ^pWide >> 1) & $02
//bits = bits | (^pWide >> 1 | ^pWide >> 2) & $04
//bits = bits | (^pWide >> 2 | ^pWide >> 3) & $08
bits = (^pWide ) & $02
bits = bits | (^pWide | ^pWide >> 1 | ^pWide >> 2) & $04
bits = bits | ( ^pWide >> 2) & $08
@ -124,6 +126,16 @@ export def dcgrRect(x, y, w, h)#0
dcgrHLin(x, x2, v)
next
end
export def dhgrSet(dhx, y)#0
dcgrColor(dhgrPix[dhx & $03])
dcgrOp(OP_OR)
dcgrPlot(dhx >> 2, y)
end
export def dhgrUnset(dhx, y)#0
dcgrColor(dhgrMask[dhx & $03])
dcgrOp(OP_AND)
dcgrPlot(dhx >> 2, y)
end
export def spriteRead(filestr)#5
var sprptr, sprsize, xorg, yorg
byte refnum, width, height

View File

@ -138,6 +138,7 @@ def readEnterprise#0
t_ptr=>spr_pixmap = pixptr
t_ptr=>spr_bl7 = heapalloc(ENT_SZ)
dcgrSurfMem(OP_SRC, ENT_H, t_ptr=>spr_bl7, ENT_W7*4)
dcgrColor(CLR_BLACK)
dcgrClearBl7(0, 0, ENT_W7, ENT_H)
dcgrPixmap(ENT_W7*7/2 - xorg, ENT_H/2 - yorg, width, height, pixptr)
t_ptr = t_ptr + t_sprite
@ -150,6 +151,22 @@ end
// Test Harness //
// //
////////////////////////////////////////////////////////////////
def dhgrTest#0
word i
//
// Double Hires Lines
//
dcgrSurfScr(OP_OR)
setlineplot(@dhgrSet)
for i = 0 to 191 step 4
line(0, 0, 559, i)
next
for i = 559 downto 0 step 7
line(0, 0, i, 191)
next
getc
end
def dcgrTest#0
word i, j, k, oi, oj, i7, im7, k7, km7, s7w, inci, incj, inck
word backblk, backspan
@ -422,6 +439,7 @@ def dcgrTest#0
getc
end
dcgrMode(0)
dhgrTest
screenRead("monarch")
readEnterprise
dcgrCompSprite(2)