Skip to content
paul59 edited this page May 29, 2020 · 25 revisions

poke

poke addr val

Parameters:

  • addr : the address in RAM
  • val : the value to write

Description:

This function allows you to write a single byte to any address in TIC's RAM. The address should be specified in hexadecimal format, the value in decimal.

Example of poke

Example 1

-- demo poke
function TIC()

--Make some video noise
for i=0,(240*136)/2-1 do
 poke(0x0000+i,(i*i*time())/3000000000%2+1)
end

--Sound it
m=0
for i=30,80 do
 m=m+peek(0x0000+6000+i)
end
f=math.floor((10+((1+m)/20))*400)
poke(0xFF80+0,f&0XFF)
poke(0xFF80+2,(f&0XFF00)>>8)
poke(0xFF80+8,f&0XFF)
poke(0xFF80+10,(f&0XFF00)>>8)

end

Example poke (2 player mode)

Example 2

-- demo poke
l1=49
w1=18
l2=21
w2=12

function TIC()

--Video noise
for i=0,(240*136)/2-1 do
 poke(0x0000+i,(i*i*time())/3000000000%2+1)
end

--Sounds
if btnp(0,3,3)then l1=l1-1 end
if btnp(1,3,3)then l1=l1+1 end
if btnp(2,3,3)then w1=w1-1 end
if btnp(3,3,3)then w1=w1+1 end

l1=l1<136 and l1 or 135
l1=l1>0 and l1 or 0
w1=w1<120 and w1 or 112
w1=w1>2 and w1 or 2

if btnp(8,3,3)then l2=l2-1 end
if btnp(9,3,3)then l2=l2+1 end
if btnp(10,3,3)then w2=w2-1 end
if btnp(11,3,3)then w2=w2+1 end

l2=l2<136 and l2 or 135
l2=l2>0 and l2 or 0
w2=w2<120 and w2 or 112
w2=w2>2 and w2 or 2

--S1
off1=l1*120 
m=0
for i=60-w1/2,60+w1/2 do
	m=m+peek(0x0000+off1+i)
end

f=(10+((1+m)/w1))*800
f=math.floor(f)
print(l1..'-'..w1..'-'..f,0,0)
poke(0xFF80+0,f&0XFF)
poke(0xFF80+2,(f&0XFF00)>>8)

--Draw line
for i=60-w1/2,60+w1/2 do
	poke(0x0000+off1+i,136)
end

--S2
off2=l2*120 
m=0
for i=60-w2/2,60+w2/2 do
	m=m+peek(0x0000+off2+i)
end

f=(10+((1+m)/w2))*800
f=math.floor(f)
print(l2..'-'..w2..'-'..f,0,10)
poke(0xFF80+8,f&0XFF)
poke(0xFF80+10,(f&0XFF00)>>8)

--Draw line
for i=60-w2/2,60+w2/2 do
	poke(0x0000+off2+i,102)
end

end
Clone this wiki locally