Authors
Publication
Pub Details
Date
Pages
BASIC Terms
Using this amazing Screen Splitting utility routine enables you to save a SCREEN$ in one of 30 different ways, combinations of top pixels, middle pixels, bottom pixels, and attributes.
To show you what good value we offer you, this is two programs for the price of one. The main program lets you LOAD a screen and SAVE if in the different combinations. The ORGANIZER program shows you the program lines you must include in your programs to LOAD the screen bits back again. The two totally independent programs are menu driven, so just follow the screen instructions.
NOTE: The loading of the screen bits is done in conjunction with the Loader Code program — a few bits of hex that you can load in with a hex loader or just bang them into memory with a Multiface.
LOADER CODE
Here is the scrap of machine code which does some of the work. Bang it through the Hex Loader and save it as SAVE *LOADCODE CODE 60000,16.
60000: 373EFFDD21004811=715
60009: 0008CD5605C90000=505
SCREEN SPLITTER
Here is the main program. Just type it in and save it a AVE *SPLITTER’ LINE 9030.
1 REM BY CRAIG TURNER
2 REM
4 REM AND RICHARD FAWLEY REM FOR YS 1987
5 REM SCREENS SAVER REM DON'T CHANGE LINE NUMBERS. REM TO RE-RUN, GOTO 9030
11 POKE 23658,8
12 BORDER 0: PAPER 0: INK 7: CLS
13 FOR X=5 TO 17
15 PRINT AT X,7;
16 NEXT X
17 LET X=8
18 PRINT #0; AT 0,0:"BY CRAIG TURNER 2 RICHARD FAWLEY"
19 PRINT AT 2,7;"LOADING DEVICE :-";MDV
20 PRINT AT 6,7;OVER 1;"MAIN MENU"
30 PRINT AT 12,7;OVER 1;"ATTRIBUTE SAVING"
40 PRINT AT 8,7;OVER 1;"LOADING SCREEN$"
50 PRINT AT 10,7;OVER 1;"SCREEN$ SAVING"
55 PRINT AT 14,7;OVER 1;"PRINT SCREEN$"
57 PRINT AT 16,7;OVER 1;"CHANGE DEVICE"
60 PRINT AT X,7;INK 5;OVER 1;"
70 IF INKEY$="6" THEN PRINT AT X,7;OVER 1;INK 7;" ": LET X=X+2: IF X>16 THEN LET X=8
80 IF INKEY$="7" THEN PRINT AT X,7;OVER 1;INK 7;" ": LET X=X-2: IF X<8 THEN LET X=16
90 IF INKEY$="0" THEN LET goto=X*100: GO TO goto
100 GO TO 60
790 STOP
800 REM LOADING A SCREEN$
810 CLS: PRINT AT 0,10;"LOADING"
820 INPUT "MDV or TAPE (M/T) ";D$
830 IF D$="M" THEN CAT MDV: INPUT "NAME ";N$: LOAD *"M";MDV;N$CODE 50000
840 IF D$="T" THEN INPUT "NAME ";N$: LOAD N$CODE 50000
900 GO TO 1
1000 REM SCREEN$ SAVING
1001 CLS
1010 FOR X=3 TO 19
1020 PRINT AT X,7;" "
1028 NEXT X: LET X=6
1030 PRINT AT 4,7;OVER 1;" SCREEN$ MENU "
1040 PRINT AT 6,7;OVER 1;" NORMAL "
1040 PRINT AT 6,7; OVER 1;" NORMAL "
1050 PRINT AT 8,7; OVER 1;" TOP HALF "
1060 PRINT AT 10,7; OVER 1;" LOWER HALF "
1070 PRINT AT 12,7; OVER 1;" TOP THIRD "
1080 PRINT AT 14,7; OVER 1;" MIDDLE THIRD "
1090 PRINT AT 16,7; OVER 1;" LOWER THIRD "
1095 PRINT AT 18,7; OVER 1;" MAIN MENU "
1100 PRINT AT X,7; OVER 1; INK 5;'
1110 IF INKEY$="6" THEN PRINT AT X,7; OVER 1; INK 7;" ": LET X=X+2: IF X>18 THEN LET X=6
1120 IF INKEY$="7" THEN PRINT AT X,7; OVER 1; INK 7;" ": LET X=X-2: IF X<6 THEN LET X=18
1130 IF INKEY$="0" THEN LET goto=X*500: GO TO goto
1140 GO TO 1100
1200 REM ATTRIBUTES
1210 CLS
1220 FOR X=7 TO 10
1230 PRINT AT X,7;" "
1240 NEXT X
1250 PRINT AT 8,7; OVER 1;" ATTRIBUTE MENU "
1260 PRINT AT 10,7; OVER 1;" SAVE "
1270 PRINT AT 12,7; OVER 1;" MAIN MENU "
1280 LET X=10
1290 PRINT AT X,7; OVER 1; INK 5;" "
1300 IF INKEY$="7" THEN PRINT AT X,7; OVER 1; INK 7;" ": LET X=X-2: IF X<10 THEN LET X=10
1310 IF INKEY$="6" THEN PRINT AT X,7; OVER 1; INK 7;" ": LET X=X+2: IF X>12 THEN LET X=12
1320 IF INKEY$="0" THEN LET goto=X*820: GO TO goto
1360 GO TO 1290
1400 REM PRINT SCREEN$
1404 CLS
1410 RANDOMIZE USR 61440
1417 PAUSE 100
1420 PRINT #0; AT 0,2; FLASH 1;"SPACE TO RETURN TO MAIN MENU": PAUSE 90: RANDOMIZE USR 61440
1422 IF INKEY$=" " THEN GO TO 1
1430 GO TO 1422
1600 REM DEVICE FORMAT
1605 CLS
1610 PRINT AT 3,6;"PRESENT DEVICE :-";MDV
1620 INPUT "CHANGE (Y/N) ";D$
1630 IF D$="N" THEN GO TO 1
1640 INPUT "CHANGE TO WHAT ";MDV
1645 IF MDV<1 OR MDV>8 THEN GO TO 1640
1650 GO TO 1
3000 REM NORMAL SAVE
3010 CLS: PRINT "SAVING THE WHOLE SCREEN."
3020 RANDOMIZE USR 61440: POKE 60003,0: POKE 60004,27: POKE 60007,80: POKE 60008,195: RANDOMIZE USR 60000
3030 PRINT #0; AT 0,1; FLASH 1;"SAVING COMPLETE - PRESS A KEY"
3040 PAUSE 200: RANDOMIZE USR 61440: PAUSE 0: GO TO 1
4000 REM SAVE TOP HALF
4010 CLS: PRINT "SAVING THE TOP HALF OF SCREEN"
4020 RANDOMIZE USR 61440: POKE 60003,0: POKE 60004,12: POKE 60007,80: POKE 60008,195: RANDOMIZE USR 60000
4030 PRINT #0; AT 0,1; FLASH 1;"SAVING COMPLETE - PRESS A KEY"
4040 PAUSE 200: RANDOMIZE USR 61440: PAUSE 0: GO TO 1
4500 REM SAVE LOWER HALF
4510 CLS: PRINT "SAVING THE LOWER HALF OF SCREEN"
4520 RANDOMIZE USR 61440: POKE 60003,0: POKE 60004,12: POKE 60007,80: POKE 60008,207: RANDOMIZE USR 60000
4530 PRINT #0; AT 0,1; FLASH 1;"SAVING COMPLETE - PRESS A KEY"
4540 PAUSE 200: RANDOMIZE USR 61440: PAUSE 0: GO TO 1
5000 GOTO 4500
6000 CLS: PRINT "SAVING THE TOP THIRD OF SCREEN"
6010 RANDOMIZE USR 61440: POKE 60003,0: POKE 60004,8: POKE 60007,80: POKE 60008,195: RANDOMIZE USR 60000
6020 PRINT #0; AT 0,1; FLASH 1;"SAVING COMPLETE - PRESS A KEY"
6030 PAUSE 200: RANDOMIZE USR 61440: PAUSE 0: GO TO 1
7000 REM SAVING MIDDLE THIRD
7010 CLS: PRINT "SAVING THE MIDDLE THIRD OF SCREEN"
7020 RANDOMIZE USR 61440: POKE 60003,0: POKE 60004,8: POKE 60007,80: POKE 60008,203: RANDOMIZE USR 60000
7030 PRINT #0; AT 0,1; FLASH 1;"SAVING COMPLETE - PRESS A KEY"
7040 PAUSE 200: RANDOMIZE USR 61440: PAUSE 0: GO TO 1
Products
Media
Image Gallery
Source Code
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.