Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!ncar!boulder!sunybcs!mira.cs.Buffalo.EDU!Bowen From: bowen@mira.cs.Buffalo.EDU (Devon Bowen) Newsgroups: comp.sys.cbm Subject: Re: Aprotek Minimodem C Message-ID: <9759@eerie.acsu.Buffalo.EDU> Date: 5 Sep 89 20:57:13 GMT References: <4126@csd4.csd.uwm.edu> <2975@floenz2.UUCP> Sender: nobody@acsu.buffalo.edu Lines: 2030 Distribution: world In article <4126@csd4.csd.uwm.edu>, jgreco@csd4.csd.uwm.edu (Joe Greco) writes: > PostScript? Not sure if I can do anything with PostScript.... but > please send it anyways. :-) I've gotten a lot of requests through mail, so I'm posting it. This works on my C128, but has not been tested on a C64. I've been told by a cbm person (who reads this list, but I don't remember his name) that it may not work on a C64 due to differences in the DOT clock phase. A friend of mine is working on testing that now. So I don't guarentee this curcuit to work on all machines (just mine 8-). If you're willing to help debug it for your machine, let me know and I'll explain what the problems would be. I'm interested in making it general enough for all 64's and 128's (but I can't afford to buy all 64's and 128's to test it on!). I will most likely be posting another version in a few weeks that takes care of these problems so if you're not the type to debug, you might just want to wait. This circuit maps the UART into the IO area at $de00. The 6551 has four registers. These are mapped to $de00 through $de03. I don't have the chip specs handy (you can get them when you order the chips, though), so I really don't remember the specifics, but they are something like: $de00 Trans/recv register. Any incoming data from the modem is put in the register. Likewise, outgoing data to the modem is put here. $de01 Status register. The bits here tell things like if the chip has data for you or if it's ready to accept data, etc. $de02 Control register. Sets parity, word length, etc. $de03 Command register. Controls when interrupts are generated and a few other things. The chip specs have all the info you need to write a driver. It's really pretty easy. When you initialize, just set the parity, baud and stuff. Then turn on the interrupts and you're ready to go. The board will then generate an IRQ when it needs attention. Read $de01 to find out why it needs your attention, process the data and return from interrupt. > Do you have driver software? I'm looking for examples of how to > configure, read and write bytes.... I had a general one that read data into a queue and then served it to the users program. It ran under C Power as a function. I accidently erased the disk, though. It was only about 50 lines or so. If someone wants to get it built into a terminal program, I'd be willing to help write the driver. Devon ----------------------------------cut here--------------------------------- %!PS-Adobe-2.0 %%Title: /tmp/SDb00901 %%Creator: bowen %%CreationDate: Sun May 28 14:44:34 1989 %%Pages: 1 %%BoundingBox: 18 2.88 594 789.12 %%EndComments /draw_initial_state save def /displaylistdict 80 dict def displaylistdict begin %% catch nocurrentpoint error for: %% pathbbox /ncpoint errordict /nocurrentpoint get def errordict begin /nocurrentpoint { dup /pathbbox load eq { pop 0 0 1 1 } { ncpoint } ifelse } bind def end /m {moveto} bind def /l {lineto} bind def %% pattern stuff /BPSIDE 32 def %% pixels per pattern side /PATFREQ 3.0 def %% pattern pixels per mm /drawpat_mat [PATFREQ 0 0 PATFREQ 0 0] def /drawpat_pw BPSIDE def %% pattern pixel width /drawpat_ph BPSIDE def %% pattern pixel height /drawpat_w drawpat_pw PATFREQ div def %% pattern mm width /drawpat_h drawpat_ph PATFREQ div def %% pattern mm height /drawpat_bs 1 def %% pattern bits per pixel /savemat matrix def /topmat matrix def /patmat matrix def /start_display_list { 0 setlinecap 10 setmiterlimit } bind def /patpath { topmat setmatrix pathbbox %% get lo - hi indecies /hy exch drawpat_h div floor cvi def /hx exch drawpat_w div floor cvi def /ly exch drawpat_h div floor cvi def /lx exch drawpat_w div floor cvi def lx 1 hx { drawpat_w mul ly 1 hy { drawpat_h mul exch dup 3 1 roll exch patmat currentmatrix pop translate drawpat_pw drawpat_ph drawpat_bs drawpat_mat drawpat_proc image patmat setmatrix } for pop } for } bind def /image_raster { %% sw sh dw dh xs ys translate scale /sh exch def /sw exch def /imagebuf sw 7 add 8 idiv string def sw sh 1 [sw 0 0 sh 0 0] { currentfile imagebuf readhexstring pop } image } bind def /r {rmoveto} bind def /sp {x 0 rmoveto} bind def /rl {rlineto} bind def /onelet 1 string def %% show a string /s { complex_color { { onelet exch 0 exch put gsave onelet true charpath clip patpath grestore onelet stringwidth rmoveto } forall } { show } ifelse } bind def /box { newpath m l l l closepath } bind def /pix_to_units { 144 300 div mul } bind def /apix_to_units { 144 exch div mul } bind def /badfont null def /badfont_trap { badfont null ne { 2 dict begin gsave .9 setgray clippath pathbbox /h exch def /w exch def 0 h translate 1 -1 scale /Times-Roman findfont 17 scalefont setfont w 20 div h 3 mul 7 div moveto badfont show (:) show /Times-Roman findfont 25 scalefont setfont w 20 div h 2 mul 7 div moveto (Font not available) show w 20 div h 1 mul 7 div moveto (on this printer.) show grestore end /badfont null store } if } def /reencode_small_dict 12 dict def /ReencodeSmall { reencode_small_dict begin /new_codes_and_names exch def /new_font_name exch def /base_font_name exch def /base_font_dict base_font_name findfont def base_font_dict /FontName get base_font_name ne { /badfont base_font_name 30 string cvs store } if /newfont base_font_dict maxlength dict def base_font_dict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName new_font_name put new_codes_and_names aload pop new_codes_and_names length 2 idiv { newfont /Encoding get 3 1 roll put } repeat new_font_name newfont definefont pop end %%reencode_small_dict } def /extended_Zapf [ 8#223 /a89 8#224 /a90 8#225 /a93 8#226 /a94 8#227 /a91 8#230 /a92 8#231 /a205 8#232 /a85 8#233 /a206 8#234 /a86 8#235 /a87 8#236 /a88 8#237 /a95 8#240 /a96 ] def /extended_Standard [ 128 /Acircumflex 129 /Adieresis 130 /Agrave 131 /Aring 132 /Atilde 133 /Ccedilla 134 /Eacute 135 /Ecircumflex 136 /Edieresis 137 /Egrave 138 /Iacute 139 /Icircumflex 140 /Idieresis 141 /Igrave 142 /Ntilde 143 /Oacute 144 /Ocircumflex 145 /Odieresis 146 /Ograve 147 /Otilde 148 /Scaron 149 /Uacute 150 /Ucircumflex 151 /Udieresis 152 /Ugrave 153 /Ydieresis 154 /Zcaron 155 /aacute 156 /acircumflex 157 /adieresis 158 /agrave 159 /aring 160 /atilde 209 /ccedilla 210 /copyright 211 /eacute 212 /ecircumflex 213 /edieresis 214 /egrave 215 /iacute 216 /icircumflex 217 /idieresis 218 /igrave 219 /logicalnot 220 /minus 221 /ntilde 222 /oacute 223 /ocircumflex 224 /odieresis 228 /ograve 229 /otilde 230 /registered 231 /scaron 236 /trademark 237 /uacute 238 /ucircumflex 239 /udieresis 240 /ugrave 242 /ydieresis 243 /zcaron 244 /Aacute ] def /extended_Symbol [ ] def /extend_font { %% stack: fontname newfontname exch dup (ZapfDingbats) eq { cvn exch cvn extended_Zapf ReencodeSmall } { dup (Symbol) eq { cvn exch cvn extended_Symbol ReencodeSmall } { cvn exch cvn extended_Standard ReencodeSmall } ifelse } ifelse } bind def /getfont { /f exch def f cvn where { begin f cvx cvn exec setfont end } { f 0 f length 3 sub getinterval (LocalFont) extend_font /LocalFont findfont /sz f f length 3 sub 3 getinterval cvi def [ sz 0 0 sz neg 0 0 ] makefont dup f cvn exch def setfont } ifelse } bind def /ul { %% space drop thickness gsave currentpoint currentlinewidth currentpoint newpath moveto 6 -3 roll setlinewidth 0 exch r 0 rl stroke setlinewidth m grestore } bind def /ss { currentpoint pop exch m } bind def /leader_insert { /str exch def /sp1 exch def -1 0 { pop sp1 0 str ashow } for } bind def /nx { /x exch def } bind def 0. nx %%EndProlog %%Page: 1 1 gsave 2.83465 -2.83465 scale 0 -277.368 translate topmat currentmatrix pop start_display_list % polyline2 0 setlinejoin 0.1 setlinewidth 0 setgray gsave newpath 81.28 157.48 m 71.12 157.48 l 71.12 238.76 l stroke grestore % polyline2 gsave newpath 104.14 185.42 m 109.22 185.42 l stroke grestore % polyline2 gsave newpath 25.4 238.76 m 25.4 218.44 l 17.78 218.44 l 17.78 223.52 l stroke grestore % polyline2 gsave newpath 104.14 160.02 m 124.46 160.02 l 124.46 238.76 l stroke grestore % polyline2 gsave newpath 104.14 162.56 m 132.08 162.56 l 132.08 238.76 l stroke grestore % polyline2 gsave newpath 104.14 165.1 m 139.7 165.1 l 139.7 238.76 l stroke grestore % polyline2 gsave newpath 104.14 167.64 m 147.32 167.64 l 147.32 238.76 l stroke grestore % polyline2 gsave newpath 104.14 170.18 m 154.94 170.18 l 154.94 238.76 l stroke grestore % polyline2 gsave newpath 104.14 172.72 m 162.56 172.72 l 162.56 238.76 l stroke grestore % polyline2 gsave newpath 104.14 175.26 m 170.18 175.26 l 170.18 238.76 l stroke grestore % polyline2 gsave newpath 104.14 177.8 m 177.8 177.8 l 177.8 238.76 l stroke grestore % polyline2 gsave newpath 81.28 185.42 m 76.2 185.42 l 76.2 190.5 l 76.2 193.04 l 167.64 193.04 l 167.64 246.38 l stroke grestore % polyline2 gsave newpath 81.28 182.88 m 73.66 182.88 l 73.66 195.58 l 175.26 195.58 l 175.26 246.38 l stroke grestore % polyline2 gsave newpath 33.02 40.64 m 106.68 40.64 l 106.68 60.96 l stroke grestore % polyline2 gsave newpath 104.84 60.9078 m 108.396 60.9078 l stroke grestore % polyline2 gsave newpath 105.84 64.13 m 107.507 64.13 l stroke grestore % polyline2 gsave newpath 105.396 62.5744 m 107.84 62.5744 l stroke grestore % polyline2 gsave newpath 99.06 48.26 m 106.68 48.26 l stroke grestore % polyline2 gsave newpath 81.28 172.72 m 17.78 172.72 l 17.78 177.8 l stroke grestore % polyline2 gsave newpath 17.78 177.8 m 19.05 178.435 l 16.51 179.07 l 19.05 179.705 l 16.51 180.34 l 19.05 180.975 l 16.51 181.61 l 19.05 182.245 l 16.51 182.88 l 19.05 183.515 l 16.51 184.15 l 19.05 184.785 l 17.78 185.42 l stroke grestore % polyline2 gsave newpath 17.78 185.42 m 17.78 187.96 l stroke grestore % polyline2 gsave newpath 16.0956 187.934 m 19.6511 187.934 l stroke grestore % polyline2 gsave newpath 17.0956 191.157 m 18.7622 191.157 l stroke grestore % polyline2 gsave newpath 16.6511 189.601 m 19.0956 189.601 l stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 35.0044 179.896] concat 25.4 144 div dup scale 0 0 m 18 ss -83.789 18.000 m (Symbol024) getfont (100 K W) s savemat setmatrix % polyline2 gsave newpath 16.0956 223.494 m 19.6511 223.494 l stroke grestore % polyline2 gsave newpath 17.0956 226.717 m 18.7622 226.717 l stroke grestore % polyline2 gsave newpath 16.6511 225.161 m 19.0956 225.161 l stroke grestore % polyline2 gsave newpath 104.14 180.34 m 119.38 180.34 l 119.38 198.12 l stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 116.284 200.216] concat 25.4 144 div dup scale 0 0 m 18 ss -83.789 18.000 m (Symbol024) getfont (100 K W) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [0.999992 0.00434875 -0.0042038 1.03619 87.0463 160.655] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m 6.000 nx sp (Times-Roman024) getfont (6551) s 50 ss 0.000 50.000 m (UART) s savemat setmatrix % irpoly2 gsave newpath 81.28 149.86 m 104.14 149.86 l 104.14 187.96 l 81.28 187.96 l closepath stroke grestore % ellarc3 2 setlinejoin gsave matrix currentmatrix 92.71 149.86 translate 1.905 1.905 scale newpath 0 0 1 0 180 arc setmatrix eofill grestore gsave matrix currentmatrix 92.71 149.86 translate 1.905 1.905 scale newpath 0 0 1 0 180 arc setmatrix stroke grestore % polyline2 0 setlinejoin gsave newpath 100.965 46.99 m 100.965 45.72 l stroke grestore % polyline2 gsave newpath 99.06 45.72 m 99.06 50.8 l stroke grestore % ellarc3 2 setlinejoin gsave matrix currentmatrix 94.615 48.26 translate 3.17499 3.17499 scale newpath 0 0 1 306.87 53.1303 arc setmatrix stroke grestore % polyline2 0 setlinejoin gsave newpath 96.52 48.26 m 97.79 48.26 l stroke grestore % polyline2 gsave newpath 101.6 46.355 m 100.33 46.355 l stroke grestore % polyline2 gsave newpath 119.38 198.12 m 120.65 198.755 l 118.11 199.39 l 120.65 200.025 l 118.11 200.66 l 120.65 201.295 l 118.11 201.93 l 120.65 202.565 l 118.11 203.2 l 120.65 203.835 l 118.11 204.47 l 120.65 205.105 l 119.38 205.74 l stroke grestore % polyline2 gsave newpath 119.38 205.74 m 119.38 208.28 l stroke grestore % polyline2 gsave newpath 117.696 208.254 m 121.251 208.254 l stroke grestore % polyline2 gsave newpath 118.696 211.477 m 120.362 211.477 l stroke grestore % polyline2 gsave newpath 118.251 209.921 m 120.696 209.921 l stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 30.6222 38.6556] concat 25.4 144 div dup scale 0 0 m 18 ss -85.898 18.000 m (Times-Roman024) getfont (GND \(7\)) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 30.6867 28.5422] concat 25.4 144 div dup scale 0 0 m 18 ss -65.906 18.000 m (Times-Roman024) getfont (TX \(2\)) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 30.6511 33.6056] concat 25.4 144 div dup scale 0 0 m 18 ss -65.953 18.000 m (Times-Roman024) getfont (RC \(3\)) s savemat setmatrix % ellipse2 2 setlinejoin gsave matrix currentmatrix 106.68 48.26 translate 0.507996 0.507996 scale newpath 0 0 1 0 360 arc setmatrix closepath eofill grestore gsave matrix currentmatrix 106.68 48.26 translate 0.507996 0.507996 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % irpoly2 0 setlinejoin gsave newpath 48.3067 73.6267 m 71.1667 73.6267 l 71.1667 83.7867 l 48.3067 83.7867 l closepath stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 51.82 76.94] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (MAX232) s savemat setmatrix % ellarc3 2 setlinejoin gsave matrix currentmatrix 71.12 78.74 translate 1.27 1.27 scale newpath 0 0 1 270 90 arcn setmatrix eofill grestore gsave matrix currentmatrix 71.12 78.74 translate 1.27 1.27 scale newpath 0 0 1 270 90 arcn setmatrix stroke grestore % polyline2 0 setlinejoin gsave newpath 93.98 76.835 m 95.25 76.835 l stroke grestore % polyline2 gsave newpath 93.98 78.74 m 99.06 78.74 l stroke grestore % ellarc3 2 setlinejoin gsave matrix currentmatrix 96.52 83.185 translate 3.17501 3.17501 scale newpath 0 0 1 216.87 323.13 arc setmatrix stroke grestore % polyline2 0 setlinejoin gsave newpath 96.52 81.28 m 96.52 80.01 l stroke grestore % polyline2 gsave newpath 94.615 77.47 m 94.615 76.2 l stroke grestore % polyline2 gsave newpath 66.04 73.66 m 66.04 71.12 l 96.52 71.12 l 96.52 78.74 l stroke grestore % polyline2 gsave newpath 68.58 83.82 m 68.58 86.36 l 104.14 86.36 l stroke grestore % polyline2 gsave newpath 96.52 81.28 m 96.52 86.36 l stroke grestore % ellipse2 2 setlinejoin gsave matrix currentmatrix 105.102 86.3487 translate 1 1 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 104.013 87.6932] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (+5) s savemat setmatrix % ellipse2 gsave matrix currentmatrix 96.52 86.36 translate 0.508003 0.508003 scale newpath 0 0 1 0 360 arc setmatrix closepath eofill grestore gsave matrix currentmatrix 96.52 86.36 translate 0.508003 0.508003 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % polyline2 0 setlinejoin gsave newpath 81.28 180.34 m 58.42 180.34 l 58.42 83.82 l stroke grestore % polyline2 gsave newpath 55.88 83.82 m 55.88 175.26 l 81.28 175.26 l stroke grestore % polyline2 gsave newpath 53.34 83.82 m 53.34 177.8 l 81.28 177.8 l stroke grestore % polyline2 gsave newpath 92.14 93.9278 m 95.696 93.9278 l stroke grestore % polyline2 gsave newpath 93.14 97.15 m 94.807 97.15 l stroke grestore % polyline2 gsave newpath 92.696 95.5944 m 95.14 95.5944 l stroke grestore % polyline2 gsave newpath 66.04 83.82 m 66.04 88.9 l 93.98 88.9 l 93.98 93.98 l stroke grestore % polyline2 gsave newpath 63.5 83.82 m 63.5 86.36 l 63.5 91.44 l 83.82 91.44 l 83.82 30.48 l 33.02 30.48 l stroke grestore % polyline2 gsave newpath 33.02 35.56 m 81.28 35.56 l 81.28 93.98 l 60.96 93.98 l 60.96 83.82 l stroke grestore % polyline2 gsave newpath 55.88 73.66 m 55.88 68.58 l 55.88 48.26 l 96.52 48.26 l stroke grestore % polyline2 gsave newpath 73.025 62.23 m 73.025 60.96 l stroke grestore % polyline2 gsave newpath 71.12 60.96 m 71.12 66.04 l stroke grestore % ellarc3 2 setlinejoin gsave matrix currentmatrix 66.675 63.5 translate 3.17499 3.17499 scale newpath 0 0 1 306.87 53.1304 arc setmatrix stroke grestore % polyline2 0 setlinejoin gsave newpath 68.58 63.5 m 69.85 63.5 l stroke grestore % polyline2 gsave newpath 73.66 61.595 m 72.39 61.595 l stroke grestore % polyline2 gsave newpath 63.5 73.66 m 63.5 63.5 l 68.58 63.5 l stroke grestore % polyline2 gsave newpath 68.58 73.66 m 68.58 71.12 l 68.58 68.58 l 76.2 68.58 l 76.2 63.5 l 71.12 63.5 l stroke grestore % polyline2 gsave newpath 67.945 52.07 m 67.945 50.8 l stroke grestore % polyline2 gsave newpath 66.04 50.8 m 66.04 55.88 l stroke grestore % ellarc3 2 setlinejoin gsave matrix currentmatrix 61.595 53.34 translate 3.17499 3.17499 scale newpath 0 0 1 306.87 53.1303 arc setmatrix stroke grestore % polyline2 0 setlinejoin gsave newpath 63.5 53.34 m 64.77 53.34 l stroke grestore % polyline2 gsave newpath 68.58 51.435 m 67.31 51.435 l stroke grestore % polyline2 gsave newpath 58.42 73.66 m 58.42 71.12 l 58.42 53.34 l 63.5 53.34 l stroke grestore % polyline2 gsave newpath 60.96 73.66 m 60.96 71.12 l 60.96 58.42 l 71.12 58.42 l 71.12 53.34 l 66.04 53.34 l stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 109.093 186.753] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (+5) s savemat setmatrix % ellipse2 2 setlinejoin gsave matrix currentmatrix 110.182 185.409 translate 1 1 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % ellarc3 gsave matrix currentmatrix 154.94 121.92 translate 1.26999 1.26999 scale newpath 0 0 1 269.999 90.0007 arc setmatrix eofill grestore gsave matrix currentmatrix 154.94 121.92 translate 1.26999 1.26999 scale newpath 0 0 1 269.999 90.0007 arc setmatrix stroke grestore % irpoly2 0 setlinejoin gsave newpath 154.94 116.84 m 175.26 116.84 l 175.26 127 l 154.94 127 l closepath stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 158.8 120.153] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (74LS74) s savemat setmatrix % polyline2 gsave newpath 172.72 127 m 172.72 129.54 l 177.8 129.54 l stroke grestore % polyline2 gsave newpath 160.02 111.76 m 160.02 116.84 l stroke grestore % polyline2 gsave newpath 167.64 116.84 m 167.64 104.14 l 157.48 104.14 l stroke grestore % polyline2 gsave newpath 157.48 99.06 m 157.48 116.84 l stroke grestore % ellipse2 2 setlinejoin gsave matrix currentmatrix 157.553 98.16 translate 1 1 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 159.02 98.3933] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (+5) s savemat setmatrix % polyline2 0 setlinejoin gsave newpath 63.5 238.76 m 63.5 215.9 l 187.96 215.9 l 187.96 109.22 l 165.1 109.22 l 165.1 116.84 l stroke grestore % polyline2 gsave newpath 170.18 116.84 m 170.18 106.68 l 144.78 106.68 l 144.78 154.94 l 104.14 154.94 l stroke grestore % polyline2 gsave newpath 162.56 127 m 162.56 144.78 l 187.96 144.78 l stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 170.053 138.493] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (+5) s savemat setmatrix % ellipse2 2 setlinejoin gsave matrix currentmatrix 171.142 137.149 translate 1 1 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % polyline2 0 setlinejoin gsave newpath 165.1 127 m 165.1 137.16 l 170.18 137.16 l stroke grestore % polyline2 gsave newpath 160.02 127 m 160.02 132.08 l 63.5 132.08 l 63.5 185.42 l 53.34 185.42 l 53.34 246.38 l stroke grestore % polyline2 gsave newpath 157.48 127 m 157.48 132.08 l stroke grestore % ellipse2 2 setlinejoin gsave matrix currentmatrix 157.48 132.08 translate 0.634995 0.634995 scale newpath 0 0 1 0 360 arc setmatrix closepath eofill grestore gsave matrix currentmatrix 157.48 132.08 translate 0.634995 0.634995 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % ellipse2 gsave matrix currentmatrix 160.02 111.76 translate 0.634995 0.634995 scale newpath 0 0 1 0 360 arc setmatrix closepath eofill grestore gsave matrix currentmatrix 160.02 111.76 translate 0.634995 0.634995 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % ellipse2 gsave matrix currentmatrix 157.48 104.14 translate 0.634995 0.634995 scale newpath 0 0 1 0 360 arc setmatrix closepath eofill grestore gsave matrix currentmatrix 157.48 104.14 translate 0.634995 0.634995 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % ellipse2 gsave matrix currentmatrix 187.96 144.78 translate 0.634995 0.634995 scale newpath 0 0 1 0 360 arc setmatrix closepath eofill grestore gsave matrix currentmatrix 187.96 144.78 translate 0.634995 0.634995 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 85.1533 256.54] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (C-64) s 6.000 nx sp (Expansion) s sp (Port) s savemat setmatrix % polyline2 0 setlinejoin gsave newpath 162.56 116.84 m 162.56 111.76 l 149.86 111.76 l 149.86 134.62 l 167.64 134.62 l 167.64 127 l stroke grestore % polyline2 gsave newpath 104.14 152.4 m 109.22 152.4 l 109.22 137.16 l 68.58 137.16 l 68.58 190.5 l 55.88 190.5 l 55.88 238.76 l stroke grestore % polyline2 gsave newpath 104.14 157.48 m 111.76 157.48 l 111.76 134.62 l 66.04 134.62 l 66.04 187.96 l 48.26 187.96 l 48.26 238.76 l stroke grestore % polyline2 gsave newpath 81.28 152.4 m 78.74 152.4 l 78.74 149.86 l 78.74 139.7 l 86.36 139.7 l 86.36 142.24 l stroke grestore % polyline2 gsave newpath 177.8 129.54 m 177.8 132.08 l stroke grestore % polyline2 gsave newpath 176.116 132.054 m 179.671 132.054 l stroke grestore % polyline2 gsave newpath 177.116 135.277 m 178.782 135.277 l stroke grestore % polyline2 gsave newpath 176.671 133.721 m 179.116 133.721 l stroke grestore % polyline2 gsave newpath 84.52 142.188 m 88.076 142.188 l stroke grestore % polyline2 gsave newpath 85.52 145.41 m 87.187 145.41 l stroke grestore % polyline2 gsave newpath 85.076 143.854 m 87.52 143.854 l stroke grestore % polyline2 gsave newpath 71.12 142.24 m 71.12 154.94 l 81.28 154.94 l stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 72.66 141.573] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (+5) s savemat setmatrix % ellipse2 2 setlinejoin gsave matrix currentmatrix 71.1934 141.34 translate 1 1 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % polyline2 0 setlinejoin gsave newpath 81.28 160.02 m 38.1 160.02 l 38.1 246.38 l stroke grestore % irpoly2 gsave newpath 15.24 121.92 m 38.1 121.92 l 38.1 134.62 l 15.24 134.62 l closepath stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 26.4 124.127] concat 25.4 144 div dup scale 0 0 m 18 ss -57.984 18.000 m (Times-Roman024) getfont (1.8432 Mhz) s 50 ss -47.262 50.000 m (Oscillator) s savemat setmatrix % polyline2 gsave newpath 20.32 114.3 m 20.32 121.92 l stroke grestore % polyline2 gsave newpath 20.32 134.62 m 20.32 139.7 l stroke grestore % polyline2 gsave newpath 18.48 139.648 m 22.036 139.648 l stroke grestore % polyline2 gsave newpath 19.48 142.87 m 21.147 142.87 l stroke grestore % polyline2 gsave newpath 19.036 141.314 m 21.48 141.314 l stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 21.86 113.633] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (+5) s savemat setmatrix % ellipse2 2 setlinejoin gsave matrix currentmatrix 20.3933 113.4 translate 1 1 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % polyline2 0 setlinejoin gsave newpath 81.28 165.1 m 33.02 165.1 l 33.02 134.62 l stroke grestore % irpoly2 gsave newpath 20.32 238.76 m 190.5 238.76 l 190.5 251.46 l 20.32 251.46 l closepath stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 26.2889 240.967] concat 25.4 144 div dup scale 0 0 m 18 ss -12.000 18.000 m (Times-Roman024) getfont (1) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 26.8756 246.071] concat 25.4 144 div dup scale 0 0 m 18 ss -17.320 18.000 m (Times-Roman024) getfont (A) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 33.9556 240.96] concat 25.4 144 div dup scale 0 0 m 18 ss -12.000 18.000 m (Times-Roman024) getfont (2) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 34.7822 246.071] concat 25.4 144 div dup scale 0 0 m 18 ss -16.008 18.000 m (Times-Roman024) getfont (B) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 41.6556 240.898] concat 25.4 144 div dup scale 0 0 m 18 ss -12.000 18.000 m (Times-Roman024) getfont (3) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 41.9578 245.962] concat 25.4 144 div dup scale 0 0 m 18 ss -16.008 18.000 m (Times-Roman024) getfont (C) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 48.9067 240.991] concat 25.4 144 div dup scale 0 0 m 18 ss -12.000 18.000 m (Times-Roman024) getfont (4) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 56.8756 240.976] concat 25.4 144 div dup scale 0 0 m 18 ss -12.000 18.000 m (Times-Roman024) getfont (5) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 64.3689 240.864] concat 25.4 144 div dup scale 0 0 m 18 ss -12.000 18.000 m (Times-Roman024) getfont (6) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 72.02 240.96] concat 25.4 144 div dup scale 0 0 m 18 ss -12.000 18.000 m (Times-Roman024) getfont (7) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 79.7511 240.864] concat 25.4 144 div dup scale 0 0 m 18 ss -12.000 18.000 m (Times-Roman024) getfont (8) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 87.3711 240.976] concat 25.4 144 div dup scale 0 0 m 18 ss -12.000 18.000 m (Times-Roman024) getfont (9) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 95.9911 240.913] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (10) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 103.64 240.913] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (11) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 111.336 240.913] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (12) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 118.956 240.898] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (13) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 134.244 240.978] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (15) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 141.738 240.962] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (16) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 149.467 240.9] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (17) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 157.147 240.967] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (18) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 164.596 240.931] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (19) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 172.231 240.913] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (20) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 179.676 240.98] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (21) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 187.42 240.949] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (22) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 49.54 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -17.320 18.000 m (Times-Roman024) getfont (D) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 57.2067 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -14.648 18.000 m (Times-Roman024) getfont (E) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 64.54 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -13.336 18.000 m (Times-Roman024) getfont (F) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 72.4289 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -17.320 18.000 m (Times-Roman024) getfont (H) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 79.54 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -9.328 18.000 m (Times-Roman024) getfont (J) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 87.7622 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -17.320 18.000 m (Times-Roman024) getfont (K) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 95.4289 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -14.648 18.000 m (Times-Roman024) getfont (L) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 103.429 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -21.328 18.000 m (Times-Roman024) getfont (M) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 110.651 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -17.320 18.000 m (Times-Roman024) getfont (N) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 118.318 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -13.336 18.000 m (Times-Roman024) getfont (P) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 125.984 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -16.008 18.000 m (Times-Roman024) getfont (R) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 133.429 245.939] concat 25.4 144 div dup scale 0 0 m 18 ss -13.336 18.000 m (Times-Roman024) getfont (S) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 140.984 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -14.648 18.000 m (Times-Roman024) getfont (T) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 148.762 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -17.320 18.000 m (Times-Roman024) getfont (U) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 156.429 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -17.320 18.000 m (Times-Roman024) getfont (V) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 164.318 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -22.641 18.000 m (Times-Roman024) getfont (W) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 171.651 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -17.320 18.000 m (Times-Roman024) getfont (X) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 179.096 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -17.320 18.000 m (Times-Roman024) getfont (Y) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 186.54 246.05] concat 25.4 144 div dup scale 0 0 m 18 ss -14.648 18.000 m (Times-Roman024) getfont (Z) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 126.433 240.947] concat 25.4 144 div dup scale 0 0 m 18 ss -24.000 18.000 m (Times-Roman024) getfont (14) s savemat setmatrix % polyline2 gsave newpath 33.02 238.76 m 33.02 213.36 l 17.78 213.36 l 17.78 200.66 l stroke grestore % ellipse2 2 setlinejoin gsave matrix currentmatrix 17.8533 199.76 translate 1 1 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 19.2067 200.05] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (+5) s 6.000 nx sp (supply) s savemat setmatrix % polyline2 0 setlinejoin gsave newpath 104.14 182.88 m 109.22 182.88 l 109.22 180.34 l stroke grestore % ellipse2 2 setlinejoin gsave matrix currentmatrix 109.22 180.34 translate 90 rotate 0.508007 0.508007 scale newpath 0 0 1 0 360 arc setmatrix closepath eofill grestore gsave matrix currentmatrix 109.22 180.34 translate 90 rotate 0.508007 0.508007 scale newpath 0 0 1 0 360 arc setmatrix closepath stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 30.6511 43.8589] concat 25.4 144 div dup scale 0 0 m 18 ss -93.914 18.000 m (Times-Roman024) getfont (DTR \(20\)) s savemat setmatrix % polyline2 0 setlinejoin gsave newpath 33.02 45.72 m 53.34 45.72 l 53.34 73.66 l stroke grestore % text /complex_color false def savemat currentmatrix pop [1 0 0 1 14.2067 55.8433] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (DB-25) s 6.000 nx sp (for) s 50 ss 0.000 50.000 m (RS-232) s sp (I/O) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 127 58.42] concat 25.4 144 div dup scale 0 0 m 19 ss 0.000 19.000 m (Times-Roman026) getfont (All) s 6.500 nx sp (caps) s sp (are) s sp (10uF,) s sp (16V) s savemat setmatrix % text /complex_color false def savemat currentmatrix pop [1 0 0 1 127 38.1] concat 25.4 144 div dup scale 0 0 m 18 ss 0.000 18.000 m (Times-Roman024) getfont (Circuit) s 6.000 nx sp (1.1) s sp (designed) s sp (by) s sp (Devon) s sp (Bowen) s 50 ss 0.000 50.000 m (\(KA2NRC\)) s sp (for) s sp (the) s sp (KA2NRC/KB2GZD) s 82 ss 0.000 82.000 m (C-64) s sp (TCP/IP) s sp (radio) s sp (software.) s savemat setmatrix % irpoly2 gsave newpath 125.73 36.83 m 196.215 36.83 l 196.215 63.5 l 125.73 63.5 l closepath stroke grestore % irpoly2 gsave newpath 125.095 36.195 m 196.85 36.195 l 196.85 64.135 l 125.095 64.135 l closepath stroke grestore % polyline2 gsave newpath 50.8 73.025 m 50.8 73.66 l stroke grestore % polyline2 gsave newpath 50.8 83.82 m 50.8 84.455 l stroke grestore % polyline2 gsave newpath 172.72 116.205 m 172.72 116.84 l stroke grestore % polyline2 gsave newpath 170.18 127 m 170.18 127.635 l stroke grestore % polyline2 gsave newpath 80.645 162.56 m 81.28 162.56 l stroke grestore % polyline2 gsave newpath 80.645 167.64 m 81.28 167.64 l stroke grestore % polyline2 gsave newpath 80.645 170.18 m 81.28 170.18 l stroke grestore badfont_trap showpage grestore %%Trailer end draw_initial_state restore