home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1986 July
/
1986-07.d64
/
marquee_64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
3KB
|
96 lines
100 print"[147]"spc(14)"please wait":gosub910
110 dim c1$(256),g$(256),j(256)
120 print"[147] marquee"
130 print"enter distance of display from top"
140 input"(range:50-200; default:100)";h$
150 h=val(h$):if h=0 then h=100
160 if h<50 then h=50
170 if h>200 then h=200
180 print"enter speed":input"(range:1-9; default:5)";sp$
190 sp=val(sp$):if sp=0 then sp=5
200 if sp<1 then sp=1
210 if sp>9 then sp=9
220 print"[147] color menu"
230 print" 1) black 9) orange"
240 print" 2) white 10) brown"
250 print" 3) red 11) light red"
260 print" 4) cyan 12) dark gray"
270 print" 5) purple 13) medium gray"
280 print" 6) green 14) light green"
290 print" 7) blue 15) light blue"
300 print" 8) yellow 16) light gray "
310 print"enter background color (default 12)":inputcl$(0)
320 cl(0)=val(cl$(0)):if cl(0)=0 then cl(0)=12
330 print"enter border color (default 14)":inputcl$(4)
340 cl(4)=val(cl$(4)):if cl(4)=0 then cl(4)=14
350 print"enter marquee color (default 1)":inputcl$(2)
360 cl(2)=val(cl$(2)):if cl(2)=0 then cl(2)=1
370 print"[147]enter your message:"
380 print " [146]";
390 poke198,0:wait198,1:getb$
400 if b$=chr$(17) or b$=chr$(145) or b$=chr$(157) or b$=chr$(29)then390
410 print "[157]";b$;
420 if b$=chr$(34) then print chr$(34)chr$(20);
430 if b$=chr$(13) and a$<>"" then470
440 if b$=chr$(13) then370
450 if b$<>chr$(20) then a$=a$+b$:goto380
460 l=len(a$):a$=left$(a$,l-1):goto380
470 a$=a$+" "
480 l=len(a$):a=0
490 a=a+1
500 print "[147]countdown . .";4*l-4*a+4
510 c$=mid$(a$,a,1)
520 n=asc(c$):if n>64 then n=n-64
530 if j(n)=1 then760
540 cm=0:j(n)=1
550 if n=44 or n=59 then cm=1
560 poke56334,0:poke1,51:for f=1 to 8
570 b=peek(53247+8*n+f):r$=chr$(b)
580 c1$(n)=c1$(n)+r$
590 next f:poke1,55:poke56334,129
600 d$=""
610 for d=1+cm to 21+cm
620 c2=asc(mid$(c1$(n),d,1)+chr$(0))
630 c6=(c2 and 1)*7+(c2 and 2)*56/2+(c2 and 4)*192/4
640 if d=6 then print "[147]countdown . .";4*l-4*a+3
650 if d=12 then print "[147]countdown . .";4*l-4*a+2
660 if d=18 then print "[147]countdown . .";4*l-4*a+1
670 c5=(c2 and 4)*1/4+(c2 and 8)*14/8+(c2 and 16)*112/16+(c2 and 32)*128/32
680 c4=(c2 and 32)*3/32+(c2 and 64)*28/64+(c2 and 128)*224/128
690 d$=d$+chr$(c4)+chr$(c5)+chr$(c6)
700 next d
710 e$="":f$=""
720 for d=1to21 step 3
730 e$=mid$(d$,d,3):f$=f$+e$+e$+e$
740 next d
750 g$(n)=f$
760 if a<l then490
770 poke53281,cl(0)-1:poke53280,cl(4)-1
780 print"[147]":b=248:fora=2040to2047:pokea,b:b=b+1:next:poke53271,255
790 poke53277,255:fora=858to867:pokea,110+sp*15:next:sys 49158
800 sn=0:q=l-3
810 q=q+1:if q>l then q=1
820 n=asc(mid$(a$,q,1))
830 if n>64 then n=n-64
840 sn=sn+1:if sn>8 then sn=1
850 so=sn-6:if so<1 then so=so+8
860 sys49155,sn-1,340,h
870 sys49152,g$(n),sn-1
880 poke53269,peek(53269)and(255-2^(so-1))or2^(sn-1):poke53287+sn-1,cl(2)-1
890 for ct=1 to (7-sp)*25:next ct
900 goto810
910 c=0:fora=49152to49363:readb:pokea,b:c=c+b:nexta:ifc=25321thenreturn
920 print"error in data":stop
930 data 76,125,192,76,187,192,169,27,141,17,208,169,127,141,13,220,169,32,141
940 data 20,3,169,192,141,21,3,169,129,141,26,208,96,169,1,141,25,208,162
950 data 3,32,93,192,202,16,250,162,14,160,7,169,0,133,2,185,70,3,157
960 data 0,208,165,3,157,1,208,185,80,3,74,38,2,202,202,136,16,234,165
970 data 2,141,16,208,173,13,220,41,1,240,3,76,49,234,76,188,254,160,7
980 data 185,60,3,56,237,90,3,153,60,3,185,70,3,233,0,153,70,3,185
990 data 80,3,233,0,153,80,3,136,16,227,96,32,253,174,32,139,176,160,1
1000 data 177,71,153,250,0,200,192,3,208,246,32,178,192,169,0,133,254,132,253
1010 data 162,5,6,253,38,254,202,16,249,165,254,24,105,62,133,254,160,63,177
1020 data 251,145,253,136,16,249,96,32,253,174,32,158,173,76,170,177,32,178,192
1030 data 132,253,32,178,192,166,253,157,80,3,152,157,70,3,32,178,192,166,253
1040 data 132,3,96