2018-12-18 14:12:56 +00:00
|
|
|
%import c64utils
|
|
|
|
%option enable_floats
|
|
|
|
|
|
|
|
~ main {
|
|
|
|
|
|
|
|
const uword width = 40
|
|
|
|
const uword height = 25
|
|
|
|
|
|
|
|
sub start() {
|
|
|
|
|
|
|
|
float t
|
|
|
|
ubyte color
|
|
|
|
|
2018-12-19 01:51:22 +00:00
|
|
|
while true {
|
|
|
|
float x = sin(t)
|
|
|
|
float y = cos(t*1.1356)
|
|
|
|
ubyte xx=screenx(x)
|
|
|
|
ubyte yy=screeny(y)
|
|
|
|
|
|
|
|
c64.COLOR = color
|
|
|
|
c64scr.PLOT(xx,yy)
|
|
|
|
c64.CHROUT('Q') ; shift-q = filled circle
|
|
|
|
; the 3 lines above can be replaced by: c64scr.setchrclr(xx, yy, 81, color)
|
|
|
|
|
|
|
|
t += 0.08
|
2018-12-18 14:12:56 +00:00
|
|
|
color++
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-12-19 01:51:22 +00:00
|
|
|
sub screenx(float x) -> ubyte {
|
|
|
|
return b2ub(fintb(x * flt(width)/2.2) + width//2)
|
2018-12-18 14:12:56 +00:00
|
|
|
}
|
2018-12-19 01:51:22 +00:00
|
|
|
sub screeny(float y) -> ubyte {
|
|
|
|
return b2ub(fintb(y * flt(height)/2.2) + height//2)
|
2018-12-18 14:12:56 +00:00
|
|
|
}
|
|
|
|
}
|