Advertisement
lovejoy777

ReturnOriginals

Mar 3rd, 2024
1,778
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ZXBasic 3.57 KB | Source Code | 0 0
  1.    10 REM ******************************
  2.    20 REM *        AGON LIGHT 2        *
  3.    30 REM *     BBC BASIC TEMPLATE     *
  4.    40 REM *      BBC BASIC MODE 8      *
  5.    50 REM *    C/W RESET ORIG SCREEN   *
  6.    60 REM *      BY STEVE LOVEJOY      *
  7.    70 REM ******************************
  8.    80 :
  9.    90 REM MAIN SETUP.
  10.   100 CLEAR : REM clear memory.
  11.   110 :
  12.   120 PROC_LOAD_VARS             : REM CALL LOAD_VARS.
  13.   130 PROC_GET_ORIGINALS         : REM CALL GET_ORIGINALS.
  14.   140 PROC_INITIALIZE_SCREEN     : REM CALL INIT_SCREEN.
  15.   150 PROC_MAIN_LOOP             : REM CALL MAIN_LOOP.
  16.   160 :
  17.  1000 DEF PROC_MAIN_LOOP         : REM ** MAIN LOOP **
  18.  1010 COLOUR COL_YELLOW%         : REM CHANGE text colour.
  19.  1020 PRINT TAB(24,20)"HELLO WORLD!"    : REM PRINT at (x,y).
  20.  1030 PRINT TAB(22,22)"PRESS X TO EXIT" : REM PRINT at (x,y).
  21.  1040 A%=INKEY(0)                : REM GET keyboard input.
  22.  1050 IF A%=120 OR A%=88 THEN PROC_CHECK_EXIT : REM press X to exit.
  23.  1060 PROC_MAIN_LOOP             : REM loop back to start of MAIN_LOOP.
  24.  3000 ENDPROC : REM END PROC_MAIN_LOOP.
  25.  3010 :
  26.  4000 DEF PROC_GET_ORIGINALS     : REM ** GET_ORIGINALS **
  27.  4010 OM% = FN_GETBYTE_VDP(&27)  : REM GET original Screen Mode.
  28.  4020 VDU 23,230,255,255,255,255,255,255,255,255 : REM CREATE new filled char with original colours.
  29.  4030 PRINT TAB(0,0);CHR$(230);  : REM PRINT new char top left.
  30.  4040 OTFC% = POINT(4,1015)      : REM GET original text fg colour.
  31.  4050 VDU 127                    : REM DELETE new char to get bg colour.
  32.  4060 OTBC% = POINT(4,1015)      : REM GET original text bg colour.
  33.  4070 ENDPROC : REM END PROC_GET_ORIGINALS.
  34.  4080 :
  35.  5500 DEF PROC_INITIALIZE_SCREEN : REM ** INITIALIZE_SCREEN **
  36.  5510 MODE 0                     : REM SETS new screen mode.
  37.  5520 CLS                        : REM clear text screen.
  38.  5530 CLG                        : REM clear graphics screen.
  39.  5540 PROC_HIDE_CURSOR
  40.  5550 ENDPROC : REM END PROC_INITIALIZE_SCREEN.
  41.  5560 :
  42.  6000 DEF PROC_HIDE_CURSOR       : REM ** HIDE_CURSOR **
  43.  6010 VDU 23,1,0;0;0;0;
  44.  6020 ENDPROC
  45.  6030 :
  46.  6040 DEF PROC_SHOW_CURSOR       : REM ** SHOW_CURSOR **
  47.  6050 VDU 23,1,1;0;0;0;
  48.  6060 ENDPROC
  49.  6070 :
  50.  8000 DEF PROC_LOAD_VARS : REM ** LOAD_VARS **
  51.  8010 REM NAME colours, add 128 for background.
  52.  8020 COL_BLACK% = 0
  53.  8030 COL_RED% = 1
  54.  8040 COL_GREEN% = 2
  55.  8050 COL_YELLOW% = 3
  56.  8060 COL_BLUE% = 4
  57.  8070 COL_MAGENTA% = 5
  58.  8080 COL_CYAN% = 6
  59.  8090 COL_WHITE% = 7
  60.  8100 COL_INTRED% = 9
  61.  8110 COL_INTGREEN% = 10
  62.  8120 COL_INTYELLOW% = 11
  63.  8130 COL_INTBLUE% = 12
  64.  8140 COL_INTMAGENTA% = 13
  65.  8150 COL_INTCYAN% = 14
  66.  8160 COL_INTWHITE% = 15
  67.  8500 ENDPROC : REM END LOAD_VARS.
  68.  8510 :
  69.  8600 DEF PROC_CHECK_EXIT : REM ** CHECK EXIT **
  70.  8610 PRINT TAB(19,24);"Quit? Press Y to confirm"
  71.  8620 Y$=GET$
  72.  8630 IF Y$="y" OR Y$= "Y" THEN PROC_RESET_ORIGINALS
  73.  8640 ENDPROC : REM END PROC_CHECK_EXIT
  74.  8650 :
  75.  9000 DEF PROC_RESET_ORIGINALS : REM ** RESET_ORIGINALS **
  76.  9010 VDU 20               : REM RESET logical colours to default colours.
  77.  9020 MODE OM%             : REM SET original screen mode.
  78.  9030 COLOUR OTFC%         : REM SET original text fg colour.
  79.  9040 COLOUR OTBC% + 128   : REM SET original text bg colour.
  80.  9050 PROC_SHOW_CURSOR     : REM reset cursor.
  81.  9060 CLS                  : REM clear screen to SET original colours.
  82.  9070 P."GOODBYE!"         : REM print to screen to test restore function.
  83.  9080 END                  : REM END program.
  84.  9090 REM ENDPROC : REM END RESET_ORIGINALS
  85.  9100 :
  86.  9500 REM GET sysvar function for original screen mode.
  87.  9510 DEF FN_GETBYTE_VDP(V%): A% = &A0: L%=V%: = USR(&FFF4)
Tags: AGON LIGHT2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement