| PowerBASIC examples |
RUN"V9990.LDR" 10 '--- PBFONT.BAS 20 COLOR15,0,0:SCREEN2 30 _TURBOON 40 '--- draw all fonts 50 SETPAGE1,1:CLS 60 AD=PEEK(4)+PEEK(5)*256 70 FORI=0TO64:FORJ=0TO7 80 A=128:D=PEEK(256+AD) 90 D=(DAND&HF0)OR((DAND&B1110)*2) 100 V=128*(8*INT(I/32)+J)+(IAND31)*4 110 FORK=0TO3 120 IFDANDATHENH=&HF0 ELSEH=&H0 130 A=A/2 140 IFDANDATHENH=HOR&HF 150 VPOKEV,H:V=V+1 160 NEXTK 170 AD=AD+1 180 NEXTJ,I 190 '--- init screen 200 SETPAGE0,0 210 A$="HELLO POWER BASIC" 220 SX=4:SY=4:GOSUB290 230 A$="PUSH SPACE KEY TO QUIT!" 240 SX=4:SY=32:GOSUB290 250 '--- loop 260 IFSTRIG(0)THENEND 270 GOTO 260 280 '--- print 290 FORI=0TOLEN(A$)-1 300 A=ASC(MID$(A$,I+1,1))-32:COPY(INT(AAND31)*8,INT(A/32)*8)-STEP(7,7),1TO(SX,SY) 310 SX=SX+8:NEXTI:RETURN ![]() 1 '--- PBBALLS.BAS
2 _TURBOON
3 DIM TX(100),TY(100),TC(100),RX(100),RY(100),HX(100),HY(100)
4 TM=100
5 WX=240+8+8:WY=176+8+8
6 FOR I=0 TO TM:TX(I)=INT(RND(1)*WX):TY(I)=INT(RND(1)*WY)
7 GOSUB55
8 NEXTI
9 COLOR15,0,0:SCREEN2
10 '--- init sprites
11 VDP(25)=2
12 FORI=0TO3:FORJ=0TO15:READ A$:FORK=0TO7
13 VPOKE&H8000+I*8+J*128+K,VAL("&h"+MID$(A$,K*2+1,2))
14 NEXT K,J,I
15 '--- graphic data
16 DATA AAAAAAAADDDDDDDD,AAAAAAAADDDDDDDD,AAAAAAAADDDDDDDD,AAAAAAAADDDDDDDD
17 DATA AAAAAAAADDDDDDDD,AAAAAAAADDDDDDDD,AAAAAAAADDDDDDDD,AAAAAAAADDDDDDDD
18 DATA DDDDDDDDAAAAAAAA,DDDDDDDDAAAAAAAA,DDDDDDDDAAAAAAAA,DDDDDDDDAAAAAAAA
19 DATA DDDDDDDDAAAAAAAA,DDDDDDDDAAAAAAAA,DDDDDDDDAAAAAAAA,DDDDDDDDAAAAAAAA
20 DATA 0000077775700000,0007777777575000,00777FF777757500,0757FFF777575550
21 DATA 0577FF7777757550,5757777777575545,5575777775755554,5557577757555544
22 DATA 5575757575555454,5557575755554544,4555555555545444,0455555555454440
23 DATA 0444545454544440,0044454545444400,0004444444444000,0000044444400000
24 DATA 0000033332300000,0003333333232000,00333FF333323200,0323FFF333232220
25 DATA 0233FF3333323220,23233333332322C2,223233333232222C,22232333232222CC
26 DATA 2232323232222C2C,222323232222C2CC,C2222222222C2CCC,0C22222222C2CCC0
27 DATA 0CCC2C2C2C2CCCC0,00CCC2C2C2CCCC00,000CCCCCCCCCC000,00000CCCCCC00000
28 DATA 0000099998900000,0009999999898000,00999FF999989800,0989FFF999898880
29 DATA 0899FF9999989880,8989999999898868,8898999998988886,8889899989888866
30 DATA 8898989898888666,8889898988886866,6888888888868666,0688888888686660
31 DATA 0666868686866660,0066686868666600,0006666666666000,0000066666600000
32 '--- draw back
33 FORI=0TO11:FORJ=0TO15
34 COPY(0,0)-STEP(15,15),1TO(J*16,I*16)
35 NEXTJ,I
36 '--- loop
37 FORI=0TOTM
38 IFINT(RND(1)*30)=0THENGOSUB55
39 SX=TX(I):SY=TY(I)
40 IFHX(I)>SXTHENRX(I)=RX(I)+.5ELSEIFHX(I)<SXTHENRX(I)=RX(I)-.5
41 IFHY(I)>SYTHENRY(I)=RY(I)+.5ELSEIFHY(I)<SYTHENRY(I)=RY(I)-.5
42 SX=SX+RX(I)
43 SY=SY+RY(I)
44 BD=8
45 IF SX<BD THEN SX=BD
46 IF SX>WX-1-BD THEN SX=WX-1-BD
47 IF SY<BD THEN SY=BD
48 IF SY>WY-1-BD THEN SY=WY-1-BD
49 PUTSPRITEI,(SX-8,SY-8),,TC(I)+1
50 TX(I)=SX:TY(I)=SY
51 NEXTI
52 IFSTRIG(0)THENEND
53 GOTO 37
54 '--- change property
55 HX(I)=RND(1)*(WX-80)+40
56 HY(I)=RND(1)*(WY-60)+30
57 TC(I)=INT(RND(1)*3)
58 RETURN
|
8 demos made with PowerBASIC. It runs on MSX turboR with GFX9000(V9990). It also runs with openMSX. Download |