07-17-2017, 01:57 AM
So this is like an etch-o-sketch but It doesn't like the screen grabbing part. This all works fine in Sinclair BASIC. I'm guessing the picture data collides with Boriel's compiled code. I'm also guessing that Boriel decides where to inline ASM sections. Can you explicitly tell Boriel where to assemble to ?
What i found strange also was that sometimes it seems to work fine, and sometimes it doesn't. Pressing f button does the frame grab
but FUSE freezes, the border goes blue and you might get garbled stuff at bottom of screen.
Code:
#include <fastPlot.bas>
DIM cx,cy,x,y,cl AS UINTEGER
10 REM The variables
20 LET cx=128: LET cy=80: LET x=cx: LET y=cy:LET cl=0: INK 0
30 INK cl: fastPlot(x,y)
100 IF INKEY$="a" AND x>=0 THEN LET x=x-1: END IF
120 IF INKEY$="s" AND x<=255 THEN LET x=x+1: END IF
130 IF INKEY$="o" AND y<=175 THEN LET y=y+1: END IF
150 IF INKEY$="k" AND y>=0 THEN LET y=y-1: END IF
160 IF INKEY$="f" THEN PRINT AT 0,0;"Frame grabbed!": grabScreen(): END IF
170 IF INKEY$="g" THEN PRINT AT 0,0;"Frame pasted!": CLS : dumpScreen() : END IF
180 IF INKEY$="n" AND cl>=0 THEN LET cl=cl-1: END IF
190 IF INKEY$="m" AND cl<=7 THEN LET cl=cl+1: END IF
200 GO TO 30
SUB grabScreen()
ASM
LD HL,16384
LD DE,51200
LD BC,6912
LDIR
RET
END ASM
END SUB
SUB dumpScreen()
ASM
LD HL,51200
LD DE,16384
LD BC,6912
LDIR
RET
END ASM
END SUB
What i found strange also was that sometimes it seems to work fine, and sometimes it doesn't. Pressing f button does the frame grab
but FUSE freezes, the border goes blue and you might get garbled stuff at bottom of screen.