Advertisement
lovejoy777

AgonBootScreen

Feb 24th, 2024 (edited)
827
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ZXBasic 6.95 KB | Source Code | 0 0
  1.    10 REM ******************************
  2.    20 REM *         AGON LIGHT 2       *
  3.    30 REM *         BOOT SCREEN        *
  4.    40 REM *         VERSION 2.0        *
  5.    50 REM *      BY STEVE LOVEJOY      *
  6.    60 REM *   ICON BY ARNOLD MESZAROS  *
  7.    70 REM ******************************
  8.    80 :
  9.    90 DIM VDP_ARRAY(31) : DIM MOS_ARRAY(31)
  10.    95 ANYKEY%=INKEY(200) : REM DELAY TO MAKE SURE WE HAVE VERSION INFO ON SCREEN PFFT.
  11.   100 PROC_READ_CHARS(0,0,1)
  12.   110 PROC_READ_CHARS(0,1,2)
  13.   120 REM M% = 8 : BorM$ = "M" : GOTO 300 : REM UNCOMMENT TO SET YOUR DEFAULTS.
  14.   130 PRINT TAB(3,4) "MODE  0 = 80x60: 16 colours (640x480) 60hz"
  15.   140 PRINT TAB(3,5) "MODE  1 = 80x60:  4 colours (640x480) 60hz"
  16.   150 PRINT TAB(3,6) "MODE  2 = 80x60:  2 colours (640x480) 60hz"
  17.   160 PRINT TAB(3,7) "MODE  3 = 80x30: 64 colours (640x240) 60hz"
  18.   170 PRINT TAB(3,8) "MODE  4 = 80x30: 16 colours (640x240) 60hz"
  19.   180 PRINT TAB(3,9) "MODE  5 = 80x30:  4 colours (640x240) 60hz"
  20.   190 PRINT TAB(3,10) "MODE  6 = 80x30:  2 colours (640x240) 60hz"
  21.   200 PRINT TAB(3,11) "MODE  7 = 40x25: 16 colours (320x240) 60hz (orig bbc teletext mode)"
  22.   210 PRINT TAB(3,12) "MODE  8 = 40x30: 64 colours (320x240) 60hz"
  23.   220 PRINT TAB(3,13) "MODE  9 = 40x30: 16 colours (320x240) 60hz"
  24.   230 PRINT TAB(3,14) "MODE 10 = 40x30:  4 colours (320x240) 60hz"
  25.   240 PRINT TAB(3,15) "MODE 11 = 40x30:  2 colours (320x240) 60hz"
  26.   250 PRINT TAB(3,16) "MODE 12 = 40X25: 64 colours (320x200) 70hz"
  27.   260 :
  28.   270 COLOUR 2
  29.   280 INPUT TAB(3,20)"PICK A SCREEN MODE"; M%
  30.   290 INPUT TAB(3,20)"B FOR BASIC PROMPT (>) or M FOR MOS PROMPT (*) "; BorM$
  31.   300 PROC_LOAD_VARS
  32.   310 PROC_LOAD_LOGO
  33.   320 PROC_DRAW_LOGO
  34.   330 PROC_INFO_TEXT
  35.   340 PROC_DRAW_COLOUR_PALETTE
  36.   350 PROC_READYUP
  37.   360 :
  38.   370 NEW : REM CLEAR PROGRAM FROM MEMORY.
  39.   380 REM END OF PROGRAM.
  40.   390 :
  41.   500 DEF PROC_DRAW_LOGO : REM **** DRAW_LOGO ****
  42.   510 REM DISPLAY THE LOGO LINE BY LINE.
  43.   520 COLOUR 14 : IF C% = 2 THEN COLOUR 14 + 1
  44.   530 PRINT TAB(1,1);"  ";CHR$(200);CHR$(201);"   ";
  45.   540 PRINT TAB(1,2);"  ";CHR$(202);CHR$(203);"   ";
  46.   550 PRINT TAB(1,3);" ";CHR$(204);CHR$(205);CHR$(206);CHR$(207);"  ";
  47.   560 PRINT TAB(1,4);CHR$(208);CHR$(209);CHR$(210);CHR$(211);CHR$(212);CHR$(213);" ";
  48.   570 PRINT TAB(1,5);CHR$(214);CHR$(215);CHR$(216);CHR$(209);CHR$(217);CHR$(218);" ";
  49.   580 PRINT TAB(1,6);CHR$(219);CHR$(220);CHR$(221);CHR$(222);CHR$(223);CHR$(224);" ";
  50.   590 PRINT TAB(1,7);CHR$(225);CHR$(226);CHR$(227);CHR$(228);CHR$(229);CHR$(230);" ";
  51.   600 PRINT TAB(1,8);CHR$(231);CHR$(232);CHR$(233);CHR$(234);CHR$(235);CHR$(236);" ";
  52.   610 ENDPROC : REM END PROC_DRAW_LOGO.
  53.   620 :
  54.   630 DEF PROC_INFO_TEXT : REM **** INFORMATION_TEXT ****
  55.   640 REM DISPLAY INFORMATION SCREEN TEXT AND INFO LINE BY LINE.
  56.   650 PRINT TAB(8,1);"AGON LIGHT2 with eZ80 CPU"
  57.   660 PROC_PRINT_CHAR_ARRAY(8,3,1)
  58.   670 PROC_PRINT_CHAR_ARRAY(8,4,2)
  59.   680 PRINT TAB(8,5);"SCREEN MODE: ";M%;" (";W%;"x";H%;")"
  60.   690 PRINT TAB(8,6);"COLOURS: ";C%
  61.   700 PRINT TAB(8,7);"";
  62.   710 *VERSION
  63.   720 PRINT TAB(8,8);"BASIC Bytes Free: ";F%
  64.   730 :
  65.   740 ENDPROC : REM END PROC_INFO_TEXT.
  66.   750 :
  67.   790 DEF PROC_DRAW_COLOUR_PALETTE : REM **** COLOUR_PALATTE ****
  68.   800 REM DISPLAY THE CURRENT COLOUR PALLETTE.
  69.   810 VDU 23,238,255,255,255,255,255,255,255,255
  70.   820 :
  71.   830 VDU 31,0,10
  72.   840 FOR PC% = 0 TO C% -1
  73.   850 COLOUR PC%
  74.   860 IF PC% <= 31 THEN PRINT ;CHR$(238);
  75.   870 NEXT PC%
  76.   880 :
  77.   890 IF C% >= 32 THEN VDU 10 : VDU 13
  78.   900 FOR PC% = 31 TO C% -1
  79.   910 COLOUR PC%
  80.   920 IF PC% > 31 THEN PRINT ;CHR$(238);
  81.   930 NEXT PC%
  82.   940 ENDPROC : REM END PROC_DRAW_COLOUR_PALETTE.
  83.   950 :
  84.   960 DEF PROC_READYUP : REM **** READYUP ****
  85.   970 COLOUR BG%: COLOUR FG%
  86.   980 REM MOVE CURSOR DOWN AND LEFT.
  87.   990 VDU 10 : VDU 13 : VDU 10
  88.  1000 :
  89.  1010 REM SET READY PROMPT.
  90.  1020 PRINT "AGON READY."
  91.  1030 IF BorM$ = "M" OR BorM$ = "m" THEN *BYE
  92.  1040 :
  93.  1050 ENDPROC : REM END PROC_READYUP.
  94.  1060 :
  95.  1070 DEF PROC_LOAD_LOGO : REM **** LOAD LOGO ****
  96.  1100 REM AGON LIGHT "Sitting Kung Fu man" LOAD LOGO CHARS.
  97.  1110 :
  98.  1120 VDU 23,200,7,15,31,31,31,31,31,63
  99.  1130 VDU 23,201,192,224,240,240,240,240,240,248
  100.  1140 VDU 23,202,63,63,31,15,15,15,7,7
  101.  1150 VDU 23,203,248,248,240,224,224,224,192,192
  102.  1160 VDU 23,204,0,1,7,15,31,63,127,127
  103.  1170 VDU 23,205,7,199,199,195,227,225,240,240
  104.  1180 VDU 23,206,192,195,195,135,135,15,15,31
  105.  1190 VDU 23,207,0,0,224,240,248,252,252,254
  106.  1200 VDU 23,208,0,0,1,1,3,3,7,7
  107.  1210 VDU 23,209,255,255,255,255,255,255,255,255
  108.  1220 VDU 23,210,248,248,248,240,224,225,193,195
  109.  1230 VDU 23,211,63,63,127,255,255,255,255,255
  110.  1240 VDU 23,212,255,255,255,255,255,255,223,223
  111.  1250 VDU 23,213,0,0,128,128,128,192,192,192
  112.  1260 VDU 23,214,7,7,15,15,15,15,15,31
  113.  1270 VDU 23,215,255,247,231,231,231,199,135,130
  114.  1280 VDU 23,216,199,135,135,143,15,15,31,31
  115.  1290 VDU 23,217,207,207,207,199,199,195,129,1
  116.  1300 VDU 23,218,224,224,224,240,240,240,240,240
  117.  1310 VDU 23,219,31,31,31,31,15,15,15,31
  118.  1320 VDU 23,220,128,128,128,128,129,143,135,143
  119.  1330 VDU 23,221,31,63,15,0,128,224,224,195
  120.  1340 VDU 23,222,252,240,128,0,3,7,35,243
  121.  1350 VDU 23,223,1,1,1,129,193,225,241,241
  122.  1360 VDU 23,224,240,240,240,240,240,240,240,240
  123.  1370 VDU 23,225,31,31,3,3,3,3,7,15
  124.  1380 VDU 23,226,223,255,255,255,255,255,254,254
  125.  1390 VDU 23,227,199,135,135,7,15,15,31,31
  126.  1400 VDU 23,228,241,241,241,248,248,248,248,248
  127.  1410 VDU 23,229,253,255,255,255,255,255,255,127
  128.  1420 VDU 23,230,240,248,248,224,224,224,240,248
  129.  1430 VDU 23,231,31,63,63,63,31,31,15,0
  130.  1440 VDU 23,232,254,252,252,252,248,248,224,0
  131.  1450 VDU 23,233,31,60,32,0,0,0,0,0
  132.  1460 VDU 23,234,120,28,12,12,0,0,0,0
  133.  1470 VDU 23,235,127,127,127,127,127,63,15,0
  134.  1480 VDU 23,236,248,252,252,252,252,248,240,0
  135.  1490 VDU 23,237,255,254,252,248,240,224,192,128
  136.  1500 ENDPROC : REM END PROC_LOAD_LOGO
  137.  2000 :
  138.  2010 DEF PROC_LOAD_VARS : REM **** LOAD VARS ****
  139.  2020 BG% = 4 + 128
  140.  2030 FG% = 15
  141.  2040 MODE M%
  142.  2050 *FX 19 : REM VSYNC DELAYS TO MAKE SURE WE HAVE MODE LOADED.
  143.  2060 *FX 19
  144.  2070 *FX 19
  145.  2080 COLOUR BG%: COLOUR FG%: CLS
  146.  2090 W% = FN_GETBYTE_VDP(&13)
  147.  2100 H% = FN_GETBYTE_VDP(&14)
  148.  2110 C% = FN_GETBYTE_VDP(&15)
  149.  2120 F% = HIMEM-LOMEM
  150.  2130 :
  151.  2140 ENDPROC: REM END PROC_LOAD_VARS.
  152.  2150 :
  153.  2590 REM READ CHARS FROM SCREEN.
  154.  2600 DEF PROC_READ_CHARS(X%,Y%,Z%)
  155.  2610 FOR CC% = 0 TO 30
  156.  2620 VDU 23,0,&83,X%+CC%;Y%;
  157.  2630 *FX 19
  158.  2640 CH% = FN_GETWORD_VDP(&09)
  159.  2650 IF Z% = 1 THEN VDP_ARRAY(CC%) = CH%
  160.  2660 IF Z% = 2 THEN MOS_ARRAY(CC%) = CH%
  161.  2670 NEXT CC%
  162.  2680 ENDPROC: REM END PROC_READ_CHARS.
  163.  2690 :
  164.  3000 DEF PROC_PRINT_CHAR_ARRAY(X1%,Y1%,Z1%)
  165.  3010 VDU 31,X1%,Y1%
  166.  3020 FOR I% = 0 TO 30
  167.  3030 IF Z1% = 1 THEN PRINT CHR$(VDP_ARRAY(I%));
  168.  3040 IF Z1% = 2 THEN PRINT CHR$(MOS_ARRAY(I%));
  169.  3050 NEXT I%
  170.  3060 ENDPROC: REM END PROC_PRINT_CHAR_ARRAY.
  171.  3070 :
  172.  3500 REM GET SYSTEM VARS.
  173.  3510 DEF FN_GETBYTE_VDP(V%)
  174.  3520 A% = &A0
  175.  3530 L%=V%
  176.  3540 = USR(&FFF4)
  177.  3550 :
  178.  3560 DEF FN_GETWORD_VDP(V%)
  179.  3570 = FN_GETBYTE_VDP(V%) +256 *FN_GETBYTE_VDP(V% +1)
  180.  3580 :
  181.  
  182.  
Tags: AgonLight2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement