--- title: "The Amazing 2068 Pix Fix" type: "article" slug: "the-amazing-2068-pix-fix" url: "http://localhost/article/the-amazing-2068-pix-fix/" markdown_url: "http://localhost/article/the-amazing-2068-pix-fix.md" published_at: "2022-06-05T02:05:36+00:00" modified_at: "2026-03-03T01:20:18+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Pix Fix is a program designed as an artists aid in creating computer art work. This program resembles MacDraw (for a lesser computer-ed.) to some degree. Pix Fix gives you the ability to zoom in on small sections of the screen and set or reset (Plot and Unplot) the individual bits in the screen display…" category: - name: "SyncWare News" slug: "syncware-news" taxonomy: "category" url: "http://localhost/category/periodicals/syncware-news/" post_tag: - 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/" indiv: - name: "John T. Nguyen" slug: "john-t-nguyen" taxonomy: "indiv" url: "http://localhost/indiv/john-t-nguyen/" publication: "SyncWare News" publication_r: id: 10245 title: "SyncWare News" type: "periodical" url: "http://localhost/periodical/syncware-news/" authors: "John T. Nguyen" volume: "3" issue: "2" issues_articles: - id: 38949 title: "SyncWare News v3 n2" type: "issue" url: "http://localhost/issue/syncware-news-v3-n2/" pages: "21-23" pubdate: "November/December 1985" archive_link: false volumeissue: "v3n2" article_media: - id: 64593 title: "Pix Fix" type: "computer_media" url: "http://localhost/computer_media/pix-fix/" --- # The Amazing 2068 Pix Fix Pix Fix is a program designed as an artists aid in creating computer art work. This program resembles MacDraw (for a lesser computer-ed.) to some degree. Pix Fix gives you the ability to zoom in on small sections of the screen and set or reset (Plot and Unplot) the individual bits in the screen display as you desire. ## Source Code: Pix Fix ``` 5 REM ______________________ \c \h \c \f PIX FIX \e \h \c \h \c BY John T. Nguyen \h \c 1000 Phillips Lane \h \c Louisville,KY 40213 \h \c (502) 368 - 7051 \h \c______________________\h 10 LET ST=1: GO TO 3015 40 POKE 23658,0: POKE 37295,1: LET A=8: RANDOMIZE USR 37334: POKE 23624,56: RETURN 50 POKE 37062,SR: REM ROW/PIX 55 POKE 37066,SC: REM COL/PIX 60 RANDOMIZE USR 37061 70 IF NOT PR THEN GO TO 114 113 INPUT "": PRINT #0;" ROW: ";SR+GR;" COLUMN: ";SC+GC 114 POKE (22528+32*GR+GC),36 115 REM 116 REM --- BIG PIX MODE --- 117 LET K$=INKEY$: IF K$="" THEN GO TO 117 118 POKE (22528+32*GR+GC),56 120 GO SUB 390 127 IF K$<"a" THEN GO TO 50 130 IF K$="d" THEN LET FL=0: BORDER 7 132 IF K$="s" THEN LET FL=17: BORDER 5 134 IF K$="a" THEN LET FL=14: BORDER 0 135 IF K$="p" THEN LET PR=1*(PR=0): BEEP .1,10: BEEP .1,15: INPUT "": IF NOT PR THEN RANDOMIZE USR 37334: GO TO 50 140 IF K$="u" THEN GO TO 300 150 IF K$="i" THEN LET GR=GR-1: IF GR<0 THEN LET GR=23 160 IF K$="j" THEN LET GC=GC-1: IF GC<0 THEN LET GC=31 170 IF K$="k" THEN LET GR=GR+1: IF GR>23 THEN LET GR=0 180 IF K$="l" THEN LET GC=GC+1: IF GC>31 THEN LET GC=0 185 IF K$="o" THEN RANDOMIZE USR 37237: GO TO 50 186 IF K$="m" THEN GO SUB 40: GO TO 800 187 IF K$="h" THEN GO SUB 40: GO TO 849 190 IF NOT FL THEN GO TO 70 200 POKE 36972,FL: POKE 37150,(SC+GC): POKE 37151,(SR+GR): RANDOMIZE USR 37149 210 POKE 37164,GC: POKE 37165,GR: RANDOMIZE USR 37163 215 IF GC<4 AND GR<3 THEN GO TO 70 220 POKE 37174,(GC*8): POKE 37175,(GR*8): POKE 37177,133+8*(FL=17): RANDOMIZE USR 37173: GO TO 70 290 REM --- SCREEN MODE --- 300 RANDOMIZE USR 37183: POKE 36972,21: GO SUB 314 301 LET K$=INKEY$: IF K$="" THEN GO TO 301 302 IF K$="u" THEN GO SUB 40: GO TO 50 303 IF K$="o" THEN RANDOMIZE USR 37237: GO TO 300 304 IF K$="p" THEN GO SUB 314: COPY : GO SUB 314 305 IF K$="m" THEN GO TO 820 306 IF K$="y" THEN RANDOMIZE USR 37415: GO TO 301 307 IF K$="h" THEN GO SUB 40: GO TO 849 308 IF K$<"a" THEN LET A=8: GO TO 311 309 LET K$=CHR$ (CODE K$-32): LET A=1 311 GO SUB 314: GO SUB 390: GO SUB 314: GO TO 301 312 REM 313 REM --- BOX ROUTINE --- 314 LET BC=SC-1: LET BR=SR-1: LET EC=SC+32: LET ER=SR+24 315 IF BC<0 OR EC>255 THEN POKE 37196,33: GO TO 330 320 POKE 37196,34 330 IF BC<0 THEN POKE 37198,0: GO TO 340 335 POKE 37198,BC 340 IF BR>=0 THEN POKE 37199,BR: RANDOMIZE USR 37195 345 IF ER<=255 THEN POKE 37199,ER: RANDOMIZE USR 37195 350 IF BR<0 OR ER>191 THEN POKE 37217,25: GO TO 360 355 POKE 37217,26 360 IF BR<0 THEN POKE 37220,0: GO TO 370 365 POKE 37220,BR 370 IF EC<=255 THEN POKE 37219,EC: RANDOMIZE USR 37216 375 IF BC>=0 THEN POKE 37219,BC: RANDOMIZE USR 37216 380 RETURN 388 REM --- GET KEY --- 390 IF K$="I" THEN LET SR=SR-A: IF SR<0 THEN BEEP .1,8: LET SR=0 395 IF K$="J" THEN LET SC=SC-A: IF SC<0 THEN BEEP .1,8: LET SC=0 400 IF K$="K" THEN LET SR=SR+A: IF SR>168 THEN BEEP .1,8: LET SR=168 405 IF K$="L" THEN LET SC=SC+A: IF SC>224 THEN BEEP .1,8: LET SC=224 410 RETURN 790 REM --- MENU --- 820 GO SUB 1020: PRINT AT 10,6;"PRESS :"''TAB 6;"\f M - FOR THIS SCREEN"'TAB 6;"\f H - FOR HELP SCREENS"'TAB 6;"\f C - TO CREATE PICTURE"'TAB 6;"\f L - TO LOAD PICTURE"'TAB 6;"\f S - TO SAVE PICTURE" 823 PRINT TAB 6;"\f X - TO CLEAR PICTURE"'TAB 6;"\f P - TO COPY TO PRINTER"'TAB 6;"\f Q - TO QUIT": GO SUB 999: PRINT AT 9,13;" MENU " 824 INPUT "": PRINT #0;" PICK OPTION OR PRESS " 825 LET K$=INKEY$: IF K$="" THEN GO TO 825 830 IF K$="h" THEN INPUT "": GO SUB 997: GO TO 850 831 IF K$="c" THEN GO TO 2000 832 IF K$="s" THEN IF ST THEN GO SUB 997: GO TO 1040 834 IF K$="l" THEN GO SUB 1450: CLS : GO TO 820 836 IF K$="p" THEN CLS : RANDOMIZE USR 37183: COPY : GO TO 820 837 IF K$="x" THEN INPUT "": PRINT #0;" ARE YOU SURE? (Y/N)": GO SUB 990: GO TO 824 839 IF K$="q" THEN CLS : POKE 23692,25: PRINT AT 21,0;"* TYPE TO CONTINUE OR VARIABLES WILL BE CLEARED FROM MEMORY.": FOR J=1 TO 19: PRINT : NEXT J: STOP 840 IF K$=CHR$ 13 THEN IF ST THEN GO SUB 40: GO TO 50 846 GO TO 825 847 REM 848 REM --- HELP SCREENS --- 849 GO SUB 1020 850 PRINT AT 10,1;""'TAB 2;"KEYS IN BIG PIX MODE :"''" \d HOLD DOWN "'" I & KEYS TO MOVE"'" \eJ L\f ENTIRE SCREEN."'" K"'" \g USE KEYS ALONE"'TAB 9;"TO MOVE CURSOR." 852 PRINT 'TAB 25;"Page 1"'#0;" PRESS ANY KEY TO CONTINUE": PLOT 67,100: DRAW 0,-96: PLOT 74,78: DRAW 116,0 860 GO SUB 999: PRINT AT 9,14;" HELP ": PAUSE 0: GO SUB 997 862 PRINT AT 11,5;"PRESS :"''TAB 5;"\f A - FOR DRAW MODE"'TAB 5;"\f S - FOR ERASE MODE"'TAB 5;"\f D - FOR NEUTRAL MODE"'TAB 5;"\f P - TO PRINT ROW/COLUMN"'TAB 5;"\f O - TO INVERT SCREEN" 864 PRINT TAB 5;"\f U - FOR SCREEN MODE"''TAB 25;"Page 2" 866 GO SUB 999: PRINT AT 9,14;" HELP ": PAUSE 0: GO SUB 997: INPUT "" 870 PRINT AT 10,1;""'TAB 2;"KEYS IN SCREEN MODE :"'" \d"'" I KEYS"'" \eJ L\f \f MOVE BOX (STEP 1)"'" K & "'" \g \f MOVE BOX (STEP 8)" 871 PRINT '" PRESS: Y - FOR ATTRIBUTES"'TAB 10;"U - FOR BIG PIX MODE" 873 PRINT TAB 25;"Page 3": PLOT 67,100: DRAW 0,-65: DRAW -67,0: PLOT 74,78: DRAW 108,0 876 GO SUB 999: PRINT AT 9,14;" HELP "'#0;" PRESS FOR MENU OR ": PAUSE 0 877 LET K$=INKEY$: IF K$="" THEN GO TO 877 878 IF K$="m" THEN CLS : GO TO 820 879 IF K$=CHR$ 13 THEN IF ST THEN GO SUB 40: GO TO 50 885 GO TO 877 980 REM ------ 990 IF INKEY$="y" THEN RANDOMIZE USR 37253: INPUT "": PRINT #0;TAB 13;"DONE": PAUSE 90: RETURN 991 IF INKEY$="n" THEN RETURN 992 GO TO 990 996 REM ------ 997 FOR J=9 TO 21: PRINT AT J,0;" ": NEXT J: RETURN 998 REM ------ 999 PLOT 0,100: DRAW 255,0: DRAW 0,-97: DRAW -255,0: DRAW 0,97: RETURN 1010 REM ------ 1020 CLS : BORDER 7: LET FL=0: RANDOMIZE USR 37349: PLOT 4,108: INK 7: DRAW 0,3: PLOT 5,107: DRAW 246,0: PLOT 252,108: DRAW 0,3: RANDOMIZE USR 37268: PLOT 252,112: INK 0: POKE 37295,1: RETURN 1030 REM --- SAVE PICTURE --- 1040 PRINT AT 11,3;"PRESS :"''" \f S - TO SAVE AS A SCREEN$ "''" \f L - TO SAVE FROM MEMORY" 1043 GO SUB 999: PRINT AT 9,13;" SAVE " 1045 LET K$=INKEY$: IF K$<>"s" AND K$<>"l" AND K$<>CHR$ 13 THEN GO TO 1045 1047 IF K$=CHR$ 13 THEN GO TO 820 1050 IF K$="l" THEN GO TO 1070 1053 FOR J=15 TO 11 STEP -1: PRINT AT J+1,3;" "'AT J,3;"\f SAVE AS A SCREEN$ ": PAUSE 5: NEXT J 1055 INPUT "BORDER COLOR? (0-7): "; LINE B$: IF B$="" THEN GO TO 820 1057 IF B$<"0" OR B$>"7" THEN GO TO 1055 1060 BORDER VAL B$: CLS : RANDOMIZE USR 37183: RANDOMIZE USR 37415: SAVE N$SCREEN$ : GO SUB 40: CLS : GO TO 820 1070 FOR J=15 TO 11 STEP -1: PRINT AT J+1,3;" "'AT J,3;"\f SAVE FROM MEMORY ": PAUSE 5: NEXT J 1075 PRINT AT 13,4;"PRESS :"''" \f 1 - TO SAVE 1/3 OF SCREEN"'" \f 2 - TO SAVE 2/3 OF SCREEN"'" \f 3 - TO SAVE ALL OF SCREEN" 1080 PLOT 0,60: DRAW 0,-50 1085 LET K$=INKEY$: IF K$<>"1" AND K$<>"2" AND K$<>"3" AND K$<>CHR$ 13 THEN GO TO 1085 1088 IF K$=CHR$ 13 THEN GO TO 820 1090 INPUT "": SAVE N$CODE 50000,2048*VAL K$ 1120 INPUT "": PRINT #0;" VERIFY CODES? (Y/N)" 1125 GO SUB 1400: IF INKEY$="n" THEN GO TO 820 1145 PRINT '"* VERIFYING :"'" """;N$;""" CODE 50000,";2048*VAL K$: VERIFY N$CODE : PRINT ' FLASH 1;"TURN OFF RECORDER": PAUSE 60: GO TO 820 1200 GO TO 1045 1400 REM --- VERIFY --- 1405 INPUT "": PRINT #0;" VERIFY CODES? (Y/N)" 1410 IF INKEY$<>"y" AND INKEY$<>"n" THEN GO TO 1410 1425 IF INKEY$="n" THEN RETURN 1430 CLS : PRINT "* REWIND TAPE AND PRESS PLAY TO VERIFY"' 1435 IF IN 254<>95 THEN GO TO 1435 1440 RETURN 1450 REM --- LOAD --- 1460 CLS : PRINT "* ENTER NAME OF PICTURE.": INPUT N$ 1465 IF N$="" THEN RETURN 1470 LET ST=1: PRINT '"* PRESS PLAY ON RECORDER.": GO SUB 1435: PRINT '"* LOADING :"'" """;N$;""" CODE 50000": LOAD N$CODE 50000: PRINT ' FLASH 1;"TURN OFF RECORDER": PAUSE 120: GO SUB 40: GO TO 50 1980 REM ------ 2000 INPUT "NAME OF PICTURE? ";N$: IF N$="" THEN GO TO 2000 2005 IF LEN N$>10 THEN GO TO 2000 2010 LET ST=1: GO SUB 40: GO TO 50 2970 REM 2980 REM --- PROGRAM STARTS HERE. 2990 CLEAR 36911: LOAD "pix.code"CODE 36912: CLS : PRINT AT 11,7; FLASH 1;"TURN OFF RECORDER": PAUSE 120 3000 LET N=47661: FOR J=1 TO 30: POKE (N+J),7: POKE (N+32+J),7: POKE (N+64+J),7: POKE (N+96+J),7: POKE (N+128+J),4: POKE (N+160+J),4 3005 POKE (N+192+J),5: POKE (N+224+J),5: POKE (N+256+J),7: NEXT J 3010 FOR J=0 TO 8: POKE (N+J*32),7: POKE (N+J*32+31),7: NEXT J 3013 LET N$="PICTURE": POKE 37295,0: LET ST=0 3015 POKE 23728,51: POKE 23729,146: RANDOMIZE USR 37361 3020 POKE 23658,0: LET FL=0: LET SR=87: LET SC=121: LET GR=11: LET GC=16: LET PR=0 3023 POKE 23658,0: POKE 23675,133: POKE 23676,144 3030 GO TO 820 9960 REM 9970 REM --- SAVE ROUTINE --- 9999 SAVE "pix fix" LINE 2990: SAVE "pix.code"CODE 36912,1544: CLS : PRINT "* REWIND TAPE AND PRESS PLAY TO VERIFY.": VERIFY "pix fix": VERIFY ""CODE ```