"Graphics Demo" BASIC Program


This program was written with the aim of demonstrating the basic graphics
capabilities of the Acorn electron and BBC Model-B Microcomputers.


The user can select a screen mode at the beginning and this will determine
the resolution of the graphics and the number of colours available for display.

The program is free running and does not require any further input when started.

Here is the 1986 listing for GRAPHICS DEMO in BBC BASIC


10 REM GRAPHICS DEMO
20 REM
30 REM GUESS THE NUMBER
40 REM
50 REM By RICHARD HALL
60 REM
70 REM Written on the:
80 REM
90 REM Acorn Electron 32K
100 REM
110 REM Language:BBC BASIC
120 REM
130 MODE 7
140 PRINTTAB(13,10);CHR$(141);"GRAPHICS"
150 PRINTTAB(13,11);CHR$(141);"GRAPHICS"
160 PRINTTAB(11,12);CHR$(141);"DEMONSTRATION"
170 PRINTTAB(11,13);CHR$(141);"DEMONSTRATION"
180 FOR pause=0 TO 2000:NEXT pause:CLS
190 PRINT:PRINTSPC(7);CHR$(141);"GRAPHICS DEMONSTRATION"
200 PRINTSPC(7);CHR$(141);"GRAPHICS DEMONSTRATION"
210 PRINTSPC(7);"-------- -------------"
220 PRINT:PRINT:PRINTSPC(1);"This program demonstrates the"'"graphics capabilities of the"'"Acorn Electron and BBC Model-B"
230 PRINT:PRINT:INPUT"Enter MODE for graphics to be viewed";mode
240 PRINT
250 IF mode=3 OR MODE=6 OR mode=7 THEN PRINT "THE MODE THAT YOU HAVE SELECTED IS A TEXT ONLY MODE AND CANNOT SUPPORT ANY LINE GRAPHICS!!":PRINT:PRINT"<SPACE> TO CONTINUE":REPEAT UNTIL GET=32:RUN
260 MODE mode
270 MOVE 0,0
280 FOR A=0 TO 1000 STEP 20
290 DRAW A,1000
300 DRAW 100,A
310 NEXT A
320 MOVE 0,0
330 FOR B=0 TO 1100 STEP 20
340 DRAW B,100
350 DRAW 1000,B
360 NEXT B
370 FOR wait=0 TO 2500:NEXT wait
380 CLG:MOVE 0,0
390 FOR C=1 TO 100
400 DRAW RND(1100),RND(1100)
410 GCOL 0,RND(7)
420 NEXT C
430 FOR wait=0 TO 2500:NEXT wait
440 CLG:MOVE 0,0
450 FOR D=0 TO 1000
460 GCOL 0,RND(7)
470 PLOT 69,RND(1200),RND(1000)
480 NEXT D
490 FOR wait=0 TO 2500:NEXT wait
500 CLG:MOVE 0,0
510 GCOL 0,1
520 MOVE 0,0
530 LET B=500
540 FOR A=0 TO 1000 STEP 20
550 DRAW A,B
560 DRAW B-20,A+200
570 DRAW 0,A-B
580 PLOT 77,B,A-200
590 NEXT A
600 FOR wait=0 TO 2500:NEXT wait
610 CLG:MOVE 0,0
620 FOR E=0 TO 50
630 GCOL 0,RND(7)
640 PLOT 85,RND(1200),RND(1000)
650 NEXT E
660 FOR wait=0 TO 2500:NEXT wait
670 CLG:MOVE 0,0
680 VDU 23,150,0,12,12,15,23,46,94,231
690 VDU 23,151,0,48,48,240,232,116,122,231
700 VDU 23,152,194,194,195,195,195,3,3,3
710 VDU 23,153,67,67,195,195,195,193,192,192
720 VDU 5
730 GCOL 0,1
740 LET A=300:LET B=800
750 LET C=700:LET D=800
760 MOVE A,B
770 VDU 152;153:VDU 11,8,8,150,151
780 MOVE C,D
790 VDU 152;153:VDU 11,8,8,150,151
800 ENVELOPE 1,129,-15,-8,-3,10,10,10,126,0,0,-126,126,126
810 VDU 23,170,0,1,1,1,1,3,4,7
820 VDU 23,171,0,128,128,128,128,192,64,224
830 VDU 23,172,15,31,62,123,241,224,192,192
840 VDU 23,173,240,248,124,190,143,7,3,3
850 VDU 23,174,0,0,0,0,0,0,0,0
860 FOR E=20 TO 1000 STEP 20
870 IF E=300 THEN PROCfire
880 IF E=700 THEN PROCkill
890 LET F=100
900 MOVE E,F
910 VDU 170:VDU 8,10,172:VDU 11,171:VDU 8,10,173
920 FOR pause=0 TO 50:NEXT pause
930 MOVE E,F
940 GCOL 0,0
950 VDU 170:VDU 8,10,172:VDU 11,171:DU 8,10,173
960 GCOL 0,1
970 NEXT E
980 VDU 4
990 GOTO 1060
1000 DEFPROCfire
1010 MOVE E,F:DRAW A,B:SOUND 1,1,50,5:GCOL 0,0:DRAW E,F:GCOL 0,0:MOVE A,B:VDU152;153:VDU 11,8,8,150,151:MOVE E,F:GCOL 0,1
1020 ENDPROC
1030 DEFPROCkill
1040 MOVE E,F:DRAW C,D:SOUND 1,1,50,5:GCOL 0,0:DRAW E,F:GCOL 0,0:MOVE C,D:VDU 152;153:VDU 11,8,8,150,151:MOVE E,F:GCOL 0,1
1050 ENDPROC
1060 CLG:MOVE 0,0
1070 MODE 7
1080 PRINTTAB(13,10);CHR$(141);"GRAND FINALE"
1090 PRINTTAB(13,11);CHR$(141);"GRAND FINALE"
1100 FOR pause=0 TO 2000:NEXT pause
1110 MODE 2
1120 GCOL 0,132:GCOL 0,1:CLG
1130 MOVE 480,0
1140 DRAW 480,1024
1150 PLOT 85,800,0
1160 PLOT 85,800,1024
1170 MOVE 0,384
1180 DRAW 0,640
1190 PLOT 85,480,384
1200 PLOT 85,480,640
1210 MOVE 800,384
1220 DRAW 800,640
1230 PLOT 85,1280,640
1240 DRAW 1280,384
1250 PLOT 85,800,384
1260 GCOL 0,7
1270 MOVE 448,640
1280 DRAW 480,640
1290 PLOT 85,448,1024
1300 DRAW 480,1024
1310 PLOT 85,480,640
1320 MOVE 832,640
1330 DRAW 800,640
1340 PLOT 85,832,1024
1350 DRAW 800,1024
1360 PLOT 85,800,640
1370 MOVE 448,384
1380 DRAW 480,384
1390 PLOT 85,480,0
1400 DRAW 448,0
1410 PLOT 85,448,384
1420 MOCE 800,384
1430 DRAW 800,352
1440 PLOT 85,1280,384
1450 DRAW 1280,352
1460 PLOT 85,800,352
1470 MOVE 0,640
1480 DRAW 0,672
1490 PLOT 85,480,640
1500 DRAW 480,672
1510 PLOT 85,0,672
1520 MOVE 0,384
1530 DRAW 0,352
1540 PLOT 85,480,384
1550 DRAW 480,352
1560 PLOT 85,0,352
1570 MOVE 800,640
1580 DRAW 800,672
1590 PLOT 85,1280,672
1600 DRAW 1280,640
1610 PLOT 85,800,640
1620 MOVE 800,0
1630 DRAW 832,0
1640 PLOT 85,800,384
1650 DRAW 832,384
1660 PLOT 85,832,0
1670 MOVE 64,0
1680 DRAW 96,0
1690 PLOT 85,480,320
1700 DRAW 480,288
1710 PLOT 85,96,0
1720 MOVE 0,64
1730 DRAW 0,128
1740 PLOT 85,400,384
1750 DRAW 320,384
1760 PLOT 85,0,128
1770 MOVE 0,896
1780 DRAW 0,928
1790 PLOT 85,368,640
1800 DRAW 400,640
1810 PLOT 85,0,935
1820 MOVE 64,1024
1830 DRAW 128,1024
1840 PLOT 85,480,704
1850 DRAW 480,760
1860 PLOT 85,128,1024
1870 MOVE 800,736
1880 DRAW 800,704
1890 PLOT 85,1184,1024
1900 DRAW 1216,1024
1910 PLOT 85,800,704
1920 MOVE 880,640
1930 DRAW 960,640
1940 PLOT 85,1280,960
1950 DRAW 1280,896
1960 PLOT 85,960,640
1970 MOVE 896,384
1980 DRAW 928,384
1990 PLOT 85,1280,64
2000 DRAW 1280,96
2010 PLOT 85,928,384
2020 MOVE 800,320
2030 DRAW 800,288
2040 PLOT 85,1216,0
2050 DRAW 1152,0
2060 PLOT 85,800,288
2070 GCOL 0,1
2080 MOVE 0,0
2090 DRAW 64,0
2100 PLOT 85,0,64
2110 DRAW 368,352
2120 PLOT 85,64,0
2130 PLOT 85,448,288
2140 PLOT 85,448,352
2150 PLOT 85,368,352
2160 MOVE 0,1024
2170 DRAW 0,950
2180 PLOT 85,64,1024
2190 DRAW 448,736
2200 PLOT 85,0,950
2210 PLOT 85,385,665
2220 DRAW 448,736
2230 PLOT 85,448,672
2240 MOVE 832,672
2250 DRAW 912,672
2260 PLOT 85,832,736
2270 DRAW 1216,1024
2280 PLOT 85,880,672
2290 DRAW 1290,960
2300 PLOT 85,1216,1024
2310 DRAW 1280,1024
2320 PLOT 85,1280,960
2330 PLOT 85,912,672
2340 PLOT 85,864,760
2350 MOVE 842,352
2360 DRAW 845,288
2370 PLOT 85,928,352
2380 DRAW 1280,64
2390 PLOT 85,855,288
2400 PLOT 85,1216,0
2410 DRAW 1280,64
2420 PLOT 85,1280,0
2430 :
2440 REM Rule Brittania
2450 :
2460 FOR X=1 TO 10
2470 READ P,D
2480 IF P=999 THEN L=0 ELSE L=-15
2490 SOUND 1,L,P,D
2500 SOUND 1,0,0,3
2510 NEXT X
2520 DATA 97,15,97,5,999,5,101,5,97,5,101,10,97,2,89,5,81,5,77,10
2530 FOR pause=1 TO 3000:NEXT pause
2540 CLEAR:RUN

Back to School Programs Page


If you have arrived here from a Search Engine
Click the link below to go to the Classic Acorn Home Page
Everyone else use the Navigation Section on the Left
<---------------------------------------------------

Home