D3w GD  l RU I  qCD@HH CD  HCiCD  ɛLw8AHUiT  Rh    TC D$I0CCDޅI H Fh8CEFDFEFH   ll S0`GG  )G`} ) ~  8`F E0 GƥCD }C ) eCCD D  C D     )16CS S)  C)D1 p p }0 C9DI pCDL~CiCDiD` DD˙` d J)L !}D L(( LL()  L| L( S LH 0p n  } CY?  q  L L  ` )} `A! d߰")-݆ "  $G@LLL&0") $G% }H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0 })8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH) }  hyhyB q L> Lm JJ  Ln*` dB%' }8  H H` 1 { LL   !L     Hh SY?  q  1L }  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF } G) *Gȩ GȽG GȌd q q G`  8   0G  `D}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR}1LJ舩9GIH`LJJ`HGHh l`} S gL   8 rii `дCDCG W  }C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}} |||||DOS DOSDOS SYS }}}}CDOS SYS} 0`BDELV !B }`LVUQ   ]   TU J ]L!T  #      TU  } L ? .  t`GBJ V~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI   0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DELV䌚 !B y`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J V (` 9 V⪍ ઍ  -'}LLu DEHILV 9 .l 9 .l  `` s$B VBH(}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVL)}1u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2e*}1i1232435ޥ<<8} 3E:}DISK OPERATING SYSTEM II VERSION 2.0SCOPYRIGHT 1980 ATARIA. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDGE J. D,}UPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRESSF. LOCK F-}ILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES9!&x#!7&p))'&X*./)L''-؆莟.}R'S  vW DEHHI 1A#! @ ~0ɛ8A0.) ȅ 1 1i/}il ! 1L NO SUCH ITEMSELECT ITEM OR FOR MENU! 0 .{z:*{}.|~ 1 0 00}JB 18L^%|DLl%DIRECTORY--SEARCH SPEC,LIST FILE? # 0 0 n&|D! 1L NOT A DISK FILE1}N !B 1L " 1 !BDED:}:1BJ|DE 1DEBH2}I 1 h0ߢ 0.  0?詛 1 ~0YЛ 1 "L<" "L 3} BL1TYPE "Y" TO DELETE...DELETE FILE SPECCOPY--FROM, TO?OPTION NOT ALLOWED COPYING---DN:4}# 0|D .L$A#B#C#JB|DE 1BHIDD#E 1D#0: B5} 1L B#C#C#B# B 1N#$0SYS1}:e#D# d# D# .d#ȽD# d# 𩛙d#X# 1,A#6}PdD#ELO- A.BJdD#E 1 1HH 0hh|DL^%1}:e# Lt% e#dD#EL%7} 1 0 . .0% 1L WILD CARDS NOT ALLOWED IN DESTINATION 0 A.|K@C}//3Hu ξL/L DRIVE TO WRITE DOS FILES TO?WRITING NEW DOS FILESTYPE "Y" TO WRITE DOS TO DRIVE 1.?}D1:DOS.SYSERROR - NOT VERSION 2 FORMAT. , &* բ( 1L `[) 0NΞ 0 L1M) 1@} L BAD LOAD FILELOAD FROM WHAT FILE?) 0 0#B 1L WHAT FILE TO LOCK?) 0 0$B 1L WHAT FILE TO UNLOCK?DUA}P DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO USE PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV. h  ,B}  `)  <0 2 2 0  ,   ,,ޢ* 1L ,K* 1 ~0 0C}FINSERT BOTH DISKS, TYPE RETURNERROR - DRIVES INCOMPATIBLE., 1 ~038  , 1L D}, &*  Lz+, 0 , 1 ~0 + Y,0!,0 ,L+ ,mm  v,"ǭE}0Ξ, 05,Lt+L +,Hh` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNF}INSERT DESTINATION DISK,TYPE RETURN`    `L,8,0( rG}L1(`ߢ) 1* 1 ~0Y`hhL S SL1) 8`NAME OF FILE TO MOVE?- 0 0|DLtH}% A., 1 <0 0 .@L# .BJ 1  DEHIB V L1 ,5 1 <0,L. I} JB|,A#Pd#DE 1 HI BDEHHII 1 B 1 , 1 <0,0Lf- B VJ},A#P, 1 <0 0L#L ߢ) 1* 1 ~0Yj383}mm ݭK}}`8}``|* ? ɛ,`|:(|/ 1L `DESTINATION CANT L}BE DOS.SYS0 0H{ $22Δ $28/L /) $2 Π $2 0 ξM}hAΞB,0 J 1 BޝDEHI,HDE 1HIHIDELSAVE-N}GIVE FILE,START,END(,INIT,RUN)O X0 1`BDEPHI V` X0H 1 L O}0 0 1L0`PLEASE TYPE 1 LETTER,0`hhL <0 1L0LA1 ,;ɛ7,"ɛ:ݦ1ݥP}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{Q}NAME TOO LONG B VL ` L1I H1EӝDL1|mDiE` V0`8d/8 i:"2!22 1R} L ERROR- 128ɛ+,' 20*.. өw2 1``2TOO MANY DIGITSINVALIDS} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4.uT} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4.u/* ǠԠȠٛ* * 報* é** V} *//* ٠ӠϠŠǠԠ */#defiW}ne AFP 11712 /* ɠ */#define FASC 11715 /* */#define IFP 11718 /* X} */#define FPI 11721 /* */#define FSUB 11724 /* Ұұ */#define FADD Y} 11727 /* Ұұ */#define FMUL 11730 /* Ұұ */#define FDIV 11733 /* ҰұZ} */#define EXP 11736 /* 媪Ұ */#define EXP10 11739 /*  */#define LOG [}11742 /* */#define LOG10 11745 /* 報 *//* ŠȠ */char fpha\}lf[6], k32k[6];c_iml()$(char *aexp;aexp = "0.5";c_afp (aexp,fphalf); /* */aexp = "32767.5";]}c_afp (aexp, k32k);$)/* ɠϠǠ */c_afp (atascii, fp)char *atascii; /* ɠ^} */char *fp; /* */asm AFP;/* ǠԠϠ */c_fa_}sc (fp, atascii)char *fp; /* */char *atascii; /* ɠ`} */asm FASC;/* ĠҠϠǠ */c_ifp (integer, fp)int integer; /* a} */char *fp; /* */asm IFP;/* ǠԠϠĠ */c_b}fpi (fp, integer)char *fp; /* */int *integer; /* c} */$(if (*fp & 0X80) return (-2);return c_fpiasm (fp, integer);$)c_fpiasm (fp, integer)char *fp; /* d} */int *integer; /* */asm FPI;/* ǠԠ e}*/c_fsub (minuend, subtrahend, difference)char *subtrahend;char *minuend;char *difference;asm FSUB;/* ǠԠf} */c_fadd (a, b, sum)char *a;char *b;char *sum;asm FADD;/* ǠԠ */c_fmul (a, b, produg}ct)char *a;char *b;char *product;asm FMUL;/* ǠԠ */c_fdiv (dividend, divisor, result)char *divideh}nd;char *divisor;char *result;asm FDIV;/* ̠Ǡ媪 */c_alog (exp, result)char *exp;char *result;asm EXi}P;/* ΠǠ */c_alog10 (exp, result)char *exp;char *result;asm EXP10;/* ̠ */c_log (nj}br, log)char *nbr;char *log;asm LOG;/* Π */c_log10 (nbr, log10)char *nbr;char *log10;asm LOG10;/* k}ǠԠŠ */c_sqrt (nbr, sqr)char *nbr;char *sqr;$(char lognbr[6];char logres[6];int status;if (*l}nbr & 0X80) return (-2);if ((status = c_log10(nbr, lognbr)) == -1) return (-1);if ((status = c_fmul(lognbr, fphalf, logrem}s)) == -1) return (-1);if ((status = c_alog10(logres, sqr)) == -1) return (-1);return (0);$)/* ǠԠn} */c_exp (base, exponent, result)char *base, *exponent, *result;$(int status;if (*base & 0X80) return (-1);if o}((status = c_log10 (base, result)) == -1) return (-1);if ((status = c_fmul (result, exponent, result)) == -1) return (-1);p}if ((status = c_alog10 (result, result)) == -1) return (-1);return (0);$)/* ǠԠϠĠҠq}򠼠 */c_fpsi (float, integer)char *float;int *integer;$(int negsw, status;char temp[6];c_abs r}(float,temp);if ((status = c_cmp (temp, k32k)) == +1) return (-1);negsw = 0; /* */if (*floats} & 0X80) $(negsw = 1; /* 嬠 */*float = *float & 0X7F; /* */$)c_fpi (float, intet}ger);if (negsw) $( /* 堮 */*float = *float | 0X80;*integer = -(*integer);$)return (0);$u})/* ĠҠϠǠԠ */c_sifp (sint, fpn)int sint;char *fpn;$(int negsw;negsw = 0;if (v}sint < 0) $(negsw = 1;sint = -sint;$)c_ifp (sint, fpn);if (negsw) *fpn = *fpn | 0X80;$)/* ΠҠw}ΠƠ */c_int (nbr, intpor)char *nbr, *intpor;$(int expon, i;expon = *nbr & 0X7F; /* x} */if (expon > 0X43) $( /* */move (nbr, intpor, 6);return (-1);y}$)else if (expon < 0X40) $( /* */move ("\0\0\0\0\0\0", intpor, 6);return (-2);$z})else $( /* */move (nbr, intpor, 6);i = expon - 0X3E;while (i < 6) $(*(intpor+i) = '\0';++{}i;$)return (0);$)$)/* Π̠ΠƠ */c_frac (nbr, fracpor)char *nbr, *fracpor;$(int |}expon;char temp[6];expon = *nbr & 0X7F;if (expon < 0X40) $(move (nbr, fracpor, 6);return (-1);$)else if (expo}}n > 0X43) $(move ("\0\0\0\0\0\0", fracpor, 6);return (-2);$)else $(c_int (nbr, temp);c_fsub (nbr, temp, fracp~}or);return (0);$)$)/* ŠϠǠԠ */c_cmp (fpn1, fpn2)char *fpn1, *fpn2;$(char temp[6];}c_fsub (fpn1, fpn2, temp);if (*temp == '\0') return (0);if (*temp & 0X80) return (-1);return (+1);$)/* ԠŠ}ŠƠǠԠ */c_abs (fpn, absfpn)char *fpn, *absfpn;$(move (fpn, absfpn, 6);*absfpn = *absfpn & 0}X7F;$)/* ŠΠƠǠԠ */c_chs (fpn, negfpn)char *fpn, *negfpn;$(move (fpn, negfpn, 6);*negf}pn = *negfpn ^ 0X80;$)/* ԠǠԠҠϠ */c_zero (fpn)char *fpn;$(move ("\0\0\0\0\0\0", fpn, 6);$})/* ŠǠԠ */c_move (fpn1, fpn2)char *fpn1, *fpn2;$(move (fpn1, fpn2, 6);$)\0\0\0\0", fpn, 6);$h'  ' '  ' ''-'-'-'      } ''-'-'-'-'-'-'-'-'- '      }  '  $    '  '  $     '  $ }  !'       '  $      } '  $      '  $   "'  #' }  ' $' $              '  }       %'  &     ' }    &'    C(   ''   }@&   ''     ''  > &    } " ('    @&   ''   C }(    ''    &'   ' $'   } ' $     #'   ''   )' }   ''   *'    ''+'   ''!0.532767.5 }'''fphalf'k32k'c_iml'c_afp'c_fasc'c_ifp'c_fpi'c_fpiasm'c_fsub'c_fadd'c_fmul }'c_fdiv'c_alog'c_alog10'c_log'c_log10 'c_sqrt!'c_exp"'c_fpsi#'c_abs$'c_cmp%'c_sifp&'c_int''mov }e('c_frac)'c_chs*'c_zero+'c_move ' ''-'-'-'      )/* àӠҠРŠà› * * 報 * é */char }sinfacs[48]; /* Π */char atanfacs[66]; /* Π */int radians; /* }蠨󬠱 */char rpd[6]; /* */char tq[6]; /* } */char half[6]; /* */char quarter[6]; /* */char ninety[6]; /* } */char one[6]; /* */char k60[6]; /* */char k3600[6]; /* */char r45[6]; /* } */char rads[6]; /* */char radsqr[6]; /* */char wrka[6]; /* } */int i;/* Šà */c_itrig()$(char *a,*b,*c,*d,*e,*f,*g,*h; /* ɠ} */char *j, *k, *l;char *k360;radians = 1; /* *//** ɠΠ}򠸠*/a = "6.283185308";b = "-41.34170225";c = "81.60524933";d = "-76.70585982";e = "42.05869}400";f = "-15.09464260";g = "3.819952591";h = "-.7181223031";c_afp (a,sinfacs+00);c_afp (b,sinfacs+06);c_afp (c,s}infacs+12);c_afp (d,sinfacs+18);c_afp (e,sinfacs+24);c_afp (f,sinfacs+30);c_afp (g,sinfacs+36);c_afp (h,sinfacs+42)};/* ɠΠ򠹠 */a = "+0.9999999996E+00";b = "-0.3333332394E+00";c = "+0.1999960464E+}00";d = "-0.1427915963E+00";e = "+0.1105450128E+00";f = "-0.8798772608E-01";g = "+0.6716109577E-01";h = "-0.4435753}388E-01";j = "+0.2227439439E-01";k = "-0.7199405000E-02";l = "+0.1091115409E-02";c_afp (a,atanfacs+00);c_afp (b,ata}nfacs+06);c_afp (c,atanfacs+12);c_afp (d,atanfacs+18);c_afp (e,atanfacs+24);c_afp (f,atanfacs+30);c_afp (g,atanfacs}+36);c_afp (h,atanfacs+42);c_afp (j,atanfacs+48);c_afp (k,atanfacs+54);c_afp (l,atanfacs+60);/* } */a = ".01745329252";c_afp (a, rpd);/* */a = "1.570796327";c_afp (a, ninety);/* }𮠱䠰 */a = "0.75";c_afp (a,tq);a = "0.5";c_afp (a, half);a = "0.25";c_afp (a, quart}er);a = "1.0";c_afp (a, one);a = "60";c_afp (a, k60);a = "3600";c_afp (a, k3600);a = "0.7853981634";c_afp (a,} r45);$)/* ԠǠźӠҠ */c_rad (i)int i;$(radians = i;$)/* ԠӠϠ */c_r}d (rad, degrees)char *rad, *degrees;$(return c_fdiv (rad, rpd, degrees);$)/* ԠӠϠ */c_dr (degre}es, rad)char *rad, *degrees;$(return c_fmul (degrees, rpd, rad);$)/* ԠӬӬĠӠϠ̠} */c_dmsd (degrees, minutes, seconds, dd)char *degrees, *minutes, *seconds, *dd;$(char temp[6];int status;mov}e (degrees, dd, 6);if ((status = c_fdiv (minutes, k60, temp)) == -1) return -1;if ((status = c_fadd (temp, dd, dd)) == -1}) return -1;if ((status = c_fdiv (seconds, k3600, temp)) == -1) return -1;if ((status = c_fadd (temp, dd, dd)) == -1) ret}urn -1;return 0;$)/* Ԡ̠ӠϠӬӬĠ */c_ddms (dd, degrees, minutes, seconds)}char *dd, *degrees, *minutes, *seconds;$(char temp[6];c_int (dd, degrees);c_fsub (dd, degrees, temp);c_fmul (temp, k}60, temp);c_int (temp, minutes);c_fsub (temp, minutes, temp);c_fmul (temp, k60, seconds);return 0;$)/* Ǡ}Ԡ */c_sin (angle, result)char *angle, *result;$(int negsw, sign, status;/* */if (radians) move (a}ngle, rads, 6);else c_fmul (angle, rpd, rads);/* */c_fdiv (rads, sinfacs, rads); /* }栱󠳶 *//*  */negsw = 0; /* *}/if (rads[0] & 0X80) $( /* 堮 */negsw = 1;rads[0] = rads[0] & 0X7F;$)c_frac (rads, rads); }/* *//* */if ((status = c_cmp (rads, tq)) == 1) $(c_fsub (o}ne, rads, rads);sign = 1;$)else if ((status = c_cmp (rads, half)) == 1) $(c_fsub (rads, half, rads);sign = 1;$})else if ((status = c_cmp (rads, quarter)) == 1) $(c_fsub (half, rads, rads);sign = 0;$)else sign = 0;/* } */c_fmul (rads, rads, radsqr); /* */i = 42;move (sinfacs+i, wrka, 6);do $(c_fmul }(wrka, radsqr, wrka);i = i - 6;c_fadd (wrka, sinfacs+i, wrka);$) while (i);c_fmul (wrka, rads, result);if (negsw)} *result = *result ^ 0X80;if (sign) *result = *result ^ 0X80;$)/* ǠԠ */c_cos (angle, result)char *a}ngle, *result;$(int sradians;char cosrads[6];/* */if (radians) move (angle, cosrads, 6);else c_fmul (ang}le, rpd, cosrads);sradians = radians; /* */radians = 1; /* */c_fsub (ninety, cosrads,} cosrads);c_sin (cosrads, result);radians = sradians;$)/* ǠԠ */c_tan (angle, result)char *angle,} *result;$(char wrkb[6];c_sin (angle, wrkb);c_cos (angle, result);c_fdiv (wrkb, result, result);$)/* Ǡ}Ԡ */c_atan (x, atan)char *x, *atan;$(int status, flag;char sign, w[6], y[6], z[6];move (x, y, 6);sign }= 0;if (*x & 0X80) $( /* */sign = 0X80;*y = *y & 0X7F;$)flag = 0;if ((status = c_cmp (y, one)) =}= 1) $(flag = 1;c_fdiv (one, y, y);$)c_fmul (y, y, z);/* */i = 60;move (atanfacs+i, w, }6);do $(c_fmul (w, z, w);i = i - 6;c_fadd (w, atanfacs+i, w);$)while (i);c_fmul (w, y, w);if (flag) c_fsub} (ninety, w, w); /* 堾󠮠 */*w = *w | sign;move (w, atan, 6);if (!radians) c_fdiv (atan, rpd, ata6} ' '    % 2 > }K W '  !' '  !' '  !' '  !' '  }!' '  !' ' $ !' ' * !' d v   }       '  !' '  !' '  !'} '  !' '  !' '  !' ' $ !' ' * !' }' 0 !' ' 6 !' ' < !' * ' !' 7 ' !' C} ' !' H ' !' L ' !' Q ' !' U ' !'} X ' !' ] ' !'"' '#' '  $'%' '  &'}''   ('  '  $'  $      )'  $}    '  $'  $      )'  $   }*'  +'   ,' '  &'  +'   ,' ' } &' -'' '  (' ' ' &' ' ' ' $' } '    '  '   ' ' .' ' ' /' $ ' ' }' ,'   ' ' /' $ ' ' ' ,'   ' ' /' $} ' ' ' ,'    ' ' ' &' *' ' ' '  (' ' }' ' &'' ' ' ' ' ' )'' ' '  &'    }    0''   (' '  &' ' '} '   ,'  -' '1'  -'  0'   $'2'}   ('         }' /' $  '   $'   &' <' ' '   ('  } &'' ' ' '  )''   &'  '   ,' }    ('' $ '  $' j6.283185308-41.3417022581.60524933}-76.7058598242.05869400-15.094642603.819952591-.7181223031+0.9999999996E+00-0.3333332394E+00+0.1999960464E+00-0.14279}15963E+00+0.1105450128E+00-0.8798772608E-01+0.6716109577E-01-0.4435753388E-01+0.2227439439E-01-0.7199405000E-02+0.1091}115409E-02.017453292521.5707963270.750.50.251.06036000.7853981634'0'B''''''}'''''''''sinfacs'atanfacs'radians'rpd'tq'half'quarter'ninety'}one'k60'k3600'r45'rads'radsqr'wrka'i 'c_itrig!'c_afp"'c_rad#'c_rd$'c_fdiv%'c_dr&'c_fmul'S}-.L-L.LO.Le.L.L.L.L/L8/LW/Lv/L/hhhh/h/ ذ /`L.hh/h/h>.G.M.h=.F.L. / إ8.9.}7.0<.L7.)E.K.`hhhh/h/ /`hh/h/hh / ٰԑȥՑL-L.hh/h/h/h/h/h/ / / `ڰ /}L-hh/./h/h/h/h/h/ / / fڰ /L-hh/h/h/h/h/h/ / / ڰ /L-L.hh/h/h/h/h/h/ / /} (۰ /L-hh/h/h/h/ / ݰ /L-hh/h/h/h/ / ݰE /L-hh/h/h/h/ / L/ /L-hh/h/h/h/ /} ް /L-L.//ԝ/`/`/`ذ /`L.hh/h/h>.G.M.h=.F.L. / إ8.9.? TITLE 'FLOATING POINT MATH LIBRARY'** BY FRANK PARIS* JUNE 12, 1983* COPYRIGHT (C) 1983* ORG $2DC0} JMP CAFP JMP CFASC JMP CIFP JMP CFPI JMP CFSUB JMP C}FADD JMP CFMUL JMP CFDIV JMP CEXP JMP CEXP10 JMP CLOG JMP} CLOG10** EQUATES TO FLOATING POINT ROM ROUTINES*AFP EQU $D800FASC EQU $D8E6IFP EQU $D9AAFP}I EQU $D9D2FSUB EQU $DA60FADD EQU $DA66FMUL EQU $DADBFDIV EQU $DB28EXP EQU $}DDC0EXP10 EQU $DDCCLOG EQU $DECDLOG10 EQU $DED1INBUFF EQU $00F3CIX EQU $00F2FR0 EQ}U $00D4FR1 EQU $00E0** ATASCII TO FLOATING POINT*CAFP PLA PLA STA INBUFF+1 PL}A STA INBUFF LDA #0 STA CIX PLA STA ZUB+2 PLA STA } ZUB+1 JSR AFP BCS ERROR JSR MZUBNOERR LDA #0COMMON TAX RTSERROR LDA } #$FF JMP COMMON** FLOATING POINT TO ATASCII*CFASC PLA PLA STA UBZ+2 PLA } STA UBZ+1 PLA STA UA+2 STA UAEX+2 STA UAEY+2 PLA STA } UA+1 STA UAEX+1 STA UAEY+1 JSR MUBZ JSR FASC LDA INBUFF } STA FPALUP+1 LDA INBUFF+1 STA FPALUP+2 LDX #0FPALUP LDA FPALUP,X BMI } DONEUA STA UA,X INX JMP FPALUPDONE AND #$7FUAEX STA UAEX,X INX } LDA #0UAEY STA UAEY,X RTS** INTEGER TO FLOATING POINT*CIFP PLA PLA STA FR0+}1 PLA STA FR0 PLA STA ZUB+2 PLA STA ZUB+1 JSR IFP } JSR MZUB RTS** FLOATING POINT TO INTEGER*CFPI PLA PLA STA UBZ+2 PLA } STA UBZ+1 PLA STA FR1+1 PLA STA FR1 JSR MUBZ JSR FPI } BCS ERROR1 LDY #0 LDA FR0 STA (FR1),Y INY LDA FR0+1 } STA (FR1),Y JMP NOERRERROR1 JMP ERROR** FLOATING POINT SUBTRACTION*CFSUB PLA PLA } STA UBZ+2 PLA STA UBZ+1 PLA STA UBO+2 PLA STA UBO+1 } PLA STA ZUB+2 PLA STA ZUB+1 JSR MUBZ JSR MUBO JSR FSUB } BCS ERROR1 JSR MZUB JMP NOERR** FLOATING POINT ADDITION*CFADD PLA PLA } STA UBZ+2 PLA STA UBZ+1 PLA STA UBO+2 PLA STA UBO+1 } PLA STA ZUB+2 PLA STA ZUB+1 JSR MUBZ JSR MUBO JSR FADD } BCS ERROR1 JSR MZUB JMP NOERR** FLOATING POINT MULTIPLICATION*CFMUL PLA PLA} STA UBZ+2 PLA STA UBZ+1 PLA STA UBO+2 PLA STA UBO+1 } PLA STA ZUB+2 PLA STA ZUB+1 JSR MUBZ JSR MUBO JSR }FMUL BCS ERROR2 JSR MZUB JMP NOERRERROR2 JMP ERROR** FLOATING POINT DIVISION*CF}DIV PLA PLA STA UBZ+2 PLA STA UBZ+1 PLA STA UBO+2 PLA } STA UBO+1 PLA STA ZUB+2 PLA STA ZUB+1 JSR MUBZ JSR } MUBO JSR FDIV BCS ERROR2 JSR MZUB JMP NOERR** FLOATING POINT EXPONENTIATIO}N - e**x*CEXP PLA PLA STA UBZ+2 PLA STA UBZ+1 PLA STA ZUB+2} PLA STA ZUB+1 JSR MUBZ JSR EXP BCS ERROR2 JSR MZUB } JMP NOERR** FLOATING POINT EXPONENTIATION - 10**x*CEXP10 PLA PLA STA UBZ+2 PLA } STA UBZ+1 PLA STA ZUB+2 PLA STA ZUB+1 JSR MUBZ JSR EXP10} BCS ERROR3 JSR MZUB JMP NOERR** FLOATING POINT NATURAL LOGARITHM*CLOG PLA } PLA STA UBZ+2 PLA STA UBZ+1 PLA STA ZUB+2 PLA STA ZU }B+1 JSR MUBZ JSR LOG JMP ERROR3 JSR MZUB JMP NOERR** FLOATING P }OINT BASE 10 LOGARITHM*CLOG10 PLA PLA STA UBZ+2 PLA STA UBZ+1 PLA  }STA ZUB+2 PLA STA ZUB+1 JSR MUBZ JSR LOG10 BCS ERROR3 JSR } MZUB JMP NOERRERROR3 JMP ERROR** MOVE FR0 TO USER BUFFER*MZUB LDX #0MZUBLP LDA FR0,X }ZUB STA ZUB,X INX CPX #6 BNE MZUBLP RTS** MOVE USER BUFFER TO FR0*MUBZ } LDX #0UBZ LDA UBZ,X STA FR0,X INX CPX #6 BNE UBZ RTS** MO}VE USER BUFFER TO FR1*MUBO LDX #0UBO LDA UBO,X STA FR1,X INX CPX #6 7}/* * * à * * * 報 * !}é*/#define CH 0X2FCchar hx[6], hy[6], nx[6], ny[6], z[6];char px[6], py[6];char sint[546]; /* */ch!}ar scrunch[6], k160[6], k96[6], xmin[6], xmax[6], ymin[6], ymax[6];main()$(int i,j;char *cp;char if[6];char *const!}ant;c_iml();/* */constant = "0.92";c_afp (con!}stant, scrunch);constant = "160";c_afp (constant, k160);constant = "96";c_afp (constant, k96);constant = "0";c_af!}p (constant, xmin);c_afp (constant, ymin);constant = "319";c_afp (constant, xmax);constant = "191";c_afp (constant,!} ymax);c_zero (z); /* */c_itrig(); /* */c_rad (0); /* !} *//* */i = 0;printf ("\f"); /* */poke (752, 1); /* !} */position (1,1);printf (" Math Library Demonstration Program\n");printf (" Turtle Graphics by Chris Paris\n");!}printf (" Clipping Algorithm by Frank Paris");position (1,12);printf (" Meanwhile, study your options:\n\n");position!} (1,14);printf ("Press SPACE bar to pause and continue.\n\n");printf (" Press SELECT to start new design.");position (1!},7);printf (" Initializing sine table.");position(1,8);printf ("Please wait until countdown reaches 0");while (i!} < 91) $(c_ifp (i, if);cp = sint + 6*i;c_sin (if, cp);position(19,9);j = 91 - i;printf ("%d ", j);++i;!}$)/* */for(;;) draw_design();$)/* ˠΠĠנ */draw_design()$(int delay, fd!}, angle, h, inc, freq;char fpfd[6];fd=0;h=20+rnd(320); /* */freq = rnd(4);inc = 1;clear!}screen (&angle);poke (CH, 255);while (fd < 600) $( /* 󠼠󠮠 */if(peek(53279)==5)! } break; /* */if (peek (CH) == 0X21) $( /* !!} */poke (CH, 255);while (peek (CH) != 0X21) continue;poke (CH, 255);$)/* !"} */if ((freq == 0) || (freq == 1)) ++fd;else if (freq == 2) $(++fd;++fd;$)else $(if (inc) $(!#}inc = 0;++fd;$)else inc = 1;$)/* */c_ifp(fd,fpfd);forward(fpfd, angle);angle = h !$}+ angle;if (angle > 359) angle = angle % 360;$)/* */delay=0;while!%}(delay<1000) $(++delay;if(peek(53279)==5) break; /* */if (peek (CH) == 0X21!&}) $( /* */poke (CH, 255);while (peek (CH) != 0X21) continue;poke (CH, 255!'});return;$)$)$)/* ŠӠĠנŠ */forward(distance, angle) char *distance;int angle;!(}$(int sign,cosign,y,x,status;char *cp;char x1[6], x2[6], y1[6], y2[6]; /* *//* !)} */if(angle<91) $(x=angle;sign=0;y=90-angle;cosign=0;$)else if(angle<181) !*}$(x=180-angle;sign=0;y=angle-90;cosign=1;$)else if(angle<271) $(x=angle-180;sign=1;y=270-angle;co!+}sign=1;$)else $(x=360-angle;sign=1;y=angle-270;cosign=0;$)/* */cp=sint+6*!,}x; /* */move(cp,hy,6);if(sign) *hy = *hy ^ 0X80;cp=sint+6*y; /* */move(cp,hx,6);if(cosign) *hx = *h!-}x ^ 0X80;/* */c_fmul (hx, distance, nx);c_fadd (nx, px, nx);c_fmul (hy, distance, ny!.});c_fadd (ny, py, ny);/* */c_fmul (scrunch, ny, ny);/* !}' '  ' !'  ' !'  ' !'  %0} ' !' ' !'  ' !'  ' !' ' "'#' $'  %1} %'   &'   ''  %' > %' b %'  '' %'   '' %'%2} %'   '' %'   ''  %' [&  (' '   %3}  )'  '' [   :  %' "*'*'%4}   @ +'  +'  ,'  &' X&%5}  -' $   -' !$  &'  -' !%    &' %6} $ %  $ % " $ " "   "%7}   ('  .'    g(  h  %8} & "  -' $  -' !$  &'  -' !%%9}  &'.' [&    Z%:}    &     Z  &  %;}      !  h      ! '%<}    '  /' " ' ' " '    '  /' # ' %=}' # '  ' 0' ' ' ' 1' '  ' 0' ' ' ' 1' ' ' ' 0' '%>} '  1' ' '  2' ' '  1' ' '  2'    ' ' ' ' 3'%?} ' '  /' ' '  /','  4'  5'   &'   &' ' '  /'%@} ' '  /' Z?0.92160960319191} Math Library Demonstration Program Turtle Graphics by %A}Chris Paris Clipping Algorithm by Frank Paris Meanwhile, study your options:Press SPACE bar to pause and continue.%B} Press SELECT to start new design. Initializing sine table.Please wait until countdown reaches 0%d '''%C}'''''"''''''''hx'hy'nx'ny'z'px'py'sint&/}/* * бв * Fundamentals of Interact)E}ive Computer Graphics * 𮠱 * ɠí)F} * 報 * é */#define true 1#define false 0clipper (x1, y1, x2, y2, xmin, xmax, y)G}min, ymax)/* ɠ */char *x1, *y1, *x2, *y2; /* )H} */char *xmin, *xmax, *ymin, *ymax; /* ɠ堸 */$(char tempa[6], tempb[6];)I}int accept, reject, done;int d1, d2, d3, d4;char outcode1, outcode2, tempc;/* */accept = false;)J}reject = false;done = false;while (!done) $( /* 堮 */outcodes (x1, y1, &outcode1, xmin, xmax, ymin,)K} ymax);outcodes (x2, y2, &outcode2, xmin, xmax, ymin, ymax);if (outcode1 & outcode2) reject = true; /* )L} */if (reject) done = true;else $( /* */if (!(outcode1 || outcode2)) accept = true;if (acce)M}pt) done = true;else $( /* *//* б)N}󠱠䠲б */if (!outcode1) $(tempc =)O} outcode1;outcode1 = outcode2;outcode2 = tempc;move (x1, tempa, 6);move (x2, x1, 6);move (tempa)P}, x2, 6);move (y1, tempa, 6);move (y2, y1, 6);move (tempa, y2, 6);$)/* )Q}б媨婪)R} */if (outcode1 & 0X80) $( /* */c_fsub (x2, x1, tempa);c_fsub (ymax, y1, )S}tempb);c_fmul (tempa, tempb, tempa);c_fsub (y2, y1, tempb);c_fdiv (tempa, tempb, tempa);c_fadd (tempa)T}, x1, x1);move (ymax, y1, 6);$)else if (outcode1 & 0X40) $( /* */c_fsu)U}b (x2, x1, tempa);c_fsub (ymin, y1, tempb);c_fmul (tempa, tempb, tempa);c_fsub (y2, y1, tempb);c_fdiv)V} (tempa, tempb, tempa);c_fadd (tempa, x1, x1);move (ymin, y1, 6);$)else if (outcode1 & 0X20) $( /* )W} */c_fsub (y2, y1, tempa);c_fsub (xmax, x1, tempb);c_fmul (tempa, tempb, te)X}mpa);c_fsub (x2, x1, tempb);c_fdiv (tempa, tempb, tempa);c_fadd (tempa, y1, y1);move (xmax, x1, 6);)Y}$)else if (outcode1 & 0X10) $( /* */c_fsub (y2, y1, tempa);c_fsub (xm)Z}in, x1, tempb);c_fmul (tempa, tempb, tempa);c_fsub (x2, x1, tempb);c_fdiv (tempa, tempb, tempa);c_fad)[}d (tempa, y1, y1);move (xmin, x1, 6);$)$) /* */$) /* */$) /* *)\}/if (accept) $(c_fpi (x1,&d1);c_fpi (y1,&d2);c_fpi (x2,&d3);c_fpi (y2,&d4);plot(d1,d2);drawto(d3,d4);)]}$)$) /* *//* ŠŠҠĠԛ)^}*/outcodes (x, y, oc, xmin, xmax, ymin, ymax)_})char *x, *y, *oc, *xmin, *xmax, *ymin, *ymax;$(char temp[6];*oc = '\0'; /* *//* )`} */c_fsub (ymax, y, temp);if (temp[0] & 0X80) *oc = *oc | 0X80;/* */c_fsub (y, ymin, temp);i)a}f (temp[0] & 0X80) *oc = *oc | 0X40;/* */c_fsub (xmax, x, temp);if (temp[0] & 0X80) *oc = *oc | 0X20;)b}/* */c_fsub (x, xmin, temp);if (temp[0] & 0X80) *oc = *oc | 0X10;$) (temp[0] & 0X80) *oc = *oc | 0X20;(W'    $    -d}   '       '    -e} %  % $      $    -f}   '   '   '   '   '  -g} '      '   '   '   ' -q}"B'DOS SYSB*+DUP SYSB/UMATHLIB C BMATHLIB CCCB0TRIG C BTRIG CCCBMATHLIB OBJB.MATHLIB ASMB$TURTLE C B/TURTLE CCCBDCLIPPER C BcCLIPPER CCCB{TURTLE LNKBk|TURTLE COMB.TESTFP C BTESTFP LNKB%TESTFP CCCBgETESTFP COMBDISKNAMEDATE8 EFL4 LCCDEEFF` L .  EDH BILV%H$H`NDos by S.Baucke~~~ A.B.B.U.C e.V. Math.Demo Math.Test Programm ~~~Select program. |E  '   '   '  @   '   '-r}   '   '   '   '   ' -s}    '   '   '   '   ' -t}  '   '    '   '   -u}'   '   '   '   '  -v}  '  '  '  '  '  ''-w}    '        '   -x}  @   '        '  -y}   'clipper'outcodes'move'c_fsub'c_fmul'c_fdiv'c_fadd'c_fpi'plot'drawto-z}   'clipper'outcodes'move'c_fsub'c_fmul'c_fdiv'c_fadd'c_fpi'plot'drawto,turtleclipperprintfaiographicsmathlibtrigmathlib.objdbc.obj'c_fmul'c_fdiv'c_fadd'c_fpi'plot'drawto0D@@dbc @l]] >F I ] CF I ] GF I ] JF I ] 5}}I ] LF I ] PF I ] G ab d  TF N   Z   b[ VF N |F N 5~}F N  AA b[ F N   b[ F N G N   b[ 3G N   b[ RG N [&A  ]5} G     0f  b[ [   xG  N "SAAAAA 5}  @ \BB  \  E  Z X&3C  Z $EB3C  Z !$B  Z 5} Z !%wBaBaB  Z $ % B $ %B "B $B " "B B  5}"B   ] CC C    g(0C  h&B  &C "  Z 5}$aCC  Z !$C  Z  Z !%C}C}C  Z;C [&C5}    Z   DDD &9D     Z D &tD  5}     D h       G    G  QZ D 5}G G  G    }G  QZEE E }G }G  }G  G ] G G G ] G  G ] 5}G G G ] I G G ] I G  ] I G  ] I G  ] I G  ]    I I I 5}I I G G  QZ G G  QZ  Z  Z  FF  Z   Z G G  QZ G G  QZ Z5}0.92160960319191} Math Library Demonstration Program Turtle Graphics by Chris Paris Clipping Algorithm by 5}Frank Paris Meanwhile, study your options:Press SPACE bar to pause G|Gand continue. Press SELECT to start new design5}. Initializing sine table.Please wait until countdown reaches 0%d IJ 5}   $M       M       M J 5} J M % J % $J  J M $tKJK     5} QZ   QZ   QZ   QZ   QZ   QZ K   ]5}   ]   ]   ]   ]   ]  KL QZM @L5}   ]   ]   ]   ]   ]   ]   QZM5} M   ]   ]   ]   ]   ]  LM ] 5}  QZM M   ]   ]   ]   ]   ]   5}]   QZ/J M  ]  ]  ]  ]  ;[  ZMN5}    ]  2N      ]  eN   @   5}]  N      ]  N   NO Z   5}  Z Z bO Z     Z Z   Z bO5}   Z Z oQ   % ~Z &O  uX OP(P  5}   X         P " #   -$ZP  P 05})  9'P    0PP"P       Z d$P  PQ  sQ5}^Q s$P   T^Q c$ Q   S^Q x$BQ   R^Q  W 5}  " #O   ' &Q  "# -   #R  QR5}   (R  "#  0      Q $AR  "# 0   5} (oR    T  uX &R    T    5} )RSPS      (?S 'S  "#  07S  "#  a   5} R $nS  "# 0    (S    T  uX &S  5}  TST (S   T  W &T   T  Z (MT5}    T  uX &|T    T #" (T  WT TU 5} T $  $  $T "TTT  +$  -$+U -$U    " 5}  0)  9'sU    0  "3U     U UV$ 5} $  $U "UUU sV 0)  9'U  0OV a)  f'$V  WOV5} A)  F'LV  7OVsV     "U   &V @ 5}VW  Z $VV "V $V     Z  r$W =W w$W 5}=W a$5W =W        X    &W W  5} WX   Z   X W     X 00 W W5}   x   X &BX   H Z    uX  ZX 5}    XY XX 0    X  "#  YX # 5} &Y  $  $   :%   :%   :%Y Z NZ   NZ 5} NZ    YZ  . ~Z &Y   .     NZ a& % Z5} z( %ZZ  A& % :Z Z( %DZMZ  00      QZ5}00 0u ~Z000!0D:Z[  W    0   Y] W \]  \] Z U  5}Z T  Z       X  b[  W T  Z U  Z\]  W U  Z 5}T  Z        Z [\ \] Z   Z U  Z T  Z     5}  X p   Z |   Z x   Z    Z \ .[\b\ j\.j5}\r\  u\|\ \u\ \ .\\ \.\\[]\  \\ \\$0 &\  #5} @)\  #]   )]  \ #  Z Z   &Q]#] S:5}]]\^ a a ] a a ]---  ]    ]---------5}  ]     ]  $^    a  ]  $:^     ]  $5}]^  ]^\_   |^     ]  $^      ]  $^  5}   ]  $^     ka  a (a $+_     X_ 5}    ]_\` ] _        &_     5} ] _       C( `   QZ  ` @&H` a   QZ 5} `   QZ]`\a  > &`    "h`     @&5}`   QZ  $a C(` a   QZ  $a  _   ]   5} ] $Pa  da ]aa     QZ      QZ   5} a   QZ   QZ0.532767.5bc k 5}i j j j 'j 3j @j Lj _k  ] _k  ] _k  ] _k 5} ] _k  ] _k  ] _k $ ] _k * ] Ycdj kj }j j j 5} j j j j j k k  ] k  ] k  ] k  ] k 5}  ] k  ] k $ ] k * ] k 0 ] k 6de ] k < ] 5} k k ] ,k k ] 8k k ] =k k ] Ak k ] Fk k ]5} Jk k ] Mk k ] Rk l ] k k  ] k ef ] 5}  QZ  k  ]  $Ie      ]  $qe    k  ]  $e 5}     ]  $e     _   ] k  ]  fg_ 5}  ] k  ] kSf l  QZdf k l ] l _k l ]  l  5}f  l  l   l l ` l k (a $f k l l ] ]g l k (a $g5}h!g l k l ] ]g l k (a $Ug k l l ] ]g  l l l ] *l _k l 5}l  QZ l l l ]l l l _k l l ]lgg l l  ] g    h   5} hik$h   QZ5h k  ] k k k   ]  0f k 5} 0f  h   ]   QZ   h    5}   k (ija $&i  k   ]   ] <l k l   QZ   ]l 5}l k l  ]liQi   ] i k   ]     QZk $i k 5} ] 6.283185308-4jk1.3417022581.60524933-76.7058598242.05869400-15.094642603.819952591-.7181223031+0.99995}999996E+00-0.3333332394E+00+0.1999960464E+00-0.1427915963E+00+0.1105450128E+00-0.8798772608E-01+0.6716109577E-01-0.4435}5753388E-01+0.2227439439E-01-0.71994k^k05000E-02+0.1091115409E-02.017453292521.5707963270.750.50.251.06036000.785}53981634-.L-L.LO.Le.L.L.L.L/L8/LW/Lv/L/hhhh/h/ ذ /`L.hh/h/h>.G.M.h=.F.L. / إ5}8.9.7.0<.L7.)E.K.`hhhh/h/ /`hh/h/hh / ٰԑȥՑL-L.hh/h/h/h/h/h/ / 5}/ `ڰ /L-hh/./h/h/h/h/h/ / / fڰ /L-hh/h/h/h/h/h/ / / ڰ /L-L.hh/h/h/h/h/h5}/ / / (۰ /L-hh/h/h/h/ / ݰ /L-hh/h/h/h/ / ݰE /L-hh/h/h/h/ / L/ /L-hh/h/h5}/h/ / ް /L-L.//ԝ/`/`/`00L 2Li0L0L0L0L1LP1L^1L1L1L1L1L1 3ت5}ʎL08L0إ M0ԆLa4L0 HȱHL0JH @3lhhh hhBhhDEhhHIhhJhhK V5}Ii``hhh) BHI V0`L0hhhhh) BHIL0hh01hhh L 1`hhh5}hhhhL41`hhhHlhhhhhhh ``Ls1hhh5}`hhhhh`hhh𪈱`hhhȱhh`hhh) hhhh) 12 hh)`dbc@2L!5}2CL36Щ2ѭ@ҭ@LF2@ @2C2l  j2عk2l`'013W3h3{3333333334-4E4a44444455}5)5P5`5555556*696B6^6q6666666664dbc 1 run-time-error ""Type a key to ret23urn to DOS.2 BȝD25}E8HI Vl @3؅ԘLF2ЅȱЅ٥iА` @3؅ȱ؅LF2 @3e؅ԥeمLF2 @3ԑLF2 @35}ȥՑLF2 3ԑإ8ҥLF2҅ȱ҅` 3ԑȥՑL3ԅԄLF2ԪȱԅՆLF2BL3 @334؅ԥمLF2 4ԑȥ5}LF2iҥi `AL3Ա҅ԊȦձ҅ՊLF2 4 @3Рȥёҥ؅ХمLF2҅ȱ҅ _2إ8؅ҥLF25}б҅ЊȦѱ҅ъLF2 @3؅ХمLF2L4eЅАLF2 @3L4 @3e؅ҥeم45AL3LF25}&LF2eԅȱeՅL38ԅȱՅL3ԍՍҍȱҍ 7ԭL3 p5ԭL3 p5ԭL3ҍȱ5}DL3դL87ԅȱՅL3EԅȱEՅL3%ԅȱ%ՅL3҅ȱ҅FfL356ȱ҅L35}҅ȱ҅&L3Ա҅L38ԅԩՅLF2EԅԩEՅLF2LF2LF28ԅȱՅ` M6ʆL5}3 M6ԅL3 M60 M60 M60åп M60ՐнԐՐЪԐПՐ67 61}/*  Ԡӛ * * é * * 報 */main()$(char number[20];c_iml();9}c_itrig(); /* */poke (82, 1); /*  */for (;;) $( /* 9} */printf ("\f MATHLIB UNIT TESTS\n\n");printf ("This program tests MATHLIB.\n");printf ("Choose the t9}est you want by typing\n");printf ("the number of the test from the\n");printf ("following list:\n\n");printf ("1. S9}ine, Cosine, Arctangent\n");printf ("2. Decimal Degree Conversions\n");printf ("3. Exponentiation\n");printf ("4. Di9}vision\n");printf ("5. Integer and Fractional Components\n\n");printf ("Only those features are tested that\n");prin9} */c_fadd (k160, px, x1);c_fsub (k96, py, y1);c_fadd (k160, nx, x2);c_fsub (k96, ny,!} y2);/* 嬠 */clipper (x1, y1, x2, y2, xmin, xmax, ymin, ymax);move(nx,px,6);move(ny,p!}y,6);$)/* ҠΠĠŠŠŠǠ */clearscreen(angle)int *angle;$(graphics(24); /* 堸 */!}color(1);poke(710,16); /* */poke(712,16); /* */move (z,px,6);move (z,py,6); /* "3}tf ("are not thoroughly tested by the\n");printf ("TURTLE program supplied to the user.\n");printf ("To return to this 9}menu at any time,\n");printf ("press SELECT while test gives answer.\n");printf ("Note that the ATARI Floating Point RO9}M\n");printf ("is very erratic about reporting the\n");printf ("out of range condition correctly.\n\n");printf ("Wha9}t test do you want?\n");gets(number); if (number[0] == '1') testsca();else if (number[0] == '2') degrees();el9}se if (number[0] == '3') exponen();else if (number[0] == '4') divisio();else if (number[0] == '5') intfrac();else co9}ntinue; /* */$)$)/* ԠŬŬĠ */testsca()$(char a9}ngle[120];char fpang[6];char result[6];char aresult[20];int i;printf ("} ǠԠǠ\n\n\n")9};printf ("Preface angle type with function key:\n");printf ("'S' for SIN, 'C' for COS, 'A' for ATAN.\n");printf ("Enter9} angles prefaced with either\n");printf ("'R' for radians or 'D' for degrees.\n\n\n");for (;;) $(i = 0;while (i < 29}0) $(angle[i] = '\0';aresult[i] = '\0';++i;$)printf ("Angle? ");if (peek (53279) == 5) return;gets(an9}gle);c_afp (angle+2, fpang);if (angle[1] == 'R') $(c_rad (1); /* */if (angle[0] == 'C') c_cos 9}(fpang, result);else if (angle[0] == 'S') c_sin (fpang, result);else c_atan (fpang, result);c_fasc (result, aresu9}lt);if (angle[0] == 'C')printf ("\ncos of %s radians = %s\n", angle+2, aresult);else if (angle[0] == 'S') p9}rintf ("\nsin of %s radians = %s\n", angle+2, aresult);else printf ("\ntan of %s = %s radians\n", angle+2, aresult);$)9}else $(c_rad (0); /* */if (angle[0] == 'C') c_cos (fpang, result);else if (angle[0] == 'S') c9}_sin (fpang, result);else c_atan (fpang, result);c_fasc (result, aresult);if (angle[0] == 'C')printf ("\ncos9} of %s degrees = %s\n", angle+2, aresult);else if (angle[0] == 'S')printf ("\nsin of %s degrees = %s\n", angle+2, ar9}esult);else printf ("\natan of %s = %s degrees\n", angle+2, aresult);$)$)$)/* Ԡ̠Š */:}degrees()$(char deg[6], min[6], sec[6], ddeg[6], aux[20], output[17];char out1[17], out2[17], out3[17];printf ("\f");:}for (;;) $(if (peek (53279) == 5) return;printf ("Decimal Degrees (Y or N)?\n");gets (aux);if (aux[0] == 'Y') $:}(printf ("How many decimal degrees?\n");if (peek (53279) == 5) return;gets (aux);c_afp (aux, ddeg);c_ddms:} (ddeg, deg, min, sec);c_fasc (deg, out1);c_fasc (min, out2);c_fasc (sec, out3);printf ("%s degrees, %s minut:}es, %s seconds\n\n", out1, out2, out3);$)else $(printf ("How many base 60 degrees?\n");if (peek (53279) == 5) r:}eturn;gets (aux);c_afp (aux, deg);printf ("How many base 60 minutes?\n");if (peek (53279) == 5) return;ge:}ts (aux);c_afp (aux, min);printf ("How many base 60 seconds?\n");if (peek (53279) == 5) return;gets (aux);:}c_afp (aux, sec);c_dmsd (deg, min, sec, ddeg);c_fasc (ddeg, output);printf ("%s decimal degrees\n\n", output);:}$)$)$)/* Ԡ */exponen()$(char pntr[20], bas[6], exp[6], result[6], answer[17];int status;prin: }tf ("\f EXPONENTIATION TEST\n\n\n");for (;;) $(if (peek (53279) == 5) return;printf ("Base?\n");gets (pntr);: }c_afp (pntr, bas);printf ("Exponent?\n");gets (pntr);c_afp (pntr, exp);status = c_exp (bas, exp, result);if: } (status == 0) $(c_fasc (result, answer);printf ("The answer is %s\n\n", answer);$)else printf ("Answer is out : }of range\n\n");$)$)/* Ԡ */divisio()$(char pntr[20], bas[6], exp[6], result[6], answer[17];int status;: }printf ("\f DIVISION TEST\n\n\n");for (;;) $(if (peek (53279) == 5) return;printf ("Dividend?\n");ge:}ts (pntr);c_afp (pntr, bas);printf ("Divisor?\n");gets (pntr);c_afp (pntr, exp);status = c_fdiv (bas, exp, res:}ult);if (status == 0) $(c_fasc (result, answer);printf ("The answer is %s\n\n", answer);$)else printf ("Answ:}er is out of range\n\n");$)$)/* ԠԠĠ */intfrac()$(int i, status;char fpn[15], fpn1[15], fpn2[15]:};char nbr[6], integer[6], fraction[6];printf ("} ԠĠ\n\n\n");for (;;) $(i = 0;while :}(i < 15) $(fpn[i] = '\0';fpn1[i] = '\0';fpn2[i] = '\0';++i;$)if (peek (53279) == 5) return;printf (":}\nԠӠҠǠԠҿ\n");gets (fpn);c_afp (fpn, nbr);status = c_int (nbr, integer);c_fasc (integ:}er, fpn1);printf ("\ninteger = %s, status = %d", fpn1, status);status = c_frac (nbr, fraction);c_fasc (fraction, fpn:}2);printf ("\nfraction = %s, status = %d\n", fpn2, status);$)$)報 */main()$(char number[20];c_iml();8FTESTFPAIOMATHLIBTRIGPRINTFMATHLIB.OBJDBC.OBJ2, status);$)$)報 */main()$(char number[20];c_iml();<3''' R  ' '  ' < ' ` ' ' ' B}' ' ' '  ' ; ' ] '  '  '  '  '  'B} @ ' '  1$'  2$'   3$ ' B}  4$ '   5$' 'x XB} '  '  '  '  '  &h      B}  "  '  ' $fh 'h   'h  R$  'B}h  C$  'h  S$  '   '  !'B}h  C$ ! f   'h  S$ : f   ' S f B}  '  'h  C$!  '"!h  S$#  '$#B }   '$"  !'h  C$% l f   '&%h  S$'  f B!}  '('  f   '(& f'  ')B"},+),  ' $--  ' '  Y$.  '  ' $//B#} '  '    "'   !'  !'  !'     'B$} 0.  '  ' $11 '  ' 0 '  ' $22 'B%}  ' K '  ' $33 '  '    #'   !'B&} f  '0+*' { '47647  ' $88  B'}' '  '  ' '  '    $' $9  !'B(}   ':9  ':65'  ';>=;>  ' $?B)}?  ' '  '  ' '  '    %' $B*}@  !'   'A@  'A=<' 8 'BEDB+}BE F &G          "FG  ' $HB,}H ^ ' '  '   &'  !'    '   ''B-}  !'    'DC} MATHLIB UNIT TESTSThis program tests MATHLIB.Choose the B.}test you want by typingthe number of the test from thefollowing list:1. Sine, Cosine, Arctangent2. Decimal Degree CoB8}'scrunch'k160'k96'xmin'xmax'ymin'ymax'main 'c_iml!'c_afp"'c_zero#'c_itrig$'c_rad%'printf&'&0}poke''position('c_ifp)'c_sin*'draw_des+'rnd,'clearscr-'peek.'forward/'move0'c_fmul1'c_fadd2'c_fsub3&4}ԐLg6Ր԰Lz6&&& L27 `ɀE ɀf8ਊ62} 7$ 8$P 8`E0 IIL78L7Ff eeF765} */*angle = 90; /* */$)learscreen(angle)int *angle;$(graphics(24); /* 堸 */ @'clipper4'graphics5'color_sin*'draw_des+'rnd,'clearscr-'peek.'forward/'move0'c_fmul1'c_fadd2'c_fsub3$7fff$ 8` 2`/`/`00L 2Li0L0L0L0L1LP1L^1L1L1L1L1L1 3ت4#n);return 0;$)l (w, z, w);i = i - 6;c_fadd (w, atanfacs+i, w);$)while (i);c_fmul (w, y, w);if (flag) c_fsub BNE UBO RTS UBZ,X STA FR0,X INX CPX #6 BNE UBZ RTS** MOnversions3. Exponentiation4. Division5. Integer and Fractional ComponentsOnly those features are tested thatare noB9}t thoroughly tested by theTURTLE program supplied to the user.To return to this menu at any time,press SELECT while tesB:}t gives answer.Note that the ATARI Floating Point ROMis very erratic about reporting theout of range condition correctlB;}y.What test do you want?} FLOATING POINT TRIG DEMONSTRATIONPreface angle type with function key:'S' for SIN, 'C' fB<}or COS, 'A' for ATAN.Enter angles prefaced with either'R' for radians or 'D' for degrees.Angle? cos of %s radians =B=} %ssin of %s radians = %stan of %s = %s radianscos of %s degrees = %ssin of %s degrees = %satan of %s = %s degB>}rees}Decimal Degrees (Y or N)?How many decimal degrees?%s degrees, %s minutes, %s secondsHow many base 60 degrees?B?}How many base 60 minutes?How many base 60 seconds?%s decimal degrees} EXPONENTIATION TESTBase?Exponent?B@}The answer is %sAnswer is out of range} DIVISION TESTDividend?Divisor?The answer is %sAnswer is BA}out of range} TEST c_int AND c_frac FUNCTIONSWHAT IS YOUR FLOATING POINT NUMBER?integer = %s, status = %dfractiBB}on = %s, status = %d'main'c_iml'c_itrig'poke'printf'gets'testsca'degrees'exponen'divisio'inBC}tfrac'peek'c_afp'c_rad'c_cos'c_sin 'c_atan!'c_fasc"'c_ddms#'c_dmsd$'c_exp%'c_fdiv&'c_int''c_frBD}ac'' R  ' '  ' < ' ` ' ' ' @@@dbc @ghSX R  \S&@ @ G (b G (b G (b H (b -H (b ?H (b \H (b {H (b H (b H (b FF}H (b H (b I (b /I (b TI (b {I (b I (b I (b I (b P  1$@HAAA  2$@CFG}AA  AA 3$A=EAA  4$&AEAA  5$>AFAA#@#@x J (b +J (b RJ (FH}b {J (b J (bAA  &Ah       "A J (b  YS $Afh Ph FI}  Sh  RBB$B  Zh  C$-B  ^YBh  S$MB  ;\YB  ^  FJ}Sh  C$B J f   (bBh  S$B J f   (bB J f   (bC Zh FK} C$B  ^#Ch CC S$C  ;\#C  ^  Sh  C$XC K f   (bCFL}h  S$C 1K f   (bC JK f   (bAf dK (bCC  YS $CFM} fK (b P  Y$zD K DD(b  YS $D P  S    [   S FN} S  S K    (b 6E K (b  YS $D P  S K (b  YS $D FO}P  S K (b  YS $D PEE  S    [   S L  (bCFP} 'L (b]EWE  YS $qE FL (b P  S ML (b P  S    oT FQ} $E  S XL  (bE kL (bZEFF L (bFF  YS $(F L (b PFR}  S L (b P  S    S $F  S L  (bF L (bFFT}'c_dmsd('move)'c_fadd*'c_ddms+'c_int,'c_fsub-'c_sin.'c_frac/'c_cmp0'c_cos1'c_tan2'c_atan > o L (bFF  &G      GG    "F  YS $-G M FU}(b P  S   U  S 0M   (b   V  S KM   (bF} FV} MATHLIB UNIT TESTSThis program tests MATHLIB.Choose the test you wantHH by typingthe number of the test fromFW} thefollowing list:1. Sine, Cosine, Arctangent2. Decimal Degree Conversions3. Exponentiation4. Division5. IntegeFX}r and Fractional ComponentsOnly those features are tested thatare not thoroughly testedII by theTURTLE program supplFY}ied to the user.To return to this menu at any time,press SELECT while test gives answer.Note that the ATARI Floating PoFZ}int ROMis very erratic about reporting theout of range condition correctly.What test do you wanJJt?} FLOATING POINF[}T TRIG DEMONSTRATIONPreface angle type with function key:'S' for SIN, 'C' for COS, 'A' for ATAN.Enter angles prefacedF\} with either'R' for radians or 'D' for degrees.Angle? cos of %s radians = %ssin of %s radians = %sKKtan of %sF]} = %s radianscos of %s degrees = %ssin of %s degrees = %satan of %s = %s degrees}Decimal Degrees (Y or N)?How mF^}any decimal degrees?%s degrees, %s minutes, %s secondsHow many base 60 degrees?How many base 60 minutes?How many LF_}Lbase 60 seconds?%s decimal degrees} EXPONENTIATION TESTBase?Exponent?The answer is %sAnswer is out of F`}range} DIVISION TESTDividend?Divisor?The answer is %sAnswer is out of range} TEST c_int AND c_fFa}rac FUNMgMCTIONSWHAT IS YOUR FLOATING POINT NUMBER?integer = %s, status = %dfraction = %s, status = %dhMgNFb}  M $  $  $M "MMqM  +$  -$M -$M   Fc} "  0)  9'9N    0  "M     N Fd}hNgO$  $  $N "NNUN 9O 0)  9'N  0O a)  f'N Fe} WO A)  F'O  7O9O     "N   &Ff}O @ hOgP  YS $OO "UO $O     GS  r$O P w$Fg}O P a$O P        Q    &YP PFh}   hPgQ   GS   Q P     Q 00 P Fi}P   x   Q &Q   H _S    ;Q  GSFj}wQ    hQgR Q~Q 0    Q  "#  RFk}Q # &Q  $  $   :%   :%   :%^R eS S   Fl}S  S    hRgS  . DS &R   .     S a& Fm}% R z( %RR  A& % S Z( % SS  00     Fn}  S00 0u DS000!0D:hSgT W X S W X S---  SFo}    S---------  S     S  $T    X Fp} S  $ET     S  $hT  hTgU   T     S  $T Fq}     S  $T     S  $T     vW  X Fr}3W $6U     cU     hUgV S U      Fs}  &U     S U       C(+V  Ft}  S  V @&SV W   S  V   ShVgW  > &V   Fu} "sV     @&V   S  /W C( W W   S  /W Fv} U   S    S $[W  oW hWX     SFw}      S    W   S   S0.532767.5XFx} Y a ` ` ` %` 2` >` K` W` ja  SFy} ja  S ja  S ja  S ja  S ja  S ja $ S ja * Fz}S dY Z` v` ` ` ` ` ` ` ` a a a  S a F{} S a  S a  S a  S a  S a $ S a * S a 0F|} S a 6Z [ S a < S *a a S 7a a S Ca a S Ha aF}} S La a S Qa a S Ua b S Xa b S ]a b S aF~} a  S a [ \ S   S  b  S  $T[      SF}  $|[    b  S  $[      S  $[     U F}  S b  S  \ ]U   S b  S a^\ b  So\F} a b S b ja b S  b  \  b  b   b b V b a 3W $\ F}a b b S h] b a 3W $] ^,] b a b S h] b a 3W $`] a b b SF} h]  b b b S *&b ja &b b  S b b b S&b &b b ja &b b S&b]] b b F} S ]     ^   ^ _a/^   S@^ a  S a F}a a   S  ;\ a  ;\  ^   S   F}S   ^      a 3_ `W $1_  a   S   S .G.M.h=.F.L. / إ8.9.7.0<.L7.)E.K.`hhhh/h/ /`hh/F}h/hh / ٰԑȥՑL-L.hh/h/h/h/h/h/ / / `ڰ /L-hh/./h/h/h/h/h/ / / fڰ /L-hhF}/h/h/h/h/h/ / / ڰ /L-L.hh/h/h/h/h/h/ / / (۰ /L-hh/h/h/h/ / ݰ /L-hh/h/F}h/h/ / ݰE /L-hh/h/h/h/ / L/ /L-hh/h/h/h/ / ް /L-L.//ԝ/`/`/F}`00L 2Li0L0L0L0L1LP1L^1L1L1L1L1L1 3تʎL08L0إ M0ԆLa4L0 HȱHL0JH @3lhhF}h hhBhhDEhhHIhhJhhK VIi``hhh) BHI V0`L0hhhhh) F} BHIL0hh01hhh L 1`hhhhhhhL41`hhhHlhhF}hhhhh ``Ls1hhh`hhhhh`hhh𪈱`hhhȱhF}h`hhh) hhhh) 12 hh)`dbc@2L!2CL36Щ2ѭ@ҭ@LF2@ @2C2l  j2F}k2l`'013W3h3{3333333334-4E4a44444455)5P5`5555556*696B6^6q6666666664dbc 1 run-tF}ime-error ""Type a key to ret23urn to DOS.2 BȝD2E8HI Vl @3؅ԘLF2ЅȱЅ٥F}iА` @3؅ȱ؅LF2 @3e؅ԥeمLF2 @3ԑLF2 @3ԑȥՑLF2 3ԑإ8ҥLF2҅ȱ҅` 3ԑȥՑF}L3ԅԄLF2ԪȱԅՆLF2BL3 @334؅ԥمLF2 4ԑȥՑLF2iҥi `AL3Ա҅ԊȦձ҅ՊLF}F2 4 @3Рȥёҥ؅ХمLF2҅ȱ҅ _2إ8؅ҥLF2б҅ЊȦѱ҅ъLF2 @3؅ХمLF2L4eЅАF}LF2 @3L4 @3e؅ҥeم45AL3LF2&LF2eԅȱeՅL38ԅȱՅL3ԍՍҍF}ȱҍ 7ԭL3 p5ԭL3 p5ԭL3ҍȱҍDL3դL87ԅȱՅL3EԅȱEՅL3F}%ԅȱ%ՅL3҅ȱ҅FfL356ȱ҅L3҅ȱ҅&L3Ա҅L38ԅԩՅLF2EԅF}ԩEՅLF2LF2LF28ԅȱՅ` M6ʆL3 M6ԅL3 M60 M60 M60åп MF}60ՐнԐՐЪԐПՐ67 ԐLg6Ր԰Lz6&&& L27F} `ɀE ɀf8ਊ 7$ 8$P 8`E0 IILF}78L7Ff eeF77fff$ 8` 2 {H (b H (b H (b DdAPX-20231MATHLIB FOR DEEP BLUE C 1.0FRANK PARIS08/02/830ROCESS COMPLETEDD2:TITLE! INPUT MASTER DISK TO NH=