--- title: "Screen Splitter" type: "article" slug: "screen-splitter" url: "http://localhost/article/screen-splitter/" markdown_url: "http://localhost/article/screen-splitter.md" published_at: "2024-07-05T13:54:45+00:00" modified_at: "2026-08-01T11:50:07+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "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…" category: - name: "The Data Expansion" slug: "the-data-expansion" taxonomy: "category" url: "http://localhost/category/periodicals/the-data-expansion/" post_tag: - name: "Best of Timex/Sinclair 2068 Articles and Documents" slug: "ts2068best" taxonomy: "post_tag" url: "http://localhost/tag/ts2068best/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" - name: "Type-in program" slug: "type-in-program" taxonomy: "post_tag" url: "http://localhost/tag/type-in-program/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" publication_r: id: 50143 title: "The Data Expansion" type: "periodical" url: "http://localhost/periodical/the-data-expansion/" authors: "Craig Turner, Richard Fawley" volume: "4" issue: "12" issues_articles: - id: 50240 title: "The D/FW Data Expansion v4 n12" type: "issue" url: "http://localhost/issue/the-data-expansion-v4-n12/" pages: "22-24" pubdate: "December 1987" related_articles: - id: 60168 title: "Screen Splitter – Continued" type: "article" url: "http://localhost/article/screen-splitter-continued/" - id: 60170 title: "The Organizer" type: "article" url: "http://localhost/article/the-organizer/" archive_link: false --- # Screen Splitter 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 ```