%! %%Pages: (atend) %%DocumentFonts: (atend) %%EndComments % % Frame Maker PostScript Prolog 1.11, for use with Maker 1.11 % Copyright (c) 1986,87 by Frame Technology, Inc. All rights reserved. % % Known Problems: % Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1 /FMversion (1.11) def /FrameDict 120 dict def % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } def } if /FMVERSION { FMversion ne { /Times-Roman findfont 18 scalefont setfont 100 100 moveto (Maker version does not match postscript_prolog!) dup = show showpage } if } def /FMLOCAL { FrameDict begin 0 def end } def /landscape FMLOCAL /docheight FMLOCAL /docwidth FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /organgle FMLOCAL /orgfreq FMLOCAL /FMDOCUMENT { /#copies exch def FrameDict begin 0 ne /landscape exch def /docheight exch def /docwidth exch def /yscale exch def /xscale exch def currenttransfer cvlit /orgxfer exch def currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 2 setlinecap xscale yscale scale landscape { 90 rotate 0 docheight neg translate } if /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /fontname FMLOCAL /fontscale FMLOCAL /fontnum FMLOCAL /fontdict FMLOCAL /FMDEFINEFONT { FrameDict begin /fontname exch def /fontscale exch def /fontnum exch def /fontdict fontname findfont fontscale scalefont def fontdict /Encoding get StandardEncoding eq { fontdict DiacriticEncode /fontdict exch def } { fontdict NonDiacriticEncode /fontdict exch def } ifelse FMfonts fontnum fontnum fontdict definefont put end } def /FMLINEWIDTHS { FrameDict begin dup array /FMlinewidths exch def 1 sub -1 0 {exch FMlinewidths 3 1 roll lnormalize put} for end } def FrameDict begin /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /FMfonts 255 array def /basefontdict FMLOCAL /newfontdict FMLOCAL /DiacriticEncode { /basefontdict exch def /newfontdict basefontdict maxlength dict def basefontdict {exch dup /FID ne {dup /Encoding eq {exch pop DiacriticEncoding} {exch} ifelse newfontdict 3 1 roll put } {pop pop} ifelse } forall newfontdict } bind def /NonDiacriticEncode { /basefontdict exch def /newfontdict basefontdict maxlength dict def basefontdict {exch dup /FID ne {exch newfontdict 3 1 roll put} {pop pop} ifelse } forall newfontdict } bind def /freq FMLOCAL /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setpattern { /freq exch def /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq 0 {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen {} settransfer offbits offbits onbits add div setgray } bind def /grayness { setgray orgxfer cvx settransfer orgfreq organgle orgproc cvx setscreen } bind def /normalize { transform cvi exch cvi exch itransform } bind def /dnormalize { dtransform cvi exch cvi exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /fillprocs [{0.00 grayness} {0.10 grayness} {0.30 grayness} {0.50 grayness} {0.70 grayness} {0.90 grayness} {0.97 grayness} {1.00 grayness} {<0F1E3C78F0E1C387> 8 1 dpi 16 div setpattern} {<0F87C3E1F0783C1E> 8 1 dpi 16 div setpattern} { 8 1 dpi 16 div setpattern} { 8 1 dpi 16 div setpattern} {<8142241818244281> 8 1 dpi 16 div setpattern} {<03060C183060C081> 8 1 dpi 16 div setpattern} {<8040201008040201> 8 1 dpi 16 div setpattern} {} {1.00 grayness} {0.90 grayness} {0.70 grayness} {0.50 grayness} {0.30 grayness} {0.10 grayness} {0.03 grayness} {0.00 grayness} { 8 1 dpi 16 div setpattern} { 8 1 dpi 16 div setpattern} {<3333333333333333> 8 1 dpi 16 div setpattern} {<0000FFFF0000FFFF> 8 1 dpi 16 div setpattern} {<7EBDDBE7E7DBBD7E> 8 1 dpi 16 div setpattern} { 8 1 dpi 16 div setpattern} {<7FBFDFEFF7FBFDFE> 8 1 dpi 16 div setpattern} {} ] def /H { FMlinewidths exch get setlinewidth } bind def /X { fillprocs exch get exec } bind def /V { gsave eofill grestore } bind def /N { gsave stroke grestore } bind def /M {moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /K { /n exch def newpath moveto 3 1 n {pop curveto} for } bind def /J { /n exch def newpath moveto 1 1 n {pop curveto} for } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /C { grestore gsave R clip } bind def /U { grestore gsave } bind def /F { FMfonts exch get setfont } bind def /T { moveto show } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /S { moveto 0 exch ashow } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /Q { moveto gsave show grestore } bind def /x FMLOCAL /y FMLOCAL /dx FMLOCAL /dy FMLOCAL /dl FMLOCAL /t FMLOCAL /t2 FMLOCAL /Cos FMLOCAL /Sin FMLOCAL /r FMLOCAL /W { dnormalize /dy exch def /dx exch def normalize /y exch def /x exch def /dl dx dx mul dy dy mul add sqrt def dl 0.0 gt { /t currentlinewidth def savematrix /Cos dx dl div def /Sin dy dl div def /r [Cos Sin Sin neg Cos 0.0 0.0] def /t2 t 2.5 mul 3.5 max def newpath x y translate r concat 0.0 0.0 moveto dl t 2.7 mul sub 0.0 rlineto stroke restorematrix x dx add y dy add translate r concat t 0.67 mul setlinewidth t 1.61 mul neg 0.0 translate 0.0 0.0 moveto t2 1.7 mul neg t2 2.0 div moveto 0.0 0.0 lineto t2 1.7 mul neg t2 2.0 div neg lineto stroke t setlinewidth restorematrix } if } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath eofill grestore } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /A { /y exch def /x exch def /h exch def /w exch def x y normalize /yy exch def /xx exch def w h dnormalize /hh exch def /ww exch def ww abs hh abs xx ww add yy hh sub gsave savematrix newpath translate scale 0.0 0.0 1.0 5 3 roll arc 0 setlinecap restorematrix stroke grestore } bind def /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 6 sub def /FMsaveobject save def userdict begin /showpage {} def newpath translate 0.0 0.0 moveto } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /BEGINBITMAP { gsave translate scale /h exch def /w exch def /lb w 7 add 8 idiv def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 1 [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /ENDBITMAP { } bind def end %%EndProlog %%BeginSetup (1.11) FMVERSION 1. 1. 612. 792. 0 1 FMDOCUMENT 0 12. /Times-Roman FMDEFINEFONT 1 18. /Times-Bold FMDEFINEFONT 2 14. /Times-Bold FMDEFINEFONT 3 14. /Times-Roman FMDEFINEFONT 4 12. /Times-Bold FMDEFINEFONT 5 12. /Times-Italic FMDEFINEFONT 6 9. /Times-Roman FMDEFINEFONT 0.5 1. 3. 4. 4 FMLINEWIDTHS %%EndSetup %%Page: "1" 1 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 72. 36. T (7-1) 524. 36. T 1 F (Chapter 7) 72. 706. T (Sun Computer Architecture) 214. 706. T 2 F (7.1) 72. 678. T (Overview ) 215. 678. T 0 F (Sun offers one powerful computer architecture with three ) 216. 659. T (instruction sets. The main components of Sun\325s computer archi-) 216. 646. T (tecture are the CPU, floating-point processor \050FPP\051, memory ) 216. 633. T (management unit \050MMU\051, and peripheral bus. \050see Figure 7-1\051 ) 216. 620. T (Sun\325s open architecture approach extends to each component ) 216. 607. T (within the Sun product line.) 216. 594. T 72. 58. 540. 720. C 152. 395. 534. 588. C 152. 395. 534. 588. R 7 X V 182. 499. 250. 549. R V 0 H 0 X N 3 F (CPU) 202. 520. T 278. 499. 346. 549. R 7 X V 0 X N (MMU) 294. 521. T 399. 463. 529. 514. R 7 X V 0 X N 250. 522. 28. 0. W 346. 522. 34. 0. W 350. 522. -4. 0. W 256. 522. -6. 0. W 399. 530. 529. 581. R 7 X V 0 X N 2.73 (Main Memory) 422. 553. P 2.18 (Peripheral Bus) 420. 486. P 4 F 1.26 (Figure 7-1. Sun Hardware Architecture) 248. 407. P 2 F 1.26 ( ) 460.24 407. P 383. 557. 383. 491. 2 L N 382. 558. 17. 0. W 382. 490. 17. 0. W 388. 490. -5. 0. W 389. 558. -6. 0. W 182. 434. 250. 484. R 7 X V 0 X N 3 F (FPP) 205. 456. T 217. 499. 0. -15. W 217. 493. 0. 6. W 381. 557. 381. 491. 2 L N 72. 58. 540. 720. C U 0 F 0 X (Sun\325s computer architecture allows virtual addressing by both ) 216. 382. T (software and direct memory access \050DMA\051 devices. The FPP ) 216. 369. T (acts as a coprocessor and is closely coupled with the CPU. Fig-) 216. 356. T (ure 7-2 describes how Sun\325s family relates to CPU and architec-) 216. 343. T (ture. For a detailed description of product family configurations ) 216. 330. T (refer to the ) 216. 317. T 5 F (Sun Configuration Guide) 271.64 317. T 0 F (. ) 392.99 317. T (All Sun workstations have the same operating system, program ) 216. 148. T (development tools, compilers, libraries, windowing system, and ) 216. 135. T (other software. This means that applications developed for any ) 216. 122. T (Sun family \050Sun-2) 216. 109. T 6 F (\252,) 304.67 109. T 0 F ( Sun-3, Sun-4, and Sun386i\051 are easily ) 315.74 109. T (ported to another family because the architectures are source-) 216. 96. T (code compatible. Because SunOS is a converged version of ) 216. 83. T (4.3/4.2BSD and System V.3, many applications written in C, ) 216. 70. T 71. 591. 179. 645. R 7 X V 5 F 0 X (One architecture: ) 71. 636. T (three instruction ) 71. 622. T (sets ) 71. 608. T 214. 171. 522. 294. C 214. 171. 522. 294. R 7 X V 0 F 0 X (Sun-2) 245. 251. T (Sun-3) 245. 237. T (Sun386) 245. 209. T 5 F (i) 281.67 209. T 0 F (Sun-4) 245. 223. T (680X0) 335. 251. T (680X0) 335. 237. T (SPARC) 335. 223. T (80386) 335. 209. T 3 F (Sun Family) 234. 274. T (CPU) 336. 273. T 4.74 (Bus Architecture) 400. 274. P 0 F 1.82 (Multibus, VME, SCSI) 400. 251. P 1.99 (VME, SCSI) 400. 237. P 1.99 (VME, SCSI) 400. 223. P 0.66 (AT, SCSI) 400. 209. P 225. 268. 515. 268. 2 L 0 H N 314. 288. 314. 203. 2 L N 389. 288. 389. 203. 2 L N 4 F 0.24 (Figure 7-2. Sun Product Family ) 285. 178. P 225. 202. 516. 289. R N 225. 265. 515. 265. 2 L N U FMENDPAGE %%Page: "2" 2 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 380.33 36. T (7-2) 72. 36. T (FORTRAN, or Pascal on other UNIX systems are also source-) 216. 711. T (code compatible. ) 216. 698. T (To port a SunOS or other UNIX application to any Sun worksta-) 216. 681. T (tion, the basic procedure is to copy the source-code files to ) 216. 668. T (the machine and recompile it. Instances of incompatibility are ) 216. 655. T (usually related to the way the processor stores binary data. ) 216. 642. T (Based on the experience of software developers, the porting ) 216. 629. T (procedure generally takes a few days.) 216. 616. T (For applications that currently run on computers that do not use ) 216. 599. T (the UNIX operating system, you need to rewrite code to port ) 216. 586. T (the application to SunOS. If the application has not been writ-) 216. 573. T (ten for SunOS, we recommend porting first to the SPARC based ) 216. 560. T (Sun-4 family. ) 216. 547. T 2 F (7.2) 72. 522. T (CPU/MMU/FPP Overview) 215. 522. T 0 F (Sun offers three different instruction sets: Motorola 680X0, ) 216. 503. T (SPARC, and the Intel 80386. Each has its own floating-point ) 216. 490. T (coprocessor \050FPP\051. ) 216. 477. T (Sun-2, Sun-3, and Sun-4 systems share Sun\325s virtual memory ) 216. 460. T (architecture, which supports the demand-paging requirements ) 216. 447. T (of large application programs. It provides mapping for processes ) 216. 434. T (up to 256 megabytes and features exceptionally fast context ) 216. 421. T (switching, as well as a large number of translation entries. It ) 216. 408. T (also supports virtual input/output procedures as well as direct ) 216. 395. T (virtual memory access \050DVMA) 216. 382. T 6 F (\252) 367.63 382. T 0 F (\051 from I/O devices. ) 376.45 382. T (All of Sun\325s floating-point solutions perform single- and double-) 216. 365. T (precision, binary floating-point arithmetic according to the IEEE ) 216. 352. T (754 standard.) 216. 339. T 2 F (7.2.1) 72. 314. T (Motorola 680X0) 215. 314. T 0 F (The Sun-3 series uses the powerful Motorola 68020 family ) 216. 295. T (single-chip microprocessor. The Sun-2 series uses the older ) 216. 282. T (Motorola MC68010 CPU, which is binary compatible with the ) 216. 269. T (MC68020. Thus, executable programs on the Sun-2 family run ) 216. 256. T (unchanged on the Sun-3. Vendors often distribute Sun-2 bina-) 216. 243. T (ries \050MC68010\051 instead of both executable versions.) 216. 230. T (The Sun-3 family includes the Motorola 68881 floating-point ) 216. 213. T (coprocessor, which allows overlapped execution of 68020 and ) 216. 200. T (68881 instructions. ) 216. 187. T 2 F (7.2.2) 72. 162. T (SPARC \050Scalable Processor ARChitecture\051) 215. 162. T 0 F (The SPARC CPU is a Reduced Instruction Set Computer ) 216. 143. T (\050RISC\051 designed by Sun Microsystems and is licensed to other ) 216. 130. T (computer manufacturers. It is composed of an Integer Unit \050IU\051 ) 216. 117. T (that performs basic processing and a Floating-Point Unit \050FPU\051 ) 216. 104. T (to perform floating-point calculations. ) 216. 91. T 72. 110. 180. 125. R 7 X V 5 F 0 X (Used in Sun-4) 72. 116. T 72. 248. 180. 275. R 7 X V 0 X (Used in Sun-2 and ) 72. 266. T (Sun-3) 72. 252. T FMENDPAGE %%Page: "3" 3 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 72. 36. T (7-3) 524. 36. T (The Sun-4 family incorporates SPARC and is designed for high ) 217. 711. T (performance. The Sun-4 systems achieve this performance by ) 217. 698. T (utilizing the latest ideas in computer architecture, gate-array ) 217. 685. T (technology, memory, cache technology, and compiler technology. ) 217. 672. T (The Sun-4 family of workstations and servers addresses appli-) 217. 659. T (cation areas that previously required special-purpose computer ) 217. 646. T (architectures or large, expensive mainframe systems.) 217. 633. T (For porting information pertinent to SPARC, refer to ) 217. 616. T 5 F (Porting ) 473.99 616. T (Software to SPARC Systems.) 217. 603. T 2 F (7.2.3) 72. 578. T (Intel 80386) 215. 578. T 0 F (The Sun386) 217. 559. T 5 F (i) 275.33 559. T 0 F ( CPU is the Intel 80386 microprocessor, running at ) 278.67 559. T (a clock frequency of either 20 or 25 megahertz, depending on the ) 217. 546. T (model. The Memory Management Unit \050MMU\051 is on the 80386 ) 217. 533. T (CPU itself, rather than in a separate component. As a result, ) 217. 520. T (virtual to physical address translation takes place within the ) 217. 507. T (CPU. The CPU provides protection, sharing, and memory alloca-) 217. 494. T (tion for multiple processes. ) 217. 481. T (The 80386 has a virtual 8086 mode, so it can run multiple PC ) 217. 464. T (processes simultaneously in virtual mode while the operating ) 217. 451. T (system runs in protected mode. This capability allows multiple ) 217. 438. T (MS-DOS windows to operate on the Sun386) 217. 425. T 5 F (i) 431.66 425. T 0 F ( concurrently with ) 434.99 425. T (UNIX.) 217. 412. T (For floating-point processing, the Sun386) 217. 395. T 5 F (i) 417.33 395. T 0 F ( architecture uses the ) 420.66 395. T (Intel 80387 processor, running synchronously with the 80386. ) 217. 382. T (DOS applications can use the floating-point processor to exe-) 217. 369. T (cute code written for Intel 8087 or 80287 processors.) 217. 356. T (The 80386 also is binary compatible with 8086 and 80286 pro-) 217. 339. T (cessors, which are earlier processors in the same Intel family.) 217. 326. T (For porting information pertinent to the 80386, refer to the ) 217. 309. T 5 F (Sun386i Developer\325s Guide) 217. 296. T 0 F (.) 350.31 296. T 2 F (7.2.4) 72. 271. T (Floating Point Accelerator \050FPA\051) 215. 271. T 0 F (The Floating Point Accelerator \050FPA\051 is a single VME-card, ) 217. 252. T (high-performance option for Sun-3 systems. The FPA increas-) 217. 239. T (es floating-point performance over the floating-point coproces-) 217. 226. T (sor by an average factor of four.) 217. 213. T (For optimal performance, the FPA is directly coupled to the ) 217. 196. T (CPU\325s VME P2-Bus. CPU processing and FPA operations ) 217. 183. T (automatically overlap. A two-stage pipeline and dual-ported ) 217. 170. T (registers further improve simultaneous operation of the CPU ) 217. 157. T (and FPA. ) 217. 144. T (The FPA is software transparent. That is, binary application ) 217. 127. T (programs are transportable between machines with or without ) 217. 114. T (the FPA option. To achieve the highest performance, however, ) 217. 101. T (applications written for workstations without the FPA option ) 217. 88. T (should be recompiled when used with the FPA.) 217. 75. T 74. 496. 182. 541. R 7 X V 5 F 0 X (Used in Sun386i) 74. 532. T 71. 183. 179. 237. R 7 X V 0 X (Floating-point hard-) 71. 228. T (ware for Sun-3) 71. 214. T FMENDPAGE %%Page: "4" 4 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 380.33 36. T (7-4) 72. 36. T 2 F (7.3) 72. 709. T (Byte Ordering in a Heterogeneous Environment) 215. 709. T 0 F (Binary data is stored on the Sun386) 216. 692. T 5 F (i) 387.32 692. T 0 F ( workstation the same ) 390.66 692. T (as it is on some 32-bit processors \050such as DEC VAX\051 but ) 216. 679. T (different from the way it is on others \050such as Sun MC680X0 ) 216. 666. T (and SPARC workstations\051. Although this arrangement has ) 216. 653. T (no impact on most programs, ) 216. 639. T 3 F (\324\324) 359.33 639. T 0 F (byte swapping) 368.65 639. T 3 F (\325\325) 438.31 639. T 0 F ( is potentially ) 447.64 639. T (a problem if processors with different architectures try to ) 216. 625. T (interpret the same binary data. The following are general ) 216. 612. T (areas where byte swap problems can exist:) 216. 599. T (\245) 216. 581. T (Passing binary data over the network. Use Sun\325s Exter-) 234. 581. T (nal Data Representation \050XDR\051 format or another stan-) 234. 568. T (dard network format to avoid problems.) 234. 555. T (\245 ) 216. 537. T (Porting raster graphics images between architectures. ) 234. 537. T (SunView, Pixrect, the icon editor, and other Sun graphics ) 234. 524. T (routines handle byte order appropriately for the architec-) 234. 511. T (ture, so programs containing these routines can be ported ) 234. 498. T (without change. If your application uses graphic images ) 234. 485. T (that are in binary form and was not produced by Sun rou-) 234. 472. T (tines, convert them.) 234. 459. T (\245 ) 216. 441. T (Performing conversions from character to integer or from ) 234. 441. T (integer to integer between architectures. Again, use XDR.) 234. 428. T (\245 ) 216. 410. T (Reading binary data created on an architecture with a dif-) 234. 410. T (ferent byte order. Before reading the data, you need to fil-) 234. 397. T (ter it to correct the byte order.) 234. 384. T (\245 ) 217. 366. T (Latent bugs. For example, using ) 234. 366. T 5 F (strlen) 391.66 366. T 0 F ( and ) 418.99 366. T 5 F (malloc) 442.32 366. T 0 F ( system ) 474.98 366. T (calls improperly can cause problems that do not occur on ) 234. 353. T (other architectures.) 234. 340. T 2 F (7.4) 72. 312. T (Bus Architectures) 215. 312. T 0 F (Sun supports VMEbus, Multibus I, and AT bus architectures. ) 217. 293. T (The sections below present an overview.) 217. 280. T 2 F (7.4.1) 72. 255. T (VMEbus) 215. 255. T 0 F (The Sun-3 and Sun-4 families use the industry-leading 32-bit ) 217. 236. T (VMEbus revision B, which is compatible with a large number ) 217. 223. T (of board-level components. Sun\325s VMEbus interface allows ) 217. 210. T (16-, 24-, and full 32-bit device addressing and 8-, 16-, and ) 217. 197. T (32-bit data access. For more detailed information, please ) 217. 184. T (refer to Sun\325s ) 217. 171. T 5 F (User\325s Guide to the Sun-3/100 VMEbus) 285.32 171. T 0 F (.) 476.3 171. T (Sun conforms to the triple-height, full-depth Eurocard/VMEbus ) 217. 154. T (board format in most of its models. Single- and double-size ) 217. 141. T (Eurocard boards may be accommodated with Sun VMEbus ) 217. 128. T (adapters.) 217. 115. T (The Sun-3 Eurocard board set implements the Sun-3 architec-) 217. 98. T (ture on a double-height VMEbus standard, allowing OEMs and ) 217. 85. T 70. 628. 178. 683. R 7 X V 5 F 0 X (Use XDR, byte swap-) 70. 674. T (ping, bit flipping for ) 70. 660. T (byte ordering prob-) 70. 646. T (lems) 70. 632. T 72. 176. 180. 219. R 7 X V 0 X (Sun-3 and Sun-4 use ) 72. 210. T (32-bit VMEbus revi-) 72. 196. T (sion B) 72. 182. T FMENDPAGE %%Page: "5" 5 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 72. 36. T (7-5) 524. 36. T (system integrators to incorporate Sun\325s environment into ) 217. 711. T (their products.) 217. 698. T 2 F (7.4.2) 72. 673. T (Multibus) 215. 673. T 0 F (Most of the older Sun-2 family supports the Multibus I stan-) 217. 654. T (dard. Users wishing to port Multibus devices to either Sun-3 ) 217. 641. T (or Sun-4 systems may use the Sun VME - Multibus Adapter ) 217. 628. T (board.) 217. 615. T 2 F (7.4.3) 72. 590. T (VME to Multibus Adapter) 215. 590. T 0 F (Sun\325s VME to Multibus Adapter board allows Multibus boards ) 217. 571. T (to plug into Sun\325s VMEbus backplane. The Multibus card phys-) 217. 558. T (ically installs in the VME to Multibus Adapter and translates ) 217. 545. T (Multibus protocols into those of the VMEbus.) 217. 532. T (For more information, please refer to the ) 217. 515. T 5 F (User\325s Manual for the ) 415.62 515. T (Sun VME - Multibus Adapter Board) 217. 502. T 0 F (.) 389.99 502. T 2 F (7.4.4) 72. 477. T (AT Bus) 215. 477. T 0 F (The Sun386) 217. 458. T 5 F (i) 275.33 458. T 0 F ( peripheral expansion bus is the industry-standard ) 278.67 458. T (AT bus. An interface converts CPU and Direct Memory Access ) 217. 445. T (\050DMA\051 signals from the system bus to AT bus signals and ) 217. 432. T (serves as a buffer between the 32-bit high-speed system bus ) 217. 419. T (and the 16-bit AT bus. ) 217. 406. T (The Sun386) 217. 389. T 5 F (i) 275.33 389. T 0 F ( has three slots for IBM PC/AT-compatible add-on ) 278.67 389. T (cards and one slot for an XT-compatible card. These two types ) 217. 376. T (of cards differ in the size of the data path used for access \050XT ) 217. 363. T (cards are 8-bit; AT cards are 16-bit\051 and in the connectors that ) 217. 350. T (attach to the bus. \050AT cards have an additional connector. \051) 217. 337. T (Peripherals on the AT bus can be controlled by DOS drivers ) 217. 320. T (from a Sun386) 217. 307. T 5 F (i) 288.33 307. T 0 F ( DOS window, or they can be controlled by ) 291.66 307. T (SunOS drivers. For further information, please refer to the ) 217. 294. T 5 F (Sun386i Porting Guide) 217. 281. T 0 F (.) 328.34 281. T (The AT bus speed is one-fourth the processor speed, or 6.25 ) 217. 264. T (MHz on the Sun386) 217. 251. T 5 F (i) 314. 251. T 0 F (/250 model and 5 MHz on the Sun386) 317.33 251. T 5 F (i) 500.99 251. T 0 F (/150 ) 504.33 251. T (model. Nine interrupt channels and five direct memory access ) 217. 238. T (DMA channels are available for AT bus cards. ) 217. 225. T 2 F (7.4.5) 72. 200. T (SCSI) 215. 200. T 0 F (The SCSI \050Small Computer Systems Interface\051 provides an ) 217. 181. T (industry-standard, high-level interface that works with disks ) 217. 168. T (as well as tapes and other devices. Devices may be daisy-) 217. 155. T (chained to the SCSI bus through the external ports of the sys-) 217. 142. T (tem box or the peripheral box.) 217. 129. T (Sun currently uses the SCSI bus for disk and tape units. ) 217. 112. T (Customers are discouraged from porting devices to Sun\325s SCSI ) 217. 99. T (because it is an undocumented and unsupported external inter-) 217. 86. T 71. 615. 179. 656. R 7 X V 5 F 0 X (Sun-2 uses ) 71. 647. T (Multibus I ) 71. 633. T (standard) 71. 619. T 70. 513. 188. 570. R 7 X V 0 X (Multibus boards can ) 70. 561. T (be plugged into the Sun ) 70. 547. T (VMEbus backplane ) 70. 533. T (using the adapter) 70. 519. T 71. 121. 179. 173. R 7 X V 0 X (High-level interface ) 71. 164. T (to disk, tape, and ) 71. 150. T (other devices) 71. 136. T 73. 431. 180. 447. R 7 X V 0 X (Sun386i uses AT bus) 73. 438. T FMENDPAGE %%Page: "6" 6 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 380.33 36. T (7-6) 72. 36. T (face. Sun Consulting is the sole resource for customers deter-) 217. 711. T (mined to port to the SCSI.) 217. 698. T 2 F (7.5) 72. 673. T (UNIX Device Drivers) 215. 673. T 0 F (UNIX can extend its peripheral control to new devices attached ) 217. 654. T (to the peripheral bus. The code that controls a device and inter-) 217. 641. T (faces to the UNIX operating system is termed a ) 217. 628. T 5 F (device driver.) 447.95 628. T 2 F (7.5.1) 72. 603. T (Porting Device Drivers) 215. 603. T 0 F (Because device drivers recognize hardware and the architecture ) 216. 584. T (it resides in, they are inherently more difficult to port between ) 216. 571. T (UNIX systems than an application program. Within Sun\325s single ) 216. 558. T (architecture, however, a device driver can be designed to be ) 216. 545. T (portable even between multiple instruction set computers.) 216. 532. T (Sun\325s ) 217. 515. T 5 F (Writing Device Drivers for the Sun Workstation) 247.34 515. T 0 F ( is an ) 477.32 515. T (excellent programmer) 217. 501. T 3 F (\325) 322.64 501. T 0 F (s guide for designing and writing device ) 327.3 501. T (drivers across the Sun family of workstations. Refer to this ) 217. 487. T (manual for more detailed information.) 217. 474. T (The Sun386) 217. 457. T 5 F (i) 275.33 457. T 0 F ( implements loadable modules that allow ease of ) 278.67 457. T (installation and device driver development. For more detailed ) 217. 444. T (information, refer to the loadable driver chapters in ) 217. 431. T 5 F (Writing ) 465.94 431. T (Device Drivers for the Sun Workstation) 217. 418. T 0 F (.) 407.31 418. T 2 F (7.6) 72. 393. T (Sun Memory Cache) 215. 393. T 0 F (The Sun-3/200 and Sun-4/200 series systems incorporate a ) 217. 374. T (high-speed memory called a cache, which contains copies of ) 217. 361. T ("frequently requested" data from main memory. Device driver ) 217. 348. T (and application developers interested in optimal performance on ) 217. 335. T (systems with cache need to understand porting issues to these ) 217. 322. T (machines. For more detailed information refer to the document,) 217. 309. T 5 F ( ) 525.28 309. T (The Sun Cache) 217. 296. T 0 F (.) 289.66 296. T 2 F (7.7) 72. 271. T (Future Directions) 215. 271. T 0 F (As new technologies and standards evolve, Sun will incorporate ) 217. 252. T (them to facilitate the development of third-party products and ) 217. 239. T (portable applications. Future Sun products will further utilize ) 217. 226. T (the advances in SPARC technology.) 217. 213. T 72. 505. 180. 576. R 7 X V 5 F 0 X (Device drivers can ) 72. 567. T (be designed to be ) 72. 553. T (portable across multi-) 72. 539. T (ple instruction sets) 72. 525. T 71. 346. 179. 365. R 7 X V 0 X (High-speed memory ) 71. 356. T FMENDPAGE %%Trailer %%Pages: 6 1 %%DocumentFonts: Times-Roman %%+ Times-Bold %%+ Times-Italic