home *** CD-ROM | disk | FTP | other *** search
- 10 rem copyright 1990 compute! publications, inc. - all rights reserved
- 15 print"[147][154]":poke53280,14:poke53281,6
- 20 c1=0 :rem background color
- 30 c2=3 :rem scrolling text color
- 40 c3=6 :rem border color
- 50 c4=6 :rem heading background color
- 60 c5=3 :rem heading text color
- 70 data"[201]nformation [195]enter":rem heading text
- 80 sp=5:rem scroll speed
- 90 mx=240:rem maximum data file length
- 100 df$="billboard.data":rem data file name
- 110 print"please wait":ad=828:f$="billboard.ml":gosub830:poke872,(sp+3)*5
- 120 ad=61440:f$="billboard.char":gosub830
- 130 dims1$(mx),s2$(mx):r1$="":r2$="[146]":s1%=sp*3:s2%=sp*5-5
- 140 sp$=" ":printchr$(14)chr$(8)
- 150 print"[147]"tab(5)"[197][204][197][195][212][210][207][206][201][195] [194][201][204][204][194][207][193][210][196]":print" [195]opyright 1990 [195][207][205][208][213][212][197]! [208]ubl."
- 155 printtab(5)"[193]ll [210]ights [210]eserved"
- 156 print" (1) [199]et message data from disk file"
- 160 print" (2) [212]ype in a message":input" [217]our choice";ch$
- 170 ifch$<>"1"andch$<>"2"then150
- 180 ifch$="1"thengosub330
- 190 ifch$="2"thengosub410
- 200 print" [208]ress [210][197][212][213][210][206] to start message scroll":print" or enter [209] to quit";
- 210 inputch$:ifch$="q"orch$="[209]"thensys2048:end
- 220 gosub690:poke53280,c3:poke53281,c1:poke646,c2:gosub710:printchr$(147)
- 230 fori=0to119:poke55296+i,c5:poke51200+i,160:next
- 240 l=l+1:a$=s1$(l):b$=s2$(l)
- 250 ifpeek(198)>0thenpoke198,0:poke808,237:poke648,4:sys2048:end
- 260 ifl=nthenl=0:goto240
- 270 ifa$="-"thena$=""
- 280 poke214,23:print:printsp$;:poke214,23:print:printa$;:sys828
- 290 ifa$=""thenfori=1tos1%:next
- 300 poke214,23:print:printsp$;:poke214,23:print:printb$;:sys828
- 310 ifa$=""andl>1thenfori=1tos2%:next:sys828
- 320 goto240
- 330 open1,8,2,"0:"+df$+",s,r":print" [210]eading message data, please wait."
- 340 n=n+1:print"[145] [204]ine";n:ifn>=mxthenprint" [196]ata file too large.":close1:end
- 350 ifst=64thenclose1:return
- 360 get#1,a$:ps=ps+1:ifa$<>chr$(13)andps<39thenc$=c$+a$:goto350
- 370 ifmid$(c$,len(c$),1)=" "thenc$=left$(c$,len(c$)-1)
- 380 s1$(n)=c$:c$="":ps=0:ifs1$(n)="-"thengoto340
- 390 ifs1$(n)="*"thens1$(n)="-":close1:n=n+1:return
- 400 gosub600:goto340
- 410 print"[147] [197]nter message text, pressing [210][197][212][213][210][206]"
- 420 print" after each line.":print" [197]nter - on a separate line after"
- 430 print" each message. [197]nter * to end input."
- 440 n=n+1:ifn<10thenprint" ";
- 450 ifn>99thens1$(n)="-":n=n+1:return
- 460 nn$=str$(n):printright$(nn$,len(nn$)-1)":";:zz$=chr$(20)
- 470 ps=0:c$=""
- 480 printchr$(166)chr$(157);
- 490 geta$:ifa$=""or(a$=chr$(24)andc$="")then490
- 500 print" "chr$(157);
- 510 ifa$=zz$andlen(c$)>0thenc$=left$(c$,len(c$)-1):printa$;:ps=ps-1:goto480
- 520 ifa$=chr$(24)thenforz=1tolen(c$):printzz$;:next:goto470
- 530 ifa$=chr$(13)andc$<>""thenprinta$;:goto570
- 540 if(asc(a$)and127)<32then480
- 550 ifps>34then480
- 560 printa$;:c$=c$+a$:poke212,0:ps=ps+1:goto480
- 570 s1$(n)=c$:ifs1$(n)="-"thengoto440
- 580 ifs1$(n)="*"thens1$(n)="-":n=n+1:return
- 590 gosub600:goto440
- 600 a$=s1$(n):s1$="":s2$="":iflen(a$)=0thenreturn
- 610 fori=1tolen(a$):ch=asc(mid$(a$,i,1))
- 620 ifch>32andch<64thens1$=s1$+r1$+chr$(ch+63)+r2$:s2$=s2$+r1$+chr$(ch+127)+r2$
- 630 ifch=65or(ch>66andch<94)thens1$=s1$+chr$(ch):s2$=s2$+chr$(ch-32)
- 640 ifch=66thens1$=s1$+"b":s2$=s2$+chr$(34)+chr$(34)+chr$(20)
- 650 ifch>192andch<218thens1$=s1$+chr$(ch):s2$=s2$+chr$(ch-32)
- 660 ifch=32thens1$=s1$+" ":s2$=s2$+" "
- 670 next:s1$(n)=left$(sp$,20-len(a$)/2)+s1$:s2$(n)=left$(sp$,20-len(a$)/2)+s2$
- 680 return
- 690 poke56576,peek(56576)and252:poke53272,44:poke648,200
- 700 poke53265,peek(53265)and247:printchr$(147):poke808,234:return
- 710 fori=52224to52672:pokei,255:next:fori=0to7:poke52216+i,48+i:next:v=53248
- 720 pokev+21,127:fori=39to46:pokev+i,c4:next:fori=1to15step2:pokev+i,36:next
- 730 pokev+29,255:pokev+23,255:fori=0to14step2:ii=24+i*24
- 740 pokev+i,ii+256*(ii>255):next:pokev+16,96:poke56334,peek(56334)and254
- 750 poke1,peek(1)and251:readn$:nn=len(n$):forx=1tonn:ps=int(10-nn/2)+x
- 760 sn=int(ps/3-.3):ifps=3orps=6orps=9orps=12orps=15orps=18thencn=2
- 770 ifps=1orps=4orps=7orps=10orps=13orps=16orps=19thencn=0
- 780 ifps=2orps=5orps=8orps=11orps=14orps=17orps=20thencn=1
- 790 ch=asc(mid$(n$,x,1)):ifch>=193andch<=218thench=ch-128:goto810
- 800 ifch>=64andch<=90thench=ch-64
- 810 sp=52251+64*sn+cn:fori=0to7:ii=peek(56320+ch*8+i):pokesp,ii:sp=sp+3:nexti,x
- 820 poke1,peek(1)or4:poke56334,peek(56334)or1:return
- 830 f$="0:"+f$:a2=int(ad/256):a1=ad-a2*256
- 840 t$=f$:zk=peek(53)+256*peek(54)-len(t$):poke782,zk/256
- 850 poke781,zk-peek(782)*256:poke780,len(t$):sys65469
- 860 poke780,1:poke781,8:poke782,0:sys65466:poke780,0:poke781,a1:poke782,a2
- 870 sys65493:if(peek(783)and1)or(191andst)thenprint"error loading "f$:end
- 880 return
-