[comp.binaries.mac] Macintosh Technical Notes - 220 Segment Loader Limitations

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

[220 Segment Loader Limitations (12/88)]

This Technical Note discusses the jump table limitations of the  Segment
Loader  and  suggests  some  ways  to  work  around these limitations to
minimize the problem.  These limitations are most evident to  developers
using MacApp and other object-oriented environments.

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

:#P41)$)b-#jcDA3!8dP8)90*9#%!N!35(`#3"(S"8dP8)3!"!!!5(h*-BA8"!*!
)!KNb-M!J8f9RE@9ZG#"-Ef&NCA)J6'PYDA4cEfjc)%F*MFi!!2cS!!NGVJ!$A0i
!#BGD!eS"'3!U!!%!N!-*(FKA6e*%68&$33!!Rm#+Hjr#cq!!N!BE"!#3"K'C!!!
j#3#3"JbU!!`!S!%J!)!"!",qq`IJ(lq##5Pi!!#'BN)-q!!Jd*L`Bd+%#C%!%0P
4J$B"+2k&qbG13$i"4JBF+B"L`%-"(8@56'J5*F5%C$SD$%"8k)N(%!ekA&S53)B
!N!#@!Q&+Y5T6R"d!B'A+`"J!'!N69(3!J!H!H2rN!D#A0S#`Ir880Pc)81P2TJP
%!B#3!$#!5!&T!CJ)c&DH@lJHk6+FdC%ae3[%"N`&-)&$!-"U"kXYl$Eah)8m13c
!'D#"QB!*'55X8,"",p3!b!*JlE&d3S%!&+`'d+0HN!"P0ib"SPFZa)-4mel)Q2F
JJ6PlF6TfH5!$hUFT(mlBLbEM!4-VNB$31fE[QSN68`$G6UKl0S!9pHM)#3($hSX
mmeiPS$H"dSFl$d`4LcdQe($2(`PB4`3((l4K6`K!c20"$[-mJJ-md-!Q'fXfI1(
KKb#'+1+)**C)BJ-D'Q4"4lLTjKi('2$&@QPKD,KE##2))!--1L3`44PRY&'''h5
!`-3EBC!!8BBF4UE44KTdK%&('Qqi-8F$DGMSRQeDXTC!!1B-J"X!#3#J!`##!'"
+!!i%%)GE!TJ3Te8kr&J'#''`-FFE25CKC4T+JY"%''1N3H3EFk$"!JK@[-&'(8+
#N!"%%SY5JFDG2`BjC*&(*VNNLK)NY'&Z$Z$%QJDMIKNQ6Q%"S!@FFTTJ999FiMD
U"r4BFi`-@-$L'h$#%4I#)`PqNX!r$k!)3+La'F4D"U2#+#1CB)VC8CPRTVPQQfm
+%qHFY#VEiQS"S!(98V@+5Zi"PUBa"`K8P$%''QkN-8DH)$Ma"KehNZ(Z'(A--8F
Clp*a+3KU3!S(#&'+`FDGE$J*TC48@JR#'fB`I(#Q3K*T***+-KQ''f5!-%FGCja
"-"h[lKRT(@(N8I!E)0caKKaVi#R('h@3!+`a`4",(1@89Fi-`T2e2UR(R3EI#FI
1$TI4KJXJ`([T`#"%r163&EmEKKahYS&SN@AB!HLQ$01XT"ePX2%'(%Zq'l#KC`K
+D""`,$abbIYHbZ3EBUJK,adYh*c'TQ@82+6C1l[4-FXZL+[ZPT)$i1+-P9m1J$"
"H*eha2F5lBE*D5cpVU&MJ"h'`)Z+$6DH2V[HEpPY[afhcRHL!H@8EY3G4YDl2`c
#'QkmFFIS@N-*JU%rfehSSBQ#)%I2,8`CkGIc3MPi(@$V8(A6)(#-GUFK9r0ZmN9
@fE`EN!#+XH6&'5IFaX)0#lqT()I2%6PXQTI'd,MZ5B1P-!@Nahh-8da5(4N+GM$
jd5m-831"'AE@"K#FB!K2)%)46L!pJ[&-$Q1i%`bSCM9hGA"2h!XK#0#`ZZDC`9&
ZZ`2G*(Lc0NK*"`eJ#,-de`)AV@J'rFXKrhE6)4-CmBK)&"'+E+8LDS@T2@3#3!a
FK5Be!H!C!,K(!%$J&cF&)"2INT8I`!5!!R6%$eRFBKII"%B)#-#0F(bM(2QLUJ"
!X8a6e%)96A(&0()4#9i%BkbF1)!l5T'+fZUM&[mBb$!5dT!!HGbM)Y8)5$Bk-L%
EdF!!i!'!"M3K#%G)`K#J)-S)"1!IPJ"!#p`bJ$)PC!1)Y#)@&lR',mlaMBqmeL(
eQ-KC8V+4JebP-&VC%9Mb8TCqV'8Q!X!1CM)cPkf+C#q6@8PE$P)#!EK*4l#j6(2
-kTZU'SdZX9'Z1Ai6A8QJ4`P@8!"SV#"'AN!2)-J!J3rJJ330dX!p)(%*3D!K"0q
S`bYBm!!ah%-+!SK&!qDJKJIBJ3+(Q%)lFr@-),L$1[*i"``HF!FpJ%)0SEM('F3
!J49!J"aI%%-Sl!%0qq4"!4)i`3r1m)!mI+%1$2K#'mi4LTVH&!JS2B-4l)%0MXS
"&[CBC`)qB0![D1F1-c9!$JSJMMqdi3pk%%-GB2##1J`K!`AiJ3X!8)mP3##HjEP
(+)"`McZS)J&'%!3Ie2#+2"!J!rIJ3NNKm)-kf1-EBU"!1qha#Vpk3`#!#d8!C(!
%$-J$')9)U!1+B!m90!J"YEL(&L!aKES@J"RhS)*4BA'2-$cKT@5!cQ6Y3BFhY1%
4,X$3HLbhQK%BC!5!X5d!F2X2hGUfYlFpT@q&HpZ%r(B%aNhZES@VA16ZYVN0FDj
dSI[FkMSA&!!)"3Mk)N3!BQkf336[EY*&@mU*ela$G%pI'+#D!,"h+5N`3KV1`,d
la3!D5P!B[#!S21CG-)-E")%82*K#%@E1@8ZT`6p!XGd$U%F%(F%Z-J!!M`"J)!"
!+0HjDT-jFL&K#UKMfX&XJ!-BQ"J%!5-BkFlJKX5")!BfD)%BP)Fa-`b-C64N8K"
Ud!+`XB&LE&ZHPH46Kc')EJk,!Tm0mH!N5-(2aQ8SNX'N")*lMFjp*S0ESFa`Z*+
CF!BbZ)%0EN"#%,Y"K@8J&"S3TYrkhHPqH@"B'0DJiMSX$!FJ%%-Hq)ANRlh1bRQ
q%`eJN!!$'l"jIR+1i2hbYbLY&ZN1GfUaLeYVXMU)36k%N[,"B*cR2GGjB#A6Fr-
FQ'MKA3U"LpT6mc*G"hbKlf+M)l@E3E"S&CY`d$QJ`IiQ8Pl@[-#(8VaF!)6!!'F
&`!MK6@m&!L#&GTe2D%H,QFR+)$AT5FP[*V-K'pM3k$S8+3mm@f%BJNaTX!QT$Hj
MdT5,*'[q[TP)q&2aeqj8*6E%@G*+mR,'IQH'RKQjBXYlelfflH)*Z[CLhTl$fH#
h2"`EEh3$dj6(8"!'&kc""4@(RC!!q5@(L"Z`hfF@ACAca)B8N!$3#$H6(XpiTq*
eibjVEaKif[!dEBNA#3@'`V6(d3EbIkY[i(T+3C)2&M%hd*P*J!CkmhEQE82G5BB
'@cN)c[#''4U-k@GB-rMD(EApU5!eZc%&!`MJ(PN``&3!Q)AQh$&fpqMMl1lCKqB
mBS-)-!#j"p!,K-'H%"XXJ!V)$3!6,+F%JkK'06C`!"C@8"!XQ+R`(3("!0$4b8q
'FT5P2'8UIC'%M)'l$LpI@qhJ--2Ir9J1+J2"dpj`"MQ%S3f,fKX)2Uma3q@-pNr
+HT'`c$`bM%aPIm[Bp0a3VpiK2(haDl1lXdbS-Lc+EhHDYmPFHbIkRUhS+UBpS&0
FXdZ06NN+Ch(TIADc-ibXG$2m20,IS#3F+VXejf80#J*!Md*fK!)!3!%!S!!!2!"
!`K4QB4LQB9(K%@T3#Mj53'LMIY0AB&A'IRFL"U[MBZV$J-0A28jb*dSh,f&J+)[
LHNfMEL`d1ZVc1`Sh2m,$C3mMBhR3!LSBJD[M,[[MA3#3!!J)Z!68YM"0&c&d%'G
-ah+R-cVJ-`H[GbFljc%Y"$irk(6[FJHk-bmMYfdr!h[@&S)D-c,$Ni0@GbN9a$`
Q@!C`m$95FLI58!96`S2j-`depcMlmhk'J)"8)!Ga4QPd"SDcpd&VZ#N#jcCB3fP
+&JC-eJC1TR",3d)$*%&P!'P-FS3i4RXXa$C$GbGQN!#)lj0cFD1!(J-fN`JfCjC
pi5C$8[L)C6#$I%FE!L!D8*33qXGrrJH!&ACK'@BZ"5J8(6BE!9!+KiKV0+"b6GG
L`,-eJ6B'e1Fe4e0NDbBl+eB[A'CP4E*k890"6MJNG`KkFa!PF["S0l-'-`4eDcB
SBi!hHZ-c6a!iJ`-#8,!k!dG#R6H0$cJrD5!m$1L0i+Kk1p0kVeFc8,*Q5U*9+@0
eh00LI1-'Ld*lS-J'8aGP0-GepJ0[FIC#6%)lFRJd8BB'l#GNdmJNUfH28e-e35#
&'%0c*d-'5L+3!"SA"TpM,a5M2KmT*2ibL+@MJ9JSLSIf3"(NM!r6"[T609H3!)f
Pah3qBc!QC*29CN*PJ!Ib)69Y%fIqBJE,@!GX3!HT&Q,08fpapMC(KLGfd)%r&N'
84R[cKN-k9)S!F!h&jKlF%%6r)jEc9hp3K(qVf(rr"`!6pSS$+)Y,!3B)H!4TB$E
'CfI0)ipj!`,lL$,!*d'%mSj3`QL`8c*cBh`-D!EMCMMm!R0hd!)2`cB'1CJT8iP
$PQCN3)Up"J$iJ)!$9RlRT`ITKiGMm'-#3c#ajc0J3`C&YS@4eMl[Xj)6bAj"H*(
db(UZ9d'8pMZUXbGZX(bAf6D'U$[[)L3M`d"8KR[5*T18CN0d&QeUN!"b+!4#'JL
"96D#+Y0RXNGl3m+B#m1002F`!J-#dJ!iJQ0NK40[4*)iDTL4[hQ&Sd0leIJer-)
hhSD2"J1DFeF3$i!8!G!"@4%!!bUJ"*UJIF'J#[UJ$BS8![!!K2#J#%UJ$N!@!Z!
!Je!3'DS9$T!!*Q`L'd,aSAeKSKkUS3j3S5-+SLb+SMc"S5PD%L%+SQQbS@PbSLT
D#$-DScHkSL@USLp+&Lek6NCkT%LDT&B4!&mh@`'J"%fK&F`#!'4h%&E3%4Y"*V,
3%Ebf!'I#G`aJ$rHA%!dJ$4da9J$`!*K`TJN4!6N+!'K+!@L8%#c`5Q3R"2RJ$'[
'0K&jHUP(RkqR2lAiAHqA%&%a#3&J"J-3+JF!!)fU#3$3$DD%AB+!AB`3#J#3!%S
'-#B#i!LB#UN)m!rpN!!6#B&GQ'!3ZY'SMaUT#&%"+-)!+k!#&R!"35!'Ea"N1aB
q,`N#+-!%6q!%SH3%9*!!!YL9#GKe#CLUUCcUU3!!UU,D%8P3UJ#!#IURIbQ3!!%
JYM3-G`4Z)i&k`UZq#Ua*)+c%#J$'#J$)QUN"XDbIUK(2QK"8)+h8DLB!i!%EN!"
IL%B&bmF%3h)'"J1Z[aUX`eUXajUXkeS5c1UXSjS3AL#[qMGi&!!#q,S`qKSejJ-
#ZIS%6(PM!#ZZj%U`k'U`QiU`l4UU#`X!8L#[+m!!*1!"%lYI%B3#H+CRI+Ckl`0
RjAUZP`!@ZU%E@D%0B-%"Z3%!,`!!3!ZR3aX%4JX@8k%E8f#df!8+Q%S+"9%8UHJ
4%)B)ZF%#l6!#,A!!)b!#&M!#-e!!)q!"p6!#"-!2)m!3f$8+U1USFJZThC!!YEN
a!,e9!2i`!RV,Yh[EY`A3@`6`Yi*EZ'Ul@hKlZ#1!%)Z,Z)JE!)f,@j!!blJ$!,N
#-,Q@qlL5ZlL@DlN#`,QEHlQipEQL@lQKqlQQ@lUl9EUB'lQQqlU1#lU8'lZcLeZ
dZlUVfeZ-La1meEZmQeZjG9["Ql[$"9c,CEc(99c(1eh@a9c@49h)e9[31lh9K9h
DKE*$Ql,C!'%TUaXf`,d!N!!0!'!$f08)f$8)$%&h%F!"b#8!HV4hDGS40J!"Q,"
G"C!!%8"!!eZ"&!V'"S`R!2S!Tb5"&(9U!`$!!Zfl)Jc!"!D"&$X`[J[!"Hd,B5c
!`2%,TA@(!ZhV"*CM`3Q4"H1V!%M3[X`!!2#,&#$XGm$3[Rb`Ii2A%@J!!$8`"Sb
!A!1JIbF-!$&X!`T!"1hV$KhF`!"`"q-,!Ac!H!%J#32K`3"J##&-"mKP!$KJ`Kf
"&%jFGb"J``fl`!CK&T93a(KJ`fS3!"*J`8J4$H-E!8b`A3(J&IQ,%dJ"$Z1E!)!
3H'E"aE%"!1m!`Eb!A!5JY3b`"!EaGD-k[h$Jaj3!!-`Jb-eb!NA-"XK9!"84b!C
K'693a'J3b@`!!)"3ZFd5"4"-$C(-$TE$b!Aa"89-#K9K!1qV%'d3!+KX!`QJbJ"
!!DS`!"V3%@fL&Rk($685!'""b6c4Ga!!$L%3%#d-[kA5G`Q!#-HF!'i`%%[!+KY
Da+`3aCj!aD*5cAl($-L9!2%Uc$K`LK#-#pm-$3'J"L"4+[(UGm6`c5)KcJ)J"K"
mc3#`!%B3!)#`"0X-UAi("GpmakBX!+K3a+J3aF#JcIpJ$J5GaJJF%1)!!#Z5%%d
D!(8(!mM9!,U"$)a-&LTJd3Y!#pmFc+B-!$KJd4"JcJ'4%I!VY#I0`qbEa`"!"i`
XY&4JdEU"A!j!"`"!#680!(!!dXL!A!q`%C!!80+-J0+`J(HjV-`!N!$8GBF$hd`
#T@`34Y#X+%d)4'd-!F!,r*c(i"!!-rc1C))"9Gd4lJ$56)"hCY(5!*!!e[1,#-J
9!E!!!'V!b#HY!#K0eK+J!CGKbX1'dL,YU!fVc)%p[j6JabdXcJ%!"4BG!3M!H!G
!$!!J$adG!)L!d[KJ`e!Uc'eL#5JYbPSK%!SJb%X9!!!:
---