1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-06-11 23:29:29 +00:00
This commit is contained in:
David Schmenk 2024-01-19 07:34:30 -08:00
commit da0bf22b2e
26 changed files with 137 additions and 132 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -13,4 +13,7 @@ import dgrlib
predef dgrSwap#0
predef dgrDrawBuf(page)#0
predef dgrColor(clr)#0
const dgrPage1 = 0
const dgrPage2 = 1
const dgrOff = -1
end

View File

@ -13,4 +13,7 @@ import grlib
predef grSwap#0
predef grDrawBuf(page)#0
predef grColor(clr)#0
const grPage1 = 0
const grPage2 = 1
const grOff = -1
end

View File

@ -21,4 +21,7 @@ import hgrlib
predef hgrSwap#1
predef hgrDrawBuf(page)#1
predef hgrColor(clr)#0
const hgrPage1 = 0
const hgrPage2 = 1
const hgrOff = -1
end

View File

@ -5,9 +5,5 @@ import hgrtile
predef tileAndDraw(x, y, tileptr)#0
predef tileDrawStr(x, y, strptr, strlen, tileset)#0
predef tileFromText(txtpage, tileset)#0
predef tileMode(mode)#1
predef tileClear#0
predef tileShow(page)#1
predef tileSwap#1
predef tileDrawBuf(page)#1
end

View File

@ -520,32 +520,48 @@ export def dgrClear(clr)#0
dgrFill(0, 0, @clrtile)
end
export def dgrMode(mode)#1
if mode
//
// Set double lores graphics, return draw buffer
//
^showlores
^showfull
^showgraphics
^showpage1
^ena80 = 0
^show80 = 0
^an3on
drawpage = 1
drawbuff = dgrbuff[1]
return 1
fin
//
// Set text mode
//
^showtext
^showpage1
^ena80 = 0
^show40 = 0
^mapmain = 0
^an3off
call($FC58, 0, 0, 0, 0) // home()
return 0
when mode
is page1
//
// Set double lores graphics, return draw buffer
//
^showlores
^showfull
^showgraphics
^showpage1
^ena80 = 0
^show80 = 0
^an3on
drawpage = page2
drawbuff = dgrbuff[page2]
break
is page2
//
// Set double lores graphics, return draw buffer
//
^showlores
^showfull
^showgraphics
^showpage1
^ena80 = 0
^show80 = 0
^an3on
drawpage = page1
drawbuff = dgrbuff[page1]
break
otherwise
//
// Set text mode
//
^showtext
^showpage1
^ena80 = 0
^show40 = 0
^mapmain = 0
^an3off
call($FC58, 0, 0, 0, 0) // home()
wend
return mode
end
//
// Set display page, return other page

View File

@ -443,33 +443,50 @@ end
// Set lores graphics, return draw buffer
//
export def grMode(mode)#1
if mode
//
// Set GR mode
//
^showlores
^showfull
^showgraphics
^showpage1
^ena80 = 0
^show40 = 0
^mapmain = 0
^an3off
drawpage = 1
drawbuff = grbuff[1]
return 1
fin
//
// Set text mode
//
^showtext
^showpage1
^ena80 = 0
^show40 = 0
^mapmain = 0
^an3off
call($FC58, 0, 0, 0, 0) // home()
return 0
when mode
is page1
//
// Set GR mode
//
^showlores
^showfull
^showgraphics
^showpage1
^ena80 = 0
^show40 = 0
^mapmain = 0
^an3off
drawpage = page2
drawbuff = grbuff[page2]
break
is page2
//
// Set GR mode
//
^showlores
^showfull
^showgraphics
^showpage2
^ena80 = 0
^show40 = 0
^mapmain = 0
^an3off
drawpage = page1
drawbuff = grbuff[page1]
break
otherwise
//
// Set text mode
//
^showtext
^showpage1
^ena80 = 0
^show40 = 0
^mapmain = 0
^an3off
call($FC58, 0, 0, 0, 0) // home()
wend
return mode
end
//
// Set display page, return other page

View File

@ -1157,14 +1157,7 @@ export def hgrBLT(x, y, w, h, srcptr)#0
end
export def hgrMode(mode)#1
when mode
is 0
//
// Show text mode
//
^showpage1
^showtext
break
is 1
is page1
//
// Set HGR1 mode
//
@ -1173,21 +1166,27 @@ export def hgrMode(mode)#1
^showfull
^showhires
^showgraphics
drawpage = 1
drawbuff = hgrbuff[1]
drawpage = page2
drawbuff = hgrbuff[page2]
break
is 2
is page2
//
// Set HGR2 mode
//
memset(hgr2, 0, $2000) // Clear HGR2
^showpage1
^showpage2
^showfull
^showhires
^showgraphics
drawpage = 1
drawbuff = hgrbuff[1]
drawpage = page1
drawbuff = hgrbuff[page1]
break
otherwise
//
// Show text mode
//
^showpage1
^showtext
wend
return mode
end

View File

@ -353,44 +353,9 @@ export def tileFromText(txtpage, tileset)#0
tileDrawStr(0, y, rowaddr[y] | txtptr, 40, tileset)
next
end
export def tileMode(mode)#1
if mode
//
// Set HGR mode
//
memset(hgr1, 0, $2000) // Clear HGR page 1
^showpage1
^showfull
^showhires
^showgraphics
drawpage = 0
drawbuff = hgr1
return 0
fin
//
// Show text mode
//
^showpage1
^showtext
return 0
end
export def tileClear#0
memset(drawbuff, $0000, drawbuff) // Clear current HGR page
end
//
// Set display page, return other page
// Set draw buffer
//
export def tileShow(page)#1
page = page & 1
^(showpage1 + page)
return page ^ 1
end
export def tileSwap#1
^(showpage1 + drawpage)
drawpage = drawpage ^ 1
drawbuff = hgrbuff[drawpage]
return drawpage
end
export def tileDrawBuf(page)#1
drawpage = page & 1
drawbuff = hgrbuff[drawpage]

View File

@ -1,5 +1,5 @@
cp ../sysfiles/BLANK140.po PLASMA-2.1-DEMOS.po
./ac.jar -n PLASMA-2.1-INET.po PLASMA.DEMOS
./ac.jar -n PLASMA-2.1-DEMOS.po PLASMA.DEMOS
cat rel/INT32TEST#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/INT32TEST REL
cat rel/apple/CONIOTST#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/CONIOTST REL
cat rel/apple/ROD#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/ROD REL

View File

@ -24,8 +24,8 @@ def dgrTest#0
byte b, l, k
word i, j, ii, ij
b = dgrMode(TRUE)
dgrDrawBuf(0)
b = dgrMode(dgrPage1)
dgrDrawBuf(dgrPage1)
for k = 15 downto 0
dgrClear(k)
next
@ -43,7 +43,7 @@ def dgrTest#0
i = 40
j = 10
^$C010
dgrDrawBuf(1)
dgrDrawBuf(dgrPage2)
while ^$C000 < 128
dgrFill(k, k, @tile1)
dgrBLT(i, j, 8, 8, @sprite1)
@ -59,7 +59,7 @@ def dgrTest#0
fin
loop
^$C010
dgrMode(FALSE)
dgrMode(dgrOff)
end
dgrTest

View File

@ -24,8 +24,8 @@ def grTest#0
byte b, l, k
word i, j, ii, ij
b = grMode(TRUE)
grDrawBuf(0)
b = grMode(grPage1)
grDrawBuf(grPage1)
for k = 15 downto 0
grClear(k)
next
@ -43,7 +43,7 @@ def grTest#0
i = 20
j = 10
^$C010
grDrawBuf(1)
grDrawBuf(grPage2)
while ^$C000 < 128
grFill(k, k, @tile1)
grBLT(i, j, 8, 8, @sprite1)
@ -59,7 +59,7 @@ def grTest#0
fin
loop
^$C010
grMode(FALSE)
grMode(grOff)
end
grTest

View File

@ -65,16 +65,16 @@ def testblt(sprtnum)#0
loop
end
hgrMode(TRUE)
spriteDrawBuf(hgrDrawBuf(0)) // So we can see the compile process
hgrMode(hgrPage1)
spriteDrawBuf(hgrDrawBuf(hgrPage1)) // So we can see the compile process
sprtBall = spriteCompile(10, 10, 5, 5, @ball)
hgrColor(0)
hgrClear()
testline
memcpy($4000, $2000, $2000) // Copy to both buffers
spriteDrawBuf(hgrDrawBuf(1))
spriteDrawBuf(hgrDrawBuf(hgrPage2))
spriteAdd(0, sprtBall)
testblt(16)
getc
hgrMode(FALSE)
hgrMode(hgrOff)
done

View File

@ -575,8 +575,8 @@ next
heapstart = heapmark()
//puts("\nBeginning available memory: "); puti(heapavail()); putln
repeat
hgrMode(TRUE)
spriteDrawBuf(hgrDrawBuf(0)) // Single buffered
hgrMode(hgrPage1)
spriteDrawBuf(hgrDrawBuf(hgrPage1)) // Single buffered
spriteAdd(SHIP_SPRTNUM, sprtShip)
spriteAdd(SPIDER_SPRTEBASE, sprtEgg3)
//
@ -617,7 +617,8 @@ repeat
puts("\nEarth has been overrun")
puts("\nby the Spiders from Mars\n")
fin
hgrMode(FALSE)
hgrMode(hgrOFF)
//hgrDrawBuf(hgrPage1)
//
// Clear sprite lists
//

View File

@ -169,8 +169,8 @@ var sprtSplat1, sprtSplat2
var sprtWeb1, sprtWeb2, sprtWeb3
var sprtShip, sprtMissle, sprtDummy
hgrMode(TRUE)
spriteDrawBuf(hgrDrawBuf(0)) // So we can see the compile process
hgrMode(hgrPage1)
spriteDrawBuf(hgrDrawBuf(hgrPage1)) // So we can see the compile process
sprtShip = spriteCompile(14, 14, 7, 13, @ship)
sprtMissle = spriteCompile( 6, 8, 3, 0, @missle)
sprtEgg3 = spriteCompile(14, 12, 7, 6, @egg3)
@ -185,7 +185,7 @@ sprtWeb3 = spriteCompile(20, 8, 10, 0, @web3)
sprtSplat1 = spriteCompile(20, 13, 10, 6, @splat1)
sprtSplat2 = spriteCompile(24, 17, 12, 8, @splat2)
sprtDummy = spriteCompile( 7, 8, 0, 0, @dummy)
hgrMode(FALSE)
hgrMode(hgrOff)
spriteSave("SHIP", sprtShip)
spriteSave("MISSLE", sprtMissle)
spriteSave("EGG3", sprtEgg3)

View File

@ -1,13 +1,15 @@
include "inc/cmdsys.plh"
include "inc/hgrlib.plh"
include "inc/hgrtile.plh"
include "inc/hgrfont.plh"
sysflags reshgr1 // Reserve HGR page 1
tileMode(TRUE)
hgrMode(hgrPage1)
tileDrawBuf(hgrPage1)
hgrPutStr(5, 1, "Hello HiRes Tile Demo")
getc
tileFromText(0, @hgrFont)
getc
tileMode(FALSE)
hgrMode(hgrOff)
done

View File

@ -30,7 +30,7 @@ SRC" GRLIB.4TH"
;
: BOUNCE
1 GRMODE DROP
0 GRMODE DROP
0 GRDRAWBUF
0 GRCLEAR
BEGIN
@ -38,7 +38,7 @@ SRC" GRLIB.4TH"
?TERMINAL
UNTIL
KEY DROP
0 GRMODE DROP
-1 GRMODE DROP
;
BOUNCE

View File

@ -34,7 +34,7 @@ SRC" HGRLIB.4TH"
;
: BOUNCE
1 HGRMODE DROP
0 HGRMODE DROP
0 HGRDRAWBUF DROP
0 HGRSHOW DROP
BEGIN
@ -42,7 +42,7 @@ SRC" HGRLIB.4TH"
?TERMINAL
UNTIL
KEY DROP
0 HGRMODE DROP
-1 HGRMODE DROP
;
BOUNCE