Skip to content
Denis Maslennikov edited this page Nov 13, 2017 · 25 revisions

poke

poke addr val

Parameters:

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

Description:

This function allows you to write to the virtual RAM of TIC.
The address should be specified in hexadecimal format, and values should be given 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