home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG023.ARK / STOICSIN.STC < prev    next >
Text File  |  1986-11-08  |  2KB  |  51 lines

  1.  
  2.  
  3.  
  4. % ***************************************************************************
  5. % ** COPYRIGHT (C) MASSACHUSETTS INSTITUTE OF TECHNOLOGY AND HARVARD       **
  6. % ** UNIVERSITY, BIOMEDICAL ENGINEERING CENTER 1977.  ALL RIGHTS RESERVED. **
  7. % ***************************************************************************
  8.  
  9. % 16-BIT FIXED POINT SINE AND COSINE
  10. % INPUT SCALING:  +-PI = 100000 (OCTAL)
  11. % OUTPUT SCALING: 1.00 = 040000 (OCTAL)
  12.  
  13. RADIX @ OCTAL
  14.  
  15. '*2L : M* 2 DLSHIFT UNDER ;
  16.  
  17. 'SIN1 : DUP DUP *2L DUP -107 *2L 2425 + OVER *2L -24526
  18.   + *2L 62210 + *2L ;
  19.  
  20. 'SIN : DUP 40000 + LTZ IF 77777 XOR 1+ THEN SIN1 ;
  21. 'COS : 40000 + SIN ;
  22.  
  23. % 16-BIT FIXED POINT SQUARE ROOT OF SUM OF SQUARES
  24. % A B RSS
  25. % RESULT IS SAME SCALE AS INPUTS
  26.  
  27. 'RSS CODE<
  28.   H POP,  H A MOV,  A ORA,  -HL CM,
  29.   D POP,  D A MOV,  A ORA,  -DE CM,
  30.   H PUSH,  D PUSH,
  31.   E A MOV,  L SUB,  D A MOV,  H SBB,  IFNC,  XCHG,  THEN,
  32.   H A MOV,  A ORA,  RAR,  A H MOV,  L A MOV,  RAR,  A L MOV,
  33.   D DAD,  T1 SHLD,
  34.   H POP,  H D MOV,  L E MOV,  MUL CALL,
  35.   T1 2+ SHLD,  XCHG,  T1 4 + SHLD,
  36.   H POP,  H D MOV,  L E MOV,  MUL CALL,
  37.   H B MOV,  L C MOV,  T1 4 + LHLD,  D DAD,  IFNC,  B INX,  THEN,
  38.   H PUSH,  T1 2+ LHLD,  B DAD,  H PUSH,  T1 LHLD,  H B MOV,
  39.   L C MOV,  H POP,  D POP,  D PUSH,  H PUSH,
  40.   DIV CALL,  T1 LHLD,  D DAD,  H A MOV,  A ORA,  RAR,  A H MOV,
  41.   L A MOV,  RAR,  A L MOV,  T1 SHLD,  H B MOV,  L C MOV,  H POP,  D POP,
  42.   DIV CALL,  T1 LHLD,  D DAD,  H A MOV,  A ORA,  RAR,  A H MOV,
  43.   L A MOV,  RAR,  A L MOV,  PUSH JMP,  >
  44.  
  45. RADIX !
  46. ;F
  47.  
  48.  
  49. ***EOF***
  50.  
  51.