Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - bikemadness

Pages: [1] 2 3 4 5 6
1
Yabasic / Re: Stuck on Indicies
« on: March 22, 2013 »
Thanks. Small as it was, it wasn't an issue, because it didn't work.

Yes. I know about about the true random that the PS2 console demo disk gave.
In this case, having a set random helps me.

What also helps me is to have my lines of code in the order that they happen.

I've managed to solve my original problem.

Code: [Select]
open window 640,512 rem >.
go=1
starz=3
stars=100
dim r(stars,starz),g(stars,starz),b(stars,starz)
dim x(stars,starz),y(stars,starz)
for a=1 to starz
for c=1 to stars
r(c,a)=ran(256)
g(c,a)=ran(256)
b(c,a)=ran(256)
x(c,a)=int(ran(64))*10
y(c,a)=int(ran(51))*10
next c
next a
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
go=go+1
if go>75 go=1
setrgb 1,20,20,20
fill rectangle 0,0 to 640,512
for a=1 to starz
for c=1 to stars
y(c,a)=y(c,a)+1
if y(c,a)>515 y(c,a)=-3
setrgb 1,r(c,a),g(c,a),b(c,a)
if go>1 and go<25 fill circle x(c,1),y(c,1),2
if go>25 and go<50 fill circle x(c,2),y(c,2),2
if go>50 and go<75 fill circle x(c,3),y(c,3),2
next c
next a
until (1=0)

2
Yabasic / Stuck on Indicies
« on: March 21, 2013 »
I haven't quite got the hang of them yet.

This program (long version) shows what I want.

Code: [Select]
open window 640,512
go=1
starz1=100
starz2=100
dim x1(starz1)
dim y1(starz1)
dim r1(starz1)
dim g1(starz1)
dim b1(starz1)
dim x2(starz2)
dim y2(starz2)
dim r2(starz2)
dim g2(starz2)
dim b2(starz2)
for a=1 to starz1
x1(a)=int(ran(64))*10
y1(a)=int(ran(51))*10
r1(a)=ran(256)
g1(a)=ran(256)
b1(a)=ran(256)
next a
for a=1 to starz2
x2(a)=int(ran(64))*10
y2(a)=int(ran(51))*10
r2(a)=ran(256)
g2(a)=ran(256)
b2(a)=ran(256)
next a
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
setrgb 1,20,20,20
fill rectangle 0,0 to 640,512
go=go+1
if go>50 go=1
if go>1 and go<25 then
for a=1 to starz1
y1(a)=y1(a)+1
if y1(a)>515 y1(a)=-3
setrgb 1,r1(a),g1(a),b1(a)
fill circle x1(a),y1(a),2
'dot x1(a),y1(a)
next a
endif
if go>25 and go<50 then
for a=1 to starz2
y2(a)=y2(a)+1
if y2(a)>515 y2(a)=-3
setrgb 1,r2(a),g2(a),b2(a)
fill circle x2(a),y2(a),2
'dot x2(a),y2(a)
next a
endif
until (1=0)

In the attempted short version, I'm not getting my random colours.

Can anyone see what I'm missing?

Code: [Select]
open window 640,512 rem >.
go=1
starz=3
stars=100
dim r(starz),g(starz),b(starz)
dim x(stars,starz),y(stars,starz)
for a=1 to starz
r(a)=ran(256)
g(a)=ran(256)
b(a)=ran(256)
for c=1 to stars
x(c,a)=int(ran(64))*10
y(c,a)=int(ran(51))*10
next c
next a
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
go=go+1
if go>75 go=1
setrgb 1,20,20,20
fill rectangle 0,0 to 640,512
for a=1 to starz
setrgb 1,r(a),g(a),b(a)
for c=1 to stars
y(c,a)=y(c,a)+1
if y(c,a)>515 y(c,a)=-3
if go>1 and go<25 fill circle x(c,1),y(c,1),2
if go>25 and go<50 fill circle x(c,2),y(c,2),2
if go>50 and go<75 fill circle x(c,3),y(c,3),2
next c
next a
until (1=0)

Help!

3
Yabasic / It's funny . . .
« on: February 14, 2013 »
When I started learning Yabasic, I also looked for samples that would be useful.
Making screensavers is fun, but I wanted practical as well.

I realised I had to write them myself.
Like this one, for example.

I needed a list of numbers worked from a formula and sitting down with calculator
and pencil was out of the question. I took a picture of the running program and
printed from that.

The window could be altered to the same ratio as an A4 sheet of paper.

Code: [Select]
open window 640,512 rem .>
pi=3.14159
repeat
setdispbuf vm
vm=1-vm
setdrawbuf vm
clear window
setrgb 1,256,256,256
fill rectangle 0,0 to 640,512
setrgb 1,256,256,256
f=90.2
for a=1 to 40
f=f+(f/9.038)
y=0
for R=2 to 16 step R
y=y+1
L=R/(1.414*pi*f) rem formula
C=1/(2.818*pi*f*R) rem formula
if len(str$(int(f)))=3 then
i=30
else
i=20
endif
D=C*1000000
setrgb 1,0,0,0
text i,a*12+25,str$(int(f))
if len(str$(int(L*100000)))=4 ii=-10
if len(str$(int(L*100000)))=3 ii=0
if len(str$(int(L*100000)))=2 ii=10
if len(str$(int(L*100000)))=1 ii=20
text y*140-50+ii,a*12+25,str$(int(L*100000))
if D>100 text y*140+20,a*12+25,str$(C*1000000,"###")
if D<100 and D>10 text y*140+30,a*12+25,str$(C*1000000,"##")
if D<10 and D>1 text y*140+20,a*12+25,str$(C*1000000,"#.#")
text 10,18,"freq."
text y*140-40,18,"I"
text y*140+30,18,"C"
text y*140-30,10,str$(R)+" ohm"
setrgb 1,150,150,150
line 10,a*12+17 to 630,a*12+17
line y*140-70,30 to y*140-70,510
line y*140,30 to y*140,510
next R
next a
until (1=0)

By the way, these are xover values for speaker cabinet systems.
This has been my main interest in using Yabasic.

4
Yabasic / Re: Question about a question
« on: January 15, 2013 »
If James's example is literally correct,
it's something I've wanted to know.
How do you match letters?
If any name is inputted, it will go to 1.

All I've come up with is reverting to chr$

Code: [Select]
'right answer is VANCE
Print "welcome user"
pause 1
label again
print "what is your name"
input a$
if a$=chr$(86)+chr$(65)+chr$(78)+chr$(67)+chr$(69) print "right"
if a$<>chr$(86)+chr$(65)+chr$(78)+chr$(67)+chr$(69) goto again
print
print chr$(86);
print chr$(65);
print chr$(78);
print chr$(67);
print chr$(69)

5
Yabasic / int, frac usage
« on: September 02, 2012 »
 I found an 'ideal weight for height' conversion and wrote code for it.
It's in metric, but I wanted imperial also. And not just decimalized.
I knew int/frac  had to be used. Never tried more than 1 whole value before.
I did it, but don't ask me to explain it. I just know that it works.

Using L Pad up/down changes the height. Everything else follows it.

Does anyone know imperial? It starts at 175 cm or 5' 9" and inch fraction.

Code: [Select]
open window 640,512
ycm=175
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
c=peek("port1")
if and(c,16)>0 ycm=ycm+.01
if and(c,64)>0 ycm=ycm-.01
yin=(ycm/2.54)/12
'ideal height to weight conversion
wkg=(ycm-100)-(.1*(ycm-100))
wst=wkg/6.35
text 120,70,"metric /"
text 220,70,"imperial"
text 10,100,"height"
text 10,180,"weight"
'metric height
text 100,100,str$(ycm)
text 160,100,"cm /"
'imperial height
text 210,100,str$(int(yin))+"'"
text 240,100,str$(int(frac(yin)*12))
text 260,100,str$(int(frac(frac(yin)*12)*8))
text 270,100,"/8"
text 300,100,"in"
'metric weight
text 100,180,str$(wkg)
text 160,180,"kg /"
'imperial weight
text 200,180,str$(int(wst))
text 220,180,"st"
text 250,180,str$(int(frac(wst)*14))
text 270,180,"lb"
text 310,180,str$(int(frac(frac(wst)*14)*16))
text 330,180,"oz"
until (1=0)

6
Yabasic / Button bash bullets
« on: April 27, 2012 »
And ship. 
Old bit of code I didn't apply.
Didn't stick with it to simplify it.  Couldn't now any way.
I was just happy I could write the code.

L/R and X to fire.
Code: [Select]
open window 640,512
xb=320
yb=505
xm=320
ym=505
b=1
bullet=6
dim fire(bullet),xb(bullet),yb(bullet),bm(bullet)
for a=1 to bullet
fire(a)=0
yb(a)=500
xb(a)=xm
bm(a)=0
next a
ship=21
dim l(ship),s(ship),h(ship),i(ship),p(ship)
for a=1 to ship
read l(a),s(a),h(a),i(a),p(a)
next a
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
setrgb 1,50,50,50
fill rectangle 0,0 to 640,512
c=peek("port1")
if and(c,128)>0 xm=xm-8
if and(c,32)>0 xm=xm+8
if xm<11 xm=11
if xm>629 xm=629
if and(c,16384)>0 and go=0 then
z=z+3
if z>5 z=5
if z=5 go=1
endif
if z>4 b=b+1
if b>bullet b=1
for a=1 to bullet
if z>4 and b=a fire(a)=1
if fire(a)=1 then
bm(a)=bm(a)+0.5
yb(a)=yb(a)-bm(a)
endif
if yb(a)<-20 then
yb(a)=500
xb(a)=xm
fire(a)=0
bm(a)=0
endif
if yb(a)=500 xb(a)=xm
setrgb 1,200,200,0
fill rectangle xb(a)-8,yb(a)-10 to xb(a)-6,yb(a)
fill rectangle xb(a)+6,yb(a)-10 to xb(a)+8,yb(a)
if bm(a)>1 and bm(a)<7 then
setrgb 1,200,100,0
fill triangle xb(a)-9,yb(a)+2 to xb(a)-5,yb(a)+2 to xb(a)-7,yb(a)+12
fill triangle xb(a)+5,yb(a)+2 to xb(a)+9,yb(a)+2 to xb(a)+7,yb(a)+12
endif
next a
if and(c,16384)>0 and go=1 then
z=z-3
if z<0 z=0
endif
if and(c,16384)=0 go=0
for a=1 to ship
setrgb 1,l(a),l(a),l(a)
line xm+s(a),ym+h(a) to xm+i(a),ym-p(a)
next a
text 600,260,str$(b)
until (1=0)

data 200,-10,0,-10,3
data 200,-9,0,-9,4
data 200,-8,0,-8,5
data 200,-7,0,-7,6
data 200,-6,0,-6,7
data 200,-5,0,-5,8
data 40,-4,0,-4,16
data 80,-3,0,-3,17
data 120,-2,0,-2,18
data 150,-1,0,-1,19
data 150,0,0,0,20
data 150,1,0,1,19
data 120,2,0,2,18
data 80,3,0,3,17
data 40,4,0,4,16
data 200,5,0,5,8
data 200,6,0,6,7
data 200,7,0,7,6
data 200,8,0,8,5
data 200,9,0,9,4
data 200,10,0,10,3

7
Yabasic / word string fade - emulation
« on: July 27, 2011 »
I liked the effect of the welcome note on the home page so much, I've tried to emulate it.
I know there'll be a better approach than the method I came up with,
but I achieved my goal.

Code: [Select]
open window 640,512
go=1
go1=1:m1=1
go2=1:m2=1
go3=1:m3=1
go4=1:m4=1
go5=1:m5=1
go6=1:m6=1
go7=1:m7=1
go8=1:m8=1
go9=1:m9=1
go10=1:m10=1
go11=1:m11=1
go12=1:m12=1
go13=1:m13=1
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
setrgb 1,250,250,0
fill rectangle 0,0 to 640,512
goa=goa+1
if goa>3 goa=1
if goa=3 go=go+1
if go>200 go=1
if go>01 and go<20 then
go1=go1+m1
if go1>30 m1=-m1
if go1=0 m1=1
setrgb 1,250-(go1*8),250-(go1*8),0
text 200,250,"watch this space"
endif
setrgb 1,0,0,0
if go>15 and go<35 then
go2=go2+m2
if go2>30 m2=-m2
if go2=0 m2=1
setrgb 1,250-(go2*8),250-(go2*8),0
text 200,250,"here it comes"
endif
if go>30 and go<50 then
go3=go3+m3
if go3>30 m3=-m3
if go3=0 m3=1
setrgb 1,250-(go3*8),250-(go3*8),0
text 200,250,"any moment now"
endif
if go>45 and go<65 then
go4=go4+m4
if go4>30 m4=-m4
if go4=0 m4=1
setrgb 1,250-(go4*8),250-(go4*8),0
text 200,250,"still waiting?"
endif
if go>60 and go<80 then
go5=go5+m5
if go5>30 m5=-m5
if go5=0 m5=1
setrgb 1,250-(go5*8),250-(go5*8),0
text 200,250,"should be soon"
endif
if go>75 and go<95 then
go6=go6+m6
if go6>30 m6=-m6
if go6=0 m6=1
setrgb 1,250-(go6*8),250-(go6*8),0
text 200,250,"won't be long"
endif
if go>90 and go<110 then
go7=go7+m7
if go7>30 m7=-m7
if go7=0 m7=1
setrgb 1,250-(go7*8),250-(go7*8),0
text 200,250,"nearly there.."
endif
if go>105 and go<125 then
go8=go8+m8
if go8>30 m8=-m8
if go8=0 m8=1
setrgb 1,250-(go8*8),250-(go8*8),0
text 200,250,"did you see it?"
endif
if go>120 and go<140 then
go9=go9+m9
if go9>30 m9=-m9
if go9=0 m9=1
setrgb 1,250-(go9*8),250-(go9*8),0
text 200,250,"what you mean,"
endif
if go>135 and go<155 then
go10=go10+m10
if go10>30 m10=-m10
if go10=0 m10=1
setrgb 1,250-(go10*8),250-(go10*8),0
text 200,250,"you didn't see it"
endif
if go>150 and go<170 then
go11=go11+m11
if go11>30 m11=-m11
if go11=0 m11=1
setrgb 1,250-(go11*8),250-(go11*8),0
text 200,250,"I'll do it again"
endif
if go>165 and go<185 then
go12=go12+m12
if go12>30 m12=-m12
if go12=0 m12=1
setrgb 1,250-(go12*8),250-(go12*8),0
text 200,250,"what about that time"
endif
if go>180 and go<200 then
go13=go13+m13
if go13>30 m13=-m13
if go13=0 m13=1
setrgb 1,250-(go13*8),250-(go13*8),0
text 200,250,"let's start over"
endif
until (1=0)

long-winded and repetitive. that's me.

8
Yabasic / Re: TEXT SIZING
« on: June 15, 2011 »
Thanks, everyone. That's other Yabasic combination ticked off.

9
I have an interest in a lot of things, but I repair loudspeakers for a living
and anything in the cabinet they might be in - including some modelling
and design - all learnt on the job. I just like repairing things, in general.

With this programming, I always liked making things dance around the screen.
No-one wants to see it though - except me and you guys.


10
Yabasic / Re: TEXT SIZING
« on: June 15, 2011 »
And now, 'SINED'.

Code: [Select]
a$="^^THE^QUICK^BROWN^FOX^JUMPS^OVER^THE^LAZY^DOG"
a$=a$+"^^the^quick^brown^fox^jumps^over^the^lazy^dog^^"
LoadFont()
s=.45
h=2.5
w=0
m=640
ang=pi/180
open window 640,512
repeat
    setdrawbuf vm
    vm=1-vm
    setdispbuf vm
    clear window
    c=peek("port1")
    if c=16 s=s+.01
    if c=64 s=s-.01
    if c=128 w=w-.01
    if c=32 w=w+.01
    if w<0 w=0
    x=40*s
    for a=1 to len(a$)
    if x+m+(CharacterWidth*s)>50 and x+m+(CharacterWidth*s)<640 then
    PrintCharacter(mid$(a$,a,1), x+m, y,s)
    endif
    if m<-(len(a$)*40*s) m=640
    x=x+(CharacterWidth*s)
    next a
    m=m-1
until (1=0)

    sub LoadFont()
    MAX_CHARACTERS = 256
    dim Start(MAX_CHARACTERS) // holds first line number to index
    dim Count(MAX_CHARACTERS) // holds the number of lines to draw
    dim x1(1), y1(1), x2(1), y2(1) // array of lines
    read NumCharacters
    read CharacterWidth
    read CharacterHeight
    TotalLines = 1
    for ch = 1 to NumCharacters
        read Ascii$   // the character to use
        read NumLines // the number of lines to draw
        Ascii = asc(Ascii$)
        Start(Ascii) = TotalLines
        Count(Ascii) = NumLines
        for l = 1 to NumLines
            redim x1(TotalLines), y1(TotalLines)
            redim x2(TotalLines), y2(TotalLines)
            read x1(TotalLines), y1(TotalLines)
            read x2(TotalLines), y2(TotalLines)
            TotalLines = TotalLines + 1
        next l
    next ch
end sub

sub PrintCharacter(char$, x, y, s)
    ch = asc(mid$(char$,1,1))
    for i=Start(ch) to Start(ch)+Count(ch)-1
        z=(y1(i)-y)*w
        z1=(y2(i)-y)*w
        y=sin((x+m)*ang)*200*s+300
        line x+x1(i)*s-z, y+y1(i)*s*h to x+x2(i)*s-z1, y+y2(i)*s*h
    next i
end sub

data 69// NumCharacters
data 40 // CharacterWidth
data 60 // CharacterHeight

data "A", 3
data -18, 00, 00,-40
data  00,-40, 18, 00
data -13,-11, 13,-11

data "B", 10
data -17, 00, -17,-40
data -17, 00,  07, 00
data -17,-20,  07,-20
data -17,-40,  07,-40
data  12,-35,  12,-25
data  12,-15,  12,-05
data  07,-40,  12,-35
data  07,-20,  12,-25
data  07,-20,  12,-15
data  07, 00,  12,-05

data "C", 7
data -15,-05, -15,-35
data -10, 00,  10, 00
data -10,-40,  10,-40
data -15,-35, -10,-40
data -15,-05, -10, 00
data  10,-40,  15,-35
data  10, 00,  15,-05

data "D", 6
data -15,-40, -15, 00
data -15,-40,  07,-40
data -15, 00,  07, 00
data  12,-35,  12,-05
data  07,-40,  12,-35
data  07, 00,  12,-05

data "E", 4
data -17, 00, -17,-40
data -17,-40,  15,-40
data -17, 00,  15, 00
data -17,-20,  12,-20

data "F", 3
data -17, 00, -17,-40
data -17,-40,  17,-40
data -17,-20,  10,-20

data "G", 10
data -17,-35, -17,-05
data -12,-40,  12,-40
data -12, 00,  12, 00
data  17,-05,  17,-20
data  17,-35,  17,-30
data  17,-20,  07,-20
data -17,-35, -12,-40
data -17,-05, -12, 00
data  12,-40,  17,-35
data  12, 00,  17,-05

data "H", 3
data -15, 00, -15,-40
data  15, 00,  15,-40
data -15,-20,  15,-20

data "I", 3
data  00, 00,  00,-40
data -10, 00,  10, 00
data -10,-40,  10,-40

data "J", 5
data  00,-40,  00,-05
data -10,-40,  10,-40
data -17,-05, -12, 00
data  00,-05, -05, 00
data -05, 00, -12, 00

data "K", 3
data -15, 00, -15,-40
data  15,-40, -15,-15
data  15, 00, -10,-18

data "L", 2
data -15, 00, -15,-40
data -15, 00,  10, 00

data "M", 4
data -17, 00, -17,-40
data  17, 00,  17,-40
data -17,-40,  00, 00
data  17,-40,  00, 00

data "N", 3
data -15, 00, -15,-40
data -15,-40,  15, 00
data  15, 00,  15,-40

data "O", 8
data -15,-05, -15,-35
data  15,-05,  15,-35
data -10,-40,  10,-40
data -10, 00,  10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data  15,-35,  10,-40
data  15,-05,  10, 00

data "P", 6
data -17, 00, -17,-40
data -17,-40,  10,-40
data -17,-15,  10,-15
data  15,-35,  15,-20
data  10,-40,  15,-35
data  10,-15,  15,-20

data "Q", 9
data -15,-05, -15,-35
data  15,-05,  15,-35
data -10,-40,  10,-40
data -10, 00,  10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data  15,-35,  10,-40
data  15,-05,  10, 00
data  15, 00,  05,-10

data "R", 7
data -17, 00, -17,-40
data -17,-40,  10,-40
data -17,-15,  10,-15
data  15,-35,  15,-20
data  10,-40,  15,-35
data  10,-15,  15,-20
data  17, 00,  05,-15

data "S", 11
data -12, 00,  12, 00
data -12,-20,  12,-20
data -12,-40,  12,-40
data -17,-25, -17,-35
data  17,-05,  17,-15
data -17,-35, -12,-40
data -17,-05, -12, 00
data  17,-35,  12,-40
data  17,-05,  12, 00
data -17,-25, -12,-20
data  17,-15,  12,-20

data "T", 2
data  00, 00,  00,-40
data -15,-40,  15,-40

data "U", 5
data -15,-05, -15,-40
data -15,-05, -10, 00
data -10, 00,  10, 00
data  10, 00,  15,-05
data  15,-05,  15,-40

data "V", 2
data -17,-40,  00, 00
data  00, 00,  17,-40

data "W", 4
data -20,-40, -10, 00
data -10, 00,  00,-40
data  00,-40,  10, 00
data  10, 00,  20,-40

data "X", 2
data -15,-40,  15, 00
data -15, 00,  15,-40

data "Y", 3
data -15,-40, 00,-15
data  15,-40, 00,-15
data  00,-15, 00, 00

data "Z", 3
data -15,-40,  15,-40
data  15,-40, -15, 00
data -15, 00,  15, 00

data "?", 12
data -07,-40, 07,-40
data -07,-40,-12,-35
data  07,-40, 12,-35
data  12,-35, 12,-25
data  12,-25, 07,-20
data  07,-20, 05,-20
data  05,-20, 00,-15
data  00,-15, 00,-07
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00,-02
data -01,-01, 01,-01

data ".", 4
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00,-02
data -01,-01, 01,-01

data "!", 5
data  00,-07, 00,-40
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00,-02
data -01,-01, 01,-01

data "-", 1
data -07,-20, 07,-20

data "'", 6
data -01,-40, 01,-38
data -01,-38, 01,-40
data  00,-38, 00,-38
data -01,-39, 01,-39
data -01,-38,-02,-35
data -02,-35, 01,-38

data ",", 6
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00, 00
data -01,-01, 01,-01
data -01, 00,-02, 03
data -02, 03, 01, 00

data "1", 3
data  00, 00, 00,-40
data  00,-40,-05,-35
data -05, 00, 05, 00

data "2", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-22
data  15,-22, 10,-17
data  10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15, 00
data -15, 00, 15, 00

data  "3",11
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-25
data  15,-25, 10,-20
data  10,-20, 15,-15
data  15,-15, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data  00,-20, 10,-20

data  "4", 4
data  07, 00, 07,-40
data  07,-40,-15,-15
data -15,-15,-15,-10
data -15,-10, 17,-10

data "5", 8
data  15,-40,-15,-40
data -15,-40,-15,-22
data -15,-22, 10,-22
data  10,-22, 15,-17
data  15,-17, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "6",11
data  15,-35, 10,-40
data  10,-40,-10,-40
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-05, 15,-17
data  15,-17, 10,-22
data  10,-22,-10,-22
data -10,-22,-15,-15

data "7", 2
data -15,-40, 15,-40
data  15,-40,-02, 00

data "8",15
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-25
data  15,-25, 10,-20
data  10,-20, 15,-15
data  15,-15, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-15
data -15,-15,-10,-20
data -10,-20,-15,-25
data -15,-25,-15,-35
data -10,-20, 10,-20

data "9",11
data  15,-22,10,-17
data  10,-17,-10,-17
data -10,-17,-15,-22
data -15,-22,-15,-35
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "0", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-35
data -10,-40, 10, 00

data "a",12
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-05
data  15,-05, 20, 00
data  15,-12, 10,-17
data  10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05


data "b", 10
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-20, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "c", 7
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05

data "d",10
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  10,-40, 15,-35
data  15,-35, 15,-05
data  15,-05, 20, 00

data "e", 9
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-20
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-12
data  15,-12,-15,-12

data "f", 5
data  15,-35, 10,-40
data  10,-40, 00,-40
data  00,-40,-05,-35
data -05,-35,-05, 00
data -15,-20, 05,-20

data "g",11
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-20, 15, 10
data  15, 10, 10, 15
data  10, 15,-10, 15
data -10, 15,-15, 10

data "h", 6
data -10,-40,-15,-35
data -15,-35,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15, 00

data "i", 5
data  00, 00, 00,-25
data -01,-32, 01,-30
data -01,-30, 01,-32
data  00,-30, 00,-32
data -01,-31, 01,-31

data "j", 9
data  00, 00, 00,-25
data  00,-25, 00, 10
data  00, 10,-05, 15
data -05, 15,-10, 15
data -10, 15,-15, 10
data -01,-32, 01,-30
data -01,-30, 01,-32
data  00,-30, 00,-32
data -01,-31, 01,-31

data "k", 4
data -10,-40,-15,-35
data -15,-35,-15, 00
data  10,-25,-15,-10
data  10, 00,-08,-14

data "l", 2
data  00,-40,-05,-35
data -05,-35,-05, 00

data "m", 9
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25,-05,-25
data -05,-25, 00,-20
data  00,-20, 00, 00
data  00,-20, 05,-25
data  05,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15, 00

data "n",5
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15, 00

data "o", 8
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-05, 15,-20

data "p", 8
data -15,-25,-15, 20
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "q", 8
data  15,-25, 15, 20
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05

data "r", 4
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20

data "s",11
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-18
data -15,-18,-10,-13
data -10,-13, 10,-13
data  10,-13, 15,-10
data  15,-10, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "t", 3
data -05,-40,-05,-05
data -05,-05, 00, 00
data -10,-25, 05,-25

data "u", 5
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15, 00, 15,-25

data "v", 2
data -13,-25, 00, 00
data  00, 00, 13,-25

data "w", 4
data -15,-25,-08, 00
data -08, 00, 00,-25
data  00,-25, 08, 00
data  08, 00, 15,-25

data "x", 2
data -10,-25, 10, 00
data -10, 00, 10,-25

data "y", 8
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-25, 15, 10
data  15, 10, 10, 15
data  10, 15,-10, 15
data -10, 15,-15, 10

data "z", 3
data -13,-25, 13,-25
data  13,-25,-13, 00
data -13, 00, 13, 00

data "^",28
data -04,-35, 04,-35
data  04,-35, 11,-31
data  11,-31, 15,-24
data  15,-24, 15,-16
data  15,-16, 11,-09
data  11,-09, 04,-05
data  04,-05,-04,-05
data -04,-05,-11,-09
data -11,-09,-15,-16
data -15,-16,-15,-24
data -15,-24,-11,-31
data -11,-31,-04,-35

data -06,-26,-04,-26
data -07,-25,-03,-25
data -08,-24,-02,-24
data -08,-23,-02,-23
data -07,-22,-03,-22
data -06,-21,-04,-21

data  04,-26, 06,-26
data  03,-25, 07,-25
data  02,-24, 08,-24
data  02,-23, 08,-23
data  03,-22, 07,-22
data  04,-21, 06,-21

data -09,-17,-06,-14
data -06,-14, 00,-12
data  00,-12, 06,-14
data  06,-14, 09,-17


11
Yabasic / Re: TEXT SIZING
« on: June 11, 2011 »
Sorry. I guess I meant, I wanted to activate my smiley with the word 'smiley'
and have just the smiley face come up.
Instead of the smiley face and the letters 'miley' come up after it.

12
Yabasic / Re: TEXT SIZING
« on: June 10, 2011 »
Thanks. That was fun.

I also did this.

Code: [Select]
data "^",28
data -04,-35, 04,-35
data  04,-35, 11,-31
data  11,-31, 15,-24
data  15,-24, 15,-16
data  15,-16, 11,-09
data  11,-09, 04,-05
data  04,-05,-04,-05
data -04,-05,-11,-09
data -11,-09,-15,-16
data -15,-16,-15,-24
data -15,-24,-11,-31
data -11,-31,-04,-35

data -06,-26,-04,-26
data -07,-25,-03,-25
data -08,-24,-02,-24
data -08,-23,-02,-23
data -07,-22,-03,-22
data -06,-21,-04,-21

data  04,-26, 06,-26
data  03,-25, 07,-25
data  02,-24, 08,-24
data  02,-23, 08,-23
data  03,-22, 07,-22
data  04,-21, 06,-21

data -09,-17,-06,-14
data -06,-14, 00,-12
data  00,-12, 06,-14
data  06,-14, 09,-17

It makes a smiley face.

I tried "smiley" instead of "^" and the 's' was replaced with the characters of 'smiley'.
Is it possible to have the characters disappear?

13
Yabasic / Re: TEXT SIZING
« on: June 10, 2011 »
With a couple more lines and a little alteration, I now have Italics.

Code: [Select]
a$="THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG"
a$=a$+" the quick brown fox jumps over the lazy dog  "
LoadFont()
s=1
h=2
w=0.4
m=640
open window 640,512
x=40*s
y=60*s+200
repeat
    setdrawbuf vm
    vm=1-vm
    setdispbuf vm
    clear window
    c=peek("port1")
    if c=16 s=s+.01
    if c=64 s=s-.01
    if c=128 w=w-.01
    if c=32 w=w+.01
    if w<0 w=0
    x=20*s
    for a=1 to len(a$)
    PrintCharacter(mid$(a$,a,1), x+m, y,s)
    x=x+(CharacterWidth*s)
    next a
    m=m-2
if m<-(len(a$)*40*s) m=640
until (1=0)

    sub LoadFont()
    MAX_CHARACTERS = 256
    dim Start(MAX_CHARACTERS) // holds first line number to index
    dim Count(MAX_CHARACTERS) // holds the number of lines to draw
    dim x1(1), y1(1), x2(1), y2(1) // array of lines
    read NumCharacters
    read CharacterWidth
    read CharacterHeight
    TotalLines = 1
    for ch = 1 to NumCharacters
        read Ascii$   // the character to use
        read NumLines // the number of lines to draw
        Ascii = asc(Ascii$)
        Start(Ascii) = TotalLines
        Count(Ascii) = NumLines
        for l = 1 to NumLines
            redim x1(TotalLines), y1(TotalLines)
            redim x2(TotalLines), y2(TotalLines)
            read x1(TotalLines), y1(TotalLines)
            read x2(TotalLines), y2(TotalLines)
            TotalLines = TotalLines + 1
        next l
    next ch
end sub

sub PrintCharacter(char$, x, y, s)
    ch = asc(mid$(char$,1,1))
    for i=Start(ch) to Start(ch)+Count(ch)-1
        z=(y1(i)-y)*w
        z1=(y2(i)-y)*w
        line x+x1(i)*s-z, y+y1(i)*s*h to x+x2(i)*s-z1, y+y2(i)*s*h
'        line x+x1(i)*s, y+y1(i)*s*h to x+x2(i)*s, y+y2(i)*s*h
    next i
end sub

data 68// NumCharacters
data 40 // CharacterWidth
data 60 // CharacterHeight

data "A", 3
data -18, 00, 00,-40
data  00,-40, 18, 00
data -13,-11, 13,-11

data "B", 10
data -17, 00, -17,-40
data -17, 00,  07, 00
data -17,-20,  07,-20
data -17,-40,  07,-40
data  12,-35,  12,-25
data  12,-15,  12,-05
data  07,-40,  12,-35
data  07,-20,  12,-25
data  07,-20,  12,-15
data  07, 00,  12,-05

data "C", 7
data -15,-05, -15,-35
data -10, 00,  10, 00
data -10,-40,  10,-40
data -15,-35, -10,-40
data -15,-05, -10, 00
data  10,-40,  15,-35
data  10, 00,  15,-05

data "D", 6
data -15,-40, -15, 00
data -15,-40,  07,-40
data -15, 00,  07, 00
data  12,-35,  12,-05
data  07,-40,  12,-35
data  07, 00,  12,-05

data "E", 4
data -17, 00, -17,-40
data -17,-40,  15,-40
data -17, 00,  15, 00
data -17,-20,  12,-20

data "F", 3
data -17, 00, -17,-40
data -17,-40,  17,-40
data -17,-20,  10,-20

data "G", 10
data -17,-35, -17,-05
data -12,-40,  12,-40
data -12, 00,  12, 00
data  17,-05,  17,-20
data  17,-35,  17,-30
data  17,-20,  07,-20
data -17,-35, -12,-40
data -17,-05, -12, 00
data  12,-40,  17,-35
data  12, 00,  17,-05

data "H", 3
data -15, 00, -15,-40
data  15, 00,  15,-40
data -15,-20,  15,-20

data "I", 3
data  00, 00,  00,-40
data -10, 00,  10, 00
data -10,-40,  10,-40

data "J", 5
data  00,-40,  00,-05
data -10,-40,  10,-40
data -17,-05, -12, 00
data  00,-05, -05, 00
data -05, 00, -12, 00

data "K", 3
data -15, 00, -15,-40
data  15,-40, -15,-15
data  15, 00, -10,-18

data "L", 2
data -15, 00, -15,-40
data -15, 00,  10, 00

data "M", 4
data -17, 00, -17,-40
data  17, 00,  17,-40
data -17,-40,  00, 00
data  17,-40,  00, 00

data "N", 3
data -15, 00, -15,-40
data -15,-40,  15, 00
data  15, 00,  15,-40

data "O", 8
data -15,-05, -15,-35
data  15,-05,  15,-35
data -10,-40,  10,-40
data -10, 00,  10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data  15,-35,  10,-40
data  15,-05,  10, 00

data "P", 6
data -17, 00, -17,-40
data -17,-40,  10,-40
data -17,-15,  10,-15
data  15,-35,  15,-20
data  10,-40,  15,-35
data  10,-15,  15,-20

data "Q", 9
data -15,-05, -15,-35
data  15,-05,  15,-35
data -10,-40,  10,-40
data -10, 00,  10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data  15,-35,  10,-40
data  15,-05,  10, 00
data  15, 00,  05,-10

data "R", 7
data -17, 00, -17,-40
data -17,-40,  10,-40
data -17,-15,  10,-15
data  15,-35,  15,-20
data  10,-40,  15,-35
data  10,-15,  15,-20
data  17, 00,  05,-15

data "S", 11
data -12, 00,  12, 00
data -12,-20,  12,-20
data -12,-40,  12,-40
data -17,-25, -17,-35
data  17,-05,  17,-15
data -17,-35, -12,-40
data -17,-05, -12, 00
data  17,-35,  12,-40
data  17,-05,  12, 00
data -17,-25, -12,-20
data  17,-15,  12,-20

data "T", 2
data  00, 00,  00,-40
data -15,-40,  15,-40

data "U", 5
data -15,-40, -15,-05
data -15,-05, -10, 00
data -10, 00,  10, 00
data  10, 00,  15,-05
data  15,-05,  15,-40

data "V", 2
data -17,-40,  00, 00
data  00, 00,  17,-40

data "W", 4
data -20,-40, -10, 00
data -10, 00,  00,-40
data  00,-40,  10, 00
data  10, 00,  20,-40

data "X", 2
data -15,-40,  15, 00
data -15, 00,  15,-40

data "Y", 3
data -15,-40, 00,-15
data  15,-40, 00,-15
data  00,-15, 00, 00

data "Z", 3
data -15,-40,  15,-40
data  15,-40, -15, 00
data -15, 00,  15, 00

data "?", 12
data -07,-40, 07,-40
data -07,-40,-12,-35
data  07,-40, 12,-35
data  12,-35, 12,-25
data  12,-25, 07,-20
data  07,-20, 05,-20
data  05,-20, 00,-15
data  00,-15, 00,-07
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00,-02
data -01,-01, 01,-01

data ".", 4
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00,-02
data -01,-01, 01,-01

data "!", 5
data  00,-07, 00,-40
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00,-02
data -01,-01, 01,-01

data "-", 1
data -07,-20, 07,-20

data "'", 6
data -01,-40, 01,-38
data -01,-38, 01,-40
data  00,-38, 00,-38
data -01,-39, 01,-39
data -01,-38,-02,-35
data -02,-35, 01,-38

data ",", 6
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00, 00
data -01,-01, 01,-01
data -01, 00,-02, 03
data -02, 03, 01, 00

data "1", 3
data  00, 00, 00,-40
data  00,-40,-05,-35
data -05, 00, 05, 00

data "2", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-22
data  15,-22, 10,-17
data  10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15, 00
data -15, 00, 15, 00

data  "3",11
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-25
data  15,-25, 10,-20
data  10,-20, 15,-15
data  15,-15, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data  00,-20, 10,-20

data  "4", 4
data  07, 00, 07,-40
data  07,-40,-15,-15
data -15,-15,-15,-10
data -15,-10, 17,-10

data "5", 8
data  15,-40,-15,-40
data -15,-40,-15,-22
data -15,-22, 10,-22
data  10,-22, 15,-17
data  15,-17, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "6",11
data  15,-35, 10,-40
data  10,-40,-10,-40
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-05, 15,-17
data  15,-17, 10,-22
data  10,-22,-10,-22
data -10,-22,-15,-15

data "7", 2
data -15,-40, 15,-40
data  15,-40,-02, 00

data "8",15
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-25
data  15,-25, 10,-20
data  10,-20, 15,-15
data  15,-15, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-15
data -15,-15,-10,-20
data -10,-20,-15,-25
data -15,-25,-15,-35
data -10,-20, 10,-20

data "9",11
data  15,-22,10,-17
data  10,-17,-10,-17
data -10,-17,-15,-22
data -15,-22,-15,-35
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "0", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-35
data -10,-40, 10, 00

data "a",12
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-05
data  15,-05, 20, 00
data  15,-12, 10,-17
data  10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05


data "b", 10
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-20, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "c", 7
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05

data "d",10
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  10,-40, 15,-35
data  15,-35, 15,-05
data  15,-05, 20, 00

data "e", 9
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-20
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-12
data  15,-12,-15,-12

data "f", 5
data  15,-35, 10,-40
data  10,-40, 00,-40
data  00,-40,-05,-35
data -05,-35,-05, 00
data -15,-20, 05,-20

data "g",11
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-20, 15, 10
data  15, 10, 10, 15
data  10, 15,-10, 15
data -10, 15,-15, 10

data "h", 6
data -10,-40,-15,-35
data -15,-35,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15, 00

data "i", 5
data  00, 00, 00,-25
data -01,-32, 01,-30
data -01,-30, 01,-32
data  00,-30, 00,-32
data -01,-31, 01,-31

data "j", 9
data  00, 00, 00,-25
data  00,-25, 00, 10
data  00, 10,-05, 15
data -05, 15,-10, 15
data -10, 15,-15, 10
data -01,-32, 01,-30
data -01,-30, 01,-32
data  00,-30, 00,-32
data -01,-31, 01,-31

data "k", 4
data -10,-40,-15,-35
data -15,-35,-15, 00
data  10,-25,-15,-10
data  10, 00,-08,-14

data "l", 2
data  00,-40,-05,-35
data -05,-35,-05, 00

data "m", 9
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25,-05,-25
data -05,-25, 00,-20
data  00,-20, 00, 00
data  00,-20, 05,-25
data  05,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15, 00

data "n",5
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15, 00

data "o", 8
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-05, 15,-20

data "p", 8
data -15,-25,-15, 20
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "q", 8
data  15,-25, 15, 20
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05

data "r", 4
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20

data "s",11
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-18
data -15,-18,-10,-13
data -10,-13, 10,-13
data  10,-13, 15,-10
data  15,-10, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "t", 3
data -05,-40,-05,-05
data -05,-05, 00, 00
data -10,-25, 05,-25

data "u", 5
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15, 00, 15,-25

data "v", 2
data -13,-25, 00, 00
data  00, 00, 13,-25

data "w", 4
data -15,-25,-08, 00
data -08, 00, 00,-25
data  00,-25, 08, 00
data  08, 00, 15,-25

data "x", 2
data -10,-25, 10, 00
data -10, 00, 10,-25

data "y", 8
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-25, 15, 10
data  15, 10, 10, 15
data  10, 15,-10, 15
data -10, 15,-15, 10

data "z", 3
data -13,-25, 13,-25
data  13,-25,-13, 00
data -13, 00, 13, 00

Next , the sine wave thingy.

14
Yabasic / Re: TEXT SIZING
« on: June 09, 2011 »
Here's my full alphabet font, upper and lower case.
 
the height can be stretched separately. (h)

Code: [Select]
a$="abcdefghijklmnopqrstuvwxyz?A"
LoadFont()
s=1
h=2
m=640
open window 640,512
x=40*s
y=60*s+200
repeat
    setdrawbuf vm
    vm=1-vm
    setdispbuf vm
    clear window
    c=peek("port1")
    if c=16 s=s+.01
    if c=64 s=s-.01
    x=20*s
    for a=1 to len(a$)
    PrintCharacter(mid$(a$,a,1), x+m, y,s)
    x=x+(CharacterWidth*s)
'x=x+(40*s)
    next a
    m=m-2
if m<-(len(a$)*40*s) m=640
until (1=0)





// ==================
// Binary Data Format
// ==================
//
// data NumCharacters
// data CharacterWidth
// data CharacterHeight
// for (NumCharacters) {
//     data ascii, NumLines
//     for (NumLines) {
//          data x1, y1, x2, y2
//     }
// }
sub LoadFont()
    MAX_CHARACTERS = 256
    dim Start(MAX_CHARACTERS) // holds first line number to index
    dim Count(MAX_CHARACTERS) // holds the number of lines to draw
    dim x1(1), y1(1), x2(1), y2(1) // array of lines
    read NumCharacters
    read CharacterWidth
    read CharacterHeight
    TotalLines = 1
    for ch = 1 to NumCharacters
        read Ascii$   // the character to use
        read NumLines // the number of lines to draw
        Ascii = asc(Ascii$)
        Start(Ascii) = TotalLines
        Count(Ascii) = NumLines
        for l = 1 to NumLines
            redim x1(TotalLines), y1(TotalLines)
            redim x2(TotalLines), y2(TotalLines)
            read x1(TotalLines), y1(TotalLines)
            read x2(TotalLines), y2(TotalLines)
            TotalLines = TotalLines + 1
        next l
    next ch
end sub

sub PrintCharacter(char$, x, y, s)
    ch = asc(mid$(char$,1,1))
    for i=Start(ch) to Start(ch)+Count(ch)-1
        line x+x1(i)*s, y+y1(i)*s*h to x+x2(i)*s, y+y2(i)*s*h
    next i
end sub

// ==================
// Binary Data Format
// ==================
//
// data NumCharacters
// data CharacterWidth
// data CharacterHeight
// for (NumCharacters) {
//     data ascii, NumLines
//     for (NumLines) {
//          data x1, y1, x2, y2
//     }
// }

data 66// NumCharacters
data 40 // CharacterWidth
data 60 // CharacterHeight

data "A", 3
data -18, 00, 00,-40
data  00,-40, 18, 00
data -13,-11, 13,-11

data "B", 10
data -17, 00, -17,-40
data -17, 00,  07, 00
data -17,-20,  07,-20
data -17,-40,  07,-40
data  12,-35,  12,-25
data  12,-15,  12,-05
data  07,-40,  12,-35
data  07,-20,  12,-25
data  07,-20,  12,-15
data  07, 00,  12,-05

data "C", 7
data -15,-05, -15,-35
data -10, 00,  10, 00
data -10,-40,  10,-40
data -15,-35, -10,-40
data -15,-05, -10, 00
data  10,-40,  15,-35
data  10, 00,  15,-05

data "D", 6
data -15,-40, -15, 00
data -15,-40,  07,-40
data -15, 00,  07, 00
data  12,-35,  12,-05
data  07,-40,  12,-35
data  07, 00,  12,-05

data "E", 4
data -17, 00, -17,-40
data -17,-40,  15,-40
data -17, 00,  15, 00
data -17,-20,  12,-20

data "F", 3
data -17, 00, -17,-40
data -17,-40,  17,-40
data -17,-20,  10,-20

data "G", 10
data -17,-35, -17,-05
data -12,-40,  12,-40
data -12, 00,  12, 00
data  17,-05,  17,-20
data  17,-35,  17,-30
data  17,-20,  07,-20
data -17,-35, -12,-40
data -17,-05, -12, 00
data  12,-40,  17,-35
data  12, 00,  17,-05

data "H", 3
data -15, 00, -15,-40
data  15, 00,  15,-40
data -15,-20,  15,-20

data "I", 3
data  00, 00,  00,-40
data -10, 00,  10, 00
data -10,-40,  10,-40

data "J", 5
data  00,-40,  00,-05
data -10,-40,  10,-40
data -17,-05, -12, 00
data  00,-05, -05, 00
data -05, 00, -12, 00

data "K", 3
data -15, 00, -15,-40
data  15,-40, -15,-15
data  15, 00, -10,-18

data "L", 2
data -15, 00, -15,-40
data -15, 00,  10, 00

data "M", 4
data -17, 00, -17,-40
data  17, 00,  17,-40
data -17,-40,  00, 00
data  17,-40,  00, 00

data "N", 3
data -15, 00, -15,-40
data -15,-40,  15, 00
data  15, 00,  15,-40

data "O", 8
data -15,-05, -15,-35
data  15,-05,  15,-35
data -10,-40,  10,-40
data -10, 00,  10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data  15,-35,  10,-40
data  15,-05,  10, 00

data "P", 6
data -17, 00, -17,-40
data -17,-40,  10,-40
data -17,-15,  10,-15
data  15,-35,  15,-20
data  10,-40,  15,-35
data  10,-15,  15,-20

data "Q", 9
data -15,-05, -15,-35
data  15,-05,  15,-35
data -10,-40,  10,-40
data -10, 00,  10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data  15,-35,  10,-40
data  15,-05,  10, 00
data  15, 00,  05,-10

data "R", 7
data -17, 00, -17,-40
data -17,-40,  10,-40
data -17,-15,  10,-15
data  15,-35,  15,-20
data  10,-40,  15,-35
data  10,-15,  15,-20
data  17, 00,  05,-15

data "S", 11
data -12, 00,  12, 00
data -12,-20,  12,-20
data -12,-40,  12,-40
data -17,-25, -17,-35
data  17,-05,  17,-15
data -17,-35, -12,-40
data -17,-05, -12, 00
data  17,-35,  12,-40
data  17,-05,  12, 00
data -17,-25, -12,-20
data  17,-15,  12,-20

data "T", 2
data  00, 00,  00,-40
data -15,-40,  15,-40

data "U", 5
data -15,-40, -15,-05
data -15,-05, -10, 00
data -10, 00,  10, 00
data  10, 00,  15,-05
data  15,-05,  15,-40

data "V", 2
data -17,-40,  00, 00
data  00, 00,  17,-40

data "W", 4
data -20,-40, -10, 00
data -10, 00,  00,-40
data  00,-40,  10, 00
data  10, 00,  20,-40

data "X", 2
data -15,-40,  15, 00
data -15, 00,  15,-40

data "Y", 3
data -15,-40, 00,-15
data  15,-40, 00,-15
data  00,-15, 00, 00

data "Z", 3
data -15,-40,  15,-40
data  15,-40, -15, 00
data -15, 00,  15, 00

data "?", 12
data -07,-40, 07,-40
data -07,-40,-12,-35
data  07,-40, 12,-35
data  12,-35, 12,-25
data  12,-25, 07,-20
data  07,-20, 05,-20
data  05,-20, 00,-15
data  00,-15, 00,-07
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00,-02
data -01,-01, 01,-01

data ".", 4
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00,-02
data -01,-01, 01,-01

data "!", 5
data  00,-07, 00,-40
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00,-02
data -01,-01, 01,-01

data "-", 1
data -07,-20, 07,-20

data "'", 6
data -01,-40, 01,-38
data -01,-38, 01,-40
data  00,-38, 00,-38
data -01,-39, 01,-39
data -01,-38,-02,-35
data -02,-35, 01,-38

data ",", 6
data -01,-02, 01, 00
data -01, 00, 01,-02
data  00, 00, 00, 00
data -01,-01, 01,-01
data -01, 00,-02, 03
data -02, 03, 01, 00

data "1", 3
data  00, 00, 00,-40
data  00,-40,-05,-35
data -05, 00, 05, 00

data "2", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-22
data  15,-22, 10,-17
data  10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15, 00
data -15, 00, 15, 00

data  "3",11
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-25
data  15,-25, 10,-20
data  10,-20, 15,-15
data  15,-15, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data  00,-20, 10,-20

data  "4", 4
data  07, 00, 07,-40
data  07,-40,-15,-15
data -15,-15,-15,-10
data -15,-10, 17,-10

data "5", 8
data  15,-40,-15,-40
data -15,-40,-15,-22
data -15,-22, 10,-22
data  10,-22, 15,-17
data  15,-17, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "6",11
data  15,-35, 10,-40
data  10,-40,-10,-40
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-05, 15,-17
data  15,-17, 10,-22
data  10,-22,-10,-22
data -10,-22,-15,-15

data "7", 2
data -15,-40, 15,-40
data  15,-40,-02, 00

data "8",15
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-25
data  15,-25, 10,-20
data  10,-20, 15,-15
data  15,-15, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-15
data -15,-15,-10,-20
data -10,-20,-15,-25
data -15,-25,-15,-35
data -10,-20, 10,-20

data "9",11
data  15,-22,10,-17
data  10,-17,-10,-17
data -10,-17,-15,-22
data -15,-22,-15,-35
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "0", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data  10,-40, 15,-35
data  15,-35, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-35
data -10,-40, 10, 00

data "a",12
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-05
data  15,-05, 20, 00
data  15,-12, 10,-17
data  10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05


data "b", 10
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-20, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "c", 7
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05

data "d",10
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  10,-40, 15,-35
data  15,-35, 15,-05
data  15,-05, 20, 00

data "e", 9
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-20
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-12
data  15,-12,-15,-12

data "f", 5
data  15,-35, 10,-40
data  10,-40, 00,-40
data  00,-40,-05,-35
data -05,-35,-05, 00
data -15,-20, 05,-20

data "g",11
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-20, 15, 10
data  15, 10, 10, 15
data  10, 15,-10, 15
data -10, 15,-15, 10

data "h", 6
data -10,-40,-15,-35
data -15,-35,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15, 00

data "i", 5
data  00, 00, 00,-25
data -01,-32, 01,-30
data -01,-30, 01,-32
data  00,-30, 00,-32
data -01,-31, 01,-31

data "j", 9
data  00, 00, 00,-25
data  00,-25, 00, 10
data  00, 10,-05, 15
data -05, 15,-10, 15
data -10, 15,-15, 10
data -01,-32, 01,-30
data -01,-30, 01,-32
data  00,-30, 00,-32
data -01,-31, 01,-31

data "k", 4
data -10,-40,-15,-35
data -15,-35,-15, 00
data  10,-25,-15,-10
data  10, 00,-08,-14

data "l", 2
data  00,-40,-05,-35
data -05,-35,-05, 00

data "m", 9
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25,-05,-25
data -05,-25, 00,-20
data  00,-20, 00, 00
data  00,-20, 05,-25
data  05,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15, 00

data "n",5
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15, 00

data "o", 8
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-05, 15,-20

data "p", 8
data -15,-25,-15, 20
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20
data  15,-20, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "q", 8
data  15,-25, 15, 20
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05

data "r", 4
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data  10,-25, 15,-20

data "s",11
data  15,-20, 10,-25
data  10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-18
data -15,-18,-10,-13
data -10,-13, 10,-13
data  10,-13, 15,-10
data  15,-10, 15,-05
data  15,-05, 10, 00
data  10, 00,-10, 00
data -10, 00,-15,-05

data "t", 3
data -05,-40,-05,-05
data -05,-05, 00, 00
data -10,-25, 05,-25

data "u", 5
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15, 00, 15,-25

data "v", 2
data -13,-25, 00, 00
data  00, 00, 13,-25

data "w", 4
data -15,-25,-08, 00
data -08, 00, 00,-25
data  00,-25, 08, 00
data  08, 00, 15,-25

data "x", 2
data -10,-25, 10, 00
data -10, 00, 10,-25

data "y", 8
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data  10, 00, 15,-05
data  15,-25, 15, 10
data  15, 10, 10, 15
data  10, 15,-10, 15
data -10, 15,-15, 10

data "z", 3
data -13,-25, 13,-25
data  13,-25,-13, 00
data -13, 00, 13, 00

The font will do for now. I'll do something with it later.

15
Yabasic / Re: TEXT SIZING
« on: June 06, 2011 »
Whew! I got the data version to scroll and realized the font sizing wasn't working.

I worked out where and how to fit the multiplier [*s] - I think I understand why the coding is correct.

before - line x+x1(i), y+y1(i) to x+x2(i), y+y2(i)

after - line m+x+x1(i)*s, y+y1(i)*s to m+x+x2(i)*s, y+y2(i)*s

rain_storm, you also shortened my letter scrambler. should have seen my first draft. Thanks again.

16
Yabasic / Re: TEXT SIZING
« on: June 06, 2011 »
Oh my god!

There was a lot more than what could be seen here in rain_storms data version.

I never tried to paste it.

I'd be years to understand how the data is retrieved.

It LOOKS a lot harder than the very simple stuff I've tried.

Thanks rain_storm. I'll see if I can add the scroll.

17
Yabasic / Re: TEXT SIZING
« on: June 05, 2011 »
Thanks for the advice, rain/CK/shock.

I never did pursue it, back then, because I couldn't.
What could be done with the code was mind-blowing.
Even now.

but I did manage to scroll it.

Code: [Select]
a$="to the people at dbf interactive, thanks and more thanks for their tenacity"
s=1
open window 640,512
x=20*s
y=60*s+200
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
c=peek("port1")
if c=16 s=s+.01
if c=64 s=s-.01
x=20*s
for a=1 to len(a$)
if  mid$(a$,a,1)="a" then
line m+x-(18*s),y to m+x,y-(40*s)
line m+x,y-(40*s) to m+x+(18*s),y
line m+x-(13*s),y-(11*s) to m+x+(13*s),y-(11*s)
endif
if mid$(a$,a,1)="b" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y to m+x+(7*s),y
line m+x-(17*s),y-(20*s) to m+x+(7*s),y-(20*s)
line m+x-(17*s),y-(40*s) to m+x+(7*s),y-(40*s)
line m+x+(12*s),y-(35*s) to m+x+(12*s),y-(25*s)
line m+x+(12*s),y-(15*s) to m+x+(12*s),y-(5*s)
line m+x+(7*s),y-(40*s) to m+x+(12*s),y-(35*s)
line m+x+(7*s),y-(20*s) to m+x+(12*s),y-(25*s)
line m+x+(7*s),y-(20*s) to m+x+(12*s),y-(15*s)
line m+x+(7*s),y to m+x+(12*s),y-(5*s)
endif
if mid$(a$,a,1)="c" then
line m+x-(15*s),y-(5*s) to m+x-(15*s),y-(35*s)
line m+x-(10*s),y to m+x+(10*s),y
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(15*s),y-(35*s) to m+x-(10*s),y-(40*s)
line m+x-(15*s),y-(5*s) to m+x-(10*s),y
line m+x+(10*s),y-(40*s) to m+x+(15*s),y-(35*s)
line m+x+(10*s),y to m+x+(15*s),y-(5*s)
endif
if mid$(a$,a,1)="d" then
line m+x-(15*s),y-(40*s) to m+x-(15*s),y
line m+x-(15*s),y-(40*s) to m+x+(7*s),y-(40*s)
line m+x-(15*s),y to m+x+(7*s),y
line m+x+(12*s),y-(35*s) to m+x+(12*s),y-(5*s)
line m+x+(7*s),y-(40*s) to m+x+(12*s),y-(35*s)
line m+x+(7*s),y to m+x+(12*s),y-(5*s)
endif
if mid$(a$,a,1)="e" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x+(15*s),y-(40*s)
line m+x-(17*s),y to m+x+(15*s),y
line m+x-(17*s),y-(20*s) to m+x+(12*s),y-(20*s)
endif
if mid$(a$,a,1)="f" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x+(17*s),y-(40*s)
line m+x-(17*s),y-(20*s) to m+x+(10*s),y-(20*s)
endif
if mid$(a$,a,1)="g" then
line m+x-(17*s),y-(35*s) to m+x-(17*s),y-(5*s)
line m+x-(12*s),y-(40*s) to m+x+(12*s),y-(40*s)
line m+x-(12*s),y to m+x+(12*s),y
line m+x+(17*s),y-(5*s) to m+x+(17*s),y-(20*s)
line m+x+(17*s),y-(35*s) to m+x+(17*s),y-(30*s)
line m+x+(17*s),y-(20*s) to m+x+(7*s),y-(20*s)
line m+x-(17*s),y-(35*s) to m+x-(12*s),y-(40*s)
line m+x-(17*s),y-(5*s) to m+x-(12*s),y
line m+x+(12*s),y-(40*s) to m+x+(17*s),y-(35*s)
line m+x+(12*s),y to m+x+(17*s),y-(5*s)
endif
if mid$(a$,a,1)="h" then
line m+x-(15*s),y to m+x-(15*s),y-(40*s)
line m+x+(15*s),y to m+x+(15*s),y-(40*s)
line m+x-(15*s),y-(20*s) to m+x+(15*s),y-(20*s)
endif
if mid$(a$,a,1)="i" then
line m+x,y to m+x,y-(40*s)
line m+x-(10*s),y to m+x+(10*s),y
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
endif
if mid$(a$,a,1)="j" then
line m+x,y-(40*s) to m+x,y-(5*s)
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(17*s),y-(5*s) to m+x-(12*s),y
line m+x,y-(5*s) to m+x-(5*s),y
line m+x-(5*s),y to m+x-(12*s),y
endif
if mid$(a$,a,1)="k" then
line m+x-(15*s),y to m+x-(15*s),y-(40*s)
line m+x+(15*s),y-(40*s) to m+x-(15*s),y-(15*s)
line m+x+(15*s),y to m+x-(10*s),y-(18*s)
endif
if mid$(a$,a,1)="l" then
line m+x-(15*s),y to m+x-(15*s),y-(40*s)
line m+x-(15*s),y to m+x+(10*s),y
endif
if mid$(a$,a,1)="m" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x+(17*s),y to m+x+(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x,y
line m+x+(17*s),y-(40*s) to m+x,y
endif
if mid$(a$,a,1)="n" then
line m+x-(15*s),y to m+x-(15*s),y-(40*s)
line m+x-(15*s),y-(40*s) to m+x+(15*s),y
line m+x+(15*s),y to m+x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="o" then
line m+x-(15*s),y-(5*s) to m+x-(15*s),y-(35*s)
line m+x+(15*s),y-(5*s) to m+x+(15*s),y-(35*s)
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(10*s),y to m+x+(10*s),y
line m+x-(15*s),y-(35*s) to m+x-(10*s),y-(40*s)
line m+x-(15*s),y-(5*s) to m+x-(10*s),y
line m+x+(15*s),y-(35*s) to m+x+(10*s),y-(40*s)
line m+x+(15*s),y-(5*s) to m+x+(10*s),y
endif
if mid$(a$,a,1)="p" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(17*s),y-(15*s) to m+x+(10*s),y-(15*s)
line m+x+(15*s),y-(35*s) to m+x+(15*s),y-(20*s)
line m+x+(10*s),y-(40*s) to m+x+(15*s),y-(35*s)
line m+x+(10*s),y-(15*s) to m+x+(15*s),y-(20*s)
endif
if mid$(a$,a,1)="q" then
line m+x-(15*s),y-(5*s) to m+x-(15*s),y-(35*s)
line m+x+(15*s),y-(5*s) to m+x+(15*s),y-(35*s)
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(10*s),y to m+x+(10*s),y
line m+x-(15*s),y-(35*s) to m+x-(10*s),y-(40*s)
line m+x-(15*s),y-(5*s) to m+x-(10*s),y
line m+x+(15*s),y-(35*s) to m+x+(10*s),y-(40*s)
line m+x+(15*s),y-(5*s) to m+x+(10*s),y
line m+x+(15*s),y to m+x+(5*s),y-(10*s)
endif
if mid$(a$,a,1)="r" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(17*s),y-(15*s) to m+x+(10*s),y-(15*s)
line m+x+(15*s),y-(35*s) to m+x+(15*s),y-(20*s)
line m+x+(10*s),y-(40*s) to m+x+(15*s),y-(35*s)
line m+x+(10*s),y-(15*s) to m+x+(15*s),y-(20*s)
line m+x+(17*s),y to m+x+(5*s),y-(15*s)
endif
if mid$(a$,a,1)="s" then
line m+x-(12*s),y to m+x+(12*s),y
line m+x-(12*s),y-(20*s) to m+x+(12*s),y-(20*s)
line m+x-(12*s),y-(40*s) to m+x+(12*s),y-(40*s)
line m+x-(17*s),y-(25*s) to m+x-(17*s),y-(35*s)
line m+x+(17*s),y-(5*s) to m+x+(17*s),y-(15*s)
line m+x-(17*s),y-(35*s) to m+x-(12*s),y-(40*s)
line m+x-(17*s),y-(5*s) to m+x-(12*s),y
line m+x+(17*s),y-(35*s) to m+x+(12*s),y-(40*s)
line m+x+(17*s),y-(5*s) to m+x+(12*s),y
line m+x-(17*s),y-(25*s) to m+x-(12*s),y-(20*s)
line m+x+(17*s),y-(15*s) to m+x+(12*s),y-(20*s)
endif
if mid$(a$,a,1)="t" then
line m+x,y to m+x,y-(40*s)
line m+x-(15*s),y-(40*s) to m+x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="u" then
line m+x-(15*s),y-(40*s) to m+x-(15*s),y-(5*s)
line m+x-(15*s),y-(5*s) to m+x-(10*s),y
line m+x-(10*s),y to m+x+(10*s),y
line m+x+(10*s),y to m+x+(15*s),y-(5*s)
line m+x+(15*s),y-(5*s) to m+x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="v" then
line m+x-(17*s),y-(40*s) to m+x,y
line m+x,y to m+x+(17*s),y-(40*s)
endif
if mid$(a$,a,1)="w" then
line m+x-(20*s),y-(40*s) to m+x-(10*s),y
line m+x-(10*s),y to m+x,y-(40*s)
line m+x,y-(40*s) to m+x+(10*s),y
line m+x+(10*s),y to m+x+(20*s),y-(40*s)
endif
if mid$(a$,a,1)="m+x" then
line m+x-(15*s),y-(40*s) to m+x+(15*s),y
line m+x-(15*s),y to m+x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="y" then
line m+x-(15*s),y-(40*s) to m+x,y-(15*s)
line m+x+(15*s),y-(40*s) to m+x,y-(15*s)
line m+x,y-(15*s) to m+x,y
endif
if mid$(a$,a,1)="z" then
line m+x-(15*s),y-(40*s) to m+x+(15*s),y-(40*s)
line m+x+(15*s),y-(40*s) to m+x-(15*s),y
line m+x-(15*s),y to m+x+(15*s),y
endif
if mid$(a$,a,1)="." fill circle m+x-(10*s),y,(2*s)
if mid$(a$,a,1)="," fill triangle m+x-(10*s),y-(2*s) to m+x-(7*s),y-(2*s) to m+x-(11*s),y+(4*s)
x=x+(40*s)
next a
m=m-2
if m<-(len(a$)*40*s) m=640
until (1=0)

hanging in there.


18
Yabasic / TEXT SIZING
« on: June 05, 2011 »
Here's something from my archives.

A simple attempt at changing the size of text.
The text sample is a short story.

Use the up/down d-pad to change the size.

Code: [Select]
a$="once upon a time there was a king and queen,"
a$=a$+" and they lived happily ever after."
s=1
open window 640,512
x=20*s
y=60*s
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
c=peek("port1")
if c=16 s=s+.01
if c=64 s=s-.01
x=20*s
y=60*s
for a=1 to len(a$)
if  mid$(a$,a,1)="a" then
line x-(18*s),y to x,y-(40*s)
line x,y-(40*s) to x+(18*s),y
line x-(13*s),y-(11*s) to x+(13*s),y-(11*s)
endif
if mid$(a$,a,1)="b" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y to x+(7*s),y
line x-(17*s),y-(20*s) to x+(7*s),y-(20*s)
line x-(17*s),y-(40*s) to x+(7*s),y-(40*s)
line x+(12*s),y-(35*s) to x+(12*s),y-(25*s)
line x+(12*s),y-(15*s) to x+(12*s),y-(5*s)
line x+(7*s),y-(40*s) to x+(12*s),y-(35*s)
line x+(7*s),y-(20*s) to x+(12*s),y-(25*s)
line x+(7*s),y-(20*s) to x+(12*s),y-(15*s)
line x+(7*s),y to x+(12*s),y-(5*s)
endif
if mid$(a$,a,1)="c" then
line x-(15*s),y-(5*s) to x-(15*s),y-(35*s)
line x-(10*s),y to x+(10*s),y
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(15*s),y-(35*s) to x-(10*s),y-(40*s)
line x-(15*s),y-(5*s) to x-(10*s),y
line x+(10*s),y-(40*s) to x+(15*s),y-(35*s)
line x+(10*s),y to x+(15*s),y-(5*s)
endif
if mid$(a$,a,1)="d" then
line x-(15*s),y-(40*s) to x-(15*s),y
line x-(15*s),y-(40*s) to x+(7*s),y-(40*s)
line x-(15*s),y to x+(7*s),y
line x+(12*s),y-(35*s) to x+(12*s),y-(5*s)
line x+(7*s),y-(40*s) to x+(12*s),y-(35*s)
line x+(7*s),y to x+(12*s),y-(5*s)
endif
if mid$(a$,a,1)="e" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x+(15*s),y-(40*s)
line x-(17*s),y to x+(15*s),y
line x-(17*s),y-(20*s) to x+(12*s),y-(20*s)
endif
if mid$(a$,a,1)="f" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x+(17*s),y-(40*s)
line x-(17*s),y-(20*s) to x+(10*s),y-(20*s)
endif
if mid$(a$,a,1)="g" then
line x-(17*s),y-(35*s) to x-(17*s),y-(5*s)
line x-(12*s),y-(40*s) to x+(12*s),y-(40*s)
line x-(12*s),y to x+(12*s),y
line x+(17*s),y-(5*s) to x+(17*s),y-(20*s)
line x+(17*s),y-(35*s) to x+(17*s),y-(30*s)
line x+(17*s),y-(20*s) to x+(7*s),y-(20*s)
line x-(17*s),y-(35*s) to x-(12*s),y-(40*s)
line x-(17*s),y-(5*s) to x-(12*s),y
line x+(12*s),y-(40*s) to x+(17*s),y-(35*s)
line x+(12*s),y to x+(17*s),y-(5*s)
endif
if mid$(a$,a,1)="h" then
line x-(15*s),y to x-(15*s),y-(40*s)
line x+(15*s),y to x+(15*s),y-(40*s)
line x-(15*s),y-(20*s) to x+(15*s),y-(20*s)
endif
if mid$(a$,a,1)="i" then
line x,y to x,y-(40*s)
line x-(10*s),y to x+(10*s),y
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
endif
if mid$(a$,a,1)="j" then
line x,y-(40*s) to x,y-(5*s)
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(17*s),y-(5*s) to x-(12*s),y
line x,y-(5*s) to x-(5*s),y
line x-(5*s),y to x-(12*s),y
endif
if mid$(a$,a,1)="k" then
line x-(15*s),y to x-(15*s),y-(40*s)
line x+(15*s),y-(40*s) to x-(15*s),y-(15*s)
line x+(15*s),y to x-(10*s),y-(18*s)
endif
if mid$(a$,a,1)="l" then
line x-(15*s),y to x-(15*s),y-(40*s)
line x-(15*s),y to x+(10*s),y
endif
if mid$(a$,a,1)="m" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x+(17*s),y to x+(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x,y
line x+(17*s),y-(40*s) to x,y
endif
if mid$(a$,a,1)="n" then
line x-(15*s),y to x-(15*s),y-(40*s)
line x-(15*s),y-(40*s) to x+(15*s),y
line x+(15*s),y to x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="o" then
line x-(15*s),y-(5*s) to x-(15*s),y-(35*s)
line x+(15*s),y-(5*s) to x+(15*s),y-(35*s)
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(10*s),y to x+(10*s),y
line x-(15*s),y-(35*s) to x-(10*s),y-(40*s)
line x-(15*s),y-(5*s) to x-(10*s),y
line x+(15*s),y-(35*s) to x+(10*s),y-(40*s)
line x+(15*s),y-(5*s) to x+(10*s),y
endif
if mid$(a$,a,1)="p" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(17*s),y-(15*s) to x+(10*s),y-(15*s)
line x+(15*s),y-(35*s) to x+(15*s),y-(20*s)
line x+(10*s),y-(40*s) to x+(15*s),y-(35*s)
line x+(10*s),y-(15*s) to x+(15*s),y-(20*s)
endif
if mid$(a$,a,1)="q" then
line x-(15*s),y-(5*s) to x-(15*s),y-(35*s)
line x+(15*s),y-(5*s) to x+(15*s),y-(35*s)
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(10*s),y to x+(10*s),y
line x-(15*s),y-(35*s) to x-(10*s),y-(40*s)
line x-(15*s),y-(5*s) to x-(10*s),y
line x+(15*s),y-(35*s) to x+(10*s),y-(40*s)
line x+(15*s),y-(5*s) to x+(10*s),y
line x+(15*s),y to x+(5*s),y-(10*s)
endif
if mid$(a$,a,1)="r" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(17*s),y-(15*s) to x+(10*s),y-(15*s)
line x+(15*s),y-(35*s) to x+(15*s),y-(20*s)
line x+(10*s),y-(40*s) to x+(15*s),y-(35*s)
line x+(10*s),y-(15*s) to x+(15*s),y-(20*s)
line x+(17*s),y to x+(5*s),y-(15*s)
endif
if mid$(a$,a,1)="s" then
line x-(12*s),y to x+(12*s),y
line x-(12*s),y-(20*s) to x+(12*s),y-(20*s)
line x-(12*s),y-(40*s) to x+(12*s),y-(40*s)
line x-(17*s),y-(25*s) to x-(17*s),y-(35*s)
line x+(17*s),y-(5*s) to x+(17*s),y-(15*s)
line x-(17*s),y-(35*s) to x-(12*s),y-(40*s)
line x-(17*s),y-(5*s) to x-(12*s),y
line x+(17*s),y-(35*s) to x+(12*s),y-(40*s)
line x+(17*s),y-(5*s) to x+(12*s),y
line x-(17*s),y-(25*s) to x-(12*s),y-(20*s)
line x+(17*s),y-(15*s) to x+(12*s),y-(20*s)
endif
if mid$(a$,a,1)="t" then
line x,y to x,y-(40*s)
line x-(15*s),y-(40*s) to x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="u" then
line x-(15*s),y-(40*s) to x-(15*s),y-(5*s)
line x-(15*s),y-(5*s) to x-(10*s),y
line x-(10*s),y to x+(10*s),y
line x+(10*s),y to x+(15*s),y-(5*s)
line x+(15*s),y-(5*s) to x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="v" then
line x-(17*s),y-(40*s) to x,y
line x,y to x+(17*s),y-(40*s)
endif
if mid$(a$,a,1)="w" then
line x-(20*s),y-(40*s) to x-(10*s),y
line x-(10*s),y to x,y-(40*s)
line x,y-(40*s) to x+(10*s),y
line x+(10*s),y to x+(20*s),y-(40*s)
endif
if mid$(a$,a,1)="x" then
line x-(15*s),y-(40*s) to x+(15*s),y
line x-(15*s),y to x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="y" then
line x-(15*s),y-(40*s) to x,y-(15*s)
line x+(15*s),y-(40*s) to x,y-(15*s)
line x,y-(15*s) to x,y
endif
if mid$(a$,a,1)="z" then
line x-(15*s),y-(40*s) to x+(15*s),y-(40*s)
line x+(15*s),y-(40*s) to x-(15*s),y
line x-(15*s),y to x+(15*s),y
endif
if mid$(a$,a,1)="." fill circle x-(10*s),y,(2*s)
if mid$(a$,a,1)="," fill triangle x-(10*s),y-(2*s) to x-(7*s),y-(2*s) to x-11,y+(4*s)
x=x+(40*s)
if x>500 and mid$(a$,a,1)=" " then
y=y+(60*s)
x=20*s
endif
next a
until (1=0)

Unchanged since I did it.

19
Yabasic / Title sample
« on: May 18, 2011 »
This is one from my archives.

They're in such a mess.  No cataloging at all.

My early ideas came from imitating effects I'd seen.

Had to find this one, when I noticed the DBF home page.

Code: [Select]
open window 640,512
title=1
go=1
m=1
go1=64
m1=1
stars=250
ang=pi/180
dir=6
dim x(stars),y(stars),z(stars),m(stars),s(stars)
for a=1 to stars
s(a)=ran(.01)
x(a)=ran(360) rem degrees used of circle
z(a)=ran(410) rem distance from center
next a
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
for a=1 to stars
m(a)=m(a)+s(a)
z(a)=z(a)+m(a)
if z(a)>410 then
s(a)=ran(.01)
m(a)=0
z(a)=0
x(a)=ran(360)
endif
setrgb 1,256,256,256
fill circle cos(dir*ang*x(a))*z(a)+320,sin(dir*ang*x(a))*z(a)+256,m(a)*1.5
next a
go=go+m
if go<1 m=1
if go>128 m=-1
if go>128 title=title+1
if title>13 title=1
setrgb 1,256-(go*2),256-(go*2),256-(go*2)
if title=1 text 210,260,"       SPACE . . ."
if title=2 text 210,260,"   THE FINAL FRONTIER"
if title=3 text 210,260,"      THESE ARE THE"
if title=4 text 210,260,"   CONTINUING VOYAGES"
if title=5 text 210,260,"     OF BIKEMADNESS."
if title=6 text 210,260,"      HIS MISSION,"
if title=7 text 210,260," AS HE IS ATTEMPTING IT,"
if title=8 text 210,260," IS TO UNDERSTAND ENOUGH"
if title=9 text 210,260,"   CODE AND PROGRAMMIMG"
if title=10 text 210,260,"     TO REALISE MOST"
if title=11 text 210,260,"      OF HIS IDEAS."
if title=12 text 210,260," TO FRUITION AND COMPLETION,"
if title=13 text 210,260,"WITH NOT TOO MUCH FRUSTRATION."
until (1=0)

I always liked the star field effect.

20
Yabasic / Re: Scrolling Shoot 'em Up
« on: May 14, 2011 »
I've done a bit more work.

There is now 400 lines.

Has a title screen.

And DON'T shoot the parachute.

Code: [Select]
open window 640,512
label main
pause.25
clear window
shoot=0
bullx=herox
bully=heroy-10
herox=190
heroy=300
'a$="PLAYTHEGAME!"
'a$="PRISONEROFWAR"
a$="SAVETHEHOSTAGES"
nos=len(a$)
gap=240/nos
dim x(nos),y(nos)
for a=1 to nos
x(a)=a*gap+185
y(a)=220
next a
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
setrgb 1,256,256,256
rectangle 180,201 to 459,312
herox=herox+.5
if herox>450 herox=190
shoot=0
for a=1 to nos
text x(a),y(a),mid$(a$,a,1)
if herox>x(a)+5 and herox<x(a)+10 shoot=1
next a
heroy=heroy-1
if heroy<300 heroy=300
if shoot=1 then
heroy=304
bully=bully-8
endif
if shoot=0 then
bully=heroy-10
bullx=herox
endif
for a=1 to nos
y(a)=y(a)+.5
if y(a)>220 y(a)=220
if bullx>x(a) and bullx<x(a)+10 and bully<y(a)+10 then
setrgb 1,256,256,256
fill circle x(a)+5,y(a)-2,12
setrgb 1,256,0,0
fill circle x(a)+5,y(a)-2,10
endif
if herox>x(a)+5 and herox<x(a)+10 and bully<y(a) y(a)=160
next a
setrgb 1,0,0,0
fill rectangle 180,150 to 460,200
fill rectangle 180,312 to 460,362
fill rectangle 130,150 to 180,362
fill rectangle 460,150 to 510,362
setrgb 1,256,256,256
fill rectangle bullx-1,bully-2 to bullx+1,bully+2
setrgb 1,256,128,0
fill triangle herox-5,heroy to herox+5,heroy to herox,heroy-18
if hiscore>0 then
setrgb 1,256,256,0
text 230,335,"high score is "+str$(hiscore)
endif
setrgb 1,0,150,0
text 235,355,"press X to start"
setrgb 1,256,0,0
text 245,180,"H O S T A G E !"
c=peek("port1")
until (and(c,16384)>0)
rem game setup
score=0
bonus1=0
bonus2=0
fire=0
en=0
sbomb=0
bullet=-6
stars=100
dim xstar(stars),ystar(stars)
dim r(stars),g(stars),b(stars)
for a=1 to stars
xstar(a)=int(ran(540))+20
ystar(a)=int(ran(510))
r(a)=ran(156)+100
g(a)=ran(156)+100
b(a)=ran(156)+100
next a
bullets=6
dim bulletx(bullets),bullety(bullets),fire(bullets)
for a=1 to bullets
bulletx(a)=shipx
bullety(a)=shipy-15
fire(a)=0
next a
shipx=320
shipy=510
ships=10
enemy=10
dim enx(enemy),eny(enemy),enm(enemy)
dim blow(enemy),go1(enemy),explode(enemy)
dim explosionx(enemy),explosiony(enemy)
for b=1 to enemy
enx(b)=int(ran(27))*20+20
eny(b)=ran(512)-500
enm(b)=ran(.15)+.07
blow(b)=0
go1(b)=0
explode(b)=0
next b
enfire=2
enbullety=eny(enfire)
enbulletx=enx(enfire)
para=0
parachutex=enx(enfire)
parachutey=enx(enfire)
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
setrgb 1,50,50,50
setrgb 2,50,50,50
setrgb 3,50,50,250
gtriangle 0,0 to 580,0 to 580,512
setrgb 2,50,50,250
gtriangle 0,0 to 580,512 to 0,512
for a=1 to stars
setrgb 1,r(a),g(a),b(a)
fill circle xstar(a),ystar(a),1.2
ystar(a)=ystar(a)+.25
if ystar(a)>512 ystar(a)=0
next a
c=peek("port1")
rem ship movement
if and(c,128)>0 shipx=shipx-5
if and(c,32)>0 shipx=shipx+5
if shipx<10 shipx=10
if shipx>570 shipx=570
rem ship remove after hit
shipy=shipy-1
if shipy<510 shipy=510
rem bullet fire and reset
go=go+1
if go>7 go=7
for a=1 to bullets
if and(c,16384)>0 and go=7 and fire(a)=0 then
go=0
shipy=518
fire(a)=1
endif
if fire(a)=1 bullety(a)=bullety(a)-10
if bullety(a)<0 bullet=bullet+1
if bullety(a)<0 and shipy=510 then
bonus1=0
fire(a)=0
bullety(a)=shipy-15
endif
if fire(a)=0 bulletx(a)=shipx

for b=1 to enemy
rem enemy fire
if enbullety>520 then
enfire=int(ran(b))+1
enbullety=eny(enfire)
enbulletx=enx(enfire)
endif
enbullety=enbullety+.03
if bulletx(a)>enx(enfire)-8 and bulletx(a)<enx(enfire)+8 and bullety(a)>eny(enfire) and bullety(a)<eny(enfire)+60 para=1
if para=1 then
setrgb 1,256,256,256
fill circle parachutex,parachutey,10
setrgb 1,0,0,parachutey/2
fill rectangle parachutex-10,parachutey to parachutex+10,parachutey+10
setrgb 1,256,256,256
fill rectangle parachutex-1,parachutey+15 to parachutex+1,parachutey+20
line parachutex,parachutey+15 to parachutex-10,parachutey
line parachutex,parachutey+15 to parachutex+10,parachutey
line parachutex,parachutey+15 to parachutex-4,parachutey
line parachutex,parachutey+15 to parachutex+4,parachutey
parachutey=parachutey+.05
endif
if parachutey>512 then
para=0
parachutex=enx(enfire)
chute=chute+1
endif
if para=0 parachutey=eny(enfire)+11
rem ship/parachute/bullet collision here
'if parachutex>shipx-10 and parachutex<shipx-2 and parachutey>shipy-20 and parachute<shipy-20 chute=chute+1
if bulletx(a)>parachutex-10 and bulletx(a)<parachutex+10 and bullety(a)>parachutey-10 and bullety(a)<parachutey then
setrgb 1,256,256,256
fill circle parachutex,parachutey,50
setrgb 1,128,128,256
fill circle parachutex,parachutey,45
setrgb 1,0,0,0
text 200,255,"DON'T SHOOT THE PARACHUTE"
gosub gameend
endif
rem suicide explosion
if eny(b)>509 and eny(b)<512 then
setrgb 1,250,250,250
fill circle enx(b),508,28
setrgb 1,250,0,0
fill circle enx(b),508,25
endif
rem ship/enemy collision
if abs(enx(b)-shipx)<38 and eny(b)>490 and eny(b)<492 then
eny(b)=0
ships=ships-1
shipy=600
'fire(a)=1
'bulletx(a)=shipx
'bullety(a)=shipy-15
setrgb 1,250,250,250
fill circle shipx,508,30
setrgb 1,50,50,250
fill circle shipx,508,27
endif
rem enemy reset
if eny(b)>512 then
eny(b)=0
enx(b)=int(ran(27))*20+20
endif
rem ship bullet/enemy collision
rem bonuses:
rem 10 sequential hits - extra ship
rem 3 of any 10 hits - one smart bomb
rem smart bomb takes out screen enemy
if bulletx(a)>enx(b)-8 and bulletx(a)<enx(b)+8 and bullety(a)>eny(b) and bullety(a)<eny(b)+22 then
en=en+1
bullet=bullet+1
score=score+int(100*enm(b))
rem extra ships
bonus1=bonus1+1
if bonus1>10 bonus1=0
if bonus1=10 ships=ships+1
if bonus1=10 bonus2=bonus2+1
rem enemy reset
eny(b)=0
enx(b)=int(ran(27))*20+20
rem bullet reset
fire(a)=0
bullety(a)=shipy-15
endif
rem enemy explosion
if bulletx(a)>enx(b)-8 and bulletx(a)<enx(b)+8 and bullety(a)>eny(b) and bullety(a)<eny(b)+30 blow(b)=1
if blow(b)=1 then
go1(b)=1
explode(b)=explode(b)+go1(b)
endif
if explode(b)>20 then
go1(b)=0
explode(b)=0
blow(b)=0
endif
if blow(b)=0 then
explosionx(b)=enx(b)
explosiony(b)=eny(b)+11
endif
setrgb 1,250,250,250
fill circle explosionx(b),explosiony(b),explode(b)+3
setrgb 1,0,256,0
fill circle explosionx(b),explosiony(b),explode(b)
rem parachute drop here?
rem enemy movement
eny(b)=eny(b)+enm(b)
flame=flame+.1
if flame>30 flame=6
rem enemy ships
setrgb 1,0,250,0
fill triangle enx(b)-8,eny(b) to enx(b)+8,eny(b) to enx(b),eny (b)+22
setrgb 1,250,125,20
fill triangle enx(b)-4,eny(b) to enx(b)+4,eny(b) to enx(b),eny (b)-flame
rem smart bomb
if bonus1>10 bonus2=bonus2+1
if bonus2=3 sbomb=sbomb+1
if bonus2=3 bonus2=0
if and(c,4096)>0 and eny(b)>0 and sbomb>0 then
score=score+int(100*enm(b))
setrgb 1,256,256,256
fill circle enx(b),eny(b)+11,25
setrgb 1,0,256,0
fill circle enx(b),eny(b)+11,22
enx(b)=int(ran(27))*20+20
eny(b)=ran(510)-500
bonus2=0
endif
if sbomb<0 sbomb=0
next b
next a
bmb=bmb+1
if bmb>10 bmb=10
if and(c,4096)>0 and bmb=10 then
sbomb=sbomb-1
bmb=0
endif
if sbomb<0 sbomb=0
if score>hiscore hiscore=score
if chute>hichute hichute=chute
rem heads up display
setrgb 1,250,250,250
line 579,0 to 579,512
setrgb 1,200,200,0
fill rectangle 580,0 to 640,512
setrgb 1,0,0,0
text 580,20," GAME"
text 580,35,"SCORE:"
text 580,50,str$(score)
text 580,80,"HIGH"
text 580,95,"SCORE:"
text 580,110,str$(hiscore)
text 580,140,"SHIPS"
text 580,155,"LEFT:"
text 580,170,str$(ships)
text 580,200,"BONUS"
text 580,215,"COUNT:"
text 580,230,str$(bonus1)
text 610,230,str$(bonus2)
setrgb 1,256,0,0
text 580,240,"10"
text 610,240,"3"
setrgb 1,0,0,0
text 580,280,"ENEMYS"
text 580,295," SHOT:"
text 580,310,str$(en)
text 580,350,"SHOTS"
text 580,365,"USED:"
text 580,380,str$(bullet)
text 580,420,"SMART"
text 580,435,"BOMBS"
text 580,450,str$(sbomb)
text 580,480,"PEOPLE"
text 580,495,"SAVED"
text 580,510,str$(chute)
rem game display
setrgb 1,250,250,250
rem ship bullet/enemy bullet collision
for a=1 to bullets
fill rectangle bulletx(a)-2,bullety(a)-5 to bulletx(a)+2,bullety(a)+5
if bulletx(a)>enbulletx-2 and bulletx(a)<enbulletx+2 and  bullety(a)>enbullety-3 and bullety(a)<enbullety+3 then
ship=ship+1
setrgb 1,256,256,256
fill circle enbulletx,enbullety,15
setrgb 1,100,100,100
fill circle enbulletx,enbullety,12
bulletx(a)=shipx
bullety(a)=shipy-15
enfire=int(ran(a))+1
enbullety=eny(enfire)
enbulletx=enx(enfire)
endif
next a
fill rectangle enbulletx-2,enbullety-3 to enbulletx+2,enbullety  +3
setrgb 1,256,130,0
fill triangle shipx-10,shipy to shipx+10,shipy to shipx,shipy-30
rem enemy bullet collision
if enbulletx>shipx-10 and enbulletx<shipx+10 and enbullety>shipy-30 then
ships=ships-1
enfire=int(ran(a))+1
enbullety=eny(enfire)
enbulletx=enx(enfire)
setrgb 1,250,250,250
fill circle shipx,shipy-15,40
setrgb 1,250,125,0
fill circle shipx,shipy-15,35
shipy=600
fire=1
endif
if ships=0 gosub gameend
until (1=0)

label gameend
open window 640,512
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
setrgb 1,256,256,256
rectangle 200,185 to 440,312
text 220,230,"most men saved: "+str$(hichute)
text 220,245," HIGH SCORE IS "+str$(hiscore)
text 220,260,"YOUR SCORE WAS "+str$(score)
setrgb 1,255,0,0
text 230,215," G A M E O V E R"
setrgb 1,0,255,0
text 230,285,"press X to restart"
c=peek("port1")
until (and(c,16384)>0)
gosub main

I think I'm finished with it now.

Pages: [1] 2 3 4 5 6