⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap.4.io.ps

📁 嵌入开发笔记 用ps阅读器打开
💻 PS
📖 第 1 页 / 共 5 页
字号:
%!PS-Adobe-1.0%%Creator: hitchcock:tomc (Tom Casavant)%%Title: stdin (ditroff)%%CreationDate: Thu Oct 27 08:57:11 1994%%EndComments% lib/psdit.pro -- prolog for psdit (ditroff) files% Copyright (c) 1984, 1985 Adobe Systems Incorporated. All Rights Reserved.% last edit: shore Sat Nov 23 20:28:03 1985% RCSID: %Header: psdit.pro,v 2.1 85/11/24 12:19:43 shore Rel %% Psfig RCSID $Header: psdit.pro,v 1.5 88/01/04 17:48:22 trevor Exp $/$DITroff 180 dict def $DITroff begin/DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecapcurrentlinejoin currentdash currentgray currentmiterlimit ] cvx def%% Psfig additions/startFig {	/SavedState save def	userdict maxlength dict begin	currentpoint transform	DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap		setlinewidth setmatrix	itransform moveto	/ury exch def	/urx exch def	/lly exch def	/llx exch def	/y exch 72 mul resolution div def	/x exch 72 mul resolution div def		currentpoint /cy exch def /cx exch def	/sx x urx llx sub div def 	% scaling for x	/sy y ury lly sub div def	% scaling for y	sx sy scale			% scale by (sx,sy)	cx sx div llx sub	cy sy div ury sub translate		/DefFigCTM matrix currentmatrix def	/initmatrix {		DefFigCTM setmatrix	} def	/defaultmatrix {		DefFigCTM exch copy	} def	/initgraphics {		DocumentInitState setmiterlimit setgray setdash 			setlinejoin setlinecap setlinewidth setmatrix		DefFigCTM setmatrix	} def	/showpage {		initgraphics	} def} def% Args are llx lly urx ury (in figure coordinates)/clipFig {	currentpoint 6 2 roll	newpath 4 copy	4 2 roll moveto	6 -1 roll exch lineto	exch lineto	exch lineto	closepath clip	newpath	moveto} def% doclip, if called, will always be just after a `startfig'/doclip { llx lly urx ury clipFig } def/endFig {	end SavedState restore} def/globalstart {	% Push details about the enviornment on the stack.	fontnum fontsize fontslant fontheight 	% firstpage 	mh my resolution slotno currentpoint 	pagesave restore gsave } def/globalend {	grestore moveto	/slotno exch def /resolution exch def /my exch def	/mh exch def 	% /firstpage exch def	/fontheight exch def	/fontslant exch def /fontsize exch def /fontnum exch def	F	/pagesave save def} def%% end XMOD additions/fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def/xi {0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto  /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F  /pagesave save def}def/xiL {72 8.25 mul 72 11 mul translate -90 rotate  72 resolution div dup neg scale 0 0 moveto  /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F  /pagesave save def}def/PB{save /psv exch def currentpoint translate   resolution 72 div dup neg scale 0 0 moveto}def/PE{psv restore}def/arctoobig 90 def /arctoosmall .05 def/m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def/tan{dup sin exch cos div}def/point{resolution 72 div mul}def/dround	{transform round exch round exch itransform}def/xT{/devname exch def}def/xr{/mh exch def /my exch def /resolution exch def}def/xp{}def/xs{docsave restore end}def/xt{}def/xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not {fonts slotno fontname findfont put fontnames slotno fontname put}if}def/xH{/fontheight exch def F}def/xS{/fontslant exch def F}def/s{/fontsize exch def /fontheight fontsize def F}def/f{/fontnum exch def F}def/F{fontheight 0 le {/fontheight fontsize def}if   fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore   fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if   makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}def/X{exch currentpoint exch pop moveto show}def/N{3 1 roll moveto show}def/Y{exch currentpoint pop exch moveto show}def/S{show}def/ditpush{}def/ditpop{}def/AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}def/AN{4 2 roll moveto 0 exch ashow}def/AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}def/AS{0 exch ashow}def/MX{currentpoint exch pop moveto}def/MY{currentpoint pop exch moveto}def/MXY{moveto}def/cb{pop}def	% action on unknown char -- nothing for now/n{}def/w{}def/p{pop showpage pagesave restore /pagesave save def}def% Manual Feed Definitions/SetStTime{statusdict /manualfeedtimeout 120 put} def/SetStatus{statusdict /manualfeed true put   statusdict /product get (LaserWriter) eq    {version (23.0) eq  % Don't redefine the show page if printer is not "Classic LW"     {/p {	 {statusdict /printerstatus get exec 16#22000000 and 0 eq{exit}if}loop	 pop showpage pagesave restore /pagesave save def}def}if }if}def/abspoint{currentpoint exch pop add exch currentpoint pop add exch}def/distance{dup mul exch dup mul add sqrt}def/dstroke{currentpoint stroke moveto}def/Dl{2 copy gsave rlineto stroke grestore rmoveto}def/arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def/Dc{dup arcellipse dstroke}def/De{arcellipse dstroke}def/Da{/endv exch def /endh exch def /centerv exch def /centerh exch def /cradius centerv centerv mul centerh centerh mul add sqrt def /eradius endv endv mul endh endh mul add sqrt def /endang endv endh atan def /startang centerv neg centerh neg atan def /sweep startang endang sub dup 0 lt{360 add}if def sweep arctoobig gt {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def  /midh midang cos midrad mul def /midv midang sin midrad mul def  midh neg midv neg endh endv centerh centerv midh midv Da  currentpoint moveto Da} {sweep arctoosmall ge  {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def  centerv neg controldelt mul centerh controldelt mul  endv neg controldelt mul centerh add endh add  endh controldelt mul centerv add endv add  centerh endh add centerv endv add rcurveto dstroke} {centerh endh add centerv endv add rlineto dstroke}ifelse}ifelse}def/Barray 200 array def % 200 values in a wiggle/D~{mark}def/D~~{counttomark Barray exch 0 exch getinterval astore /Bcontrol exch def pop /Blen Bcontrol length def Blen 4 ge Blen 2 mod 0 eq and {Bcontrol 0 get Bcontrol 1 get abspoint /Ycont exch def /Xcont exch def  Bcontrol 0 2 copy get 2 mul put Bcontrol 1 2 copy get 2 mul put  Bcontrol Blen 2 sub 2 copy get 2 mul put  Bcontrol Blen 1 sub 2 copy get 2 mul put  /Ybi /Xbi currentpoint 3 1 roll def def 0 2 Blen 4 sub  {/i exch def   Bcontrol i get 3 div Bcontrol i 1 add get 3 div   Bcontrol i get 3 mul Bcontrol i 2 add get add 6 div   Bcontrol i 1 add get 3 mul Bcontrol i 3 add get add 6 div   /Xbi Xcont Bcontrol i 2 add get 2 div add def   /Ybi Ycont Bcontrol i 3 add get 2 div add def   /Xcont Xcont Bcontrol i 2 add get add def   /Ycont Ycont Bcontrol i 3 add get add def   Xbi currentpoint pop sub Ybi currentpoint exch pop sub rcurveto  }for dstroke}if}defend/ditstart{$DITroff begin /nfonts 60 def			% NFONTS makedev/ditroff dependent! /fonts[nfonts{0}repeat]def /fontnames[nfonts{()}repeat]def/docsave save def}def% character outcalls/oc {/pswid exch def /cc exch def /name exch def   /ditwid pswid fontsize mul resolution mul 72000 div def   /ditsiz fontsize resolution mul 72 div def   ocprocs name known{ocprocs name get exec}{name cb}   ifelse}def/fractm [.65 0 0 .6 0 0] def/fraction {/fden exch def /fnum exch def gsave /cf currentfont def  cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto  fnum show rmoveto currentfont cf setfont(\244)show setfont fden show   grestore ditwid 0 rmoveto} def/oce {grestore ditwid 0 rmoveto}def/dm {ditsiz mul}def/ocprocs 50 dict def ocprocs begin(14){(1)(4)fraction}def(12){(1)(2)fraction}def(34){(3)(4)fraction}def(13){(1)(3)fraction}def(23){(2)(3)fraction}def(18){(1)(8)fraction}def(38){(3)(8)fraction}def(58){(5)(8)fraction}def(78){(7)(8)fraction}def(sr){gsave 0 .06 dm rmoveto(\326)show oce}def(is){gsave 0 .15 dm rmoveto(\362)show oce}def(->){gsave 0 .02 dm rmoveto(\256)show oce}def(<-){gsave 0 .02 dm rmoveto(\254)show oce}def(==){gsave 0 .05 dm rmoveto(\272)show oce}defend% an attempt at a PostScript FONT to implement ditroff special chars% this will enable us to %	cache the little buggers%	generate faster, more compact PS out of psdit%	confuse everyone (including myself)!50 dict dup begin/FontType 3 def/FontName /DIThacks def/FontMatrix [.001 0 0 .001 0 0] def/FontBBox [-260 -260 900 900] def% a lie but .../Encoding 256 array def0 1 255{Encoding exch /.notdef put}forEncoding dup 8#040/space put %space dup 8#110/rc put %right ceil dup 8#111/lt put %left  top curl dup 8#112/bv put %bold vert dup 8#113/lk put %left  mid curl dup 8#114/lb put %left  bot curl dup 8#115/rt put %right top curl dup 8#116/rk put %right mid curl dup 8#117/rb put %right bot curl dup 8#120/rf put %right floor dup 8#121/lf put %left  floor dup 8#122/lc put %left  ceil dup 8#140/sq put %square dup 8#141/bx put %box dup 8#142/ci put %circle dup 8#143/br put %box rule dup 8#144/rn put %root extender dup 8#145/vr put %vertical rule dup 8#146/ob put %outline bullet dup 8#147/bu put %bullet dup 8#150/ru put %rule dup 8#151/ul put %underline pop/DITfd 100 dict def/BuildChar{0 begin /cc exch def /fd exch def /charname fd /Encoding get cc get def /charwid fd /Metrics get charname get def /charproc fd /CharProcs get charname get def charwid 0 fd /FontBBox get aload pop setcachedevice 2 setlinejoin 40 setlinewidth newpath 0 0 moveto gsave charproc grestore end}def/BuildChar load 0 DITfd put%/UniqueID 5 def/CharProcs 50 dict defCharProcs begin/space{}def/.notdef{}def/ru{500 0 rls}def/rn{0 840 moveto 500 0 rls}def/vr{0 800 moveto 0 -770 rls}def/bv{0 800 moveto 0 -1000 rls}def/br{0 750 moveto 0 -1000 rls}def/ul{0 -140 moveto 500 0 rls}def/ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def/bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def/sq{80 0 rmoveto currentpoint dround newpath moveto    640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def/bx{80 0 rmoveto currentpoint dround newpath moveto    640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def/ci{500 360 rmoveto currentpoint newpath 333 0 360 arc    50 setlinewidth stroke}def/lt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def/lb{0 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def/rt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def/rb{0 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def/lk{0 800 moveto 0 300 -300 300 s4 arcto pop pop 1000 sub    0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def/rk{0 800 moveto 0 300 s2 300 s4 arcto pop pop 1000 sub    0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def/lf{0 800 moveto 0 -1000 rlineto s4 0 rls}def/rf{0 800 moveto 0 -1000 rlineto s4 neg 0 rls}def/lc{0 -200 moveto 0 1000 rlineto s4 0 rls}def/rc{0 -200 moveto 0 1000 rlineto s4 neg 0 rls}defend/Metrics 50 dict def Metrics begin/.notdef 0 def/space 500 def/ru 500 def/br 0 def/lt 416 def/lb 416 def/rt 416 def/rb 416 def/lk 416 def/rk 416 def/rc 416 def/lc 416 def/rf 416 def/lf 416 def/bv 416 def/ob 350 def/bu 350 def/ci 750 def/bx 750 def/sq 750 def/rn 500 def/ul 500 def/vr 0 defendDITfd begin/s2 500 def /s4 250 def /s3 333 def/a4p{arcto pop pop pop pop}def/2cx{2 copy exch}def/rls{rlineto stroke}def/currx{currentpoint pop}def/dround{transform round exch round exch itransform} defendend/DIThacks exch definefont popditstart(psc)xT576 1 1 xr1(Times-Roman)xf 1 f2(Times-Italic)xf 2 f3(Times-Bold)xf 3 f4(Times-BoldItalic)xf 4 f5(Helvetica)xf 5 f6(Helvetica-Bold)xf 6 f7(Courier)xf 7 f8(Courier-Bold)xf 8 f9(Symbol)xf 9 f10(DIThacks)xf 10 f10 s1 fxi%%EndProlog%%Page: 1 110 s 0 xH 0 xS 1 f3 f12 s576 915(1.)N696(NULL)X576 1139(2.)N696(NULL)X576 1363(3.)N696(NULL)X576 1587(4.)N696(NULL)X37 p%%Page: 37 212 s 0 xH 0 xS 3 f1 f2329 400(-)N2385(37)X2505(-)X3 f16 s2158 1091(Chapter)N2645(4)X1628 1203(Introduction)N2358(to)X2497(Input/O)X2939(utput)X12 s576 1427(4.1.)N768(Introduction)X1 f776 1567(In)N884(this)X1052(chapter)X1365(we)X1506(begin)X1749(to)X1853(take)X2043(up)X2168(the)X2315(most)X2531(novel)X2774(aspect)X3044(of)X3153(this)X3321(course)X3601(\320)X3726(the)X3873(interfacing)X576 1679(of)N685(custom-designed)X1366(external)X1706(devices)X2024(to)X2128(a)X2200(computer.)X2641(Recall,)X2941(the)X3087(goal)X3281(of)X3389(an)X3508(embedded)X3932(system)X4227(is)X576 1791(to)N694(allow)X951(a)X1037(computer)X1444(to)X1562(perform)X1915(sophisticated)X2461(control)X2777(of)X2900(an)X3034(engineered)X3500(system.)X3835(The)X4029(bene\256t)X576 1903(comes)N863(from)X1091(being)X1346(able)X1548(to)X1664(write)X1903(sophisticated)X2447(software)X2819(to)X2935(perform)X3286(complex)X3658(functions)X4056(which)X576 2015(might)N827(be)X944(dif\256cult)X1275(\(or)X1413(even)X1621(impossible\))X2096(to)X2197(implement)X2636(with)X2833(analog)X3116(control)X3416(circuitry.)X3818(However,)X4221(at)X576 2127(the)N724(interface)X1092(of)X1202(the)X1350(orderly)X1658(world)X1912(inside)X2172(the)X2320(computer)X2714(to)X2819(the)X2967(cruel)X3190(and)X3359(ugly)X3560(external)X3901(world,)X4179(we)X576 2239(must)N798(provide)X1127(some)X1366(sort)X1546(of)X1662(linkage.)X2030(In)X2146(this)X2321(chapter)X2641(we)X2789(will)X2975(overview)X3369(general)X3689(concepts)X4062(in)X4173(the)X576 2351(Input/Output)N1099(\(I/O\))X1317(problem)X1663(that)X1833(will)X2008(be)X2124(present)X2427(in)X2527(interfacing)X2970(nearly)X3236(any)X3400(speci\256c)X3719(type)X3910(of)X4015(device.)X576 2463(The)N751(devices)X1065(may)X1256(range)X1495(from)X1707(simple)X1989(lights)X2228(as)X2333(are)X2476(seen)X2672(on)X2793(a)X2861(movie)X3127(theater)X3415(marquis,)X3774(to)X3874(the)X4018(control)X576 2575(of)N689(the)X840(airfoils)X1146(of)X1259(a)X1335(500-passenger)X1923(aircraft.)X2259(The)X2442(device)X2727(interfacing)X3178(characteristics,)X3786(however,)X4173(are)X576 2687(much)N814(the)X956(same)X1178(in)X1277(both)X1472(of)X1576(these)X1798(systems.)X3 f576 2911(4.2.)N768(Brief)X1001(Aside:)X1286(How)X1502(an)X1627(Instruction)X2109(Executes)X1 f776 3051(Before)N1064(proceeding)X1518(into)X1694(the)X1839(issues)X2095(of)X2202(device)X2481(addresses,)X2900(busses,)X3201(and)X3367(control)X3667(lines,)X3900(we)X4039(need)X4248(a)X576 3163(little)N794(context.)X1142(We)X1316(derive)X1597(this)X1776(context)X2100(from)X2327(the)X2485(details)X2777(of)X2897(what)X3124(happens)X3479(at)X3589(the)X3747(CPU/Memory)X576 3275(interface)N946(during)X1229(the)X1379(execution)X1786(of)X1898(a)X1973(simple)X2263(instruction.)X2732(Consider)X3112(the)X3263(view)X3483(of)X3596(the)X3747(CPU/Memory)X576 3387(interface)N948(as)X1062(shown)X1346(in)X1455(Figure)X1740(4.1.)X1942(We)X2110(will)X2294(also)X2483(be)X2608(considering)X3091(the)X3243(execution)X3652(of)X3766(the)X3917(following)X7 f576 3499(MOVE.B)N1 f948(instruction,)X1408(which)X1667(is)X1755(assmed)X2062(to)X2161(be)X2276(stored)X2535(at)X2629(memory)X2974(location)X3309($2000.)X7 f1728 3659(MOVE.B)N2304($1000,D0)X1 f576 3819(which)N841(assembles)X1262(to)X1368(the)X1517(following)X1922(four)X2113(bytes)X2347(\(in)X2485(hex\))X2687(which)X2953(will)X3134(be)X3256(placed)X3539(in)X3645(memory)X3997(at)X4098(loca-)X576 3931(tion)N7 f784($2000)X1 f1074(.)X7 f1728 4091($2000:)N2134 0.4219($10381000)AX1 f576 4251(Remember,)N1049(each)X1252(digit)X1456(in)X1558(a)X1628(hex)X1794(number)X2115(represents)X2532(4)X2607(bits,)X2797(so)X2909(this)X3075(four-byte)X3460(value)X3696(is)X3787(equivalent)X4216(to)X576 4363(32)N710(bits)X887(\(4)X1005(bytes,)X1270(or)X1388(2)X1474(words,)X1770(or)X1888(1)X1973(longword\).)X2458(We)X2629(also)X2821(assume)X3141(the)X3296(following)X3707(initial)X3970(value)X4216(in)X576 4475(memory)N921(location)X1256($1000)X1520(for)X1656(convenience.)X7 f1728 4635($1000:)N2134($89)X1 f576 4795(Thus,)N831(memory)X1191(location)X1542($1000)X1822(contains)X2183(the)X2341(hex)X2520(value)X2769($89.)X3001(These)X3271(initial)X3537(conditions)X3978(are)X4136(also)X576 4907(displayed)N969(in)X1068(Figure)X1343(4.1.)X38 p%%Page: 38 312 s 0 xH 0 xS 1 f3 f576 400(57:017)N872(CIE)X1 f2329(-)X2385(38)X2505(-)X3 f3717(Lecture)X4062(Notes)X1 f11 s2505 1102 MXY115 302 De2512 1470 MXY115 302 De2512 1837 MXY115 302 De1765 1932 MXY0 -1008 Dl576 0 Dl0 1008 Dl-576 0 Dl2404 1196 MXY-57 14 Dl2404 1225 MXY-57 -14 Dl2346 1210 MXY576 0 Dl2865 1225 MXY57 -14 Dl2865 1196 MXY57 14 Dl2397 1340 MXY-57 14 Dl2397 1369 MXY-57 -14 Dl2339 1354 MXY576 0 Dl2857 1369 MXY57 -14 Dl2857 1340 MXY57 14 Dl2404 1887 MXY-57 14 Dl2404 1916 MXY-57 -14 Dl2346 MX576 0 Dl2865 1916 MXY57 -14 Dl2865 1887 MXY57 14 Dl2397 973 MXY-57 14 Dl2397 1001 MXY-57 -14 Dl2339 MX576 0 Dl2857 1001 MXY57 -14 Dl2857 973 MXY57 14 Dl2397 1052 MXY-57 14 Dl2397 1081 MXY-57 -14 Dl2339 1066 MXY576 0 Dl2857 1081 MXY57 -14 Dl2857 1052 MXY57 14 Dl2404 1419 MXY-57 14 Dl2404 1448 MXY-57 -14 Dl2346 1433 MXY576 0 Dl2865 1448 MXY57 -14 Dl2865 1419 MXY57 14 Dl2404 1542 MXY-57 14 Dl2404 1570 MXY-57 -14 Dl2346 MX576 0 Dl2865 1570 MXY57 -14 Dl2865 1542 MXY57 14 Dl2404 1693 MXY-57 14 Dl2404 1721 MXY-57 -14 Dl2346 MX576 0 Dl2865 1721 MXY57 -14 Dl2865 1693 MXY57 14 Dl2397 1786 MXY-57 14 Dl2397 1815 MXY-57 -14 Dl2339 MX576 0 Dl2857 1815 MXY57 -14 Dl2857 1786 MXY57 14 Dl2917 1932 MXY0 -1008 Dl777 0 Dl0 1008 Dl-777 0 Dl1834 1281 MXY0 -92 Dl408 0 Dl2243 MX0 92 Dl-408 0 Dl1834 1569 MXY0 -92 Dl408 0 Dl2243 MX0 92 Dl-408 0 Dl1706 1369 MXY57 -14 Dl1706 1340 MXY57 14 Dl-144 0 Dl0 -144 Dl-144 0 Dl0 144 Dl-144 0 Dl0 -144 Dl-144 0 Dl16 s2570 1137(.)N2634(.)X2698(.)X2570 1512(.)N2634(.)X2698(.)X2570 1865(.)N2634(.)X2698(.)X18 s1950 861(CPU)N3038 878(M)N(EM)S(O)S3486(RY)X10 s3009 1200($1000:)N3251($89)X3016 1556($2000:)N3258($10381000)X12 s1900 1164(PC)N1893 1448(D0)N10 s1936 1559 0.5714(????????)AN13 s1173 1047(Clock)N1266 1166(Signal)N10 s1886 1272($00002000)N12 s2397 926(Address)N2735(Bus)X2483 1311(Data)N2689(Bus)X2440 1678(Control)N2758(Bus)X3 f1658 2215(Figure)N1955(4.1.)X2123(CPU/Memory)X2724(Bus)X2902(Details.)X1 f

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -