Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 10 REM ******************************
- 20 REM * AGON LIGHT 2 *
- 30 REM * BBC BASIC TEMPLATE *
- 40 REM * BBC BASIC MODE 8 *
- 50 REM * C/W RESET ORIG SCREEN *
- 60 REM * BY STEVE LOVEJOY *
- 70 REM ******************************
- 80 :
- 90 REM MAIN SETUP.
- 100 CLEAR : REM clear memory.
- 110 :
- 120 PROC_LOAD_VARS : REM CALL LOAD_VARS.
- 130 PROC_GET_ORIGINALS : REM CALL GET_ORIGINALS.
- 140 PROC_INITIALIZE_SCREEN : REM CALL INIT_SCREEN.
- 150 PROC_MAIN_LOOP : REM CALL MAIN_LOOP.
- 160 :
- 1000 DEF PROC_MAIN_LOOP : REM ** MAIN LOOP **
- 1010 COLOUR COL_YELLOW% : REM CHANGE text colour.
- 1020 PRINT TAB(24,20)"HELLO WORLD!" : REM PRINT at (x,y).
- 1030 PRINT TAB(22,22)"PRESS X TO EXIT" : REM PRINT at (x,y).
- 1040 A%=INKEY(0) : REM GET keyboard input.
- 1050 IF A%=120 OR A%=88 THEN PROC_CHECK_EXIT : REM press X to exit.
- 1060 PROC_MAIN_LOOP : REM loop back to start of MAIN_LOOP.
- 3000 ENDPROC : REM END PROC_MAIN_LOOP.
- 3010 :
- 4000 DEF PROC_GET_ORIGINALS : REM ** GET_ORIGINALS **
- 4010 OM% = FN_GETBYTE_VDP(&27) : REM GET original Screen Mode.
- 4020 VDU 23,230,255,255,255,255,255,255,255,255 : REM CREATE new filled char with original colours.
- 4030 PRINT TAB(0,0);CHR$(230); : REM PRINT new char top left.
- 4040 OTFC% = POINT(4,1015) : REM GET original text fg colour.
- 4050 VDU 127 : REM DELETE new char to get bg colour.
- 4060 OTBC% = POINT(4,1015) : REM GET original text bg colour.
- 4070 ENDPROC : REM END PROC_GET_ORIGINALS.
- 4080 :
- 5500 DEF PROC_INITIALIZE_SCREEN : REM ** INITIALIZE_SCREEN **
- 5510 MODE 0 : REM SETS new screen mode.
- 5520 CLS : REM clear text screen.
- 5530 CLG : REM clear graphics screen.
- 5540 PROC_HIDE_CURSOR
- 5550 ENDPROC : REM END PROC_INITIALIZE_SCREEN.
- 5560 :
- 6000 DEF PROC_HIDE_CURSOR : REM ** HIDE_CURSOR **
- 6010 VDU 23,1,0;0;0;0;
- 6020 ENDPROC
- 6030 :
- 6040 DEF PROC_SHOW_CURSOR : REM ** SHOW_CURSOR **
- 6050 VDU 23,1,1;0;0;0;
- 6060 ENDPROC
- 6070 :
- 8000 DEF PROC_LOAD_VARS : REM ** LOAD_VARS **
- 8010 REM NAME colours, add 128 for background.
- 8020 COL_BLACK% = 0
- 8030 COL_RED% = 1
- 8040 COL_GREEN% = 2
- 8050 COL_YELLOW% = 3
- 8060 COL_BLUE% = 4
- 8070 COL_MAGENTA% = 5
- 8080 COL_CYAN% = 6
- 8090 COL_WHITE% = 7
- 8100 COL_INTRED% = 9
- 8110 COL_INTGREEN% = 10
- 8120 COL_INTYELLOW% = 11
- 8130 COL_INTBLUE% = 12
- 8140 COL_INTMAGENTA% = 13
- 8150 COL_INTCYAN% = 14
- 8160 COL_INTWHITE% = 15
- 8500 ENDPROC : REM END LOAD_VARS.
- 8510 :
- 8600 DEF PROC_CHECK_EXIT : REM ** CHECK EXIT **
- 8610 PRINT TAB(19,24);"Quit? Press Y to confirm"
- 8620 Y$=GET$
- 8630 IF Y$="y" OR Y$= "Y" THEN PROC_RESET_ORIGINALS
- 8640 ENDPROC : REM END PROC_CHECK_EXIT
- 8650 :
- 9000 DEF PROC_RESET_ORIGINALS : REM ** RESET_ORIGINALS **
- 9010 VDU 20 : REM RESET logical colours to default colours.
- 9020 MODE OM% : REM SET original screen mode.
- 9030 COLOUR OTFC% : REM SET original text fg colour.
- 9040 COLOUR OTBC% + 128 : REM SET original text bg colour.
- 9050 PROC_SHOW_CURSOR : REM reset cursor.
- 9060 CLS : REM clear screen to SET original colours.
- 9070 P."GOODBYE!" : REM print to screen to test restore function.
- 9080 END : REM END program.
- 9090 REM ENDPROC : REM END RESET_ORIGINALS
- 9100 :
- 9500 REM GET sysvar function for original screen mode.
- 9510 DEF FN_GETBYTE_VDP(V%): A% = &A0: L%=V%: = USR(&FFF4)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement