global hpos ' the horizontal locators for ENTER sub
global vpos ' the vertical locator for ENTER sub
global gcolor$ ' YOU MUST DEFINE gcolor$ BEFORE you use GRPRINT or ENTER but it only needs to be done once
call screen ' I made this for a generic screen call
hpos= 10 'lets give a starting location
vpos =500
gcolor$= "white" ' lets give a default color
'********x***y** h***v - original rectangle command had r,g,b numbers
call rect 100,100,200,200
call rect 90,100,100,110' Attiny legs
gcolor$="white"
call grprint 10,105,"leg 5 pin 0"
call rect 90,130,100,140
call grprint 10,140,"leg 6 pin 1"
call rect 90,160,100,160
call grprint 10,170,"leg 7 pin 2"
call rect 90,190,100,200
call grprint 10,201,"leg 8 5V"
call rect 200,100,210,110
call rect 200,130,210,140
call grprint 211,105,"leg 4 GND"
call rect 200,160,210,170
call grprint 211,140,"leg 3 pin 3"
call grprint 211,170,"leg 2 pin 4"
call grprint 211,200,"leg 1 "
call rect 200,190,210,200 'Attiny Legs ends
call circle 180,190, 5
gcolor$="green"
call rect 510,10,800,400
gcolor$="white"
for x=0 to 18
d=d+20
call circle 515,d,2
call circle 795,d,2
next x
gcolor$="white"
call grprint 500,25,"1"
call grprint 500,45,"2"
call grprint 500,65,"3"
call grprint 500,85,"4"
call grprint 500,105,"5"
call grprint 500,125,"6"
call grprint 500,145,"7"
call grprint 500,165,"8"
call grprint 500,185,"9"
gcolor$="brown"
call grprint 805,185,"GND"
call grprint 805,205,"GND"
gcolor$="red"
call grprint 805,225,"5 Volt"
call grprint 805,245,"3.3 Volt"
gcolor$="white"
call grprint 805,265,"RESET"
gcolor$="white"
call grprint 495,205,"10"
call grprint 495,225,"11"
call grprint 495,245,"12"
call grprint 495,265,"13"
gcolor$="brown"
call grprint 480,285,"GND"
gcolor$="white"
call enter "Connect Leg 4 to Arduino GND (ground)"
call enter "Connect Leg 1 to Arduino pin 10"
call enter "Connect Leg 5 to Arduino pin 11"
call enter "Connect Leg 6 to Arduino pin 12"
call enter "Connect Leg 7 to Arduino pin 13"
gcolor$="red"
call enter "Connect Leg 8 to Arduino 5 Volt"
call enter "Connect a 10uf 25volt capacitor between GND and RESET (make sure the stripe side is attached to GND!!!!)"
wait
[quit]
#1 "discard"
close #1
end
sub enter message$
#1 "place ";hpos;" ";vpos
#1 "backcolor black"
#1 "color ";gcolor$
#1 "\";message$
vpos=vpos+20
end sub
sub gline x,y,h,v ' its my attempt to bring back a line command. like in the old days
#1 "backcolor black"
#1 "color ";gcolor$
#1 "line ";x;" ";y;" ";h;" ";v
end sub
sub grprint x,y,message$
#1 "backcolor black"
#1 "up"
#1 "place ";x;" ";y
#1 "down"
#1 "color ";gcolor$
#1 "\";message$
end sub
sub sphere h,v,size,x,c,a,dimmer ' dimmer cannot be more than 24
#1 "place ";h;" ";v
for y=1 to size
#1 "down"
#1 "color ";x;" ";c;" ";a
#1 "size 2"
#1 "circle ";y
#1 "flush"
x=x-dimmer
c=c-dimmer
a=a-dimmer
if x<2 then x=2
if c<2 then c=2
if a<2 then a=2
next y
end sub
'block h,v,size,R,G,B,dimmer
sub block h,v,size,x,c,a,dimmer ' dimmer cannot be more than 24
#1 "place ";h;" ";v
p=size/2
for y=1 to size
#1 "down"
#1 "color ";x;" ";c;" ";a
#1 "size 1"
print #1, "line ";h-y;" ";v-y;" ";h+y;" ";v-y
print #1, "line ";h+y;" ";v-y;" ";h+y;" ";v+y
print #1, "line ";h+y;" ";v+y;" ";h-y;" ";v+y
print #1, "line ";h-y;" ";v+y;" ";h-y;" ";v-y
x=x-dimmer
c=c-dimmer
a=a-dimmer
if x<2 then x=2
if c<2 then c=2
if a<2 then a=2
p=p-1
next y
end sub
'ellipse h,v,sizex,sizey,R,G,B,dimmer
sub ellipse h,v,sizex,sizey,x,c,a,dimmer ' dimmer cannot be more than 24
#1 "place ";h;" ";v
if sizex>sizey then limit=sizex
if sizey>sizex then limit=sizey
for y=1 to limit
#1 "down"
#1 "color ";x;" ";c;" ";a
#1 "size 2"
hi=hi+1:if sizex>sizey then hi=hi+1
wi=wi+1:if sizey>sizex then wi=wi+1
if hi>sizex then hi=sizex
if wi>sizey then wi=sizey
#1 "ellipse ";hi;" ";wi
x=x-dimmer
c=c-dimmer
a=a-dimmer
if x<2 then x=2
if c<2 then c=2
if a<2 then a=2
next y
end sub
'initialize generic screen
sub screen
nomainwin
open "My new way of doing graphics !!" for graphics_nsb_fs as #1
print #1, "Down trapclose [quit]"
print #1, "fill black ; home ; down ; north"
end sub
' generic circle syntax - circle horizontal, vertical, size, color$
sub circle x, y, size
print #1," place "; x;" ";y
print #1," color "; gcolor$
print #1," circle "; size
end sub
sub color c$
print #1, "color ";c$
end sub
'chip x,y,size, color$,topcolor$,midcolor$
sub chip x,y,size, color$ , topcolor$,midcolor$ '******** HERE IS THE CHIP SUB FOR THIS PROJECT
print #1, "down"
if size< 30 then size =30
print #1, "color ";color$
for nloc= 1 to size/10
print #1,"place "; x;" ";y-nloc
print #1, "ellipsefilled ";size;" ";size/2
next nloc
print #1, "flush"
print #1, "color ";topcolor$
print #1, "ellipsefilled ";size;" ";size/2
print #1, "flush"
print #1, "color ";midcolor$
m= size/4
print #1, "ellipsefilled ";size/2;" ";m
print #1, "flush"
end sub
' ****************** RATING STARS **************
sub star h, v, type$
if type$ ="starhalf" then restore [starhalf]
if type$ ="starfull" then restore [starfull]
ost$ =""
read x, y
while nst$ <>"100000"
read nst$, t
if nst$ ="0" then r = 0: g= 0: b= 0 'black 0 0 0
if nst$ ="3" then r =128: g= 128: b= 128 'dark grey 128 128 128
if nst$ ="b" then r =224: g= 32: b= 64 'light red 224 32 64
if nst$ ="h" then r =255: g= 255: b= 255 'white 255 255 255
if nst$ ="i" then r =255: g= 255: b= 0 'yellow 255 255 0
#1 "color "; r; " "; g; " "; b
for u =0 to t
a =a +1
#1 "set "; c +h; " "; a +v
if a >x then c =c +1: a =0
next u
wend
#1 "flush"
[starhalf]
data 16,16
data 0,5,b,0,0,15,b,1,0,14,b,0,h,0,b,0,0,13,b,0,i,0,b,0,0,4,b,1,0,6,b,0,i,1,b,0,0,0,b,3,0
data 7,b,0,i,2,b,0,h,0,i,1,b,0,0,7,b,0,i,5,b,0,0,5,b,2,i,5,h,0,b,0,0,3,b,1,h,1,i,6,b,0
data 100000,0
[starfull]
data 16,16
data 0,5,b,0,0,15,b,1,0,14,b,0,h,0,b,0,0,13,b,0,i,0,b,0,0,4,b,1,0,6,b,0,i,1,b,0,0,0,b,3,0
data 7,b,0,i,2,b,0,h,0,i,1,b,0,0,7,b,0,i,5,b,0,0,5,b,2,i,5,h,0,b,0,0,3,b,1,h,1,i,6,b,0
data 0,6,b,2,h,0,i,5,b,0,0,8,b,0,i,2,h,1,i,0,b,0,0,8,b,0,i,1,h,0,b,0,h,2,b,0,0,7,b,0,i
data 0,h,0,b,0,0,0,b,3,0,7,b,0,h,0,b,0,0,4,b,1,0,6,b,0,h,0,b,0,0,13,b,1,100000,0
end sub
sub triangle h,v,size,NESW$,x,c,a,dimmer,direction$ ' dimmer cannot be more than 24
#1 "place ";h;" ";v
p=size/2
if direction$="top" then rev=0
if direction$="bottom" then rev=size
for y=1 to size
if direction$="top" then rev=rev+1
if direction$="bottom" then rev=rev-1
#1 "down"
#1 "color ";x;" ";c;" ";a
#1 "size 1"
if NESW$="south" then print #1, "line ";h-rev;" ";v-rev;" ";h+rev;" ";v-rev
if NESW$="west" then print #1, "line ";h+rev;" ";v-rev;" ";h+rev;" ";v+rev
if NESW$="north" then print #1, "line ";h+rev;" ";v+rev;" ";h-rev;" ";v+rev
if NESW$="east" then print #1, "line ";h-rev;" ";v+rev;" ";h-rev;" ";v-rev
x=x-dimmer
c=c-dimmer
a=a-dimmer
if x<2 then x=2
if c<2 then c=2
if a<2 then a=2
p=p-1
next y
end sub
sub userdef3D x,y,h,v,h1,v1,x1,y1,r,g,b,size' dimmer cannot be more than 24
#1 "down"
r2=r : g2=g : b2=b
for up =1 to size
#1 "color ";r2;" ";g2;" ";b2
print #1, "line ";x;" ";y+up;" ";h;" ";v+up
r2=r2-1
g2=g2-1
b2=b2-1
next up
r1=r : g1=g : b1=b
for up =1 to size
#1 "color ";r1;" ";g1;" ";b1
if h1>h then print #1, "line ";h;" ";v+up;" ";h1;" ";v1+up'right side
if h1<h then print #1, "line ";x1;" ";y1+up;" ";x;" ";y+up'left side
r1=r1-1
g1=g1-1
b1=b1-1
next up
r1=r : g1=g : b1=b
for up =1 to size
#1 "color ";r;" ";g;" ";b
if h1<h then print #1, "line ";h;" ";v+up;" ";h1;" ";v1+up'right side
if h1>h then print #1, "line ";x1;" ";y1+up;" ";x;" ";y+up'left side
r=r-1
g=g-1
b=b-1
next up
for up =1 to size
#1 "color ";r1;" ";g1;" ";b1
print #1, "line ";h1;" ";v1+up;" ";x1;" ";y1+up
r1=r1-1
g1=g1-1
b1=b1-1
next up
end sub
sub rect x,y,h,v
#1 "down"
#1 "color ";gcolor$
#1 "size 1"
print #1, "line ";x;" ";y;" ";h;" ";y
print #1, "line ";h;" ";y;" ";h;" ";v
print #1, "line ";h;" ";v;" ";x;" ";v
print #1, "line ";x;" ";v;" ";x;" ";y
end sub
sub panel h,v,size,size2,NESW$,x,c,a,dimmer,direction$ ' dimmer cannot be more than 24
p=size/2
if direction$="top" then rev=size2
if direction$="bottom" then rev=size
for y=size2 to size
if direction$="top" then rev=rev+1
if direction$="bottom" then rev=rev-1
#1 "down"
#1 "color ";x;" ";c;" ";a
#1 "size 1"
if NESW$="south" then print #1, "line ";h-rev;" ";v-rev;" ";h+rev;" ";v-rev
if NESW$="west" then print #1, "line ";h+rev;" ";v-rev;" ";h+rev;" ";v+rev
if NESW$="north" then print #1, "line ";h+rev;" ";v+rev;" ";h-rev;" ";v+rev
if NESW$="east" then print #1, "line ";h-rev;" ";v+rev;" ";h-rev;" ";v-rev
x=x-dimmer
c=c-dimmer
a=a-dimmer
if x<2 then x=2
if c<2 then c=2
if a<2 then a=2
p=p-1
next y
end sub