[comp.binaries.mac] Macintosh Technical Notes - 208 Setting and Restoring A5

bytebug@dhw68k.cts.com (Roger L. Long) (11/01/88)

[Macintosh Technical Notes - 208 Setting and Restoring A5]

The routines SetupA5 and RestoreA5 do not work properly when  used  with
some  optimizing Pascal and C compilers.  Two new routines, SetCurrentA5
and SetA5, are provided here, and they should work with any compiler.

---
(This file must be converted with BinHex 4.0)

:&6)`1#"6CA4eF%%e,e*PFh4[FQ9"03"A6e*%68&$33#3"#(1!!!$+%)V!!B!FJ!
#!!3!N!2rN!6m!!%!!#''!%J!5!!!)C!!!'!!B!!!)C!!!'!!!`#3!dJ!5!#3"!,
D!LMriIrL![N#4J0("5J$r!!#!*!$5!")!*!%!YS#+!!"!*!$C!#3!`%!!C!$!*!
$!5F2!!%!!3!%6l!!"&!mJ#-!N!-#!"N"N!!!N!9!!*!E!J!I!!)!(`#3!`%!!"H
'!%!!!"GZ!"J!$!$drr)!XIrb!6rrN!3!rj!&!!%!N!-"!*!&!3!!&p)!)!!!&mB
!$2rb!"lrmJ$Xrr)"Z[q3"!$r$!!!!3!4!*!$%3#3"3%!!"TQ"b!!!"Ib!R6rmJ!
Hrr)!l2rb!EVrN!8!$!!!&3!UrGB"f3!"$3!!"J!!$!!!&3!"$3!!"J!!$!!!&3#
3!`B!!!`!!!-!#3(U!!)!N!-*!'`!d`)8!K3!'Zc+!!!(d!!I)k)!*!#3!b&'98j
$9%P26L"6CA4$GA*bC@jd368J1L"-6dj(58j81`d!!!B!!!S!!"B!&Hc+!#3!N!-
"$3!!"J!!#J!!&3!"$3!!"J!!#J%!&3!Gp0E(-PL`p8(,0mDJp18KM`R`Rr$`d!!
-!!!1!3!9!"XB%3!A!(AeF33FAfhfd6N#YL$hPIG3MhGbb`AhB8!P!V%$(hF%Ah8
R-B"S#&8`D!jBKrBU(b`$82E@)K32GlBJNIGKTHpY%b#2HB)IE3pjAh82GB(bi!!
'!!!-!!!9!$%"kJ!$!*!$-3"$!+B"0J)8!K6XbJ!!"p!!(b1L!#3!N!-KjSaU#P2
fF28a,d2h9%%bp"memSpf9jmT$ch`d!!'!!!+!!!@!!!-!!!9!'&IN'!0!!!'!!!
*!!!9!#m*58j-58j&)#3b46K%,#!N-N%h1#`J*$!j-$3l)!N[+L"08&FJ8'&cBf&
X)#S[$3!!"J!!#J!!&J`!!"8!!3d!!!B!!!i!!"8!(r)r-[-2121Jp6%LFrC`Bj!
!p5'#9(2fF23I0I$3!!B!!!i!!"81!!!9!!%0!!!'!!!1!!!9!#96C@8JB@acEcS
*6h"PFQ&dD@jR)&0jFh4PE5"9G'PXDA4TCA-0!!!'!!!1!!!9!$he3FXhaU$dj5%
2)r-[-212#HEfF3#3!`A3mcm*p6%LFrC`Bj!!p5'#9(2fF23I0I$3!!B!!!S!!"8
!!!i!!"8!!3d!!!B!!!i!!"8!'[9,%26KphmX$e45DUpj$d09S29fpjm0!!!'!!!
1!3!9!!%0!!!'!!!-!!!9!!%0!!!'!!!-!!!9!'&IN'!0!!!'!!!*!!!9!!%0!!!
'!!!1!!!9!0Ae5a"&pe*c'!p6%[GHp"me"MN28KJP3I3I03P305$hG8pV$NAK5[H
3!2Gl%`peJC!!phFV#&pY%&iRpYIhTcpR$e"SaU"MN!$d--AfhRS8Mbi292Ge!ap
h"&pe*c'2,!p6%[3rG836,d(c8'13!28a,d(cAb`'33j&pfH4N!#a3I,!Bj!!+ap
j#,Ah@T!!ph92D`phFV"Mpj!!aIEHHK6bi2$3!!!f!!!1!!!9!!d1!!!@!"31!!!
9!"N1!!!@!#)1!!!9!)%1!!!@!)d1!!!9!*)1!!!@!*F1!!!9!!!1!!!9!"B"kJ!
#!*!$&J$FrMj!J'9%!#fl9!!L0m!!'Zc+!#3!N!-@!HS!!3#3!aB"FHkX3)"P4!!
YZe3!)MI!!"VXbJ!N!*!$*!(U!!-!N!-N!(N!U`%5!K3#&1c+!!!(d!!I)k)!*!!
!#J!!&J&Zp8X3j&pLSIE3X8%(J#YL$e-5peld(c8+&[GKJ#X3@T!!pfD[G4"G$d(
c8&-#X3JQcf[b`'13!28KJP3I3I03D)pepY'!+f)#X3JQcfX19c)8"i##HU$hCUH
I,Jp*d#X3j&pR4[EIE432EAJQpV%kpj!!aUU!p5'#9"p"me$hGbYc"JaUSC!!MhA
f*&pe*c(b`#X3pfD[G4!VBJH!jHiC"Gd#X3JQcfX'13JP3C!!F`p"me$hGkS2BK$
fGNpLEfFI,Jp2d-Ah9)(b`#X3r5pRC2BQpR(p--Ah@T!!pL%)Afd5YcpR$feC&')
Dpj!!peJGpeS+IfX3B%%[G8-'Q8')mZm0!!"#!!!-!!!9!"N-!!!@!#!-!!!9!$N
-!!!@!$X-!!!9!%i-!!!@!&F-!!!9!+S-!!!@!,--!!!9!38-!!!@!3F-!!!9!#l
`R`Re3FXhaU$dj5%2)r-I12-2d26IGD*r4R14326AM"UQ-@m0!!!'!!!1!!!9!#l
`R`Re3FXhaU$dj5%2)r-I-r0Id24a)R2fF#Y&pepRX23r9I8r9&pYM`d!"J!!$J!
!&3!d#AXJ-(Jb46K%,#!`H$*"0cJX)$"i-$N`0#"p1`N[+L"08&FJ3b!S-bi`)'p
ZE(NT)#S[$3!'!!!+!!!@!%2cX28rGIBNAh8R-3pf&)G6$93#YB%2Gl8'36mR)2G
BFrC`B-AfhRS8$'j[BU(`d!!!"J!!#J!!&J!Zml"G#f1DFrC`pYpeSRkK$hG8N!$
dRdldcdRdld80pe2#G6McV`d!!!B!!!S!!"B!'90PG%0eFR*PER4"03P38Np$)%9
B8%p59!d!!!B!!!S!!"B!-r#I6I6r9[4I,[62#I3I0I,202+23I0r+I#I1`JP33@
T$d(c8'J0pe2#G6""Mh@Lm0!!!!B!!!S!!"B!,!P06eC&,N`*3h9bFQ9ZG%%e,%%
e#6XJFf9d)%%e)(4[)(*PB@`JGQ&XG@80!!B!!!S!!"B!*de29N8Z6!NS36FT+ba
"03Nl)("[F#"[E'3J368JEfCQ)(0dB@0V$3!!"J!!#J!!&J!N!HS!!J#3!b3!83#
Q!K3#&!!Dl-S!!!I3!"mMSJ!N!*!$,%C96N0858p1)&0PG%%e)#KZCAG"05!k)%a
26NG*6P3T)$SJ6%p14dP19$X0!!B!!!S!!"B!*8e29N8Z6!P$GA*bC@jd368X368
*1b"cCA3JBh9bFQ9ZG#""03d!!!B!!!S!!"B!2r6I6r9[4I,[62#I3I0I,2,I+23
I0r+I#I1`S@pf%&U3!23I038`JQcf[cS24'2fF8$eGkS28PpLFi8r)I$3!!!'!!!
+!!!@!#3"kJ!#!*!$*!"4!+B#&!)8!"VXbJ!!"p!!(b1L!#3!N!-"$3!!"J!!$!!
!&3!"$3!!"J!!$!!!&3!"$3!!"J!!#J!!&J!&#9*88`d!!!B!!!S!!"B!!3d!!!B
!!!`!!"8!$29,%26kN!$eG[HI$3!!"J!!$J%!&3!*!HS!!J#3!`N!E!$6!K3#&!!
Dl-S!!!I3!"mMSJ!N!*!$#3(U!!)!N!-*!'`!d`)8!K3!'Zc+!!!(d!!I)k)!*!#
3!b2e5a$dRdldcdRdld8-@4$9328KJP3I3I03phD21[$3!!!5!!!-!!!9!"3-!!!
@!"d-!!!9!(EeHa-2H9pe$hGM)#8%'#9"!V%&U3pfD[G4"G$d(cAb`&32D[GB)2G
f-J*3bf2fF3p"me!P#&pY%&+a32GQVh8I,!pjAh8-B`peJ3+a"&pe*c(cV`d!(J!
!$!!!&3!U$!!!&J!X$!!!&3"&$!!!&J"($!!!&3!9!!N"kJ!%!*!$#3!a!))"-J(
,!K3#&!!L0m!!'Zc+!#3!N!-"$3!!"J!!$!!!&3!*#8914&"56d-0!!!'!!!+!!!
@!!N"kJ!#!*!$#3"X!0-#&!)8!"VXbJ!!"p!!(b1L!#3!!!%#p8X3KDpe*e-#8#Y
i#AJN')FrC`j&pLSIE3H!j&pfH4N2B[H3!#ph8$(hF0pe2#G6Mb`28a,d2h9%%bp
"me"MN!$e-5p"memZ$d*5X&d#XB%0pe2#G6J%%[G8-#X3@T!!pfD[G4"G$d(c8#8
#X3aUS8"S"J3BpeS[,!phYmX-B`pL%)*8'3AG"MN%'#9"N!"L#&pY%#Ifd3F`+a!
e,bdPAbfAJQ-Jhh8[G8(bl`d!!#S!!!`!!"8!5``!!"B!9``!!"8!A!`!!"B!B3`
!!"8!N``!!"B!P3`!!"8!#3(U!!)!N!-*!'`!d`)8!K3!'Zc+!!!(d!!I)k)!*!#
3!`%0!!!'!!!-!!!9!'Ee5a"c)8eX%09!p6%[3rG836,d(cAb`'T6pR$hGbX(+!a
83Bj6PcpR"rEHSIE4-Q*e-'J'#2GIBNAh8R-3aUVb`(McV`d!!")!!!`!!"8!%J`
!!"B!(J`!!"8!!3d"!!B!!!`!!"8!!3d!!!B!!!`!!"8!!3eS!!B!!!`!!"8!!3d
!!!B!!!`!!"8!!3d!!!B!!!`!!"8!!2r@!"N$[J!068&(580358-4!Ip!!#(e5a$
dRdldcdRdld8-@4$9328a,hA[3I03phD21[$3!!!5!!!-!!!9!"3-!!!@!"X-!!!
9!!%0!3!'!!!-!!!9!!%0!!!'!!!-!!!9!!%0!!!'!!!-!!!9!!hdNb4Cpe`R8r$
3!!B!!!i"!"8!!3d!!!B!!!i!!"8!-3(U!!-!N!-a!%-!TJ%f!"X!'Zc+!!!(d!!
I)k)!*!#3!bm*58j-58j&)#3b4M4%,#!N-*!$0#`J*$*"08Bl)!N[+L"08&FJ8'&
cBf&X)#S[$3!!"J!!#J!!&J!KjSaU#P2fF28a,d(c82++8rC`-IGr3I0I+3mpm0!
!!!B!!!S!!"B!03Pl)$"i-NBd4#`J-(J`N!-d,#!`H$*"08BJI6XJ#5mU)%e39b"
$)#Jc,M!JEfjXH5NJ+Lm0!!!'!!!+!!!@!!%0!!!'!!!+!!!@!#3"kJ!$!*!$*!"
M!+X"!!)8!K6XbJ!!"p!!(b1L!#3!N!0$ml$e2hAf*&pe*c%2GK5(8`e8!V@"$hH
e"N%r*b$h@(2fF'$&pYjk&!aZEf+Km0!!!!B!!!S!!"B!,[1`A3YMQR2fF2EIGD*
qS3ph9*!!p*p1p-p*p1p&$IG6`R8imkm0!!!'!!!+!!!@!"*6CA4"03P38Np$)%9
B8%p59!d!"J!!#J!!&J!R#8e29N8Z6!NS36FT+ba"-!Nl)(0KGQ8JFQ9dGA*Z)'&
NC(*PFh-0!!!'!!!+!!!@!$6`RdhdreEdAbld`2#I3I0I,202+23I0r+I#I1`JP3
3@T!!p"me"S$IG6`R8`3BpeS[$3!!"J!!#J!!&J!im*p0p2p@p&mZp-m*mSp"mhm
TmVmXp"mem*ml#")23I03*3jSJC!!pfD[G4mX$Pi'6fIhAfd6,`d!!!B!!!S!!"B
!$!P+69!Z6!NS36!T$3!'!!!+!!!@!!N*48j%8&*23`d!!!B!!!S!!"B!!3d!!!B
!!!`!!"8!N!8G!qJ!$8e"4dP$8%P$%3(r!!!"$3!!"J!!$!!!&3"Yp)&""i"JMfe
US1FF%&d)EfhU%-@4mX$hG()K-(-23I6[8r53!23r,!phYmX*(fe6JNBKJ'![HHI
'S2GB%&d#XB%%Ah8R-Bmkm0!!!!B!!!`!!"8!!3d!!!B!!!`!!"8!-3(U!!)!N!-
a!%`!m`)8!K3!'Zc+!!!(d!!I)k)!*!#3!a2b0cb[GC%22292HH'2,Vmqm0!!"J!
!#J!!&J!6mMFmVh@4$ccdCk'2,Vmqm0!!!!B!!!S!!"B!&I)h2+peN3mmp2p6p9*
kMbkr2[$3!!B!!!S!!"B!!3d"!!B!!!S!!"B!,"pi)8-(-JEdHPpLD[1r#I,r+JB
2CkAf*U$hCNG[BU%2+[,r$3!'!!!+!!!@!!%0!!!'!!!+!!!@!!-[+Jd!!!B!!!S
!!"B!'!mU$dhhRd0IEHS5G6p5Ah8R-I1[$3!!"J!!#J!!&J!r$bS!!29,H!4IG5F
a"i$'UKN2B[H3!'-'L"pYpLVhN!#Q2fIh9[Ca##pepL!VB[$3!!B!!!S!!"B!+Jm
U!QpV'!FS$Q4[E4)8J&pe)&d242-!Bj!!p"m`mZm0!!!'!!!+!!!@!$EhCAN26IH
I3epYkK*e2e*IG5FamSp3C2EI3UpVp3*!lf,b`26r8r483%'2GD,bR`d!"J!!#J!
!&J!Zm*@Tp"me$cd28a,d2h9%%bp"memSmTmlm*m[mU#")-pe4"-JEc82+[,r$3!
!"J!!#J!!&J!`m*mSpf9jmT!!p6%[3I0I+&UI3I0I+I1r#I,r+J3B*8%13IGRAh@
!Ec82+[,r$3!!"J!!#J!!&J"KAj"J$3d!"J!!#3!!&3!#I3d!"J!!#J!!&J!"$3!
!"J!!#J!!&J!0#@a[EQFJEfaN368l$3!!"J!!#J!!&J!P#@&(E'pLB@`J25!Y-6X
*,bSJC'mJFfpYC5"hEh*V,T!$)#S[$3!!"J!!#J!!&J!"$3!!"J!!$!!!&3!V9h*
TG(4PEL"LH6S*3@jNFQ9h)&0SC@*KEQph#8&eCh9cG#!a,#!a16Ji$3!!"J!!$J!
!&3!%)#S[$3!'!!!+!!!@!!*l$3!'!!!+!!!@!D6diIGa6b`2E933KHYi*mBKRb`
&iRpYIhTcpR$&pYjk&)$bM93(1#Bm(b`26I829`p$$c2blc$bN!$hGkS&dK-+&[G
K$IG6`R8`jNEfd5&)"6!V%)*XpV"X4BJ2EIGD*qS3hh8m*e--DUMb`%(feIGR2fF
#X3C2CrGIE4-S$93)(hB8DJhh8m*e1!phFV"JKcpRS3Fi*2GF*e2bi29,H!KrCcI
AaM+[H33Cpe`B$&N3KrHK"MN"pi(2G5G6!RpY(b`')#X3(hMK1""G"JMfeUS'pYA
h8b"G"TPbG6DJJQcfX2GBEfFI,Jp"J'#(N3(G(#mX!VH!ALIferHQ*e-2BN&[Di!
V%28a,hA[3I03Bj!!p5'#9"p"me$fH[G4mZm0!#S!!!`!!"8"I3`"!"8"J``!!"8
"L!`!!"B"M``!!"8"P!`!!"B"R3`!!"8"4[9,H!p8(,0mDJp18K#4M%If)B"JjR3
&d(1R-3pRVh834IG5FaJ2GlI,#fpf%2E933hh8m*e0UF[H3+f-28a,hA[3I03Bj!
!p5'#9"p"memX$hGbYIG5$fe[Dh2fF'L2GIEH*e1!Ef*IG5"JaIEHHK6bH!JQcfX
,BjTcpRmZ$e5aJ34IG5FaJ'33j&pfH4N'J'##BjC*$Q3JA3+a$dhe$eF28'M'S2-
r,[-!Bj!!p0p3pA$d-2-r,[-!jXpVEfFBmX"c!V%0HKJ26r8r95HSmZi'13p2p6p
9*kMbkr,!3BiF*rGKVhRbl`d!(J!!$!!!&3"J$!!!&J"R$!!!&3"X$!!!&J"e$!!
!&3!"$3!!"J!!#J!!&J!$)#S0!!!'!!!+!!!@!A6e5a"cTc%2Ckpe%%Ah8R-B$e-
5peld(c8'13p5'#9"p"me"N%&dK-2GB'3!2B[H3aIEHS5G6"&pe*c'2,!p@p#p-!
QMfZ!Bj!!Fb&%peiJYMQK5!ph4b)6"c$d-'13!28'M'S#82Ca)'c"L!*3B`EZTmB
R8r*i$fHPpLDJpfC(Ef+KMbi296e8,h8f)DpjmX!V'""&pe*c'!kQpj!!eS)'13T
9J3phFV!V%)*XpV$PFb&2,JmSp18Kmk$U&S%)%3p8(,0mDJp18K$b2c(cMc!09!p
RpeH4Tc'!8`E-')FrC`p"memY3DBRpf%*BQ$h8j&!p0peSRp'Fj&2,[+I$3!f!!!
-!!!9!"N-!!!@!#!-!!!9!#8-!!!@!#i-!!!9!3i-!3!9!4--!!!9!8m-!!!@!9%
-!!!9!*!$!3`-!!%-$!!"$!`!N!m$H#`J!!@%!#)!N!--!*!$!hJmB!!"U!!-5J%
!$!!-!!0i+'J!!kS!1NS"!!`!'!!$H&KJ!!'d!!a+!J#3!`%3%!#3#`4%e#!!"DB
!)J#3!a!!N!-%40KJ!!&)!!T$!3#3!`%,#`!")b-!!3m2!!%2$`!"$`m!!3m2!!%
2$`!"$`m!!3m2!!%2$`!"#`X!!3m2!!)2J`!"#`X!!3m2!!%2$`!"$Ji!!Jk&!!%
1$J!#$S8!!3i1!!)1K!!"$Ji!!3i1!!%2$`!"$Ji!!3i1!!%1$J#3!`%-$!!"$!`
!!3i1!*!$!3i1!!%1$J!"$Ji!!3`-!!%-$!#3!`%1$J!#$S8!!3i1!!%1$J!"$`m
!!3i1!!)1J`!"$Ji!!Jk#!!%1$J#3!`%-$!!"$!`!!3`-!!%-$!!"$!`!!3`-!!%
-$!!"$!`!!3`-!!%-$!!"$!`!!3`-!!%-$!!"$Ji!N!-#$S)!!3i1!*!$!3`-!!%
-$!!"$!`!!3`-!!%-$!#3!`%-$!!"$!`!!3`-!!%-$!!"$!`!!3`-!!%-$!!"$!`
!!3i1!*!$!3i1!*!$!Jk#!!%1$J#3!`%-$!!"$!`!!3`-!!%-$!!"$!`!!3`-!!%
-$!!"$!`!!3`-!!%-$!!"$!`!!3`-!!%-$!!"$!`!!3`-!!%-$!!"$!`!!3`-!!%
-$!!"$!`!!3`-!!%1$J#3!`)1JJ#3aa!!"%6!)!!,2J!L!*!$#`!3!!4%b'-!!Si
!E%N"!#-!'`!%4-4V!!(!!#B!!J!2!$i!"%5iB`!$1!!-6!%!$`"0!!4%X'X!!d3
!*N`"!!m!A!!%4+4M!!0Z!!a-!3!2!'X!"%5FB`!$HJ!`6!%!$`"k!!4%P'X!"f!
!0%`"!!m!L3!%4)aV!!F`!$"-!3!2!*J!"%5%B`!$kJ!-6!%!$`#R!!4%I'-!%hi
!0N`"!!X!YJ!%4(4M!!3`!'a*!3!2!-%!"%4XB`!%R!!-6!%!,3$3!!4%C'X!"+J
!eJ3"!!X!r3!%4&aM!"+Q!'a*!3!2!3J!"%43B`!0a!!-6!%!$`%A!!4(F'X!$E!
!&%`#!!i"*J!%4fKM!!fN!!a,!3"'!63!"%GJD`!@1J%d!`!!$J&k!!4(9'-!$*`
!$%X"!%B"L!!%4dKV!"21!8S$!!!1!Fi!"%G!3`!,B!!-5`%!1!(F!*!%5`!9'!%
)!`%!$J)8!*!%3`!0Q!!-5`%!$J)L!*!%3`!0M!!-5`%!$`)`!*!%5`!+0J!@6!)
!$J)r!*!%3`!++J!-5`%!$J*0!*!%5`!09J!f!`%!$J*E!*!%3`!*pJ!-5`%!!!*
T!*!'#G3!)J#3!``#D3#3"%X!#B`!5$)"!!`#G3#3"%-!#9`!-$)"!!i#J3#3"%-
!"#3!$%X"!!!#M`#3"Jak!#)!!2rC!Sm!!hK))!!03!!@5`%!$J!3!3#3!dX!#T!
!!$B$!3!1!"i"!*!$3`!"2!!-5`%!N!-X!3#3"3N%!#)!N!--!#`"!*!$3`!)dJ!
b-J%!N!-i!3#3"3Z!!#)!N!-1!$J"!*!$3`!0(!!-5`%!4J"'!3#3!dX!"Hi"3J-
"!!i!M!%!N!0$!!d3!!a,!3!1!*S"!*!$3`!0"!!-5`%!$`#S!3#3!dX!!rB!)N`
#!!i!Y`%!N!0$!!%`!!a,!3!U!-8"!*!$5`!,SJ$B!`%!$J$[!3#3!d-!""J!$%X
"!"`!r3%!N!0,!!bS!&`$!3!1!4N"!*!$3`!+!J!-5`%!!!%R!3#3"3*!!#)!N!-
-!5F"!*!$3`!"G!!X-J%!$!%c!3#3!d-!![S!1M)"!!`"2`%!N!0,!!*L!#Bb!3!
-!8X"!*!$3`!(P!!q-J%!$!&A!3#3!d-!#Ji!$$)"!!!"B`%!N!8&b!!L!*!$$!&
M!3#3!dX!"p)!1M)"!!`"E`%!N!0,!!J-!$!b!3!-!AX"!*!$3`!)2!!N-J%!$!'
(!3#3!dX!#'!!2$)"!!`"N`%!N!0$!!LF!$Bb!3!-!Cm"!*!$3`!+'J!3-J%!$!'
V!3#3!d-!#f`!&$)"!!i"Y`%!N!0$!!dS!!a,!3!!!F8"!*!&#Qi!)J#3!a`"a3%
!N!0,!!V'!(B$!3!1!H%"!*!$3`!00!!-5`%!!!([!3#3"3h3!#)!N!--!Hm"!*!
$3`!**J!f-J%!$!(l!3#3!d-!$I)!1M)"!!`#"`%!N!0,!!iX!#Jb!3!-!K-"!*!
$3`!19!"!-J%!$!)I!3#3!d-!$T3!$$)"!!!#+`%!N!81S!!L!*!$$!)V!3#3!dX
!$X)!1M)"!!`#0`%!N!0,!!lm!$!b!3!-!N-"!*!$3`!2,!!F-J%!$!*2!3#3!d-
!$dJ!-M)"!!`#@`%!N!0,!!pk!$`b!3!-!QF"!*!$5`!2YJ"#-J%!$!*c!3#3!d-
!$rJ!&M)"!!`#I`%!N!0$!"!1!"3b!3!1!SX"!*!$3`!3)J!-5`(ri`+C!30i3#!
!%#i!&J#3!`i!%!)!N!0$!""%!!a,!3#3!ai#!*!&#N`!)J#3!a`!(J)!N!0,!""
3!&4,!3!1!$S#!*!$3`!3T!!-5`%!N!0)!J#3"4#`!#)!N!--!%J#!*!$5`!3dJ!
F-J%!$!"8!J#3!`J!%1i!($)"!!`!B!)!N!-)!"%+!"ib!3!-!'`#!*!$3`!4+!!
--J%!$!"i!J#3!dX!%63!,M)"!!`!K!)!N!0$!"&L!!`b!3!-!*!!!J#3!d-!%@i
!$M)"!!`!R!)!N!0,!"&m!#!b!3!-!+J#"%4`B`!@,!!1-J%!$!#d!J#3!dX!%C`
!1$)"!!`!`!)!N!0,!"(8!#Sb!3!-!-`#"%5!B`!6Y!!1-J%!$!$B!J4%S'-!%ai
!$$)"!!`!j!)!N!0,!"(q!$Sb!3!-!2!#"%4iB`!6`J!--J%!$!$m!J4%Q'-!%bS
!'$)"!!`"#!)!N!0$!"BJ!!`b!3!-!43#!*!$5`!51!!f-J%!$!%J!J4%N!"M!"0
#!$!b!3!-!5`#!*!$5`!5EJ!i-J%!$!%i!J4%V'-!%a)!$$)"!!i"4!)%4)KM!"0
b!!a,!3!!!9)#!*!&!9)!)J#3!a`"8J)!N!0,!!(Q!&T,!3!!!D!!N!-)!!!#L!#
3!`B!!!-d!*!$"!!!!fS!N!-%!!!$j!#3!`B!!!9q!*!$"J!!"HS!N!-%!!!,2!#
3!`)!!#(1!-DJ)M,3!!!"!*!$!XS!!!(+!*!$AZpPBmN"UU0``VF"UXMqF`NaD[p
NC($$V[iC-B"[`A$r&6)`1#"6CA4eF%%e,e*PFh4[FQ9"03)!N#ZIN!$"B`!!)Fi
!!!-SH(K`T+"`RmN"UU"`rf&VY`'NrQ0c%&lr-Q,!bfKeSX2-D@qL!IpMDFe[EJ(
'Rk)"d(0Sf(9Z!FHHSJ(rFfqL!F1JF-YdDD)"`kY`Sk!"a[pSDD)"fh0TSJ('Uri
36M,-Sh$(TA#ZF-DdF-#S!F1QF*j`[rpcHA$5BfK``k9`Yh$$rJ#3!a!2)'9dER*
[B@PcC'aSBfC`!*!$)#iX1b3!!0!!!#rrB#""63!J8%d!1J#3#J%!!!&-"P0eEQ4
KH3#3#3C0EfjNBAN!N!N(9(9PFf4KH3#3#!PAC@4ZCA0NBAN!N!B)9'KeFR0NBAN
!N!F'4R*TC'&j!*!*#&0KG(9bC'&j!*!("dTKER9KFRN!N!J)4Q9LFR9KFRN!N!F
&6@&bBfJ!N!S&3A"bD@`!N!S$6@&j!*!-"%TeEQ8!N!X%5R9XH3#3#`C"G@GeFh3
!N!N*8f9`G'9YBQ9b!*!'"dpMG'pLCA)!N!J)6QpfC@eLCA)!N!F)4'9MC@eLCA)
!N!Mr!!-!N!3X)!!!)!#3!b`J!*!(!8je!*!$2J!8!#%!RJ#I!!i!N!-@!*`!!`!
9!*d!"!!2!#)!!J!3!"F!&!!&!")!$6ir2ci%2j!&"6iq2cir2`Jq2J!!!3#3!`,
+!!!"bJ#3!ei!!YYJ"5B!N!-F!&i!!9088L!!!3!558j86!!"!#S#[2rr!*!)!b(
rr`!!!BJ!"%5m!!$rr`#3!a3!N!8"rrm!N!-i!*!%Gd3:
---

bytebug@dhw68k.cts.com (Roger L. Long) (01/09/89)

[208 Setting and Restoring A5 (12/88)]

The routines SetupA5 and RestoreA5 do not work properly when  used  with
some  optimizing Pascal and C compilers.  Two new routines, SetCurrentA5
and SetA5, are provided here, and they should work with any compiler.

Changes since August 1, 1988:   Added  warning  about  use  of  the  new
routines with optimizing compilers.

---
(This file must be converted with BinHex 4.0)

:#P41)$)`1#jcDA3!8dP8)90*9#%!N!3CU3#3"(P*8dP8)3!"!!!CUA*-BA8"!*!
)!KNb-$JJ8f9dGA""05"KEQ3J8Q9cG'pbC8%e!*!$!`!*MFi!!2d@!!NGVJ!$A0i
!#BGD!eS""`!8!!%!N!-*(FKA6e*%68&$33%!Rm#+mCr#c(B!N!BU(J#3"KNM!!$
m(J#3"Y`F!!`!q!-J!)!"!",qq`IJ(lq##9-i!`#&BM)!+,3!3,!aSFH%#"-L!6$
5S`"Y!P$m#rG2R)"m!S`-1&)!aB#(!Mb1,*R`C%U)#FPi0"LJk0!6$b!Dr-M8*)!
-!5!a"G+dUY@Q16X!b0V8!c)!-"*k`!$!!3!H!1,pN`H!hYS!`[b&8GK`)F1P3,[
L!`!KBB#4!YB#-#(BV6biFMrDCDJ(`!B!M4mc$H(Y!,b%(a!)X#DB-&[$F"8$5*!
!d%*2$J0b*K3)J%(##N-E-'6Y'J$XM`%DV%kSi$@!(I@#,,YK$"5pFL%HM*Mh!XD
m4`R-fB[MXFZ$'I!q6C&`iXFC!cNH5-&3iSMh"d(Q9@6GfcEBl!QdI%S2C4kdHM&
H$,P(*BJ-HKr8)-mM+Fcc5`,C[5!2+)'!m%`G4%`!`KXe2+##22rSaKTT!*Kf!hc
dI20%2@m8)Fml6$b3!!#!!Mj$`i$TrC%#I0RYJ%!*3453!!TkkU(4`$e6#&-($%%
m8SFSm%!68%)FQTDE3DbCj9jZFdATf`FMb!!$$MSN-%8CG0#4KKYRJ"#''f5!)%8
CFp$aKKaMPKP%$3fmX@4C[Z@f'jlZ*4#!131`0KS!1J!J#!#Q"1"!!((!*B!*Mek
&`jGPQ-R'('pdQB3EFk4"4U90K$('Q'l1J3B,)&Ma"KYeY&&T%NQJ5J8DP6ia"3K
9L-P''Q+bUCX%#8N*Q`)1j!5E"X)#i%)#9*3a"KTZT$&'''b!i-3EG&3k3J`ce)$
U%@#+55B)XmVa4KeRS!(#%&9-3F8EEFbKBE#q,G[XXp&1@qfefB+`,3i`S0T%(@b
)DF5BRmS"3K0Tc$&''@b`F@BCBFc,*faq!UVDS&Si#UN*9eQPjjh*XR!&R''@i3B
)BZ64C4"SbP('(5"-3DXBClja4`)*")&Z(@f#%!1U-H5!!`i@*hX$chZ!!!-H-KK
"!a'S2Jh$e648$I@F4S$3a`iJm2b##JY$FF@k)+!`J`X`61J''hQN!))+,c4JFC1
Mr4QS4k39HQLLLcBUc+14LU`EbEj9-fZPjYBK,TXeJeN(((1DLDDDE,STFq9N[!'
#'pL#F-HEDi!!KlP`P#%(h+,6ZM,3CD4j"krUBZVUK(#)f8BDHX3*!K4K1%bYj@N
1!F)Bm-+4"KZUcq%##151r[R-)$6qq"bSINR(%(A))E-EG&4qCTVDciPU'$+EEUi
GRXB1!UdbRhmj(E6Q!B+Tjl)K1qQLdfkjrFKVJr+B*`FA(-i'p(*2!k4N'JSN+`-
-")!)NL@)#$SL@C1))#D5CBBKS1&-Ci"FTpc`-"$il!a!Si23L'Bd,N%[#'6iP1c
3&keaK8%-je)Kl#CN"K$3Ve*ZS*leaJ5jfG%2GlVMRHm#1-$Q'E!e`6))E$U3!+b
-$D!pJiS"!$6b0`!m!`$h#!!)rX+S!'5#F##$63-f43GcND%1Ba$6'p`J'j**X5"
eT-eV!X#'aB&J6#hB94""F!C@-5k(4*a$j1J`1I&GENeYHP-Ca*Hq0jJK@kqEJrY
DGVcN-8q1+aYL%,'A+L%``BI"@`-TarG(m+P1$T06i3I44%"&hJ&PQ'`PfPJ*21&
9bdf%$-1Bc$5'Kme"NF!mNjRJ!)GG63Z8e9"N)Gq!XfVC!AeTZ#(cR!Hp+VM"$'p
LT"[#N!!YZ+(UKjUX(L*(D6U*fFm-`9-K+pR`KMHNdiMUqZ(pk##UdX(K$D45hI2
54LPb13YDdKSH[l39!i#"!*`+3f(l"!Qj14,6Q#188`eD)$1*LFN1P5)$1F-!JMU
J5A8,)jM"%#E3&1K'"3QTcE&UBjS3b(3`0!A!#f3DJ#230!"*Z1R)p'LE!(M##60
6(DVD)-Rl[3%1D'LBQ*iC1e3p0BQp'aF6PpHmY*A""@G`JF$-KVDe`8"ZXiXB$h2
*[$#!p+%QM@-D,!S(p)A"9GQ5Jb)YUXmfpC1BjMSQ#0UJdM3dXe*QL#XSMdHY5k&
+CNaPhlMdL6i8ZJTmLS6SrFS!8MN-,l%N"+8Yr8I5M$+[P@f#T9cR10"C0HaqD6K
$Y-b3!&$`X8jQEc4Q*cm&@ce8LT9P`)1c($IAPHQZ$1G6S6k$QcT19FU5CVTI'aT
V*UDD9)A3$8--H9AFiIPe$+8$@KK#10!J+,+dl30"'FaJ"QI4iCa4h@[ZdV!l2C!
!XlJXNeNB91P$@LfbN68J(ZBLZEN!&l)1AheT62Gi"`C)-3"pi+NJITS)RMVLTjF
3kZ')@S%!q-#eLP`S#$lP-$L*!A)NV@XD&!CG3&+8N!#'9#GafAQ(U$lVI@kY&&2
6"pV9MR0AG,!IrC5T23!,'*+DQk5hqNHr(!jf[li,hKaD0GmjRKH(MS[Z9JNBcAh
qGCCN%'4BSEHiG)S5aHNlh4[B*d-cRGI,D%*IQZSU"qcf8*p0)'X[p38#X`SicfF
cRTrV#YlaXJP9`p3REEF*!P[PDRR1Ji1!(DdVjjfUHQa+R9a"#VFRHQ$"lVP#6Ve
`dc(NP!dDhP1Ulh46"[Ma#IS$`4A#N!#(T0eaU+#'63MmQ!3R-+(A4GJYBYrdAmS
&q!l"dm(K2Je&pa!JT`Ui+39bZS&9FaJ!3'M#%ka3""F`S@IHDJ%+JR#$&2!-E'e
pkkV59$Q,IRF01J!"%8#)dLXXVeT5S1DB-1@'%&LX2DBaJEDjlHd%F-pl+JZIYqC
dlXfUF!cGqji+jr6[dZ"4eEjC`CVBTmNdYHaP-D1HcFU!-p$Y,!&%F&BCfR"LK4A
YD"Y1B!AqB3N!M)$A[JDfX"p+E#4,XR,)RS1baC*V!$cEiY(fcE3YhJ&V&ad&!qr
fYmGGlK@`J1%*!0Xr*EeZ%`EBNMemGm8lG(&@ll'2rP@c'*MAKMmLmi-U,,+a3C!
!EXMTXq[AM$&dffeFrljEIQRbHB(G2'9A[CfFrDh8Zdd(8&FUl,9YZMF)mZkTJ5E
KcQNheaNmf`CA+@ahIPf$bPLRVdX01-P!Tpd`59TkpdeC$'H'EkAbMZ$q)[ke@dp
GQX#HH#q$9m!%GYm`8kr@%`G6$MJM,r5Hd%2NG8q6XJH"0-k![Z5AB4UG**M(&3m
[-%9eA%a0'$NKCMrB*CB0U0U9k+-V-dE+B@AD*B2-M[P%)44pk@5[YQpSN!"6'p`
dU"BR"6GP#MRe#M`9!$me!%lAE,#"D``)!"VJ4dKe"l+#,BeP2d036p8bDl9Q4e-
5F``B!!EJ4jM#+SX&626c@Q3J9I1A8HT$6@cRGLr)CTXNC0)64$66Bk+92@"bF",
R513$*R-b8%+!,HS#AHL%@)T9A)V8IYh6Gmm9Dl6hA$e815MSAkfR--($IQbL8S$
AAkme,5YMI-'hHq`PB21AC'Q#H,C6+FHP5rS%1R63!Qlb"Lf`JRi&2R$PIJN'!$$
eJ%Z3!&1LjKYFN!"6BA"6P*!!8jD`J$GP"Ri88()!6b@N@GVMJ`PR2TBb4f@#6hp
%"iU%2!Jh"rq%*Vj$AiGe@Ibd@&YB@R8!HqY8+D@(D%,h+d8R!6RP!BcS'b+3!!"
'8!91-!48N!!%6q!%Lf5*i&-jmFB%`hJ%[8B&1h!h&ZF"p'!0ab!$@!!,`6%FaA%
F)3!Gm2%2$h!i`&)@G`4"[X%"'0!AX#%!#3#0C,H,GH9,G+H*a4KaPeJ$+'!(!%8
'FY-$lQJD0X!d6J-e4B!$9$13!$*!EMLJ06#3!!-`3!0HX`0L3cD!KMCU`cCZ!cG
b3cIrZ"AYH#Gi3`4C9c1YH'D6ecciT9P0GNpSi$RSSc)RS%-Zb(V*`e8+-beeYAC
Pd*%[-*,3"@CL0PL&G9LLmbCTdQZrjJ6"TS0-U'bc`53@T`&HdS2fH)`eN!!!8#!
&6f!m4B!&82!%8N!&(4Q3!!N3G39R2M4!GHE@F-%h)E%Q2TQeK"BeIbV&NcaMPYp
QM!ThG9I*PQ$LG6lN1ITP6G5#B(N%P@4R!$`6PP23N3V!-dAJ"%53!*9EfC'jmC3
2b!GAi$SJN!!(jb)kCk*FJTNj6A9h8PLB91Ke9U8`DT!!3U#TKm$d,23'Q-$8KK2
b3`ScKDMLQAA!@*RNK[j92J&fCN2hKcHP!MR&!MG9"$RP8ll4"MNP"lRS(Lh!Lli
)M-*)M-+C0ML)M##JM%l!M%j!"A+6M-[BM-qi*hKM49K%'PV%4BML4@!N4Q68+'I
d-4l"%4%`!*I4!%d3"-`i"&#3!!4$%!%"3(2[Q!$ab'Id0#lEL3)0@LEG@32pf*%
a`$0)UA-N%$96JbSNF$82kD%*@30'!$B6@6CRXfI$`j(U@4Ti`iiG+C*J-`8PqBS
RU9FT5@`V@5NejT,I%j-P0C1G*%!fb9Jjb6af#6Br16j"59J&BeLR06TbF*3jTj4
`&9T0#B*i-`&6UA"BUC9FkC9J+CBY5RBUF*IE*R8*S*C@&`3``$-M13FjKQRZ"hm
ae))@LU&9'Q`E@T!!"lQK#ZQK$IQ3!#DD!'1$SVm62(c'SL$TSKBRN@@CTJA(TR`
*Tf#M54-AB-!8MadhHDL*+PYR*R*J@3QRT4EA!$bM"(NfU@lU8Q9U'SqC!*%jQ@"
UQ5"i8qc*0`$`RSB5Rem84Q1%"'9dRiA6%86!R`$JR`"+S!0DS!GDFh*J"+Y#6l-
c,Up9@Y1P9XUMFMad2hG&P-Mc+DKb5lb55m2R"&13!!6V-UifTLkI`P5FdNEMpfC
"TMamYN0)5#YQpSUcD(BIL((Z33%*-!*M-JDX`PXm3!9jN!!kPZB$(5Q`"%Y#"eX
T2(!`fq3#D1#`M8Tf&M#`"6Za)-!$P!CT'+Za'f*a-,UaTY'6`C9A+d-UCR)%p&4
0N!"UU'4$8Y086Ci+*pT8+BakXQ5AXN"V'J4JXafC!3N`0`Z6"aNS3*p8A2NfBf8
`G#TVG%QV!KhC!eG,,[%PBimMJkhRFIDM6&+fFQYR2a*$*R9JD2[8LVC("kC+GLZ
`YI`NHSV%+iT%ChF&*PhPC0"&"'h$5Qlk4&9E!&GE0krUN4hT!`UUU-1MMjkbY%e
l@+!8YBq$!X!M"fdJ"'b`"P$34UBM"UKL+dAJ2CJfC3AMUN0l%!Q`"h&V'Jl!-a(
UPQ3`*qQjZN+,Q#[,-qY@16e3M`KRP5L3!!)5HDLBHMa9+8m"pV1kLa%m%`Bb5dh
$mlXY%!-eHkLGie5h)k9Vi!,H1cH)ZlSb`$2jZ)pb)j`Sd,X8#UQ(QSC0G6UF09G
!BbE,'ll01`!*d!H[@hEACJGA`$M1!LqAP5C$TN+mH6p'G'0VKP*A#%4#a+pZjP3
@YBArG%aTS*1S!MT2PM)+8f1)pbQFpP5SH$pjd#BVejQI#6Y2G'd1H&-f!"GAT+X
M!CqQ)*r!@TpQK%B#-!!,e5@KiJEfFeAdT84D9C1eK'J5@`FV1&Rq9C('`dZ1@be
EeMa,4@ZQNf@8GDGXXPFpK,-cqlMBe,0T8km*&6&jF$jd9eQrj6e@6'`b!iVmf%V
*K'PR)&8SG@)395QmHC28"8b9Q,cYTM$#DAQBpeSIa%`U3dS&qbC[V%)bdelISe[
!Y-F`*Vh9)P,mp'6fBh`K&%5HP5eNd&SZ#EN%h,9UahDlqCPL1'*T3)-Sh$e$5VR
iCC+NiMPd)$fDT,IpFQC#"cecj)DHFlb6JiDNQ6j!k$E!2'+fl&qL`NM$`d42De(
FfeTBq!DmT9RRSM$"pDe4QMqPV$,cq!DPdiBT1#lU"j`03l9Sd4Th9!!hP3S1jKi
'k"ZpN!"6bA"6cC!!8p,!8aP@'QD%U`(!$c%-PEcD4Ep+Rm*URdc4`Vka0+3XEfm
`ZG(X"TC,4*L,2T[EZCqV-(!JZSdf"D@V-(5CZ[Z,[kkEZ#M`[0'VXp4V[A#+[F(
FI88T"phl[5bkZ[LV[iQEZi0#GSblS)qlMj,V5@!#YDpidCV,ZCi,ZKdpZL"YZL0
0"kTl[kfl[l'E!,1V[VIE[$b00a)3d&[K%9qG#Am5-QDGdkql[lZ)FK&0e*9le%d
GeF6ENH1lTU4m[N+)MqT,[#IU[QNQ-qac,ZG9[ahT&`cJ'JKB'ajK!er3f)lpf*!
!(GQ52GQ82GQf4RD-AGQD[GQF(GQAE4T@Y$'NJ3f-)J!3B0TQ(6)fi!"B-!)!i!%
e,!)HSGJfS!!%i0S"`!5YS33'i4UZB3-,!!BV8""B!!!i`0Y-832r!!SJ!!!GB!F
5Y0!2N!!8!G!"@K%!ded3fBhG5H%AfrhGhDhGe!hH3j(G![!!Jl!9$h!Sh#hH"H%
!CY(HLQ)@!Z!!KI$Hp'hIq,d9$N!)qchIlJhJ!JlI"A(B"BlB")iE"#lJ"JlJpAh
I!alIfdhJpHhI$Zi!l,hJ#l!!"E(K(FlK!H$K)3lL)PlL*(lL(jlL&jlKm@hL+Zl
L)rlL+"lM0!lM#@i5'2lI-,lM-mlM-[lM0GlM3JlN&*lM!0i6$S!)3k(K3alN31l
M6NlM0jlD9&lP9RlP@*lP@VlPA0lPA[lP69(E$1$D!Q!&dCd3i4f3!163h"jJ"YK
'!eb4&$B3!93`h"$!"mT5%NR"!J!!h+fp&463'NaJ%%Qa!hd1!2kb&FfY!S-1!%Q
K"(dH!1"!jT!!cJ#0RK"C!!!e-!DFi0S$J%#bMHB!N!$T#%3"C)i(!1"VSSi'IEi
!1%$QaQ$FMCi8Gp$U9%$QrL$VH'%)V3i%RXi0CqlS!-$V`-d'RPlFPNlS!&!*VBi
'RLi80M$V!%!+V3i(VVd!X4lYH$%,VFi$VPd!8K(U`XlY`)d(RTlVb3i!,3!!`Y$
UI1$D"+!!!3!""'!3RrB1V3i)hki"!'!(ZZhSH[,#k-$Q)!-%F!l`(+$TB`!-C-i
4kEiS``hFL)$ED-%!5d$S!C!!!kh1#0p1#`#!!8b3!"1,-K,!$3RIcJbYFI%!B!3
"B1E!63RI6YUD-!!'X5LFS2$k$J!()!FTEa!XV`TpVJ$Fi0S(i!F"`!`KX5LA%C!
!1Cm!PDlb1"!!Z3lFS1$D#@!&!3!'0&m@!S"!`%d+VUd!YY$cA%m%VBi+BGrZ&Nr
S!L!&VFi+B6m4&K$bA$mA`!d,B8m1C&mXGJ,FY"$fPh'X05m!ID$`a($Y0%$f$#!
!Lp$UZ($Y9+%%-Y$E!R!*VFi,eki)B$(jA$m+VFl`!,!!ZN$f@a%,V3i&VMd"2"r
Urr!1!Q$k`-d&U8m*C*G!!3$FKarkZ5i608q1`)d-VXd!CVrf8-3"Ylm!c"$m&5%
$R'm@+($l#6$aVA%Sa'm%N3lFd"$mMK!!XV$eCX%(adm0VZd!9%(mCU%)aim0ikr
Ea*m8Q($l%1$XC9(F*%$hCR%+m'rXCB(Ra)m$!&!,m-rDP39%%!"SJ2F$!1d!rY%
"erB!H!(C5hMl)!"X1SlRk,i#(r"q!H!#`$pcaaH'RmTE!!'J"-#rGmFA+J),L!%
'!36#!2LAmbK!VZ-"+$$d"B!G!2m)J@Z$!'2["+E!!-$bE!!%N!"q%%!FB*XB#!+
M!2bMJ"&!YM%!)KJ!Z!$d%hm!)!+iJ&6("-m!r$0j84$2k3!Q+!IJ(mb,JQ12"$$
"2J$r-)&VL`$DB!MZ3!,S!cXG!*!!!2aZ#ql!53$rUYiET!*mJ3PkJYZR!)L!Dj-
!3S%#a-"&N3VJ(pKlJkL1q"Qr@`$rd0iEp'qU!!01!rJ(p`$!"*L#a!m%KJ2iKrF
XBD(!!8b3!"hF2V#3!2U``9PJJQ%N)#8r5mJ+!)!1$(d#3!$![lph%$3"!"!#4&!
!0!$iprJ!!!8J#dX`"3S!$!$r-*m[*!&88"L1!2J(qLJ!cj1$X0!&`,rF4`&DS3I
)K6N!rJ%rAkJ-!!!0b)9%!2iaJq%@!,i#%-L&6`$qC6rEi!0@ALlX'$i3#PB!riB
"FQ%CJ(rUccEF2%%iq1!!r"YkYJ%@N!!q!@$dJ*XIY!d1N!$em3+#b!GPRfh`"V8
2!#5mVH!$*jeYS!F!J!qS2,2!!ESH"#!(VXd#`!'baq&8J%G%"b%4ceh$&+MT2#)
l#)QfF#@'2QcM%H&"5-3&L)i)!S!Pi"(T38JdKF&`*PS"MiJ23U,HJiBF,Jai4(l
JfLl!T`Q+()i0G,d)B(-!`!@!+3j!*pk"UAMEV+,r%i-X84"-4363&,P!@G#*M@!
UMMQVU!C)JNl%"&-4!M4&@G$RG1)SQ)UQcLULJcc)%Ph"9-3!6A%[3%8!N!!,TL)
(F'dBJ!#i4CC)$+CLSJ0jCj%P2S1T5!)3SdDSKb`4*F`j&)!BHGjJ,!G6N38J4Mp
!+(3L2*L+-!!aiN3CS"2h`95N!BK4(Cc#(@J!TZ+VH`SJ)b[@[!!3!DDLYhX+L8m
4"S!2-"9ph91J#S"J)ml!UAJ3-`!`)(e!THXY!#6JfM)!bK0hrM!*6%8Q8"hGJ3!
i9N1K-!)hlLJ4C8#`@a6L-3&X3`k!"c0K!$J'A8m",%#*#!CZ)418"Pe[4EJf$L!
+)U--l!Ejd3C+4)()'RFJ1XL2S)m$#%(G+!2R3Aa-M4,a-N"&U6F9UD0%I!K))"F
QJ+Q)qTbEf@13!!Y!!&#!VZF+A9X(F(ZB%4B5apTQ)5%!d)1+!X!NeMB)3!kP!LJ
8KM8J2al#$L!3Af')"!,am6Gf!'!(!i8K6e4ZqUm$B!,r@#b'BQfVLJ%J,#J!P9F
3rY#G#!#3!+iR*)3#3"HeC1Kl#&jb!J!p,dN"!Pe#8)bfS9#FbB63!GSLU1N!0B`
h*!39m'Q%!$q`"J1)!!!:
---

bytebug@dhw68k.cts.com (Roger L. Long) (06/28/89)

[Macintosh Technical Notes - 208 Setting and Restoring A5]

Revised by:  Jim Reekes					       June 1989
Written by:  Andrew Shebanow				     August 1988

The routines SetupA5 and RestoreA5 do not work properly when  used  with
some  optimizing Pascal and C compilers.  Two new routines, SetCurrentA5
and SetA5, are available in MPW 3.0,  and  they  should  work  with  any
compiler.

Changes since December 1988:  Removed the sample code and  expanded  the
explanation  of  these  two routines.  The sample code in Technical Note
#180 reflects these new A5 routines.

---
(This file must be converted with BinHex 4.0)

:#941-M!i,R0TG!"6593K8dP8)3#3"#"R!*!%1)06593K!!%!!#"RFNaKG3%!N!J
#(e41,M)`1#j6CA4dD@jR)'&ZC#"5CA0dEh*TEQFJ368!4$MF!!%!5D('!%E)c!"
+#h)$FJ%$!#-!!3#3!dQKi&G28N40380"!!#JMc,jS,"SCJ#3"M,F!*!'(q%!!(`
Z!*!'FNX!$!"i"#!!!!)!%[jEq)pI`B3bQ!#!0$(K$68!S'4-#--3!!3!"L3%J)6
N5!!#Y!P!m5rF2h%#mJN`-Z")!43$(!SB@E,Nb*3V(bBN-p*JJ+0&qb3d#J!(-K*
0NF%#0'+N!J!C!P!m#H5N9i0H`hS9#C9XdB3NB!(S#S!%&3!8!'!)J1ZI2!$dl!B
3jXq%3SB,K3S'%,JY2!!3PK*$D4H!LFCjjHhY1a,`2`"B4QBq#6B&&`5((3-C`+(
ailZ4pjkm$$LK!!i$$*+3!2G$aV`(11D"HM"&`SNIC`cNH#!&3iNM`"m%QIFP3CF
(-a)+"(!9VN*V!*)-m!@J3C-J4j)-J5)q3S"rEJ$%5*!!!)@G0fR)T!!aT3bG)$9
3['&$"Rq+(3QmS!))FT3a"ae[&!J#(!ADNFBEGF`"!Ri*U2"#!`d%P&!##9P38!-
'69GGA!&NU#%!$#38Ph3*M3L!#rSd9dm3bpaJ$#MdP"2#!b2-md&Z$l$`3"2hD(%
#2@IN3-'3!(J%SmSB(NkASR9ap3$2*`R38`3p0GMM65JR6&&2#IG)-FF(+0!6a`Y
3d-2QE-4J813,+Fcc5`,br+1#!rDmH3!JFbKh'jk[[!!20#Gb#)#(-,#hAhmeJ0!
$IIEKKm)4pMe4Kacq!5JJ#(2B"`+#)%!Sai549RKKSKd#--59,mL$S`DJG#&!,)%
3m%8G*m3!L$hIe#()!f*!F-mG+maa+`*[Y!&"-C%Jm-%CpN3MJcc[%'SSSU`Z#N!
4X-VDCakh'Z$1+FD%+3mi$e"a#b!Ke(M2"h9!J-F$G33#5D"8F!",MM['--mM-'#
VlD%X!U#SKdD%#dS4CFi"JCS[2(%2&I4m8%-"pSK`"Jk#3V'#'!rFJ3B#*35aE`0
&b&!!0#Y!m)iB9kU3!+H*dbd-J*@Ia!T+c28Bm%3Ep+KJcbp#hR(,-Rq@-dF)N!#
8F!!-'4I-,K@a')$)"fhBSm)p@-T6+-,GHLL%`a5hqHDkl@CpEVT6b(2[FP$B!SN
p)8c!V"dC6%h0&#"d8I20#H[mJm2e,%%""'4!m-)G8+!4#,"L[*+(VVck'ZNLApc
aJj!!4dL3!&FG6p!p4YKM)jTcUfIh,'[LH2`C-aX[e+%'!eqdSBi%GF!!XCN3M&b
b(U$JcB!DSAcL`Z$ri,aKUbH`&mB4E,`K4KKX5!T##c%!b"jlRj,a"UM0PJ(#(3Q
ZS5U'C3-!`T8*A,P(1%e3B3r-%$a0a$eHJ'$#)fZiacHFTl"@e3!HP8K&aQS`MeI
dJ$HLdjJm#R'a"FVM%cZ3!&mJ3,"!!BJ-!Qjia`N!%33e#1S,I8$BkVb9L-4"i"T
)!*8J0#@-hShX9JH3!!%&0#81c28U!2F)a$2U%!*!i-'$'qcJ"pfJ$Mk)S3irU!B
J,(Je+&4#!1q+QIli"i,I5F`BURL%$K$QJB4-+5j%Q",$cJJ!,UJ4!&jJ)c(S-3&
cS5Y-Il,HVN"3!JB%S9KMb1%1kp$$AI8+!IIJ!Lc3B)!(@-&06"!!'Sl'JJ)!!3c
&m"+BTZ$$'(M3H-L$"$9bKi$F33!0pjM%-ST3JhYJS3$K-)+kUQL21)!JCN-N`J3
i+%&Ja)b*6ZcGX95"Vd!dd%35-+1+!'#+0k+#M9liJM5R5FeU@[1Df-bQ0VI*c@j
+-d-L@QD*%XC'+BQc!CFaTh8DN!!%0p""$QmJ3ah'3)F(Z3'G*h+!38L%6h95)!!
4S!)Dc*F'0l5!$38ehaRB8!Ic`E-1pA5$J5K&KcV!!6mJ#)-Eb!!#+4J)33A#D"J
8p!Bcd+%-EJ""K-V!86(N!34MD"BFf'!IHa))3K%e%!Y!B!8K-'&8BCM$'ZD`8ie
bY+!RPB-F,%S(%+$"U$59Ji6Z))Fdd1'N+5dS#)D3!0'0JJ!+34d$pNBe[M1%3DY
K'--B$#3K8QNdSh#BD4V%@XmhZ+%D%PUSpFCUKj'Q)3aLS1NFA!!#%&6"$@C)8%A
G%)D6XL%21kA$3%0e8iJQ9%)c$F0,c4$8TKS9"09l!fA[B&8dM'UJS+*$@YH`)2L
iX`abF)'*bSLLC@VJM5&JS`RHq!)fM[0%C`b!*ja3KM[!GUGY5*!!qHE`"MLJ)3d
(QQYM@EV6jYDc$@R33d(2!&1CTL'U%N*"'9a`"KIXY!P3Z-*@36!$&m"J2U4P3rC
+LPA3PL%-GM#I'HVJ"RVD&!iM$8-El!0E#GReY-Y9l4KBQeCicN&#EDJ$'qSj8rh
belm(&UYmL8UJ-L6A3@lJVQ600p)ce'(!lT43BNm9U[c+BDcll@pGh6$9dQB890Z
P+3J+HU#PBYJ0K!@"3+',ic1i)3eQN!#Z1arEBAQZ98)a*F0bXdYLVjB"$f8BJf8
2I0db&,@T)`E"PH'!8XU@p-CcD!2fXLGJ#,Qc9'E)+"R)B&9lM[9!UeAT(-*`K[%
@0JJ5#J11T5aQ-jJKbh5)l(-0$)IVCVHa0K9$JF)`9!46e+)LpDT($k4FM#kdSE)
&!'f$+`Je"L!4`A@%U5rK@`)'&`P$PK!9XSb')fXB"%ji`dP")18jM+'UBTLSS!'
FKP1GZD!(65J)2Ze3R&lfI-mGJfQIQPm3*&G"-IiapUck8XQqY6i9[@LN2VYTN!#
@!6ml*DeNF@TY5QmhS`mqFD2Y'@JaX&[3-@d$(,i,@lbQ0Xp2h5K#3aaNJ4USfCD
9D+!9a+!h1%M+(!dUQP@ldC&b&-"bD1UC`iaHpB,9ef0Y,`bkbY'1VeIN#eSYRh@
kij5'1FQ#"F%6TP#&HV*KX(!JZFaTE[2"SQ'R"CS$QIfEhmH'HY6,$--EdF$'0Vc
4$UdQjcQPEKd''&cQr!("&63,cS6SdcUrp5F!4("eC!rFI&(@Ei)Z,Hlc"98('8T
QEDe6J6GbJ)d*#%!hBM15[!Y$!#B![&J'Ij)#*%!+9*J#!3eAMaLmB!JA#i)-&RL
P*Z6PN9p`!6fHN58*2S-'mRM%F[k3!))Vl3"P35K!+N+'KJEFB`SeK%%3(P%(8DM
`HGl+HcF1dRF!Y!!!83L!$!)!#`%F`2M)2llbNkm`[BHNphi!!#d#i)$N@hrjf2m
3eIQjIHZi"E9Q9hED3E$LMRkddj'k`p[MVNbk[p%$H(GqG3ViqbJ!S!i!b!3!HJ'
!F!5J!!'3!!)"d!3"%!I-Th[2pcbrT`8!J!hApi$CKi!LSB!!`)!1L(d3b(aKehl
m&#)Fq#%li8r"a3CAeh#"j@%lePC2e96JKQQ43P2i09&KpLJJd&F-C6jRKP&FKPT
iYQ"&T@RR&e,M&Qm$TS+0C@Npb&T`i&T*PB+Tp9hCBi2a%@4*%'GKeR"Rm'*Y-'#
RJPeiYJBSa@3DGR2QafP#H$kPK9B`Y@BX"5Te)'R1*P'+CMiff&#RGB4%YS4aeBB
PCB8mU'!-jP9Qf)CDK9(aP6h"YQ`MG6ep&Q42%'FaY5QK-SFJ)!eQ*3H-@!E6d&d
5eP,,96k5p@l**@8[jPJ[Y9,la3BlK9"JH'-&8P&bN!"5B6"R36GB'5)%(dJ"El3
"E%3$Ef3$E*3%Eb3&E04-VI)+`48!TMB!83GF#C%B'cKhLD%"9dGFGl"69+"VDrC
53r!'qk&eA*G2qk4pcJJA!@!09mGF$$9MC(9D4%CR2FC@lfD#008'6YK`$pH',M8
Uk!-#%R8(j(GK-bBK@X9akF9HlJ9DD5"TIX9bi$B%Qe)JlT4T(!9Zq&&`i#GPJKC
Xcq99%I*Z)dCCG0#2$j96"0P@C58UB4B'FB93G'92rSCZ+IGJ1`CQim0F!pCb5E9
8M9CC1C9Zd@CDKkKRRjL6HR8p0rH$($9L+49djPD6l6L$9A8'"69@&ePB3P!'+fB
qH3!KDjK5BdK4-YQ9G9!0mZ98-GL1e'Bq+pQ5dM9MrMCTfA193VCS6QJpUT93,I9
5BrKZ$aQ4+(8IipC8EQ"A,B"8X-@6B*B'!aCN5!"ECH"[D2!'!'P9S$+CRAJqk40
U$$KhF8%'E`3(E&3(Ek3(E#3-Ed3-`D8#TXB#`68%TSB%`8@D(4)!Ga"FPQ"USY#
-BJF%PAGjp*!!HC[AH68J$mr3!U%hHU@(33TJ!IF3"USA-P1!!#E`$'ZJ'r4J"-#
a*&G!2'0L$bH!!h(c!9eA30k5!c'5*C0`#*%`*$GA!SXJ$m"3$fA`#R93,BiN$pm
3!r,**9iL"RmJ"RSJ"rF!#I6`"h@3!!FD-!FBJ$"badB#`!!l%4F5`%BSN!!!6I!
%9P!%,X!%l4%%0j!!!L[!!K5b!kf9Fc5SJiEfE`Y@RMV6!RShJ3Qa!4Q)J6CUI'a
d!3PJ+[LK!j2bPdS9Q2La!i[A+LALJCi*!1S3DfYiPQ3Q"b[@"Qh9MpNfN!"8f&4
$f@GJKPSX+9F[D9Fa@3-lY@I9CTPUf&G9"9JdTC5J)LSB45TYkD@3!!DQ%P)p!$P
JerC54iNp1`@436U40B#4*1D@AjT53`PJ0"PQ35GK'KGR3#U4JKQ9i2GD5X982TP
3S@B$(aJ%E`5Eb`5DV@)'E23)Ei3*E$3-Er3-[2Q"6q"0V[UUX2UUl#0f%d!2%#)
%X3!%p4!#d4!%22!"Bm3Y8M+1ZLHM#P1Mb+TmcEGl-XSK#pL!bATpbfUX#4#Y0kU
X#T!!!%U!AKrkALlD+X9k%Y9kVGEk)8Kk4NAU,6k3!!"TB'6+Y@Q-kU0LQ4q2dLN
*X!G1U9bS)UNi1*991CFed!IIkLdP)K,q&!#)KeTK55S@'5P2'U961MkU*95$99K
*J+93f+C0pDB5bk@db&DJ-R4)PJCYq&Q[Z#NZakAd9!GM0BYN8)XYKbT"PJ83BTE
CXe+@PL$YqUrlkV)`5bTKfE$3KP+@KTL9fT-PU@a%"PMX4LTACP8BZE3rKSCRQDm
+3TFAkfrB`e`hGJEHH&3DfBk6aP'c*Qff0PDjYQXM%!-i!!0!19HQ*@A*4@2[0&d
U5'3RCECT%!GfU&95PTGX%'T1m)%-m%B4`%Bcm%Be`%DLf5Tb`%D0m%DNZNbJm%D
P`%EYm%E[X+T*'SeXe#kSe8j*a9P24N"IahhP'"Ga8(D85VS69Ak2+U6MjP80@e6
9%f*S+&N)9QcG&D4#CeGdKVZ-@@%STPVX+(&cm)C*+e&05SE3"AF*JA6@-3&[p!&
X4!*[P!+Y&S)IZ!!Qph%DjQVMk,R,*!)*B!49i!4$3!9*m!413&&q#UNBT3-J`!4
fG3DL5k6Yi`(XN341`!6q@`3J3!)b8!3i3!3l4F!JLJ-*$!-j!!-dS,mVj#(NDad
YF,lTZllYqlj#L`,r1,reHlqL1ardDlmKPVrTkL(mQ`$q#m"1)-!%E!3dJ-!$$!-
f6!-*,!2iB335M(X8l'V,C!!Q0`6Pb3$M#m6@%3)*J+LhGV[F&EZ!kKl`)4rkZlr
XX3FJ!!0i8-!([&0DV--h`-"CM!F1$-%Jd!FpE*irh(hQbm4MjF6c#J)S!-FIA!2
cd3-$Um*A2-Bb)--dV-8f$-&H[-8lI-CTV$2KfRI@@U-IBV!I1+aJKm38m!q@!!!
5!'LKdJD"p9*-S&%QYR*&I-6G0`TAPeMb4CR[&P5C[-N(jFNXffFe@'!f4@6PYfj
Q&QGN#@hM-e,Q8jK0pC'iLfrH&99V#'!R#'GS+A#Lb+KT8''D+3G(C9"R&j!!-NC
[BcT2TL9a3``#-Z"H,Y$0NMbYiVV)edU1BLH"[IHX&dM1iUc)j2V1aZI$!$!$'+U
K(1UK@[DRJNQL0C!!!#BD+KXE+D4LTpEQB3QLTp@$P#RFcKY#cK$S'2@mS4fD!2%
VZrcXcaS,8i$jC[L4aqDDZL2"!JdEdIImS5%kSN(3+2qFPLFELh,fXQcPdI5FS4,
YSHK'!bJ!SLQ!dB0B+PNR8LSQN!!fYDJ6YY!U30)6RG-RIG(rl+B#26k)'LSF9BG
Pi0'*h0$`r-iI,AC(#Y*F(Fl+34mLLlDk9Y8*FlVQc)%#)!e0S&%[C9f-Q9h[PQr
l"Pil99"M`&$"+f+SYFfI"EjM4GIm*PA)T9N,!P'@jV-JHfD#YUG4k&GUDMiSN!!
',M"H439D*8CL5QABDeFJ-3A0mi&8ZpaK9(NJX!8#`ED9)%#@Tl+`i`2&NETf$8Z
&INKN6l@(0(EArC8JRYe8"A*S%[PNlFMDbjE3Bd8'M59SD[C5LGKR%P@+,&9`Zr`
HmH'1Q!92*pJ'1jA,BT95G*D2UfdUhD9[0-@1bdY3lL5ar4JU'$GGPkT`p&XUc%X
U!+e51@Hb3@Jq&#RIE$NqiT2B+a[B-PAH0S8qFV!'3HC4`0f1C9YVdT8pD@XqDpZ
f1[Gbqf'RFae2bb9JcPaq@KT4I$fSFJUA%Q+)ck9MD*99P+UBlqeRGBP`*SRDC8$
33jQ)BeLb6@@d,0jP1KGK"j*4CjQ)"FQ$!SCf'YkQCe#m*UTV!b8(T$@*)+!'mJC
8arcEN!$CAbaR-R",P+K59!T5)(aEE0'G)B1ET*jJa0C"#Q`N#frN#kIj4XF3A)a
JDUUQ)J*![4dL!(9Rjm#J4J+!UZH%If*h!`P!h4a&"'r3MH4G8hBP"A&B"LJ!9R,
3"N,!"QX!"Hqd)'+`8c0A"%V9BFNlB5Q`d!0`V`YpeFHDeBaF`45J-k8ZX1NNcp'
S-dVXaP%ia5$3"(QJk"8fBikHF'EG2V*!$cX`"V8%#)I!!a-6"-&!18XL-*q3!"Y
L"!#lDJr9m*b3!"!cKU"*$*!!"4!`"T!!m!&iB!ijN!!"Y`*%MQ!+0K!Q,l-#'1!
iN!$M44M!0PM$,,Vc,*%`0605)cF#-$cL)lN"!%'J$4b!!VF5#!2`!AF3-[+1,4N
b*@JH&hHh60cJ3[)13Ibc3-*"(-B4"!Z8!&!3+IG!1Q[J!%83$NT3S2H`"a036*!
!F#`V8%V1iJ8RB!rAF!qRN!!FNA-Mi%i2-*!!5GkJ"a6`##j!l8m!16&`$h$3m22
TH*!!4`@5Tr($d4X@"!b0ih"RB!THNcp$8Jm2F!A3J5d&!`cJ[J)IN!!(#&!,4I,
b*&mbFJ!,Be#J3#rd$Tm3QTUN$I"'ZVK-'I"')X"'TGBUG@iGNe#U&RS&9A9941Y
51T!!!%'`838#N!"6-&$A8jKhi2KeB')r(J-jJ!-i8-6,p!-a1XkUAXiKi&%1)Y@
SR3H0V`5-DAjP!)CcS+hmC6kFM`-j%-iI3"ZfJ4X0P!#0*`*cB!p`!1kl+JK8-2a
`3(R#QK!5F-3J)ACU("+QAMLYiJ$X!FIe@J1(E+3,hDUa'[lL,rlKM1VMkY$C&ha
l"aE0a`MSVi(Kr1Vp*-pja`pmYb%"B!k%YrmM`8CfF!81*FXd#a5cP&C3H+X$S%,
G5*Y5i@,iP6mU,LdZd%J)jR*J*-i5HM!,D8hjSr'KCK6IU6!C4dM+&*hQ8Va!44i
`EIBSPkf88(21p!ll5hA[6eNYKF*9%'LJ-TS5K'F#')&0-@*1"3"i!HPThpN)(+%
MrYd(Q!(-!A6iKZ4!"@M"VV!(Hq!"$)&km!A%4"'`"pMJpL5T(&!+&-9)`!(0J!"
8K39!&%4!rrZ#Z)!5J!!!m$)!!"U3!!3')8@N#"b`#i$!'J`!V!"&`-(DJJ'D!Lk
J!bZJ)-!!!+!#pZ"*`!(%!!98K4(!#-C13QK`C`[#P683X,CQJ*J#!CMLUV`EJI*
3cS"T'3*9B!TN)bNerj,8mk!#,R!R(!!!X!Uh3!")"qB"&!!!35!,'8%S!!#9c!!
8J*m!!fkK*[J)ri!HM!30N!!3C#%Q-!KAB4@f`PFS%LK!KS!"+!!!f)!!)!X#!$b
3!)@C3"CHJPTi#h2K,R30[4!!r-,S0a,X$`!`KKN#!d4$$J!!()!#D'YM3,60JGD
$$AdK-(3(jE!B!J"-S!)`3,ZJ0C%3ej5e1B!0Y@%h$!MI%#@%`h(B%%B#'p#(Q#$
ZV)"im!%f!"%S!b2`53NCJ2MJk)0&@8)CTb!#J%Z`#RH#!&L$2U#!q)!!N!!0C'%
MF)QbF""F"Xj!!jI#"*J!04!(hX#F@"4Si!"S!+8Q483S3F!6Cf#+f)N"i!%m!*l
i%aP!i0Z*c)J3X)qG5!!B30iMLNM4"LT&RPJL-X41A!S,B!%8K,$B%irL9+b*Be%
X'X@3!0!!"S%0G!!1S#$!aB+`&D'L9C5+2$&#Q3LZ5"EASJ"SLhNaljA&Y%JB!d"
IC)TYd3BUaU0B&fRJAcb+Lj%VfN#bD"M&)P+NM*3a-Pj'bjJCMb*QY)bD-63+4DI
)&cQMD5b-Nr%d9NE8#"PE)eeFLMX4!9M&8J-8VH*JA)fV83!X!+ci'3YMEm50[c%
iUNEKk"[9BPiNM9P4*dE'YCJFqCpcI)l3-6T+aqP)(DZMGEb1f$%lDNFF-!a333K
S#c,!%4+'2*J3`#!$!!-!S!4-`rQ6)Yi#$XJ&+1!lbM%8-3RB(hTmMe4J$BS!BLJ
#VJJ!`)RhF4H3!)"!+!,3!!"!!Iia4Fb"TM!-`%&9%!%8J3(8aj(`"jT#-i!!Dh!
%D!3cU%`U*!l!"DcJ3I)!!-!#*Q5+@!40)4G`JDS3!Y!"!*!!!4-b)9`#"NN+-Q6
4ij!!Y@9'iJ"QJ!2@i!G3"I64)2L&8G!8GJ%1L)BK!#5!!ll6"j0"8f!'P#!DJS$
SS`JQJ6)*"dm5%1K(DP#"BL3!D!GqN!!@V%%3)""%J)RmNNf"'-#!UX!"ZS+%M)-
!)"qN5%*3&3b!4(L6!1!"r*qQ`!%FC%$)$"L!%Z`%)aBAGL3[U*0`)%LQa`#`"ZN
J%DL6I#!!d!#qBm5+`*0%!eAK!+J&20N$!S$pHBpd)&2bJJ!!$#KP!(!%$*)H9)8
%`!F8C3`)!,r`3d+$9BN)!S!D-*A,J%'Z51T`&r#N%EX'6a)E9!8&i!m8TCiF"bN
5$)c"Uf!""#@+#!"hJ3kZ53#`!0BJRJ34a4)4!S%ab!+D!UA8M8q5!e3&$@!(&#9
+Z!!-NKfX33VJ)84!$M!)#d!!S-XG14mM`)K%!Zq5@JS!-iJ$1!!f@)-ES&Xk-,!
J!(j2[a56!)!$*"-c'3F,CTT%!P9K!h!"4GN!"%!1m)1BS#S`!"d!!(6!Yc3#$*)
U!)!4)!I-T3#3!!*2%KfX33e!&0dP[$bC6D%$B%J!%!'8`B[-PbLK#ca*&!!`V`,
$4"%#3'Hq4bC3&6,!a-56-d!!T)'Bb3#U3X@NKRbRqR!#2XN0US)$S!8SBJmBK1S
$*$mN1V#D`#"V'S5PU%mq*"q`QXbJ,6M,&0%"!J!La!"@mc$JbDiJJ$iN+,#Dr%!
!6%SiQ3EFjM#!"98K!Ja#2*N"lSrEC!DS)"!@!)jT#HiI!(!%IT-3@%YF-(E1*16
NMPmcBG)!45N@0B(IK!*933+B3CFj%NU"fp`&1`8!D!"58$RKT1RNMQbJ+Pb!4)N
R6`!!L!9ZN`2!Jp!*"3)!#D#8$FKY%J-H8"8Q!"e3P)@6(,M0A"!m$S)`!!"i`((
f!lH*#fSNLUKN2c0&6-mGb3idT[l$N`XJ!15G$`N1!L%"m!Jm)&q'chq##$Q!q43
$E8&p"S!2i$Bl!0b%#kD!*1$-!+!#$LFj@*P[)A[b6qS*#DS#"F#(5$-!6--G'6[
KJMi)!+6!92E0(FN-US)&m!5+dSM9JF0j0aF&N!$%NhSb%2M0M,NSE)(UA*YD`@r
#!3Z++!KR!1!%ba0L,JTZ!!!S`Id,!,@!HK)$DhNm"@J1IBmX3'0D5a-C!)+"m(b
8!1!#Y%S,-!N'C3"S"SH6'XK15F!j@H,b2*Y*&)1b!2QT2,NM'C!!R6B6"H4,)rB
1$ZIp[!#pFN+'chhJ0TG"ddbLf9*p#J!$N!!lb8&9`!#D5S`f622`)9@PA2!#'93
!Y-hh#$VP!ND!!%d8D0C0CN"#-B!Hi*`#S!Ei68j`4ch#&RfC31"`6NX-)!X1j"J
9!%[!EdT4ZD!0)1N91*aq%J2S[dZU,m@!hjb9@#'Ck0&rF!X%3"[)RF$J$M)J*JS
R83)L&)0`)8*k53Re(NF19Z#B1&)1#S!2L3Z+C[6K!)Nd4@#!CCS,YL9@q)9iXJq
5J'@+#eBS9XLIVZ"-mJ"ULJ-dCVI%N`N"#5a6CX!(eZ!#+*DN8bbUdrG)"+,K!UK
N4N"p!S!TX%b(!6*BQ@R6"qK6,l"-1F!1TCBH!3+-83#3!!E@+H!-#$L!FpkIJUS
Z!F!'`!Jf3*m#JRk+#`#Q,"5Sm")!,!*ZbJX!TMF!!$4!ReS#ELSji3)$SJ!i%`#
%JRkU"Z&#HXLH-R@G-S,3533b+!"S"GadGbE-Y`"#!8!ZS+EL-Q'L4`f`0J%!-ZL
Rq)"02P)m@3B!!$8SU"8dB4U#!I!lLd)1k+IrNPV58!(k9AHN(k8,9E3),00QJ!#
U`JF`S8*!IN+"Y6Sb!F!(`!IY-&pDJ!#`"IUTXM`)Je!'b%m$Y#-TUIZ)U!j!I[)
"DSS)UJ))!*N-3(iHJRk+"4`VbQ5Pi9-58&-+%!J(J$hSQ2+c%e"630"C+5G)TCB
"!"@X8bl3@4rTD3fIXk#ImS(11L*ID`$`"G`8(`4#!H!3J)$m6!E,Y!-JJ0fU#`"
!A)@A!H#U[NFiX&YET@hp"[e8U)S!8C!!9j'V1PLR`1""UJ8-)$rV!68PRQ-('D!
)1HT,F3%bU!S#!"IT!$ND,hFN-3L%!D"B%J%jDJ'S+3fS#J%J8DE2PaN#eLNr@)6
4*l%56"D`6*8"-eLA%69l#J!#baf**ST)S`CKQZ+!INS-&Q%R"33QdS-8e2q+&@K
RKZ8#e,5bSSK5LNiP5A"e(rp4'*V*3@PLhb-#L)B6S*4UJ'JU!1J!0@8!Dh!#!))
Z56!h+Jj3"LU6CMU%C#S!I#`a'*!!0*-3!!!MB#@"T[[ENI!J%*+!FQN$-L`Q@+G
i!,ik!`!!!f)Nra`*db%!')14!")#3Np0#'@@!848ef"'LQ9#3!L@M,E`(VJ`09Y
%3XJ!"K,0hYP@b@C9jjK0'"XJck+%K-!"*)+HG4qEmmdQ""&3Cdr%#(!&)`(1NJ"
"'aI6idQiHc+!'`5!&I!*T!%bd`!!!:
---