--- title: "For Your Sinclair: New Releases" type: "article" slug: "for-your-sinclair-new-releases-2" url: "http://localhost/article/for-your-sinclair-new-releases-2/" markdown_url: "http://localhost/article/for-your-sinclair-new-releases-2.md" published_at: "2020-10-27T17:10:23+00:00" modified_at: "2024-05-26T14:34:44+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "External keyboard for TS2068, sound booster, RGB interface and cartridge adaptor from John Mathewson. Utility tape for TS1000/ZX81/TS1500 from LST Software. PC-DRAW from MDM Enterprises. Compuserve announces GIF format. Desktop publishing program from Charles Stelding. Hardware/software to print to Commodore 1520 plotter. Archive utilties for QL." category: - name: "Time Designs Magazine" slug: "time-designs" taxonomy: "category" url: "http://localhost/category/periodicals/time-designs/" post_tag: - name: "Charles Stelding (company)" slug: "charles-stelding" taxonomy: "post_tag" url: "http://localhost/tag/charles-stelding/" - name: "John Mathewson (company)" slug: "john-mathewson" taxonomy: "post_tag" url: "http://localhost/tag/john-mathewson/" - name: "John McMichael" slug: "john-mcmichael" taxonomy: "post_tag" url: "http://localhost/tag/john-mcmichael/" - name: "LST Software" slug: "lst-software" taxonomy: "post_tag" url: "http://localhost/tag/lst-software/" - name: "MDM Enterprises" slug: "mdm-enterprises" taxonomy: "post_tag" url: "http://localhost/tag/mdm-enterprises/" - name: "QL" slug: "ql" taxonomy: "post_tag" url: "http://localhost/tag/ql/" - name: "TS 1000" slug: "ts1000" taxonomy: "post_tag" url: "http://localhost/tag/ts1000/" - name: "TS 1500" slug: "ts1500" taxonomy: "post_tag" url: "http://localhost/tag/ts1500/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" - name: "ZX81" slug: "zx81" taxonomy: "post_tag" url: "http://localhost/tag/zx81/" model: - name: "Sinclair QL" slug: "sinclair-ql" taxonomy: "model" url: "http://localhost/model/sinclair-ql/" - name: "Sinclair ZX81" slug: "zx81" taxonomy: "model" url: "http://localhost/model/zx81/" - name: "Timex/Sinclair 1000" slug: "ts-1000" taxonomy: "model" url: "http://localhost/model/ts-1000/" - name: "Timex/Sinclair 1500" slug: "ts-1500" taxonomy: "model" url: "http://localhost/model/ts-1500/" - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Herb Bowers" slug: "bowers-herb" taxonomy: "indiv" url: "http://localhost/indiv/bowers-herb/" publication: "Time Designs Magazine" publication_r: id: 10277 title: "Time Designs Magazine" type: "periodical" url: "http://localhost/periodical/time-designs-magazine/" volume: "3" issue: "4" issues_articles: - id: 26783 title: "Time Designs Magazine v3 n4" type: "issue" url: "http://localhost/issue/time-designs-magazine-v3-n4/" pages: "5" pubdate: "May/June 1987" product_reviews: - id: 20311 title: "PC-DRAW" type: "product" url: "http://localhost/product/pc-draw/" archive_link: false volumeissue: "v3n4" companies_articles: - id: 27352 title: "Charles Stelding" type: "company" url: "http://localhost/company/charles-stelding/" - id: 20338 title: "John Mathewson" type: "company" url: "http://localhost/company/john-mathewson/" - id: 10989 title: "John McMichael" type: "company" url: "http://localhost/company/john-mcmichael/" - id: 48832 title: "MDM Enterprises" type: "company" url: "http://localhost/company/mdm-enterprises/" article_media: - id: 51144 title: "PC-Draw v3.0" type: "computer_media" url: "http://localhost/computer_media/pc-draw-v3-0/" --- # For Your Sinclair: New Releases External keyboard for TS2068, sound booster, RGB interface and cartridge adaptor from John Mathewson. Utility tape for TS1000/ZX81/TS1500 from LST Software. PC-DRAW from MDM Enterprises. Compuserve announces GIF format. Desktop publishing program from Charles Stelding. Hardware/software to print to Commodore 1520 plotter. Archive utilties for QL. ## Source Code: PC-Draw v3.0 ``` 10 CLEAR 54000 15 INK 7: PAPER 7: BORDER 1 20 LOAD "PC-Scrn"SCREEN$ 25 PRINT AT 0,0; 30 LOAD "PC-Code"CODE 35 PRINT AT 0,0; 40 LOAD "Draw" 10 DELETE VAL "220", 20 CLEAR VAL "27499" 30 RANDOMIZE USR VAL "64615" 40 DELETE ,VAL "30" 50 LET l=VAL "36082" 60 POKE VAL "23658",NOT PI 70 IF PEEK VAL "36066"=VAL "113" THEN STOP 80 LET n$="" 90 IF PEEK l<>VAL "32" THEN LET n$=n$+CHR$ PEEK l: LET l=l+1: GO TO VAL "90" 100 IF PEEK VAL "36066"=VAL "108" THEN GO TO VAL "150" 110 LET l=PEEK VAL "65209"+VAL "256"*PEEK VAL "65210" 115 PRINT "Source = ";l,"Length = ";VAL "65536"-l 120 SAVE n$CODE l,VAL "65536"-l 130 CLS : GO SUB VAL "200" 140 VERIFY n$CODE : GO TO VAL "190" 150 CLS : PRINT : PRINT " loading **";n$;"**" 160 GO SUB VAL "210" 170 LOAD n$CODE 180 IF PEEK VAL "65207"+VAL "256"*PEEK VAL "65208"10 THEN GO TO 290 310 FOR f=1 TO LEN a$: POKE 64601+f,CODE a$(f): NEXT f 320 PRINT AT 10,9;"PRINTER WIDTH": INPUT " Printer width in chrs ? ";a 330 POKE 62946,a 340 IF a<32 OR a>136 THEN GO TO 320 350 LET l=32 360 IF l"y" THEN GO TO 380 420 PRINT ,,,," Saving 'PC-Custom'": SAVE "PC-Custom" LINE 220: PRINT ,," Saving 'PC-Code'": SAVE "PC-Code"CODE 54344,11192 430 CLS : PRINT " If error occurs, GOTO 410": PRINT AT 10,11;"VERIFYING": VERIFY "PC-Custom": VERIFY "PC-Code"CODE 440 GO TO 380 450 CLEAR 54300 460 BORDER 1: PRINT AT 7,10;"PC-DRAW 3.0": PRINT AT 9,2;"PRINTED CIRCUIT BOARD SYSTEM": PRINT AT 11,10;"LOADING CODE" 470 LOAD ""CODE 54344 480 PAPER 0: INK 7: BORDER 1: CLS 490 POKE 23658,0: POKE 23609,9 500 FOR f=1 TO 4 510 PRINT AT 10,7; FLASH 1;" Stop the tape ": BEEP .4,6: NEXT f 520 CLS : PRINT AT 9,10;"BACK-UP COPY": INPUT "Make Back-up? (y/n)";a$: CLS : IF a$<>"y" THEN GO TO 610 530 CLS : PRINT ,,,," Saving 'PC-Draw'": SAVE "PC-Draw" LINE 450: PRINT ,," Saving 'PC-Code'": SAVE "PC-Code"CODE 54344,11192 540 ON ERR GO TO 580 550 BEEP VAL ".2",VAL "4": PRINT AT VAL "10",VAL "0"; FLASH VAL "1";" Rewind to verify " 560 PAUSE 150: CLS : PRINT AT 10,11;"VERIFYING": VERIFY "": VERIFY ""CODE 570 ON ERR RESET : GO TO 610 580 ON ERR RESET : PRINT : PRINT "VERIFY was BAD",,,,"Try a new SAVE"," or IGNOR" 581 INPUT "(s/i)? ";y$ 600 IF y$="s" THEN GO TO 530 610 BORDER 1 620 GO SUB 650 630 GO TO 400 640 PAPER 7: INK 0: BORDER 1 650 REM DRIVER is SET AT 660 LET arc=64445 670 CLS : PRINT AT 10,13;"DATE": INPUT " Date (xx/xx/xx) ";a$ 680 LET x$=a$ 690 IF LEN a$>10 THEN GO TO 670 700 FOR f=1 TO LEN a$: POKE 64601+f,CODE a$(f): NEXT f 710 PRINT AT 10,9;"PRINTER WIDTH": INPUT " Printer width in chrs ? ";a 720 POKE 62946,a 730 IF a<32 OR a>136 THEN GO TO 710 740 LET l=32 750 IF l65 THEN GO TO 860 840 IF PEEK (arc+2)<>87 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>66 OR PEEK (arc+10)<>211 OR PEEK (arc+11)<>65 OR PEEK (arc+12)<>61 THEN GO TO 920 850 PRINT ,," Printer Interface set for'A&J'": GO TO 930 860 IF PEEK arc<>191 THEN GO TO 890 870 IF PEEK (arc+2)<>71 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>123 OR PEEK (arc+10)<>219 OR PEEK (arc+11)<>127 OR PEEK (arc+12)<>201 THEN GO TO 920 880 PRINT ,," Interface is set for 'Tasman B'": GO TO 930 890 IF PEEK arc<>127 THEN GO TO 920 900 IF PEEK (arc+2)<>103 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>127 OR PEEK (arc+10)<>219 OR PEEK (arc+11)<>127 OR PEEK (arc+12)<>201 THEN GO TO 920 910 PRINT ,," Interface set for Oliger/Aerco": GO TO 930 920 PRINT ,," Interface is set for 'Other'": GO TO 930 930 PRINT ,," Port no. for data out is ";: PRINT o 940 PRINT ,," Port no. for busy in is ";: PRINT b 950 IF PEEK (arc+12)=201 THEN PRINT ,," Hardware Strobe": GO TO 970 960 PRINT ,," Port no. for strobe is ";: PRINT e 970 PRINT ,," Bit number for busy in is ";: PRINT (c-71)/8 980 IF d=32 THEN LET d$="Hi" 990 IF d=40 THEN LET d$="Low" 1000 PRINT ,," Bit ";(c-71)/8;" is '";d$;"' for busy? " 1010 LET a$="on" 1020 IF PEEK (arc+12)=201 THEN LET a$="off" 1030 PRINT ,," Software strobe is '";a$;"'" 1040 GO SUB 1370: PRINT ,," Do you wish to reconfigure your Printer Driver? (Y/N) " 1050 IF INKEY$="Y" OR INKEY$="y" THEN GO TO 1090 1060 IF INKEY$="n" OR INKEY$="N" THEN RETURN 1070 IF INKEY$="" THEN GO TO 1050 1080 GO TO 1050 1090 REM ***configure printer driver-pokes to printer driver 1100 GO SUB 1340 1110 CLS : PRINT ,,,," 1 A&J",," 2 Tasman",," 3 Aerco",," 4 Oliger",," 5 Other "; 1120 INPUT " Selection please: ";l 1130 CLS : IF l<1 OR l>5 THEN GO TO 1100 1140 LET l=INT l: IF l=1 THEN LET e=65: LET b=65: LET c=2: LET d=1: LET s=211: LET o=66: GO TO 1290 1150 IF l=5 THEN GO TO 1180 1160 LET e=127: LET d=1: LET s=219: LET o=123+4*(l>2): LET b=191-64*(l>2): LET c=4*(l>2): GO SUB 1300 1170 GO TO 770 1180 GO SUB 1340 1190 PRINT ,,,," Port no. for data out? ";: INPUT o: PRINT o 1200 PRINT ,," Port no. for busy in? ";: INPUT b: PRINT b: LET e=b 1210 PRINT ,," Bit number for busy in? ";: INPUT c: PRINT c 1220 PRINT ,," Is Bit ";c,," Hi or Low for busy? (1/0) ";: INPUT d: PRINT d 1230 IF d<>0 AND d<>1 THEN GO TO 1220 1240 PRINT ,," Software strobe? (y/n) ";: INPUT a$: PRINT ;a$ 1250 IF a$="n" THEN LET s=219: GO TO 1270 1260 LET s=211: PRINT ,," Port no. for strobe? ";: INPUT e: PRINT e 1270 PRINT ,,,,,,"Are options correct? (y/n)": INPUT b$ 1280 IF b$="n" THEN GO TO 1180 1290 GO SUB 1300: GO TO 770 1300 POKE arc,b: POKE arc+7,o: POKE arc+11,e 1310 POKE arc+3,40-8*d 1320 POKE arc+10,s: POKE arc+2,c*8+71: POKE arc+12,61+140*(s=219) 1330 RETURN 1340 CLS : PRINT ,," Printer Interface Selection: " 1350 PRINT " ----------------------------": RETURN 1370 BEEP .01,.1: BEEP .01,.1: BEEP .01,.1: RETURN 10 PAPER NOT PI: INK VAL "7": BORDER SGN PI 20 CLEAR VAL "33280" 25 LET bep=VAL "1320" 30 GO SUB bep 40 PRINT AT VAL "5",VAL "13";"PC-Draw" 50 PRINT AT VAL "7",VAL "5";"Printer Support Package" 55 PRINT AT VAL "9",VAL "10";"For TS-2068" 60 PRINT AT VAL "11",VAL "12";"Ver.3.0" 70 PRINT AT VAL "13",VAL "7";"M.D.M. Enterprises" 80 PRINT AT VAL "15",VAL "13";"\*1987" 90 PRINT AT VAL "17",VAL "10";"LOADING CODE" 100 LOAD "PC-PCode"CODE 110 POKE VAL "23609",VAL "8" 130 INPUT " Date (xx/xx/xx) ";x$ 140 IF LEN x$>VAL "10" THEN GO TO VAL "120" 150 FOR f=SGN PI TO LEN x$: POKE VAL "34317"+f,CODE x$(f): NEXT f 160 INPUT " Printer width in chrs ? ";a 170 POKE VAL "33285",a 180 LET z$="(y/n)" 195 LET arc=VAL "34161": LET d=PEEK (arc+3): LET d$="Hi": LET a$="off": LET b=PEEK arc 197 LET e=PEEK (arc+11): LET c=PEEK (arc+2): LET s=PEEK (arc+10): LET o=PEEK (arc+7) 200 GO SUB bep: CLS : PRINT " Your Printer Driver is set for " 210 LET z=VAL "222" 211 PRINT ,," The Date is ";x$ 212 PRINT ,," Printer Width is ";a;" Chrs." 213 IF PEEK arc<>65 THEN GO TO VAL "216" 214 IF PEEK (arc+2)<>87 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>66 OR PEEK (arc+10)<>211 OR PEEK (arc+11)<>65 OR PEEK (arc+12)<>61 THEN GO TO z 215 PRINT ,," Printer Interface set for'A&J'": GO TO z+SGN PI 216 IF PEEK arc<>191 THEN GO TO z-INT PI 217 IF PEEK (arc+2)<>71 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>123 OR PEEK (arc+10)<>219 OR PEEK (arc+11)<>127 OR PEEK (arc+12)<>201 THEN GO TO z 218 PRINT ,," Interface is set for 'Tasman B'": GO TO z+SGN PI 219 IF PEEK arc<>127 THEN GO TO z 220 IF PEEK (arc+2)<>103 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>127 OR PEEK (arc+10)<>219 OR PEEK (arc+11)<>127 OR PEEK (arc+12)<>201 THEN GO TO z 221 PRINT ,," Interface set for Oliger/Aerco": GO TO z+SGN PI 222 PRINT ,," Interface is set for 'Other'": GO TO z+SGN PI 229 PRINT ,," Port no. for data out is ";: PRINT o 230 PRINT ,," Port no. for busy in is ";: PRINT b 235 IF PEEK (arc+12)=201 THEN PRINT ,," Hardware Strobe": GO TO 250 240 PRINT ,," Port no. for strobe is ";: PRINT e 250 PRINT ,," Bit number for busy in is ";: PRINT (c-71)/8 260 IF d=VAL "32" THEN LET d$="Hi" 270 IF d=VAL "40" THEN LET d$="Low" 280 PRINT ,," Bit ";(c-71)/8;" is '";d$;"' for busy? " 290 LET a$="on" 300 IF PEEK (arc+12)=201 THEN LET a$="off" 310 PRINT ,," Software strobe is '";a$;"'" 320 GO SUB bep+SGN PI: PRINT ,," Do you wish to reconfigure your Printer Driver? (Y/N) " 330 IF INKEY$="y" THEN GO TO VAL "370" 340 IF INKEY$="n" THEN GO TO VAL "650" 360 GO TO VAL "330" 380 GO SUB VAL "620" 390 PRINT ,,,," 1 A&J",," 2 Tasman B",," 3 Aerco",," 4 Oliger",," 5 Other "; 400 INPUT " Selection please: ";l 410 CLS : IF lVAL "5" THEN GO TO VAL "380" 420 LET l=INT l: IF l=SGN PI THEN LET e=VAL "65": LET b=e: LET c=VAL "2": LET d=SGN PI: LET s=VAL "211": LET o=e+SGN PI: GO TO VAL "570" 430 IF l=VAL "5" THEN GO TO VAL "460" 440 LET e=VAL "127": LET d=SGN PI: LET s=VAL "219": LET o=VAL "123"+4*(l>2): LET b=VAL "191"-64*(l>2): LET c=4*(l>2): GO SUB VAL "580" 450 GO TO VAL "190" 460 GO SUB VAL "620" 470 PRINT ,,,," Port no. for data out? ";: INPUT o: PRINT o 480 PRINT ,," Port no. for busy in? ";: INPUT b: PRINT b: LET e=b 490 PRINT ,," Bit number for busy in? ";: INPUT c: PRINT c 500 PRINT ,," Is Bit ";c,," Hi or Low for busy? (1/0) ";: INPUT d: PRINT d 510 IF d<>0 AND d<>1 THEN GO TO VAL "500" 520 PRINT ,," Software strobe? (y/n) ";: INPUT a$: PRINT ;a$ 530 IF a$="n" THEN LET s=VAL "219": GO TO VAL "550" 540 LET s=VAL "211": PRINT ,," Port no. for strobe? ";: INPUT e: PRINT e 550 PRINT ,,,,,,"Are options correct? ";z$: INPUT b$ 560 IF b$="n" THEN GO TO VAL "460" 570 GO SUB VAL "580": GO TO VAL "190" 580 POKE arc,b: POKE arc+7,o: POKE arc+11,e 590 POKE arc+3,40-8*d 600 POKE arc+10,s: POKE arc+2,c*8+71: POKE arc+12,61+140*(s=219) 610 RETURN 620 CLS : PRINT ,," Printer Interface Selection: " 630 PRINT " ----------------------------": RETURN 640 GO TO VAL "190" 650 INPUT "Save Customized Copy? (y/n)";a$: IF a$<>"y" THEN GO TO VAL "680" 660 CLS : PRINT ,,,," Saving 'PC-Print'": SAVE "PC-Print" LINE 10: PRINT ,," Saving 'PC-PCode'": SAVE "PC-PCode"CODE 33290,1042 667 ON ERR GO TO VAL "670" 668 BEEP VAL ".2",VAL "4": PRINT AT VAL "10",NOT PI;" Rewind to Verify ": VERIFY "": VERIFY ""CODE 669 ON ERR RESET : GO TO VAL "680" 670 GO SUB VAL "1400" 673 IF y$="s" THEN GO TO VAL "660" 680 DELETE ,110 685 GO SUB VAL "690": GO TO VAL "857" 690 GO SUB bep: INPUT "Name of File to be Loaded";a$: PRINT a$ 700 ON ERR GO TO VAL "740" 710 LOAD a$CODE 720 ON ERR RESET 721 IF a$<>"" THEN GO TO VAL "800" 722 FOR f=VAL "28" TO VAL "5" STEP -1 723 IF SCREEN$ (2,f)=" " THEN NEXT f 724 FOR j=VAL "7" TO f: LET a$=a$+SCREEN$ (2,j): NEXT j 730 GO TO VAL "800" 740 GO SUB bep: PRINT " Load of "; PAPER 2;a$; PAPER 0;" was BAD ": PRINT " Do you wish to try again ";z$ 750 ON ERR RESET 760 IF INKEY$="y" THEN GO TO VAL "690" 770 IF INKEY$="n" THEN GO TO VAL "1200" 790 GO TO VAL "760" 810 GO SUB bep: PRINT " Load of "; PAPER VAL "2";a$; PAPER NOT PI;" was GOOD" 820 IF PEEK 65187<>VAL "20" AND PEEK 65188<>VAL "20" AND PEEK 65186<>VAL "255" AND PEEK 65189<>VAL "0" AND PEEK 65182<>VAL "62" AND PEEK 65183<>VAL "150" THEN GO TO VAL "850" 830 PRINT : PRINT : PRINT PAPER VAL "2";a$; PAPER NOT PI;" was a Version 2.0 file" 840 POKE 33286,VAL "50": RANDOMIZE USR 33290: PRINT : PRINT : PRINT " CONVERTED" 850 PRINT : PRINT PAPER VAL "2";a$; PAPER NOT PI;" is a Version 3.0 file": POKE 33286,VAL "51" 852 INPUT "DO YOU WISH TO SAVE (y/n)? ";y$ 853 IF y$="y" THEN GO SUB VAL "1340" 855 RETURN 857 GO SUB bep+SGN PI: INPUT "LOAD, PRINT, QUIT (l/p/q)? ";y$ 858 IF y$="q" THEN GO TO VAL "1250" 859 IF y$="l" THEN GO TO VAL "685" 860 CLS : PRINT " No. of Copies to be printed": PRINT ,," (1 to 6)? "; 870 INPUT n: PRINT n 880 LET n=INT n: IF nVAL "6" THEN GO TO VAL "860" 890 DIM j$(3,n) 900 FOR f=SGN PI TO n 910 PRINT ,," No.";f;" Copy of "; PAPER VAL "2";a$; PAPER NOT PI 920 PRINT : PRINT ,," True or Mirror image (t/m)? "; 930 INPUT j$(1,f): PRINT j$(1,f) 940 PRINT ,," Quick or Camera-Ready (q/c)?"; 950 INPUT j$(2,f): PRINT j$(2,f) 960 PRINT ,," Grid or No Grid (g/n)? "; 970 INPUT j$(3,f): PRINT j$(3,f) 980 PRINT ,,,,"No.";f;" Copy of "; PAPER VAL "2";a$; PAPER NOT PI;" OK? ";z$;: INPUT n$ 990 CLS : IF n$<>"y" THEN GO TO VAL "910" 995 NEXT f 1000 GO SUB bep+SGN PI: PRINT ,," File is now ready to be Printed": PAUSE VAL "50" 1010 GO SUB bep+SGN PI: PRINT ,," Set your Printer and press any key" 1027 PAUSE NOT PI 1030 FOR j=SGN PI TO n 1040 FOR f=SGN PI TO INT PI: POKE 33286+f,CODE j$(f,j): NEXT f 1050 PAUSE VAL "40" 1052 FOR k=SGN PI TO LEN a$: POKE 34330+k,CODE a$(k): NEXT k 1054 POKE VAL "34330"+k,VAL "255" 1060 GO SUB bep: PRINT ,,,," PRINTING FILE " 1070 RANDOMIZE USR 33290 1080 NEXT j 1090 GO SUB bep: PRINT " Printout complete": PAUSE VAL "50" 1100 GO SUB VAL "852": GO TO VAL "857" 1250 GO SUB bep: PRINT ,," Do you wish to Load another Program ";z$ 1260 IF INKEY$="n" THEN STOP 1280 IF INKEY$="" THEN GO TO VAL "1260" 1300 CLEAR 65369: INPUT "Program Name?";c$ 1310 LOAD c$ 1320 CLS 1330 POKE 23658,NOT PI: BEEP VAL ".01",VAL ".1": BEEP VAL ".01",VAL ".1": BEEP VAL ".01",VAL ".1": RETURN 1340 LET l=PEEK 65209+256*PEEK 65210 1350 INPUT "File Name? ";a$ 1360 SAVE a$CODE l,65536-l: CLS 1365 GO SUB VAL "1390" 1368 ON ERR GO TO VAL "1375" 1370 VERIFY a$CODE 1371 ON ERR RESET : RETURN 1375 GO SUB VAL "1400" 1377 IF y$="s" OR y$="S" THEN GO TO VAL "1350" 1380 GO TO VAL "1371" 1390 BEEP VAL ".2",VAL "4": PRINT AT VAL "10",NOT PI;" Rewind to Verify ": RETURN 1400 ON ERR RESET 1410 PRINT : PRINT "VERIFY was bad",,"Do a new SAVE or","Ignore? (s/i)" 1420 INPUT y$ 1440 RETURN 10 CLEAR 54000 15 INK 7: PAPER 7: BORDER 1 20 LOAD "PC-Scrn"SCREEN$ 25 PRINT AT 0,0; 30 LOAD "PC-Code"CODE 35 PRINT AT 0,0; 40 LOAD "Draw" 10 DELETE VAL "220", 20 CLEAR VAL "27499" 30 RANDOMIZE USR VAL "64615" 40 DELETE ,VAL "30" 50 LET l=VAL "36082" 60 POKE VAL "23658",NOT PI 70 IF PEEK VAL "36066"=VAL "113" THEN STOP 80 LET n$="" 90 IF PEEK l<>VAL "32" THEN LET n$=n$+CHR$ PEEK l: LET l=l+1: GO TO VAL "90" 100 IF PEEK VAL "36066"=VAL "108" THEN GO TO VAL "150" 110 LET l=PEEK VAL "65209"+VAL "256"*PEEK VAL "65210" 115 PRINT "Source = ";l,"Length = ";VAL "65536"-l 120 SAVE n$CODE l,VAL "65536"-l 130 CLS : GO SUB VAL "200" 140 VERIFY n$CODE : GO TO VAL "190" 150 CLS : PRINT : PRINT " loading **";n$;"**" 160 GO SUB VAL "210" 170 LOAD n$CODE 180 IF PEEK VAL "65207"+VAL "256"*PEEK VAL "65208"10 THEN GO TO 290 310 FOR f=1 TO LEN a$: POKE 64601+f,CODE a$(f): NEXT f 320 PRINT AT 10,9;"PRINTER WIDTH": INPUT " Printer width in chrs ? ";a 330 POKE 62946,a 340 IF a<32 OR a>136 THEN GO TO 320 350 LET l=32 360 IF l"y" THEN GO TO 380 420 PRINT ,,,," Saving 'PC-Custom'": SAVE "PC-Custom" LINE 220: PRINT ,," Saving 'PC-Code'": SAVE "PC-Code"CODE 54344,11192 430 CLS : PRINT " If error occurs, GOTO 410": PRINT AT 10,11;"VERIFYING": VERIFY "PC-Custom": VERIFY "PC-Code"CODE 440 GO TO 380 450 CLEAR 54300 460 BORDER 1: PRINT AT 7,10;"PC-DRAW 3.0": PRINT AT 9,2;"PRINTED CIRCUIT BOARD SYSTEM": PRINT AT 11,10;"LOADING CODE" 470 LOAD ""CODE 54344 480 PAPER 0: INK 7: BORDER 1: CLS 490 POKE 23658,0: POKE 23609,9 500 FOR f=1 TO 4 510 PRINT AT 10,7; FLASH 1;" Stop the tape ": BEEP .4,6: NEXT f 520 CLS : PRINT AT 9,10;"BACK-UP COPY": INPUT "Make Back-up? (y/n)";a$: CLS : IF a$<>"y" THEN GO TO 610 530 CLS : PRINT ,,,," Saving 'PC-Draw'": SAVE "PC-Draw" LINE 450: PRINT ,," Saving 'PC-Code'": SAVE "PC-Code"CODE 54344,11192 540 ON ERR GO TO 580 550 BEEP VAL ".2",VAL "4": PRINT AT VAL "10",VAL "0"; FLASH VAL "1";" Rewind to verify " 560 PAUSE 150: CLS : PRINT AT 10,11;"VERIFYING": VERIFY "": VERIFY ""CODE 570 ON ERR RESET : GO TO 610 580 ON ERR RESET : PRINT : PRINT "VERIFY was BAD",,,,"Try a new SAVE"," or IGNOR" 581 INPUT "(s/i)? ";y$ 600 IF y$="s" THEN GO TO 530 610 BORDER 1 620 GO SUB 650 630 GO TO 400 640 PAPER 7: INK 0: BORDER 1 650 REM DRIVER is SET AT 660 LET arc=64445 670 CLS : PRINT AT 10,13;"DATE": INPUT " Date (xx/xx/xx) ";a$ 680 LET x$=a$ 690 IF LEN a$>10 THEN GO TO 670 700 FOR f=1 TO LEN a$: POKE 64601+f,CODE a$(f): NEXT f 710 PRINT AT 10,9;"PRINTER WIDTH": INPUT " Printer width in chrs ? ";a 720 POKE 62946,a 730 IF a<32 OR a>136 THEN GO TO 710 740 LET l=32 750 IF l65 THEN GO TO 860 840 IF PEEK (arc+2)<>87 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>66 OR PEEK (arc+10)<>211 OR PEEK (arc+11)<>65 OR PEEK (arc+12)<>61 THEN GO TO 920 850 PRINT ,," Printer Interface set for'A&J'": GO TO 930 860 IF PEEK arc<>191 THEN GO TO 890 870 IF PEEK (arc+2)<>71 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>123 OR PEEK (arc+10)<>219 OR PEEK (arc+11)<>127 OR PEEK (arc+12)<>201 THEN GO TO 920 880 PRINT ,," Interface is set for 'Tasman B'": GO TO 930 890 IF PEEK arc<>127 THEN GO TO 920 900 IF PEEK (arc+2)<>103 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>127 OR PEEK (arc+10)<>219 OR PEEK (arc+11)<>127 OR PEEK (arc+12)<>201 THEN GO TO 920 910 PRINT ,," Interface set for Oliger/Aerco": GO TO 930 920 PRINT ,," Interface is set for 'Other'": GO TO 930 930 PRINT ,," Port no. for data out is ";: PRINT o 940 PRINT ,," Port no. for busy in is ";: PRINT b 950 IF PEEK (arc+12)=201 THEN PRINT ,," Hardware Strobe": GO TO 970 960 PRINT ,," Port no. for strobe is ";: PRINT e 970 PRINT ,," Bit number for busy in is ";: PRINT (c-71)/8 980 IF d=32 THEN LET d$="Hi" 990 IF d=40 THEN LET d$="Low" 1000 PRINT ,," Bit ";(c-71)/8;" is '";d$;"' for busy? " 1010 LET a$="on" 1020 IF PEEK (arc+12)=201 THEN LET a$="off" 1030 PRINT ,," Software strobe is '";a$;"'" 1040 GO SUB 1370: PRINT ,," Do you wish to reconfigure your Printer Driver? (Y/N) " 1050 IF INKEY$="Y" OR INKEY$="y" THEN GO TO 1090 1060 IF INKEY$="n" OR INKEY$="N" THEN RETURN 1070 IF INKEY$="" THEN GO TO 1050 1080 GO TO 1050 1090 REM ***configure printer driver-pokes to printer driver 1100 GO SUB 1340 1110 CLS : PRINT ,,,," 1 A&J",," 2 Tasman",," 3 Aerco",," 4 Oliger",," 5 Other "; 1120 INPUT " Selection please: ";l 1130 CLS : IF l<1 OR l>5 THEN GO TO 1100 1140 LET l=INT l: IF l=1 THEN LET e=65: LET b=65: LET c=2: LET d=1: LET s=211: LET o=66: GO TO 1290 1150 IF l=5 THEN GO TO 1180 1160 LET e=127: LET d=1: LET s=219: LET o=123+4*(l>2): LET b=191-64*(l>2): LET c=4*(l>2): GO SUB 1300 1170 GO TO 770 1180 GO SUB 1340 1190 PRINT ,,,," Port no. for data out? ";: INPUT o: PRINT o 1200 PRINT ,," Port no. for busy in? ";: INPUT b: PRINT b: LET e=b 1210 PRINT ,," Bit number for busy in? ";: INPUT c: PRINT c 1220 PRINT ,," Is Bit ";c,," Hi or Low for busy? (1/0) ";: INPUT d: PRINT d 1230 IF d<>0 AND d<>1 THEN GO TO 1220 1240 PRINT ,," Software strobe? (y/n) ";: INPUT a$: PRINT ;a$ 1250 IF a$="n" THEN LET s=219: GO TO 1270 1260 LET s=211: PRINT ,," Port no. for strobe? ";: INPUT e: PRINT e 1270 PRINT ,,,,,,"Are options correct? (y/n)": INPUT b$ 1280 IF b$="n" THEN GO TO 1180 1290 GO SUB 1300: GO TO 770 1300 POKE arc,b: POKE arc+7,o: POKE arc+11,e 1310 POKE arc+3,40-8*d 1320 POKE arc+10,s: POKE arc+2,c*8+71: POKE arc+12,61+140*(s=219) 1330 RETURN 1340 CLS : PRINT ,," Printer Interface Selection: " 1350 PRINT " ----------------------------": RETURN 1370 BEEP .01,.1: BEEP .01,.1: BEEP .01,.1: RETURN 10 PAPER NOT PI: INK VAL "7": BORDER SGN PI 20 CLEAR VAL "33280" 25 LET bep=VAL "1320" 30 GO SUB bep 40 PRINT AT VAL "5",VAL "13";"PC-Draw" 50 PRINT AT VAL "7",VAL "5";"Printer Support Package" 55 PRINT AT VAL "9",VAL "10";"For TS-2068" 60 PRINT AT VAL "11",VAL "12";"Ver.3.0" 70 PRINT AT VAL "13",VAL "7";"M.D.M. Enterprises" 80 PRINT AT VAL "15",VAL "13";"\*1987" 90 PRINT AT VAL "17",VAL "10";"LOADING CODE" 100 LOAD "PC-PCode"CODE 110 POKE VAL "23609",VAL "8" 130 INPUT " Date (xx/xx/xx) ";x$ 140 IF LEN x$>VAL "10" THEN GO TO VAL "120" 150 FOR f=SGN PI TO LEN x$: POKE VAL "34317"+f,CODE x$(f): NEXT f 160 INPUT " Printer width in chrs ? ";a 170 POKE VAL "33285",a 180 LET z$="(y/n)" 195 LET arc=VAL "34161": LET d=PEEK (arc+3): LET d$="Hi": LET a$="off": LET b=PEEK arc 197 LET e=PEEK (arc+11): LET c=PEEK (arc+2): LET s=PEEK (arc+10): LET o=PEEK (arc+7) 200 GO SUB bep: CLS : PRINT " Your Printer Driver is set for " 210 LET z=VAL "222" 211 PRINT ,," The Date is ";x$ 212 PRINT ,," Printer Width is ";a;" Chrs." 213 IF PEEK arc<>65 THEN GO TO VAL "216" 214 IF PEEK (arc+2)<>87 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>66 OR PEEK (arc+10)<>211 OR PEEK (arc+11)<>65 OR PEEK (arc+12)<>61 THEN GO TO z 215 PRINT ,," Printer Interface set for'A&J'": GO TO z+SGN PI 216 IF PEEK arc<>191 THEN GO TO z-INT PI 217 IF PEEK (arc+2)<>71 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>123 OR PEEK (arc+10)<>219 OR PEEK (arc+11)<>127 OR PEEK (arc+12)<>201 THEN GO TO z 218 PRINT ,," Interface is set for 'Tasman B'": GO TO z+SGN PI 219 IF PEEK arc<>127 THEN GO TO z 220 IF PEEK (arc+2)<>103 OR PEEK (arc+3)<>32 OR PEEK (arc+7)<>127 OR PEEK (arc+10)<>219 OR PEEK (arc+11)<>127 OR PEEK (arc+12)<>201 THEN GO TO z 221 PRINT ,," Interface set for Oliger/Aerco": GO TO z+SGN PI 222 PRINT ,," Interface is set for 'Other'": GO TO z+SGN PI 229 PRINT ,," Port no. for data out is ";: PRINT o 230 PRINT ,," Port no. for busy in is ";: PRINT b 235 IF PEEK (arc+12)=201 THEN PRINT ,," Hardware Strobe": GO TO 250 240 PRINT ,," Port no. for strobe is ";: PRINT e 250 PRINT ,," Bit number for busy in is ";: PRINT (c-71)/8 260 IF d=VAL "32" THEN LET d$="Hi" 270 IF d=VAL "40" THEN LET d$="Low" 280 PRINT ,," Bit ";(c-71)/8;" is '";d$;"' for busy? " 290 LET a$="on" 300 IF PEEK (arc+12)=201 THEN LET a$="off" 310 PRINT ,," Software strobe is '";a$;"'" 320 GO SUB bep+SGN PI: PRINT ,," Do you wish to reconfigure your Printer Driver? (Y/N) " 330 IF INKEY$="y" THEN GO TO VAL "370" 340 IF INKEY$="n" THEN GO TO VAL "650" 360 GO TO VAL "330" 380 GO SUB VAL "620" 390 PRINT ,,,," 1 A&J",," 2 Tasman B",," 3 Aerco",," 4 Oliger",," 5 Other "; 400 INPUT " Selection please: ";l 410 CLS : IF lVAL "5" THEN GO TO VAL "380" 420 LET l=INT l: IF l=SGN PI THEN LET e=VAL "65": LET b=e: LET c=VAL "2": LET d=SGN PI: LET s=VAL "211": LET o=e+SGN PI: GO TO VAL "570" 430 IF l=VAL "5" THEN GO TO VAL "460" 440 LET e=VAL "127": LET d=SGN PI: LET s=VAL "219": LET o=VAL "123"+4*(l>2): LET b=VAL "191"-64*(l>2): LET c=4*(l>2): GO SUB VAL "580" 450 GO TO VAL "190" 460 GO SUB VAL "620" 470 PRINT ,,,," Port no. for data out? ";: INPUT o: PRINT o 480 PRINT ,," Port no. for busy in? ";: INPUT b: PRINT b: LET e=b 490 PRINT ,," Bit number for busy in? ";: INPUT c: PRINT c 500 PRINT ,," Is Bit ";c,," Hi or Low for busy? (1/0) ";: INPUT d: PRINT d 510 IF d<>0 AND d<>1 THEN GO TO VAL "500" 520 PRINT ,," Software strobe? (y/n) ";: INPUT a$: PRINT ;a$ 530 IF a$="n" THEN LET s=VAL "219": GO TO VAL "550" 540 LET s=VAL "211": PRINT ,," Port no. for strobe? ";: INPUT e: PRINT e 550 PRINT ,,,,,,"Are options correct? ";z$: INPUT b$ 560 IF b$="n" THEN GO TO VAL "460" 570 GO SUB VAL "580": GO TO VAL "190" 580 POKE arc,b: POKE arc+7,o: POKE arc+11,e 590 POKE arc+3,40-8*d 600 POKE arc+10,s: POKE arc+2,c*8+71: POKE arc+12,61+140*(s=219) 610 RETURN 620 CLS : PRINT ,," Printer Interface Selection: " 630 PRINT " ----------------------------": RETURN 640 GO TO VAL "190" 650 INPUT "Save Customized Copy? (y/n)";a$: IF a$<>"y" THEN GO TO VAL "680" 660 CLS : PRINT ,,,," Saving 'PC-Print'": SAVE "PC-Print" LINE 10: PRINT ,," Saving 'PC-PCode'": SAVE "PC-PCode"CODE 33290,1042 667 ON ERR GO TO VAL "670" 668 BEEP VAL ".2",VAL "4": PRINT AT VAL "10",NOT PI;" Rewind to Verify ": VERIFY "": VERIFY ""CODE 669 ON ERR RESET : GO TO VAL "680" 670 GO SUB VAL "1400" 673 IF y$="s" THEN GO TO VAL "660" 680 DELETE ,110 685 GO SUB VAL "690": GO TO VAL "857" 690 GO SUB bep: INPUT "Name of File to be Loaded";a$: PRINT a$ 700 ON ERR GO TO VAL "740" 710 LOAD a$CODE 720 ON ERR RESET 721 IF a$<>"" THEN GO TO VAL "800" 722 FOR f=VAL "28" TO VAL "5" STEP -1 723 IF SCREEN$ (2,f)=" " THEN NEXT f 724 FOR j=VAL "7" TO f: LET a$=a$+SCREEN$ (2,j): NEXT j 730 GO TO VAL "800" 740 GO SUB bep: PRINT " Load of "; PAPER 2;a$; PAPER 0;" was BAD ": PRINT " Do you wish to try again ";z$ 750 ON ERR RESET 760 IF INKEY$="y" THEN GO TO VAL "690" 770 IF INKEY$="n" THEN GO TO VAL "1200" 790 GO TO VAL "760" 810 GO SUB bep: PRINT " Load of "; PAPER VAL "2";a$; PAPER NOT PI;" was GOOD" 820 IF PEEK 65187<>VAL "20" AND PEEK 65188<>VAL "20" AND PEEK 65186<>VAL "255" AND PEEK 65189<>VAL "0" AND PEEK 65182<>VAL "62" AND PEEK 65183<>VAL "150" THEN GO TO VAL "850" 830 PRINT : PRINT : PRINT PAPER VAL "2";a$; PAPER NOT PI;" was a Version 2.0 file" 840 POKE 33286,VAL "50": RANDOMIZE USR 33290: PRINT : PRINT : PRINT " CONVERTED" 850 PRINT : PRINT PAPER VAL "2";a$; PAPER NOT PI;" is a Version 3.0 file": POKE 33286,VAL "51" 852 INPUT "DO YOU WISH TO SAVE (y/n)? ";y$ 853 IF y$="y" THEN GO SUB VAL "1340" 855 RETURN 857 GO SUB bep+SGN PI: INPUT "LOAD, PRINT, QUIT (l/p/q)? ";y$ 858 IF y$="q" THEN GO TO VAL "1250" 859 IF y$="l" THEN GO TO VAL "685" 860 CLS : PRINT " No. of Copies to be printed": PRINT ,," (1 to 6)? "; 870 INPUT n: PRINT n 880 LET n=INT n: IF nVAL "6" THEN GO TO VAL "860" 890 DIM j$(3,n) 900 FOR f=SGN PI TO n 910 PRINT ,," No.";f;" Copy of "; PAPER VAL "2";a$; PAPER NOT PI 920 PRINT : PRINT ,," True or Mirror image (t/m)? "; 930 INPUT j$(1,f): PRINT j$(1,f) 940 PRINT ,," Quick or Camera-Ready (q/c)?"; 950 INPUT j$(2,f): PRINT j$(2,f) 960 PRINT ,," Grid or No Grid (g/n)? "; 970 INPUT j$(3,f): PRINT j$(3,f) 980 PRINT ,,,,"No.";f;" Copy of "; PAPER VAL "2";a$; PAPER NOT PI;" OK? ";z$;: INPUT n$ 990 CLS : IF n$<>"y" THEN GO TO VAL "910" 995 NEXT f 1000 GO SUB bep+SGN PI: PRINT ,," File is now ready to be Printed": PAUSE VAL "50" 1010 GO SUB bep+SGN PI: PRINT ,," Set your Printer and press any key" 1027 PAUSE NOT PI 1030 FOR j=SGN PI TO n 1040 FOR f=SGN PI TO INT PI: POKE 33286+f,CODE j$(f,j): NEXT f 1050 PAUSE VAL "40" 1052 FOR k=SGN PI TO LEN a$: POKE 34330+k,CODE a$(k): NEXT k 1054 POKE VAL "34330"+k,VAL "255" 1060 GO SUB bep: PRINT ,,,," PRINTING FILE " 1070 RANDOMIZE USR 33290 1080 NEXT j 1090 GO SUB bep: PRINT " Printout complete": PAUSE VAL "50" 1100 GO SUB VAL "852": GO TO VAL "857" 1250 GO SUB bep: PRINT ,," Do you wish to Load another Program ";z$ 1260 IF INKEY$="n" THEN STOP 1280 IF INKEY$="" THEN GO TO VAL "1260" 1300 CLEAR 65369: INPUT "Program Name?";c$ 1310 LOAD c$ 1320 CLS 1330 POKE 23658,NOT PI: BEEP VAL ".01",VAL ".1": BEEP VAL ".01",VAL ".1": BEEP VAL ".01",VAL ".1": RETURN 1340 LET l=PEEK 65209+256*PEEK 65210 1350 INPUT "File Name? ";a$ 1360 SAVE a$CODE l,65536-l: CLS 1365 GO SUB VAL "1390" 1368 ON ERR GO TO VAL "1375" 1370 VERIFY a$CODE 1371 ON ERR RESET : RETURN 1375 GO SUB VAL "1400" 1377 IF y$="s" OR y$="S" THEN GO TO VAL "1350" 1380 GO TO VAL "1371" 1390 BEEP VAL ".2",VAL "4": PRINT AT VAL "10",NOT PI;" Rewind to Verify ": RETURN 1400 ON ERR RESET 1410 PRINT : PRINT "VERIFY was bad",,"Do a new SAVE or","Ignore? (s/i)" 1420 INPUT y$ 1440 RETURN ```