Products: Pixel Sketch and Graphics Editor
Developer(s): Stan Lemke
Date: 1985
Type: Program
Platform(s): TS 2068
Graphics design program that works with the standard, extended color and high resolution video modes.
Appears on
Library tape of the Indiana Sinclair Timex User’s Group.
Related Products
Graphics design program that works with the standard, extended color and high resolution video modes. Uses joystick and simple key commands to draw and edit graphic designs.
Gallery
Source Code
10 REM Pixel Sketck and Graphic Editor v 2.0\* by S D Lemke 1985 2144 White Oak Wichita, KS 67207 19 PRINT AT VAL "19",NOT PI;" ": LOAD "PS/GE C"CODE 20 DIM a$(2,PI): LET a$(SGN PI,SGN PI TO PI)="On ": LET a$(VAL "2",VAL "1" TO PI)="Off": PAPER VAL "1": BORDER VAL "1": INK VAL "7": CLS : PRINT AT VAL "10",VAL "10";"Stop Tape": FOR j=SGN PI TO PI: FOR i=VAL "20" TO -20 STEP -1: BEEP .001,i+5*j: NEXT i: FOR i=-20 TO VAL "20" STEP VAL "2": BEEP .01,i+VAL "5"*j: NEXT i: NEXT j: GO SUB VAL "9990": PRINT AT VAL "10",NOT PI;"Press 0 for Standard Video Mode 1 for Extended Color Mode 2 for High Resolution Mode" 21 PAUSE NOT PI: LET p$=INKEY$: IF p$<"0" OR p$>"2" THEN GO TO VAL "21" 23 LET mode=VAL p$: POKE VAL "57988",mode: POKE VAL "23609",VAL "10": LET cnct=NOT PI: RANDOMIZE USR VAL "48488": POKE VAL "23606",VAL "84": POKE VAL "23607",VAL "185" 24 IF mode=VAL "2" THEN POKE VAL "57988",matr: LET mode=matr/VAL "2": PRINT AT VAL "14",VAL "10";"Start Tape": LOAD "hi res"CODE : LET atr=NOT PI: LET patr=NOT PI: LET p0=NOT PI: LET r10=VAL "58535": LET r11=VAL "61585" 25 DIM f$(32): LET f$="Active Fctns:": CLS : GO SUB VAL "100": ON ERR GO TO VAL "9300": POKE VAL "57980",SGN PI: POKE VAL "57981",NOT PI: POKE VAL "57982",NOT PI: LET k=NOT PI: LET s=SGN PI: LET pr=k: LET b=k: LET f=b: LET e=b 26 POKE VAL "57993",VAL "atr+64*b+128*f": POKE VAL "57998",NOT PI: POKE VAL "57999",NOT PI: LET L=VAL "22432": POKE VAL "57995",VAL "87": POKE VAL "57996",VAL "160": LET X=NOT PI: LET Y=x 27 POKE VAL "57992",PEEK l: IF PEEK l>=VAL "128" THEN POKE VAL "57997",PEEK l-VAL "128": GO TO VAL "29" 28 POKE VAL "57997",PEEK l+VAL "128" 29 BEEP .05,VAL "50" 30 POKE L,PEEK 57992: POKE 57991,(1-e)*(s+1) 33 RANDOMIZE USR r10: LET l=VAL "256*PEEK 57995+PEEK 57996": PRINT #0;AT 0,0;"X = ";VAL "256*PEEK 57981+PEEK 57998";TAB 22;"Y = ";PEEK 57999;TAB 29;" "'f$: POKE l,PEEK 57997 35 LET buton=PEEK VAL "57994": IF buton AND cnct THEN GO TO VAL "610" 36 IF buton THEN GO TO VAL "150" 40 IF INKEY$="" THEN GO TO 30 45 LET b$=INKEY$: IF b$="e" OR b$="E" THEN GO SUB VAL "125": GO TO VAL "30" 46 IF b$="k" OR b$="K" THEN GO SUB VAL "115": GO TO VAL "30" 50 IF b$>="0" AND b$<="7" THEN LET a=VAL b$: GO SUB VAL "77": GO TO VAL "30" 55 GO TO VAL "840" 60 LET pr=SGN PI: GO SUB VAL "190": GO TO VAL "200" 72 PRINT #0;AT NOT PI,VAL "5";"Indicate Paper Color. ": PAUSE NOT PI: LET p$=INKEY$: IF p$<"0" OR p$>"7" THEN GO TO VAL "72" 73 LET pv=VAL p$: LET matr=VAL "6"+VAL "8"*(VAL "7"-pv): LET p$="Paper = "+p$+" ": GO SUB VAL "160": LET p$=STR$ pv: LET b$="p": IF mode>=VAL "2" THEN LET mode=matr/VAL "2": PAPER pv: BORDER pv: INK VAL "7"-pv: CLS : RETURN 74 LET ik=atr-patr*VAL "8": LET patr=VAL p$(1): LET atr=patr*VAL "8"+ik: POKE VAL "57993",VAL "atr+64*b+128*f": RETURN 75 PRINT #0;AT VAL "0",VAL "5";"Indicate Ink Color. ": PAUSE VAL "0": LET p$=INKEY$: IF p$<"0" OR p$>"7" THEN GO TO VAL "75" 76 LET a=VAL p$ 80 LET p$="Ink = "+STR$ a+" ": GO SUB VAL "160": LET atr=patr*VAL "8"+a: POKE VAL "57993",VAL "atr+64*b+128*f" 90 RETURN 100 RANDOMIZE USR VAL "56105": POKE VAL "57993",atr: RANDOMIZE USR r2: IF mode<=VAL "1" THEN OUT 255,2*mode: RETURN 110 RANDOMIZE USR r7: OUT 255,2*mode: RETURN 115 LET k=NOT k: LET p$="Curser: "+a$(VAL "2"-k,VAL "1" TO VAL "3"): GO SUB VAL "160": POKE VAL "57980",VAL "(3*k+1)": RETURN 120 LET b=NOT b: LET p$="Bright: "+a$(VAL "2"-b,VAL "1" TO VAL "3"): GO SUB VAL "160": POKE VAL "57993",VAL "atr+64*b+128*f": RETURN 125 LET e=NOT e: LET p$=" Erase: "+a$(VAL "2"-e,VAL "1" TO VAL "3"): GO SUB VAL "160": IF e THEN LET f$(20 TO 24)="Erase" 126 IF NOT e THEN LET f$(20 TO 24)=" " 127 RETURN 130 LET f=NOT f: LET p$=" Flash: "+a$(VAL "2"-f,VAL "1" TO VAL "3"): GO SUB VAL "160": POKE VAL "57993",VAL "atr+B*64+128*F": RETURN 131 RANDOMIZE USR r5: RANDOMIZE USR r7: RANDOMIZE USR r1: CLS : RANDOMIZE USR r4: OUT 255,0: PRINT #0;AT VAL "0",VAL "11";"Rotate": PAUSE VAL "100": GO SUB VAL "1000": RANDOMIZE USR r4 132 RANDOMIZE USR r9: RANDOMIZE USR r4: GO TO VAL "7020" 133 PAUSE NOT PI: LET p$=INKEY$ 135 IF p$="Y" OR p$="y" THEN POKE VAL "57993",p0: RANDOMIZE USR r2: PRINT #0;AT VAL "0",VAL "0";TAB VAL "31": OUT 255,2*mode: GO TO VAL "26" 136 RANDOMIZE USR r6: POKE VAL "57993",p0: RANDOMIZE USR r2: RANDOMIZE USR r3: OUT 255,2*mode: PRINT #0;AT NOT PI,NOT PI,,: GO TO VAL "26" 140 IF A=VAL "13" THEN GO TO VAL "200" 150 LET s=NOT s: LET k=NOT PI: POKE VAL "57980",SGN PI: LET p$=" Plot: "+a$(s+1,1 TO PI): GO SUB VAL "160": IF NOT s THEN LET f$(15 TO 18)="Plot" 151 IF s THEN LET f$(15 TO 18)=" " 152 GO TO VAL "30" 160 PRINT #0;AT NOT PI,NOT PI,,: PRINT #0;AT NOT PI,VAL "5";" ";p$: FOR w=NOT PI TO VAL "100": NEXT w: PRINT #0;AT NOT PI,NOT PI,,: RETURN 190 LET p$=" Print: "+a$(VAL "2"-pr,VAL "1" TO PI): GO SUB VAL "160": POKE VAL "57993",VAL "atr+64*b+128*f": POKE VAL "57990",SGN PI: RETURN 200 ON ERR GO TO 200: PAUSE NOT PI: LET p$=INKEY$: IF CODE p$<=31 THEN LET pr=NOT PI: GO SUB VAL "190": POKE VAL "57997",NOT PI: POKE VAL "57992",VAL "PEEK (256*PEEK 57995+PEEK 57996)": ON ERR GO TO 9300: GO TO VAL "30" 210 IF mode<=1 THEN POKE 57989,CODE p$: RANDOMIZE USR r11: PRINT #0;AT NOT PI,NOT PI;"X = ";PEEK 57998;TAB 22;"Y = ";PEEK 57999,: GO TO 200 220 IF mode>=2 THEN POKE 57989,CODE p$: RANDOMIZE USR r11: PRINT #0;AT NOT PI,NOT PI;"X = ";VAL "256*PEEK 57981+PEEK 57998";TAB 22;"Y = ";PEEK 57999,: GO TO 200 300 PRINT #0;AT NOT PI,NOT PI,,: RANDOMIZE USR r5: RANDOMIZE USR r1: CLS : OUT 255,0: RETURN 310 PRINT #0;AT NOT PI,NOT PI,,: RANDOMIZE USR r7: RANDOMIZE USR r1: CLS : RANDOMIZE USR r4: OUT 255,0: RETURN 320 RANDOMIZE USR r6: RANDOMIZE USR r3: OUT 255,2*mode: RETURN 400 LET lft=VAL "1" 405 IF lft THEN PRINT AT chs+VAL "3",VAL "12";"<= " 406 IF NOT lft THEN PRINT AT chs+VAL "3",VAL "12";" =>" 407 LET lchs=chs: GO TO VAL "500" 410 IF chs<=VAL "0" THEN LET chs=chss 420 IF chs>chss THEN LET chs=VAL "1" 430 IF chs<>lchs THEN PRINT AT lchs+VAL "3",VAL "12";" " 440 GO TO VAL "405" 450 GO TO (VAL "900"+VAL "8100"*lft) 500 LET stk=|(1,1)+|(1,2): IF |(2,1) OR |(2,2) THEN GO TO VAL "450" 510 IF stk=VAL "1" OR stk=VAL "5" OR stk=VAL "9" THEN LET chs=chs-VAL "1" 520 IF stk=VAL "2" OR stk=VAL "6" OR stk=VAL "10" THEN LET chs=chs+VAL "1" 530 IF stk=VAL "4" THEN LET lft=VAL "1" 540 IF stk=VAL "8" THEN LET lft=VAL "0" 550 GO TO VAL "410" 600 LET p$=" Connect: "+a$(cnct+SGN PI,SGN PI TO PI): LET cnct=NOT cnct: GO SUB VAL "160": LET xk1=PEEK VAL "57998": LET yk1=PEEK VAL "57999": IF cnct THEN LET f$(VAL "26" TO VAL "32")="Connect" 601 IF NOT cnct THEN LET f$(VAL "26" TO VAL "32")=" " 602 RETURN 610 PLOT xk1,yk1: DRAW (PEEK VAL "57998")-xk1,(PEEK VAL "57999")-yk1: LET xk1=PEEK VAL "57998": LET yk1=PEEK VAL "57999": POKE VAL "57992",PEEK l: GO TO VAL "30" 630 CLS : PRINT ''''"Press 1-4 to select a Text Font."''TAB VAL "12";"1 -- Standard";TAB VAL "12";"2 -- Bold";TAB VAL "12";"3 -- Modern";TAB VAL "12";"4 -- Italics" 640 PAUSE NOT PI: LET b$=INKEY$: IF b$<="0" OR b$>="5" THEN GO TO VAL "640" 650 CLS : GO TO (VAL "650"+VAL "10"*VAL b$) 660 RANDOMIZE USR VAL "48488": RETURN 670 RANDOMIZE USR VAL "47616": RETURN 680 RANDOMIZE USR VAL "47617": RETURN 690 RANDOMIZE USR VAL "47618": RETURN 700 PRINT ''TAB VAL "10";"Load Font": INPUT "File Name? ";n$: LOAD n$CODE VAL "47700",VAL "768": CLS : RETURN 800 LET mi=NOT PI: LET key=SGN PI: LET dbl=mi: PRINT AT VAL "2",VAL "8";"PS/GE Functions";AT VAL "4",mi;"Ink Color","Block Copy"'"Bright","Digitize"'"Flash","Block Erase"'"Paper Color","Fill (shade)" 810 PRINT AT VAL "8",NOT PI;"Circle","Hard Copy"'"Draw","Inverse"'"Pixel Erase","Screen Load"'"Text","Screen Merge" 820 PRINT AT VAL "12",NOT PI;"Curser Spd.","Paint"'"Video Mode","Block Rotate"'"Connect","Screen Save"'"Change Fonts","Wide View"'"Load Font","Mirror Image"'"Return","Zoom (close)" 830 RETURN 840 GO SUB VAL "300" 850 GO SUB VAL "800": LET chs=SGN PI: LET chss=VAL "14": GO TO VAL "400" 900 LET mi=NOT PI: LET dbl=mi: LET key=SGN PI: IF mode>=VAL "2" THEN GO TO VAL "920" 901 GO SUB VAL "320": GO TO (VAL "901"+chs) 902 GO TO VAL "2000" 903 GO TO VAL "1500" 904 GO TO VAL "3000" 905 GO TO VAL "960" 906 GO SUB VAL "9500": GO TO VAL "30" 907 GO TO VAL "3300" 908 GO TO VAL "3100" 909 GO TO VAL "4000" 910 GO TO VAL "951" 911 LET key=NOT PI: GO TO VAL "131" 912 GO TO VAL "5000" 913 LET dbl=SGN PI: GO TO VAL "6000" 914 GO TO VAL "3200" 915 LET dbl=SGN PI: GO TO VAL "7000" 916 GO TO VAL "30" 920 GO SUB VAL "320": IF chs=VAL "3" THEN CLS : RANDOMIZE USR r7: GO TO VAL "30" 921 IF chs=VAL "7" THEN GO TO VAL "3100" 922 IF chs=VAL "11" THEN GO TO VAL "5000" 923 IF chs=VAL "5" THEN GO SUB VAL "9500": GO TO VAL "30" 925 GO TO VAL "30" 951 POKE VAL "57990",PEEK VAL "57998": POKE VAL "57989",PEEK VAL "57999": POKE l,PEEK VAL "57992": LET x$="11111111": GO TO VAL "961" 960 POKE VAL "57990",PEEK VAL "57998": POKE VAL "57989",PEEK VAL "57999": POKE l,PEEK VAL "57992": INPUT #0;AT NOT PI,NOT PI;"Input Shade Code: ";x$: IF LEN x$<>VAL "8" THEN GO TO VAL "960" 961 FOR i=SGN PI TO VAL "8": IF x$(i)<"0" OR x$(i)>"1" THEN PRINT #0;AT NOT PI,NOT PI;"Improper Data, Try again! ": PAUSE VAL "90": GO TO VAL "960" 962 POKE (VAL "57970"+i),VAL x$(i): NEXT i: RANDOMIZE USR r16: GO TO VAL "9200" 999 GO TO VAL "30" 1000 LET set=NOT PI: LET bl=NOT PI: IF dbl OR mi THEN LET bl=SGN PI 1002 POKE VAL "57994",NOT PI: POKE VAL "57986",SGN PI: LET xo=VAL "96": LET xf=VAL "159": LET yo=VAL "119": LET yf=VAL "56": LET xl=VAL "63": LET yl=VAL "63": POKE VAL "57998",VAL "128": POKE VAL "57999",VAL "88": GO TO VAL "1009" 1005 POKE VAL "57994",NOT PI: POKE VAL "57986",SGN PI: POKE VAL "57998",VAL "128": POKE VAL "57999",VAL "88": LET set=SGN PI: LET key=NOT PI 1009 LET ks=VAL "0": IF key OR set THEN LET ks=VAL "1" 1010 RANDOMIZE USR r4: PRINT #0;AT NOT PI,NOT PI;"X= ";xo;" to ";xf;TAB VAL "18";"Y= ";yo;" to ";yf,;" Position Window, then Press Fire": PLOT xo,yo: DRAW xf-xo,NOT PI: DRAW NOT PI,yf-yo: DRAW xo-xf,NOT PI: DRAW NOT PI,yo-yf: IF dbl THEN DRAW VAL "(xl+1)/2-1",NOT PI: DRAW NOT PI,(yf-yo)/VAL "2": DRAW (xo-xf)/VAL "2",NOT PI 1015 IF mi THEN DRAW VAL "(xl+1)/2-1",NOT PI: DRAW NOT PI,(yf-yo) 1020 RANDOMIZE USR r10: IF PEEK 57994=1 THEN POKE 57994,NOT PI: POKE VAL "57986",NOT PI: POKE VAL "57990",xo: POKE VAL "57989",yo: POKE VAL "57985",xf: POKE VAL "57987",yf: RETURN 1030 LET dxj=SGN (128-PEEK 57998): LET dyj=SGN (88-PEEK 57999): LET xo=xo-dxj*8: LET yo=yo-dyj*8: POKE 57998,128: POKE 57999,88 1040 IF dxj<>0 OR dyj<>0 THEN GO TO 1110 1050 IF set THEN GO TO 1020 1060 LET c$=INKEY$: IF c$="" THEN GO TO 1020 1065 IF c$>="5" AND c$<="8" AND key=VAL "0" THEN GO TO VAL "1020" 1070 IF c$="L" OR c$="l" OR c$="8" THEN LET xl=xl+8+bl*8 1080 IF c$="L" OR c$="l" OR c$="7" THEN LET yl=yl+8+bl*8 1090 IF c$="S" OR c$="s" OR c$="6" THEN LET yl=yl-8-bl*8 1100 IF c$="S" OR c$="s" OR c$="5" THEN LET xl=xl-8-bl*8 1105 IF NOT key AND xl>yl THEN LET xl=yl 1110 IF xo+xl>255 THEN LET xo=255-xl 1120 IF xo<0 THEN LET xo=0 1130 IF yo-yl<0 THEN LET yo=yl 1140 IF yo>175 THEN LET yo=175 1150 LET xf=xo+xl: IF xf>255 THEN LET xf=255: LET xl=xf-xo 1160 IF xl<7+bl*8 THEN LET xl=7+bl*8: LET xf=xo+xl 1170 LET yf=yo-yl: IF yf<0 THEN LET yf=0: LET yl=yo 1180 IF yl<7+bl*8 THEN LET yl=7+bl*8: LET yf=yo-yl 1185 IF NOT (key OR set) AND xl>yl THEN LET xl=yl 1190 GO TO 1010 1305 IF mode<=VAL "1" THEN RANDOMIZE USR r5: RANDOMIZE USR r1 1310 INPUT "Input X distance. ";x$: 1315 IF PEEK VAL "57998"+VAL x$>VAL "255" OR PEEK VAL "57998"+VAL x$<VAL "0" THEN PRINT #0;AT VAL "1",VAL "0";"X value goes off screen! ": PAUSE VAL "120": GO TO VAL "1310" 1320 INPUT "Input Y distance. ";y$: 1340 IF PEEK VAL "57999"+VAL y$>VAL "175" OR PEEK VAL "57999"+VAL y$<VAL "0" THEN PRINT #0;AT VAL "1",VAL "0";"Y value goes off screen! ": PAUSE VAL "120": GO TO VAL "1320" 1350 INPUT "Input ""Arc"" Command. ";z$ 1390 LET ik=atr-8*patr: PLOT INK ik;PEEK VAL "57998",PEEK VAL "57999": DRAW INK ik;VAL x$,VAL y$,VAL z$: GO TO VAL "9200" 1505 RANDOMIZE USR r8 1510 GO SUB VAL "310": PRINT #0;AT VAL "0",VAL "10";"Digitize": PAUSE VAL "50": GO SUB VAL "1000" 1515 LET yf=yf+4 1520 LET rz=INT ((VAL "175"-yo)/VAL "8"): LET cz=INT (xo/VAL "8"): FOR y=yo TO yf STEP -8: LET r=INT ((175-y)/8): FOR x=xo TO xf STEP 8: LET c=INT (x/8): CLS : PRINT AT 0,10;"Digitize";AT 3,2;"Row: ";r-rz+1;AT 3,17;"Column: ";c-cz+1: FOR i=y TO (y-7) STEP -1: POKE VAL "57990",x: POKE VAL "57989",i 1525 RANDOMIZE USR r18 1530 FOR j=0 TO 7: PRINT AT (5+(y-i)*2),(2+j*2);PEEK (57971+j): NEXT j 1540 PRINT AT (5+(y-i)*2),25;PEEK VAL "57979": POKE USR "m"+y-i,PEEK VAL "57979": NEXT i: PRINT AT 0,20;"\m" 1550 PRINT #0;AT NOT PI,NOT PI;"Press C to Copy, any other key to continue Digitize." 1560 PAUSE NOT PI: LET b$=INKEY$: IF b$="C" OR b$="c" THEN GO SUB VAL "9500": CLS 1570 NEXT x: NEXT y: RANDOMIZE USR r6: RANDOMIZE USR r8: RANDOMIZE USR r7: RANDOMIZE USR r6: RANDOMIZE USR r3: OUT 255,mode*2: GO TO VAL "26" 1605 IF mode<=VAL "1" THEN RANDOMIZE USR r5: RANDOMIZE USR r1 1610 INPUT "Input Circle Radius.";x$ 1620 IF PEEK VAL "57998"<VAL x$ OR PEEK VAL "57999"<VAL x$ OR (PEEK VAL "57998"+VAL x$)>=VAL "256" OR (PEEK VAL "57999"+VAL x$)>=VAL "176" THEN PRINT #0;AT VAL "1",VAL "0";"Circle goes off screen! ": PAUSE VAL "120": GO TO VAL "1610" 1630 LET ik=atr-VAL "8"*patr: CIRCLE INK ik;PEEK VAL "57998",PEEK VAL "57999",VAL x$: GO TO VAL "9200" 2010 GO SUB VAL "310": PRINT #0;AT NOT PI,VAL "8";"Block Copy: FROM": PAUSE VAL "100": GO SUB VAL "1000": RANDOMIZE USR r6: PRINT #0;AT VAL "0",VAL "8";"Block Copy: TO": PAUSE VAL "100": LET sxo=xo: LET sxf=xf: LET syo=yo: LET syf=yf: GO SUB VAL "1005": POKE VAL "57984",xo: POKE VAL "57983",yo: POKE VAL "57990",sxo: POKE VAL "57989",syo: POKE VAL "57985",sxf: POKE VAL "57987",syf: RANDOMIZE USR r4: RANDOMIZE USR r15: RANDOMIZE USR r4 2020 GO TO VAL "7020" 2100 INPUT #0;AT NOT PI,NOT PI;"File Name ? ";n$: IF n$=" " THEN LET n$="" 2110 RETURN 3010 GO SUB VAL "310": PRINT #0;AT VAL "0",VAL "8";"Block Erase": PAUSE VAL "100": GO SUB VAL "1000": RANDOMIZE USR r4: POKE VAL "57984",VAL "0": RANDOMIZE USR r14 3020 GO TO VAL "7020" 3105 OUT 255,0: CLS : PRINT AT VAL "0",VAL "10";"Start Tape" 3110 OUT VAL "255",VAL "0": GO SUB VAL "2100": LOAD n$SCREEN$ 3120 IF mode>=VAL "1" THEN RANDOMIZE USR r5: LOAD n$CODE VAL "24576",VAL "6912": RANDOMIZE USR r6 3130 OUT VAL "255",VAL "2"*mode: GO TO VAL "30" 3210 LET mi=VAL "1": GO SUB VAL "310": PRINT #0;AT VAL "0",VAL "8";"Mirror Image": PAUSE VAL "100": GO SUB VAL "1000": RANDOMIZE USR r4: POKE VAL "57985",xo+(xl+VAL "1")/VAL "2"-VAL "1": RANDOMIZE USR r17: RANDOMIZE USR r4 3220 GO TO VAL "7020" 3310 GO SUB VAL "310": PRINT #0;AT VAL "0",VAL "12";"Inverse": PAUSE VAL "100": GO SUB VAL "1000": RANDOMIZE USR r4: RANDOMIZE USR r19 3320 GO TO VAL "7020" 4005 GO SUB VAL "300": GO SUB VAL "2100": PRINT AT NOT PI,VAL "10";"Start Tape": LOAD n$SCREEN$ : RANDOMIZE USR r7: CLS : PRINT AT VAL "6",NOT PI;"Press: 0 -- to merge the new screen into the old."'TAB VAL "8";"1 -- to merge the old screen into the new."'TAB VAL "8";"2 -- to erase the new screen and return."'TAB VAL "8";"3 -- to erase the old screen and return." 4006 PAUSE VAL "0": LET p$=INKEY$: IF CODE p$<CODE "0" OR CODE p$>CODE "4" THEN : GO TO VAL "4006" 4007 IF CODE p$=CODE "0" THEN RANDOMIZE USR r4: GO TO VAL "4015" 4008 IF CODE p$=CODE "1" THEN RANDOMIZE USR r6: RANDOMIZE USR r8: GO TO VAL "4015" 4009 IF CODE p$=CODE "2" THEN GO TO VAL "136" 4010 IF CODE p$=CODE "3" THEN RANDOMIZE USR r8: CLS : RANDOMIZE USR r1: GO TO VAL "136" 4015 RANDOMIZE USR r7: CLS : RANDOMIZE USR r4: PRINT #0;AT VAL "0",VAL "8";"Picture Merge: FROM": PAUSE VAL "100": GO SUB VAL "1000": RANDOMIZE USR r6: PRINT #0;AT VAL "0",VAL "8";"Picture Merge: TO": RANDOMIZE USR r8: PAUSE VAL "100": LET sxo=xo: LET sxf=xf: LET syo=yo: LET syf=yf: RANDOMIZE USR r7: GO SUB VAL "1005": POKE VAL "57984",xo: POKE VAL "57983",yo: POKE VAL "57990",sxo: POKE VAL "57989",syo: POKE VAL "57985",sxf: POKE VAL "57987",syf: RANDOMIZE USR r6: RANDOMIZE USR r8: RANDOMIZE USR r15: RANDOMIZE USR r4 4020 GO TO VAL "7020" 5010 RANDOMIZE USR r5: RANDOMIZE USR r3: OUT VAL "255",VAL "0": GO SUB VAL "2100": SAVE n$SCREEN$ 5020 IF mode>=VAL "1" THEN SAVE n$CODE VAL "24576",VAL "6912" 5030 OUT VAL "255",VAL "2"*mode: GO TO VAL "30" 6010 GO SUB VAL "310": PRINT #0;AT VAL "0",VAL "10";"Wide View": PAUSE VAL "100": GO SUB VAL "1000": RANDOMIZE USR r4: PRINT #0;AT VAL "0",VAL "10";" Working ": POKE VAL "57984",VAL "32" 6020 RANDOMIZE USR r14: RANDOMIZE USR r13: RANDOMIZE USR r4: GO TO VAL "7020" 7010 GO SUB VAL "310": PRINT #0;AT VAL "0",VAL "10";"Close View": PAUSE VAL "100": GO SUB VAL "1000": RANDOMIZE USR r4: POKE VAL "57985",VAL "xo+(xl+1)/2-1": POKE VAL "57987",VAL "yo-(yl+1)/2-1": RANDOMIZE USR r12: RANDOMIZE USR r4 7020 PRINT #0;AT NOT PI,NOT PI;" Save ?"," Press ""Y"" or ""N""",: GO TO VAL "133" 9000 IF chs=VAL "5" OR chs=VAL "6" OR chs=VAL "8" OR chs>=VAL "14" THEN GO SUB VAL "320" 9020 GO TO (VAL "9020"+chs) 9021 GO SUB VAL "75": GO TO VAL "850" 9022 GO SUB VAL "120": GO TO VAL "850" 9023 GO SUB VAL "130": GO TO VAL "850" 9024 GO SUB VAL "72": GO TO VAL "850" 9025 GO TO VAL "1600" 9026 GO TO VAL "1300" 9027 GO SUB VAL "125": GO TO VAL "850" 9028 GO TO VAL "60" 9029 GO SUB VAL "115": GO TO VAL "850" 9030 GO SUB VAL "9100": GO TO VAL "850" 9031 GO SUB VAL "600": GO TO VAL "850" 9032 GO SUB VAL "630": GO TO VAL "850" 9033 GO SUB VAL "700": GO TO VAL "850" 9034 GO TO VAL "30" 9100 IF mode>=VAL "2" THEN RETURN 9105 CLS : PRINT AT 10,NOT PI;"Press 0 for Standard Video Mode 1 for Extended Color Mode" 9110 PAUSE NOT PI: LET p$=INKEY$: IF p$<"0" OR p$>"1" THEN GO TO VAL "9110" 9130 LET mode=VAL p$: IF mode=2 THEN LET mode=matr/2 9140 POKE VAL "57988",mode: CLS : RETURN 9200 PRINT #0;AT NOT PI,NOT PI;" Save ?"," Press ""Y"" or ""N""", 9210 PAUSE NOT PI: LET p$=INKEY$ 9230 IF p$="Y" OR p$="y" THEN POKE VAL "57993",p0: PRINT #0;AT NOT PI,NOT PI,,: OUT 255,2*mode: GO TO VAL "26" 9240 RANDOMIZE USR r6: POKE VAL "57993",p0: RANDOMIZE USR r3: OUT 255,2*mode: PRINT #0;AT NOT PI,NOT PI,,: GO TO VAL "26" 9300 IF mode>=VAL "2" THEN ON ERR RESET : STOP 9305 OUT 255,NOT PI: PRINT #0;AT NOT PI,NOT PI;"Error! Error! Error! Error! ": FOR w=VAL "1" TO VAL "100": NEXT w: PRINT #0;AT SGN PI,NOT PI;" Press Enter to Continue " 9310 PAUSE NOT PI: ON ERR RESET : IF INKEY$=CHR$ 13 THEN ON ERR GO TO VAL "9300": GO TO VAL "136" 9320 STOP 9505 GO SUB VAL "9800": PRINT #0;AT NOT PI,NOT PI,,,, 9510 IF pt=VAL "2" THEN GO TO VAL "9600" 9515 IF mode<=VAL "2" THEN COPY : RETURN 9520 RANDOMIZE USR VAL "56150": RETURN 9610 LET cs=VAL "55945": INPUT AT NOT PI,NOT PI;"Input Picture Size. (0 = Small Size, 1 = Large Size): ";sz: POKE cs,NOT sz: LET sz=VAL "0": IF mode>=VAL "2" THEN LET sz=VAL "1" 9615 POKE cs+VAL "1",sz 9620 LET cs=VAL "55977": INPUT AT NOT PI,NOT PI;"Input Number of Bytes to define the Graphics Comnd: ";sz 9630 IF sz THEN POKE cs,sz: FOR w=VAL "1" TO sz: INPUT ("Input Byte ";w;" of ";sz;" ";);gc: POKE cs+w,gc: NEXT w 9635 LET cs=VAL "55997": INPUT AT NOT PI,NOT PI;" Input Number of leading Blank Columns: ";sz: POKE cs,sz+VAL "1" 9640 INPUT AT NOT PI,NOT PI;" Ready? Enter 0 to Abort. Enter 1 to print. ";gc: IF NOT gc THEN RETURN 9650 RANDOMIZE USR VAL "62823": RETURN 9810 PRINT #0;AT NOT PI,NOT PI;"Press 1 for the 2040 Printer 2 for a Full Size Printer " 9830 PAUSE NOT PI: LET p$=INKEY$: IF p$<"1" OR p$>"2" THEN GO TO VAL "9830" 9840 LET pt=VAL p$: RETURN 9991 GO SUB VAL "9998": CLS : RANDOMIZE USR r6: PAUSE VAL "30": POKE VAL "57990",NOT PI: POKE VAL "57985",VAL "255": POKE VAL "57989",VAL "175": POKE VAL "57987",NOT PI: RANDOMIZE USR r19: RANDOMIZE USR r19: PAUSE VAL "90": CLS : PRINT AT 10,NOT PI;" Indicate Paper Color. Press a number (0 to 7)." 9992 PAUSE NOT PI: LET p$=INKEY$: IF p$<"0" OR p$>"7" THEN GO TO VAL "9992" 9993 LET patr=VAL p$: PAPER patr: BORDER patr: INK VAL "9": CLS : LET atr=ATTR (NOT PI,NOT PI): LET p0=atr 9994 LET matr=VAL "6+8*(7-patr)" 9997 RETURN 9998 LET r1=VAL "56000": LET r2=VAL "56014": LET r3=VAL "56031": LET r4=VAL "56045": LET r5=VAL "56057": LET r6=VAL "56069": LET r7=VAL "56081": LET r8=VAL "56093": LET r9=VAL "58000": LET r10=VAL "58509": LET r11=VAL "60656": LET r12=VAL "61077": LET r13=VAL "61666": LET r14=VAL "62304": LET r15=VAL "62497": LET r16=VAL "49386": LET r17=VAL "56243": LET r18=VAL "57148": LET r19=VAL "57667": RETURN 9999 SAVE "PS/GE" LINE VAL "10": SAVE "PS/GE C"CODE 47616,15500: STOP 10 REM Pixel Sketck and Graphic Editor v 2.0\* by S D Lemke 1985 2144 White Oak Wichita, KS 67207 19 PRINT AT VAL "19",NOT PI;" ": LOAD "PS/GE C"CODE 20 DIM a$(2,PI): LET a$(SGN PI,SGN PI TO PI)="On ": LET a$(VAL "2",VAL "1" TO PI)="Off": PAPER VAL "1": BORDER VAL "1": INK VAL "7": CLS : PRINT AT VAL "10",VAL "10";"Stop Tape": FOR j=SGN PI TO PI: FOR i=VAL "20" TO -20 STEP -1: BEEP .001,i+5*j: NEXT i: FOR i=-20 TO VAL "20" STEP VAL "2": BEEP .01,i+VAL "5"*j: NEXT i: NEXT j: GO SUB VAL "9990": PRINT AT VAL "10",NOT PI;"Press 0 for Standard Video Mode 1 for Extended Color Mode 2 for High Resolution Mode" 21 PAUSE NOT PI: LET p$=INKEY$: IF p$<"0" OR p$>"2" THEN GO TO VAL "21" 23 LET mode=VAL p$: POKE VAL "57988",mode: POKE VAL "23609",VAL "10": LET cnct=NOT PI: RANDOMIZE USR VAL "48488": POKE VAL "23606",VAL "84": POKE VAL "23607",VAL "185" 24 IF mode=VAL "2" THEN POKE VAL "57988",matr: LET mode=matr/VAL "2": PRINT AT VAL "14",VAL "10";"Start Tape": LOAD "hi res"CODE : LET atr=NOT PI: LET patr=NOT PI: LET p0=NOT PI: LET r10=VAL "58535": LET r11=VAL "61585" 25 DIM f$(32): LET f$="Active Fctns:": CLS : GO SUB VAL "100": ON ERR GO TO VAL "9300": POKE VAL "57980",SGN PI: POKE VAL "57981",NOT PI: POKE VAL "57982",NOT PI: LET k=NOT PI: LET s=SGN PI: LET pr=k: LET b=k: LET f=b: LET e=b 26 POKE VAL "57993",VAL "atr+64*b+128*f": POKE VAL "57998",NOT PI: POKE VAL "57999",NOT PI: LET L=VAL "22432": POKE VAL "57995",VAL "87": POKE VAL "57996",VAL "160": LET X=NOT PI: LET Y=x 27 POKE VAL "57992",PEEK l: IF PEEK l>=VAL "128" THEN POKE VAL "57997",PEEK l-VAL "128": GO TO VAL "29" 28 POKE VAL "57997",PEEK l+VAL "128" 29 BEEP .05,VAL "50" 30 POKE L,PEEK 57992: POKE 57991,(1-e)*(s+1) 33 RANDOMIZE USR r10: LET l=VAL "256*PEEK 57995+PEEK 57996": PRINT #0;AT 0,0;"X = ";VAL "256*PEEK 57981+PEEK 57998";TAB 22;"Y = ";PEEK 57999;TAB 29;" "'f$: POKE l,PEEK 57997 35 LET buton=PEEK VAL "57994": IF buton AND cnct THEN GO TO VAL "610" 36 IF buton THEN GO TO VAL "150" 40 IF INKEY$="" THEN GO TO 30 45 LET b$=INKEY$: IF b$="e" OR b$="E" THEN GO SUB VAL "125": GO TO VAL "30" 46 IF b$="k" OR b$="K" THEN GO SUB VAL "115": GO TO VAL "30" 50 IF b$>="0" AND b$<="7" THEN LET a=VAL b$: GO SUB VAL "77": GO TO VAL "30" 55 GO TO VAL "840" 60 LET pr=SGN PI: GO SUB VAL "190": GO TO VAL "200" 72 PRINT #0;AT NOT PI,VAL "5";"Indicate Paper Color. ": PAUSE NOT PI: LET p$=INKEY$: IF p$<"0" OR p$>"7" THEN GO TO VAL "72" 73 LET pv=VAL p$: LET matr=VAL "6"+VAL "8"*(VAL "7"-pv): LET p$="Paper = "+p$+" ": GO SUB VAL "160": LET p$=STR$ pv: LET b$="p": IF mode>=VAL "2" THEN LET mode=matr/VAL "2": PAPER pv: BORDER pv: INK VAL "7"-pv: CLS : RETURN 74 LET ik=atr-patr*VAL "8": LET patr=VAL p$(1): LET atr=patr*VAL "8"+ik: POKE VAL "57993",VAL "atr+64*b+128*f": RETURN 75 PRINT #0;AT VAL "0",VAL "5";"Indicate Ink Color. ": PAUSE VAL "0": LET p$=INKEY$: IF p$<"0" OR p$>"7" THEN GO TO VAL "75" 76 LET a=VAL p$ 80 LET p$="Ink = "+STR$ a+" ": GO SUB VAL "160": LET atr=patr*VAL "8"+a: POKE VAL "57993",VAL "atr+64*b+128*f" 90 RETURN 100 RANDOMIZE USR VAL "56105": POKE VAL "57993",atr: RANDOMIZE USR r2: IF mode<=VAL "1" THEN OUT 255,2*mode: RETURN 110 RANDOMIZE USR r7: OUT 255,2*mode: RETURN 115 LET k=NOT k: LET p$="Curser: "+a$(VAL "2"-k,VAL "1" TO VAL "3"): GO SUB VAL "160": POKE VAL "57980",VAL "(3*k+1)": RETURN 120 LET b=NOT b: LET p$="Bright: "+a$(VAL "2"-b,VAL "1" TO VAL "3"): GO SUB VAL "160": POKE VAL "57993",VAL "atr+64*b+128*f": RETURN 125 LET e=NOT e: LET p$=" Erase: "+a$(VAL "2"-e,VAL "1" TO VAL "3"): GO SUB VAL "160": IF e THEN LET f$(20 TO 24)="Erase" 126 IF NOT e THEN LET f$(20 TO 24)=" " 127 RETURN 130 LET f=NOT f: LET p$=" Flash: "+a$(VAL "2"-f,VAL "1" TO VAL "3"): GO SUB VAL "160": POKE VAL "57993",VAL "atr+B*64+128*F": RETURN 131 RANDOMIZE USR r5: RANDOMIZE USR r7: RANDOMIZE USR r1: CLS : RANDOMIZE USR r4: OUT 255,0: PRINT #0;AT VAL "0",VAL "11";"Rotate": PAUSE VAL "100": GO SUB VAL "1000": RANDOMIZE USR r4 132 RANDOMIZE USR r9: RANDOMIZE USR r4: GO TO VAL "7020" 133 PAUSE NOT PI: LET p$=INKEY$ 135 IF p$="Y" OR p$="y" THEN POKE VAL "57993",p0: RANDOMIZE USR r2: PRINT #0;AT VAL "0",VAL "0";TAB VAL "31": OUT 255,2*mode: GO TO VAL "26" 136 RANDOMIZE USR r6: POKE VAL "57993",p0: RANDOMIZE USR r2: RANDOMIZE USR r3: OUT 255,2*mode: PRINT #0;AT NOT PI,NOT PI,,: GO TO VAL "26" 140 IF A=VAL "13" THEN GO TO VAL "200" 150 LET s=NOT s: LET k=NOT PI: POKE VAL "57980",SGN PI: LET p$=" Plot: "+a$(s+1,1 TO PI): GO SUB VAL "160": IF NOT s THEN LET f$(15 TO 18)="Plot" 151 IF s THEN LET f$(15 TO 18)=" " 152 GO TO VAL "30" 160 PRINT #0;AT NOT PI,NOT PI,,: PRINT #0;AT NOT PI,VAL "5";" ";p$: FOR w=NOT PI TO VAL "100": NEXT w: PRINT #0;AT NOT PI,NOT PI,,: RETURN 190 LET p$=" Print: "+a$(VAL "2"-pr,VAL "1" TO PI): GO SUB VAL "160": POKE VAL "57993",VAL "atr+64*b+128*f": POKE VAL "57990",SGN PI: RETURN 200 ON ERR GO TO 200: PAUSE NOT PI: LET p$=INKEY$: IF CODE p$<=31 THEN LET pr=NOT PI: GO SUB VAL "190": POKE VAL "57997",NOT PI: POKE VAL "57992",VAL "PEEK (256*PEEK 57995+PEEK 57996)": ON ERR GO TO 9300: GO TO VAL "30" 210 IF mode<=1 THEN POKE 57989,CODE p$: RANDOMIZE USR r11: PRINT #0;AT NOT PI,NOT PI;"X = ";PEEK 57998;TAB 22;"Y = ";PEEK 57999,: GO TO 200 220 IF mode>=2 THEN POKE 57989,CODE p$: RANDOMIZE USR r11: PRINT #0;AT NOT PI,NOT PI;"X = ";VAL "256*PEEK 57981+PEEK 57998";TAB 22;"Y = ";PEEK 57999,: GO TO 200 300 PRINT #0;AT NOT PI,NOT PI,,: RANDOMIZE USR r5: RANDOMIZE USR r1: CLS : OUT 255,0: RETURN 310 PRINT #0;AT NOT PI,NOT PI,,: RANDOMIZE USR r7: RANDOMIZE USR r1: CLS : RANDOMIZE USR r4: OUT 255,0: RETURN 320 RANDOMIZE USR r6: RANDOMIZE USR r3: OUT 255,2*mode: RETURN 400 LET lft=VAL "1" 405 IF lft THEN PRINT AT chs+VAL "3",VAL "12";"<= " 406 IF NOT lft THEN PRINT AT chs+VAL "3",VAL "12";" =>" 407 LET lchs=chs: GO TO VAL "500" 410 IF chs<=VAL "0" THEN LET chs=chss 420 IF chs>chss THEN LET chs=VAL "1" 430 IF chs<>lchs THEN PRINT AT lchs+VAL "3",VAL "12";" " 440 GO TO VAL "405" 450 GO TO (VAL "900"+VAL "8100"*lft) 500 LET stk=|(1,1)+|(1,2): IF |(2,1) OR |(2,2) THEN GO TO VAL "450" 510 IF stk=VAL "1" OR stk=VAL "5" OR stk=VAL "9" THEN LET chs=chs-VAL "1" 520 IF stk=VAL "2" OR stk=VAL "6" OR stk=VAL "10" THEN LET chs=chs+VAL "1" 530 IF stk=VAL "4" THEN LET lft=VAL "1" 540 IF stk=VAL "8" THEN LET lft=VAL "0" 550 GO TO VAL "410" 600 LET p$=" Connect: "+a$(cnct+SGN PI,SGN PI TO PI): LET cnct=NOT cnct: GO SUB VAL "160": LET xk1=PEEK VAL "57998": LET yk1=PEEK VAL "57999": IF cnct THEN LET f$(VAL "26" TO VAL "32")="Connect" 601 IF NOT cnct THEN LET f$(VAL "26" TO VAL "32")=" " 602 RETURN 610 PLOT xk1,yk1: DRAW (PEEK VAL "57998")-xk1,(PEEK VAL "57999")-yk1: LET xk1=PEEK VAL "57998": LET yk1=PEEK VAL "57999": POKE VAL "57992",PEEK l: GO TO VAL "30" 630 CLS : PRINT ''''"Press 1-4 to select a Text Font."''TAB VAL "12";"1 -- Standard";TAB VAL "12";"2 -- Bold";TAB VAL "12";"3 -- Modern";TAB VAL "12";"4 -- Italics" 640 PAUSE NOT PI: LET b$=INKEY$: IF b$<="0" OR b$>="5" THEN GO TO VAL "640" 650 CLS : GO TO (VAL "650"+VAL "10"*VAL b$) 660 RANDOMIZE USR VAL "48488": RETURN 670 RANDOMIZE USR VAL "47616": RETURN 680 RANDOMIZE USR VAL "47617": RETURN 690 RANDOMIZE USR VAL "47618": RETURN 700 PRINT ''TAB VAL "10";"Load Font": INPUT "File Name? ";n$: LOAD n$CODE VAL "47700",VAL "768": CLS : RETURN 800 LET mi=NOT PI: LET key=SGN PI: LET dbl=mi: PRINT AT VAL "2",VAL "8";"PS/GE Functions";AT VAL "4",mi;"Ink Color","Block Copy"'"Bright","Digitize"'"Flash","Block Erase"'"Paper Color","Fill (shade)" 810 PRINT AT VAL "8",NOT PI;"Circle","Hard Copy"'"Draw","Inverse"'"Pixel Erase","Screen Load"'"Text","Screen Merge" 820 PRINT AT VAL "12",NOT PI;"Curser Spd.","Paint"'"Video Mode","Block Rotate"'"Connect","Screen Save"'"Change Fonts","Wide View"'"Load Font","Mirror Image"'"Return","Zoom (close)"