home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s235 / 1.ddi / FUN.ASM < prev    next >
Encoding:
Assembly Source File  |  1988-09-06  |  5.9 KB  |  466 lines

  1. ;
  2. ;    THIS IS THE FILE OF FUN.ASM
  3. ;
  4. FPLN:    POP   DPH           ;THIS IS  SUBROUTING  7-1
  5.     POP   DPL
  6.     CLR   A
  7.     MOVC  A,@A+DPTR
  8.     MOV   R6,A
  9.     INC   DPTR
  10.     CLR   A
  11.     MOVC  A,@A+DPTR
  12.     MOV   R2,A
  13.     INC   DPTR
  14.     CLR   A
  15.     MOVC  A,@A+DPTR
  16.     MOV   R3,A
  17.     INC   DPTR
  18. FP1:    MOV   A,@R0
  19.     XRL   A,R6
  20.     MOV   C,ACC.7
  21.     MOV   38H,C
  22.     INC   R0
  23.     MOV   A,@R0
  24.     MOV   R4,A
  25.     INC   R0
  26.     MOV   A,@R0
  27.     MOV   R5,A
  28.     DEC   R0
  29.     DEC   R0
  30.     LCALL WDMUL
  31.     MOV   A,R2
  32.     JB    ACC.7,FP2
  33.     MOV   A,R7
  34.     RLC   A
  35.     MOV   A,R3
  36.     RLC   A
  37.     MOV   R3,A
  38.     MOV   A,R2
  39.     RLC   A
  40.     MOV   R2,A
  41.     DEC   R6
  42. FP2:    MOV   A,R6
  43.     ADD   A,@R0
  44.     MOV   C,38H
  45.     MOV   ACC.7,C
  46.     MOV   R6,A
  47.     CLR   A
  48.     MOVC  A,@A+DPTR
  49.     MOV   R7,A
  50.     INC   DPTR
  51.     CLR   A
  52.     MOVC  A,@A+DPTR
  53.     MOV   R4,A
  54.     INC   DPTR
  55.     CLR   A
  56.     MOVC  A,@A+DPTR
  57.     MOV   R5,A
  58.     INC   DPTR
  59.     CLR   3AH
  60.     LCALL FABP
  61.     MOV   A,R4
  62.     MOV   R6,A
  63.     CLR   A
  64.     MOVC  A,@A+DPTR
  65.     CJNE  A,#40H,FP1
  66.     LCALL FSTR
  67.     INC   DPTR
  68.     CLR   A
  69.     JMP   @A+DPTR
  70. ;
  71. ;
  72. ;
  73. ;
  74. ;
  75. ;
  76. ;
  77. ;
  78. ;
  79. DSQR:    MOV    R4,#0           ;THIS IS  SUBROUTING  7-2
  80. DSLP:    CLR    C
  81.     MOV    A,R4
  82.     RLC    A
  83.     XCH    A,R3
  84.     MOV    PSW.5,C
  85.     SETB    C
  86.     SUBB    A,R3
  87.     MOV    R3,A
  88.     CLR    A
  89.     MOV    ACC.0,C
  90.     XCH    A,R2
  91.     MOV    C,PSW.5
  92.     SUBB    A,R2
  93.     MOV    R2,A
  94.     INC    R4
  95.     JNC    DSLP
  96.     DEC    R4
  97.     RET
  98. ;
  99. ;
  100. ;
  101. ;
  102. ;
  103. ;
  104. FSQR:    MOV   A,@R0            ;THIS IS  SUBROUTING  7-3
  105.     JB    ACC.7,FR3
  106.     MOV   @R1,A
  107.     INC   R0
  108.     INC   R1
  109.     MOV   A,@R0
  110.     MOV   @R1,A
  111.     INC   R0
  112.     INC   R1
  113.     MOV   A,@R0
  114.     MOV   @R1,A
  115.     DEC   R0
  116.     DEC   R0
  117.     DEC   R1
  118.     DEC   R1
  119. FR1:    LCALL FDIV
  120.     MOV   R6,A
  121.     MOV   A,@R1
  122.     MOV   R7,A
  123.     INC   R1
  124.     MOV   A,@R1
  125.     MOV   R4,A
  126.     INC   R1
  127.     MOV   A,@R1
  128.     MOV   R5,A
  129.     DEC   R1
  130.     DEC   R1
  131.     CLR   3AH
  132.     LCALL FABP
  133.     CLR   PSW.5
  134.     MOV   A,R4
  135.     DEC   A
  136.     CLR   ACC.7
  137.     MOV   R4,A
  138.     MOV   B,R7
  139.     CLR   B.7
  140.     CJNE  A,B,FR2
  141.     MOV   A,R5
  142.     SUBB  A,R3
  143.     ANL   A,#0FCH
  144.     MOV   R7,A
  145.     MOV   A,R6
  146.     SUBB  A,R2
  147.     JNZ   FR2
  148.     CJNE  R7,#0,FR2
  149.     SETB  PSW.5
  150. FR2:    LCALL FSTR
  151.     JNB   PSW.5,FR1
  152.     RET
  153. FR3:    CLR   PSW.5
  154.     RET
  155. ;
  156. ;
  157. ;
  158. ;
  159. ;
  160. ;
  161. FSIN:    MOV   @R1,#2        ;THIS IS  SUBROUTING  7-4
  162.     INC   R1
  163.     MOV   @R1,#0C9H
  164.     INC   R1
  165.     MOV   @R1,#10H
  166.     DEC   R1
  167.     DEC   R1
  168.     LCALL FDIV
  169.     MOV   A,R0
  170.     PUSH  ACC
  171.     INC   SP
  172.     MOV   A,SP
  173.     INC   SP
  174.     INC   SP
  175.     XCH   A,R1
  176.     MOV   R0,A
  177.     MOV   A,R4
  178.     CLR   ACC.7
  179.     MOV   R4,A
  180.     JZ    FSN1
  181.     JNB   ACC.6,FSN3
  182. FSN1:    MOV   R4,#40H
  183.     MOV   R2,#0
  184.     MOV   R3,#0
  185.     SJMP  FSN4
  186. FSN2:    CLR   C
  187.     MOV   A,R2
  188.     RRC   A
  189.     MOV   R2,A
  190.     MOV   A,R3
  191.     RRC   A
  192.     MOV   R3,A
  193.     INC   R4
  194. FSN3:    CJNE  R4,#16,FSN2
  195. FSN4:    MOV   A,R3
  196.     MOV   C,ACC.0
  197.     MOV   3BH,C
  198.     JNB   38H,FSN5
  199.     CPL   3BH
  200. FSN5:    MOV   A,R4
  201.     MOV   R6,A
  202.     SETB  C
  203.     CLR   PSW.5
  204.     LCALL FSDT
  205.     MOV   A,R6
  206.     MOV   C,38H
  207.     MOV   ACC.7,C
  208.     MOV   R4,A
  209.     LCALL FSTR
  210.     LCALL FMUL
  211.     MOV   A,R0
  212.     XCH   A,R1
  213.     DEC   A
  214.     MOV   SP,A
  215.     LCALL FSTR
  216.     POP   ACC
  217.     PUSH  ACC
  218.     MOV   R0,A
  219.     LCALL FSUB
  220.     MOV   A,R4
  221.     CLR   ACC.7
  222.     MOV   R4,A
  223.     LCALL FSTR
  224.     MOV   A,R1
  225.     MOV   R0,A
  226.     LCALL FPLN
  227.     DB    0F7H,0A8H,70H    ;-1.2850635E-3
  228.     DB    7AH,0C6H,70H    ;0.012111701
  229.     DB    0F9H,0C5H,68H    ;-6.02441338E-3
  230.     DB    0FEH,0A5H,41H    ;-0.161379884
  231.     DB    0FAH,26H,0A0H    ;-2.357414E-3
  232.     DB    1,80H,0EH     ;1.00042182
  233.     DB    0FBH,0,1CH    ;-1.32048E-5
  234.     DB    40H
  235.     MOV   A,@R1
  236.     MOV   C,3BH        ;SIGN of SIN X
  237.     MOV   ACC.7,C
  238.     MOV   @R1,A
  239.     POP   ACC
  240.     MOV   R0,A
  241.     RET
  242. ;
  243. ;
  244. ;
  245. ;
  246. ;
  247. FEXP:    MOV   @R1,#1        ;THIS IS  SUBROUTING  7-5
  248.     INC   R1        ;1/(ln 2) = 1.442695
  249.     MOV   @R1,#0B8H
  250.     INC   R1
  251.     MOV   @R1,#0ABH
  252.     DEC   R1
  253.     DEC   R1
  254.     LCALL  FMUL
  255.     LCALL  FSTR
  256.     MOV   C,38H        ;SIGN of X
  257.     MOV   3BH,C
  258.     MOV   A,R4
  259.     CLR   ACC.7
  260.     MOV   R4,A
  261.     JNB   ACC.6,FEX1
  262.     MOV   R2,#0
  263.     SJMP  FEX4
  264. FEX1:    CJNE  R4,#7,$+3
  265.     JC    FEX3
  266.     SETB  PSW.5        ;Over Flow
  267.     RET
  268. FEX2:    CLR   C
  269.     MOV   A,R2
  270.     RRC   A
  271.     MOV   R2,A
  272.     MOV   A,R3
  273.     RRC   A
  274.     MOV   R3,A
  275.     INC   R4
  276. FEX3:    CJNE  R4,#8,FEX2
  277. FEX4:    MOV   A,R0
  278.     PUSH  ACC
  279.     INC   SP
  280.     MOV   A,SP
  281.     INC   SP
  282.     INC   SP
  283.     XCH   A,R1
  284.     MOV   R0,A
  285.     MOV   A,R2
  286.     PUSH  ACC
  287.     MOV   R3,#0
  288.     MOV   R6,#8
  289.     SETB  PSW.5
  290.     CLR   PSW.5
  291.     LCALL FSDT
  292.     MOV   A,R6
  293.     MOV   C,3BH        ;SIGN of X
  294.     MOV   ACC.7,C
  295.     MOV   R4,A
  296.     LCALL FSTR
  297.     LCALL FSUB
  298.     LCALL FSTR
  299.     MOV   A,R0
  300.     XCH   A,R1
  301.     MOV   R0,A
  302.     LCALL FPLN
  303. ;    DF    0.001356407
  304. ;    DF    0.009851447
  305. ;    DF    0.055495483
  306. ;    DF    0.24013873
  307. ;    DF    0.693147619
  308. ;    DF    1
  309.     DB    40H
  310.     POP   ACC
  311.     JNB   3BH,FEX5
  312.     CPL   A
  313.     INC   A
  314. FEX5:    ADD   A,@R1
  315.     CLR   ACC.7
  316.     MOV   @R1,A
  317.     DEC   R0
  318.     MOV   SP,R0
  319.     POP   ACC
  320.     MOV   R0,A
  321.     RET
  322. ;
  323. ;
  324. ;
  325. ;
  326. ;
  327. ;
  328. ;
  329. ;
  330. ;
  331. ;
  332. ;
  333. ;
  334. FLN0:    SETB    PSW.5
  335. FLN1:    RET
  336. FLNX:    CLR    PSW.5            ;THIS IS  SUBROUTING  7-6
  337.     MOV    A,R0
  338.     JB    ACC.7,FLN0
  339.     LCALL    LNORM
  340.     JB    PSW.5,FLN1
  341.     MOV    A,R0
  342.     PUSH    ACC
  343.     MOV    A,@R0
  344.     PUSH    ACC
  345.     CLR    A
  346.     PUSH    ACC
  347.     INC    R0
  348.     MOV    A,@R0
  349.     MOV    R2,A
  350.     INC    R0
  351.     MOV    A,@R0
  352.     MOV    R0,SP
  353.     CLR    C
  354.     RLC    A
  355.     XCH    A,R2
  356.     RLC    A
  357.     PUSH    ACC
  358.     MOV    A,R2
  359.     PUSH    ACC
  360.     LCALL    FPLN
  361. ;    DF    0.029808
  362. ;    DF    -0.129955
  363. ;    DF    0.283822
  364. ;    DF    -0.4897
  365. ;    DF    0.9917
  366. ;    DF    0.00001144
  367.     DB    40H
  368.     DEC    R0
  369.     MOV    A,@R0
  370.     DEC    A
  371.     JZ    FLN5
  372.     MOV    C,ACC.6
  373.     MOV    3BH,C
  374.     MOV    ACC.7,C
  375.     JNC    FLN2
  376.     CPL    A
  377.     INC    A
  378. FLN2:    MOV    R5,A
  379.     MOV    B,#72H
  380.     MUL    AB
  381.     XCH    A,R5
  382.     MOV    R3,B
  383.     MOV    B,#0B1H
  384.     MUL    AB
  385.     ADD    A,R3
  386.     MOV    R3,A
  387.     CLR    A
  388.     ADDC    A,B
  389.     MOV    R2,A
  390.     MOV    R4,#8
  391.     MOV    A,R2
  392. FLN3:    JB    ACC.7,FLN4
  393.     MOV    A,R5
  394.     RLC    A
  395.     MOV    R5,A
  396.     MOV    A,R3
  397.     RLC    A
  398.     MOV    R3,A
  399.     MOV    A,R2
  400.     RLC    A
  401.     MOV    R2,A
  402.     DEC    R4
  403.     SJMP    FLN3
  404. FLN4:    MOV    A,R4
  405.     MOV    C,3BH
  406.     MOV    ACC.7,C
  407.     MOV    R4,A
  408.     MOV    A,R0
  409.     XCH    A,R1
  410.     MOV    R0,A
  411.     LCALL    FSTR
  412.     MOV    A,R0
  413.     XCH    A,R1
  414.     MOV    R0,A
  415.     LCALL    FADD
  416.     LCALL    FSTR
  417. FLN5:    DEC    R0
  418.     MOV    SP,R0
  419.     POP    ACC
  420.     MOV    R0,A
  421.     RET
  422. LNORM:    MOV    A,@R0
  423.     MOV    C,ACC.7
  424.     MOV    PSW.5,C
  425.     INC    R0
  426.     MOV    C,ACC.6
  427.     MOV    ACC.7,C
  428.     MOV    R2,A
  429. LNRM1:    MOV    A,@R0
  430.     INC    R0
  431.     JNZ    LNRM3
  432.     MOV    A,@R0
  433.     JNZ    LNRM4
  434.     DEC    R0
  435.     DEC    R0
  436.     MOV    A,#40H
  437.     MOV    C,PSW.5
  438.     MOV    ACC.7,C
  439.     MOV    @R0,A
  440.     SETB    PSW.5
  441.     RET
  442. LNRM3:    JB    ACC.7,LNRM5
  443. LNRM4:    CLR    C
  444.     MOV    A,@R0
  445.     RLC    A
  446.     MOV    @R0,A
  447.     DEC    R0
  448.     MOV    A,@R0
  449.     RLC    A
  450.     MOV    @R0,A
  451.     INC    R0
  452.     DEC    R2
  453.     CJNE    R2,#0C0H,LNRM3
  454. LNRM5:    DEC    R0
  455.     DEC    R0
  456.     MOV    A,R2
  457.     MOV    C,PSW.5
  458.     MOV    ACC.7,C
  459.     MOV    @R0,A
  460.     RET
  461. ;
  462. ;
  463. ;
  464. ;
  465. ;
  466. ;