Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 10 REM ******************************
- 20 REM * AGON LIGHT 2 *
- 30 REM * *
- 40 REM * BBC BASIC DEMO *
- 50 REM * WRITTEN FOR MODE 8 *
- 60 REM * BY STEVE LOVEJOY *
- 70 REM ******************************
- 80 :
- 90 REM MAIN SETUP.
- 95 CLEAR
- 100 PROC_LOAD_VARS : REM CALL LOAD_VARS.
- 110 PROC_LOAD_CHARS : REM CALL LOAD_CHARS.
- 120 PROC_INIT_SCREEN : REM CALL INITSCREEN.
- 130 PROC_MAINLOOP : REM CALL MAIN LOOP.
- 140 VDU 30 : REM MOVES CURSOR HOME (TOP LEFT) | 0,0).
- 250 END : REM END MAIN SETUP.
- 260 :
- 1000 DEF PROC_MAINLOOP : REM ****** MAIN LOOP ******
- 1010 CLS : REM CLEAR THE SCREEN.
- 1020 NX = 16 : REM SET X.
- 1030 NY = 0 : REM SET Y AT THE TOP OF THE SCREEN.
- 1040 :
- 1050 FOR J=1 TO 64 : REM LOOP FOR COLOUR CHANGE.
- 1055 CLS : REM CLEAR THE SCREEN BETWEEN EACH COLOUR CHANGE.
- 1060 COLOUR J : REM ASSIGN COLOUR OF J.
- 1065 PROC_DRAW_HUD : REM DRAW THE HUD (BORDER).
- 1070 IF NY <=29 THEN NY = NY+1 : REM INCREMENT THE Y POSITION EACH COLOUR LOOP.
- 1075 IF NY >29 THEN NY = 0 : REM RESET Y AFTER IT MOVES OFF THE SCREEN.
- 1080 PROC_DRAW_AGON(NX,NY) : REM THIS ALLOWS YOU TO MOVE THE TEXT WITH CODE.
- 1085 ANYKEY%=INKEY(4) : REM DELAY
- 1090 NEXT J : REM LOOP J.
- 1100 :
- 2000 ENDPROC : REM END MAIN_LOOP.
- 2010 :
- 5500 DEF PROC_INIT_SCREEN : REM ***** INIT_SCREEN ****
- 5510 :
- 5520 MODE mode% : REM SETS SCREEN MODE FROM VARS.
- 5530 CLS : REM CLEAR TEXT SCREEN.
- 5540 CLG : REM CLEAR GRAPHICS SCREEN.
- 5550 PROC_HIDE_CURSOR : REM CALL HIDE_CURSOR.
- 5560 ENDPROC : REM END INIT_SCREEN
- 5570 :
- 5580 DEF PROC_HIDE_CURSOR : REM ******* HIDE_CURSOR *******
- 5590 VDU 23,1,0;0;0;0;
- 5600 ENDPROC
- 5610 :
- 5620 DEF PROC_SHOW_CURSOR : REM ****** SHOW_CURSOR *******
- 5630 VDU 23,1,1;0;0;0;
- 5640 ENDPROC
- 5650 :
- 7710 DEF PROC_LOAD_CHARS : REM ****** LOAD_CHARS TO MEMORY ******
- 7720 REM ASSIGN A to CHRS.
- 7730 VDU 23,201,0,0,0,0,1,1,7,7
- 7740 VDU 23,202,30,30,126,126,254,254,254,254
- 7750 VDU 23,203,31,31,126,126,120,120,0,0
- 7760 VDU 23,204,158,158,30,30,30,30,6,6
- 7770 REM ASSIGN G to CHARS.
- 7780 VDU 23,205,127,127,127,112,112,112,112,112
- 7790 VDU 23,206,254,254,254,0,0,6,6,30
- 7800 VDU 23,207,112,112,112,127,127,127,0,0
- 7810 VDU 23,208,30,30,30,254,254,254,30,24
- 7820 REM ASSIGN O to CHARS.
- 7830 VDU 23,209,127,127,127,112,112,112,112,112
- 7840 VDU 23,210,254,254,254,14,14,14,14,14
- 7850 VDU 23,211,112,112,112,127,127,127,0,0
- 7860 VDU 23,212,14,14,14,254,254,254,0,0
- 7870 REM ASSIGN N to CHARS.
- 7880 VDU 23,213,96,120,120,126,126,127,127,127
- 7890 VDU 23,214,14,14,14,14,14,142,142,254
- 7900 VDU 23,215,127,113,113,112,112,112,0,0
- 7910 VDU 23,216,254,254,254,126,126,30,30,6
- 8170 :
- 8190 REM HUD CHARS.
- 8200 VDU 23,237,255,255,192,192,192,192,192,192 : REM TOP LEFT CORNER.
- 8210 VDU 23,238,255,255,3,3,3,3,3,3 : REM TOP RIGHT CORNER.
- 8220 VDU 23,239,192,192,192,192,192,192,255,255 : REM BOT LEFT CORNER.
- 8230 VDU 23,240,3,3,3,3,3,3,255,255 : REM BOT RIGHT CORNER.
- 8240 VDU 23,241,255,255,0,0,0,0,0,0 : REM TOP STRAIGHT.
- 8250 VDU 23,242,0,0,0,0,0,0,255,255 : REM BOT STRAIGHT.
- 8260 VDU 23,243,192,192,192,192,192,192,192,192 : REM LEFT STRAIGHT.
- 8270 VDU 23,244,3,3,3,3,3,3,3,3 : REM RIGHT STRAIGHT.
- 8280 :
- 8290 ENDPROC : REM END LOAD_CHARS.
- 8300 :
- 8400 DEF PROC_LOAD_VARS : REM **** LOAD_VARS *****
- 8410 REM GIVE COLOURS A NAME.
- 8411 COLBLACK% = 0
- 8412 COLRED% = 1
- 8413 COLGREEN% = 2
- 8414 COLYELLOW% = 3
- 8415 COLBLUE% = 4
- 8416 COLMAGENTA% = 5
- 8417 COLCYAN% = 6
- 8418 COLWHITE% = 7
- 8419 COLINTRED% = 9
- 8420 COLINTGREEN% = 10
- 8421 COLINTYELLOW% = 11
- 8422 COLINTBLUE% = 12
- 8423 COLINTMAGENTA% = 13
- 8424 COLINTCYAN% = 14
- 8425 COLINTWHITE% = 15
- 8450 mode% = 8 : REM SET MODE HERE.
- 8460 RT% = 31 : REM SET RIGHT TEXT.
- 8470 LT% = 2 : REM SET LEFT TEXT.
- 8480 T1X = 0 : REM TITLE TEXT AGON X.
- 8490 T1Y = 0 : REM TITLE TEXT AGON Y.
- 8500 :
- 8700 ENDPROC : REM END LOAD_VARS.
- 8800 :
- 9000 DEF PROC_DRAW_AGON(T1X,T1Y) : REM ****** DRAW_AGON ******
- 9010 :
- 9020 REM FROM CUSTOM CHARS DEFINED PREVIOUSLY.
- 9030 REM AGON.
- 9040 REM DISPLAY A (2x2) CHARS.
- 9060 PRINT TAB(T1X,T1Y);CHR$(201);CHR$(202)
- 9070 PRINT TAB(T1X,T1Y+1);CHR$(203);CHR$(204)
- 9080 REM DISPLAY G (2x2) CHARS.
- 9090 PRINT TAB(T1X+2,T1Y);CHR$(205);CHR$(206)
- 9100 PRINT TAB(T1X+2,T1Y+1);CHR$(207);CHR$(208)
- 9110 REM DISPLAY O (2x2) CHARS.
- 9120 PRINT TAB(T1X+4,T1Y);CHR$(209);CHR$(210)
- 9130 PRINT TAB(T1X+4,T1Y+1);CHR$(211);CHR$(212)
- 9140 REM DISPLAY N (2x2) CHARS.
- 9150 PRINT TAB(T1X+6,T1Y);CHR$(213);CHR$(214)
- 9160 PRINT TAB(T1X+6,T1Y+1);CHR$(215);CHR$(216)
- 9260 ENDPROC : REM END DRAW_AGON.
- 9270 :
- 9600 DEF PROC_DRAW_HUD : REM ***** DRAW_HUD *******
- 9610 :
- 9620 PRINT TAB(0,0);CHR$(237) : REM TL CORNER.
- 9630 FOR TB = 1 TO 38 : REM TOP BORDER.
- 9640 PRINT TAB(TB,0)CHR$(241)
- 9650 NEXT TB
- 9660 PRINT TAB(39,0)CHR$(238) : REM TR CORNER.
- 9670 FOR LB = 1 TO 27 : REM LEFT BORDER.
- 9680 PRINT TAB(0,LB)CHR$(243)
- 9690 NEXT LB
- 9700 FOR RB = 1 TO 27 : REM RIGHT BORDER.
- 9710 PRINT TAB(39,RB)CHR$(244)
- 9720 NEXT RB
- 9730 PRINT TAB(0,27);CHR$(239) : REM BL CORNER.
- 9740 FOR BB = 1 TO 38 : REM BOTTOM BORDER.
- 9750 PRINT TAB(BB,27)CHR$(242)
- 9760 NEXT BB
- 9770 PRINT TAB(39,27);CHR$(240) : REM BR CORNER.
- 10000 ENDPROC : REM END DRAW_HUD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement