FP6502   W4 CUSTOMIZE.DATAo  g4 A3.CUSTOM.CODE* w4 A3.CUSTOM.LIB* 4 SANEMACRO.TEXT)P 4 /A2X.FPINIT.CODE III.PCL.05 T' A2.AFP.CODE"  A3.SANE6 6 A2X.AFP.CODE, ( -A2.AELEM.CODE<  7.A2X.AELEM.CODEM  GA3.AELEM.CODE^A3/1.1P &+F&&&&6&&&'&&&&u&&u&&U&&&&&LC0,K  II 0OUX?E-͵0)/Ͷ8i0 V  Z  Z F: FiI6  L8i &LCL L } nnn  & & T &&& V 8 jjj&&8'0&6&L    u & 6 `v E  vE`  `0L L 8JJJ9eʈ ʩ`  LLL0   &&f  u&&&v&E&&&&ƥк8}`0$ LL LI8 &I&8&&&&&LL'0C#&ʆȵ&&&& '0 &6&'}&&&`   ` { t)?ʵ**6vE! ,L6% LIL L 88      & & &? u&-v&E&&&&&8}L..8f'k)Il0MEͻ:,) )@E `8mmiL0 6}`I&&ʈ&`L,{0( ` μL80Ңȹީ`   .Jȱ .J ":6..& 8&' 0  'L&  C `0;--)*8  &&  `L L? & &&0)I&ʆ'N[&(   Ai) ''ݩ0 &@%'E'' ((`Lȱs )k ީmmR') &&*&&6&&u&& 8&' )&u&  ` &` &&` آ . .`&& && ʩ&` ```L `hhHHȌȄi  , 0  9HH, l ,`%)hhPhhN ENhhHHHH``````) LL-` &` hhh)J:h,LC0JJJ) Ehh,p -J hhJ;J-  HH 61 L    L)@  MHH`%ͷ  懲@E` } )i0MI 莵  ))0 'L9`0mmmL02&& 8&&莾L, LL05 0ʎ L I`)))8JJJ)׬ Ln,0ǭ) **)0L 8ʕ  l k S R A @ 9 8 7 6 5 4 - ,    ~ } z w r o l k [ W U R Q P O L K J I H G A > 9 6 4 3 2 1 0 / . + &    TQPDC;9854 w v t l k d c a ` _ ^ W A > = < 9 8 1 0 / , + ( ' $         { z Z / . #     v o b a U P G F ? ; 8 7 4 - , + * ' !    zWVS$# 8zyi\YXWVQGB{xonkhe]XUM=:96 QNKHA4/% xwtsmjif_8 jgfedcbaI876]\["   wpk`_^]\ZURONGFC@=<;:9876!   tsrqfea`_^\ZJB>=52*'%$ > | |   4 {{Xbk00@ 51_1 .@*焑+P'$@C$! (k0INNaa㩀ۭ & ' &'  } } } }& I'I'` EF 'e '&i&f&f'`    @5 @``H8 (Hhh &  ?  (Nn    ?  НL(  ` ` `0>: Yaȹa`Ia  &O))JJJ&ȹ&  u E   ,ؠ8m ) JJJJ 0 ) 08L 8mmL%) Nn `  L&  8mm08 08ȩ0"R(   ` ? L (  ''Njf'& &`6'Nnf'Nnv&E&&& NjЮ NjЙ  ȑ?IJJJJ ) L  0iVȑ`0 &&`Lv&E&&&&`,s0'L:) ( 'ɀ`& &`8&` 'Ȅ&,'0  f'8} &6&  &&&L,& &&&&`0'0 C&&&`L'0%  LC0_X mmm` 9ʊM. I0} lȦ  JJJ1e&&&&&& &&&ʈݘ& ) ,0  &r&*&E&&&V   DʊM;F7&&J.&8u&&+') 32.+*&%$  {rqmh[0,)(%$! b a U P G F ? ; 8 7 4 - , + * ' !    FP6502J FP6502 FP6502   8&0  L  C `0;--)*8    `L L?  0)IʆN[  Ai) ݩ0 @%E   `Lȱs)kީmmR) *6u 8&)u ` ` ` آ . .`  ʩ` ```L `hhHHȌȄi , 0  9HH, l ,`%)hhPhhN ENhhHHHH`⍧㍨```∭〈`⍩㍪`) L⍯L-` ` hhh)J:h,LC0JJJ) Ehh,p -J hh孰J;J-  HH 61 L   L)@  MHH` !"#$%&'()*]^A3/1.1P FP6502 )P8 'READ.ME   /APPL3.SANE.CODEm,V 1R*ELEMS.CODE$ \RA3.SANEv6 ' '+A3.AFP.CODE"7 -A3.AELEM.CODE` 7 W.CUSTOMIZE.DATAq 7 g.A3.CUSTOM.CODE*7 w-A3.CUSTOM.LIB*8 .SANEMACRO.TEXTʈ`L,{0( ` μL80Ңȹީ`  .Jȱ .J䍼 ":6....8f'k)Il0MEͻ:,) )@E `8mmiL0 6}`I O))JJJȹuE,ؠ8m) JJJJ 0) 08L 8mmL%) Nn `  L&  8mm08 08ȩ0"R(   ` ? L (  'Njf `6NnfNnvE NjЮ NjЙ  ȑ⭸?IJJJJ ) L  0iVȑ`0 `LvE`,s0L:)  ɀ` `8` Ȅ,0  f8} 6 L, `00 C`L0%  LC0_X mmm` 9ʊM. I0}lȦJJJ1e ʈݘ) ,0 r*E&V   DʊM;F7J.8u+) L, LL050ʎ L I`)))8JJJ)׬Ln,0ǭ) **)0L 8ʕ%ͷ 懲@E` } )i0MI莵  ))0 L9`0mmmL02 8莾+F6&uuULC0,K  II0OUX?E-͵0)/Ͷ8i0 V  Z  Z F:FiI6L8iLCL L } nnn    T  V 8jjj806L u&6`vEvE` `0L L 8JJJ9eʈ ʩ`  LLL0 f u&vEƥк8}`0$ LL LI8I8LL0C#ʆȵ 0 6}`` {t)?ʵ**6vE! ,L6% LIL L88     ?u-vE8}L   ?  (Nn   ?  НL( ` ` `0>: Yaȹa`Iaaa㩀ۭ    } } } } II`EF eiff`    @5 @``H8 (Hhh 8&ĉ0  L⥦ C `0;--)*8   `LL?餦 榦0)IʆN[榆ĉ ƉAi) ݩ0 Ʀ@%E ⥨`Lȱs)kƉީmmR) 䦦*6u 8&ĉ成)u ` ` ` آ . .`  ʩ` ```L ⬹`hhHHȌȄi , 0 9HH, l ,`%)hhPhhN ENhhHHHH``````) L᥂L᥂-` ` hhh)J:h,LC0JJJ) Ehh,p -J hhJ;J- HH 61 L ⭸ ⥌ŚL)@ MHH`+-./0123456789:A3/1.1P FP6502  w v t l k d c a ` _ ^ W A > = < 9 8 1 0 / , + ( ' $         { z Z / . #     v o b a U P G F ? ; 8 7 4 - , + * ' !    zWVS$# 8zyi\YXWVQGB{xonkhe]XUM=:96 QNKHA4/% xwtsmjif_8 jgfedcbaI876]\["   wpk`_^]\ZURONGFC@=<;:9876!   tsrqfea`_^\ZJB>=52*'%$ > | |   4 {{Xbk00@ 51_1 .@*焑+P'$@C$! (k0INNʈ`L,{0( `蕘 μL榘8񄕘0ҢȹĘީ`  .Jȱ .J豄 ":6..ƈ..8fƘ'k)ƘIl0MEͻ:,) )@E `8mmiL0 6}󦘵Ƙ`I O))JJJĦȹ赊uE膊Ɖ,ؠ8m) JJJJ 0Ĉ) 0Ĉ8L 8mmL%) Nn `  L&  8mm08 08ȩ0"R(  ` ?L (  'Njf䦰 赦`6NnfNnvE膦 NjЮ NjЙ  ȑ?I赘JJJJ ) 䘐L  0iVȑ`0 `LvE膦`,s0L:)  ɀ` `8` Ȅ,0  f8} 6 ⦦ƦL,Ŧ 蕦䦐`00 C覦Ʀ`L⥧0%  LC0_X mmm` 9ʊM. I0}lȦĉJJJ1e ʈݘ) ,0 䦰r*E&V  DʊM;F7J.8u+) L, LL050ʎ L ⼣I`)))8JJJ)׬Ln,0ǭ) **)0L 8ʕ%ͷ赘Պ 懲@E` })i0M膘I莵  ))0 L9`0mmmL᭸02 8莾+F榦䦰膘6ŧ&uuULC0,K  II膉ĉ0OUX?E-͵0)/Ͷ8i0 V Z ZF:FiI6䊰L8iLC譸L ⮹L } nnn   Tꦦ膦 V8jjj806Lř u&6`vE膊vE膘`䘰 膊`0L L 8JJJ9eňʈ ʩ`  LLL0Ŋ 覊f uƘ&vE膦ƥк8}`0$ LL LI8I8ƦLL0C#զʆȵ 0 6}󦦵Ʀ`䘰` {ʼnt)?昦ʵ**6vEƘ! ,L6% L⮸IL L88 莱䈐 膈 䘐  ?u-vE䈐膦8}L荸  ? (Nn  ? НL( ` ` `0>: Ya蕘ȹa`Iaa蕘a㩀ۭ  } } } } II`EF eiff`    @5 @``H8 (Hhh;<   p%#$ <H;HHH   y p$L[  <H;HHH  HH:H9HHH `$ `: L < L  L  L  k> L  k@ L L:H9HHH Aи`L3L3L3HH I-HHHH `LLLL\ `LLLL\ `    `MMii`HHH `' Y y '1;EOYcmwEoAu :9   >=A; <;i;<i<<H;H:H9HHH >H=H:H9HHH ;i ;<i<<H;HH HHHHHHHH  LP  L  bHaH`NNNNv . ]G} HH HHHH ` HH HHHH ` HHHH ` HHHH ` Hhhhhnhh mhh  L-I2hh LHHHH `  HHHHH;=>?@ABCDEFGHIJKA3/1.1P ELEMS650 FP6502J FP6502 FP6502    ? (Nn  ? НL( ` ` `0>: Ya蕘ȹa`IaO))JJJĦȹ赊uE膊Ɖ,ؠ8m) JJJJ 0Ĉ) 0Ĉ8L 8mmL%) Nn `  L&>||4{{Xbk00@ 51_1 .@*焑+P'$@C$! (k0INN shhhhhhhh HHHH `,#070 LL$LL  p00L  * 0P& 0  aLN    ;<9:  & 0" P HHHHHH   a , 8 L  `8L      l  l   {`0L LL, 4L  O  {0L    R     N  T   C `2 `X Z   Z L vma_]\YVSD>;:'$#"  LV . "    ,     `2  L}L    L1C 0C     V pN  L^ R    `F    , p#(      ` (  (       0 `!DCLL  f nC*       L1J   , p,C L DC)8CDD0   {  cL !DȌCЕL2  CmCDmD`B b  `   b `    b b  l l@bWB fv @8(c3L>q?}e$6Kp6@]*Ә?ͳLy@hp7@Y@VLU@?0l;@oH:=Y@E8h@j☁,:͓?bd_*?j0?N @@!DCL L f'?0ZD؈@ #y I@+c&@CPkfv@֡Q @?j٦@k]e@R{n@X~rг2~d@EkXV@- zRhI@U $?d3????5h!?5h!?JXT@yr?oAu;FF?aM!2?xD?WF9?F:k痃@?^ 5>?y Ȑ/'\?Eӗ@ q @?ZKpH@.au @?@@ @d3?%L  L  0LL"MѢ   L b  b b b b  {L  b b   b   [L  cL  Y y '1;EOYcmwE ABBL6 . L.` pL LLLL MLb b b b b       [L  cL &L 0p0p0LLLhh .%L    ΢    HH  .  v , L "L  k> `: ` L  0pL  \  &L &AB 6 L  H   h N L   0 `     `   AB AB LE  L  NA  A`b b b b b `0 v L ;<   L : 0p`   l  l     {L LJNn 0L  0LL 0LLAB ABB  cL  9:;< L     .  ` 8   8    8 L.LL ,8  c {L 4L O  {0L L  : 0 9:  ljedddddddddddddddddddddddddddddddddddddddddddddddddda`_^]ZUTSRMJGEBA>=;97,*(& {zwutsrqng_^SRPBA@921/! HHH `' Y y '1;EOYcmwEoAu :9  >=A;<;i;<i<<H;H:H9HHH >H=H:H9HHH ;i ;<i<<H;HH HHHHHHHH  LP  L  bHaH`NNNNv . ]G} HH HHHH ` HH HHHH ` HHHH ` HHHH ` Hhhhhnhh mhh  L-I2hh LHHHH `  HHHHHLNOPQRSTUVWXYZ[\A3/1.1Pf ELEMS650 FP6502J ELEMS650 ELEMS650FP6502 P 7LqBX8 |{xqje`YTMHA@;4/(!XXn\4.*A*` _ \ [ T M H G B = < 5 . ) & !          m ] M K A ? /   L K H E D C > ; : 7 4 3 2 / . ( ' $            xslf_ZSLE>920/,)('" !     ~ } v q p o f a ` _ \ [ T M H G B = < 5 . ) & !          ~}zyplkfba`_^]\YXWVUTSRQPMLG@984-,'&%  }|{vurkjid_^[VPLGF;4-*%"~wnib[NEDC>943210/.-,+&  }|yxwvunmlkjihgfed_ZYRLE>72+*)"     :H9HHH Aи`L3L3L3HH I-HHHH `LLLL\ `LLLL\ `   `MMii`;<   p%#$ <H;HHH   y p$L[  <H;HHH  HH:H9HHH `$ `: L < L  L  L  k> L  k@ L L `F    , p#(      ` (  (       0 `!DCLL  f nC*       L1J   , p,C L DC)8CDD0   {  cL !DȌCЕL2  CmCDmD`B b  `   b `    b b  l l@bWB fv @8(c3L>q?}e$6Kp6@]*Ә?ͳLy@hp7@Y@VLU@?0l;@oH:=Y@E8h@j☁,:͓?bd_*?j0?N @@!DCL L f'?0ZD؈@ #y I@+c&@CPkfv@֡Q @?j٦@k]e@R{n@X~rг2~d@EkXV@- zRhI@U $?d3????5h!?5h!?JXT@yr?oAu;FF?aM!2?xD?WF9?F:k痃@?^ 5>?y Ȑ/'\?Eӗ@ q @?ZKpH@.au @?@@ @d3?%L  L  0LL"MѢ   L b  b b b b  {L  b b   b   [L  cL  Y y '1;EOYcmwE ABBL6 . L.` pL LLLL MLb b b b b       [L  cL &L 0p0p0LLLhh .%L    ΢    HH  .  v , L "L  k> `: ` L  0pL  \  &L &AB 6 L  H   h N L   0 `     `   AB AB LE  L  NA  A`b b b b b `0 v L ;<   L : 0p`   l  l     {L LJNn 0L  0LL 0LLAB ABB  cL  9:;< L     .  ` 8   8    8 L.LL ,8  c {L 4L O  {0L L  : 0 9::  & 0" P HHHHHH   a , 8 L  `8L      l  l   {`0L LL, 4L  O  {0LȢ shhhhhhhh HHHH `,#070 LL$LL  p00L  * 0P& 0  aLN    ;<9"  LV . "    ,     `2  L}L    L1C 0C     V pN  L^ R       R     N  T   C `2 `X Z   Z L vma_]\YVSD>;:'$# ELEMS650 FP6502J FP6502 FP6502  32.+*&%$  {rqmh[0,)(%$! b a U P G F ? ; 8 7 4 - , + * ' !      l k S R A @ 9 8 7 6 5 4 - ,    ~ } z w r o l k [ W U R Q P O L K J I H G A > 9 6 4 3 2 1 0 / . + &    TQPDC;9854ELEMS650 ELEMS650 |{xqje`YTMHA@;4/(!X^ ~ } v q p o f a ` _ \ [ T M H G B = < 5 . ) & !          m ] M K A ? /   L K H E D C > ; : 7 4 3 2 / . ( ' $            xslf_ZSLE>920/,)('" !     ~ } v q p o f a ` _ \ [ T M H G B = < 5 . ) & !          ~}zyplkfba`_^]\YXWVUTSRQPMLG@984-,'&%  }|{vurkjid_^[VPLGF;4-*%"~wnib[NEDC>943210/.-,+&  }|yxwvunmlkjihgfed_ZYRLE>72+*)"     & {zwutsrqng_^SRPBA@921/!   ljedddddddddddddddddddddddddddddddddddddddddddddddddda`_^]ZUTSRMJGEBA>=;97,*(A3/1.1P_abcdefghijklmnoL 0p0p0LLL%LK  L0 0LL"MѢ   L0b  b b b b  L  b b  ; Cb   L  \  KLQ Kz{ z{{Lo S LS` pL LLLL MLb b b b b  C ;    L0 L0& z`b b b b b `0 L0hh S%L    ΢    HH  S  , L0"L:  > `: ` L:  0pL: 0LLz{ z{{ o L0 H   h N L0  0 `     ` C ; z{ z{ L~  L  Nz  0L CL T : 0 rs:t;u !  ;L0: 0p`          L; LJNn 0L0 0LL `0L0LL, mLC   0L C L T rs:t;u !L0    S  ` 8   8    8 LSLL0,8   LQ mL    L    :t;urs ! & 0" P HHHHHH    , 8 L0 `8L         ;  L0L hhhhhhhh h hhhh  HHHH `,#070 LL$LL0 p00L  * 0P& 0`MMii`tu N  p%#$ uHtHHH    p$L  uHtHHH  HHsHrHHH `$ `: L0< L0 L0 L0 > L0 @ HHH ti tuiuuHtHsHrHHH zи`LXLXLXHH I-HHHH `LLLL\ `LLLL\ `.-. - `.-HHHH `.H-HHH `*<N`T $.8BLV`jt~~&Pz .s-r. -.w-vzt utituiuuHtHsHrHHH wHvHsHrHH H HHHH HHHH H HHH  Lu  L0 HH`. g  .H-H.H-HHH `.H-H.H-HHH `.H-HHH hhhhnhh    mhh  L-I2hh   LHHHH `       HHHH L0T $.8BLV`jt~~&Pz ;FF?aM!2?xD?WF9?F:k痃@?^ 5>?y Ȑ/'\?Eӗ@ q @?ZKpH@.au @?@@ @d3??d3????5h!?5h!?JXT@yr?FP6502J ELEMS650 ELEMS650FP6502  pg}]3 ) &! {zwpid_XSLG@?:3.'  XkoG)A)@)_ ^ [ Z S L G F A < ; 4 - ( %           l \ L J @ > .   K J G D C B = : 9 6 3 2 1 . - ' & #           ~wrke^YRKD=81/.+('lCopyright Apple Computer4 SANE SANE |vsr_\[WVUTSPMKIHF  }xwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww V pN  L R       R     N  T   | `2 `X Z   Z L0     LjJ   , p"  L . "    ,     `2  LL0   Lj| 0|       b b    `F    , p#(      ` (  (       0 `!}|LL0  n|*  N @@!}|L0L ,| LI >}|)8|}}0  ;   L0!}Ȍ|ЕL2  |m|}m}`B b  `   b ` ~rг2~d@EkXV@- zRhI@U $@bWB fv @8(c3L>q?}e$6Kp6@]*Ә?ͳLy@hp7@Y@VLU@?0l;@oH:=Y@E8h@j☁,:͓?bd_*?j0?*<N`?0ZD؈@ #y I@+c&@CPkfv@֡Q @?j٦@k]e@R{n@X ELEMS650  z`b b b b b `0 L0hh S%L    ΢    HH  S  , L0"L:  > `: ` L:  0pL: 0LLz{ z{{ o L0 H   h N L0  0 `     ` C ; z{ z{ L~  L  Nz  0L CL T : 0 rs:t;u !  ;L0: 0p`          L; LJNn 0L0 0LL `0L0LL, mLC   0L C L T rs:t;u !L0    S  ` 8   8    8 LSLL0,8   LQ mL    L    :t;urs ! & 0" P HHHHHH    , 8 L0 `8L         ;  L0L hhhhhhhh h hhhh  HHHH `,#070 LL$LL0 p00L  * 0P& 0`MMii`t u N  p%#$ uHtHHH    p$L  uHtHHH  HHsHrHHH `$ `: L0< L0 L0 L0 > L0 @ HHH ti tuiuuHtHsHrHHH zи`LXLXLXHH I-HHHH `LLLL\ `LLLL\ `.-. - `.-HHHH `.H-HHH `*<N`T $.8BLV`jt~~&Pz .s-r. - .w-v z t utituiuuHtHsHrHHH wHvHsHrHH H HHHH HHHH H HHH  Lu  L0 HH`. g  .H-H.H-HHH `.H-H.H-HHH `.H-HHH hhhhnhh    mhh  L-I2hh   LHHHH `       HHHHprstuvwxyz{|}~A3/1.1P \  KLQ Kz{ z{{Lo S LS` pL LLLL MLb b b b b  C ;    L0 L0&L 0p0p0LLL%LK  L0 0LL"MѢ   L0b  b b b b  L  b b  ; Cb   L l \ L J @ > .   K J G D C B = : 9 6 3 2 1 . - ' & #           ~wrke^YRKD=81/.+('|{zutqjihc^]ZUOKFE:3,)$!    } | u p o n e ` _ ^ [ Z S L G F A < ; 4 - ( %           }|yxokjea`_^]\[XWVUTSRQPOLKF?873,+&%$ }vmhaZMDCB=83210/.-,+*%  |{xwvutmlkjihgfedc^YXQKD=61*)(!     wwwwtsrqpmhgfe`]ZXUTQPNLJ?=;9-*)&%#!   zrqfecUTSLEDB431/- |vsr_\[WVUTSPMKIHF  }xwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww V pN  L R       R     N  T   | `2 `X Z   Z L0     LjJ   , p"  L . "    ,     `2  LL0   Lj| 0|       b b    `F    , p#(      ` (  (       0 `!}|LL0  n|*  N @@!}|L0L ,| LI >}|)8|}}0  ;   L0!}Ȍ|ЕL2  |m|}m}`B b  `   b ` ~rг2~d@EkXV@- zRhI@U $@bWB fv @8(c3L>q?}e$6Kp6@]*Ә?ͳLy@hp7@Y@VLU@?0l;@oH:=Y@E8h@j☁,:͓?bd_*?j0?*<N`?0ZD؈@ #y I@+c&@CPkfv@֡Q @?j٦@k]e@R{n@X?@@ @d3??d3????5h!?5h!?JXT@yr? L0T $.8BLV`jt~~&Pz ;FF?aM!2?xD?WF9?F:k痃@?^ 5>?y Ȑ/'\?Eӗ@ q @?ZKpH@.au @&! {zwpid_XSLG@?:3.'  XkoG)A)@)_ ^ [ Z S L G F A < ; 4 - ( %           FP6502J ELEMS650 ELEMS650FP6502  pg}]3 ) *۪*(**0N @́́ʁʁȡʁת(ʁ́צ CUSTOMIZER("This program generates versions ofת(צFP6502 and Elems6502 which arġ"ݛAġA 쩓f]I Zڹ|k۪kšצINPUT TO LARGE ]j۪jšINPUT TO LARGE׮ .i۪h ۪Uߡ#.šŶ Ä צŶ0Ä ȡ9ݛ~~NONE-HEX INPUT׮ šצINPUT TO LARGE ȡȡYá áš (á'צTOO LONG ئת(oݳXazȄA݂aáئת( ()(ܛݿ2 *צ(ܮá _______________T` f ȡ+_ ȡ!l-g x?š ܂ޮצ Customizerצ(________________________________________Pá4(________________________________________צ(________________________________________Pá4(_________________________  Working ...? تPress space bar to continue. á"P تPress space bar to continue. "H ٪(ت(PáSANE |%%$#'|_____________________________________|$#$#H "צPut output files disk in 2nddrive, space bar to continue.س á !á  ȡ4٪ت$ #$#צ& _____________________________________%&%&ȡE$#%'| @nT'A3CUSTOM e( customized for your choices of :ת(צ! - Apple // or /// target machine(צ - ProDOS/SOS or UCSD format( $ - absolute or UCSD-relocatable codeת( צ! - location of code (if absolute)( צ - zero page use( YOU WILL NEED A 2ND DISK DRIVE.ת(́ƁצDO NOT REMOVE ƁצSANE3Ɓ DISK UNTIL DONE.$Ɓ(צPress space bar to continue.(Copyright Apple Computer 1984צPress ESCAPE to qצFP : +ת( Elems : צ(+FP : ++צ+A)Elems : צ퓡@,\ FצSummaryצ Press ESCAPE to restart program. צTarget צ.CODE-(=$ɡ8.CODE׷(צ.CODE-(Zצ Output Files Press ESCAPE to restart program.׮ A@(Type in the COMPLETE pathnames for the צfiles to be generated."צNOTE: All addresses are in HEX.צZero page indirect : צZero page scratch : צ00צZero page indirect : 08Zero page scratch : ۛ.ádɡ"('page for indirect addressing. You may צ"choose the locations for zero page"scratch and zero page indirect, orצ!just press RETURN for the defaultצstarting locations shown below.address : צ Zero Page Useצ$RETURN to accept, ESCAPE to restart. צ%FP and Elems use 44 contiguous bytes צ$of zero page for scratch space, and "another 8 contiguous bytes of zeroצ&absolute Elems6502 code? Type in yourצ$choice, or just press RETURN for thestarting address shown below.NOTE: All addresses are in HEX.Starting address : 1000Starting NOTE: All addresses are in HEX.Starting address : E000Starting address : צElems6502 Addressצ$RETURN to accept, ESCAPE to restart. צ(Which starting address do you want for s$RETURN to accept, ESCAPE to restart.׮ (Which starting address do you want for צ'absolute FP6502 code? Type in the yourצ$choice, or just press RETURN for thestarting address shown below.2. Relocatableצ!3. Absolute FP, relocatable Elemsצ Type 1, 2, or 3 (then RETURN) : צ Type 1, 2, or 3 (then RETURN) :  1ë*צFP6502 Addresype 1, 2, or 3 (then RETURN) :   *Xצ Code Style Press ESCAPE to restart program.׮ %Which code style shall the customized files have? 1. Absolute*@צ Select Files Press ESCAPE to restart program.׮  Which files shall be customized?צ1. FP and Elemsצ 2. FP only 3. Elems only Type 1, 2, or 3 (then RETURN) :  T&Which file format shall the customized files have?1. UCSD (Pascal System) 2. ProDOSType 1 or 2 (then RETURN) : Type 1 or 2 (then RETURN) : 2ë mized files? 1. Apple // 2. Apple ///צType 1 or 2 (then RETURN) : צType 1 or 2 (then RETURN) : 1ë *@צ File Formatצ Press ESCAPE to restart program. צuit program.׮ ́́ʁʁȡ&ʁʁʁ́Ɓʁ ʁá,_L &צTarget Machine Press ESCAPE to restart program.׮ Which machine will be using theresulting customachine : צTarget machine : צApple // /:File format :  ProDOS/SOS2File format : UCSDצFP+ڂ(ȡ$ Pathname $ (CONST ( ,SIGDIGLEN = 28; { Maximum length of SigDig. } , ,DECSTRLEN = 80; { Maximum length of DecStr. } , (TYPE ( ,{----------------------------------------------------------------- ,** Numeric types. ,------------------------------ Extended; var y : Double); (procedure X2C (x : Extended; var y : Comp); ,{ y := x (arithmetic assignment) } ({----------------------------------------------------------------- (** Conversions between the numeric types and the intermediate (** decima(procedure C2X (x : Comp; var y : Extended); (procedure X2X (x : Extended; var y : Extended); ,{ y := x (arithmetic assignment) } ( (procedure X2I (x : Extended; var y : integer); (procedure X2S (x : Extended; var y : Single); (procedure X2D (x :(** including the type integer. (-----------------------------------------------------------------} ( (procedure I2X (x : integer; var y : Extended); (procedure S2X (x : Single; var y : Extended); (procedure D2X (x : Double; var y : Extended); function RelX (x, y : Extended) : RelOp; ,{ x RelX y, where RelX in [GT, LT, EQ, UNORD] } ({----------------------------------------------------------------- (** Conversions between Extended and the other numeric types, e DivD (x : Double; var y : Extended); (procedure DivC (x : Comp; var y : Extended); (procedure DivX (x : Extended; var y : Extended); ,{ y := y / x } ( (function CmpX (x : Extended; r : RelOp; y : Extended) : boolean; ,{ CmpX := x r y } D ( var y : Extended); (procedure MulD (x : Double; var y : Extended); (procedure MulC (x : Comp; var y : Extended); (procedure MulX (x : Extended; var y : Extended); ,{ y := y * x } ( (procedure DivS (x : Single; var y : Extended); (procedur( (procedure SubS (x : Single; var y : Extended); (procedure SubD (x : Double; var y : Extended); (procedure SubC (x : Comp; var y : Extended); (procedure SubX (x : Extended; var y : Extended); ,{ y := y - x } ( (procedure MulS (x : Single;-----------------------------} ( (procedure AddS (x : Single; var y : Extended); (procedure AddD (x : Double; var y : Extended); (procedure AddC (x : Comp; var y : Extended); (procedure AddX (x : Extended; var y : Extended); ,{ y := y + x } ORMAL, DENORMAL); 0DecForm = record @style : (FLOAT, FIXED); @digits : integer  < <> = >= <= <=> } 0Exception = (INVALID, UNDERFLOW, OVERFLOW, DIVBYZERO, eINEXACT); 0NumClass = (SNAN, QNAN, INFINITE, ZERO, N?sig : SigDig { String of significant digits. } ;end; ,{----------------------------------------------------------------- ,** Modes, flags, and selections. ,-----------------------------------------------------------------} 0 0Environ = integerSTRLEN]; 0Decimal = record ?sgn : 0..1; { Sign (0 for pos, 1 for neg). } ?exp : integer; { Exponent. } Copyright Apple Computer [A3/1.1]tion in source): '')------- ,** Decimal string type and intermediate decimal type, ,** representing the value: ,** (-1)^sgn * 10^exp * sig ,-----------------------------------------------------------------} 0 0SigDig = string [SIGDIGLEN]; 0DecStr = string [DEC-----------------------------------} 0 0Single = array [0..1] of integer; 0Double = array [0..3] of integer; 0Comp = array [0..3] of integer; 0Extended = array [0..4] of integer; , ,{----------------------------------------------------------l type. (-----------------------------------------------------------------} ( (procedure S2Dec (f : DecForm; x : Single; var y : Decimal); (procedure D2Dec (f : DecForm; x : Double; var y : Decimal); (procedure C2Dec (f : DecForm; x : Comp; var y : Decimal); (procedure X2Dec (f : DecForm; x : Extended; var y : Decimal); ,{ y := x (according to the format f) } ( (procedure Dec2S (x : Decimal; var y : Single); (procedure Dec2D (x : Decimal; var GˡCGڡDڀš DáA QܢšvܢIá RܢNáC --------------------------------------------------------} ${------------------------------------------------------------------------} $ $IMPLEMENTATION E (procedure SetEnv (e : Environ); ( (function GetRnd : RoundDir; (procedure GetEnv (var e : Environ); ( (function TestXcp (x : Exception) : boolean; (procedure SetXcp (x : Exception; OnOff : boolean); (function TestHlt (x : Exception) : boolean; (procedure SetHlt (x : Exception; OnOff : boolean); ({---------------- (** Manipulations of the static numeric state. (-----------------------------------------------------------------} ( (procedure SetRnd (r : RoundDir); (procedure SetEnv (e : Environ); ( (function GetRnd : RoundDir; ,{ sgn := sign of x (0 for pos, 1 for neg) } (procedure ScalbX (n : integer; var y : Extended); ,{ y := y * 2^n } (procedure LogbX (var x : Extended); ,{ returns unbiased exponent of x }  ({---------------------------------------------------------on ClassS (x : Single; var sgn : integer) : NumClass; (function ClassD (x : Double; var sgn : integer) : NumClass; (function ClassC (x : Comp; var sgn : integer) : NumClass; (function ClassX (x : Extended; var sgn : integer) : NumClass; ,{ x := x with the sign of y } ( (procedure NextS (var x : Single; y : Single); (procedure NextD (var x : Double; y : Double); (procedure NextX (var x : Extended; y : Extended); ,{ x := next representable value from x toward y } ( (functi(var x : Extended); ,{ x := rounded to integral value of x } (procedure NegX (var x : Extended); ,{ x := -x } (procedure AbsX (var x : Extended); ,{ x := |x| } (procedure CpySgnX (var x : Extended; y : Extended); s the integer closest 9to y / x (n is even in case of tie). . quo := low order seven bits of the integer quotient n, 9so that -127 <= quo <= 127. } (procedure SqrtX (var x : Extended); ,{ x := sqrt (x) } (procedure RintX ------------------ (** Numerical 'library' procedures and functions. (-----------------------------------------------------------------} ( (procedure RemX (x : Extended; var y : Extended; var quo : integer); ,{ (new y) := (old y) - x * n, where n i(procedure Str2S (x : DecStr; var y : Single); (procedure Str2D (x : DecStr; var y : Double); (procedure Str2C (x : DecStr; var y : Comp); (procedure Str2X (x : DecStr; var y : Extended); ,{ y := x } ({-----------------------------------------------procedure D2Str (f : DecForm; x : Double; var y : DecStr); (procedure C2Str (f : DecForm; x : Comp; var y : DecStr); (procedure X2Str (f : DecForm; x : Extended; var y : DecStr); ,{ y := x (according to the format f) } ( (These conversions have a built-in scanner/parser to convert (** between the intermediate decimal type and a string.) (-----------------------------------------------------------------} ( (procedure S2Str (f : DecForm; x : Single; var y : DecStr); ( y : Double); (procedure Dec2C (x : Decimal; var y : Comp); (procedure Dec2X (x : Decimal; var y : Extended); ,{ y := x } ({----------------------------------------------------------------- (** Conversions between the numeric types and strings. (** R*ܢá#**ۿ***-ˡ  *:Dá ا RˡIɡV á&çÍá > ˡ&çÍ*QI*Dا  R٨ P ɡ"á0áINññ@@0@Q@P==.Pؕ<áNAN''תP<áR/8-8+??צ ?8?8 ?צ ?Pɡ 8P_0.0תPȡ)ɡ??P? Q?P'ɡ??P?צ Q?P荡ȡ<Ä;;/>;,ɡ#??P?0Q?P>>.P>8??P?8U?P/ؑ>,>Nš N>>š3=>?=?ȡ#@@P@צ0Q@P==ȡ5=?=?ȡ#ˡ/14 ڡؼáڡؼZš0áۀ š ۀ*ByO7>zS8ȡ ȄPšPMšM/(<<<0Eá4+á4-á4.1.Ǹ ɡ ۏ01ۑ+-4.L0Ná=;á/Ä ڡؼ1A3N3'Ä!4' Ä1./-+á -á0Ná1. 2 .á0Eáa4.12,ɡ1.0آ  "10ˍ8,ɡ 1ɡؿ 0ÄL2٢10ˡ103آ1 41á?˄??&@ۂ"ˡu??š???#?$???$?#ń ?#?$?ۚ?$ܚ?AAA?AˡA  5~ 09Ȅ.!~Ȅ/azōaA??@ɡ??"@?Ä?á?????,? >"Má? > >? >á @@@ Ą @ ?ˡ\?%,?%???&@?"% ,    ݂܂F  -    ޏݏ@܏ޏ@ݏ܏ޏݏ܏܏ ݏ ܏- +$&!&%š#$ە##š##$"$##ɡ#"ɡ2ݓ&&Í&&&á&"&!)&%&&Í&&"&!)$%&&!!$$#ȡ!ˡ ء##ȡ''0'Q'Pˡǀġg/  ( ǀ > *ڨ ɡ(MMMM܏M܏T+ܨ ء '$' \)  ɡ-Í á ܑ ) '!Í ) % ɡ    ~ɡ  ~"(&آڢ٢آ&'ڢڢá ޡ?šڢڢ'ޡڢڢڢ~ڢ n( ȡ ۞$(@ $( $( ۡ#š #ȡEڧDEá ܂šޕݕɡɡR&çÍá ߑ5&çÍ<ˡ A2X.AFP.CODEʂ* 'ʂ*̂)ʂ+ʂ*ʂ*̂*ƨA2X.FPINIT.TEXTtfr*t|t+|ttSANELIBtx"JJ*.r]tJJ:>]t] NNKKI ^5IECommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, % *Procedure Load_FP; * %IMPLEMENTATION E what text? o9 Compiling... NNKKKA2X.FPINIT.CODEE[*]t\JJ>z^to^EDJ P:SANELIBT.CODECopyright Apple Computer Inc. 1984  FPINIT onverting comp NaN to floating. NANZERO .EQU 21. ; Attempt to create a NaN with a zero code. NANTRIG .EQU 33. ; Invalid argument to trig routine. NANINVTRIG .EQU 34. ; Invalid argument to inverse trig routine. d division such as 0/0. NANMUL .EQU 8. ; Invalid multiply such as 0 * INF. NANREM .EQU 9. ; Invalid remainder or mod such as x REM 0. NANASCBIN .EQU 17. ; Attempt to convert invalid ASCII string. NANCOMP .EQU 20. ; Result of c------------------- ; NaN codes. ;----------------------------------------------------------- NANSQRT .EQU 1. ; Invalid square root such as sqrt(-1). NANADD .EQU 2. ; Invalid addition such as +INF - +INF. NANDIV .EQU 4. ; Invali(.ENDM (.MACRO FCOSX ; cosine (FOPR1 FOCOSX (.ENDM (.MACRO FTANX ; tangent (FOPR1 FOTANX (.ENDM ( (.MACRO FRANDX ; random number generator (FOPR1 FORANDX (.ENDM ( ;---------------------------------------- (.MACRO FCOMPOUND ; compound (FOPR1 FOCOMPOUND (.ENDM (.MACRO FANNUITY ; annuity (FOPR1 FOANNUITY (.ENDM ( (.MACRO FATANX ; arctangent (FOPR1 FOATANX (.ENDM (.MACRO FSINX ; sine (FOPR1 FOSINX exp (x) - 1 (FOPR1 FOEXP1X (.ENDM (.MACRO FEXP21X ; exp2 (x) - 1 (FOPR1 FOEXP21X (.ENDM (.MACRO FXPWRI ; integer exponential (FOPR1 FOXPWRI (.ENDM (.MACRO FXPWRY ; general exponential (FOPR1 FOXPWRY (.ENDMN1X (.ENDM (.MACRO FLOG21X ; log2 (1 + x) (FOPR1 FOLOG21X (.ENDM (.MACRO FEXPX ; base-e exponential (FOPR1 FOEXPX (.ENDM (.MACRO FEXP2X ; base-2 exponential (FOPR1 FOEXP2X (.ENDM (.MACRO FEXP1X ; !FV hhh qhhhpxhr H(pmqxrH(HH`mhdVPx (`x (`(0Nuter Inc. 1984 $NZPI jT$$$PRODOS  <$PATHFP +PATHELEMl$SCREENWI$SP  $STRBUFF l$$X0 on at the time. Great ! It was not until I had read the Numerics Manual several times that I discovered that the Elems unit did not contain a random generator or the necessary trigonometric functions needed to provide a complete extension of theThe development of the SANE and Elems units was one of Apple's responses to this market pressure. This extended precision capability that appeared to be available on the AIII under Pascal was just what I needed for an application that I was working . For scientific applications, however, the lack of a true double precision floating point capability in either of these languages is one of the reasons the AIII lost out to you know who's computer in many scientific applications. ead through this manual and were immediately turned off by the system's seeming complexity and its attention to detail. For many business purposes, the long integer available in both Business Basic and Pascal are sufficient for accounting purposes plus a partially complete version of its companion unit Elems. The booklet "Numerics Manual: A Guide to Using the Apple III Pascal SANE and Elems Units" was bundled along with the familiar AIII Pascal spiralbound manuals. I am sure some of you rNumerical Environment (SANE). This revolutionary package was an attempt by Apple to standardize all numerical processing done on its computers including the AIII. Everyone who has a copy of AIII Pascal v1.1 should have gotten a copy of the SANE unit 'Secret' Number Crunching on the AIII by D. D. Meisel, Ph.D. Have you ever been doing a numerical problem on the AIII and wished for just a few more decimal places to a certain number ?? If so then you need to know about the Apple Standard ---------------------------------------------- !;----------------------------------------------------------- !;----------------------------------------------------------- !;-----------------------------------------------------------  NANLOG .EQU 36. ; Invalid argument to log routine. NANPOWER .EQU 37. ; Invalid argument to x^i or x^y routine. NANFINAN .EQU 38. ; Invalid argument to financial function. NANINIT .EQU 255. ; Uninitialized storage. !;------------- X $Y0 $ZP ZPI &V2%FIXFILEI %FIXFILEI%\"  !á  mathematical functions available in single precision. (There were plenty of financial functions in Elems so you know who Apple was trying to please.) Good grief, you mean I would have to write my own routines for these ! Ugh ! After consulting several standard works on numerical analysis, I started to work programming these functions myself. Why not simply admit defeat and go do it on a machine like the TRS-80 that has double precision built right into BASIC ? Well, I did better than thatߧQǀڧ*D*ȡ*ݡA7 Sڨ٨HS"ڨ٨IS "ڨ٨JS " ڨ٨K all copyrighted by Apple Computer, Inc., however, I see no reason why owners of AIII Pascal who got SANE/Elems with v1.1 are not entitled to an update of APPL3.SANE.CODE and ELEMS.CODE . on routines. The Pascal versions of SANE/Elems on this diskette are: APPL3.SANE.CODE and ELEMS.CODE The 6502 versions (AIII assembler compatable only) are: A3.AFP.CODE A3.AELEM.CODE CUSTOMIZE.DATA A3.CUSTOM.CODE A3.CUSTOM.LIB SANEMACRO.TEXT These aree types that have no counterparts in either language. This means that one is forced to return to using the 6502 machine language versions of SANE/Elems. The available functions are in general more primitive and there are no string conversiquite well except when I tried to insert them in the MODULA-2 library there were segment confilicts. (The same is true for the PGRAF unit.). In FORTRAN and Business Basic there are problems with string conversion and the fact that the units use variablcomplete, but few probably know it. What about FORTRAN, Business Basic, and MODULA-2 ? Well, I have tried the conversion of SANE/Elems to the Volition version of MODULA-2 and hit a snag right off the bat. The Pascal units translated one has SANE/Elems availble for use on the AIII, numerical computation will be of equal power (though slower) of that on the MAC and future Apple machines. Thus some AII Pascal programmers have an immediately useable AIII version of SANE/Elems that is sterious 8k space "reserved for use by Apple". Since there are also 68000 SANE/Elems versions, one suspects that SANE will surface as a PROM in the new Apple IIx and will be Apple's answer to the 8087 chip in the baby blue. It would appear that ifithin six months of offering SANE/Elems as an AII developers product, Apple has now discontinued it. Is this simply confusion or something more devious ? It turns out that the machine-language 6502 versions of SANE/Elems for the AII are placed into a myot even there at all !!! I have not checked Apple II Pascal v1.3 to see if SANE/Elems is in the supplied SYSTEM.LIBRARY. It is possible that the functions are built in as was promised (but not done, at least, for the AIII) in the Numerics Manual. Wons for computing a variety of other trig functions was given in an appendix. Developers of SANE had completed the task after all, but this was hidden from the users. In fact, when I got my copy of Apple III Pascal v1.2, the SANE/Elems units were nwere not being told existed. Reading through the revised sections describing the Pascal versions of Elems, I found much to my delight that both the trig functions and the random generator were a part of the package. In addition, instructiosity up so I ordered copies of these (#A2W0012 and #A2W0015) through my employer. When these arrived I found that not only did these have AII versions, but that they contained AIII versions too! Well, well, well! Here was another item AIII users and put the problem back on a main frame. Some time after that I wanted to bring up Apple II Pascal for my students and noticed that Apple was quietly selling SANE as separate items in both Pascal and Assembly language versions. This got my curi S" ٨RL"!٨RM""٨RN"#٨RO"$ɡڑ10 P ˡ0 P ɡצ-QP?V lTˡ-P P٢0á..P.0.0S.P٢Iá"..P.צINFINITYX.P٢Ná..P.צNAN''U.PáL٢٢T..P.٢l.צem.ǽ.Pצ.Pġ`..P.٢l.P% @hhhh QHH`$hhhh 1HH`$hhhhhh 1 1 HH`2dhhhh hhd HHd@L{h|hhhh  @ {|~)} ~8~ȑHH`zx>;61)%yvkheb[hhhh Ll(hhhh 㩁 LvHHL%@hhhhhh HH@L%@hhhhhh HH@L%@hhhhhh HHL%@hhh:HʊHHH`1.'$RhhhhhhLt 4hhhhhh Lv%" HL`LbL`hhhhhh    LX   LX   LX hhhhhhhh hhhh  :HHHHH`;980-&%^hhhhhhhh hh     LX   LX   LX   LX   LX   LX   LX   LXġ>9ɡ*á1 áJKLIJ$A\;F  LX   LX   LX   LX   LXW1\1-Ä .W1\1- 10-W1آ.-/=b~eL~&$X٪PJXJ!R)٪PJXJ"R*٪PJXJ#R+٪PJXJ$R,Y\1I,ɡ0//,,21آ33آ323 10ˡ10W1آáآ000á,آآآ0Ä//آآ+A>Ä>Äآآ\1 a.-W1\1+Ä W1\1I,ɡ*,,21آ33آ323//10ˡ10W1\1.ÄfW1\1I,ɡ0,,//21آ33آ323 10ˡ10W1\1.ÄW1\10Ä//W11N1nÍآN[[W1\1~~k1~ 91a11~ 91A121آ33آ323W1ܝ\10Ä W1\1,,21آ33آ323ϡV J JU>([ȡڝ[[[\(W٪Pآآת00/.-,20[\W1\1  W1\$1+á W11-áW1\1IÄآI؝\1iÄآIڝ\KPŝKPɍ Vڨ٨KJáV JJU>%ڨ٨KJáV JJU >&ڨ٨KJáV JJU >' ڨ٨K J ..ȡ //P/צ0Q/P..P.צ.Q.P٢ɡ+..P.٢l.P.Pf..P.0.R.P٢..ȡ //P/0Q/P..P.٢l.P JULc9\YVOLD;852" LLLLLhhhhhhhhhh荇ȱ荈謆 H)8ȭiHȑHH`WPK<62}zwtZhhhhHH`!*hhh)? **)hHH`+(:hhhhhhHHHH`'$0hhhhJjjȦ(( (j`)0 p((8(y` q.%qj{  `)0/y( q. q y LBjq0syl :}qmq` z?ʊMg4y :Iqq()y((`jȦ   ,|0 y Vy(u(* (E((& Y   z ?ʊMg6F 2((J)(8$u(( y) f)8}qqʰy (6()jj  ,|:|Jy( ((((`| ` JJJ1e((((f(( (((ʈݘ( )`v(E(f(((`,|Ey s r q|JL$ j` qr ssFq\yU 8.qʕ q0= j  ,q.y 2 6   {IL}kk`i(6}nn`)ȹ(ȹ((((( )0 (6(((({I8 `}qq`,x w`Lv E  `vEf jjj((8)0(6(knqL 8knq8qiq0~  s  qq  nqF v: F vivgIg6  !8kiq ()0 pL gLhLhi0>L  BL Lߩ L 0i,x{ BL @vE{L)(L( 0,x0   {L9( ( ((f  8 gȱj q䨱(L(( ʩ(j`hihi`q`kn` g u⨱(`uvghi00LXLȱ0,x0 BLh L X 䨪( ʈ( )(L,x0h i @ f  u((&v(E(f(((ƥк8k}nq0 gjj0 y|JL gjq((`hi X hhhhhhHHwةjgyf{LhL L= L+ iL@ QgL-Lxh;i4 {j  `Lhi0BL hL BLhLLH` LLLL@L@LL@LhhhhhhhhhhH8L(hhhh+P'$@C$! (k}mgbhhhhhhhh  ( ) ()    ( IH)IH)HHH` E F )e )(i(f(f)`\Khh lH +(vsliMLK*&!tsrmid_aaahhhh ȑhhHH0C?n vȑv` Ivʽvȑʽvݠ 51_1 .@*hhhhh!"k/ȱl/n/ȑHHL"#$%&)L#$'(%&HH@LL#$Lhhhhh'h(hhHH%&!"p/m/o/k/ȱl/n/ȑL"HH`'$<hhhhhhhhH8*1HHH`1.<hhh hhh8*f I1L< Ȫ1LHH`IFVLL^!"`p/m/o/h`    u & 6 `h0?L {Q ,xpQ gL{g BL h0$   h,x0 i0$i,x0 @hEi {QQgLz {Qgnq(0 i gkq (L(8nqkt'(8kqnt   y'u tvv L)A ʵ * * 6 v E  JJJ e  6*@V6l% d B&b&&&+Z+++.../=:4)&%$# ~`@ 橀ȑ ȑȑ戥LX?>; Lhhhhhhhh  0HȱHHH`H3&Lb&*++-n/V1R3(B\vFEDA@'pTS?>10)('&$#{zsrc\I>3('&$#     pon[ZSRQHG>;652/. w v m j e b ] R M @ } r o l k \ U R Q D < ; : 9 - , + *      S I H G (     ~ y d a ^ ] [ Z Y V U T {`PJIqpWVUOF.%$# }|nidZU10/+#"!  fa_^W54J6310+&#    ] O N J 4 1     LL      5@ ``8 H(hhWPONMLKFA<72/*#  U;:91.-*)#  ~{:hLnop @ g5;kn)0/lomp  %   I{% `   BL XL IzJ Q{nopih,x0(Lyqr .gJ L(( ssg(8(()0Ly BL| 1 h),xP iLLklm 5 hklm    i,xpnop(scr\){~)zrI)L)j).s(\F)q.sȹ.rLs)8f)((8:mssȹ:mrriqL( )LF)LLr)rsrж()0ШrЛ()ɀ))@ E)) (* *s:sr:r')Ngsjf)( (`6)Nrnsf)Nrnsv(E(((s NgjЯfr NgjsКLyr .gjȱ .gjrs(((y e (((6(.s.r ).s.r8f)((,ȹ(  & u E   E(ؠ ) JJJJ 0ȑ ) 0ȑᘠ`qj)Hy6%  s* g)ɀ `(g (`8(`yj)Ȅ(rs))0 rs  U(( ( ((LL )Ȅ (+ -Lg ;ܥ)) n((*((6((u(( C8&) )(u(( &8&) Ф)L( ssrqL BL( ((((ʈ(`,|po (<ȹ( E(0  h,x0 L)(Lj g 0ꪠ gL,xP BL u 0 ,x0  q nqnrns y  (( +F  ((( (  6 (( ( )&( ( ( u(( u( (f " 8       ʈ ( {  䪽FgV?( u(,v(E(f(((8qiqʰL(8 (50((zg0( L0  p0gIg8 (Jcd % ( i=` ( (,=) =x)) v(cd `# (,=ȅɅŐİ  ( ,=  HH`! (88" (èYÈ`,=0L  ZHYH`Lh~}k} ELEMS ELEMS $* v 9޹!Ná$ب;4)+&[á$vب3  &3  " ڨ8 :o    4fا١0A٨o=8@*٨9 Wá$E>(*%j:" ڨ٨ '('(ȡ '''"J B)٨9áká3AWe . )  AA 6٨;0á(A ڨ٨  ڨ ٨  0 ڨ٨1  V   :    ɡ0ȡ A "?=ȡޤ@=ȡޤA@ N٨ L ġ  A0 ġ  A0$&X((var x: Extended); ,{ x := (7^5 * x) mod (2^31 - 1) } , ${$p----------------------------------------------------------------------} $ $ $ $ $ $ $ $IMPLEMENTATION E '')P(procedure ATanX (var x: Extended); ,{ x := arctan (x) } , (procedure SinX (var x: Extended); ,{ x := sin (x) } , (procedure CosX (var x: Extended); ,{ x := cos (x) } , (procedure TanX (var x: Extended); ,{ x := tan (x) } , (procedure RandomX ded); ,{ x := (1 - (1 + r)^-n) / r } , Copyright Apple Computer Inc.1.1]tion in source): GETEXTNDCOEFLOOK '')Pr x : Extended); ,{ x := x^i } ( procedure XpwrY (y : Extended; var x : Extended); ,{ x := x^y } , procedure Compound (r, n : Extended; var x : Extended); ,{ x := (1 + r)^n } , procedure Annuity (r, n : Extended; var x : Extenended); ,{ x := ln (1 + x) } ( procedure Exp2X (var x : Extended); ,{ x := 2^x } ( procedure ExpX (var x : Extended); ,{ x := e^x } , (procedure Exp1X (var x : Extended); ,{ x := e^x - 1 } ( procedure XpwrI (i : integer; va $ (USES ( ,{$U fplib/appl3.sane.code} ( 0SANE { Standard Apple Numeric Environment } ; , procedure Log2X (var x : Extended); ,{ x := log2 (x) } ( procedure LnX (var x : Extended); ,{ x := ln (x) } , (procedure Ln1X (var x : Ext Copyright Apple Computer Inc. ȡ "6 B+٨9R^  +  u   : AAZUW*~٨  /A  o <, 9޹%3á [بo-/*,\ ڨ٨ 99%6áاا[ &áا[اxá%áا[X oÄ%/    ) 0*'9<I?=1'á0=A9áA DAEGb 9Ua![?=)-١$#ǀš0=A9áA \YW٤  ġ ٤(X p& ب oاo  ب  &  g$  o oo ب$    &   ġ ٤   ġ  ٤   L  `E بG  `     L , % ب ġġ  ٤ ġ  ٤   LQ   اo51Q بQ   0B" $ب  -9á 6579T ب  ġ  ٤ ġ  ٤    =w" # ب   0f^[ [6jV!j"V`ln[K[![j D& "2 F 9/;á# 0A 010AA9@A@A"0 ڨ٨ 99ÍÍÍ  j[~` "k( z ٨  /A   [ˡo Ao V2٨9"0áاj*,'2 P19á&áo&á [ná  A  AA9@A@A"oK[[o D&9ÍÍÍ VáN  /@ %+ e  /@A/0/*  ڨ٨ 99ÍÍÍ  j[á- ['ï [ɡ١2MNPKMá o0"!!ب1   ١2 $ 1A˄"@ ݲ!  P/٨9̨اI/ [ˡoAo 9áAA.. 9޹#1á jبب+-(.ZڀĄ"9Gá oبÍ~3- ب  3 3@"áAA[ /oA0٨ 3 -  3 3@&9á Aاj  ÍArTV0 o٨šء š * >-ڨـ -ġ6اo@@AAA -^!9Yz 9\i!c\?=)-١#$ǁš0=A9áA da]XZ9Vc!]?=)-%١0باo=A9áA ^[Y[|]?=.u$ !"#0A toje` 8 Q = L G B).3[V(procedure ATanX (var x: Extended); ,{ x := arctan (x) } , (procedure SinX (var x: Extended); ,{ x := sin (x) } , (procedure CosX (var x: Extended); ,{ x := cos (x) } , (procedure TanX (var x: Extended); ,{ x := tan (x) } , (procedure RandomX ded); ,{ x := (1 - (1 + r)^-n) / r } , Copyright Apple Computer Inc.1.1]tion in source): GETEXTNDCOEFLOOK '')Pr x : Extended); ,{ x := x^i } ( procedure XpwrY (y : Extended; var x : Extended); ,{ x := x^y } , procedure Compound (r, n : Extended; var x : Extended); ,{ x := (1 + r)^n } , procedure Annuity (r, n : Extended; var x : Extenended); ,{ x := ln (1 + x) } ( procedure Exp2X (var x : Extended); ,{ x := 2^x } ( procedure ExpX (var x : Extended); ,{ x := e^x } , (procedure Exp1X (var x : Extended); ,{ x := e^x - 1 } ( procedure XpwrI (i : integer; va $ (USES ( ,{$U fplib/appl3.sane.code} ( 0SANE { Standard Apple Numeric Environment } ; , procedure Log2X (var x : Extended); ,{ x := log2 (x) } ( procedure LnX (var x : Extended); ,{ x := ln (x) } , (procedure Ln1X (var x : ExtCopyright Apple Computer Inc. ELEMS ELEMS !!!!!!!!!!!!!!!!!!!!!!!2 | TH P(lx t n6^N.>T(>: nx x6r3 ,CLASSS ^BAF/A6X A^,ASGN }e$L>q?8(c3fv @bWB U $@E8h@oH:=Y@0l;@VLU@Y@hp7@ͳLy@]*Ә?j☁,:͓?bd_*?j0?N @@nleda^WRQK</+*!!!!!!!!!!!!!??5h!?5h!?JXT@yr?@֡Q kfv@CP+c&@ #y I@0ZD؈@zRhI@EkXV@- rг2~d@X~R{n@k]e@j٦@6Kp6@ =GQ[e;FF?aM!2?xD?WF9?F:k痃@^ 5>?y Ȑ/'\?Eӗ@ q @ZKpH@.au @?@@ @d3??d3??LMNN??ת]=LTLThhhohphhro qrrqLFiqis sisqHH` 7MWaku 5U(var x: Extended); ,{ x := (7^5 * x) mod (2^31 - 1) } , ${$p----------------------------------------------------------------------} $ $ $ $ $ $ $ $IMPLEMENTATION E '')P