Starport BBS
VIEWER: prgguide.ps MODE: TEXT (ASCII)
%!PS-Adobe-2.0
%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
%%Title: prgguide.dvi
%%CreationDate: Mon Jan 27 00:34:54 1997
%%Pages: 24
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%EndComments
%DVIPSCommandLine: dvips prgguide.dvi
%DVIPSParameters: dpi=300, compressed, comments removed
%DVIPSSource:  TeX output 1997.01.27:0015
%%BeginProcSet: texc.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
TeXDict begin 39158280 55380996 1000 300 300
(D:\midas\doc\ps/prgguide.dvi) @start /Fa 26 122 df<1480EB010013025B5B5B
13305B5BA2485A48C7FCA21206A2120E120C121C1218A212381230A21270A21260A212E0
A35AAD12401260A21220123012107E113278A414>40 D<13087F130613021303A27F1480
AD1303A31400A25BA21306A2130E130CA2131C131813381330A25BA25B485AA248C7FC12
0612045A5A5A5A5A113280A414>I<EAFFF0A213E00C037C8B11>45
D<90B512F090380F003C150E81011EEB0380A2ED01C0A25B16E0A35BA449EB03C0A44848
EB0780A216005D4848130E5D153C153848485B5DEC03804AC7FC000F131CB512F023227D
A125>68 D<90B6FC90380F000F1503A2131EA21502A25BA214011500EB7802A21406140E
EBFFFCEBF00CA33801E008A391C7FC485AA4485AA4120FEAFFF820227DA120>70
D<027F138090390380810090380E00630138132749131F49130E485A485A48C7FC481404
120E121E5A5D4891C7FCA35AA4EC3FFC48EB01E0A34A5AA27E12704A5A7E0018130F001C
131300060123C7FC380381C1D800FEC8FC212479A226>I<D9FF80EB07FC010FEC0F8016
17A20117EC2F00EB13C0164F168F0123149EED011EA215020143495AA21508EB41E00181
495A1520A21540D801015C1580ECE100A23A0200F201E0A214F414F8484A5A14F0A2000C
13E0001EEBC007D8FF80EB7FF82E227DA12C>77 D<90B512C090380F0070153C151C011E
130EA2150FA249131EA3153C4913381570EC01E0EC07809038FFFC00EBF00E80EC0380D8
01E013C0A43903C00780A43907800F001501A2EC0702120F39FFF0038CC812F020237DA1
24>82 D<903801F02090380E0C4090381802C0EB3001136001E0138013C01201A2000314
00A291C7FCA27FEA01F813FF6C13E06D7EEB1FF8EB03FCEB007C143C80A30020131CA314
1800601338143000705B5C38C80180D8C607C7FCEA81FC1B247DA21B>I<39FFF001FF00
1FC7127815306C146015401580A2EC0100A214025C13805C12075C5CA25CA25C0181C7FC
A213C2120313C413C8A213D0A213E05BA25B120190C8FC202376A124>86
D<EBF8C0EA0185EA0705380E0380A2121C123C383807001278A3EAF00EA31410EB1C2012
70133C38305C40138C380F078014157B9419>97 D<137EEA01C138030180EA0703EA0E07
121C003CC7FC12381278A35AA45B12701302EA300CEA1830EA0FC011157B9416>99
D<143CEB03F8EB0038A31470A414E0A4EB01C013F9EA0185EA0705380E0380A2121C123C
383807001278A3EAF00EA31410EB1C201270133C38305C40138C380F078016237BA219>
I<13F8EA0384EA0E02121C123C1238EA7804EAF018EAFFE0EAF000A25AA41302A2EA6004
EA7018EA3060EA0F800F157A9416>I<143E144714CFEB018F1486EB0380A3EB0700A513
0EEBFFF0EB0E00A35BA55BA55BA55BA45B1201A2EA718012F100F3C7FC1262123C182D82
A20F>I<EB1F18EB30B813E03801C070A2EA03801207EB00E05AA3381E01C0A4EB038012
0E1307EA060BEB1700EA01E7EA0007A2130EA3EA701CEAF0185BEA60E0EA3F80151F7E94
16>I<13C0EA01E013C0A2C7FCA8121E12231243A25AA3120EA25AA35AA21340EA7080A3
EA71001232121C0B217BA00F>105 D<EA01E0EA0FC01201A3EA0380A4EA0700A4120EA4
5AA45AA45AA3127112E2A4126412380B237CA20C>108 D<391C0F80F8392610C10C3947
6066063987807807A2EB0070A2000EEBE00EA44848485AA3ED3820263803801340157016
8015303A7007003100D83003131E23157B9428>I<38380F80384C30C0384E4060388E80
70EA8F00128EA24813E0A4383801C0A3EB03840070138814081307EB031012E0386001E0
16157B941B>I<137EEA01C338038180380701C0120E001C13E0123C12381278A338F003
C0A21480130700701300130E130CEA3018EA1870EA07C013157B9419>I<3801C1F03802
62183804741C3808780CEB700EA2141EEA00E0A43801C03CA3147838038070A2EBC0E0EB
C1C038072380EB1E0090C7FCA2120EA45AA3EAFFC0171F7F9419>I<EA1C1F3826208038
4741C0EA87831303EB018090C7FC120EA45AA45AA45A123012157B9415>114
D<13C01201A4EA0380A4EA0700EAFFF8EA0700A2120EA45AA45AA31310EA7020A2134013
80EA3100121E0D1F7C9E10>116 D<001E1360002313E0EA4380EB81C01283EA8701A238
070380120EA3381C0700A31408EB0E101218121CEB1E20EA0C263807C3C015157B941A>
I<001E133000231370EA438014E01283EA8700A2380701C0120EA3381C0380A4EB0700A3
5BEA0C3EEA03CEEA000EA25B1260EAF0381330485AEA80C0EA4380003EC7FC141F7B9418
>121 D E /Fb 50 123 df<B51280A611067F9016>45 D<121C127FA2EAFF80A3EA7F00
A2121C09097B8813>I<1403EC0780A2140F1500A25C141E143E143CA2147C1478A214F8
5C13015CA213035CA213075C130F91C7FCA25B131E133E133CA2137C1378A213F85B1201
5BA212035BA212075B120F90C8FCA25A121EA2123E123C127C1278A212F85AA21260193C
7CAC22>I<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
22>I<EB07F8EB3FFE90B5FC3901FC07803903F00FC03807C01FEA0F80121F130048EB0F
8091C7FC127EA3EAFE02EB1FF0EB3FFCEB603EEB801F00FF14809038000FC0A24814E0A4
127EA4123E003F14C07EEC1F80D80F8013003807E07E6CB45A6C5B38003FC01B277DA622
>I<EB7F803801FFF000077F380FC0FC381F803E48487E007E1480A2140F00FE14C0A315
E0A5007E131FA26C133F6C132F380F80CF3807FF8F0001130FEA0008010013C0A3EC1F80
123E127FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801FEC7FC1B277DA622>
57 D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F14
80A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F080491303
000181491301A2000381D8FFFE013F13FCA32E297EA833>65 D<91387FE003903907FFFC
07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A
160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C
6C14786CB4EB01F090397FF007C0011FB512800107EBFE009038007FF028297CA831>67
D<B612FCEDFF8016E03A03FC001FF8ED03FCED00FE167FEE3F80EE1FC0A2EE0FE0A2EE07
F0A417F8AA17F0A3EE0FE0A217C0161FEE3F80EE7F005EED03FCED1FF8B75A168003FCC7
FC2D297EA834>I<B712E0A33903FC001FED07F01501A215001670A3913801C0781638A3
02031300A2140F90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C1638167816F8
15011503151FB712F0A327297EA82C>I<91387FE003903907FFFC07011FEBFF0F90397F
F00F9F9039FF0001FFD801FC7F484880484880484880485A82485A82127FA290CAFC5AA8
92B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E6C7E6CB45B90387FF007011FB512
9F0107EBFE0F9039007FF0032D297CA835>71 D<B512F0A33803FC00B3B1B512F0A31429
7EA819>73 D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A21507A2150FA2151F157F
913801FF00B7FCA322297EA828>76 D<D8FFFE92383FFF80A26D5D0003EFE000A2D9BF80
14EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8130EA2D981FC131CA3
D980FE1338A2027F1370A291383F80E0A391381FC1C0A291380FE380A2913807F700A3EC
03FEA26E5AA26E5AD8FFFE0203B51280A2157039297DA840>I<D8FFFCEC7FFF7F7F0003
6DEB01C080EBBFE0139F80EB8FF8EB87FCEB83FEEB81FF01801380147F15C0EC3FE0EC1F
F0EC0FF8EC07FC140315FEEC01FF6E1381ED7FC1ED3FE1ED1FF1150F16F9ED07FDED03FF
8181167FA2163F161F160F1607D8FFFE14031601A230297EA835>I<ECFFC0010F13FC90
383F807F9039FE001FC0D801F8EB07E048486D7E48486D7E000F8148486D7EA24848147F
A2007F168090C8123FA34816C0AA6C16806D147FA2003F1600A26C6C14FEA26C6C495A6C
6C495A6C6C495A6C6C495A6C6C495A90263FC0FFC7FC90380FFFFC010013C02A297CA833
>I<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FEA716FC150316F8ED07
F0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>I<B612E015FE6F7E3A03
FC003FE0ED0FF06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC
00FF80ED3FC06F7E6F7E6F7EA9170EA21503923801FC1CB538F000FEEE7FF8EE0FE02F29
7EA832>82 D<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A2
00FC1301A214007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC
010F13E0EB007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F
39E3FFFE0000E15B38C01FF01C297CA825>I<007FB71280A39039807F807FD87C00140F
00781507A20070150300F016C0A2481501A5C791C7FCB3A490B612C0A32A287EA72F>I<
B500F0EBFFFEA3D803FCC7EA0380B3AA0001ED07007F0000150E137F6D143CD91FC05B90
390FF003F06DB55A01001480DA1FFCC7FC2F297EA834>I<B500F0EB7FFFA3D803FEC7EA
01C00001ED0380A26D14076C16006E5B017F140E80013F5CA26E133C011F14386E137801
0F14708001075CA26D6C485AA2ECFE0301015CECFF076D91C7FC1587EC7F8EA215DEEC3F
DC15FC6E5AA26E5AA36E5AA26E5AA230297FA833>I<B53CE07FFFE01FFFC0A32803FC00
03FCC7EA7000A26D6D7E000160A26D6E13016C604B138002801503017F5F4B13C0D93FC0
013F49C7FCA2913AE00E1FE00F011F160E17F09126F01C0F131E010F161C033C13F89027
07F838075BA2037813FC902703FC70035BA2913AFEE001FEF001015E02FF14FF4B7E6D5E
A26E486D5AA36EC76CC8FCA2023E80021E141EA242297FA845>I<3803FF80000F13F038
1F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E
5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21>97
D<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A248133E007E90C7FCA212FEA712
7EA2127F6CEB03801380001FEB0700380FE00E3803F83C3801FFF838003FC0191B7E9A1E
>99 D<EC7FF0A31407ACEB3F873801FFF73807F03F380FC00F381F8007EA3F00A2127EA3
12FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FFE738007F87202A7EA925>I<
EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15C0A200FE1307A2B6FC
A248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803F01E3800FFFCEB3FE0
1A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813F01207143E1400A7B512C0A3
3807F000B3A3387FFF80A3182A7EA915>I<9038FF80F00003EBE3F8390FC1FE1C391F00
7C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E6C137C380FC1F8380BFFE000
18138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C14F0121F383C0007007CEB01
F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22>I<
EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EBE80701F813F013F0A213E0B0
39FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FC
A7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3120FACEC1FFCA3EC0780EC0F
00141E5C5C14E0EBE3C013E7EBEFE0EBFFF08013F3EBE1FCEBC0FE147FA2EC3F80EC1FC0
EC0FE0A2EC07F039FFFC1FFFA3202A7FA923>107 D<EAFFE0A3120FB3B2EAFFFEA30F2A
7EA912>I<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC9039
C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FFC0
7E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFFA320
1B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0393F0007E0A2007EEB
03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F803907F07F003801FF
FC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE0390FF803F09038F001F8
01E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038F807F09038FC0FE090
38EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC1F0EBC7FCEBC63E38
0FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114 D<3803FE30380FFFF0EA
3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C13E06C13F0000713F8C6
FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FFC000C11300161B7E9A1B
>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000AD1470A73807F0E00003
13C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F1307B2140FA20007131739
03F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA3390FF000F0000714E07F00
03EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D
5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE00FE001C02607F007EB03
80A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600FE1C5B15FE9039FF387E
3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2EC800701075CA22E1B7F
9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801FE1E00005BEB7F3814F8
6D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F803901E01FC0D803C013
E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF000F0000714E07F0003EB
01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA26D5AA3
6D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5BEA74F0EA3FE0EA0F8020
277F9A23>I<003FB5FCA2EB00FEEA3C01383803FC007813F8EB07F0EA700F14E0EB1FC0
EA003F1480EB7F005B5B3801FC07120313F8EA07F0000F130F13E0381FC00E003F131E38
7F803EEB00FEB5FCA2181B7E9A1E>I E /Fc 76 126 df<126012F0B212601200A61260
12F0A21260041E759D1A>33 D<EA701CEAF01EA7EA701CA5EA600C0F0E7B9D1A>I<3801
81803803C3C0A6387FFFF0B512F8A26C13F038078780A3EA0F8FEB0F00A4387FFFF0B512
F8A26C13F0381E1E00A6EA0C0C151E7E9D1A>I<13E0EA03F0487E1338EA0E1CA45BEB39
FC1371EA07F1EBE1C013C11381EB8380120FEA1FC3383DC700EA78E7EA70EEEAE07EA2EB
3C08141C137EEA70FF387FE7F8EA3FC3380F00E0161E7F9D1A>38
D<1218123C123E121E120EA5121CA2123812F812F01260070F779D1A>I<1338137813F0
EA01E0EA03C0EA0780EA0F00120E5AA25AA25AA35AAA1270A37EA27EA27E120FEA0780EA
03C0EA01E0EA00F8137813380D2878A21A>I<126012F012787E7E7EEA07801203EA01C0
A2EA00E0A21370A31338AA1370A313E0A2EA01C0A2EA03801207EA0F00121E5A5A5A1260
0D287CA21A>I<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F
FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>I<13301378A8387FFFF0B512F8
A26C13F038007800A8133015167E991A>I<1218123E127E127F123F121F1207120EA212
1C12FC12F81260080D77851A>I<387FFFC0B512E0A26C13C013047D901A>I<1230127812
FCA212781230060676851A>I<14C0EB01E0A2130314C013071480130F1400A25B131E13
3E133C137C1378A213F85B12015B12035BA212075B120F90C7FC5A121EA2123E123C127C
127812F85AA2126013277DA21A>I<EA01F0EA07FC487EEA1F1FEA1C0738380380A23870
01C0A338E000E0A9EAF001007013C0A2EA780300381380EA3C07001C1300EA1F1FEA0FFE
6C5AEA01F0131E7D9D1A>I<13C01201A212031207120F127F12FD12711201B2EA7FFFA3
101E7B9D1A>I<EA03F8EA0FFE381FFF80383C07C0387801E0EA70004813707EA21260C7
FCA214E0A2EB01C01303EB0780EB0F00131E5B5B5BEA03E0485A48C7FC001E13705A387F
FFF0B5FC7E141E7D9D1A>I<EA03FCEA0FFF003F13C0383C03E0EA78001470A2C7FCA214
E01301EB07C03803FF80140014C0380003E01300147014781438A2126012F01478481370
007013E0EA7E03383FFFC0000F1300EA01FC151E7E9D1A>I<EB0F80131F133BA2137313
F313E3EA01C3120313831207EA0F03120E121E123C1238127812F0B512FEA338000380A6
EB3FF8EB7FFCEB3FF8171E7F9D1A>I<383FFFC05AA20070C7FCA8EA71F8EA7FFEEBFF80
387E07C0EA7801383000E0C7FC1470A3126012F014E0EAE001387003C0387C0F80383FFF
00EA0FFEEA03F0141E7D9D1A>I<137E3801FF804813C0380781E0EA0F01121E383C00C0
003813005AA3EAE1F8EAE7FEB5FC38FE078038F803C0EAF001EB00E0A25A7E1270A2EB01
C01238383C0380EA1E0F380FFF00EA07FCEA01F0131E7D9D1A>I<12E0B512F8A214F038
E000E0EB01C0EA0003EB0780EB0F00130E5BA25BA25BA25BA3485AA4485AA8151F7E9E1A
>I<EA01FCEA07FF001F13C01307383C01E0387800F000701370A3007813F0003813E038
1E03C0380FFF803803FE00487E381F8FC0383C01E0387800F000701370481338A46C1378
00701370007813F0383E03E0381FFFC000071300EA01FC151E7E9D1A>I<EA01F0EA07FC
EA1FFEEA3E0F38380780EA7003EB01C012E0A214E01300A213011270EA7803EA3C0FEA1F
FFEA0FFCEA03F0380001C0A3EB0380126038F007005B133EEA7FFCEA3FF0EA0FC0131E7D
9D1A>I<1230127812FCA2127812301200A91230127812FCA212781230061576941A>I<12
18123C127EA2123C12181200A91218123C127EA2123E121E120EA2121C123C12F812F012
60071C77941A>I<14C0EB03E01307EB0FC0EB3F80EB7E005BEA03F8EA07E0485AEA3F80
007EC7FC5AA2127E6C7EEA0FC06C7EEA03F8C67E137EEB3F80EB0FC0EB07E01303EB00C0
131A7D9B1A>I<387FFFF0B512F8A26C13F0C8FCA4387FFFF0B512F8A26C13F0150C7E94
1A>I<126012F87E127E6C7EEA0FC06C7EEA03F8C67E137EEB3F80EB0FC0EB07E0A2EB0F
C0EB3F80EB7E005BEA03F8EA07E0485AEA3F80007EC7FC5A5A1260131A7D9B1A>I<1338
137CA2136C13EEA313C6A2EA01C7A3138300031380A4380701C0A213FFA24813E0EA0E00
A3001E13F0001C1370387F01FC38FF83FE387F01FC171E7F9D1A>65
D<EAFFFEEBFF8014C0381C03E0130014F01470A414E01301EB07C0381FFF80A214C0381C
01E0EB00F014701438A5147814F01301B512E014C01400151E7E9D1A>I<EB7C38EA01FF
000713F8EA0F83EA1E00001C13785A14385AA214005AA812701438A27EA26C1370001E13
F0380F83E03807FFC00001138038007C00151E7E9D1A>I<EA7FFEB5FC6C1380381C07C0
EB01E0EB00F0147014781438A2143C141CA8143C1438A21478147014F0EB01E0EB07C0EA
7FFFB512006C5A161E7F9D1A>I<B512F8A3381C0038A41400A3130EA3EA1FFEA3EA1C0E
A390C7FCA3141CA5B512FCA3161E7E9D1A>I<B512F8A3381C0038A41400A31307A3EA1F
FFA3EA1C07A390C7FCA8EAFFC0A3151E7E9D1A>I<EBF8E0EA03FEEA07FFEA0F07EA1E03
EA3C01EA38005AA3481300A6EB0FF8A3EB00E01270A213011238EA3C03121EEA0F07EA07
FFEA03FEEA00F8151E7E9D1A>I<38FF83FEA3381C0070AA381FFFF0A3381C0070AB38FF
83FEA3171E7F9D1A>I<EA7FFFB512806C1300EA01C0B3A6EA7FFFB512806C1300111E7C
9D1A>I<EA7FE012FF127F000EC7FCB3141CA5387FFFFCB5FC7E161E7F9D1A>76
D<00FC137E6C13FEA2383B01B8A31383A200391338A213C7A2EA38C613EEA2136CA2137C
1338A21300A700FE13FEA3171E7F9D1A>I<38FE03FE12FFA2381D8070A213C0121CA213
E0A213601370A213301338A21318131CA2130C130EA21306A213071303A238FF81F0A213
80171E7F9D1A>I<EA0FFE383FFF804813C0EA7C07EA700100F013E0EAE000B1EAF001A2
007013C0EA7C07EA7FFF6C1380380FFE00131E7D9D1A>I<EAFFFEEBFF8014C0381C03E0
EB00F0147014781438A41478147014F0EB03E0381FFFC01480EBFE00001CC7FCA9B47EA3
151E7E9D1A>I<EAFFFC13FF1480381C07C0EB01E0EB00F01470A414F0EB01E0EB07C038
1FFF8014001480381C07C01301EB00E0A514E214E7A338FF807EA21438181E7F9D1A>82
D<3803F8E0EA0FFEEA1FFFEA3C07EA780112F0EAE000A3140012701278EA3F80EA1FF8EA
07FF38007FC0EB07E0EB00F014701438A2126012E0A214706C13F038FE01E0B512C000EF
138038E1FE00151E7E9D1A>I<387FFFFEB5FCA238E0380EA400001300B3A23803FF80A3
171E7F9D1A>I<38FF83FEA3381C0070B3A26C13E0A2380701C013833803FF806C1300EA
007C171E7F9D1A>I<38FF01FEA3381C0070A3001E13F0000E13E0A3EA0F01000713C0A3
38038380A40001130013C7A3EA00C613EEA3136C137CA21338171E7F9D1A>I<00FE13FE
A30070131CA26C1338A7137C00181330381CEE70A513C6A2380DC760A31383A3000F13E0
A2380701C0171E7F9D1A>I<387F87F8A3380E01C0EA0703EB8380EA0387EBC700EA01CF
13EEEA00FE5B137C13781338137CA213FE13EEEA01CF13C7380387801383380701C0A238
0E00E0A2387F01FC38FF83FE387F01FC171E7F9D1A>I<126012F0A27E1278127C123C12
3E121EA2121F7E7F12077F1203A27F12017F12007F1378A2137C133C133E131E131F7FA2
1480130714C0130314E01301A2EB00C013277DA21A>92 D<EA1FF0EA3FFC487EEA780FEA
300738000380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA
1FFDEA07F016157D941A>97 D<127E12FE127E120EA6133EEBFF80000F13E0EBC1F0EB80
70EB0038120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D
1A>I<EBFF80000313C0000F13E0EA1F01383C00C04813001270A25AA51270A200781370
7E381F01F0380FFFE0000313C03800FE0014157D941A>I<EB0FC0131F130F1301A6EA01
F1EA07FDEA0FFFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFF8
3807FDFC3801F1F8161E7E9D1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E012
70481370A2B512F0A300E0C7FC1270A2007813707E381F01F0380FFFE0000313803800FE
0014157D941A>I<EB07E0EB1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800
E000AF383FFF804813C06C1380151E7F9D1A>I<3801F87C3807FFFE5A381E078C381C03
80383801C0A5381C0380EA1E07381FFF005BEA39F80038C7FCA27E381FFF8014E04813F8
3878007C0070131C48130EA40070131C0078133C003E13F8381FFFF0000713C000011300
17217F941A>I<127E12FE127E120EA6133EEBFF80000F13C013C1EB80E01300120EAC38
7FC3FC38FFE7FE387FC3FC171E7F9D1A>I<13C0487EA26C5A90C7FCA6EA7FE0A31200AF
387FFF80B512C06C1380121F7C9E1A>I<12FEA3120EA6EB0FFC131F130FEB03C0EB0780
EB0F00131E5B5B13FC120F13DE138F380E07801303EB01C014E0EB00F038FFE3FEA3171E
7F9D1A>107 D<EA7FE012FF127F1200B3A6387FFFC0B512E06C13C0131E7D9D1A>I<387C
E0E038FFFBF8EA7FFF381F1F1CEA1E1EA2EA1C1CAC387F1F1F39FFBFBF80397F1F1F0019
1580941A>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAC387FC3FC38FFE7FE
387FC3FC17157F941A>I<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA700138E0
00E0A6EAF001007013C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F013157D941A>
I<EA7E3E38FEFF80007F13E0380FC1F0EB8070EB0038120E141CA7000F13381478EB80F0
EBC1E0EBFFC0000E1380EB3E0090C7FCA8EA7FC0487E6C5A16207F941A>I<387F81F838
FF8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>114
D<3807FB80EA1FFF127FEA7807EAE003A30078C7FCEA7FC0EA1FFCEA07FE38003F801307
386001C012E0A2EAF00338FC0780B51200EAEFFEEAE3F812157C941A>I<487E1203A638
7FFFE0B5FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F9B1A>I<387E07
E0EAFE0FEA7E07EA0E00AD1301EA0F033807FFFC6C13FE3800FCFC17157F941A>I<387F
83FC38FFC7FE387F83FC380E00E0A3380701C0A338038380A33801C700A3EA00EEA3137C
A2133817157F941A>I<38FF83FEA338380038A26C1370A31338137CA2380C6C60380EEE
E0A413C6000613C0EA07C71383A217157F941A>I<387FC7F8EBCFFCEBC7F8380703C038
038380EBC700EA01EFEA00FE137C13781338137C13EE120113C738038380000713C0EA0F
01387FC7FC00FF13FE007F13FC17157F941A>I<387F83FC38FFC7FE387F83FC380E00E0
A27EEB01C0A2EA0381EB838013C31201EBC700EA00E7A213E61366136E133CA31338A35B
A2EA30F0EA78E01271EA7FC06C5A001EC7FC17207F941A>I<387FFFF8B5FCA238E000F0
EB01E0EB03C038000780EB0F00131E137C5B485AEA03C0485A380F0038121E5A5AB512F8
A315157E941A>I<EB07E0131F133FEB78005B5BAB1201485AB45A90C7FC7FEA03C06C7E
1200AB7F1378EB3FE0131F130713277DA21A>I<127CB4FC7FEA03C06C7E1200AB7F1378
EB3FE0131F133FEB78005B5BAB1201485AB45A90C7FC127C13277DA21A>125
D E /Fd 42 123 df<B512F8A715077F921B>45 D<121E123FEA7F80EAFFC0A4EA7F80EA
3F00121E0A0A7A8916>I<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007F
B512F0A31C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038
EB1FF0007CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC
0FF8A215F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B1338
49131E49131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<EB1FF890
B5FC000314C03907E01FF0390F0007F8D81F807FEA3FC06E7EA4EA1F80380F0007C75BA2
5D4A5A4A5AEC3F8002FFC7FCEB3FF8ECFF809038001FE06E7E6E7E6E7E816E7EA21680A3
121C123E127FEAFF801600A24A5AEA7F00007E495A003C5C391FC01FF06CB512C0000391
C7FC38003FF8212E7DAD28>I<157015F0140114031407140FA2141F143F147714F714E7
EB01C7EB0387EB0707130F130E131C1338137013F013E0EA01C0EA0380EA07005A120E5A
5A5A5AB712E0A3C7380FF000A9010FB512E0A3232E7EAD28>I<000C1430390FC007F090
B512E015C0158015005C14F85C1480000EC8FCA8EB1FF0EBFFFE390FE03F809038000FC0
000EEB07E0000C14F0C713F8140315FCA215FEA21218123E127F5AA215FCA25A0078EB07
F815F06CEB0FE06CEB1FC0390FC07F806CB51200000113FC38003FE01F2E7CAD28>I<EB
7FF03803FFFE390F807F80391C001FC048EB0FE0007C14F000FE14F87EA4007E14F0003C
131FC713E0EC3FC0EC7F80ECFE0014F8495A495A5C495A91C7FC5B130EA990C8FCA7131E
133F497E497EA46D5A6DC7FC131E1D327CB126>63 D<1578A215FCA34A7EA24A7EA24A7F
A34A7FEC0E7F021E7FEC1C3FA202387F151F02787FEC700FA202E07F1507010180ECC003
A249486C7EA201078191C7FC498191B6FCA24981011CC7123F013C810138141FA2498116
0F01F081491407A2484881486C1403B549B512FCA336317DB03D>65
D<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01
FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607A2485A1703127FA249
92C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C
151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F802
03138031317CB03A>67 D<B712F016FF17C0C6D9800013F0EE0FF8EE03FE707E701380EF
7FC0173FEF1FE018F0170F18F8A2EF07FCA418FEAB18FCA4EF0FF8A218F0171F18E0173F
EF7FC01880933801FF004C5AEE0FFCEE7FF0B812C094C7FC16F037317EB03E>I<B812F0
A3C6903880003FEE07F816031600A21778A21738A3171C1507A31700A25D5D5D91B5FCA3
EC803F818181A21707A392C7120EA4171EA2173CA2177C17FC16011607163FB812F8A330
317EB035>I<B61280A3C6EB8000B3B3A7B61280A319317EB01E>73
D<B67EA3000190C9FCB3A9EE0380A416071700A25EA35E5E5E5E4B5A150FB7FCA329317D
B030>76 D<B500C00303B5FCA26E5DC61900D9EFF0150EA3D9E7F85DA2D9E3FC5DA2D9E1
FE5DA2D9E0FF5DA26E6C495AA26E6C495AA36E6C495AA26E6C130EA26E6C5BA26E6C5BA2
6E6C5BA26E6C5BA392387F81C0A292383FC380A2DB1FE7C7FCA2ED0FFEA26F5AA36F5A48
7EB526E001F090B6FCA26F5A48317EB04D>I<EC0FFF91B512F0903907FC03FE903A1FE0
007F80D93F80EB1FC049C76C7ED801FEEC07F848486E7E48486E7EA248486E7E001F1780
49157F003F17C0A34848ED3FE0A300FF17F0AB007F17E06D157FA3003F17C0A26C6CEDFF
80A26C6C4A130000075E6D140300035E6C6C4A5A6C6C4A5AD93FC0EB3FC06D6C495A9027
07FC03FEC7FC0100B512F0020F90C8FC34317CB03D>79 D<B712E016FEEEFF80C6D98000
13E0EE3FF0EE0FF8EE07FCA2EE03FEA217FFA717FEA2EE07FC17F8160FEE3FE0EEFFC091
B6120016F80280C8FCB3A2B67EA330317EB037>I<90391FF8018090B51203000314C739
07F007EF390F8000FF48C7127F003E141F150F5A150712FCA215037EA26C91C7FC13C0EA
7FF0EBFF806C13F8ECFF806C14F06C806C806C14FFC6FC013F1480010114C0D9001F13E0
1401EC003FED1FF0150F1507126000E01403A316E07EA26CEC07C07EB4EC0F8001C0EB1F
00D8FBFC13FE00F1B512F8D8E03F5BD8C003138024317CB02D>83
D<B5D8FC03B539F003FFFCA3D803FEC7D80FF8C7EA0F80F207006D6F5C6C0307150EA26C
6D6E5CA26E80017F4A5DA26E496D1378013F021C1570A26E013C6D13F0011FDA387F5CA2
6D6C496C6C485AA26EEDF0030107DAE01F5CA2DAFE01ECF8070103DAC00F91C7FCA29026
01FF03ECFC0EEE800715836D903A870003FE1CA203CFECFF3CDA7FCE6D1338A203FE15F8
6E486D5BA26E486E5AA36E486E5AA36E486E5AA36E486EC8FCA24E317EB053>87
D<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FCA414
FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F800D393FC0
1DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97 D<EB0FFF017F13C03901FC01
F03803F0033907E007F8120FEA1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C
131CA2001F14386C7E000714703903F001E03901FC07C039007FFF00EB0FF81E207D9F24
>99 D<ED0FC0EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E000
7F120F4848133F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F003
13E03A01FC0F3FFE38007FFEEB0FF027327DB12D>I<EB0FFC90387FFF803901FC0FC039
03F003E03907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FC
A20180C7FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFF
C0903807FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0
120113FC1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB1
19>I<90391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0
001FECF000A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1F
F090C9FC121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC
1FE0007C140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC00
01B512F0D8001F90C7FC242F7E9F28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC78
3F02C013809039F9801FC0EBFB0001FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA
03C0487E487E487EA46C5A6C5A6C5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB2
17>I<EA01F812FFA3120F1207ADEDFFF8A3ED3F00153C5D5DEC03C04A5A4AC7FC141E14
7814FCEBF9FE13FB90B5FC496C7E01FC7FEBF83F496C7E6E7E816E7E14036E7E6E7E1680
157F16C0B53881FFFEA327327EB12B>107 D<EA01F812FFA3120F1207B3B3A6B512C0A3
12327DB117>I<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01E0FC02C090388300
FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3B500C3B5380FFFFC
A33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1801FC03807F30001
F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFFC03901FC07F03903
F001F848486C7E4848137E001F147F003F158049133F007F15C0A300FF15E0A8007F15C0
A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF039007FFFC0D907FC
C7FC23207E9F28>I<3901F83FE000FFEBFFFC9038FBE07F9039FF003F80D807FEEB1FC0
49EB0FE04914F0ED07F8A216FC1503A216FEA816FC1507A216F8A2ED0FF06D14E06DEB1F
C06DEB3F809039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A3272E7E9F2D>I<3803
F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07E0EC03C091C7FCA25B
B2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C133E48131E140E12F8
A36C90C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA003F01001380143F0060
131F00E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C07F8019207D9F20>I<
131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201
EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I<D801F8EB07E000FFEB03FFA3000F
EB003F0007141FB3153FA20003147FA26C6CEBDFF03A00FE039FFF90387FFF1FEB0FFC28
207D9F2D>I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315007F0001140E7F6C5C
A2EC803C017F1338ECC078013F1370ECE0F0011F5B14F1010F5B14F9903807FB80A214FF
6D90C7FCA26D5AA26D5AA21478A226207E9F2B>I<B53A1FFFE03FF8A33C0FF000FE0007
806D150300076EEB0700816D5D00039138FF800EA26C6C486D5A15DF01FF153C6C903903
8FE038A2D97F876D5A150702C714F0D93FCF6D5AECCE03D91FFEEBF9C09138FC01FD16FF
010F5D4A7EA26D486DC7FCA20103147E4A133EA26D48131C35207E9F3A>I<3A7FFF807F
FCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B90381FE1E090380FF3C0
ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF08190380F07FC90381E03
FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA328207F9F2B>I<B5EB
1FFCA3D80FF8EB03C0000715806D1307000315007F0001140E7F6C5CA2EC803C017F1338
ECC078013F1370ECE0F0011F5B14F1010F5B14F9903807FB80A214FF6D90C7FCA26D5AA2
6D5AA21478A21470A214F05C1301007C5BEAFE035C49C8FC5BEAFC1EEA787CEA3FF0EA0F
C0262E7E9F2B>I<003FB512F8A29038800FF0393E001FE0003C133F003814C00078EB7F
8014FFD8700113005C1303495A00005B130F495A5C495A137F9038FF801C14005A485A5B
0007143C485A49133848481378003F14F8EBC001387F8007B6FCA21E207E9F24>I
E /Fe 23 90 df<1230127812F81278127005057C840E>46 D<1304130C137CEA079CEA
001CA21338A61370A613E0A6EA01C0A61203A2EAFFFE0F217CA018>49
D<EB1FC0EB6070EB80383801003C0002131C48131EA2120F1380A2EB003E0006133CC7FC
1478A214F0EB01E014C0EB0380EB0700130E13185B5B5B38018010EA030012044813205A
383FFFE04813C0B5FC17217EA018>I<EB3F80EBC0E038010070000213785AEA0780120F
A2380700F8C712F0A2EB01E014C0EB0380EB0E0013FC1307EB038014C0EB01E0A314F012
30387803E012F8A200F013C0EA800700401380EB0F00EA201EEA1838EA07E015227DA018
>I<1420146014E01301A21302EB05C013091319131113211341EB838012011303120212
041208381807001210122012401280B512F838000E00A65B131E3801FFE015217DA018>
I<38018008EBE078EBFFF014E0148038027E0090C7FCA55A133EEBC380380701C0EA0400
14E0C7FC14F0A5127038F801E012F012E0008013C038400380EB0700A2EA200CEA1838EA
07E015227DA018>I<14041406140E141EA2143E143F144FA2148FA29038010F80140713
02A2130481EB0803A21310A2132090383FFFE0EB400113C01380EA01008100021300A25A
A2000C80003E13013AFF800FFF8021237EA225>65 D<903801FC0290380F030690383C00
8C0170135C49133C485A4848131C48C7FC481418121E1508123E123C127C15005AA55AA3
1520A215407E127815800038EB0100123C001C13026C130C6C13103801C0E0D8003FC7FC
1F247AA223>67 D<0007B57E39007C01E0903878007881151C151E815BA216801507A215
0F485AA64848EB1F00A3151E153E153C485A5D5D5D4A5A4A5A260F000FC7FCEB803CB512
F021227DA125>I<0007B512FE39007C003E0178131C150C1504A35BA314041500140C38
01E008A21438EBFFF8EBE03814183803C010A31504EC0008A2485A1510A2153015201560
390F0001E090388007C0B6FC1F227DA121>I<0007B512FE39007C003E0178131C150C15
04A35BA314041500140C3801E008A21438EBFFF8EBE03814183803C010A491C7FCA2485A
A6120FA2EAFFFC1F227DA120>I<ECFE01903807018390381C00460170132E49131E485A
4848130E120748C7120C121E1504123E123C127C15005AA55AEC3FFFEC01F01400A36CEB
01E01278A212387E6C13030006EB04C0380380083901E0704039003F800020247AA226>
I<3A07FFC1FFF03A007C001F000178131EA5495BA648485BA390B512F89038E00078A248
485BA64848485AA64848485A01807F39FFF83FFE24227DA125>I<3807FFC038007C0013
78A55BA6485AA6485AA6485AA648C7FC7FEAFFF812227DA112>I<D807FCEC1FF0D8007C
EC3F00015E143E165EA2169EA2018F495AA21502A215049038878008D801075C1510A215
20EB03C0154000025D1580A2903801E100A214E200044A5A14E4EB00F8A214F0120C4A48
5A003E01607F3AFFC0403FFE2C227DA12D>77 D<D807FCEB3FF0D8007CEB0780017EEB03
00015E1302135F134F148001875BA2EB83C0A2EB81E0A248C66C5AA21478A2143CA20002
6D5AA2141F140F159014074814A0EC03E0A21401A2000C13005D003E1440EAFFC024227D
A125>I<EB01FCEB0E0790383801C090387000E0484813F048481378485A90C7123C5A12
1E153E5AA2127CA25AA5157C5AA215F8A26C14F01401007814E0EC03C0EC07806C140000
1C130E6C5B6C13783803C1E0D8007FC7FC1F247AA226>I<0007B5128039007C01E09038
7800F01578A2157CA25BA4157815F8484813F0EC01E0EC03C0EC0F00EBFFFC01E0C7FC48
5AA6485AA648C8FC7FEAFFF81E227DA121>I<0007B5FC39007C03C090387800F01578A2
157CA25BA45D5D4848485A4A5A020FC7FCEBFFF8EBE018140EEA03C080A281A33807800F
A41680ED8100EA0F0090388007C239FFF803C6C812F821237DA124>82
D<90380FC080EB30319038C00B00380180071203497E5AA2000E1302A2120F91C7FCA27F
EA07E013FE3803FFC06C7F6C6C7EEB0FF81300147880A31220481338A300601330147014
6000F05B38E80180D8C607C7FCEA81FC19247DA21B>I<001FB512FE393C03E03E0038EB
C00C00301404122012601240EB078012C01280A200001400A249C7FCA6131EA65BA6137C
13FC381FFFF01F227AA123>I<39FFF807FE390F8000F090C712601540A4001E1480A648
EB0100A6481302A55CA35CA200385B5C6C5B6C5BD80703C7FCEA00FC1F2378A125>I<D8
FFF0EB3FE0D80FC0EB0F0049130E000714086D1318000314106D5B00015C6D5BA2000049
C7FCEBF802EB7804EB7C0CEB3C08EB3E10EB1E20EB1F4014C06D5A91C8FCA4130E131EA5
131C133C133E3803FFE023227AA125>89 D E /Ff 82 125 df<90381FC1F09038703718
9038C03E3C3801807C000313783907003800A9B612C03907003800B2143C397FE1FFC01E
2380A21C>11 D<EB1FC0EB7020EBC0103801803800031378EA0700143091C7FCA7B512F8
380700781438B2397FE1FF80192380A21B>I<EB1FD8EB7038EBC078EA01801203380700
38A9B512F838070038B3397FF3FF80192380A21B>I<90380FC07F90397031C0809039E0
0B00402601801E13E00003EB3E013807003C91381C00C01600A7B712E03907001C011500
B23A7FF1FFCFFE272380A229>I<127012F8A71270AC1220A61200A5127012F8A3127005
247CA30E>33 D<EA7038EAF87CEAFC7EA2EA743AEA0402A4EA0804A2EA1008A2EA2010EA
40200F0F7EA218>I<D80780130CEA18406D5B486C1370D8701C13B0396013FF6038E008
005D4A5AA24AC7FC1406A25C38601018127000305BEA1820495A390780C03CC713429038
0180C190380301819138038080010613001640495A1318A213301360A213C048487E1680
D80300138091380181000006EB00C14814420004143C22287DA429>37
D<127012F812FCA212741204A41208A21210A212201240060F7CA20E>39
D<132013401380EA01005A12061204120CA25AA25AA312701260A312E0AE1260A3127012
30A37EA27EA2120412067E7EEA0080134013200B327CA413>I<7E12407E7E12187E1204
1206A27EA2EA0180A313C01200A313E0AE13C0A312011380A3EA0300A21206A21204120C
5A12105A5A5A0B327DA413>I<7FA538C08180EAF08738388E00EA0EB8EA03E06C5A487E
EA0EB8EA388E38F08780EAC08138008000A511157DA418>I<497EB0B612FEA239000180
00B01F227D9C26>I<127012F812FCA212741204A41208A21210A212201240060F7C840E>
I<EAFFF8A20D02808B10>I<127012F8A3127005057C840E>I<14801301A2EB0300A31306
A35BA35BA35BA35BA35BA3485AA448C7FCA31206A35AA35AA35AA35AA35AA311317DA418
>I<EA01F0EA071CEA0C06487E00381380A2387001C0A400F013E0AE007013C0A3EA7803
00381380A2381C0700EA0C06EA071CEA01F013227EA018>I<13801203120F12F31203B3
A9EA07C0EAFFFE0F217CA018>I<EA03F0EA0C1CEA100700201380384003C0A2008013E0
12F0EAF801A3EA2003120014C0A2EB07801400130E5B13185B5B5B485A90C7FC00021320
5A5A00181360481340383FFFC05AB5FC13217EA018>I<EA03F8EA0C1EEA100F38200780
004013C0127813031307123800001380A214005B130C1338EA03F0EA001C130FEB0780A2
EB03C0A214E01220127012F8A200F013C01240EB0780122038100F00EA0C1CEA03F01322
7EA018>I<1303A25BA25B1317A21327136713471387120113071202120612041208A212
101220A2124012C0B512F838000700A7EB0F80EB7FF015217FA018>I<00101380381E07
00EA1FFF5B13F8EA17E00010C7FCA6EA11F8EA120CEA1C07381803801210380001C0A214
E0A4127012F0A200E013C01280EA4003148038200700EA1006EA0C1CEA03F013227EA018
>I<137EEA01C138030080380601C0EA0C03121C381801800038C7FCA212781270A2EAF0
F8EAF30CEAF4067F00F81380EB01C012F014E0A51270A3003813C0A238180380001C1300
EA0C06EA070CEA01F013227EA018>I<12401260387FFFE014C0A23840008038C0010012
801302A2485A5BA25B5BA21360134013C0A21201A25B1203A41207A76CC7FC13237DA118
>I<EA01F8EA060EEA0803381001801220386000C0A31270A238780180003E1300EA3F02
EA1FC4EA0FF812036C7EEA067EEA083F38100F80383007C0EA6003EB00E05A1460A40060
134014C06C138038180300EA0E0EEA03F013227EA018>I<EA01F0EA060C487EEA180738
3803801270A238F001C0A314E0A5127013031238EA1805120CEA0619EA03E1380001C0A3
EB0380A21230387807001306EA700CEA20186C5AEA0FC013227EA018>I<127012F8A312
701200AB127012F8A3127005157C940E>I<B612FEA2C9FCA8B612FEA21F0C7D9126>61
D<EA0380EA07C0A3EA0380C7FCA55AA75A12021206A25A121C5A1278127012F0130FA313
01EA70021304EA3818EA0FE010237D9817>I<EA07E0EA1838EA201CEA400EEA800F12F0
A31200130E131C13381330136013C0A21380A212011300A6C7FCA5EA0380EA07C0A3EA03
8010237DA217>I<497EA3497EA3EB05E0A2EB09F01308A2EB1078A3497EA3497EA2EBC0
1F497EA248B51280EB0007A20002EB03C0A348EB01E0A348EB00F0121C003EEB01F839FF
800FFF20237EA225>65 D<B512F8380F800E0007EB0780EC03C015E0140115F0A515E014
03EC07C0EC0F80EC3E00EBFFFE9038800780EC03C0EC01E015F0140015F8A6EC01F0A2EC
03E0EC07C0000FEB0F00B512FC1D227EA123>I<903807E0109038381830EBE0063901C0
017039038000F048C7FC000E1470121E001C1430123CA2007C14101278A200F81400A812
781510127C123CA2001C1420121E000E14407E6C6C13803901C001003800E002EB381CEB
07E01C247DA223>I<B512F0380F801E00071307EC0380EC01C0EC00E015F01578A2157C
153CA3153EA9153CA2157C1578A215F015E01401EC03C0EC0700000F131EB512F01F227E
A125>I<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF
138014601420A315081400A21510A31530A2157015E0000F1303B6FC1D227EA121>I<B6
12C0380F80070007130114001540A215601520A314201500A3146014E013FF1380146014
20A491C7FCA9487EEAFFFE1B227EA120>I<903807F00890383C0C18EBE0023901C001B8
39038000F848C71278481438121E15185AA2007C14081278A200F81400A7EC1FFF0078EB
00F81578127C123CA27EA27E7E6C6C13B86C7E3900E0031890383C0C08903807F0002024
7DA226>I<39FFFC3FFF390FC003F039078001E0AE90B5FCEB8001AF390FC003F039FFFC
3FFF20227EA125>I<EAFFFCEA0FC0EA0780B3ACEA0FC0EAFFFC0E227EA112>I<EAFFFCEA
1F806CC7FCB3A21401A41403A214021406A2141E48137EB512FE18227DA11E>76
D<D8FFC0EB03FF000F15F0000715E0D805E01305A2D804F01309A301781311A36D1321A3
6D1341A26D1381A39038078101A3EB03C2A2EB01E4A3EB00F8A31470120E001FEC03F03A
FFE0203FFF28227EA12D>I<39FF8007FF3907C000F81570D805E01320EA04F0A2137813
7C133C7F131F7FEB0780A2EB03C0EB01E0A2EB00F014F81478143C143E141E140FA2EC07
A0EC03E0A21401A21400000E1460121FD8FFE0132020227EA125>I<EB0FE0EB783CEBE0
0E3903C0078039078003C0390F0001E0000E1300001E14F0481478A2007C147CA2007814
3CA200F8143EA90078143C007C147CA2003C1478003E14F8001E14F06CEB01E0A2390780
03C03903C007803900E00E00EB783CEB0FE01F247DA226>I<B512F0380F803C0007130F
EC078015C0140315E0A615C014071580EC0F00143CEBFFF00180C7FCAE487EEAFFFC1B22
7EA121>I<B512E0380F803C0007130E6E7E81140381A55D14075D020EC7FC143CEBFFE0
EB80708080141E140E140FA481A3168015C014073A0FC003C10039FFFC01E2C8127C2123
7EA124>82 D<3803F020380C0C60EA1802383001E0EA70000060136012E0A21420A36C13
00A21278127FEA3FF0EA1FFE6C7E0003138038003FC0EB07E01301EB00F0A214707EA46C
1360A26C13C07E38C8018038C60700EA81FC14247DA21B>I<007FB512F8397807807800
60141800401408A300C0140C00801404A400001400B3A3497E3801FFFE1E227EA123>I<
39FFFC07FF390FC000F86C4813701520B3A5000314407FA2000114806C7E9038600100EB
3006EB1C08EB03F020237EA125>I<D8FFF0EB7FC0D81F80EB1F006CC7120C7F00071408
A26C6C5BA36C6C5BA26D136000001440A201785BA2137CD93C01C7FCA2EB1E02A36D5AA2
148CEB0788A2EB03D0A214F06D5AA26D5AA322237FA125>I<3BFFF03FFC03FE3B1F8007
E000F86C486C48137017206E7ED807801540A24A7E2603C0021480A39039E00478010001
1600A2EC083CD800F01402A2EC101E01785CA2EC200F013C5CA20260138890391E400790
A216D090391F8003F0010F5CA2EC00016D5CA20106130001025C2F237FA132>I<397FF8
03FF390FE001F83907C000E06C6C5B00015CEBF001D800F890C7FCEB7802EB7C04133EEB
1E08EB1F10EB0FB0EB07A014C06D7E130180497EEB0278EB047CEB0C3EEB081EEB101F49
6C7E140701407F496C7E1401D801007F486D7E5AD81F807F3AFFC003FFC022227FA125>
I<D8FFF0EB7FC0D81F80EB1F00000F140C000714087F00035C6C6C5B7F00005C6D13C001
7C5BD93C01C7FC133EEB1E02EB1F06EB0F84EB078814D8EB03D014E01301AC1303EB3FFE
22227FA125>I<12FEA212C0B3B3A912FEA207317BA40E>91 D<EA0804EA1008EA2010A2
EA4020A2EA8040A4EAB85CEAFC7EA2EA7C3EEA381C0F0F7AA218>I<12FEA21206B3B3A9
12FEA207317FA40E>I<EA1FE0EA3038EA780C130EEA30071200A313FFEA07C7EA1E0712
3C1278127000F01308A3130FEA7817383C2390380FC1E015157E9418>97
D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E1338143C141C141EA7141C14
3C1438000F1370380C8060EB41C038083F0017237FA21B>I<EA01FEEA0703380C078012
1C383803000078C7FC127012F0A712700078134012386C1380380C0100EA0706EA01F812
157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA1C01EA38001278127012F0
A7127012781238EA1801EA0C0238070CF03801F0FE17237EA21B>I<EA01FCEA0707380C
0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512700078132012386C13406C
138038070300EA00FC13157F9416>I<133E13E33801C780EA0387130748C7FCA9EAFFF8
0007C7FCB27FEA7FF0112380A20F>I<14703803F198380E1E18EA1C0E38380700A20078
1380A400381300A2EA1C0EEA1E1CEA33F00020C7FCA212301238EA3FFE381FFFC06C13E0
383000F0481330481318A400601330A2003813E0380E03803803FE0015217F9518>I<12
0E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF38FFE7FF18237FA21B>I<
121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227FA10E>I<13E0EA01F0A3EA
00E01300A81370EA07F012001370B3A51260EAF0E013C0EA6180EA3F000C2C83A10F>I<
120E12FE121E120EABEB03FCEB01F014C01480EB02005B5B5B133813F8EA0F1CEA0E1E13
0E7F1480EB03C0130114E0EB00F014F838FFE3FE17237FA21A>I<120E12FE121E120EB3
ADEAFFE00B237FA20E>I<390E1FC07F3AFE60E183803A1E807201C03A0F003C00E0A200
0E1338AF3AFFE3FF8FFE27157F942A>I<380E1F8038FE60C0381E80E0380F0070A2120E
AF38FFE7FF18157F941B>I<EA01FCEA0707380C0180381800C0003813E0481370A200F0
1378A700701370007813F0003813E0381C01C0380E038038070700EA01FC15157F9418>
I<EA0E1F38FE61C0380E8060380F0070000E1338143CA2141EA7143CA21438000F137038
0E80E0EB41C0EB3F0090C7FCA9EAFFE0171F7F941B>I<3801F82038070460EA0E02EA1C
01003813E0EA7800A25AA71278A2EA3801121CEA0C02EA070CEA01F0C7FCA9EB0FFE171F
7E941A>I<EA0E3CEAFE46EA1E8FEA0F0F13061300120EAD120FEAFFF010157F9413>I<EA
0F88EA3078EA601812C01308A212E0EAF000127FEA3FE0EA0FF0EA01F8EA003CEA801C13
0CA212C01308EAE018EAD030EA8FC00E157E9413>I<1202A41206A3120E121E123EEAFF
FCEA0E00AB1304A6EA07081203EA01F00E1F7F9E13>I<000E137038FE07F0EA1E00000E
1370AD14F0A238060170380382783800FC7F18157F941B>I<38FF80FE381E0078143000
0E1320A26C1340A2EB80C000031380A23801C100A2EA00E2A31374A21338A3131017157F
941A>I<39FF8FF87F393E01E03C001CEBC01814E0000E1410EB0260147000071420EB04
301438D803841340EB8818141CD801C81380EBD00C140E3900F00F00497EA2EB6006EB40
0220157F9423>I<38FF83FE381F00F0000E13C06C1380EB8100EA0383EA01C2EA00E413
78A21338133C134E138FEA0187EB0380380201C0000413E0EA0C00383E01F038FF03FE17
157F941A>I<38FF80FE381E00781430000E1320A26C1340A2EB80C000031380A23801C1
00A2EA00E2A31374A21338A31310A25BA35B12F05B12F10043C7FC123C171F7F941A>I<
383FFFC038380380EA300700201300EA600EEA401C133C1338C65A5B12015B38038040EA
07005A000E13C04813805AEA7801EA7007B5FC12157F9416>I<B9FC3001808C31>124
D E /Fg 43 122 df<EB0FF0EB7FFC3801F80E3803E01F48485AEA0F80A2141E140C91C7
FCA4B6FCA2380F801FB2397FF0FFE0A21B237FA21F>12 D<1238127C12FEA5127CA81238
A81200A51238127C12FEA3127C123807237BA211>33 D<1238127C12FE12FFA2127F123B
1203A31206A2120C121C12181270122008117C8610>44 D<EAFFFCA40E047F8C13>I<13
FE3807FFC0380F83E0381F01F0383E00F8A248137CA312FC147EAD007C137CA36C13F8A2
381F01F0380F83E03807FFC03800FE0017207E9F1C>48 D<13181378EA01F812FFA21201
B3A7387FFFE0A213207C9F1C>I<EA03FCEA0FFF383C1FC0387007E0007C13F0EAFE0314
F8A21301127CEA3803120014F0A2EB07E014C0EB0F80EB1F00133E13385BEBE018EA01C0
EA0380EA0700000E1338380FFFF05A5A5AB5FCA215207D9F1C>I<13FE3807FFC0380F07
E0381E03F0123FEB81F8A3EA1F0314F0120014E0EB07C0EB1F803801FE007F380007C0EB
01F014F8EB00FCA2003C13FE127EB4FCA314FCEA7E01007813F8381E07F0380FFFC03801
FE0017207E9F1C>I<14E013011303A21307130F131FA21337137713E7EA01C71387EA03
071207120E120C12181238127012E0B6FCA2380007E0A790B5FCA218207E9F1C>I<0030
1320383E01E0383FFFC0148014005B13F8EA33C00030C7FCA4EA31FCEA37FF383E0FC038
3807E0EA3003000013F0A214F8A21238127C12FEA200FC13F0A2387007E0003013C0383C
1F80380FFF00EA03F815207D9F1C>I<EB1F80EBFFE03803E0703807C0F0380F01F8121F
123EA2387E00F0007C1300A2EAFC08EB7FC0EBFFE038FD80F038FF00F848137CA248137E
A4127CA3003C137C123E001E13F86C13F0380783E03803FFC0C6130017207E9F1C>I<12
601278387FFFFEA214FC14F8A214F038E0006014C038C00180EB0300A2EA00065B131C13
1813381378A25BA31201A31203A76C5A17227DA11C>I<13FE3803FFC0380703E0380E00
F05A1478123C123E123F1380EBE0F0381FF9E0EBFFC06C13806C13C06C13E04813F0381E
7FF8383C1FFCEA7807EB01FEEAF000143E141EA36C131C007813387E001F13F0380FFFC0
0001130017207E9F1C>I<EA01FE3807FF80380F83E0381E01F0EA3E004813F8147800FC
137CA3147EA4007C13FEA2EA3E01381E037EEA0FFEEA07FCEA0020EB007CA2121E003F13
F8A214F0EB01E0381E03C0381C0F80380FFE00EA03F817207E9F1C>I<1470A214F8A349
7EA2497EA3EB067FA2010C7F143FA2496C7EA201307F140F01707FEB6007A201C07F90B5
FC4880EB8001A2D803007F14004880000680A23AFFE007FFF8A225227EA12A>65
D<B67E15F03907F003FCEC007E81ED1F80ED0FC0ED07E0A216F01503A316F8A916F0A3ED
07E0A2ED0FC0ED1F80ED3F00157EEC03FCB612F0158025227EA12B>68
D<D903FE134090391FFFC0C090387F00F1D801F8133F4848130FD807C01307000F140348
5A48C71201A2481400127EA200FE1500A791380FFFFC127E007F9038001FC0A27EA26C7E
6C7E6C7E6C7ED801FC133F39007F80E790381FFFC30103130026227DA12C>71
D<B51280A23807F000B3ACB51280A211227EA115>73 D<D8FFF0EC0FFF6D5C000716E0D8
06FC1437A3017E1467A26D14C7A290391F800187A290390FC00307A3903807E006A29038
03F00CA2903801F818A3903800FC30A2EC7E60A2EC3FC0A2EC1F80A3EC0F00D8FFF091B5
FC140630227EA135>77 D<D8FFF8EB1FFE7F0007EC00C07FEA06FF6D7E6D7E6D7E130F80
6D7E6D7E6D7E130080EC7F80EC3FC0EC1FE0EC0FF0140715F8EC03FCEC01FEEC00FF157F
A2153F151F150F15071503A2D8FFF01301150027227EA12C>I<EB07FC90383FFF809038
FC07E03903F001F848486C7E4848137E48487FA248C7EA1F80A24815C0007E140FA200FE
15E0A9007E15C0007F141FA26C15806D133F001F15006C6C137E6C6C5B6C6C485A3900FC
07E090383FFF80D907FCC7FC23227DA12A>I<3801FE023807FF86381F01FE383C007E00
7C131E0078130EA200F81306A27E1400B4FC13E06CB4FC14C06C13F06C13F86C13FC0003
13FEEA003F1303EB007F143FA200C0131FA36C131EA26C133C12FCB413F838C7FFE00080
138018227DA11F>83 D<007FB61280A2397E03F80F00781407007014030060140100E015
C0A200C01400A400001500B3A248B512F0A222227EA127>I<EA0FFC383FFF80387E07C0
EB03E0130114F0123C1200A2133FEA03FDEA1FC1EA3F01127E12FCA4EA7E02EB0CF8381F
F87F3807E03F18167E951B>97 D<EBFF80000713E0380F83F0EA1F03123E127E387C01E0
90C7FC12FCA6127C127EA2003E13186C1330380FC0603807FFC0C6130015167E9519>99
D<EB01FEA2EB003EABEA01FC3807FFBE380F81FE381F007E003E133E127E127C12FCA812
7CA26C137E6C13FE380F83BE3907FF3FC0EA01FC1A237EA21F>I<13FE3807FF80380F87
C0381E01E0003E13F0EA7C0014F812FCA2B5FCA200FCC7FCA3127CA2127E003E13186C13
30380FC0703803FFC0C6130015167E951A>I<EB1FC0EB7FE0EBF1F0EA01E31203EA07C3
EBC1E0EBC000A6EAFFFEA2EA07C0B2EA3FFCA2142380A211>I<3801FE0F3907FFBF8038
0F87C7381F03E7391E01E000003E7FA5001E5BEA1F03380F87C0EBFF80D809FEC7FC0018
C8FCA2121C381FFFE06C13F86C13FE001F7F383C003F48EB0F80481307A40078EB0F006C
131E001F137C6CB45A000113C019217F951C>I<B4FCA2121FABEB07E0EB1FF8EB307CEB
403CEB803EA21300AE39FFE1FFC0A21A237EA21F>I<121C123E127FA3123E121CC7FCA7
B4FCA2121FB2EAFFE0A20B247EA310>I<B4FCA2121FB3ADEAFFE0A20B237EA210>108
D<3AFF07F007F090391FFC1FFC3A1F303E303E01401340496C487EA201001300AE3BFFE0
FFE0FFE0A22B167E9530>I<38FF07E0EB1FF8381F307CEB403CEB803EA21300AE39FFE1
FFC0A21A167E951F>I<13FE3807FFC0380F83E0381E00F0003E13F848137CA300FC137E
A7007C137CA26C13F8381F01F0380F83E03807FFC03800FE0017167E951C>I<38FF0FE0
EB3FF8381FE07CEB803E497E1580A2EC0FC0A8EC1F80A29038803F00EBC03EEBE0FCEB3F
F8EB0FC090C8FCA8EAFFE0A21A207E951F>I<EAFE1FEB3FC0381E67E013C71387A2381F
83C090C7FCADEAFFF0A213167E9517>114 D<EA0FF3EA3FFFEA781FEA6007EAE003A212
F000FCC7FCEA7FE013F8EA3FFEEA0FFF120138000F80EAC007130312E0A238F00700EAFC
0EEAEFFCEAC7F011167E9516>I<487EA41203A21207A2120F123FB5FCA2EA0F80ABEB81
80A5EB8300EA07C3EA03FEEA00F811207F9F16>I<38FF01FEA2381F003EAF147E14FE38
0F81BE3907FF3FC0EA01FC1A167E951F>I<39FFE01FE0A2391F800700000F1306EBC00E
0007130C13E000035BA26C6C5AA26C6C5AA2EB7CC0A2137F6D5AA26DC7FCA2130EA21B16
7F951E>I<3AFFE3FF07F8A23A1F007800C09038807C01000F1580A23A07C07E030014DE
5D3903E1DF06148FD801F1138CEBF307A2D800FF13D8EBFE0315F890387C01F0A2013C5B
EB3800A225167F9528>I<39FFE01FE0A2391F800700000F1306EBC00E0007130C13E000
035BA26C6C5AA26C6C5AA2EB7CC0A2137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC38
13305BEA69C0EA7F80001FC8FC1B207F951E>121 D E /Fh 32 122
df<92380FFF804AB512E0020F14F891393FFC01FC9139FFE0003E01030180133F4948C7
B47E4948497F011F5C5C133F5C137FA3705B7090C7FC177E94C8FCA793387FFFE0B9FCA4
3A007FF0000182B3B3003FB5D8E07FEBFFC0A43A487EC741>12 D<EC01E01403140F143F
14FF130F0003B5FCB6FCA213F1EAFC011200B3B3B1003FB71280A4294478C33A>49
D<ECFFE0010F13FE013F6D7E90B612E02601FE0113F83A07F0007FFCD80FC0EB1FFE4848
6D7E90C76C13804816C0D87FE06D13E07F6D6D13F012FF7F17F881A36C5A6C5A6C5A6C5A
C84813F0A317E05D17C05D17804B13005E4B5A5E4B5A4B5A5E4B5A4A48C7FC4A5A4A5AEC
0FE05D4A5A4AC8FC027E147814F8495A494814F8494814F0495A49C8FC133E0138140149
140390B7FC4816E05A5A5A5A5A5AB812C0A42D447AC33A>I<EC7FF80103B57E011F14F0
90393F807FF89039FC000FFED801F06D7E4848158048486D13C013F8486C15E06D7F486C
15F0A314801400A26C4A13E06C5A6C5A6C4815C0C85A178017004B5A5E4B5A4B5AEDFFC0
020790C7FC903803FFFC5DEDFF8090C7EA7FF0ED1FFCED07FE923803FF8017C06F13E017
F0A217F88117FCA217FEEA0380EA0FE0EA3FF8487EA2487EA217FCA317F86C485B4915F0
6C5A494913E0D81F8015C0D80FE0491380D807F8011F13003A03FF807FFEC690B512F801
3F14E0010F91C7FC010013F02F457BC33A>I<EE0F80A2161F163F167F16FFA25D5D5D5D
A25D5D5D157B15F3EC01E31403EC07C31583EC0F03141E143E143C147814F01301EB03E0
14C0EB0780EB0F005B131E5B5B13F8485A5B485A485A120F90C7FC121E5A5A12F8B912E0
A4C80007EB8000AD023FB612E0A433447DC33A>I<0006ED0180D807E0141F01FFEB03FF
91B612005E5E5E5E5E5E93C7FC5D15F815C0D9DFFCC8FC01C0C9FCABEC7FF001C3B5FC01
DF14C09039FF807FF09039FC001FF801F0EB07FC01C080496D7E90C71480C814C0A26F13
E0A217F0A317F8A21207EA1FC0487E487E487EA417F05BA26C4815E001805B007CC714C0
123C003E4A13806C16006C6C495A6C6C495AD803F0495A3A01FE01FFF06CB612C0013F91
C7FC010F13FC010113802D457AC33A>I<EE07C04C7EA24C7EA34C7EA24C7EA34C7EA24B
7FA34B80A24B8016DF16CF030F801687031F80160782033F80ED3E01037E80157C8203FC
804B137F0201815D830203824B7F0207825D83020F824B7F021F8292C7FC834A82023E80
027FB77EA391B87E02F8C8127F0101834A81A20103844A810107844A81A249488384011F
8491C97EA2013E84D9FFC081B66C0107B612FEA44F487CC758>65
D<DC7FFE1406030FB500C0131E037F02F8133E0203B600FE137E020F903AF800FF80FE02
3F0180EB1FC1DAFFFCC7EA07F34901F0EC01FF010701C0EC007F4990C9123F4948161F49
48160F49481607495A4818034A16015A48491600A2485B1A7E5A91CBFC48193EA35A4918
00A312FFAD127FA37F6C191EA37E806C193E1A3C6C7FA26C6D17787E6E17F06C18016D6C
17E06D6CEE03C06D6CEE07806D6C6CED0F006D6D153E010101F05D6D01FC4A5A91263FFF
80EB0FF0020F01F8EB7FC0020390B6C7FCDA007F14FC030F14E09226007FFEC8FC47497A
C754>67 D<B97E18FCF0FF8019E0D8001F902680000F13F8050013FEF01FFF060713C072
7F727F726C7E86737E191F737E1B80851BC0A27313E0A21BF085A31BF8A41BFCAE1BF8A4
1BF0A2611BE0A34F13C0A24F13801B0061624F5A4F5A4F5A06035B4E5B061F5BDE7FFEC7
FC943807FFFCBA12F0198006FCC8FC18804E477CC659>I<DC7FFC140C030FB500C0133C
92B600F0137C020303FC13FC021F9039F001FF014A90C7EA3FC3DAFFF8EC07E7010301E0
EC03FF494914004990C9127F4948163F4948161F4948160F495A48180748491603A24849
1601A2485B481800A291CBFC48197CA35A4995C7FCA312FFAD007F043FB612FCA37F6C93
C7EBFC00A37E80A27E6C7FA26C7FA26C7F7E6D7E6D7E6D7E6D6C5D6D13C06D01F05C0100
01FCEC0FCF91263FFF80EB1F876E01F8EBFF03020390B5EAFE00020003F8133C030F02E0
130C9226007FFEC9FC4E497AC75B>71 D<B712F0A4D8001FEB8000B3B3B3A9B712F0A424
477DC62B>73 D<B66C051FB512F86F5FA26F5FD8001FF3C000A2011E6D17F7A26E6CEE01
E7A26E6CEE03C7A36E6CEE0787A26E6CEE0F07A26E6D151EA26E6D153CA36E6D1578A26E
6D15F0A26F6CEC01E0A36F6CEC03C0A26F6CEC0780A26F6CEC0F00A26F6D131EA36F6D5B
A26F6D5BA26F6D5BA3706C485AA2706C485AA2706C485AA3706C48C7FCA270139EA27013
FCA2705BA3705BA2715AA2715AEB7F80B600C0043FB612F8715AA271C7FC65477CC66E>
77 D<923803FFF0037FEBFF800203B612F0020F9038003FFCDA3FF8EB07FFDAFFE00101
13C0010301809038007FF04990C86C7E49486F7E49486F7E49486F7E49486F7F01FF8448
496F7F48854A8148854A167F4885A24890CA6C7EA24885A3481A804983A400FF1AC0AE00
7F1A806D5FA36C1A00A36C6D4C5AA36C6D4C5AA26C616C6D4B5BA26C6D4B5B6C6D4B5B01
7F606E5D6D6C4B90C7FCD90FFFED3FFC6D01C0ECFFF86D6D495B010001F8010713C09127
7FFF807F5B020F90B500FCC8FC020315F0DA007F1480030301F0C9FC4A497AC757>79
D<DA7FF013030107B55B011FECE00F017F6E5A903AFFC00FFC3F4848C76C5AD803F8EC3F
FF4848140F48488048488082003F814981127F83A200FF82A27FA2837F7F7F01FE92C7FC
6C6C7E14F8ECFF806C14FCEDFFC06C15F86C15FF6C8217E06C826C826C6C816D81010F81
1303D9007F1580020315C0EC003F030114E0ED001F16077013F01600A20070167F00F016
3FA3171FA27E18E0A27E18C06C163F7E188001C0ED7F007F01F815FE01FEEC03FC26FE7F
C0495A26FC3FFCEB3FF0D8F80FB612C0D8F00392C7FC48C66C13FC48010313E034497AC7
41>83 D<003FBA12FCA49026FE00079038E0007F01F0170FD87FC0EF03FE49170190C716
00007E197EA2007C193EA30078191EA400F8191F48190FA5C81700B3B3A60103B812C0A4
48467CC551>I<90380FFFF090B6FC000315C03A07F8007FF0486CEB1FFCED07FE486C6D
7E838183816C48816C5A6C5AC9FCA5157F023FB5FC0103B6FC011F13F090387FFE003801
FFE0481380D80FFEC7FC485A5B123F485AA2485AA45DA26C6C5BED077F6C6C130F6C6C01
3E13F83C0FFF80F83FFFE000039038FFF01FC6ECC00F90390FFE0003332E7CAD38>97
D<91381FFFC049B512FC010714FF903A1FF8007F80D97FE0EBFFC0EBFF8048494813E048
5A1207485AA248486D13C0003FED7F80EE3F00007F92C7FC5BA312FFAA127FA27FA2123F
A26C6C15F0120F6DEC01E012076C6CEC03C06C6DEB07806C6DEB0F00D97FF0133E90391F
FC01FC0107B512F0010114C09026001FFCC7FC2C2E7CAD34>99 D<EFFF804BB5FCA4ED00
0782B3A2EC1FFC49B51283010714E390391FFC03F390397FE0007FD9FF807F4890C7120F
484880000781485AA2485A123FA25B127FA312FFAA127FA46C7EA2121FA26C7E00075D6C
6C5C6C6C5C6C6D137F6D6C01FB13C090273FF807E313FF010FB512C3010114039038003F
F038487CC741>I<EC1FFC49B512C0010714F090391FF80FFC90397FC001FE49486C7E48
90C7EA7F804848EC3FC04848EC1FE0120F484815F0160F003F16F8A25B007F150717FCA2
12FFA290B7FCA301F0C9FCA5127FA36C7EA2001F163CA26C7E17786C6C15F86C6CEC01F0
6C6DEB03E06C6DEB07C0D93FE0EB1F80903A1FFC01FF000107B512FC010014E0020F90C7
FC2E2E7DAD35>I<EDFFC0021F13F0027F13FC903901FFC0FE49EB01FF903807FC034948
481380131FEB3FF0137F14E001FF6D13006F5A6F5A163093C7FCABB612FEA4C601E0C8FC
B3B3A2007FEBFFF0A429487DC724>I<171FDA7FF0EBFFC00107B5000313E0011FECC7E7
903B7FE03FFF0FF09039FF800FFC48EB00074848EB03FE00079238FF07E0496DEB03C000
0FEE8000A2001F82A8000F5EA2000793C7FC6D5B00035D6C6C495A6C6D485A9138E03FF0
D801DFB512C0D803C791C8FC9038C07FF04848CAFCA37FA27FA213F890B612F06C15FF17
E06C8217FC6C826D8148B812801207D80FF0C7001F13C0D81FC014014848EC007F007FEE
3FE048C9FC171FA56C6CED3FC0A26C6CED7F806C6CEDFF00D80FF8EC03FED803FEEC0FF8
2601FFE0EBFFF06C6CB612C0010F4AC7FCD9007F13C034447DAE3A>I<EB7FC0B5FCA412
037EB3A2ED07FE92383FFFC04B13F09139C1F81FF89139C3C00FFC9139C70007FE14CE02
DC8002F87F18805CA25CA35CB3A9B60081B6FCA438487BC741>I<137C48B4FC48138048
13C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCACEB7FC0B5FCA412037EB3B2B6
FCA418497CC820>I<9027FF8003FFEC03FFB5011F01E0011F13E0037F01F8017F13F891
3D81F80FFC01F80FFC913D83C007FE03C007FE0003903D878003FF078003FF6CD98E00EC
0E00029C039C8102B86D01B87F06F88102F05DA24A5DA34A5DB3A9B66CB66CB61280A459
2E7BAD62>109 D<9039FF8007FEB590383FFFC04B13F0913981F81FF8913983C00FFC00
039039870007FE6C138E029C8002B87F188014F0A25CA35CB3A9B60081B6FCA4382E7BAD
41>I<EC0FFE49B512F0010714FC90391FF803FF90267FE00013C0D9FF80EB3FE04890C7
6C7E48486E7E48486E7E000F82491403001F82003F17804980A2007F17C0A300FF17E0AA
007F17C0A46C6C4A1380A2001F17006D5C000F5E6C6C4A5A00035E6C6C4A5A6C6D495AD9
7FE0EBFFC090261FFC0790C7FC0107B512FC010114F0D9001F90C8FC332E7DAD3A>I<90
397FC01FFCB590B57E02C314F09139CFE03FFC9139DF0007FE000301FC6D7E6C496D1380
4A6D13C04AEC7FE04A15F0EF3FF8A2EF1FFCA218FEA2170FA218FFAA18FE171FA218FCA2
173F18F818F0177F6EECFFE06E15C06E4913806E49130002DFEB0FFE9139CFC03FF802C3
B512E002C01480DB1FF8C7FC92C9FCB0B67EA438427CAD41>I<90397F803F80B5EBFFE0
028113F8913883C3FC91388707FE0003138E6C90389C0FFF14B8A214F0A2ED07FE9138E0
03FCED01F892C7FCA25CB3A8B612E0A4282E7DAD2F>114 D<90390FFE01C090B512C700
0314FF3807F801390FC0007F48C7121F48140F007E1407A2150312FEA27E7F01E090C7FC
13F8387FFFC014FF6C14E015F86C806C14FF6C1580000115C06C6C14E0131F010014F014
039138007FF80070141F00F0140F15077E1503A26C15F0A27E6CEC07E07F6DEB0FC001F0
EB1F80D8FEFCEBFF0039F87FFFFCD8F01F13F0D8E0031380252E7CAD2E>I<EB01E0A613
03A31307A3130FA2131F133FA2137FEA01FF5A000F90B512C0B7FCA3C601E0C7FCB3A616
F0A9017F14E0ECF001133FED03C0D91FF8138090390FFE0F00903807FFFE01015B903800
1FF024427EC12D>I<D97FC0ECFF80B549B5FCA40003EC00076C81B3AA5EA36C5D5EA26D
6C133B013F02F313C090271FF803E313FF6DB51283010314039038003FF8382E7BAD41>
I<B649B5FCA4000101C09038001FC06EEC0F806C17006E5C017F151E6E143E013F153C80
011F5D8017F8010F5D6E13016D5DED80036D5DEDC0076D5D15E06D4AC7FC15F05E027F13
1EEDF83E023F133CEDFC7C021F1378EDFEF8020F5B15FF6E5BA36E5BA26E5BA26E90C8FC
A2157EA2153CA2157C157815F85D1401001F5C383F8003D87FC05B38FFE0075D140F4AC9
FC141E387FC07C495A383F03F06CB45A00071380D801FCCAFC38427EAD3D>121
D E /Fi 21 122 df<127812FCA212FEA2127A1202A41204A31208A21210122012400712
7B8510>44 D<132013E01201120F12FF12F11201B3AD487EB512C0A212287BA71D>49
D<EA01FCEA07FF380C0FC0381803E0382001F01260384000F8A200F813FC7E147CA30078
13FCC7FC14F8A2EB01F0A2EB03E014C0EB07801400130E5B5B13305B5B485A3803000412
024813085A5A481318383FFFF84813F0B5FCA216287DA71D>I<12201238003FB5FCA214
FE5A3860000400401308A21410481320A2C712401480A2EB01001302A25BA2130C5BA313
38A213781370A213F0A51201A76C5A182A7DA81D>55 D<137E3801FF80380781C0380F00
E0001E1370481338A248133CA200F8131EA4141FA41278143FA27E001C135F7E6C139F38
03831FEA00FCEB001EA3143E143CA21438001C1378003E137014E0383C01C03818038038
1C0F00EA0FFEEA03F818297EA71D>57 D<3801FFFEA2380007E01303B3AA1230127812FC
A214C0EAF8070040138038200F00EA300EEA0C3CEA03F0172A7DA81E>74
D<B538800FFEA23A07F00003F06C48EB01C0160015025D5D5D5D5D5D4AC7FC14025C5C14
18143C147E14BEEBE11F01E27FEBE40F9038E807C001F07FEBE0036E7E811400157C157E
153E81A2ED0F8016C0150716E0486C14F8B538803FFFA228297EA82E>I<B6FC15E03907
E001F80003EB007C81811680150F16C0A61680151F1600153E5DEC01F090B512C001E0C8
FCB1487EB57EA222297EA828>80 D<EA03FCEA0C0738100380383C01C0003E7F6D7E121C
1208C7FCA3137FEA03E0EA0F80EA1E005A127C0078144012F8A31301127C393C02788038
1E0C7F3907F01E001A1A7E991D>97 D<13FC38038780380701C0000E13E0EA1C00003C13
F0A2481378A212F8A2B512F800F8C7FCA51278A26C1308A26C1310000E13206C13403801
C18038007E00151A7E991A>101 D<140F3901FC308038070743380E03C3001EEBC10048
6C7EA2007C7FA5003C5BA26C485A000E5BD81707C7FCEA11FC0030C8FCA47E381FFF806C
13F06C7F3818007C48131E0070130E00607F12E0A40070130EA26C5B6C5B380781E0C6B4
C7FC19287E9A1D>103 D<121E123FA4121EC7FCA9120FB4FCA2121F7EB3A2EAFFF0A20C
297EA811>105 D<120FB4FCA2121F7EB3B2EAFFF0A20C2A7EA911>108
D<3A0F07F007F03AFF183818389039201C201C3A1F400E400E000F010F130F01801380A2
01001300B13BFFF0FFF0FFF0A22C1A7E9931>I<380F07F038FF1838EB201C381F400E00
0F130F1380A21300B139FFF0FFF0A21C1A7E9921>I<380F07E038FF1838EB601E380F80
0FEC0780010013C0140315E0A2EC01F0A715E01403A215C0EC07801380EC0F00EB401CEB
3078EB0FC090C8FCAAEAFFF0A21C267E9921>112 D<380F0F8038FF11C0EB23E0EA1F43
EA0F83EB81C0EB800090C7FCB07FEAFFFCA2131A7E9917>114 D<3807F080EA1C0DEA30
03EA600112E01300A27E6C1300127EEA7FE0EA3FFC6C7EEA07FF38003F801307388003C0
A2130112C0A200E01380130300F01300EACC0EEA83F8121A7E9917>I<7FA41201A31203
A21207120F381FFF80B5FC38078000AD1440A73803C08012013800E100133E12257FA417
>I<000F130FB413FFA2001F131F6C7FB05CA26C132F3903804F803901C08FF038007F0F
1C1A7E9921>I<39FFF01FF0A2390F8007800007EB03001402A26C6C5AA2EBE00C000113
08A26C6C5AA2EBF830EB7820A26D5AA2EB3EC0EB1E80A26DC7FCA31306A21304A2130C13
08A2EA701012F85BA2485AEA6180001FC8FC1C267F991F>121 D
E /Fj 21 122 df<1238127C12FEA212FF127D12391201A61202A31204A21208A21210A2
12201240081879BB15>39 D<1518153CA3157EA315FFA39138019F80A39138030FC0A202
077FEC0607A2020E7FEC0C03A202187F1501A24A6C7EA34A137EA34A7FA20101814A131F
A201038191C7120FA249B67EA20106C71207496E7EA3496E7EA201388101301400A20170
810160157EA249157F8312016D16801203D80FF0ED7FC0D8FFFE0207B5FCA2383C7EBB3C
>65 D<B77E16F03A03FC0003FC6C48EB007FEE1F80EE07C0EE03F0707E1600177C83173F
831880170F18C0A2EF07E0A318F01703A318F8AC18F0A3170718E0A3EF0FC0A2EF1F80A2
EF3F00173E177E5F4C5A4C5A4C5AEE0F80043FC7FC486CEB01FCB712F01680353B7CBA3D
>68 D<4AB41480021FEBE00191387F0078D901F8EB0E03D903E0EB0707D90FC0EB018749
C812CF013E156F49153F5B4848151F0003160F485A491507120FA248481503A2123F90C9
1201A25AA2007E93C7FCA212FEAB007E92387FFFFEA2007F9238007FC0EF1F807EA27F12
1FA26C7EA26C7EA26C7E12016C7E017C153F7F6D157FD90FC014E7D903E0EB01C7D901FC
EB0783903A007F803E0191391FFFF800020101801300373D7CBB3F>71
D<B512F0A23803FC006C5AB3B3B1487EB512F0A2143B7CBA1C>73
D<D8FFF893381FFF806D5E0003F0E00000016001BE166FA3019F16CFA3D98F80EC018FA2
D987C0EC030FA3D983E01406A3D981F0140CA3D980F81418A2027C1430A36E1460A36E14
C0A391390F800180A2913907C00300A3913803E006A36E6C5AA36E6C5AA2ED7C30A36F5A
A36F5AA3486C6D5A487E486C6DC7487EB50307B51280A2413B7CBA49>77
D<B7FC16E03A03FC0003F86C48EB007E82EE0F80EE07C017E0EE03F0A217F8160117FCA7
17F8160317F0A2EE07E0EE0FC01780EE3F0016FCED03F090B612C001F8C9FCB3A8487EB5
12F0A22E3B7CBA36>80 D<D90FF0138090387FFE013901F00F813903C001C348C712E300
0E143748143F003C141F0038140F127800701407A200F01403A415017EA27E007C91C7FC
127E7E13C0EA1FF06CB4FC6C13F06C13FE6CEBFFC06C14F0011F7F010313FE9038003FFF
14039138007F80ED1FC0150FED07E01503A2ED01F012C0A21500A37EA216E07E15016C15
C0A26CEC03806C140700F71500D8E1C0131ED8E0F05BD8C07E13F090380FFFE0D8800190
C7FC243D7CBB2C>83 D<EB3F803801C0F03803003C00047F000C7F486D7E001C80003E13
03003F80A3121EC7FCA3143FEB0FF3EB7E03EA01F8EA03E0EA0FC0EA1F80EA3F00123E12
7E16605AA31407A2007C130B127E003E903811F0C06C13603A07C1807F803A00FE003E00
23257CA427>97 D<ED0F80EC03FFA2EC001F150FB3EB03F8EB1E07903870018F9038E000
4FD803C0132F4848131F120F90C7120F5A123EA2127E127CA212FCA9127CA2127E123EA2
121E121F6C141F6C6C133F6C6C136F6C6C13CF3A0070018FC090393C0E0FFEEB07F0273C
7DBB2C>100 D<EB07F8EB3C1E9038F007803901C003C00003EB01E039078000F048C712
F8481478001E147C123EA2007E143E127CA212FCA2B612FE00FCC8FCA6127CA2127E123E
15067E6C140C7F000714186C6C1330C66C1360017013C090381E0700EB03FC1F257EA423
>I<ED07C090390FE018609039383820709039F01E40F03901E00F802603C00713600007
ECC00048486C7EA3001F80A6000F5CA36C6C485A00035C6C6C48C7FC3802F01EEB383838
060FE00004C9FCA2120CA2120EA27E7F6CB5FC15F06C14FC6C8039078000FF000EC7EA1F
8048EC07C048140312780070EC01E012F0A50078EC03C000381580003C14076CEC0F0000
07141CD803C0137839007803C0D90FFEC7FC24387EA527>103 D<1207EA0F80EA1FC0A3
EA0F80EA0700C7FCADEA07C012FFA2120F1207B3ACEA0FE0EAFFFEA20F397DB815>105
D<2703E01FE0EB3FC000FFD9607CEBC0F8913A801E01003C2807E3000F067FD803E40288
131FA201E8D907907F04D0148001F014E0A2495CB3A6486C496CEB1FC0B50081B53803FF
FEA23F257EA443>109 D<3903E01FE000FFEB607CEC801E3907E3000FD803E41480A201
E8130716C013F0A25BB3A6486CEB0FE0B50081B5FCA228257EA42C>I<EB07FCEB1C0790
387001C03901E000F04848137848487F48C77E48141F001E80003E1580A248EC07C0A300
FC15E0A9007C15C0A2007E140F003E1580A2001E1500001F5C6C141E6C6C5B6C6C5B6C6C
5B39007001C0D91C07C7FCEB07FC23257EA427>I<3803E03E00FF13C39038E107803907
E20FC0EA03E413E8EC0780EC030001F0C7FCA35BB3A5487EB512C0A21A257EA41E>114
D<EBFF02380700C6000C132E0010131E123048130EA200E01306A37E7E6C90C7FC127FEA
3FF0EBFF80000F13E06C7F000113FC38003FFE1301EB003F00C07FEC0F8014076C1303A4
6C1400A26C5B140600E45B00E25B38C1807038807F8019257DA41F>I<1330A61370A413
F0A21201A212031207381FFFFEB5FCD801F0C7FCB3EC0180A9000014006D5AA2EB78026D
5AEB0E08EB03F019357FB41E>I<D803E0EB07C000FFEB01FFA20007EB000F00031407B3
A5150FA300011417A26C6C132715470178EB87E090391E0307FFEB03FC28257EA42C>I<
D8FFFEEB0FFFA2D807F0EB07F86C48EB03E0ED01C06C7E16807F0000EC0300A2017C1306
A2137E013E5BA2013F131C6D1318A26D6C5AA2ECC07001071360A26D6C5AA214F101015B
A2D900FBC7FCA214FF147EA2143CA31418A25CA35CA214E05C1218383C0180127E49C8FC
A2EA7C06EA300CEA1C38EA07E028367FA42A>121 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%PaperSize: A4

%%EndSetup
%%Page: 1 1
1 0 bop 548 1057 a Fj(MID)n(AS)26 b(Sound)g(System)579
1265 y(Programmer's)j(Guide)675 1528 y Fi(P)n(etteri)18
b(Kangaslampi)720 1717 y(Jan)n(uary)h(27,)h(1997)p eop
%%Page: 1 2
1 1 bop 129 651 a Fh(Con)m(ten)m(ts)129 967 y Fg(1)45
b(In)n(tro)r(duction)1209 b(1)202 1068 y Ff(1.1)50 b(W)l(elcome)20
b(.)k(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g
(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68
b(1)202 1170 y(1.2)50 b(What)17 b(is)f(MID)o(AS?)32 b(.)24
b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)68 b(1)129 1320 y Fg(2)45
b(Getting)17 b(started)1139 b(3)202 1421 y Ff(2.1)50
b(Compiling)15 b(with)h(MID)o(AS)48 b(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)
g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68
b(3)202 1522 y(2.2)50 b(Linking)16 b(with)g(MID)o(AS)29
b(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
h(.)f(.)h(.)f(.)g(.)h(.)68 b(4)314 1623 y(2.2.1)56 b(Windo)o(ws)17
b(NT/95)46 b(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)68 b(4)314 1725 y(2.2.2)56
b(MS-DOS)20 b(.)k(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68 b(5)314
1826 y(2.2.3)56 b(Lin)o(ux)48 b(.)25 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
68 b(5)202 1927 y(2.3)50 b(An)16 b(example)e(program)31
b(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
h(.)f(.)h(.)f(.)g(.)h(.)68 b(5)314 2029 y(2.3.1)56 b(C)17
b(program)g(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68 b(5)314
2130 y(2.3.2)56 b(Delphi)16 b(program)27 b(.)e(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68
b(6)314 2231 y(2.3.3)56 b(Program)16 b(description)44
b(.)24 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
g(.)h(.)68 b(7)129 2381 y Fg(3)45 b(MID)n(AS)19 b(concepts)1101
b(8)202 2483 y Ff(3.1)50 b(Samples)37 b(.)24 b(.)h(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)h(.)f(.)g(.)h(.)68 b(8)202 2584 y(3.2)50 b(Streams)40
b(.)24 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68
b(8)202 2685 y(3.3)50 b(Channels)17 b(.)24 b(.)h(.)f(.)h(.)f(.)g(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)g(.)h(.)68 b(9)931 2810 y(i)p eop
%%Page: 2 3
2 2 bop 129 145 a Fe(CONTENTS)1315 b Ff(ii)202 278 y(3.4)50
b(P)o(anning)37 b(.)24 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(10)202 379 y(3.5)50 b(Soft)o(w)o(are)16 b(and)h(hardw)o(are)g(mixing)
i(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
h(.)44 b(10)129 530 y Fg(4)h(The)18 b(system)1206 b(12)202
631 y Ff(4.1)50 b(Ov)o(erview)14 b(of)j(system)e(arc)o(hitec)o(h)o
(ture)37 b(.)25 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g
(.)h(.)44 b(12)202 733 y(4.2)50 b(Description)16 b(of)g(all)g(mo)q
(dules)37 b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)44 b(12)314 835 y(4.2.1)56 b(Sound)17
b(Devices)d(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(12)314 937 y(4.2.2)56
b(Generic)15 b(Mo)q(dule)h(Pla)o(y)o(er)26 b(.)f(.)f(.)h(.)f(.)g(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(13)314
1038 y(4.2.3)56 b(MID)o(AS)15 b(k)o(ernel)j(.)24 b(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(13)202 1140 y(4.3)50 b(Calling)16 b(con)o(v)o(en)o(tions)26
b(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(14)314 1242 y(4.3.1)56
b(Error)17 b(co)q(des)40 b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(14)314 1343 y(4.3.2)56 b(Returning)16 b(data)38 b(.)25
b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)44 b(14)202 1445 y(4.4)50 b(Error)17 b(handling)51
b(.)24 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(15)129 1596
y Fg(5)h(Op)r(erating)18 b(system)e(sp)r(eci\014c)i(information)555
b(16)202 1697 y Ff(5.1)50 b(MS-DOS)17 b(timer)d(screen)h(sync)o
(hronization)48 b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
44 b(16)314 1799 y(5.1.1)56 b(In)o(tro)q(duction)19 b(.)25
b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)44 b(16)314 1901 y(5.1.2)56 b(Using)16
b(screen)g(sync)o(hronization)f(.)24 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)44 b(17)314 2002 y(5.1.3)56 b(Timer)14
b(screen)i(sync)o(hronized)f(routines)32 b(.)25 b(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)g(.)h(.)44 b(17)314 2104 y(5.1.4)56 b(W)l(aiting)16
b(for)h(V)l(ertical)d(Retrace)29 b(.)24 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(18)314 2206 y(5.1.5)56
b(Sp)q(eed)16 b(comp)q(ensation)45 b(.)24 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f
(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(19)314
2307 y(5.1.6)56 b(Implem)o(en)o(tation)13 b(notes)j(.)24
b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
(.)44 b(19)202 2409 y(5.2)50 b(Linking)16 b(with)g(W)l(atcom)g(C)41
b(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
h(.)f(.)g(.)h(.)44 b(21)p eop
%%Page: 1 4
1 3 bop 129 650 a Fh(Chapter)39 b(1)129 898 y(In)m(tro)s(duction)46
1196 y Fd(1.1)81 b(W)-7 b(elcome)129 1346 y Ff(W)l(elcome)12
b(to)j(the)f(exciting)f(w)o(orld)h(of)h(digital)f(audio!)21
b(MID)o(AS)14 b(Sound)h(System)e(is)h(the)129 1406 y(most)c
(comprehensiv)o(e)f(cross-platform)i(digital)g(audio)h(system)d(to)q
(da)o(y)l(.)21 b(With)11 b(features)129 1466 y(suc)o(h)16
b(as)h(an)f(unlimited)e(n)o(um)o(b)q(er)g(of)j(digital)f(c)o(hannels)f
(on)i(all)f(supp)q(orted)h(platforms,)129 1526 y(sim)o(ultaneous)c
(sample,)h(mo)q(dule)f(and)j(stream)e(pla)o(ybac)o(k,)f(and)j(seamless)
d(p)q(ortabilit)o(y)129 1587 y(across)19 b(op)q(erating)h(systems,)e
(MID)o(AS)f(is)i(all)f(y)o(ou)h(need)f(for)h(p)q(erfect)g(sound)g(in)g
(y)o(our)129 1647 y(application.)129 1747 y(This)h(man)o(ual)e(is)i
(the)g(Programmer's)e(Guide)h(to)h(the)g(MID)o(AS)f(Sound)i(System.)30
b(It)129 1808 y(includes)21 b(descriptions)g(ab)q(out)i(all)f(asp)q
(ects)g(of)g(MID)o(AS,)f(including)g(initialization,)129
1868 y(con\014guration)15 b(and)f(usage)h(of)f(di\013eren)o(t)f(system)
g(comp)q(onen)o(ts.)19 b(It)14 b(do)q(es)h(not)f(attempt)129
1928 y(to)e(do)q(cumen)o(t)f(all)g(functions)h(and)h(data)g(structures)
f(a)o(v)m(ailable)f(in)h(MID)o(AS,)e(but)j(rather)129
1988 y(giv)o(e)g(a)h(go)q(o)q(d)i(o)o(v)o(erview)d(on)h(ho)o(w)h(y)o
(ou)f(can)g(use)g(MID)o(AS)f(in)h(y)o(our)f(o)o(wn)i(programs.)20
b(F)l(or)129 2048 y(complete)d(descriptions)j(of)g(all)g(function)f
(and)i(data)g(structures,)f(see)f(MID)o(AS)g(API)129
2109 y(Reference)46 2314 y Fd(1.2)81 b(What)28 b(is)e(MID)n(AS?)129
2464 y Ff(What)17 b(is)f(MID)o(AS)f(Sound)i(System)d(an)o(yw)o(a)o(y?)
129 2565 y(MID)o(AS)k(is)i(a)g(m)o(ultic)n(hannel)d(digital)i(m)o(usic)
f(and)i(sound)h(engine.)30 b(It)20 b(pro)o(vides)f(y)o(ou)129
2625 y(with)24 b(an)g(unlimited)e(n)o(um)o(b)q(er)g(of)j(c)o(hannels)f
(of)g(digital)g(audio)g(that)h(y)o(ou)f(can)h(use)129
2685 y(to)19 b(pla)o(y)g(m)o(usic,)f(sound)i(e\013ects,)f(sp)q(eec)o(h)
g(or)h(sound)g(streams.)30 b(MID)o(AS)18 b(is)h(p)q(ortable)926
2810 y(1)p eop
%%Page: 2 5
2 4 bop 129 145 a Fe(CHAPTER)16 b(1.)38 b(INTR)o(ODUCTION)856
b Ff(2)129 278 y(across)24 b(a)g(wide)f(range)h(of)f(op)q(erating)i
(systems,)e(and)h(pro)o(vides)f(an)h(iden)o(tical)d(API)129
338 y(in)g(all)f(supp)q(orted)i(en)o(vironmen)o(ts,)e(making)g(it)h
(ideal)f(for)i(cross-platform)f(soft)o(w)o(are)129 398
y(dev)o(elopmen)o(t.)129 500 y(MID)o(AS)14 b(is)h(free)g(for)h
(noncommercial)c(usage,)k(read)g(the)f(\014le)g Fc(license.txt)d
Ff(included)129 560 y(in)20 b(the)g(MID)o(AS)f(distribution)i(for)f(a)h
(detailed)f(license.)32 b(Commercial)17 b(licenses)j(are)129
620 y(also)d(a)o(v)m(ailable.)p eop
%%Page: 3 6
3 5 bop 129 651 a Fh(Chapter)39 b(2)129 900 y(Getting)g(started)129
1168 y Ff(Although)17 b(MID)o(AS)f(is)h(a)h(v)o(ery)e(p)q(o)o(w)o
(erful)h(sound)h(engine,)f(it)g(is)g(also)h(extremely)c(easy)129
1228 y(to)g(use.)20 b(This)14 b(c)o(hapter)g(con)o(tains)g(all)f(the)h
(information)e(necessary)i(to)g(dev)o(elop)f(simple)129
1288 y(sound)k(applications)f(using)g(MID)o(AS.)e(It)i(describ)q(es)g
(ho)o(w)g(to)g(link)f(MID)o(AS)g(in)o(to)h(y)o(our)129
1349 y(o)o(wn)j(programs,)g(ho)o(w)g(to)g(use)g(the)f(MID)o(AS)g(API)g
(functions)h(from)e(y)o(our)i(o)o(wn)g(co)q(de,)129 1409
y(and)e(concludes)e(with)h(a)h(simple)d(mo)q(dule)h(pla)o(y)o(er)g
(program)h(example.)46 1617 y Fd(2.1)81 b(Compiling)27
b(with)f(MID)n(AS)129 1768 y Ff(F)l(or)g(applications)g(using)g(just)g
(the)g(MID)o(AS)f(API,)g(no)h(sp)q(ecial)g(compilation)e(op-)129
1828 y(tions)19 b(are)f(necessary)l(.)29 b(All)17 b(MID)o(AS)h(API)g
(de\014nitions)g(are)h(in)g(the)f(\014le)g Fc(midasdll.h)129
1888 y Ff([FIXME],)11 b(and)k(the)f(mo)q(dules)f(using)h(MID)o(AS)f
(functions)h(simply)e(need)h(to)i Fc(#include)129 1948
y Ff(this)e(\014le.)20 b(No)13 b(sp)q(ecial)g(macros)g(need)g(to)g(b)q
(e)h Fc(#define)p Ff(d,)d(and)j(the)f(data)h(structures)g(are)129
2008 y(structure-pac)o(king)h(neutral.)21 b Fc(midasdll.h)12
b Ff(is)k(lo)q(cated)g(in)f(the)h Fc(include/)d Ff(sub)q(direc-)129
2069 y(tory)j(of)h(the)f(MID)o(AS)f(distribution,)g(and)i(y)o(ou)f(ma)o
(y)f(need)h(to)g(add)h(that)g(directory)e(to)129 2129
y(y)o(our)h(include)f(\014le)g(searc)o(h)h(path.)129
2231 y(Under)g(Windo)o(ws)h(NT/95,)h(the)f(MID)o(AS)e(API)i(functions)f
(use)h(the)g Fc(stdcall)d Ff(calling)129 2291 y(con)o(v)o(en)o(tion,)g
(the)i(same)g(as)h(used)f(b)o(y)g(the)g(Win32)h(API.)e(Under)h(DOS,)g
(the)h(functions)129 2351 y(use)i(the)f Fc(cdecl)g Ff(calling)g(con)o
(v)o(en)o(tion,)g(and)h(under)g(Lin)o(ux)g(the)f(default)h(calling)f
(con-)129 2411 y(v)o(en)o(tion)d(used)h(b)o(y)g(GCC.)g(This)h(is)f
(done)g(transparen)o(tly)g(to)h(the)f(user,)g(ho)o(w)o(ev)o(er.)129
2513 y(Delphi)d(users)i(can)g(simply)d(use)j(the)f(in)o(terface)f(unit)
h Fc(midasdll.pa)o(s)p Ff(,)d(and)k(access)g(the)129
2573 y(MID)o(AS)g(API)h(functions)h(through)h(it.)23
b(Although)17 b(Delphi)f(syn)o(tax)g(is)h(di\013eren)o(t)f(from)129
2633 y(C,)g(the)g(function,)f(structure)h(and)h(constan)o(t)g(names)e
(are)h(exactly)f(the)i(same,)d(and)j(all)926 2810 y(3)p
eop
%%Page: 4 7
4 6 bop 129 145 a Fe(CHAPTER)16 b(2.)38 b(GETTING)16
b(ST)l(AR)l(TED)774 b Ff(4)129 278 y(parameters)16 b(are)h(passed)h
(just)f(lik)o(e)f(in)g(the)h(C)h(v)o(ersions.)23 b(Therefore)17
b(all)g(information)129 338 y(in)f(this)g(do)q(cumen)o(t)f(and)h(the)g
(API)g(Reference)f(is)h(also)g(v)m(alid)g(for)h(Delphi.)46
546 y Fd(2.2)81 b(Linking)26 b(with)h(MID)n(AS)129 697
y Ff(If)14 b(y)o(our)h(program)f(uses)i(MID)o(AS)d(Sound)j(System,)d(y)
o(ou)i(naturally)f(need)h(to)g(link)f(with)129 757 y(the)j(MID)o(AS)f
(libraries)g(as)i(w)o(ell.)k(This)c(section)e(describ)q(es)h(ho)o(w)h
(to)f(do)h(that)f(on)h(eac)o(h)129 817 y(platform)d(supp)q(orted.)46
1003 y Fb(2.2.1)65 b(Windo)n(ws)23 b(NT/95)129 1137 y
Ff(Under)c(the)h(Win32)g(platform,)f(applications)h(can)g(link)f(with)g
(MID)o(AS)g(either)g(stat-)129 1197 y(ically)g(or)i(dynamically)l(.)32
b(Unless)20 b(there)g(is)g(a)h(sp)q(eci\014c)f(need)h(to)g(link)e(with)
i(MID)o(AS)129 1257 y(statically)l(,)f(dynamic)g(linking)g(is)h
(recomme)o(nded.)33 b(Delphi)20 b(users)h(need)g(to)g(use)h(dy-)129
1317 y(namic)14 b(linking)i(alw)o(a)o(ys.)129 1419 y(When)21
b(linking)f(with)h(MID)o(AS)f(statically)l(,)g(simply)f(link)h(in)h
(the)g(library)f(\014le)h(corre-)129 1479 y(sp)q(onding)i(to)f(y)o(our)
f(dev)o(elopmen)o(t)e(platform.)36 b(All)21 b(MID)o(AS)f(libraries)h
(are)h(lo)q(cated)129 1540 y(in)e(the)g Fc(lib/)g Ff(sub)q(directory)g
(of)h(the)g(distribution.)34 b(W)l(atcom)20 b(C/C++)h(users)g(need)129
1600 y(to)h(link)e(with)i(the)f(\014le)g Fc(midasnt)p
770 1600 16 2 v 16 w(watcom.lib)p Ff(,)e(and)j(Visual)f(C/C++)i(users)f
(with)129 1660 y Fc(midasnt)p 314 1660 V 16 w(visualc.l)o(ib)p
Ff(.)h(Dep)q(ending)18 b(on)g(y)o(our)g(con\014guration,)h(y)o(ou)f(ma)
o(y)e(need)h(to)129 1720 y(add)i(the)g Fc(lib/)e Ff(sub)q(directory)i
(in)o(to)g(y)o(our)g(\\library)f(paths")i(list.)29 b(When)19
b(MID)o(AS)f(is)129 1780 y(link)o(ed)10 b(in)o(to)i(the)g(application)h
(statically)l(,)e(the)h(.exe)f(is)h(self-con)o(tained)g(and)h(no)g(MID)
o(AS)129 1841 y Fc(.dll)h Ff(\014les)i(are)h(needed.)129
1942 y(Dynamic)f(linking)g(is)i(done)g(b)o(y)f(linking)g(with)g(the)h
(appropriate)g(MID)o(AS)f(imp)q(ort)f(li-)129 2002 y(brary)f(instead)h
(of)g(the)f(static)g(linking)g(library)l(.)20 b(In)15
b(addition,)h(the)f(MID)o(AS)f(Dynamic)129 2063 y(Link)20
b(Library)h(\()p Fc(midasXX.dl)o(l)p Ff(\))c(needs)k(to)g(b)q(e)g
(placed)f(in)g(a)h(suitable)f(directory)g(|)129 2123
y(either)15 b(to)i(the)g(same)f(directory)f(with)i(the)g(program)f
(executable,)f(or)i(in)g(some)e(direc-)129 2183 y(tory)i(in)g(the)g
(user's)g(P)l(A)l(TH.)f(The)h(imp)q(ort)f(library)g(names)h(corresp)q
(ond)h(to)f(the)g Fc(.dll)129 2243 y Ff(name:)23 b Fc(midasXX)p
466 2243 V 16 w(visualc.lib)14 b Ff(for)19 b(Visual)e(C/C++)i(and)f
Fc(midasXX)p 1478 2243 V 16 w(watcom.lib)129 2303 y Ff(for)e(W)l(atcom)
g(C/C++.)22 b(\(the)15 b(XX)h(stands)h(for)g(the)f(MID)o(AS)f(v)o
(ersion)g(n)o(um)o(b)q(er\).)129 2405 y(Delphi)d(users)h(do)h(not)f
(need)g(a)g(separate)g(imp)q(ort)f(library)h(|)f(using)i(the)e(in)o
(terface)g(unit)129 2465 y Fc(midasdll.)o(pas)d Ff(adds)14
b(the)e(necessary)h(references)e(to)i(the)f Fc(.dll)g
Ff(automatically)l(.)18 b(Note)129 2525 y(that)e(running)h(the)f
(program)g(under)h(the)f(Delphi)f(IDE)i(without)f(the)g
Fc(.dll)f Ff(a)o(v)m(ailable)129 2586 y(can)h(cause)g(strange)h(error)g
(messages.)p eop
%%Page: 5 8
5 7 bop 129 145 a Fe(CHAPTER)16 b(2.)32 b(GETTING)17
b(ST)l(AR)l(TED)779 b Ff(5)46 278 y Fb(2.2.2)65 b(MS-DOS)129
411 y Ff(As)20 b(MS-DOS)h(do)q(esn't)g(supp)q(ort)h(dynamic)d(linking,)
i(only)f(a)i(static)e(link)g(library)g(is)129 471 y(pro)o(vided)13
b(for)h(MS-DOS.)f(Y)l(ou'll)g(simply)e(need)i(to)h(link)f(\014le)g
Fc(midasdos.l)o(ib)d Ff(from)j(the)129 531 y Fc(lib/)h
Ff(sub)q(directory)h(of)h(the)g(MID)o(AS)e(distribution,)h(and)h(y)o
(our)g(program)f(is)h(ready)f(to)129 591 y(use)20 b(MID)o(AS)g(Sound)h
(System.)32 b(The)21 b(executable)e(is)h(fully)g(self-con)o(tained,)g
(and)h(no)129 651 y(additional)16 b(\014les)g(are)g(needed.)129
752 y(Note)23 b(that)i(some)e(v)o(ersions)g(of)i(the)f(W)l(atcom)f
(Link)o(er)g(are)h(not)g(case-sensitiv)o(e)f(b)o(y)129
812 y(default,)g(and)g(y)o(ou'll)e(need)h(to)h(use)f(case-sensitiv)o(e)
f(linking)h(with)g(MID)o(AS.)f(T)l(o)i(do)129 872 y(that,)16
b(simply)e(add)j Fc(option)23 b(caseexact)13 b Ff(to)k(y)o(our)f(link)o
(er)e(directiv)o(es.)46 1056 y Fb(2.2.3)65 b(Lin)n(ux)129
1189 y Ff(F)l(or)15 b(Lin)o(ux,)f(b)q(oth)i(dynamic)d(and)j(static)f
(libraries)f(are)h(pro)o(vided.)20 b(T)l(o)15 b(link)f(y)o(our)h(pro-)
129 1249 y(gram)c(with)g(MID)o(AS,)f(add)i(the)g(MID)o(AS)e(library)h
(directory)f(to)i(y)o(our)g(library)f(directory)129 1310
y(list)16 b(\(gcc)h(option)g Fc(-L)p Ff(\),)f(and)i(link)e(the)h
(library)f(in)h(using)g(the)g(GCC)h(option)g Fc(-lmidas)p
Ff(.)129 1370 y(Dep)q(ending)j(on)g(whether)f(y)o(ou)h(are)g(building)f
(a)h(statically)f(or)h(dynamically)d(link)o(ed)129 1430
y(program,)d(GCC)i(will)e(automatically)g(select)g(the)h(correct)g
(library)l(.)46 1636 y Fd(2.3)81 b(An)27 b(example)f(program)129
1786 y Ff(This)17 b(section)f(describ)q(es)g(a)h(v)o(ery)f(simple)e
(example)h(program)i(that)g(uses)g(MID)o(AS)e(for)129
1846 y(pla)o(ying)k(m)o(usic.)29 b(First,)19 b(the)g(complete)f
(program)h(source)h(is)f(giv)o(en)g(in)g(b)q(oth)h(C)g(and)129
1906 y(Delphi)j(format,)i(and)g(after)f(that)h(the)f(op)q(eration)h(of)
f(the)g(program)g(is)g(describ)q(ed)129 1967 y(line)c(b)o(y)h(line.)35
b(T)l(o)22 b(k)o(eep)e(the)h(program)g(as)h(short)g(as)g(p)q(ossible,)g
(all)f(error)g(c)o(hec)o(king)129 2027 y(is)f(omitted,)f(and)i
(therefore)f(it)g(should)h(not)g(b)q(e)g(used)f(as)h(a)g(template)d
(for)j(building)129 2087 y(real)i(applications)g(|)h(the)f(other)h
(example)d(programs)j(included)e(in)h(the)h(MID)o(AS)129
2147 y(distribution)16 b(are)g(more)f(suitable)h(for)g(that.)129
2248 y(Both)h(v)o(ersions)g(of)g(the)g(program)g(should)h(b)q(e)g
(compiled)d(as)i(console)h(applications)f(in)129 2308
y(the)k(Win32)i(en)o(vironmen)o(t.)35 b(Under)22 b(MS-DOS)g(and)g(Lin)o
(ux)g(the)f(default)h(compiler)129 2368 y(settings)16
b(are)g(\014ne.)46 2552 y Fb(2.3.1)65 b(C)22 b(program)154
2685 y Fc(1)51 b(#include)23 b(<stdio.h>)p eop
%%Page: 6 9
6 8 bop 129 145 a Fe(CHAPTER)16 b(2.)32 b(GETTING)17
b(ST)l(AR)l(TED)779 b Ff(6)154 278 y Fc(2)51 b(#include)23
b(<conio.h>)154 338 y(3)51 b(#include)23 b("midasdll.)o(h")154
398 y(4)154 458 y(5)51 b(int)25 b(main\(void)o(\))154
518 y(6)51 b({)154 579 y(7)154 b(MIDASmodu)o(le)22 b(module;)154
639 y(8)154 699 y(9)154 b(MIDASstar)o(tup)o(\(\);)129
759 y(10)f(MIDASinit)o(\(\);)129 819 y(11)g(MIDASstar)o(tBa)o(ckg)o
(rou)o(nd)o(Pla)o(y\(0)o(\);)129 880 y(12)129 940 y(13)g(module)23
b(=)i(MIDASloadMo)o(dul)o(e\(")o(..)o(\\\\d)o(ata)o(\\\\t)o(em)o(pls)o
(un.)o(xm")o(\);)129 1000 y(14)153 b(MIDASplay)o(Mod)o(ule)o(\(mo)o(du)
o(le,)22 b(0\);)129 1060 y(15)129 1120 y(16)153 b(puts\("Pla)o(yin)o(g)
23 b(-)i(press)f(any)g(key"\);)129 1180 y(17)153 b(getch\(\);)129
1241 y(18)129 1301 y(19)g(MIDASstop)o(Mod)o(ule)o(\(mo)o(du)o(le\))o(;)
129 1361 y(20)g(MIDASfree)o(Mod)o(ule)o(\(mo)o(du)o(le\))o(;)129
1421 y(21)129 1481 y(22)g(MIDASstop)o(Bac)o(kgr)o(oun)o(dP)o(lay)o
(\(\);)129 1542 y(23)g(MIDASclos)o(e\(\))o(;)129 1602
y(24)129 1662 y(25)g(return)23 b(0;)129 1722 y(26)50
b(})46 1908 y Fb(2.3.2)65 b(Delphi)24 b(program)129 2042
y Fc(1)76 b(uses)24 b(midasdll;)129 2102 y(2)129 2162
y(3)76 b(var)25 b(module)e(:)i(MIDASmodule)o(;)129 2223
y(4)129 2283 y(5)76 b(BEGIN)129 2343 y(6)179 b(MIDASstar)o(tup)o(;)129
2403 y(7)g(MIDASinit)o(;)129 2463 y(8)g(MIDASstar)o(tBa)o(ckg)o(rou)o
(nd)o(Pla)o(y\(0)o(\))129 2524 y(9)129 2584 y(10)153
b(module)23 b(:=)i(MIDASloadM)o(odu)o(le\()o('.)o(.\\d)o(ata)o(\\te)o
(mp)o(lsu)o(n.x)o(m'\))o(;)129 2644 y(11)153 b(MIDASplay)o(Mod)o(ule)o
(\(mo)o(du)o(le,)22 b(0\);)p eop
%%Page: 7 10
7 9 bop 129 145 a Fe(CHAPTER)16 b(2.)38 b(GETTING)16
b(ST)l(AR)l(TED)774 b Ff(7)129 278 y Fc(12)129 338 y(13)153
b(WriteLn\(')o(Pla)o(yin)o(g)23 b(-)i(Press)f(Enter'\);)129
398 y(14)153 b(ReadLn;)129 458 y(15)129 518 y(16)g(MIDASstop)o(Mod)o
(ule)o(\(mo)o(du)o(le\))o(;)129 579 y(17)g(MIDASfree)o(Mod)o(ule)o
(\(mo)o(du)o(le\))o(;)129 639 y(18)129 699 y(19)g(MIDASstop)o(Bac)o
(kgr)o(oun)o(dP)o(lay)o(;)129 759 y(20)g(MIDASclos)o(e;)129
819 y(21)50 b(END.)46 1001 y Fb(2.3.3)65 b(Program)22
b(description)129 1132 y Ff(Apart)17 b(from)g(minor)f(syn)o(tax)h
(di\013erences,)g(the)g(C)h(and)g(Delphi)f(v)o(ersions)g(of)h(the)f
(pro-)129 1193 y(gram)k(w)o(ork)h(nearly)g(iden)o(tically)l(.)36
b(This)22 b(section)f(describ)q(es)h(the)g(op)q(eration)h(of)f(the)129
1253 y(programs)14 b(line)g(b)o(y)g(line.)19 b(The)c(line)e(n)o(um)o(b)
q(ers)g(b)q(elo)o(w)i(are)g(giv)o(en)e(in)i(pairs:)20
b(\014rst)15 b(for)g(C,)129 1313 y(second)h(for)h(Delphi.)129
1449 y Fg(1-3,)h(1)24 b Ff(Includes)15 b(necessary)h(system)f(and)i
(MID)o(AS)e(de\014nition)h(\014les)129 1546 y Fg(7,)i(3)24
b Ff(De\014nes)17 b(a)f(v)m(ariable)g(for)h(the)f(mo)q(dule)f(that)h
(will)g(b)q(e)g(pla)o(y)o(ed)129 1643 y Fg(9,)i(6)24
b Ff(Resets)17 b(the)g(MID)o(AS)g(in)o(ternal)f(state)h(|)g(This)h
(needs)f(to)h(b)q(e)f(done)h(b)q(efore)f(MI-)251 1704
y(D)o(AS)e(is)h(con\014gured)h(and)g(initialized.)129
1801 y Fg(10,)h(7)24 b Ff(Initializes)14 b(MID)o(AS)129
1898 y Fg(11,)k(8)24 b Ff(Starts)17 b(pla)o(ying)f(sound)h(in)f(the)g
(bac)o(kground)129 1995 y Fg(13,)i(10)24 b Ff(Loads)18
b(the)e(mo)q(dule)f(\014le)129 2093 y Fg(14,)j(11)24
b Ff(Starts)17 b(pla)o(ying)f(the)f(mo)q(dule)g(w)o(e)h(just)g(loaded,)
g(lea)o(ving)f(no)h(c)o(hannels)g(a)o(v)m(ail-)251 2153
y(able)g(for)g(sound)h(e\013ects.)129 2250 y Fg(16-17,)h(13-14)24
b Ff(Simply)14 b(w)o(aits)i(for)h(a)f(k)o(eypress)129
2347 y Fg(19,)i(16)24 b Ff(Stops)17 b(pla)o(ying)f(the)g(mo)q(dule)129
2445 y Fg(20,)i(17)24 b Ff(Deallo)q(cates)17 b(the)f(mo)q(dule)f(w)o(e)
h(loaded)129 2542 y Fg(22,)i(19)24 b Ff(Stops)17 b(pla)o(ying)f(sound)h
(in)f(the)g(bac)o(kground)129 2639 y Fg(23,)i(20)24 b
Ff(Uninitializes)14 b(the)i(MID)o(AS)f(Sound)i(System)p
eop
%%Page: 8 11
8 10 bop 129 651 a Fh(Chapter)39 b(3)129 900 y(MID)m(AS)f(concepts)129
1168 y Ff(This)14 b(c)o(hapter)f(describ)q(es)h(basic)g(MID)o(AS)f
(concepts)h(and)g(terminology)l(.)19 b(The)14 b(descrip-)129
1228 y(tion)e(is)g(done)h(at)g(a)f(rather)h(high)f(lev)o(el,)f(and)i
(is)f(k)o(ept)f(rather)i(informal)e(|)h(the)g(in)o(ten)o(tion)129
1288 y(is)j(to)h(do)q(cumen)o(t)f(what)h(the)g(di\013eren)o(t)f(terms)f
(mean)g(from)h(the)g(user's)h(p)q(oin)o(t)g(of)g(view,)129
1349 y(and)d(what)h(can)g(b)q(e)f(done)g(with)g(them,)f(rather)h(than)h
(to)g(giv)o(e)e(detailed)g(information)g(on)129 1409
y(their)h(usage.)21 b(Step-b)o(y-step)13 b(instructions)h(for)g(using)g
(the)f(di\013eren)o(t)g(MID)o(AS)g(features)129 1469
y(is)j(a)o(v)m(ailable)f(in)h(the)g(next)g(c)o(hapter.)46
1677 y Fd(3.1)81 b(Samples)129 1828 y Ff(A)21 b(sample)f(in)h(MID)o(AS)
g(Sound)h(System)e(includes)h(the)g(sample)f(data)j(for)f(a)g(sound)129
1888 y(sample,)e(plus)i(information)e(on)i(its)f(data)h(t)o(yp)q(e,)g
(the)f(sample)f(length)h(and)h(lo)q(oping)129 1948 y(information.)e(It)
15 b(do)q(es)h(not)g(con)o(tain)g(other)f(attributes)h(suc)o(h)f(as)i
(v)o(olume)c(or)j(panning)129 2008 y(|)k(these)g(are)h(instrumen)o(t)d
(prop)q(erties.)34 b(In)20 b(MID)o(AS,)f(samples)g(are)i(managed)f(and)
129 2069 y(stored)c(b)o(y)f(b)o(y)g(Sound)i(Devices.)j(A)15
b(sample)f(is)i(iden)o(ti\014ed)e(b)o(y)h(a)h(sample)f(handle,)g(and)
129 2129 y(this)h(sample)f(handle)h(can)h(b)q(e)f(used)h(to)f(pla)o(y)g
(the)g(sample)f(or)i(remo)o(v)o(e)d(it)i(from)f(Sound)129
2189 y(Device)g(storage.)46 2397 y Fd(3.2)81 b(Streams)129
2548 y Ff(In)21 b(MID)o(AS,)e(streams)i(are)g(con)o(tin)o(uous)g(\015o)
o(ws)h(of)f(sample)f(data.)37 b(Unlik)o(e)19 b(samples,)129
2608 y(streams)12 b(are)i(not)g(stored)g(in)f(the)h(Sound)g(Devices)f
(themselv)o(e)o(s,)e(but)j(are)g(instead)f(read)129 2668
y(from)j(the)i(system)e(memory)f(as)k(they)e(are)h(pla)o(y)o(ed.)25
b(Because)17 b(of)h(this,)f(the)h(complete)926 2810 y(8)p
eop
%%Page: 9 12
9 11 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MID)o(AS)15
b(CONCEPTS)805 b Ff(9)129 278 y(data)13 b(for)f(the)g(stream)f(do)q(es)
h(not)h(need)f(to)g(b)q(e)g(a)o(v)m(ailable)f(when)i(pla)o(ying)e
(starts,)i(but)f(can)129 338 y(instead)h(b)q(e)g(read)h(from)e(disk,)h
(or)h(ev)o(en)e(generated)h(on)h(the)f(\015y)l(,)g(as)h(pla)o(ybac)o(k)
e(pro)q(ceeds.)129 398 y(The)h(pla)o(ybac)o(k)f(prop)q(erties)h(of)h
(the)f(stream)f(|)h(sampling)g(rate,)g(v)o(olume)e(and)j(panning)129
458 y(|)j(can)g(b)q(e)h(c)o(hanged)f(in)g(real)g(time)e(just)i(lik)o(e)
f(those)i(of)f(a)h(sample.)23 b(Ho)o(w)o(ev)o(er,)15
b(as)j(the)129 518 y(sample)12 b(data)j(for)g(the)f(stream)f(is)g(not)i
(stored)f(an)o(ywhere)g(in)g(the)g(Sound)g(Device,)f(eac)o(h)129
579 y(stream)i(can)h(only)g(b)q(e)h(pla)o(y)o(ed)e(once.)129
680 y(The)f(MID)o(AS)f(API)h(o\013ers)h(three)f(w)o(a)o(ys)h(for)f(pla)
o(ying)g(streams:)20 b(\014le)13 b(pla)o(ybac)o(k,)h(p)q(olling)129
740 y(pla)o(ybac)o(k)d(and)j(callbac)o(ks.)19 b(F)l(or)13
b(\014le)f(pla)o(ybac)o(k,)g(the)g(application)h(simply)e(supplies)h
(the)129 801 y(system)k(the)h(name)g(of)h(the)f(\014le)g(con)o(taining)
h(the)f(sample)g(data)h(for)g(the)g(stream,)e(and)129
861 y(pla)o(ybac)o(k)f(pro)q(ceeds)i(automatically)l(.)k(In)16
b(p)q(olling)g(pla)o(ybac)o(k)g(mo)q(de,)g(the)g(application)129
921 y(op)q(ens)k(the)f(stream)f(and)h(p)q(erio)q(dically)g(feeds)f(new)
h(sample)f(data)i(to)g(b)q(e)f(pla)o(y)o(ed.)29 b(In)129
981 y(callbac)o(k)19 b(mo)q(de,)i(the)f(application)h(sets)g(a)g
(callbac)o(k)e(function)i(that)g(is)f(called)g(eac)o(h)129
1041 y(time)c(the)h(stream)g(bu\013er)i(lo)q(ops,)g(and)f(can)g(there)g
(\014ll)f(the)h(bu\013er)g(with)g(new)g(sample)129 1102
y(data.)129 1203 y(The)d(most)g(ob)o(vious)h(use)f(for)h(streams)f(is)g
(to)h(pla)o(y)f(long)h(sections)g(of)g(digital)f(sound)h(or)129
1263 y(m)o(usic)h(directly)i(from)f(disk,)i(without)h(needing)e(to)h
(load)h(ev)o(erything)d(in)o(to)i(memory)129 1324 y(\014rst.)31
b(Stream)19 b(pla)o(ybac)o(k)f(could)i(also)g(b)q(e)g(used)f(to)h(mix)e
(the)h(output)h(of)g(a)g(separate)129 1384 y(sound)14
b(generator,)h(suc)o(h)e(as)i(a)f(sp)q(eec)o(h)f(syn)o(thesizer,)g
(with)g(the)h(rest)g(of)g(the)f(sound)i(and)129 1444
y(m)o(usic)f(in)i(the)g(system.)129 1546 y(Curren)o(tly)10
b(streams)g(can)i(only)f(b)q(e)g(pla)o(y)o(ed)f(with)h(soft)o(w)o(are)g
(mixing)f(Sound)i(Devices.)18 b(In)129 1606 y(addition,)c(\014le)g(pla)
o(ybac)o(k)g(is)g(only)h(p)q(ossible)g(under)f(op)q(erating)i(systems)d
(that)i(supp)q(ort)129 1666 y(m)o(ultithreading.)46 1874
y Fd(3.3)81 b(Channels)129 2025 y Ff(In)13 b(MID)o(AS)f(Sound)i
(System,)d(c)o(hannels)i(are)g(used)h(to)f(pla)o(y)g(the)g(sound.)21
b(Eac)o(h)13 b(c)o(hannel)129 2085 y(can)h(pla)o(y)f(one)i(sample)d(or)
j(stream)e(at)h(a)h(time,)d(either)h(mono)g(or)i(stereo.)20
b(When)14 b(a)h(new)129 2145 y(sound)h(is)e(pla)o(y)o(ed)g(on)i(a)f(c)o
(hannel,)f(the)h(old)g(one)g(is)g(remo)o(v)o(ed.)j(A)d(c)o(hannel)f(is)
h(iden)o(ti\014ed)129 2206 y(b)o(y)g(a)i(c)o(hannel)f(n)o(um)o(b)q(er,)
e(whic)o(h)h(range)i(from)e(zero)h(up)o(w)o(ards.)129
2307 y(Before)e(an)o(y)h(sound)h(can)g(b)q(e)f(pla)o(y)o(ed,)f(a)i(n)o
(um)o(b)q(er)d(of)j(c)o(hannels)f(m)o(ust)f(b)q(e)h(op)q(ened)h(from)
129 2368 y(the)f(Sound)i(Device.)i(MID)o(AS)c(supp)q(orts)i(an)g
(unlimited)c(n)o(um)o(b)q(er)h(of)i(c)o(hannels)f(on)h(all)129
2428 y(platforms,)k(unless)h(hardw)o(are)g(mixing)e(is)i(used.)34
b(Although)21 b(the)g(n)o(um)o(b)q(er)e(of)i(op)q(en)129
2488 y(c)o(hannels)e(has)h(some)e(impact)g(on)i(CPU)f(usage,)i(the)e
(amoun)o(t)g(of)h(CPU)f(p)q(o)o(w)o(er)h(used)129 2548
y(dep)q(ends)h(mostly)f(on)h(the)g(c)o(hannels)g(that)h(actually)e(pla)
o(y)h(sound.)36 b(Therefore)21 b(it)g(is)129 2608 y(m)o(uc)o(h)14
b(more)h(imp)q(ortan)o(t)g(to)i(ensure)f(that)g(no)h(unnecessary)f
(sounds)i(are)e(left)f(pla)o(ying)129 2668 y(than)h(it)g(is)g(to)h
(minim)o(ize)c(the)j(n)o(um)o(b)q(er)e(of)j(op)q(en)f(c)o(hannels.)p
eop
%%Page: 10 13
10 12 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MID)o(AS)15
b(CONCEPTS)781 b Ff(10)46 278 y Fd(3.4)81 b(P)n(anning)129
427 y Ff(P)o(anning)15 b(in)f(MID)o(AS)g(Sound)i(System)d(a\013ects)i
(the)g(apparen)o(t)g(p)q(osition)g(of)g(the)g(sound)129
487 y(in)23 b(stereo)g(en)o(vironmen)o(ts.)41 b(Sound)24
b(panned)g(to)g(\\left")f(will)f(b)q(e)i(pla)o(y)o(ed)e(from)h(the)129
547 y(left)13 b(sp)q(eak)o(er,)h(\\righ)o(t")h(from)e(the)h(righ)o(t)g
(one)g(and)h(\\middle")e(from)g(b)q(oth.)21 b(64)15 b(di\013eren)o(t)
129 607 y(panning)f(p)q(ositions)g(are)f(a)o(v)m(ailable)g(b)q(et)o(w)o
(een)f(\\left")h(and)h(\\middle")e(plus)h(\\righ)o(t")h(and)129
668 y(\\middle",)g(to)i(giv)o(e)g(smo)q(oth)g(con)o(trol)g(on)h(the)f
(sound)h(p)q(osition.)129 768 y(In)g(addition,)h(surround)h(sound)f(is)
g(also)g(considered)g(a)g(separate)g(panning)g(p)q(osition.)129
828 y(Sounds)d(pla)o(y)o(ed)d(with)i(their)f(panning)h(p)q(osition)h
(set)f(to)g(\\surround")h(are)f(pla)o(y)o(ed)f(from)129
888 y(the)18 b(surround)i(sp)q(eak)o(ers)f(if)f(the)h(computer)e(is)i
(connected)f(to)h(a)g(surround)h(deco)q(der.)129 948
y(Ev)o(en)13 b(if)g(surround)h(equipmen)o(t)d(is)i(not)h(a)o(v)m
(ailable,)f(the)h(sound)g(app)q(ears)h(to)f(come)e(from)129
1008 y(around)h(the)f(listener's)e(head,)j(not)g(from)e(inside)g(it)h
(as)g(in)g(\\middle")f(panning)h(p)q(osition.)129 1108
y(Note)18 b(that)i(not)g(all)e(Sound)i(Devices)e(necessarily)g(supp)q
(ort)j(surround)f(sound.)31 b(F)l(ur-)129 1169 y(thermore,)14
b(if)h(the)g(computer)g(is)g(pla)o(ying)h(in)f(stereo)h(mo)q(de,)f(but)
h(connected)f(to)h(mono)129 1229 y(equipmen)o(t,)d(all)i(sounds)j(pla)o
(y)o(ed)d(in)h(\\surround")i(will)d(disapp)q(ear!)46
1433 y Fd(3.5)81 b(Soft)n(w)n(are)27 b(and)g(hardw)n(are)g(mixing)129
1582 y Ff(Most)19 b(sound)h(cards)f(supp)q(orted)h(b)o(y)e(MID)o(AS)g
(Sound)i(System)d(are)i(only)g(capable)f(of)129 1643
y(pla)o(ying)h(one)i(digital)f(sound)h(c)o(hannel)e(at)i(a)g(time,)e
(but)h(still)f(MID)o(AS)g(supp)q(orts)j(an)129 1703 y(unlimited)11
b(n)o(um)o(b)q(er)h(of)i(c)o(hannels)g(with)f(them.)19
b(This)14 b(is)g(accomplished)e(through)j(soft-)129 1763
y(w)o(are)f(mixing)f(of)i(the)f(sound)i(|)f(the)f(sound)i(c)o(hannels)e
(are)h(mixed)d(digitally)h(together)129 1823 y(b)q(efore)j(passing)h
(the)f(sound)h(to)g(the)f(sound)h(card.)129 1923 y(Mixing)11
b(the)i(sound)h(in)e(soft)o(w)o(are)h(is)f(a)h(complicated)e(pro)q
(cess,)i(and,)h(although)g(MID)o(AS)129 1983 y(mixing)e(routines)j(are)
g(carefully)e(optimized,)f(can)j(still)e(tak)o(e)h(a)h(considerable)f
(amoun)o(t)129 2044 y(of)e(CPU)h(time.)18 b(The)12 b(CPU)h(time)d(used)
j(is)f(determined)e(b)o(y)i(four)h(factors:)20 b(The)12
b(n)o(um)o(b)q(er)129 2104 y(of)21 b(c)o(hannels)g(activ)o(e,)f(the)h
(mixing)e(rate,)j(the)f(output)h(mo)q(de)e(and)i(the)f(t)o(yp)q(e)f(of)
i(the)129 2164 y(samples)17 b(pla)o(y)o(ed.)25 b(The)18
b(time)e(used)j(dep)q(ends)f(almost)f(linearly)g(on)i(the)f(mixing)e
(rate)129 2224 y(and)21 b(the)g(n)o(um)o(b)q(er)f(of)h(c)o(hannels,)g
(and)h(stereo)f(output)h(can)f(tak)o(e)g(up)g(to)g(50\045)h(more)129
2284 y(CPU)d(time)f(than)i(mono.)30 b(The)20 b(sample)e(t)o(yp)q(e)h
(e\013ect)g(is)g(almost)g(the)g(same)g(-)h(stereo)129
2345 y(samples)14 b(can)i(tak)o(e)f(up)h(to)g(50\045)g(more)e(CPU)i
(than)g(mono)f(ones,)h(and)g(16-bit)h(samples)129 2405
y(50\045)f(more)f(than)i(8-bit.)129 2505 y(The)12 b(opp)q(osite)i(of)f
(soft)o(w)o(are)f(mixing)f(is)h(hardw)o(are)i(mixing.)k(Hardw)o(are)12
b(mixing)f(sound)129 2565 y(cards)19 b(are)h(capable)f(of)h(pla)o(ying)
f(m)o(ultiple)d(digital)j(sounds)h(in)f(hardw)o(are,)i(and)f(th)o(us)
129 2625 y(there)g(is)h(no)g(need)f(to)i(mix)c(the)j(sound)h(in)e(soft)
o(w)o(are.)35 b(This)21 b(often)g(uses)g(m)o(uc)o(h)e(less)129
2685 y(CPU)d(p)q(o)o(w)o(er,)g(dep)q(ending)g(on)h(the)f(sound)i(card,)
e(but)g(as)h(a)g(tradeo\013)g(some)e(\015exibilit)o(y)p
eop
%%Page: 11 14
11 13 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MID)o(AS)15
b(CONCEPTS)781 b Ff(11)129 278 y(is)14 b(lost.)21 b(One)14
b(problem)f(with)i(hardw)o(are)g(mixing)e(cards)i(is,)f(that)h(samples)
f(ha)o(v)o(e)f(to)i(b)q(e)129 338 y(placed)f(in)h(on-card)g(memory)l(.)
j(V)l(ery)c(often)h(the)f(cards)i(come)d(with)i(as)g(little)e(as)j
(512kb)129 398 y(of)i(memory)l(,)d(and)j(th)o(us)g(can)g(store)g(only)g
(a)g(few)f(samples.)25 b(The)18 b(second)g(problem)e(is,)129
458 y(that)f(pla)o(ying)e(streams)h(with)g(hardw)o(are)h(mixing)d
(cards)j(is)f(usually)h(imp)q(ossible.)k(This)129 518
y(sev)o(erely)14 b(limits)g(the)i(usabilit)o(y)f(of)h(hardw)o(are)h
(mixing)d(cards)j(with)f(MID)o(AS.)p eop
%%Page: 12 15
12 14 bop 129 650 a Fh(Chapter)39 b(4)129 898 y(The)f(system)129
1165 y Ff(This)22 b(c)o(hapter)f(giv)o(es)g(an)h(o)o(v)o(erview)e(on)i
(ho)o(w)g(MID)o(AS)f(Sound)i(System)d(is)h(actually)129
1225 y(built.)f(It)c(giv)o(es)g(descriptions)g(on)h(all)e(main)g
(system)g(mo)q(dules,)g(information)g(on)i(ho)o(w)129
1285 y(they)c(use)h(eac)o(h)g(other,)g(and)g(what)h(their)e(most)g(imp)
q(ortan)o(t)g(c)o(haracteristics)g(are.)21 b(This)129
1345 y(information)15 b(mainly)e(applies)j(for)g(MID)o(AS)f(usage)i(b)q
(elo)o(w)f(the)f(API)g(lev)o(el,)f(and)i(most)129 1405
y(users)g(do)h(not)g(need)e(to)i(b)q(e)f(familiar)f(with)h(this)g
(information.)46 1611 y Fd(4.1)81 b(Ov)n(erview)25 b(of)i(system)g(arc)
n(hitec)n(h)n(ture)129 1761 y Ff([TBD:)15 b(picture!])46
1967 y Fd(4.2)81 b(Description)26 b(of)h(all)f(mo)r(dules)46
2131 y Fb(4.2.1)65 b(Sound)24 b(Devices)129 2264 y Ff(Sound)15
b(Devices)e(are)h(at)h(the)f(v)o(ery)f(heart)h(of)g(MID)o(AS.)f(They)h
(pro)o(vide)f(the)h(basic)h(func-)129 2324 y(tionalit)o(y)i(for)h(pla)o
(ying)g(audio,)h(they)f(manage)g(the)g(samples)f(loaded)i(in)e(the)i
(system,)129 2384 y(and)d(pro)o(vide)e(a)i(common)d(programming)g(in)o
(terface)h(for)i(all)e(supp)q(orted)j(sound)f(hard-)129
2444 y(w)o(are.)27 b(Normally)16 b(a)j(user)f(do)q(es)h(not)g(use)f
(the)g(Sound)h(Devices)f(directly)l(,)e(but)j(rather)129
2505 y(uses)14 b(MID)o(AS)g(upp)q(er)h(lev)o(el)d(programming)h(in)o
(terfaces)h(and)h(libraries)e(to)i(pla)o(y)f(sound.)129
2565 y(Ho)o(w)o(ev)o(er,)19 b(in)o(ternally)h(MID)o(AS)f(is)i(v)o(ery)f
(m)o(uc)o(h)e(cen)o(tered)i(around)i(Sound)f(Devices,)129
2625 y(and)g(an)o(y)o(one)g(doing)h(an)o(y)f(lo)o(w)o(er-lev)o(el)d
(MID)o(AS)i(programming)g(or)h(just)g(examining)129 2685
y(the)16 b(system)e(source)j(co)q(de)f(can't)g(a)o(v)o(oid)g(w)o
(orking)g(with)g(them.)914 2810 y(12)p eop
%%Page: 13 16
13 15 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(THE)16 b(SYSTEM)907
b Ff(13)129 278 y(A)16 b(single)g(Sound)i(Device)d(can)i(con)o(tain)f
(information)g(for)h(one)g(or)g(more)e(sound)j(card.)129
338 y(In)h(that)g(case)g(the)g(cards)h(are)f(usually)g(di\013eren)o(t)f
(mo)q(dels)g(of)h(the)g(same)f(sound)i(card)129 398 y(-)e(for)g
(example,)d(the)j(Sound)g(Blaster)f(series)g(Sound)i(Device)d(includes)
h(\014v)o(e)f(di\013eren)o(t)129 458 y(sound)h(card)f(t)o(yp)q(es:)21
b(Sound)c(Blaster)f(1.0,)g(1.5,)g(2.0,)g(Pro)h(and)g(16.)129
560 y(In)o(ternally)l(,)g(a)i(Sound)g(Device)e(is)i(represen)o(ted)e(b)
o(y)h(one)h(large)f(data)i(structure.)28 b(The)129 620
y(structure)18 b(con)o(tains)h(a)g(set)f(of)h(v)m(ariables)f(for)h
(con\014guring)h(the)e(Sound)h(Device,)f(plus)129 680
y(a)23 b(n)o(um)o(b)q(er)d(of)j(function)f(p)q(oin)o(ters.)40
b(These)23 b(function)f(p)q(oin)o(ters)h(are)f(then)h(used)f(to)129
740 y(call)c(the)h(Sound)h(Device)d(functions.)30 b(This)20
b(ensures)f(that)g(an)o(y)g(co)q(de)h(w)o(orking)f(with)129
801 y(MID)o(AS)c(Sound)i(Devices)e(only)i(has)g(to)g(main)o(tain)d(a)j
(p)q(oin)o(ter)f(to)h(the)f(curren)o(t)g(Sound)129 861
y(Device)i(structure)h(in)g(use,)h(and)g(can)f(use)g(an)o(y)h(supp)q
(orted)g(Sound)g(Device)e(without)129 921 y(co)q(de)e(mo)q
(di\014cation.)46 1107 y Fb(4.2.2)65 b(Generic)23 b(Mo)r(dule)g(Pla)n
(y)n(er)129 1241 y Ff(Generic)f(Mo)q(dule)i(Pla)o(y)o(er,)g(or)g(GMPla)
o(y)o(er)e(for)i(short,)i(tak)o(es)d(care)h(of)g(all)f(mo)q(dule)129
1301 y(pla)o(ying)15 b(in)h(MID)o(AS.)e(Mo)q(dules)i(in)g(di\013eren)o
(t)f(formats)h(are)g(con)o(v)o(erted)e(to)j(GMPla)o(y)o(er)129
1361 y(in)o(ternal)10 b Fa(gmpMo)n(dule)i Ff(structure)g(format)f(when)
g(loaded)h(to)g(memory)l(,)e(so)i(that)g(a)g(single)129
1421 y(mo)q(dule)h(pla)o(y)o(er)h(can)g(handle)h(all)f(formats.)20
b(T)l(o)c(main)o(tain)d(b)q(est)i(p)q(ossible)f(compatibil-)129
1482 y(it)o(y)k(with)i(all)g(trac)o(k)o(ers,)f(ho)o(w)o(ev)o(er,)g
(GMPla)o(y)o(er)f(impleme)o(n)o(ts)f(some)i(commands)f(and)129
1542 y(features)g(di\013eren)o(tly)f(dep)q(ending)i(on)g(the)f
(original)h(mo)q(dule)e(format.)28 b(This)19 b(ensures)129
1602 y(that)d(pla)o(ybac)o(k)g(qualit)o(y)f(is)h(not)g(compromised.)129
1704 y(GMPla)o(y)o(er)h(is)h(not)h(limited)d(for)j(pla)o(ying)f(a)g
(single)g(mo)q(dule)g(only)l(,)g(in)g(fact)h(it)f(can)g(b)q(e)129
1764 y(used)f(to)g(pla)o(y)g(an)g(unlimited)d(n)o(um)o(b)q(er)i(of)h
(songs)h(sim)o(ultaneously)l(.)k(This)17 b(w)o(a)o(y)g(sound)129
1824 y(e\013ects)h(can)g(b)q(e)h(comp)q(osed)f(as)h(small)e(song)i
(fragmen)o(ts,)f(to)h(eliminate)c(the)j(need)g(for)129
1884 y(long)e(samples.)129 1986 y(GMPla)o(y)o(er)c(is)i(not)g(dep)q
(enden)o(t)g(on)g(the)g(underlying)f(sound)i(hardw)o(are)f(|)f(it)h(op)
q(erates)129 2046 y(as)i(easily)g(with)g(no)g(sound)h(output)g(at)g
(all)e(as)i(it)f(do)q(es)h(with)f(an)g(adv)m(anced)h(w)o(a)o(v)o
(etable)129 2106 y(sound)22 b(card.)38 b(A)o(t)21 b(initialization)f
(phase,)j(GMPla)o(y)o(er)d(is)i(passed)g(a)g(p)q(oin)o(ter)g(to)g(the)
129 2167 y(Sound)i(Device)e(that)h(should)h(b)q(e)g(used)f(for)h(m)o
(usic)d(pla)o(ybac)o(k,)i(and)h(afterw)o(ards)g(it)129
2227 y(directs)15 b(all)h(sounds)h(to)g(that)g(Sound)g(Device.)46
2413 y Fb(4.2.3)65 b(MID)n(AS)22 b(k)n(ernel)129 2547
y Ff(The)e(MID)o(AS)f("k)o(ernel")g(consists)h(of)h(smaller)d(mo)q
(dules)h(used)h(b)o(y)g(all)f(system)g(com-)129 2607
y(p)q(onen)o(ts.)26 b(This)18 b(includes)e(memory)f(managemen)o(t)h
(functions,)h(error)h(handling)g(rou-)129 2667 y(tines,)13
b(\014le)g(managemen)o(t)f(functions)h(and)i(common)c(utilit)o(y)h
(functions.)21 b(These)13 b(k)o(ernel)p eop
%%Page: 14 17
14 16 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(THE)16 b(SYSTEM)907
b Ff(14)129 278 y(functions)17 b(ensure)g(that)h(MID)o(AS)e(do)q(es)i
(not)g(dep)q(end)f(on)h(the)f(underlying)g(op)q(erating)129
338 y(system)12 b(an)o(y)h(C)g(run)o(time)e(libraries)i(|)g(all)g(dep)q
(endencies)f(are)i(encapsulated)f(in)g(single)129 398
y(mo)q(dules.)46 600 y Fd(4.3)81 b(Calling)26 b(con)n(v)n(en)n(tions)
129 749 y Ff(All)11 b(in)o(ternal)g(MID)o(AS)g(Sound)i(System)e
(functions)h(use)g(the)g(same)f(calling)h(con)o(v)o(en)o(tions)129
809 y(and)20 b(a)h(similar)d(metho)q(d)h(for)h(returning)g(data.)33
b(This)20 b(simpli\014es)e(programming,)h(as)129 869
y(all)f(functions)i(b)q(eha)o(v)o(e)e(consisten)o(tly)l(,)h(and)g
(ensures)h(that)f(error)h(co)q(des)f(get)h(handled)129
929 y(prop)q(erly)l(.)46 1110 y Fb(4.3.1)65 b(Error)24
b(co)r(des)129 1241 y Ff(All)19 b(functions)i(in)g(MID)o(AS)f(Sound)i
(System)d(return)i(an)g(error)g(co)q(de.)36 b(There)20
b(is)h(no)129 1301 y(exception)16 b(to)i(this,)g(and)g(all)f(other)h
(data)g(is)g(returned)f(using)h(p)q(oin)o(ters)g(\(see)f(b)q(elo)o
(w\).)129 1361 y(This)12 b(simpli\014es)f(error)h(handling,)i(and)f
(mak)o(es)e(sure)i(error)f(co)q(des)h(alw)o(a)o(ys)g(get)g(handled)129
1421 y(prop)q(erly)l(.)20 b(In)c(addition,)f(when)h(MID)o(AS)f(is)g
(compiled)e(with)j(DEBUG)f(mo)q(de)g(on,)h(the)129 1482
y(error)21 b(handling)h(functions)g(can)g(supply)g(detailed)e
(information)h(ab)q(out)i(the)e(errors)129 1542 y(that)c(happ)q(ened,)f
(suc)o(h)g(as)h(whic)o(h)f(function)g(originally)g(caused)g(the)h
(error)f(and)h(what)129 1602 y(functions)f(called)f(it.)46
1782 y Fb(4.3.2)65 b(Returning)24 b(data)129 1913 y Ff(As)16
b(the)h(return)f(v)m(alue)h(of)g(the)f(function)h(is)f(alw)o(a)o(ys)h
(reserv)o(ed)e(for)i(the)g(error)g(co)q(de,)f(all)129
1974 y(other)g(data)h(will)e(need)g(to)h(b)q(e)h(returned)e(b)o(y)h
(using)g(p)q(oin)o(ters.)21 b(All)15 b(MID)o(AS)g(functions)129
2034 y(that)g(return)g(data)h(will)e(accept)h(as)g(their)g(last)g
(argumen)o(ts)f(p)q(oin)o(ters)h(to)h(the)f(v)m(ariables)129
2094 y(that)g(will)f(hold)i(the)f(return)g(v)m(alues.)21
b(Mak)o(e)14 b(sure)h(y)o(ou)g Fg(alw)n(a)n(ys)i Ff(pass)f(these)f
(functions)129 2154 y(legal)e(p)q(oin)o(ters)h(as)h(the)f(return)g(v)m
(ariables)g(ev)o(en)f(if)g(y)o(ou)h(don't)g(need)g(the)g(return)g(v)m
(alues)129 2214 y(|)i(memory)d(corruption)j(ma)o(y)f(o)q(ccur)i
(otherwise.)129 2313 y(F)l(or)e(example,)e(to)i(query)g(the)g(curren)o
(t)f(v)o(olume)f(on)j(c)o(hannel)e(3)i(in)f(the)g(default)g(Sound)129
2374 y(Device,)f(y)o(ou)i(can)h(use:)129 2505 y Fc(unsigned)22
b(vol;)129 2565 y(...)129 2625 y(midasSD->)o(Get)o(Vol)o(um)o(e\(3)o(,)
h(&vol\);)129 2685 y(...)p eop
%%Page: 15 18
15 17 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(THE)16 b(SYSTEM)907
b Ff(15)129 278 y(Note)17 b(that)i(in)e(a)i(real-life)d(program)i(y)o
(ou)g(also)h(need)e(to)h(handle)g(the)g(returned)g(error)129
338 y(co)q(de.)129 439 y([TODO:OS-Sp)q(eci\014c])11 b
Fg(MS-DOS)k(Note!)20 b Ff(Co)q(de)13 b(using)g(MID)o(AS)f(needs)h(to)g
(ha)o(v)o(e)f(the)129 499 y(compiler)e("SS==DS")k(-assumption)e
(disabled.)20 b(This)13 b(is)f(b)q(ecause)h(the)f(stac)o(k)g(used)h(b)o
(y)129 559 y(the)j(timer)e(in)o(terrupt)i(\(and)h(th)o(us)g(most)e(of)i
(MID)o(AS)f(co)q(de)g(plus)h(an)o(y)f(user)h(callbac)o(ks\))129
619 y(migh)o(t)i(b)q(e)i(di\013eren)o(t)f(from)f(the)i(main)e(program)i
(stac)o(k,)g(and)g(the)g(compiler)d(should)129 679 y(therefore)h(not)h
(generate)f(co)q(de)h(that)g(uses)g(data)g(segmen)o(t)e(v)m(ariables)h
(via)h(the)f(stac)o(k)129 739 y(segmen)o(t.)30 b(Because)19
b(of)h(this,)f(an)o(y)h(p)q(oin)o(ters)g(that)g(y)o(ou)f(pass)i(to)f
(MID)o(AS)f(functions)129 800 y(need)f(to)i(p)q(oin)o(t)f(to)h(data)g
(segmen)o(t)d(v)m(ariables)i(|)g(in)g(other)g(w)o(ords,)h(in)f(the)g
(example)129 860 y(ab)q(o)o(v)o(e,)129 996 y Fc(unsigned)j(vol;)129
1133 y Ff(needs)16 b(to)g(b)q(e)h(c)o(hanged)f(to)129
1269 y Fc(static)23 b(unsigned)g(vol;)129 1406 y Ff(to)18
b(ensure)f(the)h(lo)q(cal)f(v)m(ariable)g(gets)h(placed)g(in)f(data)h
(segmen)o(t.)24 b(P)o(oin)o(ters)17 b(to)h(global)129
1466 y(v)m(ariables)e(can)g(naturally)g(b)q(e)h(used)f(without)h(an)o
(y)f(mo)q(di\014cations.)46 1672 y Fd(4.4)81 b(Error)28
b(handling)129 1822 y Ff(The)11 b(section)g(ab)q(o)o(v)o(e)h(already)f
(ga)o(v)o(e)h(a)g(brief)e(in)o(tro)q(duction)i(to)g(MID)o(AS)e(error)i
(handling,)129 1882 y(but)k(this)g(section)g(will)f(describ)q(e)h(it)g
(in)f(detail.)129 1983 y(MID)o(AS)h(uses)i(a)g(common)d(metho)q(d)i
(for)h(handling)g(errors)f(throughout)i(the)f(system.)129
2043 y(All)f(functions)i(return)f(an)h(error)g(co)q(de,)g(and)g(it)f
(is)g(up)h(to)g(the)f(caller)g(to)h(decide)e(ho)o(w)129
2103 y(to)g(handle)g(the)g(error)g(condition.)23 b(Most)17
b(functions)g(simply)e(pass)j(the)f(error)g(co)q(de)g(to)129
2163 y(their)e(caller,)g(but)i(it)f(is)g(recommended)e(that)i(the)h
(function)f(do)q(es)h(as)g(m)o(uc)o(h)e(clean-up)129
2223 y(as)20 b(p)q(ossible)h(b)q(efore)f(doing)g(so.)33
b(In)20 b(particular,)g(all)g(allo)q(cated)g(memory)d(should)j(b)q(e)
129 2284 y(deallo)q(cated)c(and)h(all)e(op)q(en)i(\014les)f(closed.)129
2384 y(When)h(MID)o(AS)f(is)h(compiled)d(in)j(DEBUG)g(mo)q(de,)f(the)h
(error)g(handling)g(system)f(has)129 2444 y(additional)c(functionalit)o
(y)l(.)18 b(It)12 b(will)f(build)h(up)g(a)h(list)e(of)i(all)e(errors)i
(that)f(o)q(ccurred,)h(with)129 2505 y(the)i(name)g(of)h(the)f
(function)h(that)g(raised)f(the)h(error.)21 b(When)16
b(errors)g(are)f(then)h(passed)129 2565 y(up)o(w)o(ards)h(in)g(the)g
(function)f(call)h(stac)o(k,)f(all)h(functions)g(are)g(added)g(to)h
(the)e(list.)23 b(Th)o(us)129 2625 y(the)17 b(error)h(exit)f(not)i
(only)e(rep)q(orts)i(what)g(error)f(o)q(ccurred,)g(but)g(also)g(what)h
(function)129 2685 y(caused)d(the)g(error)g(and)h(where)f(it)g(w)o(as)h
(called.)p eop
%%Page: 16 19
16 18 bop 129 650 a Fh(Chapter)39 b(5)129 898 y(Op)s(erating)h(system)d
(sp)s(eci\014c)129 1023 y(information)129 1290 y Ff(Although)14
b(the)g(normal)f(MID)o(AS)g(APIs)h(are)g(inden)o(tical)e(in)i(all)g
(supp)q(orted)h(platforms,)129 1350 y(there)d(are)i(some)e(op)q
(erating)i(system)e(sp)q(eci\014c)g(p)q(oin)o(ts)i(that)f(should)h(b)q
(e)g(noted.)20 b(In)13 b(par-)129 1410 y(ticular,)j(the)h(limitations)e
(of)i(the)g(MS-DOS)g(op)q(erating)h(system)e(mak)o(e)f(it)i(somewhat)
129 1470 y(di\016cult)e(to)h(program)g(under.)46 1676
y Fd(5.1)81 b(MS-DOS)26 b(timer)h(screen)f(sync)n(hronization)129
1827 y Ff(This)20 b(section)f(describ)q(es)g(ho)o(w)h(to)h(use)e(the)h
(built-in)f(MID)o(AS)g(screen)g(sync)o(hronized)129 1887
y(timer)g(under)i(MS-DOS.)g(This)g(information)f(is)h(not)h(relev)m(an)
o(t)e(in)h(other)g(op)q(erating)129 1947 y(systems.)46
2131 y Fb(5.1.1)65 b(In)n(tro)r(duction)129 2264 y Ff(MID)o(AS)11
b(Sound)i(System)d(timer)h(includes)g(built-in)g(supp)q(ort)j(for)e
(screen)g(sync)o(hroniza-)129 2324 y(tion.)23 b(This)17
b(means)f(that)h(y)o(ou)g(can)g(program)g(the)g(timer)d(to)k(call)e(y)o
(our)g(o)o(wn)i(routines)129 2384 y(ev)o(ery)g(frame,)h(more)g(exactly)
f(immedi)o(ately)f(b)q(efore)i(the)h(V)l(ertical)e(Retrace,)i(imme)o(-)
129 2444 y(diately)e(after)h(the)g(V)l(ertical)e(Retrace)i(has)h
(started)f(and)h(later)f(during)g(the)g(V)l(ertical)129
2505 y(Retrace.)33 b(This)21 b(enables)f(y)o(ou)h(to)g(sync)o(hronize)e
(y)o(our)i(program)f(to)h(the)f(screen)g(up-)129 2565
y(date)15 b(to)g(get)g(smo)q(oth)f(animation,)g(whic)o(h)g(otherwise)h
(w)o(ould)g(not)g(b)q(e)g(p)q(ossible)g(with)f(a)129
2625 y(m)o(usic)h(system)h(pla)o(ying)h(in)g(the)g(bac)o(kground.)25
b(The)17 b(routines)h(can)f(also)h(b)q(e)g(used)f(for)129
2685 y(c)o(hanging)12 b(V)o(GA)f(hardw)o(are)h(registers,)g(suc)o(h)g
(as)h(displa)o(y)e(start)h(address)h(and)g(scrolling,)914
2810 y(16)p eop
%%Page: 17 20
17 19 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(OPERA)l(TING)15
b(SYSTEM)h(SPECIFIC)h(INF)o(ORMA)l(TION)82 b Ff(17)129
278 y(in)20 b(correct)f(momen)o(ts,)f(for)j(triple)e(bu\013ering)i(and)
g(for)f(comp)q(ensating)g(for)g(di\013eren)o(t)129 338
y(mac)o(hine)14 b(sp)q(eeds.)46 524 y Fb(5.1.2)65 b(Using)22
b(screen)g(sync)n(hronization)129 658 y Ff(If)17 b(y)o(ou)g(wish)h(to)g
(use)f(timer)f(screen)h(sync)o(hronization,)g(use)g(the)h(pro)q(cedure)
f(outlined)129 718 y(b)q(elo)o(w:)129 819 y(1.)31 b(BEF)o(ORE)19
b(MID)o(AS)f(Sound)i(System)e(is)h(initialized,)f(set)h(up)h(the)f
(displa)o(y)f(mo)q(de)129 880 y(y)o(ou)d(are)h(in)o(tending)f(to)h(use)
f(and)h(get)g(the)f(timer)f(screen)h(sync)o(hronization)g(v)m(alue)g
(cor-)129 940 y(resp)q(onding)21 b(to)g(that)f(displa)o(y)g(mo)q(de)f
(using)i Fa(tmrGetScrSync\(\))p Ff(.)34 b(If)20 b(y)o(ou)g(are)g(using)
129 1000 y(sev)o(eral)c(displa)o(y)h(mo)q(des)h(with)f(di\013eren)o(t)g
(refresh)h(rates)g(\(in)f(practise,)g(di\013eren)o(t)g(v)o(er-)129
1060 y(tical)d(resolutions,)g(although)i(in)e(standard)i(V)o(GA)e(only)
h(240)h(or)f(480)g(scan)h(line)d(mo)q(des)129 1120 y(ha)o(v)o(e)j
(di\013eren)o(t)f(refresh)i(rates\))g(y)o(ou)f(m)o(ust)f(activ)m(ate)i
(eac)o(h)f(of)h(them)e(in)h(turn)h(and)h(get)129 1181
y(the)e(sync)o(hronization)g(v)m(alues)g(for)g(eac)o(h)g(of)h(them.)129
1282 y(2.)k(Initialize)14 b(MID)o(AS)h(Sound)i(System)e(etc.)129
1384 y(3.)21 b(Set)16 b(up)h(the)f(displa)o(y)f(mo)q(de)129
1486 y(4.)26 b(When)17 b(y)o(ou)h(need)f(timer)f(screen)h(sync)o
(hronization,)g(start)h(it)f(using)h(the)g(function)129
1546 y Fa(tmrSyncScr\(\))p Ff(,)g(passing)h(as)f(argumen)o(ts)f(the)h
(timer)d(screen)j(sync)o(hronization)f(v)m(alue)129 1606
y(from)g(step)h(1)h(and)g(p)q(oin)o(ters)g(to)f(the)h(routines)f(y)o
(ou)g(wish)h(the)f(timer)e(to)j(call.)27 b(If)18 b(y)o(ou)129
1666 y(do)e(not)h(require)e(supp)q(ort)j(for)e(some)f(routine,)h(pass)h
(a)g(NULL)f(p)q(oin)o(ter)g(instead.)129 1768 y(5.)34
b(When)21 b(timer)d(screen)i(sync)o(hronization)g(is)g(no)h(longer)g
(required,)f(stop)h(it)f(using)129 1828 y Fa(tmrStopScrSync\(\))p
Ff(.)129 1930 y(If)14 b(y)o(ou)g(c)o(hange)g(the)g(displa)o(y)g(mo)q
(de)f(to)i(one)f(with)h(a)f(di\013eren)o(t)g(refresh)g(rate,)g(y)o(ou)g
(m)o(ust)129 1990 y(\014rst)23 b(stop)g(the)g(screen)f(sync)o
(hronization,)i(c)o(hange)e(the)h(displa)o(y)f(mo)q(de,)h(and)h(after)
129 2050 y(that)19 b(re-sync)o(hronize)f(the)g(timer.)28
b(Please)18 b(note)h(that)h(sync)o(hronizing)e(the)h(timer)d(to)129
2110 y(the)i(screen)g(up)q(date)i(tak)o(es)e(a)h(while,)f(and)h(as)h
(the)e(timer)f(is)h(disabled)h(for)g(that)g(time)129
2171 y(it)e(ma)o(y)e(in)o(tro)q(duce)i(breaks)h(in)f(the)g(m)o(usic.)23
b(Therefore)17 b(w)o(e)g(suggest)h(y)o(ou)g(handle)f(the)129
2231 y(timer)d(screen)h(sync)o(hronization)h(b)q(efore)g(y)o(ou)h
(start)f(pla)o(ying)g(m)o(usic.)46 2417 y Fb(5.1.3)65
b(Timer)23 b(screen)f(sync)n(hronized)i(routines)129
2551 y Fa(tmrSyncScr\(\))g Ff(tak)o(es)g(as)h(argumen)o(ts)e(p)q(oin)o
(ters)h(to)g(three)f(separate)i(functions)f(|)129 2611
y Fa(pr)n(eVR\(\))p Ff(,)f Fa(immVR\(\))f Ff(and)h Fa(inVR\(\))g
Ff(|)g(that)g(will)f(b)q(e)h(called)f(at)h(di\013eren)o(t)f(p)q(oin)o
(ts)p eop
%%Page: 18 21
18 20 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(OPERA)l(TING)15
b(SYSTEM)h(SPECIFIC)h(INF)o(ORMA)l(TION)82 b Ff(18)129
278 y(during)21 b(the)f(screen)g(timer)f(in)o(terrupt.)33
b(F)l(ollo)o(wing)21 b(is)f(a)h(brief)f(description)g(of)h(eac)o(h)129
338 y(routine)16 b(and)h(what)f(it)g(is)g(in)o(tended)f(for.)129
439 y Fa(pr)n(eVR\(\))f Ff(is)h(called)f(immedi)o(ately)e(b)q(efore)j
(V)l(ertical)f(Retrace,)g(and)i(m)o(ust)e(b)q(e)h(as)h(short)129
500 y(as)j(p)q(ossible)h(to)f(a)o(v)o(oid)g(timer)d(sync)o(hronization)
j(problems.)28 b(It)19 b(is)g(in)o(tended)f(mainly)129
560 y(for)e(c)o(hanging)h(the)f(displa)o(y)f(start)i(address)g
(register)f(and)h(up)q(dating)g(coun)o(ters.)129 662
y Fa(immVR\(\))d Ff(is)h(called)f(immedi)o(ately)e(after)j(V)l(ertical)
f(Retrace)g(has)i(started,)f(and)h(m)o(ust)129 722 y(b)q(e)11
b(as)h(short)g(as)g(p)q(ossible)f(to)h(a)o(v)o(oid)f(timer)e(sync)o
(hronization)i(problems.)18 b(It)11 b(is)g(in)o(tended)129
782 y(mainly)g(for)i(c)o(hanging)h(V)o(GA)e(hardw)o(are)h(registers)g
(that)g(ha)o(v)o(e)g(to)g(b)q(e)g(mo)q(di\014ed)f(during)129
842 y(V)l(ertical)i(Retrace,)h(suc)o(h)h(as)h(pixel)e(panning.)129
944 y Fa(inVR\(\))20 b Ff(is)g(called)g(after)g Fa(immVR\(\))p
Ff(,)h(and)g(ma)o(y)e(tak)o(e)h(a)h(longer)f(time)e(if)i(necessary)l(.)
129 1004 y(Ho)o(w)o(ev)o(er,)12 b(note)j(that)f(ev)o(en)g(though)h(sp)q
(ending)g(a)g(long)f(time)f(in)h Fa(inVR\(\))g Ff(do)q(es)h(not)g(in-)
129 1064 y(duce)f(timer)e(sync)o(hronization)i(problems,)e(it)i(ma)o(y)
f(cause)h(problems)f(in)h(m)o(usic)e(temp)q(o)129 1124
y(if)j(it)h(tak)o(es)g(a)g(to)q(o)i(long)e(time.)j(F)l(urthermore,)14
b(the)i(time)e(sp)q(en)o(t)i(in)g Fa(inVR\(\))g Ff(m)o(ust)f(not)129
1185 y(exceed)20 b(one)i(frame.)35 b Fa(inVR\(\))22 b
Ff(is)f(mainly)f(in)o(tended)g(for)i(c)o(hanging)g(the)f(palette)g(or)
129 1245 y(up)q(dating)16 b(small)e(p)q(ortions)i(of)g(screen,)e(suc)o
(h)h(as)h(dra)o(wing)g(new)f(c)o(haracters)g(to)g(a)h(start)129
1305 y(address)h(scroller.)46 1491 y Fb(5.1.4)65 b(W)-6
b(aiting)25 b(for)d(V)-6 b(ertical)23 b(Retrace)129 1625
y Ff(When)18 b(sync)o(hronizing)f(y)o(our)g(program)h(to)g(the)g
(screen)f(up)q(date,)i(instead)f(of)g(w)o(aiting)129
1685 y(for)23 b(V)l(ertical)e(Retrace)i(using)g(the)g(V)o(GA)f(hardw)o
(are)h(registers)g(y)o(ou)g(m)o(ust)f(use)h(the)129 1745
y(screen)16 b(sync)o(hronized)h(timer)e(for)j(this.)25
b(This)17 b(is)g(b)q(ecause)h(the)f(m)o(usic)f(pla)o(ying)g(in)o(ter-)
129 1805 y(rupt)21 b(ma)o(y)e(o)q(ccur)i(just)g(during)g(the)g(V)l
(ertical)e(Retrace,)i(causing)g(y)o(ou)g(to)g(miss)e(one)129
1866 y(frame)e(completely)-5 b(.)25 b(T)l(o)19 b(use)f(the)g(timer)e
(for)i(this,)h(set)f(up)g(a)h Fa(pr)n(eVR\(\))e Ff(routine)h(that)129
1926 y(incremen)o(ts)d(a)k(frame)d(coun)o(ter,)i(and)h(instead)f(of)h
(w)o(aiting)f(for)g(V)l(ertical)f(Retrace)g(bit)129 1986
y(w)o(ait)f(for)g(the)g(frame)f(coun)o(ter)h(to)g(c)o(hange.)22
b(F)l(or)16 b(example:)129 2142 y Fc(preVR:)334 2202
y(frameCoun)o(t)23 b(=)i(frameCount)d(+)j(1;)129 2322
y(main:)334 2382 y(...)334 2443 y(tmrSyncSc)o(r\(s)o(crS)o(ync)o(,)d
(&preVR,)h(NULL,)h(NULL\))334 2503 y(...)334 2563 y(oldCnt)f(=)i
(frameCount;)334 2623 y(while)f(\()h(oldCnt)e(==)i(frameCount)d(\);)p
eop
%%Page: 19 22
19 21 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(OPERA)l(TING)15
b(SYSTEM)h(SPECIFIC)h(INF)o(ORMA)l(TION)82 b Ff(19)129
278 y(Note)22 b(that)i(y)o(ou)f(m)o(ust)e(declare)h(frameCoun)o(t)g(as)
i Fg(v)n(olatile)p Ff(,)f(or)g(otherwise)g(ensure)129
338 y(that)14 b(the)h(compiler)d(will)h(not)i(optimize)d(the)i(frame)f
(w)o(aiting)h(lo)q(op)h(to)g(an)f(in\014nite)g(one,)129
398 y(w)o(aiting)i(for)g(a)h(register)f(v)m(ariable)g(to)g(c)o(hange.)
46 580 y Fb(5.1.5)65 b(Sp)r(eed)23 b(comp)r(ensation)129
711 y Ff(The)12 b(timer)d(screen)j(sync)o(hronization)f(can)h(also)h(b)
q(e)f(used)g(to)g(comp)q(ensate)f(for)h(di\013eren)o(t)129
772 y(sp)q(eeds)19 b(on)f(di\013eren)o(t)g(computers.)27
b(The)18 b(follo)o(wing)g(pseudo)h(co)q(de)g(should)g(illustrate)129
832 y(the)d(p)q(oin)o(t:)129 969 y Fc(main)24 b(loop:)334
1029 y(Wait)g(for)g(frameCount)e(to)j(change)334 1089
y(skipFrame)o(s)e(=)i(oldFrameCo)o(unt)d(-)j(frameCount)334
1149 y(oldFrameC)o(oun)o(t)e(=)i(frameCount)334 1209
y(for)f(i)i(=)f(1)g(to)g(skipFrames)d(do)539 1270 y(MoveEveryt)o(hi)o
(ng)334 1330 y(DrawEvery)o(thi)o(ng)46 1512 y Fb(5.1.6)65
b(Implemen)n(tation)24 b(notes)129 1643 y Ff(Unlik)o(e)11
b(in)i(some)f(old)i(MID)o(AS)e(v)o(ersions,)h(the)g(curren)o(t)g(timer)
e(co)q(de)j(no)g(longer)f(crashes)129 1704 y(under)j(Windo)o(ws)h(95.)
23 b(Ho)o(w)o(ev)o(er,)14 b(prop)q(er)j(screen)f(syc)o(hronization)g
(is)g(simply)e(imp)q(os-)129 1764 y(sible)g(under)g(Windo)o(ws)h(95,)h
(due)e(to)i(inadequacies)d(in)i(Windo)o(ws)g(95)h(timer)c(hardw)o(are)
129 1824 y(em)o(ulation,)g(and)k(MID)o(AS)e(will)f(just)i(set)g(up)g(a)
g(steady)g(timer)e(of)i(70Hz)g(\(or)g(what)h(ev)o(er)129
1884 y(refresh)f(rate)i(y)o(ou)f(set\))g(and)h(call)e(the)h(displa)o(y)
g(sync)o(hronization)g(routines)g(there.)129 1984 y(F)l(or)22
b(most)g(purp)q(oses,)i(this)e(should)h(presen)o(t)f(no)g(problems)f
(to)i(y)o(ou.)39 b(The)22 b(displa)o(y)129 2044 y(up)q(date)17
b(migh)o(t)e(not)i(b)q(e)g(as)g(smo)q(oth)f(as)i(under)e(plain)g(DOS,)h
(but)g(no)g(DOS)g(programs)129 2104 y(run)f(absolutely)g(smo)q(othly)g
(under)g(Win95)g(an)o(yw)o(a)o(y)g(and)h(the)f(users)g(should)h(b)q(e)g
(used)129 2164 y(to)e(that.)22 b(Ho)o(w)o(ev)o(er,)13
b(if)i(y)o(ou)g(use)h(the)f(screen)g(sync)o(hronized)f(timer)f(for)j
(page)g(\015ipping,)129 2224 y(y)o(ou'll)e(need)i(to)g(c)o(hange)g
(from)f(double)h(to)h(triple)e(bu\013ering.)21 b(The)16
b(reason)h(for)f(this)g(is,)129 2285 y(that)i(y)o(ou)h(can)f(no)h
(longer)f(b)q(e)h(sure)f(that)h(the)f(new)g(page)h(is)f(indeed)g
(displa)o(y)o(ed)f(after)129 2345 y(the)g(timer)e(in)o(terrupt)h(that)h
(c)o(hanged)h(the)f(start)g(address)h(returns.)24 b(V)o(GA)16
b(will)h(mak)o(e)129 2405 y(use)i(of)h(the)g(start)g(address)h(only)e
(at)h(the)g(next)f(V)l(ertical)f(Retrace,)h(and)i(there)e(is)g(no)129
2465 y(guaran)o(tee)g(that)g(the)f(timer)e(comes)i(at)h(V)l(ertical)e
(Retrace)h(time)e(\(in)i(fact)h(it)f(usually)129 2525
y(do)q(esn't\).)129 2625 y(If)k(MID)o(AS)g(is)h(unable)f(to)i
(determine)c(the)j(correct)f(displa)o(y)g(sync)h(v)m(alue)f(\(ie.)41
b(the)129 2685 y(frame)14 b(rate\),)h(it)h(will)e(use)i(the)g(frame)e
(rate)i(set)g(in)f(the)h(v)m(ariable)f Fa(mDefaultF)l(r)n(amer)n(ate)p
eop
%%Page: 20 23
20 22 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(OPERA)l(TING)15
b(SYSTEM)h(SPECIFIC)h(INF)o(ORMA)l(TION)82 b Ff(20)129
278 y(\(in)20 b(100*Hz)i(=>)f(70Hz)h(b)q(ecomes)d(7000\).)38
b(This)21 b(v)m(ariable)g(is)g(initially)e(set)i(to)g(7000)129
338 y(\(70Hz\),)g(but)g(if)f(y)o(ou)h(kno)o(w)f(the)h(refresh)f(rate)h
(of)g(y)o(our)f(displa)o(y)g(mo)q(de)g(is)g(di\013eren)o(t)129
398 y(y)o(ou)d(can)h(c)o(hange)g(this)g(b)q(efore)g(calling)f
Fa(mGetScrSync\(\))p Ff(.)27 b(If)17 b(y)o(our)h(application)f(uses)129
458 y(sev)o(eral)c(displa)o(y)g(mo)q(des)g(with)h(di\013eren)o(t)g
(frame)e(rates,)i(just)h(set)f(mDefaultF)l(ramerate)129
518 y(b)q(efore)i(reading)g(the)g(sync)g(v)m(alue)g(for)h(eac)o(h)f(of)
g(them)f(as)i(follo)o(ws:)231 669 y Fc(SetFirstMod)o(e\()o(\);)231
729 y(mDefaultFra)o(me)o(Rat)o(e)23 b(=)i(6000;)f(/*)h(60)f(Hz)h(*/)231
789 y(mGetScrSync)o(\(.)o(..\))231 849 y(SetSecondMo)o(de)o(\(\))231
910 y(mDefaultFra)o(me)o(Rat)o(e)e(=)i(5000;)f(/*)h(50)f(Hz)h(*/)231
970 y(mGetScrSync)o(\(.)o(..\))129 1120 y Ff(T)l(o)c(c)o(hec)o(k)d
(whether)i(MID)o(AS)g(w)o(as)h(able)f(to)h(sync)o(hronize)e(to)i(the)f
(screen)g(correctly)l(,)129 1180 y(c)o(hec)o(k)13 b(the)j(v)m(ariable)f
Fa(mSyncScr)n(e)n(en)i Ff(after)e(calling)g Fa(mGetScrSync\(\))p
Ff(.)23 b(If)15 b(the)g(v)m(ariable)129 1241 y(is)21
b(0,)i(MID)o(AS)e(w)o(as)h(unable)f(to)h(determine)e(the)h(frame)f
(rate,)j(to)q(ok)f(it)g(from)e Fa(mDe-)129 1301 y(faultF)l(r)n(amer)n
(ate)p Ff(,)i(and)h(is)f(no)o(w)h(running)f(in)g(Win95)h(compatibilit)o
(y)c(mo)q(de.)38 b(Y)l(ou'll)129 1361 y(probably)16 b(w)o(an)o(t)g(w)o
(arn)h(the)f(user)g(if)g(that)h(is)f(the)g(case:)231
1512 y Fc(SetMode\(\);)231 1572 y(mGetScrSync)o(\(.)o(..\))231
1632 y(SetTextMode)o(\(\))o(;)231 1692 y(if)25 b(\()g(mSyncScreen)d(!=)
j(1)g(\))231 1752 y({)334 1812 y(printf\("W)o(arn)o(ing)o(!)e(Unable)g
(to)i(synchroniz)o(e)d(the)j(program)e(to)i(")513 1873
y("screen)e(update!\\n\\n)o(")513 1933 y("This)h(normally)f(only)h
(happens)f(when)h(running)f(under)h(")513 1993 y("Windows)f(95)i(or)g
(similar)e(system,\\n)o(ple)o(ase)f(consider")513 2053
y(")j(running)f(this)g(program)f(in)i(MS-DOS)e(mode.)h(The)g(")513
2113 y("program)f(will)h(work,\\n)f(but)i(the)f(screen)g(update)f(")513
2174 y("will)h(not)h(be)f(as)h(smooth)f(as)h(possible,)d(and)j(there)e
(")513 2234 y("may)h(be\\nproblem)o(s)f(with)h(music)g(playback.)o
(\\n\\)o(n")513 2294 y("Press)g(any)g(key)h(to)g(continue.)o(\\n")o
(\);)334 2354 y(getch\(\);)231 2414 y(})129 2565 y Ff(T)l(o)c(force)f
(Win95)i(compatibilit)o(y)17 b(mo)q(de,)k(set)g(mSyncScreen)d(to)j(0)h
(y)o(ourself)e(b)q(efore)129 2625 y(calling)c(mGetScrSync)f(the)i
(\014rst)g(time.)22 b(This)17 b(allo)o(ws)h(y)o(ou)f(to)g(set)g(the)g
(timer)e(run)i(at)129 2685 y(a)f(constan)o(t)h(rate,)f(indep)q(enden)o
(t)f(of)i(the)f(displa)o(y)f(refresh)h(rate.)p eop
%%Page: 21 24
21 23 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(OPERA)l(TING)15
b(SYSTEM)h(SPECIFIC)h(INF)o(ORMA)l(TION)82 b Ff(21)46
278 y Fd(5.2)f(Linking)26 b(with)h(W)-7 b(atcom)29 b(C)129
429 y Ff(Imp)q(ortan)o(t)21 b(note)h(on)h(linking)e(MID)o(AS)g(with)h
(W)l(atcom)f(C:)h(Some)f(W)l(atcom)g(link)o(er)129 489
y(v)o(ersions)15 b(are)g(case)h(insensitiv)o(e)e(b)o(y)h(default.)20
b(T)l(o)d(b)q(e)e(able)h(to)g(link)e(MID)o(AS)h(correctly)l(,)129
549 y(mak)o(e)f(sure)i(y)o(ou)g(use)h(the)f(link)o(er)e(option)231
705 y Fc(option)24 b(caseexat)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF
[ RETURN TO DIRECTORY ]