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

  1. ;
  2. ;    THIS IS THE FILE OF NBNF.ASM
  3. ;
  4. ;
  5. ;
  6. NBINTOF:MOV    A,R7        ;THIS IS  SUBROUTING  5-1
  7.     MOV    B,#08H
  8.     MUL    AB
  9.     DEC    A
  10.     INC    R0
  11.     MOV    @R0,A
  12.     LCALL    NBNORM
  13.     RET
  14. ;
  15. ;
  16. ;
  17. ;
  18. NBNORM: DEC    R0        ;THIS IS  SUBROUTING  5-2
  19.     MOV    A,@R0
  20.     JNB    ACC.7,NOR0
  21.     JB    ACC.6,NOR1
  22. NOR2:    INC    R0
  23.     RET
  24. NOR0:    JB    ACC.6,NOR2
  25.     INC    R0
  26.     LCALL    NORA
  27.     LCALL    NORB
  28. NOR4:    JB    ACC.6,NOR2
  29.     INC    R0
  30.     LCALL    NORB
  31.     DJNZ    R2,NOR4
  32.     LJMP    NOR2
  33. NOR1:    LCALL    NORA
  34. NOR6:    INC    R0
  35.     LCALL    NORB
  36.     DJNZ    R2,NOR5
  37.     LJMP    NOR2
  38. NOR5:    JB    ACC.6,NOR6
  39.     LJMP    NOR2
  40. NORA:    MOV    A,R7
  41.     MOV    B,#08H
  42.     MUL    AB
  43.     DEC    A
  44.     MOV    R2,A
  45.     RET
  46. NORB:    MOV    A,R7
  47.     MOV    R6,A
  48.     MOV    A,R0
  49.     CLR    C
  50.     SUBB    A,R7
  51.     MOV    R0,A
  52.     CLR    C
  53. NORB0:    MOV    A,@R0
  54.     RLC    A
  55.     MOV    @R0,A
  56.     INC    R0
  57.     DJNZ    R6,NORB0
  58.     DEC    @R0
  59.     DEC    R0
  60.     MOV    A,@R0
  61.     RET
  62. ;
  63. ;                                    ;
  64. NBNET:    MOV    A,R7        ;THIS IS  SUBROUTING  5-3    SUBCG
  65.     MOV    R6,A
  66.     MOV    A,R0
  67.     CLR    C
  68.     SUBB    A,R7
  69.     MOV    R0,A
  70.     SETB    C
  71. NNT1:    MOV    A,@R0
  72.     CPL    A
  73.     ADDC    A,#00H
  74.     MOV    @R0,A
  75.     INC    R0
  76.     DJNZ    R6,NNT1
  77.     RET
  78. ;
  79. ;
  80. ;
  81. ;
  82. ;
  83. ;
  84. ;
  85. NBFSDT: MOV    R2,#00H        ;THIS IS  SUBROUTING  5-4 SUBEG
  86. NST1:    INC    @R0
  87.     DEC    R0
  88.     MOV    A,R7
  89.     MOV    R6,A
  90.     MOV    A,@R0
  91.     MOV    C,ACC.7
  92. NST0:    RRC    A
  93.     MOV    @R0,A
  94.     DEC    R0
  95.     MOV    A,@R0
  96.     DJNZ    R6,NST0
  97.     MOV    A,R2
  98.     RRC    A
  99.     MOV    R2,A
  100.     MOV    A,R0
  101.     ADD    A,R7
  102.     MOV    R0,A
  103.     INC    R0
  104.     DJNZ    R3,NST1
  105.     MOV    A,R2
  106.     JNB    ACC.7,NSTR
  107.     CLR    C
  108.     MOV    A,R0
  109.     SUBB    A,R7
  110.     MOV    R0,A
  111.     MOV    A,R7
  112.     MOV    R6,A
  113.     SETB    C
  114. NST5:    MOV    A,@R0
  115.     ADDC    A, #00H
  116.     MOV    @R0,A
  117.     INC    R0
  118.     DJNZ    R6,NST5
  119.  NSTR:    RET
  120. ;
  121. ;
  122. ;
  123. NBFADD: MOV    A,@R1            ;THIS IS  SUBROUTING  5-5  SUBFG
  124.     CPL    A
  125.     INC    A
  126.     MOV    R3,A
  127.     MOV    A,@R0
  128.     ADD    A,R3
  129.     MOV    R3,A
  130.     JNB    ACC.7,NAD2
  131.     CPL    A
  132.     INC    A
  133.     MOV    R3,A
  134.     LCALL    NBFSDT
  135.     LJMP    NAD1
  136. NAD2:    JZ    NAD1
  137.     MOV    A,R0
  138.     XCH    A,R1
  139.     XCH    A,R0
  140.     LCALL    NBFSDT
  141.     MOV    A,R0
  142.     XCH    A,R1
  143.     XCH    A,R0
  144. NAD1:    MOV    A,R7
  145.     XCH    A,R6
  146.     CLR    C
  147.     MOV    A,R0
  148.     SUBB    A,R7
  149.     MOV    R0,A
  150.     MOV    A,R1
  151.     SUBB    A,R7
  152.     MOV    R1,A
  153.     CLR    C
  154. NAD8:    MOV    A,@R0
  155.     ADDC    A,@R1
  156.     MOV    @R0,A
  157.     INC    R0
  158.     INC    R1
  159.     DJNZ    R6,NAD8
  160.     JNB    PSW.2,NAD3
  161.     INC    @R0
  162.     MOV    A,R7
  163.     XCH    A,R6
  164.     DEC    R0
  165.     MOV    A,@R0
  166.     MOV    C,ACC.7
  167.     CPL    C
  168. NAD4:    RRC    A
  169.     MOV    @R0,A
  170.     DEC    R0
  171.     MOV    A,@R0
  172.     DJNZ    R6,NAD4
  173.     MOV    A,R7
  174.     ADD    A,R0
  175.     MOV    R0,A
  176.     INC    R0
  177. NAD3:    LCALL    NBNORM
  178.     RET
  179. ;
  180. ;
  181. ;
  182. NBFSUB: LCALL    NBNET           ;THIS IS  SUBROUTING  5-6  SUBGG
  183.     LJMP    NBFADD
  184. ;
  185. ;
  186. ;
  187. ;
  188. ;
  189. ;
  190. ;
  191. ;
  192. ;
  193. NBFMUL: MOV    A,@R0           ;THIS IS  SUBROUTING  5-7; SUBBH
  194.     ADD    A,@R1
  195.     INC    A
  196.     MOV    @R0,A
  197.     CLR    PSW.5
  198.     DEC    R0
  199.     MOV    A,@R0
  200.     JNB    ACC.7,FML0
  201.     CPL    PSW.5
  202.     INC    R0
  203.     LCALL    NBNET
  204.     LJMP    FML1
  205. FML0:    INC    R0
  206. FML1:    MOV    A,R0
  207.     XCH    A,R1
  208.     XCH    A,R0
  209.     DEC    R0
  210.     MOV    A,@R0
  211.     JNB    ACC.7,FML2
  212.     CPL    PSW.5
  213.     INC    R0
  214.     LCALL    NBNET
  215.     LJMP    FML3
  216.   FML2: INC    R0
  217.   FML3: MOV    A,R0
  218.     CLR    C
  219.     SUBB    A,R7
  220.     MOV    R3,A
  221.     MOV    A,R1
  222.     SUBB    A,R7
  223.     MOV    R2,A
  224.     SUBB    A,R7
  225.     MOV    R5,A
  226.     MOV    R0,A
  227.     MOV    A,R7
  228.     MOV    R6,A
  229.  FML4:    MOV    @R0,#00H
  230.     INC    R0
  231.     DJNZ    R6,FML4
  232.     MOV    A,R7
  233.     MOV    B,#08H
  234.     MUL    AB
  235.     INC    A
  236.     MOV    R4,A
  237.  FML8:    CLR    C
  238.     MOV    A,R5
  239.     MOV    R0,A
  240.     MOV    A,R7
  241.     RL    A
  242.     MOV    R6,A
  243.  FML5:    MOV    A,@R0
  244.     RLC    A
  245.     MOV    @R0,A
  246.     INC    R0
  247.     DJNZ    R6,FML5
  248.     JNC    FMLL
  249.     MOV    A,R5
  250.     MOV    R0,A
  251.     MOV    A,R3
  252.     MOV    R1,A
  253.     MOV    A,R7
  254.     MOV    R6,A
  255.     CLR    C
  256. FML6:    MOV    A ,@R0
  257.     ADDC    A,@R1
  258.     MOV    @R0,A
  259.     INC    R0
  260.     INC    R1
  261.     DJNZ    R6,FML6
  262.     MOV    A,R7
  263.     MOV    R6,A
  264. FML7:    MOV    A,@R0
  265.     ADDC    A,#00H
  266.     MOV    @R0,A
  267.     INC    R0
  268.     DJNZ    R6,FML7
  269. FMLL:    DJNZ    R4,FML8
  270.     MOV    A,R7
  271.     RL    A
  272.     MOV    B,#08H
  273.     MUL    AB
  274.     MOV    R4,A
  275. FMLB:    DEC    R0
  276.     MOV    A,@R0
  277.     JB    ACC.6,FML9
  278.     INC    R0
  279.     DEC    @R0
  280.     CLR    C
  281.     MOV    A,R5
  282.     MOV    R0,A
  283.     MOV    A,R7
  284.     RL    A
  285.     MOV    R6,A
  286. FMLA:  MOV     A,@R0
  287.     RLC    A
  288.     MOV    @R0,A
  289.     INC    R0
  290.     DJNZ    R6,FMLA
  291.     DJNZ    R4,FMLB
  292. FML9:    MOV    A,R2
  293.     DEC    A
  294.     MOV    R0,A
  295.     MOV    A,@R0
  296.     JNB    ACC.7,FMLK
  297.     INC    R0
  298.     MOV    A,R7
  299.     MOV    R6,A
  300.     SETB    C
  301. FMLP:    MOV    A,@R0
  302.     ADDC    A,#00H
  303.     MOV    @R0,A
  304.     INC    R0
  305.     DJNZ    R6,FMLP
  306. FMLK:    JNB    PSW.5,FMLR
  307.     MOV    A,R2
  308.     ADD    A,R7
  309.     MOV    R0,A
  310.     LCALL    NBNET
  311. FMLR:    RET
  312. ;
  313. ;
  314. ;
  315. ;
  316. ;
  317. NBFDIV: MOV    A,@R0         ;THIS IS  SUBROUTING  5-8  SUBAH
  318.     CLR    C
  319.     SUBB    A,@R1
  320.     MOV    R2,A
  321.     MOV    A,R7
  322.     MOV    B,#08H
  323.     MUL    AB
  324.     ADD    A,R2
  325.     DEC    A
  326.     MOV    @R0,A
  327.     CLR    PSW.5
  328.     DEC    R0
  329.     MOV    A,@R0
  330.     JNB    ACC.7,NDV0
  331.     CPL    PSW.5
  332.     INC    R0
  333.     LCALL    NBNET
  334.     LJMP    NDV1
  335. NDV0:    INC    R0
  336. NDV1:    MOV    A,R0
  337.     XCH    A,R1
  338.     XCH    A,R0
  339.     DEC    R0
  340.     MOV    A,@R0
  341.     JNB    ACC.7,NDV2
  342.     CPL    PSW.5
  343.     INC    R0
  344.     LCALL    NBNET
  345.     LJMP    NDV3
  346. NDV2:    INC    R0
  347. NDV3:    MOV    A,R0
  348.     MOV    R2,A
  349.     DEC    R0
  350.     MOV    A,R7
  351.     XCH    A,R6
  352. NDV4:    MOV    A,@R0
  353.     JNZ    NDV5
  354.     DEC    R0
  355.     DJNZ    R6,NDV4
  356.     SETB    C
  357.     RET
  358. NDV5:    CLR    C      ;R2:40 R3:50  R5:30
  359.     MOV    A,R2
  360.     SUBB    A,R7
  361.     MOV    R3,A
  362.     MOV    A,R1
  363.     SUBB    A,R7
  364.     SUBB    A,R7
  365.     MOV    R2,A
  366.     XCH    A,R0
  367.     MOV    A,R7
  368.     XCH    A,R6
  369. NDV6:    MOV    @R0,#00H  ; 0  >40,41
  370.     INC    R0
  371.     DJNZ    R6,NDV6
  372.     MOV    A,R5
  373.     MOV    R0,A
  374.     MOV    A,R7
  375.     MOV    R6,A
  376. NDV7:    MOV    @R0,#00H    ;0 > 31,30
  377.     INC    R0
  378.     DJNZ    R6,NDV7
  379.     MOV    A,R7
  380.     RL    A
  381.     MOV    B,#08H
  382.     MUL    AB
  383.     MOV    R4,A
  384.     INC    R4
  385.     CLR    C
  386. NDVE:    MOV    A,R2     ;RLC 43-40 31-30
  387.     MOV    R0,A
  388.     MOV    A,R7
  389.     RL    A
  390.     MOV    R6,A
  391. NDV8:    MOV    A,@R0
  392.     RLC    A
  393.     MOV    @R0,A
  394.     INC    R0
  395.     DJNZ    R6,NDV8
  396.     MOV    A,R5
  397.     MOV    R0,A
  398.     MOV    A,R7
  399.     MOV    R6,A
  400. NDV9:    MOV    A ,@R0
  401.     RLC     A
  402.     MOV    @R0,A
  403.     INC    R0
  404.     DJNZ    R6,NDV9
  405.     DJNZ    R4,NDVA
  406.     LJMP    NDVX
  407. NDVA:    MOV    A,R5
  408.     MOV    R0,A
  409.     MOV    A,R3
  410.     MOV    R1,A
  411.     MOV    A,R7
  412.     MOV    R6,A
  413.     CLR    C
  414. NDVB:    MOV    A,@R0
  415.     SUBB    A,@R1
  416.     MOV    @R0,A
  417.     INC    R0
  418.     INC    R1
  419.     DJNZ    R6,NDVB
  420.     JNC    NDVC
  421.     MOV    A,R5
  422.     MOV    R0,A
  423.     MOV    A,R3
  424.     MOV    R1,A
  425.     MOV    A,R7
  426.     MOV    R6,A
  427.     CLR    C
  428. NDVD:    MOV    A,@R0
  429.     ADDC    A,@R1
  430.     MOV    @R0,A
  431.     INC    R0
  432.     INC    R1
  433.     DJNZ    R6,NDVD
  434.     CLR    C
  435.     LJMP    NDVE
  436. NDVC:    SETB    C
  437.     LJMP    NDVE
  438. NDVX:    MOV    A,R7
  439.     RL    A
  440.     MOV    B,#08H
  441.     MUL    AB
  442.     MOV    R4,A
  443.     DEC    R4
  444. NDVX3:    MOV    A,R2
  445.     ADD    A,R7
  446.     ADD    A,R7
  447.     DEC    R0
  448.     MOV    R0,A
  449.     MOV    A,@R0
  450.     JB    ACC.6,NDVK
  451.     INC    R0
  452.     DEC    @R0
  453.     MOV    A,R2
  454.     MOV    R0,A
  455.     MOV    A,R7
  456.     RL    A
  457.     MOV    R6,A
  458.     CLR    C
  459. NDVX2:    MOV    A,@R0
  460.     RLC    A
  461.     MOV    @R0,A
  462.     INC    R0
  463.     DJNZ    R6,NDVX2
  464.     DJNZ    R4,NDVX3
  465. NDVK:    MOV    A,R0
  466.     CLR    C
  467.     SUBB    A,R7
  468.     MOV    R0,A
  469.     MOV    A,@R0
  470.     JNB    ACC.7,NDVX1
  471.     SETB    C
  472.     INC    R0
  473.     MOV    A,R7
  474.     MOV    R6,A
  475. NDVP:    MOV    A,@R0
  476.     ADDC    A,#00H
  477.     MOV    @R0,A
  478.     INC    R0
  479.     DJNZ    R6,NDVP
  480. NDVX1:    JNB    PSW.5,NDVX4
  481.     MOV    A,R2
  482.     ADD    A,R7
  483.     ADD    A,R7
  484.     MOV    R0,A
  485.     LCALL    NBNET
  486. NDVX4:    RET
  487. ;
  488. ;    THIS IS THE FILE OF FUN.ASM
  489. ;
  490. FPLN:    POP   DPH           ;THIS IS  SUBROUTING  7-1
  491.     POP   DPL
  492.     CLR   A
  493.     MOVC  A,@A+DPTR
  494.     MOV   R6,A
  495.     INC   DPTR
  496.     CLR   A
  497.     MOVC  A,@A+DPTR
  498.     MOV   R2,A
  499.     INC   DPTR
  500.     CLR   A
  501.     MOVC  A,@A+DPTR
  502.     MOV   R3,A
  503.     INC   DPTR
  504. FP1:    MOV   A,@R0
  505.     XRL   A,R6
  506.     MOV   C,ACC.7
  507.     MOV   38H,C
  508.     INC   R0
  509.     MOV   A,@R0
  510.     MOV   R4,A
  511.     INC   R0
  512.     MOV   A,@R0
  513.     MOV   R5,A
  514.     DEC   R0
  515.     DEC   R0
  516.     LCALL WDMUL
  517.     MOV   A,R2
  518.     JB    ACC.7,FP2
  519.     MOV   A,R7
  520.     RLC   A
  521.     MOV   A,R3
  522.     RLC   A
  523.     MOV   R3,A
  524.     MOV   A,R2
  525.     RLC   A
  526.     MOV   R2,A
  527.     DEC   R6
  528. FP2:    MOV   A,R6
  529.     ADD   A,@R0
  530.     MOV   C,38H
  531.     MOV   ACC.7,C
  532.     MOV   R6,A
  533.     CLR   A
  534.     MOVC  A,@A+DPTR
  535.     MOV   R7,A
  536.     INC   DPTR
  537.     CLR   A
  538.     MOVC  A,@A+DPTR
  539.     MOV   R4,A
  540.     INC   DPTR
  541.     CLR   A
  542.     MOVC  A,@A+DPTR
  543.     MOV   R5,A
  544.     INC   DPTR
  545.     CLR   3AH
  546.     LCALL FABP
  547.     MOV   A,R4
  548.     MOV   R6,A
  549.     CLR   A
  550.     MOVC  A,@A+DPTR
  551.     CJNE  A,#40H,FP1
  552.     LCALL FSTR
  553.     INC   DPTR
  554.     CLR   A
  555.     JMP   @A+DPTR
  556. ;
  557. ;
  558. ;
  559. ;
  560. ;
  561. ;
  562. ;
  563. ;
  564. ;
  565. DSQR:    MOV    R4,#0           ;THIS IS  SUBROUTING  7-2
  566. DSLP:    CLR    C
  567.     MOV    A,R4
  568.     RLC    A
  569.     XCH    A,R3
  570.     MOV    PSW.5,C
  571.     SETB    C
  572.     SUBB    A,R3
  573.     MOV    R3,A
  574.     CLR    A
  575.     MOV    ACC.0,C
  576.     XCH    A,R2
  577.     MOV    C,PSW.5
  578.     SUBB    A,R2
  579.     MOV    R2,A
  580.     INC    R4
  581.     JNC    DSLP
  582.     DEC    R4
  583.     RET
  584. ;
  585. ;
  586. ;
  587. ;
  588. ;
  589. ;
  590. FSQR:    MOV   A,@R0            ;THIS IS  SUBROUTING  7-3
  591.     JB    ACC.7,FR3
  592.     MOV   @R1,A
  593.     INC   R0
  594.     INC   R1
  595.     MOV   A,@R0
  596.     MOV   @R1,A
  597.     INC   R0
  598.     INC   R1
  599.     MOV   A,@R0
  600.     MOV   @R1,A
  601.     DEC   R0
  602.     DEC   R0
  603.     DEC   R1
  604.     DEC   R1
  605. FR1:    LCALL FDIV
  606.     MOV   R6,A
  607.     MOV   A,@R1
  608.     MOV   R7,A
  609.     INC   R1
  610.     MOV   A,@R1
  611.     MOV   R4,A
  612.     INC   R1
  613.     MOV   A,@R1
  614.     MOV   R5,A
  615.     DEC   R1
  616.     DEC   R1
  617.     CLR   3AH
  618.     LCALL FABP
  619.     CLR   PSW.5
  620.     MOV   A,R4
  621.     DEC   A
  622.     CLR   ACC.7
  623.     MOV   R4,A
  624.     MOV   B,R7
  625.     CLR   B.7
  626.     CJNE  A,B,FR2
  627.     MOV   A,R5
  628.     SUBB  A,R3
  629.     ANL   A,#0FCH
  630.     MOV   R7,A
  631.     MOV   A,R6
  632.     SUBB  A,R2
  633.     JNZ   FR2
  634.     CJNE  R7,#0,FR2
  635.     SETB  PSW.5
  636. FR2:    LCALL FSTR
  637.     JNB   PSW.5,FR1
  638.     RET
  639. FR3:    CLR   PSW.5
  640.     RET
  641. ;
  642. ;
  643. ;
  644. ;
  645. ;
  646. ;
  647. FSIN:    MOV   @R1,#2        ;THIS IS  SUBROUTING  7-4
  648.     INC   R1
  649.     MOV   @R1,#0C9H
  650.     INC   R1
  651.     MOV   @R1,#10H
  652.     DEC   R1
  653.     DEC   R1
  654.     LCALL FDIV
  655.     MOV   A,R0
  656.     PUSH  ACC
  657.     INC   SP
  658.     MOV   A,SP
  659.     INC   SP
  660.     INC   SP
  661.     XCH   A,R1
  662.     MOV   R0,A
  663.     MOV   A,R4
  664.     CLR   ACC.7
  665.     MOV   R4,A
  666.     JZ    FSN1
  667.     JNB   ACC.6,FSN3
  668. FSN1:    MOV   R4,#40H
  669.     MOV   R2,#0
  670.     MOV   R3,#0
  671.     SJMP  FSN4
  672. FSN2:    CLR   C
  673.     MOV   A,R2
  674.     RRC   A
  675.     MOV   R2,A
  676.     MOV   A,R3
  677.     RRC   A
  678.     MOV   R3,A
  679.     INC   R4
  680. FSN3:    CJNE  R4,#16,FSN2
  681. FSN4:    MOV   A,R3
  682.     MOV   C,ACC.0
  683.     MOV   3BH,C
  684.     JNB   38H,FSN5
  685.     CPL   3BH
  686. FSN5:    MOV   A,R4
  687.     MOV   R6,A
  688.     SETB  C
  689.     CLR   PSW.5
  690.     LCALL FSDT
  691.     MOV   A,R6
  692.     MOV   C,38H
  693.     MOV   ACC.7,C
  694.     MOV   R4,A
  695.     LCALL FSTR
  696.     LCALL FMUL
  697.     MOV   A,R0
  698.     XCH   A,R1
  699.     DEC   A
  700.     MOV   SP,A
  701.     LCALL FSTR
  702.     POP   ACC
  703.     PUSH  ACC
  704.     MOV   R0,A
  705.     LCALL FSUB
  706.     MOV   A,R4
  707.     CLR   ACC.7
  708.     MOV   R4,A
  709.     LCALL FSTR
  710.     MOV   A,R1
  711.     MOV   R0,A
  712.     LCALL FPLN
  713.     DB    0F7H,0A8H,70H    ;-1.2850635E-3
  714.     DB    7AH,0C6H,70H    ;0.012111701
  715.     DB    0F9H,0C5H,68H    ;-6.02441338E-3
  716.     DB    0FEH,0A5H,41H    ;-0.161379884
  717.     DB    0FAH,26H,0A0H    ;-2.357414E-3
  718.     DB    1,80H,0EH     ;1.00042182
  719.     DB    0FBH,0,1CH    ;-1.32048E-5
  720.     DB    40H
  721.     MOV   A,@R1
  722.     MOV   C,3BH        ;SIGN of SIN X
  723.     MOV   ACC.7,C
  724.     MOV   @R1,A
  725.     POP   ACC
  726.     MOV   R0,A
  727.     RET
  728. ;
  729. ;
  730. ;
  731. ;
  732. ;
  733. FEXP:    MOV   @R1,#1        ;THIS IS  SUBROUTING  7-5
  734.     INC   R1        ;1/(ln 2) = 1.442695
  735.     MOV   @R1,#0B8H
  736.     INC   R1
  737.     MOV   @R1,#0ABH
  738.     DEC   R1
  739.     DEC   R1
  740.     LCALL  FMUL
  741.     LCALL  FSTR
  742.     MOV   C,38H        ;SIGN of X
  743.     MOV   3BH,C
  744.     MOV   A,R4
  745.     CLR   ACC.7
  746.     MOV   R4,A
  747.     JNB   ACC.6,FEX1
  748.     MOV   R2,#0
  749.     SJMP  FEX4
  750. FEX1:    CJNE  R4,#7,$+3
  751.     JC    FEX3
  752.     SETB  PSW.5        ;Over Flow
  753.     RET
  754. FEX2:    CLR   C
  755.     MOV   A,R2
  756.     RRC   A
  757.     MOV   R2,A
  758.     MOV   A,R3
  759.     RRC   A
  760.     MOV   R3,A
  761.     INC   R4
  762. FEX3:    CJNE  R4,#8,FEX2
  763. FEX4:    MOV   A,R0
  764.     PUSH  ACC
  765.     INC   SP
  766.     MOV   A,SP
  767.     INC   SP
  768.     INC   SP
  769.     XCH   A,R1
  770.     MOV   R0,A
  771.     MOV   A,R2
  772.     PUSH  ACC
  773.     MOV   R3,#0
  774.     MOV   R6,#8
  775.     SETB  PSW.5
  776.     CLR   PSW.5
  777.     LCALL FSDT
  778.     MOV   A,R6
  779.     MOV   C,3BH        ;SIGN of X
  780.     MOV   ACC.7,C
  781.     MOV   R4,A
  782.     LCALL FSTR
  783.     LCALL FSUB
  784.     LCALL FSTR
  785.     MOV   A,R0
  786.     XCH   A,R1
  787.     MOV   R0,A
  788.     LCALL FPLN
  789. ;    DF    0.001356407
  790. ;    DF    0.009851447
  791. ;    DF    0.055495483
  792. ;    DF    0.24013873
  793. ;    DF    0.693147619
  794. ;    DF    1
  795.     DB    40H
  796.     POP   ACC
  797.     JNB   3BH,FEX5
  798.     CPL   A
  799.     INC   A
  800. FEX5:    ADD   A,@R1
  801.     CLR   ACC.7
  802.     MOV   @R1,A
  803.     DEC   R0
  804.     MOV   SP,R0
  805.     POP   ACC
  806.     MOV   R0,A
  807.     RET
  808. ;
  809. ;
  810. ;
  811. ;
  812. ;
  813. ;
  814. ;
  815. ;
  816. ;
  817. ;
  818. ;
  819. ;
  820. FLN0:    SETB    PSW.5
  821. FLN1:    RET
  822. FLNX:    CLR    PSW.5            ;THIS IS  SUBROUTING  7-6
  823.     MOV    A,R0
  824.     JB    ACC.7,FLN0
  825.     LCALL    LNORM
  826.     JB    PSW.5,FLN1
  827.     MOV    A,R0
  828.     PUSH    ACC
  829.     MOV    A,@R0
  830.     PUSH    ACC
  831.     CLR    A
  832.     PUSH    ACC
  833.     INC    R0
  834.     MOV    A,@R0
  835.     MOV    R2,A
  836.     INC    R0
  837.     MOV    A,@R0
  838.     MOV    R0,SP
  839.     CLR    C
  840.     RLC    A
  841.     XCH    A,R2
  842.     RLC    A
  843.     PUSH    ACC
  844.     MOV    A,R2
  845.     PUSH    ACC
  846.     LCALL    FPLN
  847. ;    DF    0.029808
  848. ;    DF    -0.129955
  849. ;    DF    0.283822
  850. ;    DF    -0.4897
  851. ;    DF    0.9917
  852. ;    DF    0.00001144
  853.     DB    40H
  854.     DEC    R0
  855.     MOV    A,@R0
  856.     DEC    A
  857.     JZ    FLN5
  858.     MOV    C,ACC.6
  859.     MOV    3BH,C
  860.     MOV    ACC.7,C
  861.     JNC    FLN2
  862.     CPL    A
  863.     INC    A
  864. FLN2:    MOV    R5,A
  865.     MOV    B,#72H
  866.     MUL    AB
  867.     XCH    A,R5
  868.     MOV    R3,B
  869.     MOV    B,#0B1H
  870.     MUL    AB
  871.     ADD    A,R3
  872.     MOV    R3,A
  873.     CLR    A
  874.     ADDC    A,B
  875.     MOV    R2,A
  876.     MOV    R4,#8
  877.     MOV    A,R2
  878. FLN3:    JB    ACC.7,FLN4
  879.     MOV    A,R5
  880.     RLC    A
  881.     MOV    R5,A
  882.     MOV    A,R3
  883.     RLC    A
  884.     MOV    R3,A
  885.     MOV    A,R2
  886.     RLC    A
  887.     MOV    R2,A
  888.     DEC    R4
  889.     SJMP    FLN3
  890. FLN4:    MOV    A,R4
  891.     MOV    C,3BH
  892.     MOV    ACC.7,C
  893.     MOV    R4,A
  894.     MOV    A,R0
  895.     XCH    A,R1
  896.     MOV    R0,A
  897.     LCALL    FSTR
  898.     MOV    A,R0
  899.     XCH    A,R1
  900.     MOV    R0,A
  901.     LCALL    FADD
  902.     LCALL    FSTR
  903. FLN5:    DEC    R0
  904.     MOV    SP,R0
  905.     POP    ACC
  906.     MOV    R0,A
  907.     RET
  908. LNORM:    MOV    A,@R0
  909.     MOV    C,ACC.7
  910.     MOV    PSW.5,C
  911.     INC    R0
  912.     MOV    C,ACC.6
  913.     MOV    ACC.7,C
  914.     MOV    R2,A
  915. LNRM1:    MOV    A,@R0
  916.     INC    R0
  917.     JNZ    LNRM3
  918.     MOV    A,@R0
  919.     JNZ    LNRM4
  920.     DEC    R0
  921.     DEC    R0
  922.     MOV    A,#40H
  923.     MOV    C,PSW.5
  924.     MOV    ACC.7,C
  925.     MOV    @R0,A
  926.     SETB    PSW.5
  927.     RET
  928. LNRM3:    JB    ACC.7,LNRM5
  929. LNRM4:    CLR    C
  930.     MOV    A,@R0
  931.     RLC    A
  932.     MOV    @R0,A
  933.     DEC    R0
  934.     MOV    A,@R0
  935.     RLC    A
  936.     MOV    @R0,A
  937.     INC    R0
  938.     DEC    R2
  939.     CJNE    R2,#0C0H,LNRM3
  940. LNRM5:    DEC    R0
  941.     DEC    R0
  942.     MOV    A,R2
  943.     MOV    C,PSW.5
  944.     MOV    ACC.7,C
  945.     MOV    @R0,A
  946.     RET
  947. ;
  948. ;
  949. ;
  950. ;
  951. ;
  952. ;
  953. ;
  954. ;    THIS IS THE FILE OF DTOB.ASM
  955. ;
  956. IDTB:    MOV   R3,#0            ;THIS IS  SUBROUTING  8-1
  957.     MOV   A,@R0
  958.     MOV   R4,A
  959. IDTL:    MOV   A,R4
  960.     MOV   B,#10
  961.     MUL   AB
  962.     MOV   R4,A
  963.     MOV   B,#10
  964.     XCH   A,B
  965.     XCH   A,R3
  966.     MUL   AB
  967.     ADD   A,R3
  968.     XCH   A,R4
  969.     INC   R0
  970.     ADD   A,@R0
  971.     XCH   A,R4
  972.     ADDC  A,#0
  973.     MOV   R3,A
  974.     DJNZ  R2,IDTL
  975.     RET
  976. ;
  977. ;
  978. ;
  979. ;
  980. ;
  981. ;
  982. PDTB:    MOV   R3,#0          ;THIS IS  SUBROUTING    8-2
  983.     MOV   R4,#0
  984. PDTL:    MOV   A,R3
  985.     MOV   B,#9AH
  986.     MUL   AB            ;First    MUL
  987.     MOV   R5,B
  988.     XCH   A,R4
  989.     MOV   B,#19H
  990.     MUL   AB            ;Second MUL
  991.     ADD   A,R4
  992.     MOV   A,R5
  993.     ADDC  A,B
  994.     MOV   R5,A
  995.     MOV   A,@R0
  996.     MOV   B,#9AH
  997.     MUL   AB            ;Third    MUL
  998.     ADD   A,R5
  999.     MOV   R4,A
  1000.     CLR   A
  1001.     ADDC  A,B
  1002.     XCH   A,R3
  1003.     MOV   B,#19H
  1004.     MUL   AB            ;Fourth MUL
  1005.     ADD   A,R4
  1006.     MOV   R4,A
  1007.     MOV   A,B
  1008.     ADDC  A,R3
  1009.     MOV   R3,A
  1010.     MOV   A,@R0
  1011.     MOV   B,#19H
  1012.     MUL   AB            ;Fifth    MUL
  1013.     ADD   A,R3
  1014.     MOV   R3,A
  1015.     DEC   R0
  1016.     DJNZ  R2,PDTL
  1017.     RET
  1018. ;
  1019. ;
  1020. ;
  1021. ;
  1022. ;
  1023. ;
  1024. ;
  1025. IBTD:    CLR   A             ;THIS IS  SUBROUTING  8-3 ;IBDT2
  1026.     MOV   R4,A
  1027.     MOV   R5,A
  1028.     MOV   R6,A
  1029.     MOV   R7,#16
  1030. IBTL2:    CLR   C
  1031.     MOV   A,R3
  1032.     RLC   A
  1033.     MOV   R3,A
  1034.     MOV   A,R2
  1035.     RLC   A
  1036.     MOV   R2,A
  1037.     MOV   A,R6
  1038.     ADDC  A,R6
  1039.     DA    A
  1040.     MOV   R6,A
  1041.     MOV   A,R5
  1042.     ADDC  A,R5
  1043.     DA    A
  1044.     MOV   R5,A
  1045.     MOV   A,R4
  1046.     ADDC  A,R4
  1047.     DA    A
  1048.     MOV   R4,A
  1049.     DJNZ  R7,IBTL2
  1050.     RET
  1051. ;
  1052. ;
  1053. ;
  1054. ;
  1055. ;
  1056. ;
  1057. ;
  1058. ;
  1059. ;
  1060. PBTD:    MOV   R4,#5        ;THIS IS  SUBROUTING  8-4
  1061. PBTL:    MOV   A,R3
  1062.     MOV   B,#10
  1063.     MUL   AB
  1064.     MOV   R3,A
  1065.     MOV   A,#10
  1066.     XCH   A,B
  1067.     XCH   A,R2
  1068.     MUL   AB
  1069.     ADD   A,R2
  1070.     MOV   R2,A
  1071.     CLR   A
  1072.     ADDC  A,B            ;(A) = BCD
  1073.     MOV   @R0,A
  1074.     INC   R0
  1075.     DJNZ  R4,PBTL
  1076.     RET
  1077. ;
  1078. ;
  1079. ;
  1080. ;
  1081. ;
  1082. ;
  1083. ;
  1084. NIDTB:    MOV    A,R1            ;THIS IS  SUBROUTING  8-5 ;SUBC1
  1085.     MOV    R6,A
  1086.     MOV    A,R7
  1087.     MOV    R3,A
  1088.     CLR    A
  1089. NDB0:    MOV    @R1,A
  1090.     INC    R1
  1091.     DJNZ    R3,NDB0
  1092.     MOV    A,R7
  1093.     MOV    R3,A
  1094. NDB3:    LCALL    NDB1            ;M10
  1095.     MOV    A,@R0
  1096.     ANL    A,#0F0H
  1097.     SWAP    A
  1098.     LCALL    NDB2            ;SUM
  1099.     LCALL    NDB1            ;M10
  1100.     MOV    A,@R0
  1101.     ANL    A,#0FH
  1102.     LCALL    NDB2
  1103.     DEC    R0
  1104.     DJNZ    R3,NDB3
  1105.     RET
  1106. NDB1:    MOV    A,R7            ;SUM SUBROUTING
  1107.     MOV    R4,A
  1108.     MOV    A,R6
  1109.     MOV    R1,A
  1110.     CLR    C            ;
  1111.     MOV    R2,#00H
  1112. NDB4:    MOV    A,@R1
  1113.     MOV    B,#0AH
  1114.     PUSH    PSW
  1115.     MUL    AB
  1116.     POP    PSW
  1117.     ADDC    A,R2
  1118.     MOV    @R1,A
  1119.     MOV    R2,B
  1120.     INC    R1
  1121.     DJNZ    R4,NDB4
  1122.     RET
  1123. NDB2:    MOV    R5,A
  1124.     MOV    A,R6
  1125.     MOV    R1,A
  1126.     MOV    A,R7
  1127.     MOV    R4,A
  1128.     MOV    A,R5
  1129.     ADD    A,@R1
  1130.     MOV    @R1,A
  1131.     INC    R1
  1132.     DEC    R4
  1133.     MOV    A,R4
  1134.     JNZ    NDB5
  1135.     LJMP    NDB6
  1136. NDB5:    MOV    A,@R1
  1137.     ADDC    A,#00H
  1138.     MOV    @R1,A
  1139.     INC    R1
  1140.     DJNZ    R4,NDB5
  1141. NDB6:    RET
  1142. ;
  1143. ;
  1144. ;
  1145. ;
  1146. ;
  1147. ;
  1148. ;
  1149. ;
  1150. ;
  1151. ;
  1152. ;
  1153. ;
  1154. ;
  1155. ;
  1156. ;
  1157. ;
  1158. NIBTD:    MOV    A,R0            ;THIS IS  SUBROUTING  8-6 ;SUBD1
  1159.     MOV    R5,A
  1160.     MOV    A,R1
  1161.     MOV    R6,A
  1162.     MOV    A,R7
  1163.     INC    A
  1164.     MOV    R3,A
  1165.     CLR    A
  1166. NBD0:    MOV    @R1,A
  1167.     INC    R1
  1168.     DJNZ    R3,NBD0
  1169.     MOV    A,R7
  1170.     MOV    B,#08H
  1171.     MUL    AB
  1172.     MOV    R3,A
  1173. NBD4:    MOV    A,R5
  1174.     MOV    R0,A
  1175.     MOV    A,R7
  1176.     MOV    R2,A
  1177.     CLR    C
  1178. NBD1:    MOV    A,@R0
  1179.     RLC    A
  1180.     MOV    @R0,A
  1181.     INC    R0
  1182.     DJNZ    R2,NBD1
  1183.     MOV    A,R6
  1184.     MOV    R1,A
  1185.     MOV    A,R7
  1186.     MOV    R2,A
  1187.     INC    R2
  1188. NBD3:    MOV    A,@R1
  1189.     ADDC    A,@R1
  1190.     DA    A
  1191.     MOV    @R1,A
  1192.     INC    R1
  1193.     DJNZ    R2 ,NBD3
  1194.     DJNZ    R3,NBD4
  1195.     RET
  1196. ;
  1197. NPDTB:    MOV    A,R0            ;THIS IS  SUBROUTING  8-7 ;SUBE1
  1198.     MOV    R4,A
  1199.     MOV    A,R1
  1200.     MOV    R5,A
  1201.     MOV    A,R7
  1202.     MOV    R3,A
  1203.     CLR    A
  1204. NPDB0:    MOV    @R1,A
  1205.     INC    R1
  1206.     DJNZ    R3,NPDB0
  1207.     MOV    A,R7
  1208.     MOV    B,#08H
  1209.     MUL    AB
  1210.     MOV    R3,A
  1211. NPDB3:    MOV    A,R6
  1212.     MOV    R2,A
  1213.     MOV    A,R4
  1214.     MOV    R0,A
  1215.     CLR    C
  1216. NPDB1:    MOV    A,@R0
  1217.     ADDC    A,@R0
  1218.     DA    A
  1219.     MOV    @R0,A
  1220.     INC    R0
  1221.     DJNZ    R2,NPDB1
  1222.     MOV    A,R5
  1223.     MOV    R1,A
  1224.     MOV    A,R7
  1225.     MOV    R2,A
  1226. NPDB2:    MOV    A,@R1
  1227.     RLC    A
  1228.     MOV    @R1,A
  1229.     INC    R1
  1230.     DJNZ    R2,NPDB2
  1231.     DJNZ    R3,NPDB3
  1232.     RET
  1233. ;
  1234. ;
  1235. ;
  1236. ;
  1237. ;
  1238. ;
  1239. ;
  1240. ;
  1241. NPBTD:    MOV    A,R0            ;THIS IS  SUBROUTING  8-8 ;SUBF1
  1242.     MOV    R4,A
  1243.     MOV    A,R1
  1244.     MOV    R5,A
  1245.     MOV    A,R6
  1246.     MOV    R3,A
  1247.     CLR    A
  1248. NPBD0:    MOV    @R1,A
  1249.     INC    R1
  1250.     DJNZ    R3,NPBD0
  1251.     MOV    A,R6
  1252.     RL    A
  1253.     MOV    R3,A
  1254. NPBD3:    MOV    A,R4
  1255.     MOV    R0,A
  1256.     MOV    A,R7
  1257.     MOV    R2,A
  1258.     MOV    R1,#00H
  1259.     CLR    C
  1260. NPBD1:    MOV    A,@R0
  1261.     MOV    B,#0AH
  1262.     PUSH    PSW
  1263.     MUL    AB
  1264.     POP    PSW
  1265.     ADDC    A,R1
  1266.     MOV    @R0,A
  1267.     MOV    R1,B
  1268.     INC    R0
  1269.     DJNZ    R2,NPBD1
  1270.     MOV    A,R1
  1271.     ADDC    A,#00H
  1272.     MOV    R1,A
  1273.     MOV    A,R6
  1274.     MOV    R2,A
  1275.     MOV    A,R5
  1276.     MOV    R0,A
  1277. NPBD2:    MOV    A,@R0
  1278.     SWAP    A
  1279.     MOV    @R0,A
  1280.     XCH    A,R1
  1281.     XCHD    A,@R0
  1282.     INC    R0
  1283.     DJNZ    R2,NPBD2
  1284.     DJNZ    R3,NPBD3
  1285.     RET
  1286. ;
  1287. ;
  1288. ;    THIS IS THE FILE OF TAB.ASM
  1289. ;
  1290. ;
  1291. RTBA:    MOV   A,R2           ;THIS IS  SUBROUTING  9-1 ;LTB2
  1292.     ADD   A,R2
  1293.     MOV   R3,A
  1294.     ADD   A,#6
  1295.     MOVC  A,@A+PC
  1296.     XCH   A,R3
  1297.     ADD   A,#3
  1298.     MOVC  A,@A+PC
  1299.     MOV   R4,A
  1300.     RET
  1301. TAB2:    DW    ADR0,ADR1,ADR2,ADR3    ;COMD PROCESSING ADDRESS
  1302.     DW    ADR4,ADR5,ADR6,ADR7
  1303.     DW    ADR8,ADR9,ADRA,ADRB
  1304.     DW    ADRC,ADRD,ADRE,ADRF
  1305. ;
  1306. ;
  1307. ;
  1308. ;
  1309. TMAINA: LCALL    RACOMD
  1310.     LCALL    RTBA
  1311.     MOV    DPH,R3
  1312.     MOV    DPL,R4
  1313.     CLR    A
  1314.     JMP    @A+DPTR
  1315. ;
  1316. ;
  1317. ;
  1318. ;
  1319. ;
  1320. RACOMD: NOP
  1321. ;
  1322. ;
  1323. ;
  1324. ADR0:NOP
  1325. ADR1:NOP
  1326. ADR2:NOP
  1327. ADR3:NOP
  1328. ADR4:NOP
  1329. ADR5:NOP
  1330. ADR6:NOP
  1331. ADR7:NOP
  1332. ADR8:NOP
  1333. ADR9:NOP
  1334. ADRA:NOP
  1335. ADRB:NOP
  1336. ADRC:NOP
  1337. ADRD:NOP
  1338. ADRE:NOP
  1339. ADRF:NOP
  1340. ;
  1341. ;
  1342. ;
  1343. ;
  1344. ;
  1345. ;
  1346. ;
  1347. ;
  1348. TMAINB: LCALL    INILTA
  1349.     MOV    DPTR,#7FFCH
  1350.     MOVX    A,@DPTR
  1351.     MOV    R2,A
  1352.     INC    DPTR
  1353.     MOVX    A,@DPTR
  1354.     MOV    R3,A
  1355.     LCALL    RTBB
  1356.     LCALL    PTADD
  1357. ;
  1358. ;
  1359. ;
  1360. ;
  1361. ;
  1362. INILTA: NOP
  1363. PTADD:    NOP
  1364. ;
  1365. ;
  1366. ;
  1367. ;
  1368. RTBB:    MOV   DPTR,#TAB3        ;THIS IS  SUBROUTING  9-2 ;LTB3
  1369.     MOV   A,R3
  1370.     CLR   C
  1371.     RLC   A
  1372.     XCH   A,R2
  1373.     RLC   A
  1374.     XCH   A,R2
  1375.     ADD   A,DPL
  1376.     MOV   DPL,A
  1377.     MOV   A,DPH
  1378.     ADDC  A,R2
  1379.     MOV   DPH,A
  1380.     CLR   A
  1381.     MOVC  A,@A+DPTR
  1382.     MOV   R2,A
  1383.     CLR   A
  1384.     INC   DPTR
  1385.     MOVC  A,@A+DPTR
  1386.     MOV   R3,A
  1387.     RET
  1388. TAB3:    DW    D0000,D0001,D0002,D0003
  1389.     DW    D0004,D0005,D0006,D0007
  1390. ;    .............................
  1391.     DW    D1020,D1021,D1022,D1023
  1392. ;
  1393. ;
  1394. ;
  1395. ;
  1396. ;
  1397. ;
  1398. D0000:    NOP
  1399. D0001:    NOP
  1400. D0002:    NOP
  1401. D0003:    NOP
  1402. D0004:    NOP
  1403. D0005:    NOP
  1404. D0006:    NOP
  1405. D0007:    NOP
  1406. D1020:    NOP
  1407. D1021:    NOP
  1408. D1022:    NOP
  1409. D1023:    NOP
  1410. ;
  1411. ;
  1412. RTBC:    MOV   R2,#0FFH            ;THIS IS  SUBROUTING  9-3 ;LTB4
  1413.     MOV   DPTR,#TAB4
  1414. LT4A:    MOV   A,R0
  1415.     MOV   R1,A
  1416.     INC   R2
  1417. LT4B:    MOV   A,@R1
  1418.     MOV   B,A
  1419.     CLR   A
  1420.     MOVC  A,@A+DPTR
  1421.     CLR   PSW.5
  1422.     JBC   ACC.7,LT4C
  1423.     SETB  PSW.5
  1424. LT4C:    JZ    LT4N
  1425.     CJNE  A,B,LT4D
  1426.     JNB   PSW.5,LT4Y
  1427.     INC   R1
  1428.     INC   DPTR
  1429.     SJMP  LT4B
  1430. LT4D:    INC   DPTR
  1431.     JNB   PSW.5,LT4A
  1432. LT4E:    CLR   A
  1433.     MOVC  A,@A+DPTR
  1434.     INC   DPTR
  1435.     JB    ACC.7,LT4A
  1436.     SJMP  LT4E
  1437. LT4Y:    LJMP    FINE
  1438. LT4N:    LJMP    NFINE
  1439. TAB4:    DB    52H,45H,53H,45H,0D4H          ;RESET
  1440.     DB    42H,45H,47H,49H,0CEH          ;BEGIN
  1441.     DB    53H,54H,4FH,0D0H              ;STOP
  1442.     DB    53H,45H,4EH,0C4H              ;SEND
  1443.     DB    43H,48H,41H,4EH,4EH,45H,0CCH    ;CHANNEL
  1444.     DB    43H,48H,41H,4EH,47H,0C5H          ;CHANGE
  1445.     DB    0                   ;END
  1446. ;
  1447. ;
  1448. ;
  1449. ;
  1450. ;
  1451. ;
  1452. ;
  1453. ;
  1454. ;
  1455. FINE:    NOP
  1456. NFINE:    NOP
  1457. INSTR:    NOP
  1458. ECOMD:    NOP    ;
  1459. ;
  1460. ;
  1461. ;
  1462. ;
  1463. ;
  1464. ;
  1465. ;
  1466. ;
  1467. TMAINC: LCALL INSTR
  1468.     MOV    R0,#30H
  1469.     LCALL    RTBC
  1470.     JC    ECOMD
  1471.     MOV    DPTR,#TTABC
  1472.     MOV    A,R2
  1473.     RL    A
  1474.     JMP    @A+DPTR
  1475. TTABC:    AJMP    TPCOMD0
  1476.     AJMP    TPCOMD1
  1477.     AJMP    TPCOMD2
  1478.     AJMP    TPCOMD3
  1479.     AJMP    TPCOMD4
  1480.     AJMP    TPCOMD5
  1481. TPCOMD0:NOP
  1482. TPCOMD1:NOP
  1483. TPCOMD2:NOP
  1484. TPCOMD3:NOP
  1485. TPCOMD4:NOP
  1486. TPCOMD5:NOP
  1487. ;
  1488. ;
  1489. ;
  1490. ;
  1491. ;
  1492. RTBD:    MOV   DPTR,#TAB5        ;THIS IS  SUBROUTING  9-4 ;LTB5
  1493.     MOV   B,A
  1494. LT5A:    CLR   A
  1495.     MOVC  A,@A+DPTR
  1496.     JZ    LT5N
  1497.     INC   DPTR
  1498.     CJNE  A,B,LT5B
  1499.     CLR   A
  1500.     MOVC  A,@A+DPTR
  1501.     MOV   B,A
  1502.     INC   DPTR
  1503.     CLR   A
  1504.     MOVC  A,@A+DPTR
  1505.     MOV   DPL,A
  1506.     MOV   DPH,B
  1507.     CLR   A
  1508.     JMP   @A+DPTR
  1509. LT5B:    INC   DPTR
  1510.     INC   DPTR
  1511.     SJMP  LT5A
  1512. LT5N:    LJMP    NFIN5
  1513. TAB5:    DB    41H        ;ASCII      A
  1514.     DW    XA
  1515.     DB    44H        ;ASCII      D
  1516.     DW    XD
  1517.     DB    45H        ;ASCII      E
  1518.     DW    XE
  1519.     DB    4CH        ;ASCII      L
  1520.     DW    XL
  1521.     DB    4DH        ;ASCII      M
  1522.     DW    XM
  1523.     DB    58H        ;ASCII      X
  1524.     DW    XX
  1525.     DB    5AH        ;ASCII      Z
  1526.     DW    XZ
  1527.     DB    0         ;END
  1528. ;
  1529. ;
  1530. ;
  1531. ;
  1532. ;
  1533. ;
  1534. ;
  1535. ;
  1536. ;
  1537. ;
  1538. ;
  1539. XA:    NOP
  1540. XD:    NOP
  1541. XE:    NOP
  1542. NFIN5:    NOP
  1543. XL:    NOP
  1544. XM:    NOP
  1545. XX:    NOP
  1546. XZ:    NOP
  1547. ;
  1548. ;
  1549. ;
  1550. ;
  1551. ;
  1552. ;
  1553. ;
  1554. RTBE:    MOVX  A,@DPTR        ;THIS IS  SUBROUTING  9-5 ;LKST
  1555.     INC   DPTR
  1556.     JZ    LKS5
  1557.     MOV   R6,DPH
  1558.     MOV   R7,DPL
  1559.     MOV   R3,#0
  1560. LKS1:    DEC   A
  1561.     MOV   R4,A
  1562. LKS2:    CJNE  A,3,$+3
  1563.     JC    LKS4        ;(HI) < (LO)
  1564.     ADD   A,R3
  1565.     CLR   C
  1566.     RRC   A
  1567.     MOV   R5,A        ;      MI
  1568.     LCALL LTT
  1569.     MOVX  A,@DPTR
  1570.     CJNE  A,2,LKS3
  1571.     INC   DPTR        ;
  1572.     MOVX  A,@DPTR
  1573.     MOV   R3,A
  1574.     INC   DPTR
  1575.     MOVX  A,@DPTR
  1576.     MOV   R4,A
  1577.     INC   DPTR
  1578.     MOVX  A,@DPTR
  1579.     RET
  1580. LKS3:    MOV   A,R5
  1581.     JNC   LKS1
  1582.     INC   A
  1583.     MOV   R3,A        ;
  1584.     MOV   A,R4        ;
  1585.     SJMP  LKS2
  1586. LKS4:    INC   A
  1587. LKS5:    LCALL LTT
  1588.     SETB  C
  1589.     RET
  1590. LTT:    MOV   B,#4
  1591.     MUL   AB
  1592.     ADD   A,R7
  1593.     MOV   DPL,A
  1594.     MOV   A,B
  1595.     ADDC  A,R6
  1596.     MOV   DPH,A
  1597.     RET
  1598. ;
  1599. ;
  1600. ;
  1601. ;
  1602. ;
  1603. ISTL:    MOV    R6,DPH        ;THIS IS  SUBROUTING  9-6 ;
  1604.     MOV    R7,DPL
  1605.     MOV    DPL,R1
  1606.     MOV    DPH,B
  1607.     INC    DPTR
  1608.     INC    DPTR
  1609.     INC    DPTR
  1610.     INC    DPTR
  1611. IST1:    MOV    A,R6
  1612.     CJNE    A,B,IST2
  1613.     MOV    A,R7
  1614.     CJNE    A,1,IST2
  1615.     MOV    DPH,B
  1616.     MOV    DPL,R1
  1617.     MOV    A,R2
  1618.     MOVX    @DPTR,A
  1619.     INC    DPTR
  1620.     MOV    A,R3
  1621.     MOVX    @DPTR,A
  1622.     INC    DPTR
  1623.     MOV    A,R4
  1624.     MOVX    @DPTR,A
  1625.     INC    DPTR
  1626.     MOV    A,R5
  1627.     MOVX    @DPTR,A
  1628.     RET
  1629. IST2:    MOV    P2,B
  1630.     MOVX    A,@R1
  1631.     MOVX    @DPTR,A
  1632.     DEC    R1
  1633.     CJNE    A,#0FFH,IST3
  1634.     DEC    B
  1635. IST3:    DEC    DPL
  1636.     MOV    A,DPL
  1637.     CJNE    A,#0FFH,IST4
  1638.     DEC    DPH
  1639. IST4:    SJMP    IST1
  1640. ;
  1641. ;
  1642. ;
  1643. ;
  1644. ;
  1645. ;
  1646. ;
  1647. ;
  1648. ;
  1649. ;
  1650. ;
  1651. ;
  1652. ;
  1653. ;
  1654. ;
  1655. ;
  1656. ;
  1657. CSTAB:    MOV    A,R4           ;THIS IS  SUBROUTING  9-7  ;TEXT MC COHD
  1658.     MOVC   A,@A+PC
  1659.     XRL    A,@R0
  1660.     JNZ    SB50
  1661.     INC    R4
  1662.     INC    R0
  1663.     DJNZ   R7,CSTAB
  1664.     CLR    A
  1665.     RET
  1666. SB50:    MOV    A,#0FFH
  1667.     RET
  1668.     DB     41H,20H,47H,45H,54H,54H,49H,4DH,45H,0DH ;A GETTIME
  1669.     DB     42H,20H,47H,45H,54H,44H,41H,54H,41H,0DH ;B GETDATA
  1670.     DB     43H,20H,47H,45H,54H,53H,54H,41H,54H,0DH ;C GETSTAT
  1671.     DB     44H,20H,49H,4DH,45H,4CH,44H,0DH           ;D TIMELD
  1672. ;
  1673. ;
  1674. ;
  1675. ;
  1676. LOADS:    MOV    A,R6          ;THIS IS  SUBROUTING    9-8 ;ASCII $->BUF
  1677.     MOVC   A,@A+PC
  1678.     MOV    @R0,A
  1679.     INC    R0
  1680.     INC    R6
  1681.     DJNZ   R7,LOADS
  1682.     JNB    PSW.5,SB31
  1683.     CLR    PSW.5
  1684.     MOV    A,31H
  1685.     MOV    B,#0AH
  1686.     DIV    AB
  1687.     LCALL  HASC
  1688.     MOV    @R0,A
  1689.     INC    R0
  1690.     MOV    A,B
  1691.     LCALL  HASC
  1692.     MOV    @R0,A
  1693.     INC    R0
  1694.     MOV    @R0,#0DH
  1695. SB31:    RET
  1696.     DB     52H,45H,41H,44H,59H,0DH            ;READY     1E
  1697.     DB     3FH,3FH,0DH                ;??     24
  1698.     DB     45H,52H,52H,4FH,52H,0DH            ;ERROR     27
  1699.     DB     54H,49H,4DH,45H,0DH            ;TIME     2D
  1700.     DB     53H,54H,41H,54H,0DH            ;STAT     32
  1701.     DB     4FH,4CH,44H,0DH                ;OLD     37
  1702.     DB     4EH,45H,57H,0DH                ;NEW     3B
  1703.     DB     44H,4FH,4EH,4FH,54H,0DH            ;DONOT     3F
  1704.     DB     49H,4EH,49H,54H,49H,41H,4CH,0DH        ;INITIAL 45
  1705.     DB     52H,49H,47H,48H,54H,0DH            ;RIGHT     4D
  1706.     DB     43H,4CH,4FH,53H,45H,0DH            ;CLOSE     53
  1707.     DB     53H,59H,4EH,4FH,50H,20H            ;SYNOP     59
  1708.     DB     42H,45H,47H,49H,4EH,0DH            ;BEGIN     5F
  1709.     DB     41H,43H,4BH,4EH,47H,0DH,0DH        ;ACKNG     65                    ;ACKNG CLOSE 65
  1710.     DB     51H,41H,4CH,41H,52H,4DH,20H        ;QALARM  6C
  1711.     DB     44H,41H,54H,41H,49H,4EH,54H,56H,20H    ;DATAINTV73
  1712.     DB     54H 49H,4DH,45H,41H,44H,4AH,55H,20H    ;TIMEADJ 7C
  1713.     END
  1714. ;
  1715. ;
  1716. ;
  1717. ;    THIS IS THE FILE OF IO.ASM
  1718. ;
  1719. ;
  1720. IAMAIN: MOV    DPTR,#7FFFH     ;THIS IS A APPLICATION EXAMPLE OF DIRA
  1721.     MOV    A,#90H
  1722.     MOVX    @DPTR,A
  1723.     MOV    SP,#60H
  1724.     MOV    R0,#3BH
  1725.     MOV    @R0,#01H
  1726.     INC    R0
  1727.     MOV    @R0,#03H
  1728.     INC    R0
  1729.     MOV    @R0,#00H
  1730.     INC    R0
  1731.     MOV    @R0,#08H
  1732. AML1:    LCALL    DIRA
  1733.     LJMP    AML1
  1734. ;
  1735. ;
  1736. ;
  1737. ;
  1738. ;
  1739. ;
  1740. ;
  1741. ;
  1742. DIRA:    MOV    R2,#01H        ;THIS  SUBROUTING 10-1
  1743.     MOV    R0,#3BH
  1744.     MOV    A,R2
  1745. DIRA1:    MOV    DPTR,#7FFEH
  1746.     MOVX    @DPTR,A
  1747.     MOV    A,@R0
  1748.     ADD    A,#12H
  1749.     MOVC    A,@A+PC
  1750. DIRA2:    MOV    SBUF,A
  1751.     MOV    R7,#02H
  1752.     MOV    R6,#0FFH
  1753. DLA1:    DJNZ    R6,DLA1
  1754.     DJNZ    R7,DLA1
  1755.     INC    R0
  1756.     MOV    A,R2
  1757.     RL    A
  1758.     MOV    R2,A
  1759.     JNB    ACC.4,DIRA1
  1760.     RET
  1761. DSEGA:    DB    0C0H,0F9H,0A4H    ;0-2
  1762.     DB    0B0H,099H,092H    ;3-5
  1763.     DB    082H,0F8H,080H    ;6-8
  1764.     DB    090H,0E3H,0DFH    ;9,|_|,-
  1765. ;
  1766. ;
  1767. ;
  1768. ;
  1769. ;
  1770. ;
  1771. ;
  1772. ;
  1773. DIRB:    MOV    R0,#39H          ;THIS    SUBROUTING 10-2
  1774.     MOV    R3,#01H
  1775.     MOV    A,R3
  1776. BLD0:    MOV    DPTR,#7F01H
  1777.     MOVX    @DPTR,A
  1778.     INC    DPTR
  1779.     MOV    A,@R0
  1780.     ADD    A,#0DH
  1781.     MOVC    A,@A+PC
  1782. BDIR1:    MOVX    @DPTR,A
  1783.     LCALL    BDL1
  1784.     INC    R0
  1785.     MOV    A,R3
  1786.     JB    ACC.5,BLD1
  1787.     RL    A
  1788.     MOV    R3,A
  1789.     SJMP    BLD0
  1790. BLD1:    RET
  1791. BDSEG:    DB    3FH,06H,5BH,4FH,66H,6DH  ;0,1,2,3,4,5
  1792. BDSEG1: DB    7DH,07H,7FH,6FH,77H,7CH  ;6,7,8,9,A,B
  1793. BDSEG2: DB    39H,5EH,79H,71H,73H,3EH  ;C,D,E,F,P,|_|,
  1794. BDSEG3: DB    31H,6EH,1CH,23H,40H,03H  ;R:12,Y:13,|_|:14,-:15,-|:17
  1795. BDSEG4: DB    18H,38H,00         ;|_:18,|_:19,    :1A
  1796. BDL1:    MOV    R7,#04H
  1797. BDL:    MOV    R6,#0E7H         ;0.5 ms
  1798. BDL6:    DJNZ    R6,BDL6
  1799.     DJNZ    R7,BDL
  1800.     RET
  1801. ;
  1802. ;
  1803. ;
  1804. ;
  1805. ;
  1806. KEYIB:    LCALL    BKS1         ;THIS    SUBROUTING 10-3
  1807.     JNZ    BLK1
  1808. BNI:    LCALL    DIRB
  1809.     LJMP    KEYIB
  1810. BLK1:    LCALL    DIRB
  1811.     LCALL    DIRB
  1812.     LCALL    BKS1
  1813.     JNZ    BLK2
  1814.     LCALL    DIRB
  1815.     LJMP    KEYIB
  1816. BLK2:    MOV    R2,#0FEH
  1817.     MOV    R4,#00H
  1818. BLK4:    MOV    DPTR,#7F01H
  1819.     MOV    A,R2
  1820.     MOVX    @DPTR,A
  1821.     INC    DPTR
  1822.     INC    DPTR
  1823.     MOVX    A,@DPTR
  1824.     JB    ACC.0,BLONE
  1825.     MOV    A,#00H
  1826.     LJMP    BLKP
  1827. BLONE:    JB    ACC.1,BLTWO
  1828.     MOV    A,#08H
  1829.     LJMP    BLKP
  1830. BLTWO:    JB    ACC.2,BLTHR
  1831.     MOV    A,#10H
  1832.     LJMP    BLKP
  1833. BLTHR:    JB    ACC.3,BNEXT
  1834.     MOV    A,#18H
  1835. BLKP:    ADD    A,R4
  1836.     PUSH    ACC
  1837. BLK3:    LCALL    DIRB
  1838.     LCALL    BKS1
  1839.     JNZ    BLK3
  1840.     POP    ACC
  1841.     RET
  1842. BNEXT:    INC    R4
  1843.     MOV    A,R2
  1844.     JNB    ACC.7,BKND
  1845.     RL    A
  1846.     MOV    R2 A
  1847.     LJMP    BLK4
  1848. BKND:    LJMP    KEYIB
  1849. BKS1:    MOV    DPTR,#7F01H
  1850.     MOV    A,#00H
  1851.     MOVX    @DPTR,A
  1852.     INC    DPTR
  1853.     INC    DPTR
  1854.     MOVX    A,@DPTR
  1855.     CPL    A
  1856.     ANL    A,#0FH
  1857.     RET
  1858. ;
  1859. ;    THIS IS A APPLICATION EXAMPLE OF DIRB,KEYIB
  1860. ;
  1861. ;
  1862. IBMAIN: MOV    SP,#60H
  1863.     MOV    DPTR,#7F00H
  1864.     MOV    A,#03H
  1865.     MOVX    @DPTR,A
  1866.     MOV    R0,#39H
  1867.     MOV    @R0,#13H
  1868.     INC    R0
  1869.     MOV    @R0,#0AH
  1870.     INC    R0
  1871.     MOV    @R0,#12H
  1872.     INC    R0
  1873.     MOV    @R0,#11H
  1874.     INC    R0
  1875.     MOV    @R0,#10H
  1876.     INC    R0
  1877.     MOV    @R0,#0CH
  1878. IBML0:    LCALL    DIRB
  1879.     LCALL    KEYIB
  1880.     JB    ACC.4,IBML0
  1881.     MOV    3EH,3DH
  1882.     MOV    3DH,3CH
  1883.     MOV    3CH,3BH
  1884.     MOV    3BH,39H
  1885.     MOV    39H,A
  1886.     SJMP    IBML0
  1887. ;
  1888. ;
  1889. ;
  1890. ;
  1891. ;
  1892. ;
  1893. ;    THIS IS A APPLICATION EXAMPLE OF DIRC,KEYIC
  1894. ;
  1895. ICMAIN: MOV    SP,#60H
  1896.     MOV    R0,#40H
  1897.     MOV    A,#1AH
  1898. CML0:    MOV    @R0,A
  1899.     INC    R0
  1900.     CJNE    R0,#46H,CML0
  1901. CML1:    LCALL    DIRC
  1902.     LCALL    KEYIC
  1903.     MOV    R0,#40H
  1904.     MOV    R3,A
  1905.     ANL    A,#0FH
  1906.     MOV    @R0,A
  1907.     INC    R0
  1908.     MOV    A,R3
  1909.     ANL    A,#0F0H
  1910.     SWAP    A
  1911.     MOV    @R0,A
  1912.     LJMP    CML1
  1913. ;
  1914. ;
  1915. ;
  1916. ;
  1917. ;
  1918. ;
  1919. ;
  1920. ;
  1921. ;
  1922. ;
  1923. KEYIC:    LCALL    CKS1         ;THIS    SUBROUTING 10-5
  1924.     JNZ    CLK1
  1925. CNI:    LCALL    DIRC
  1926.     LJMP    KEYIC
  1927. CLK1:    LCALL    DIRC
  1928.     LCALL    DIRC
  1929.     LCALL    CKS1
  1930.     JNZ    CLK2
  1931.     LJMP    CNI
  1932. CLK2:    ANL    P1,#0C0H
  1933.     MOV    R3,#0FEH
  1934.     MOV    R4,#00H
  1935.     CLR    TI
  1936. CLK4:    MOV    SBUF,R3
  1937. DKC6:    JBC    TI,DKC7
  1938.     SJMP    DKC6
  1939. DKC7:    JB    P3.3,CLONE
  1940.     MOV    A,#00H
  1941.     LJMP    CLKP
  1942. CLONE:    JB    P3.4,CLTWO
  1943.     MOV    A,#08H
  1944.     LJMP    CLKP
  1945. CLTWO:    JB    P3.5,CNEXT
  1946.     MOV    A,#10H
  1947. CLKP:    ADD    A,R4
  1948.     PUSH    ACC
  1949. CLK3:    LCALL    DIRC
  1950.     LCALL    CKS1
  1951.     JNZ    CLK3
  1952.     POP    ACC
  1953.     RET
  1954. CNEXT:    INC    R4
  1955.     MOV    A,R3
  1956.     JNB    ACC.7,CKND
  1957.     RL    A
  1958.     MOV    R3,A
  1959.     LJMP    CLK4
  1960. CKND:    LJMP    KEYIC
  1961. CKS1:    MOV    SBUF,#00H
  1962.     MOV    R6,#05H
  1963. CDS6:    DJNZ    R6,CDS6
  1964.     MOV    A,P3
  1965.     CPL    A
  1966.     ANL    A,#38H
  1967.     RET
  1968. ;
  1969. ;
  1970. ;
  1971. ;
  1972. ;
  1973. ;
  1974. ;
  1975. ;
  1976. ;
  1977. ;
  1978. ;
  1979. ;
  1980. DIRC:    MOV    R0,#40H      ;THIS    SUBROUTING 10-4
  1981.     MOV    R2,#01H
  1982. CDIRL:    MOV    P1,R2
  1983.     MOV    A,@R0
  1984.     ADD    A,#12H
  1985.     MOVC    A,@A+PC
  1986.     MOV    SBUF,A
  1987.     MOV    R7,#02H
  1988. CDL:    MOV    R6,#0FFH
  1989. CDL6:    DJNZ    R6,CDL6
  1990.     DJNZ    R7,CDL6
  1991.     INC    R0
  1992.     MOV    A,R2
  1993.     RL    A
  1994.     MOV    R2,A
  1995.     JNB    ACC.6,CDIRL
  1996.     RET
  1997. CDSEG:    DB    3FH,06H,5BH,4FH,66H,6DH  ;0,1,2,3,4,5
  1998.     DB    7DH,07H,7FH,6FH,77H,7CH  ;6,7,8,9,A,B
  1999.     DB    39H,5EH,79H,71H,73H,3EH  ;C,D,E,F,P,|_|,
  2000.     DB    31H,6EH,1CH,23H,40H,03H  ;R-12 Y-13 |_|-14  -15 -|-17
  2001.     DB    18H,38H,00         ;|_-18 |_-19    1A
  2002. ;
  2003. ;
  2004. ;
  2005. ;
  2006. ;
  2007. ;
  2008. ;
  2009. ;
  2010. ;
  2011. ;
  2012. ;
  2013. ;
  2014. ;    THIS IS A APPLICATION EXAMPLE OF DIRD
  2015. ;
  2016. ;
  2017. ;
  2018. IDMAIN: MOV    DPTR,#0EFFFH
  2019.     MOV    A,#0D3H
  2020.     MOVX    @DPTR,A
  2021. DDL0:    MOVX    A,@DPTR
  2022.     JB    ACC.7,DDL0
  2023.     MOV    A,#08H
  2024.     MOVX    @DPTR,A
  2025.     MOV    A,#34H
  2026.     MOVX    @DPTR,A
  2027.     SETB    PT0
  2028.     MOV    R0,#7FH
  2029.     MOV    R7,#0DH
  2030. DMPL0:    MOV    @R0,#00H
  2031.     DEC    R0
  2032.     DJNZ    R7,DMPL0
  2033. DWKIW:    LCALL    DIRD
  2034. DWKI0:    MOV    DPTR,#0EFFFH
  2035.     MOVX    A,@DPTR
  2036.     ANL    A,#0FH
  2037.     JNZ    DKI0
  2038.     LJMP    DWKIW
  2039. DKI0:    MOV    R7,#0DH      ;WAIT FIRST KIN
  2040.     MOV    R0,#73H
  2041. DML1:    MOV    @R0,#15H
  2042.     INC    R0
  2043.     DJNZ    R7,DML1
  2044.     LJMP    DKI
  2045. DWKI:    MOV    DPTR,#0EFFFH     ;WAIT KIN
  2046.     MOVX    A,@DPTR
  2047.     ANL    A,#0FH
  2048.     JNZ    DKI
  2049.     LJMP    DWKI
  2050. DKI:    MOV    DPTR,#0EFFFH     ;READ KI
  2051.     MOV    A,#40H
  2052.     MOVX    @DPTR,A
  2053.     MOV    DPTR,#0EFFEH
  2054.     MOVX    A,@DPTR
  2055.     MOV    R2,A
  2056.     ANL    A,#38H         ;C NO KIN
  2057.     RR    A
  2058.     RR    A
  2059.     RR    A
  2060.     MOV    B,#03H
  2061.     MUL    AB
  2062.     XCH    A,R2
  2063.     ANL    A,#07H
  2064.     ADD    A,R2
  2065.     MOV    R2,A         ;K NO > R2
  2066.     CJNE    A,#0AH,00H
  2067.     JC    DNUM
  2068.     LJMP    IDCOM
  2069. DNUM:    JNB    0AH,DIADR        ;P DATA
  2070.     SETB    0BH
  2071.     MOV    R0,#78H
  2072.     MOV    R7,#05H
  2073. DML2:    XCH    A,@R0
  2074.     INC    R0
  2075.     DJNZ    R7,DML2
  2076.     LCALL    DIRD
  2077.     LJMP    DWKI
  2078. DIADR:    MOV    R0,#73H
  2079.     MOV    R7,#04H
  2080.     LJMP    DML2
  2081. IDCOM:    CLR    C
  2082.     SUBB    A,#0AH
  2083.     MOV    R2,A
  2084.     RL    A
  2085.     ADD    A,R2
  2086.     MOV    DPTR,#IDMTAB
  2087.     JMP    @A+DPTR
  2088. IDMTAB: LJMP    COMD0
  2089.     LJMP    COMD1
  2090.     LJMP    COMD2
  2091.     LJMP    COMD3
  2092.     LJMP    COMD4
  2093.     LJMP    COMD5
  2094.     LJMP    COMD6
  2095.     LJMP    COMD7
  2096.     LJMP    COMD8
  2097.     LJMP    COMD9
  2098.     LJMP    COMDA
  2099.     LJMP    COMDB
  2100.     LJMP    COMDC
  2101. ;
  2102. ;
  2103. ;
  2104. ;
  2105. ;
  2106. ;
  2107. DIRD:    MOV    DPTR,#0EFFFH    ;THIS  SUBROUTING 10-6
  2108.     MOV    A,#90H        ;WR DIRRAM COMD >8279
  2109.     MOVX    @DPTR,A
  2110.     MOV    R0,#7FH
  2111.     MOV    R7,#0DH
  2112.     MOV    DPTR,#0EFFEH
  2113. DDIRL:    MOV    A,@R0
  2114.     ADD    A,#05H
  2115.     MOVC    A,@A+PC
  2116. DDIR0:    MOVX    @DPTR,A
  2117.     DEC    R0
  2118.     DJNZ    R7,DDIRL
  2119.     RET
  2120. DDSEG:    DB    3FH,06H,5BH,4FH,66H,6DH     ;0-5
  2121.     DB    7DH,07H,7FH,6FH,77H,7CH     ;6-B
  2122.     DB    39H,5EH,79H,71H         ;C-F
  2123.     DB    73H,3EH,31H,6EH,40H,00H     ;P,U,r,Y,-,BLACK:  10H-15H
  2124. ;
  2125. ;
  2126. ;
  2127. ;    THIS IS A APPLICATION EXAMPLE OF AD5G
  2128. ;
  2129. IEMAIN: MOV    SP,#60H
  2130.     SETB    IT1
  2131.     MOV    IE,#84H
  2132. IMLE1:    JNB    PSW.5,IMLE1
  2133.     CLR    PSW.5
  2134.     LCALL    EPDATA            ;PROCESS DATA
  2135. IMLE:    SJMP    IMLE1
  2136. ;
  2137. ;
  2138. ;
  2139. ;
  2140. ;
  2141. ;
  2142. ;
  2143. ;
  2144. ;
  2145. AD5G:    PUSH    ACC               ;THIS  SUBROUTING 10-7 ;
  2146.     PUSH    PSW
  2147.     SETB    PSW.3
  2148.     CLR    PSW.4
  2149. AD5G0:    MOV    A,P1
  2150.     JNB    ACC.4,AD5G0
  2151.     JB    ACC.0,AD5GER
  2152.     JB    ACC.2,AD5G1
  2153.     SETB    07H
  2154.     LJMP    AD5G2
  2155. AD5G1:    CLR    07H
  2156. AD5G2:    JB    ACC.3,AD5G3
  2157.     SETB    04H
  2158.     LJMP    AD5G4
  2159. AD5G3:    CLR    04H
  2160. AD5G4:    MOV    A,P1
  2161.     JNB    ACC.5,AD5G4
  2162.     MOV    R0,#20H
  2163.     XCHD    A,@R0
  2164. AD5G5:    MOV    A,P1
  2165.     JNB    ACC.6,AD5G5
  2166.     SWAP    A
  2167.     INC    R0
  2168.     MOV    @R0,A
  2169. AD5G6:    MOV    A,P1
  2170.     JNB    ACC.7,AD5G6
  2171.     XCHD    A,@R0
  2172. AD5G7:    POP    PSW
  2173.     POP    ACC
  2174.     SETB    PSW.5
  2175.     RETI
  2176. AD5GER: SETB    10H
  2177.     SJMP    AD5G7
  2178. ;
  2179. ;
  2180. ;
  2181. ;
  2182. ;
  2183. ;
  2184. ;
  2185. ;
  2186. ;
  2187. EPDATA: RET
  2188. ;
  2189. ;
  2190. ;
  2191. ;
  2192. ;
  2193. ;
  2194. ;    THIS IS A APPLICATION EXAMPLE OF ADICL
  2195. ;
  2196. ;
  2197. IFMAIN: MOV    DPTR,#7F04H
  2198.     MOV    A,#10H
  2199.     MOVX    @DPTR,A
  2200.     INC    DPTR
  2201.     MOV    A,#40H
  2202.     MOVX    @DPTR,A
  2203.     MOV    DPTR,#7F00H
  2204.     MOV    A,#0D6H
  2205.     MOVX    @DPTR,A
  2206.     MOV    SP,#60H
  2207.     MOV    20H,#00H
  2208.     MOV    P2,#7EH
  2209.     MOV    R0,#00H
  2210.     MOV    R7,#55H
  2211.     MOV    IE,#84H
  2212. FWDIN:    JBC    PSW.5,FTRAN
  2213.     LJMP    FWDIN
  2214. FTRAN:    MOV    A,21H
  2215.     MOVX    @R0,A
  2216.     INC    R0
  2217.     MOV    A,22H
  2218.     MOVX    @R0,A
  2219.     INC    R0
  2220.     MOV    A,23H
  2221.     MOVX    @R0,A
  2222.     INC    R0
  2223.     DJNZ    R7,FWDIN
  2224.     LCALL    FPDATA
  2225.     MOV    R0,#00H
  2226.     MOV    R7,#55H
  2227.     LJMP    FWDIN
  2228. ;
  2229. ;
  2230. ;
  2231. ;
  2232. ;
  2233. ;
  2234. ;
  2235. ;
  2236. ADICL:    PUSH    DPL            ;THIS  SUBROUTING 10-8
  2237.     PUSH    DPH
  2238.     PUSH    ACC
  2239.     PUSH    PSW
  2240.     SETB    PSW.3
  2241.     CLR    PSW.4
  2242.     MOV    DPTR,#7F01H        ;READ  8155  PA
  2243.     MOVX    A,@DPTR
  2244.     MOV    R2,A
  2245.     ANL    A,#0F0H
  2246.     JNZ    ICLI
  2247.     MOV    R1,#21H
  2248.     MOV    A,R2
  2249.     ANL    A,#01H
  2250.     XCHD    A,@R1
  2251.     MOV    A,R2
  2252.     ANL    A,#0EH
  2253.     SWAP    A
  2254.     XCHD    A,@R1
  2255.     MOV    @R1,A
  2256.     INC    R1
  2257. ICLD4:    MOVX    A,@DPTR
  2258.     JNB    ACC.7,ICLD4
  2259.     SWAP    A
  2260.     MOV    @R1,A
  2261. ICLD3:    MOVX    A,@DPTR
  2262.     JNB    ACC.6,ICLD3
  2263.     XCHD    A,@R1
  2264.     INC    R1
  2265. ICLD2:    MOVX    A,@DPTR
  2266.     JNB    ACC.5,ICLD2
  2267.     SWAP    A
  2268.     MOV    @R1,A
  2269. ICLD1:    MOVX    A,@DPTR
  2270.     JNB    ACC.4,ICLD1
  2271.     XCHD    A,@R1
  2272.     POP    PSW
  2273.     POP    ACC
  2274.     POP    DPH
  2275.     POP    DPL
  2276.     SETB    PSW.5
  2277.     RETI
  2278. ICLI:    POP    PSW
  2279.     POP    ACC
  2280.     POP    DPH
  2281.     POP    DPL
  2282.     RETI
  2283. ;
  2284. ;
  2285. ;
  2286. ;
  2287. ;
  2288. ;
  2289. ;
  2290. ;
  2291. ;
  2292. ;
  2293. ;
  2294. ;    THIS IS A APPLICATION EXAMPLE OF DA10
  2295. ;
  2296. GMAIN:    MOV    R0,#31H
  2297.     MOV    @R0,#00H
  2298.     DEC    R0
  2299.     MOV    @R0,#00H
  2300. GML2:    MOV    A,@R0
  2301.     ADD    A,#01H
  2302.     MOV    @R0,A
  2303.     INC    R0
  2304.     MOV    A,@R0
  2305.     ADDC    A,#00H
  2306.     CJNE    A,#04H,GML1
  2307.     CLR    A
  2308. GML1:    MOV    @R0,A
  2309.     LCALL    DA10
  2310.     SJMP    GML2
  2311. ;
  2312. ;
  2313. ;
  2314. ;
  2315. ;
  2316. ;
  2317. ;                ;THIS  SUBROUTING 10-9
  2318. DA10:    MOV    P2,#7CH
  2319.     MOV    A,@R0
  2320.     ANL    A,#03H
  2321.     ORL    P2,A
  2322.     DEC    R0
  2323.     MOV    A,@R0
  2324.     MOVX    @R0,A
  2325.     RET
  2326. ;
  2327. ;
  2328. ;
  2329. ;
  2330. ;
  2331. ;
  2332. ;
  2333. ;
  2334. ;
  2335. ;
  2336. ;
  2337. ;
  2338. ;
  2339. ;
  2340. ;
  2341. ;
  2342. ;
  2343. ;    THIS IS A APPLICATION EXAMPLE OF PRINTA,PRINTG
  2344. ;
  2345. ;
  2346. IHMAIN: MOV    SP,#60H
  2347.     MOV    R0,#30H
  2348.     MOV    @R0,#01H
  2349.     INC    R0
  2350.     MOV    @R0,#01H
  2351.     INC    R0
  2352.     MOV    @R0,#01H
  2353.     INC    R0
  2354.     MOV    @R0,#02H
  2355.     INC    R0
  2356.     MOV    @R0,#02H
  2357.     INC    R0
  2358.     MOV    @R0,#02H
  2359.     INC    R0
  2360.     MOV    @R0,#03H
  2361.     INC    R0
  2362.     MOV    @R0,#03H
  2363.     INC    R0
  2364.     MOV    @R0,#03H
  2365.     MOV    R1,#30H
  2366.     MOV    R2,#03H
  2367.     LCALL    GP16PA
  2368.     MOV    R6,#02H
  2369.     LCALL    GP16G
  2370. IHERE:    LJMP    IHERE
  2371. ;
  2372. ;
  2373. ;
  2374. ;
  2375. ;
  2376. ;
  2377. ;
  2378. ;
  2379. ;
  2380. ;
  2381. ;
  2382. GP16PA: MOV    DPTR,#7FFFH    ;;THIS    SUBROUTING 10-10
  2383. GPA0:    MOVX    A,@DPTR
  2384.     ANL    A,#81H
  2385.     JNZ    GPA0
  2386. GPA1:    MOV    A,#9AH
  2387.     MOVX    @DPTR,A
  2388. GPA2:    MOVX    A,@DPTR
  2389.     JB    ACC.7 GPA1
  2390.     JB    ACC.0,GPA2
  2391.     MOV    A,R2
  2392.     MOVX    @DPTR,A
  2393. GPAP:    MOVX    A,@DPTR
  2394.     JB    ACC.0 GPAP
  2395.     MOV    R7,#00H
  2396. GPA12:    MOV    A,R7
  2397.     ADD    A,#81H
  2398.     MOVX    @DPTR,A
  2399. GPAP1:    MOVX    A,@DPTR
  2400.     JB    ACC.0,GPAP
  2401.     MOV    R4,#55H
  2402. GPA13:    MOV    A,R4
  2403.     MOVC    A,@A+PC
  2404.     MOVX    @DPTR,A
  2405. GPAP2:    MOVX    A,@DPTR
  2406.     JB    ACC.0,GPAP2
  2407.     INC    R4
  2408.     MOV    A,R4
  2409.     XRL    A,#58H
  2410.     JNZ    GPA13
  2411. GPA14:    LCALL    HSUBI
  2412.     MOV    A,R7
  2413.     ADD    A,R7
  2414.     ADD    A,R7
  2415.     ADD    A,#32H
  2416.     XRL    A,R1
  2417.     JNZ    GPA14
  2418. GPAP3:    MOVX    A,@DPTR
  2419.     JB    ACC.0,GPAP3
  2420.     MOV    A,#2EH
  2421.     MOVX    @DPTR,A
  2422. GPAP4:    MOVX    A,@DPTR
  2423.     JB    ACC.0,GPAP4
  2424.     LCALL    HSUBI
  2425.     MOV    R6,#06H
  2426.     MOV    R4,#2CH
  2427. GPAP8:    MOVX    A,@DPTR
  2428.     JB    ACC.0,GPAP8
  2429.     MOV    A,R4
  2430.     MOVC    A,@A+PC
  2431.     MOVX    @DPTR,A
  2432.     INC    R4
  2433.     DJNZ    R6,GPAP8
  2434.     INC    R7
  2435.     MOV    A,R7
  2436.     XRL    A,R2
  2437.     JNZ    GPA12
  2438.     RET
  2439. HSUBI:    MOVX    A,@DPTR
  2440.     JB    ACC.0,HSUBI
  2441.     MOV    A,@R1
  2442.     ANL    A,#0F0H
  2443.     SWAP    A
  2444.     LCALL    ASCII
  2445.     MOVX    @DPTR,A
  2446. HLSI:    MOVX    A,@DPTR
  2447.     JB    ACC.0 HLSI
  2448.     MOV    A,@R1
  2449.     ANL    A,#0FH
  2450.     LCALL    ASCII
  2451.     MOVX    @DPTR, A
  2452.     INC    R1
  2453.     RET
  2454. ASCII:    ADD    A,#90H
  2455.     DA    A
  2456.     ADDC    A,#40H
  2457.     DA    A
  2458.     RET
  2459. STRING: DB    54H,3AH,20H,0A1H
  2460.     DB    43H,20H,20H,20H
  2461. ;
  2462. ;
  2463. ;
  2464. ;
  2465. ;
  2466. ;
  2467. ;
  2468. ;
  2469. ;
  2470. ;
  2471. ;
  2472. GP16G:    MOV    DPTR,#7FFFH        ;THIS  SUBROUTING 10-11
  2473. GPG0:    MOVX    A,@DPTR
  2474.     ANL    A,#81H
  2475.     JNZ    GPG0
  2476. GPG1:    MOV    A,#0B8H
  2477.     MOVX    @DPTR,A
  2478. GPG2:    MOVX    A,@DPTR
  2479.     JB    ACC.7,GPG1
  2480.     JB    ACC.0,GPG2
  2481.     MOV    A,R6
  2482.     MOVX    @DPTR,A
  2483.     MOV    R4,#19H
  2484.     MOV    R1,#19H
  2485.     MOV    R3,#2DH
  2486.     MOV    R7,#60H
  2487. GPG4:    MOVX    A,@DPTR
  2488.     JB    ACC.0,GPG4
  2489.     MOV    A,R1
  2490.     MOVC    A,@A+PC
  2491.     MOVX    @DPTR,A
  2492.     DJNZ    R7,GPG11
  2493.     DJNZ    R6,GPG12
  2494.     RET
  2495. GPG11:    INC    R1
  2496.     MOV    A,R1
  2497.     XRL    A,R3
  2498.     JNZ    GPG4
  2499.     MOV    A,R4
  2500.     MOV    R1,A
  2501.     LJMP    GPG4
  2502. GPG12:    MOV    R1,#2DH
  2503.     MOV    R1,#2DH
  2504.     MOV    R3,#41H
  2505.     MOV    R7,#60H
  2506.     LJMP    GPG4
  2507. IS10:    DB    80H,20H,04H,02H,01H
  2508.     DB    01H,02H,04H,20H,80H
  2509.     DB    00H,00H,00H,00H,00H
  2510.     DB    00H,00H,00H,00H,00H
  2511.     DB    00H,00H,00H,00H,00H
  2512.     DB    00H,00H,00H,00H,00H
  2513.     DB    01H,04H,20H,40H,80H
  2514.     DB    80H,40H,20H,04H,01H
  2515. ;
  2516. ;
  2517. ;
  2518. ;
  2519. ;
  2520. ;
  2521. ;
  2522. ;      THIS IS A APPLICATION EXAMPLE OF CPP40,XPP40
  2523. ;
  2524. ;
  2525. ;
  2526. IKMAIN: MOV    P2,#7FH         ;PP40 PROGRAM
  2527.     MOV    A,#84H
  2528.     MOVX    @R0,A
  2529.     MOV    SP,#60H
  2530.     MOV    DPTR,#PTABD
  2531.     MOV    R7,#33H
  2532.     LCALL    CPP40            ;PRINT COMD TAB
  2533.     MOV    DPTR,#PTABG
  2534.     MOV    R7,#03H
  2535.     LCALL    CPP40
  2536.     MOV    DPTR,#PTABD        ;PRINT GRAM
  2537.     MOV    R7,#33H
  2538.     LCALL    CPP40
  2539.     MOV    DPTR,#PTABA
  2540.     MOV    R7,#03H
  2541.     LCALL    CPP40
  2542.     MOV    DPTR,#0BE00H        ;8031 > RAM BUFER
  2543.     MOV    A,#38H
  2544.     MOVX    @DPTR,A
  2545.     INC    DPTR
  2546.     MOV    A,#30H
  2547.     MOVX    @DPTR,A
  2548.     INC    DPTR
  2549.     MOV    A,#33H
  2550.     MOVX    @DPTR,A
  2551.     INC    DPTR
  2552.     MOV    A,#31H
  2553.     MOVX    @DPTR,A
  2554.     MOV    DPTR,#0BE00H
  2555.     MOV    R7,#04H
  2556.     LCALL    XPP40            ;PRINT 8031
  2557. IKHERE: SJMP    IKHERE
  2558. PTABA:    DB    0DH,11H,0DH
  2559. PTABG:    DB    0DH,12H,0DH
  2560. PTABD:    DB    48H,4DH,31H,35H,2CH    ;HM15,-10[CR]
  2561.     DB    2DH,31H,30H,0DH
  2562.     DB    4CH,30H,2CH,4AH,32H    ;L0,J20,0,-2,-25,8,0,1,4[CR]
  2563.     DB    30H,2CH,30H,2CH,2DH
  2564.     DB    32H,2CH,2DH,32H,35H
  2565.     DB    2CH,38H,2CH,30H,2CH
  2566.     DB    31H,2CH,34H,0DH
  2567.     DB    4DH,32H,30H,2CH,2DH    ;M20,-5[CR]
  2568.     DB    35H,0DH
  2569.     DB    4CH,30H,2CH,4AH,2DH    ;L0,J-5,-30[CR]
  2570.     DB    35H,2CH,2DH,33H,30H
  2571.     DB    0DH
  2572. ;
  2573. ;
  2574. ;
  2575. ;
  2576. ;
  2577. ;
  2578. ;
  2579. ;
  2580. ;
  2581. ;
  2582. CPP40:    MOV    P2,#7DH     ;THIS  SUBROUTING 10-12
  2583. CPP40L: CLR    A
  2584.     MOVC    A,@A+DPTR
  2585.     MOVX    @R0,A
  2586. CWPP40: JB    P3.3,CWPP40
  2587.     INC    DPTR
  2588.     DJNZ    R7,CPP40L
  2589.     RET
  2590. ;
  2591. ;
  2592. ;
  2593. ;
  2594. ;
  2595. ;
  2596. XPP40:    MOV    P2,#7DH     ;THIS  SUBROUTING 10-13
  2597. XPP40L: MOVX    A,@DPTR
  2598.     MOVX    @R0,A
  2599. XWPP40: JB    P3.3,XWPP40
  2600.     INC    DPTR
  2601.     DJNZ    R7,XPP40L
  2602.     RET
  2603. ;
  2604. ;
  2605. ;
  2606. ;
  2607. ;
  2608. ;
  2609. ;
  2610. ;
  2611. ;
  2612. ;
  2613. ;        HM15,-10[CR]
  2614. ;        L0,J20,0,-2,-25,8,0,1,4[CR]
  2615. ;        M20,-5[CR]
  2616. ;        L0,J-5,-30[CR]
  2617. ;
  2618. ;
  2619. ;
  2620. ;
  2621. ;
  2622. ;    THIS IS A APPLICATION EXAMPLE OF TTXD,RRXD
  2623. ;
  2624. ;
  2625. YIMAIN: MOV    SP,#60H
  2626.     MOV    A,#3FH        ; ? > ACC
  2627. YML1:    LCALL    TTXD        ;OUT A ASCII IN ACC
  2628.     LCALL    RRXD        ;IN  A ASCII >    ACC
  2629.     SJMP    YML1
  2630. ;
  2631. ;
  2632. ;
  2633. ;
  2634. ;
  2635. TDL1:    MOV    R6,#08H
  2636. TDL10:    MOV    R7,#32H
  2637. TDL11:    DJNZ    R7,TDL11
  2638.     DJNZ    R6,TDL10
  2639.     RET
  2640. TDL2:    MOV    R6,#04H
  2641.     SJMP    TDL10
  2642. RRXD:    PUSH    DPH        ;THIS  SUBROUTING 10-14
  2643.     PUSH    DPL
  2644.     MOV    R4,#09H
  2645.     MOV    DPTR ,#0EFFFH
  2646. RWAIT: MOVX    A,@DPTR
  2647.     MOV    C,ACC.7
  2648.     JC    RWAIT
  2649.     LCALL    TDL2
  2650. RRXDL:    MOVX    A,@DPTR
  2651.     MOV    C,ACC.7
  2652.     MOV    A,R5
  2653.     RRC    A
  2654.     MOV    R5,A
  2655.     LCALL    TDL1
  2656.     DJNZ    R4,RRXDL
  2657.     POP    DPL
  2658.     POP    DPH
  2659.     MOV    A,R5
  2660.     RET
  2661. ;
  2662. ;
  2663. ;
  2664. ;
  2665. ;
  2666. ;
  2667. ;
  2668. ;
  2669. ;    THIS IS A SUBROUTING
  2670. TTXD:    PUSH    DPH        ;THIS  SUBROUTING 10-15
  2671.     PUSH    DPL
  2672.     MOV    R5,A
  2673.     MOV    R4,#09H
  2674.     MOV    DPTR,#0EFFFH
  2675.     CLR    C
  2676. TTXDL:    MOV    ACC.7,C
  2677.     MOVX    @DPTR,A
  2678.     LCALL    TDL1
  2679.     MOV    A,R5
  2680.     RRC    A
  2681.     MOV    R5,A
  2682.     DJNZ    R4,TTXDL
  2683.     SETB    ACC.7
  2684.     MOVX    @DPTR,A
  2685.     LCALL    TDL1
  2686.     POP    DPL
  2687.     POP    DPH
  2688.     RET
  2689. ;
  2690. ;    THIS IS A APPLICATION EXAMPLE OF OUTA
  2691. ;
  2692. ;
  2693. ;
  2694. INMAIN: MOV    SP,#60H
  2695.     MOV    DPTR,#8000H
  2696.     MOV    R2,#0FFH
  2697.     MOV    R3,#8FH
  2698.     LCALL    WTAP
  2699. NML:    SJMP    NML
  2700. WTAP:    SETB    P1.0
  2701.     MOV    R6,#00H     ;HEAD DELY
  2702.     MOV    R7,#00H
  2703. NDL6:    DJNZ    R6,NDL6
  2704.     DJNZ    R7,NDL6
  2705.     MOV    A,DPH        ;BEGIN ADR > TAP
  2706.     LCALL    OUTA
  2707.     MOV    A,DPL
  2708.     LCALL    OUTA
  2709.     MOV    A,R3        ;END ADR > TAP
  2710.     LCALL    OUTA
  2711.     MOV    A,R2
  2712.     LCALL    OUTA
  2713. WTPL:    MOVX    A,@DPTR     ;DATA > TAP
  2714.     LCALL    OUTA
  2715.     MOV    A,R2
  2716.     XRL    A,DPL
  2717.     JNZ    WTPG
  2718.     MOV    A,R3
  2719.     XRL    A,DPH
  2720.     JNZ    WTPG
  2721.     RET
  2722. WTPG:    INC    DPTR
  2723.     SJMP    WTPL
  2724. ;
  2725. ;
  2726. ;
  2727. ;
  2728. ;    THIS IS A SUBROUTING
  2729. ;
  2730. OUTA:    CLR    C            ;THIS  SUBROUTING 10-16
  2731.     MOV    34H,#09H
  2732. OUTA1:    MOV    P1.0,C
  2733.     MOV    R7,#04H
  2734.     LCALL    DELQ
  2735.     RLC    A
  2736.     DJNZ    34H,OUTA1
  2737.     SETB    P1.0
  2738.     MOV    R7,#10H
  2739.     LCALL    DELQ
  2740.     RET
  2741. ;
  2742. ;
  2743. ;
  2744. ;
  2745. ;    THIS IS A SUBROUTING
  2746. ;
  2747. INA:    JB    P1.1,INA        ;THIS  SUBROUTING 10-17
  2748.     MOV    R7,#02H
  2749.     LCALL    DELQ
  2750.     JB    P1.1,INA
  2751.     MOV    34H,#09H
  2752. INA1:    MOV    C,P1.1
  2753.     RLC    A
  2754.     MOV    R7,#04H
  2755.     LCALL    DELQ
  2756.     DJNZ    34H,INA1
  2757.     JNB    P1.1,INAE
  2758.     SETB    C
  2759. INA2:    MOV    R7,#08H
  2760.     LCALL    DELQ
  2761.     RET
  2762. INAE:    CLR    C
  2763.     SJMP    INA2
  2764. DELQ:    MOV    R6,#00H
  2765. DLQ1:    DJNZ    R6,DLQ1
  2766.     DJNZ    R7,DLQ1
  2767.     RET
  2768. ;
  2769. ;
  2770. ;
  2771. ;
  2772. ;    THIS IS A APPLICATION EXAMPLE OF INA
  2773. XIMAIN: MOV    SP,#60H
  2774.     LCALL    RTAP
  2775.     JC    RTAPER
  2776.     MOV    39H,#00H
  2777.     SJMP    XML0
  2778. RTAPER: MOV    39H,#0EH
  2779. XML0:    MOV    3AH,#1AH
  2780.     MOV    3BH,#1AH
  2781.     MOV    3CH,#1AH
  2782.     MOV    3DH,#1AH
  2783.     MOV    3EH,#1AH
  2784. XML1:    LCALL    DIRB
  2785.     SJMP    XML1
  2786. RTAP:    LCALL    INA
  2787.     JNC    RINAER
  2788.     MOV    DPH,A
  2789.     LCALL    INA
  2790.     JNC    RINAER
  2791.     MOV    DPL,A
  2792.     LCALL    INA
  2793.     JNC    RINAER
  2794.     MOV    R3,A
  2795.     LCALL    INA
  2796.     JNC    RINAER
  2797.     MOV    R2,A
  2798. RTPL:    LCALL    INA
  2799.     JNC    RINAER
  2800.     MOVX    @DPTR,A
  2801.     MOV    A,R2
  2802.     XRL    A,DPL
  2803.     JNZ    RTPG
  2804.     MOV    A,R3
  2805.     XRL    A,DPH
  2806.     JNZ    RTPG
  2807.     CLR    C
  2808.     RET
  2809. RTPG:    INC    DPTR
  2810.     SJMP    RTPL
  2811. RINAER: SETB    C
  2812.     RET
  2813. ;
  2814. ;
  2815. ;
  2816. ;
  2817. ;
  2818. ;
  2819. ;
  2820. IOMAIN: MOV    SP,#60H
  2821.     LCALL    SOUT
  2822.     DB    4DH,43H,53H,5AH ;MCS_51
  2823.     DB    35H,31H,0DH,00H
  2824. OML1:    SJMP    OML1
  2825. ;
  2826. ;
  2827. ;
  2828. ;
  2829. ;
  2830. SOUT:    POP    DPH        ;THIS  SUBROUTING 10-18
  2831.     POP    DPL
  2832.     SETB    TI
  2833. SOUT0:    CLR    A
  2834.     MOVC    A,@A+DPTR
  2835.     INC    DPTR
  2836.     CJNE    A,#00H,SOUT1
  2837.     PUSH    DPL
  2838.     PUSH    DPH
  2839.     RET
  2840. SOUT1:    JNB    TI,SOUT1
  2841.     CLR    TI
  2842.     MOV    SBUF,A
  2843.     SJMP    SOUT0
  2844. ;
  2845. ;
  2846. COMD0:    NOP
  2847. COMD1:    NOP
  2848. COMD2:    NOP
  2849. COMD3:    NOP
  2850. COMD4:    NOP
  2851. COMD5:    NOP
  2852. COMD6:    NOP
  2853. COMD7:    NOP
  2854. COMD8:    NOP
  2855. COMD9:    NOP
  2856. COMDA:    NOP
  2857. COMDB:    NOP
  2858. COMDC:    NOP
  2859. COMDD:    NOP
  2860. FPDATA: NOP
  2861. ;
  2862. ;
  2863. ;
  2864. ;
  2865. ;
  2866. ;
  2867. ;
  2868. ;
  2869. ;THIS IS FILE OF TICE.ASM
  2870. ;
  2871. ;
  2872. ICEA:    MOV    SP,#70H         ;THIS  PROGRAM      11-1
  2873.     MOV    DPTR,#0BF00H
  2874.     MOV    A,#0C1H
  2875.     MOVX    @DPTR,A
  2876.     INC    DPTR
  2877.     INC    DPTR
  2878.     MOVX    A,@DPTR
  2879.     DEC    DPL
  2880.     MOVX    @DPTR,A
  2881.     MOV    R7,#00H
  2882.     MOV    A,#0AAH
  2883.     MOV    DPTR,#0BE00H
  2884. TAML:    MOVX    @DPTR,A
  2885.     INC    DPTR
  2886.     DJNZ    R7,TAML
  2887.     MOV    R0,#02H
  2888.     MOV    R1,#6EH
  2889. TAML2:    MOV    @R0,A
  2890.     INC    R0
  2891.     DJNZ    R1,TAML2
  2892.     MOV    R0,A
  2893.     MOV    R1,A
  2894. TAML3:    MOV    20H,#00H
  2895.     MOV    21H,#80H
  2896.     MOV    TMOD,#11H
  2897.     MOV    TL0,#00H
  2898.     MOV    TH0,#00H
  2899.     MOV    TL1,#00H
  2900.     MOV    TH1,#00H
  2901.     SETB    TR0
  2902.     SETB    TR1
  2903.     SETB    EA
  2904.     SETB    EX0
  2905.     SETB    ET0
  2906.     SETB    EX1
  2907.     SETB    ET1
  2908. TAHERE: MOV    DPTR,#0BF02H
  2909.     MOVX    A,@DPTR
  2910.     DEC    DPL
  2911.     MOVX    @DPTR,A
  2912.     SJMP    TAHERE
  2913. TAPINT0:CLR    P1.0
  2914.     CLR    P1.1
  2915.     CLR    P1.2
  2916.     CLR    P1.3
  2917.     RETI
  2918. TAPT0:    DJNZ    20H,TAT01
  2919.     CPL    P1.6
  2920.     CPL    P1.7
  2921. TAT01:    RETI
  2922. TAPT1:    DJNZ    21H,TAT11
  2923.     MOV    21H,#80H
  2924.     CPL    P1.4
  2925.     CPL    P1.5
  2926. TAT11:    RETI
  2927. TAPNT1: SETB    P1.0
  2928.     SETB    P1.1
  2929.     SETB    P1.2
  2930.     SETB    P1.3
  2931.     RETI
  2932. ;
  2933. ;
  2934. ;
  2935. ;
  2936. ;
  2937. ;
  2938. ;
  2939. ;
  2940. ;
  2941. ;
  2942. ICEB:    MOV    R0,#02H     ;THIS  PROGRAM      11-2    ;0AAH > 8031 RAM
  2943.     MOV    R1,#7EH
  2944.     MOV    A,#0AAH
  2945. ICB0:    MOV    @R0,A
  2946.     INC    R0
  2947.     DJNZ    R1,ICB0
  2948.     MOV    R1,A
  2949.     MOV    R0,A
  2950. ICB1:    MOV    R0,#02H     ;55H > 8031 RAM
  2951.     MOV    R1,#7EH
  2952.     CPL    A
  2953. ICB2:    MOV    @R0,A
  2954.     INC    R0
  2955.     DJNZ    R1,ICB2
  2956.     MOV    R1,A
  2957.     MOV    R0,A
  2958. ICB3:    SJMP    ICB3
  2959. ;
  2960. ;
  2961. ;
  2962. ;
  2963. ;
  2964. ;
  2965. ;
  2966. ;
  2967. ;
  2968. ;
  2969. ;
  2970. ;
  2971. ;
  2972. ;
  2973. ;
  2974. ;
  2975. ;
  2976. ;
  2977. ;
  2978. ;
  2979. ;
  2980. ICEC:    MOV    DPTR,#0000H        ;THIS  PROGRAM      11-3
  2981. ICC0:    MOVX    A,@DPTR
  2982.     MOVX    @DPTR,A
  2983.     INC    DPTR
  2984.     CLR    A
  2985.     CJNE    A,DPL,ICC0
  2986.     CJNE    A,DPH,ICC0
  2987. ICC1:    MOV    DPTR,#0FFFEH
  2988. ICC2:    MOVX    A,@DPTR
  2989.     MOVX    @DPTR,A
  2990.     SETB    C
  2991.     MOV    A,DPL
  2992.     RLC    A
  2993.     MOV    DPL,A
  2994.     MOV    A,DPH
  2995.     RLC    A
  2996.     MOV    DPH,A
  2997. ICC3:    JC    ICC2
  2998. ICC4:    SJMP    ICC4
  2999. ;
  3000. ;
  3001. ;
  3002. ;
  3003. ;
  3004. ;    ORG    0
  3005.     LJMP    ICED
  3006. ;    ORG    3
  3007.     LJMP    CDINT0
  3008. ;    ORG    0BH
  3009.     LJMP    CDT0
  3010. ;    ORG    13H
  3011.     LJMP    CDINT1
  3012. ;    ORG    1BH
  3013.     LJMP    CDT1
  3014. ;    ORG    30H
  3015. ICED:    MOV    SP    #70H    ;THIS  PROGRAM      11-4
  3016.     MOV    IP,#00H
  3017.     MOV    IE,#00H
  3018.     SETB    EA
  3019.     SETB    EX0
  3020.     SETB    ET0
  3021.     SETB    EX1
  3022.     SETB    ET1
  3023.     MOV    TMOD,#11H
  3024.     MOV    TCON,#50H
  3025.     MOV    32H,#0AH
  3026.     MOV    33H,#64H
  3027.     MOV    30H,#00H
  3028.     MOV    31H,#00H
  3029. ICD0:    DJNZ    30H,ICD0
  3030.     DJNZ    31H,ICD0
  3031.     CPL    P1.0
  3032.     SJMP    ICD0
  3033. CDINT0: CPL    P1.1
  3034.     RETI
  3035. CDINT1: CPL    P1.2
  3036.     RETI
  3037. CDT0:    DJNZ    32H,CDT01
  3038.     MOV    32H,#0AH
  3039.     CPL    P1.3
  3040. CDT01:    RETI
  3041. CDT1:    DJNZ    33H,CDT11
  3042.     MOV    33H,#64H
  3043.     CPL    P1.4
  3044. CDT11:    RETI
  3045. ;
  3046. ;
  3047. ;
  3048. ;
  3049. ;
  3050. ;
  3051. ;                ;THIS  PROGRAM      11-5
  3052. ;
  3053. ICEE:    MOV    TMOD,#00H    ;MODE: 00,11,22,03
  3054.     MOV    TH0,#00H    ;DATA: 00-FF
  3055.     MOV    TL0,#00H
  3056.     MOV    TH1,#00H
  3057.     MOV    TL1,#00H
  3058.     MOV    TCON,#55H
  3059. ICM0:    JBC    TF0,ICM1
  3060.     JBC    TF1,ICM2
  3061.     SJMP    ICM0
  3062. ICM1:    CPL    P1.0
  3063.     MOV    TH0,#00H
  3064.     MOV    TL0,#00H
  3065.     SJMP    ICM0
  3066. ICM2:    CPL    P1.1
  3067.     MOV    TH1,#00H
  3068.     MOV    TL1,#00H
  3069.     MOV    TCON,#50H
  3070. ;
  3071. ;
  3072. ;
  3073. ;    THIS IS THE FILE OF OTHR.ASM
  3074. ;
  3075. ;
  3076. FAVG:    MOV    R6,#40H        ;THIS SUBROUTING  12-1 ;
  3077.     MOV    R2,#0
  3078.     MOV    R3,#0
  3079.     MOV    A,R0
  3080.     PUSH   ACC        ;
  3081. FLOP:    LCALL  RDXI        ;
  3082.     CLR    3AH        ;
  3083.     LCALL  FABP        ;R6(  )R2 R3 + R7(  )R4 R5    R4(  )R2 R3
  3084.     MOV    A,R4
  3085.     MOV    R6,A
  3086.     DJNZ   R0,FLOP
  3087.     LCALL  FSTR
  3088.     POP    ACC        ;
  3089.     MOV    R2,#0
  3090.     MOV    R3,A
  3091.     INC    SP
  3092.     MOV    A,SP
  3093.     XCH    A,R1
  3094.     MOV    R0,A
  3095.     INC    SP        ;
  3096.     INC    SP
  3097.     LCALL  INTF        ;
  3098.     LCALL  FDIV        ;
  3099.     MOV    A,R0
  3100.     MOV    R1,A
  3101.     LCALL  FSTR        ;
  3102.     DEC    SP        ;
  3103.     DEC    SP
  3104.     DEC    SP
  3105.     RET
  3106. ;
  3107. ;
  3108. ;
  3109. ;
  3110. ;
  3111. ;
  3112. ;
  3113. ;
  3114. ;
  3115. ;
  3116. ;
  3117. ;
  3118. ;
  3119. ;
  3120. ;
  3121. FSAV:    LCALL  RDXP        ;THIS SUBROUTING  12-2
  3122.     MOV    A,7FH        ;
  3123.     MOV    B,#3
  3124.     MUL    AB
  3125.     MOV    DPTR,#2000H    ;
  3126.     ADD    A,DPL        ;
  3127.     MOV    DPL,A
  3128.     MOV    A,R6        ;
  3129.     MOVX   @DPTR,A
  3130.     INC    DPTR
  3131.     MOV    A,R2
  3132.     MOVX   @DPTR,A
  3133.     INC    DPTR
  3134.     MOV    A,R3
  3135.     MOVX   @DPTR,A
  3136.     MOV    A,7FH        ;
  3137.     INC    A
  3138.     CJNE   A,#16,FSA1
  3139.     CLR    A        ;
  3140. FSA1:    MOV    7FH,A
  3141.     MOV    R0,#15        ;
  3142.     INC    DPTR
  3143. FSA2:    MOV    A,DPL
  3144.     CJNE   A,#30H,FSA3
  3145.     MOV    DPL,#0        ;
  3146. FSA3:    MOVX   A,@DPTR
  3147.     MOV    R7,A
  3148.     INC    DPTR
  3149.     MOVX   A,@DPTR
  3150.     MOV    R4,A
  3151.     INC    DPTR
  3152.     MOVX   A,@DPTR
  3153.     MOV    R5,A
  3154.     INC    DPTR
  3155.     CLR    3AH        ;
  3156.     LCALL  FABP        ;R6(  )R2 R3 + R7(  )R4 R5    R4(  )R2 R3
  3157.     MOV    A,R4
  3158.     MOV    R6,A
  3159.     DJNZ   R0,FSA2
  3160.     MOV    C,ACC.7        ;
  3161.     DEC    A        ;
  3162.     DEC    A
  3163.     DEC    A
  3164.     DEC    A
  3165.     MOV    ACC.7,C        ;
  3166.     LCALL  FSTR        ;
  3167.     RET
  3168. ;
  3169. ;
  3170. ;
  3171. ;
  3172. ;
  3173. ;
  3174. DAVG:    CLR    A        ;THIS SUBROUTING  12-3
  3175.     MOV    R2,A        ;
  3176.     MOV    R3,A
  3177.     MOV    R6,A        ;
  3178.     MOV    R7,A
  3179.     MOV    R4,#3FH        ;
  3180.     MOV    R5,#0FFH
  3181.     MOV    R0,#4        ;N=4
  3182. DAV1:    LCALL  RDAD        ;A/D        B,A
  3183.     MOV    R1,A        ;
  3184.     ADD    A,R7        ;
  3185.     MOV    R7,A
  3186.     MOV    A,B
  3187.     ADDC   A,R6
  3188.     MOV    R6,A
  3189.     CLR    C
  3190.     MOV    A,R3
  3191.     SUBB   A,R1
  3192.     MOV    A,R2
  3193.     SUBB   A,B
  3194.     JNC    DAV2
  3195.     MOV    A,R1        ;
  3196.     MOV    R3,A
  3197.     MOV    R2,B
  3198. DAV2:    CLR    C
  3199.     MOV    A,R1
  3200.     SUBB   A,R5
  3201.     MOV    A,B
  3202.     SUBB   A,R4
  3203.     JNC    DAV3
  3204.     MOV    A,R1        ;
  3205.     MOV    R5,A
  3206.     MOV    R4,B
  3207. DAV3:    DJNZ   R0,DAV1
  3208.     CLR    C
  3209.     MOV    A,R7        ;
  3210.     SUBB   A,R3
  3211.     XCH    A,R6
  3212.     SUBB   A,R2
  3213.     XCH    A,R6        ;
  3214.     SUBB   A,R5
  3215.     XCH    A,R6
  3216.     SUBB   A,R4
  3217.     CLR    C        ;
  3218.     RRC    A
  3219.     XCH    A,R6
  3220.     RRC    A
  3221.     MOV    R7,A        ;R6 R7
  3222.     RET;
  3223. ;
  3224. ;
  3225. ;
  3226. ;                ;THIS SUBROUTING  12-4
  3227. CRAY:    MOV    R5,#08H     ;CRAY CODE > BINDARY
  3228. CLP1:    RLC    A
  3229.     MOV    23H,A
  3230.     MOV    A,22H
  3231.     RLC    A
  3232.     MOV    22H,A
  3233.     MOV    A,23H
  3234.     JNB    10,CLP2
  3235.     CPL    ACC.7
  3236. CLP2:    DJNZ    R5,CLP1
  3237.     MOV    A,22H
  3238.     RET
  3239. ;
  3240. ;
  3241. ;
  3242. ;
  3243. ;
  3244. ;
  3245. ;
  3246. ;
  3247. ;
  3248. ;
  3249. MAINQ:    MOV    SP,#60H         ;DATA QUE
  3250.     MOV    R0,#50H
  3251.     MOV    @R0,#6FH
  3252.     INC    R0
  3253.     MOV    @R0,#6EH
  3254.     INC    R0
  3255.     MOV    @R0,#6AH
  3256.     INC    R0
  3257.     MOV    @R0,#6CH
  3258.     INC    R0
  3259.     MOV    @R0,#6dh
  3260.     INC    R0,
  3261.     MOV    @R0,#6BH
  3262.     INC    R0
  3263.     MOV    @R0,#67H
  3264.     INC    R0,
  3265.     MOV    @R0,#69H
  3266.     INC    R0
  3267.     MOV    @R0,#68H
  3268.     INC    R0
  3269.     MOV    @R0,#64H
  3270.     MOV    R3,#50H
  3271.     MOV    R4,#0AH
  3272.     LCALL    QUE
  3273. QHERE:    LJMP    QHERE
  3274. ;
  3275. ;
  3276. ;
  3277. ;
  3278. ;
  3279. ;
  3280. ;
  3281. QUE:    MOV    A,R3
  3282.     MOV    R0,A
  3283.     MOV    A,R4
  3284.     MOV    R7,A
  3285.     CLR    PSW.5        ;THIS SUBROUTING  12-5
  3286.     MOV    A,@R0
  3287. QL2:    INC    R0
  3288.     MOV    R2,A
  3289.     CLR    C
  3290.     SUBB    A,@R0
  3291.     MOV    A,R2
  3292.     JC    QL1
  3293.     SETB    PSW.5
  3294.     XCH    A,@R0
  3295.     DEC    R0
  3296.     XCH    A,@R0
  3297.     INC    R0
  3298. QL1:    MOV    A,@R0
  3299.     DJNZ    R7,QL2
  3300.     JB    PSW.5,QUE
  3301.     RET
  3302. ;
  3303. ;
  3304. ;
  3305. ;                    ;THIS SUBROUTING  12-6
  3306. CLK:    CLR    25H            ;0->S
  3307.     CPL    P1.3            ;DISPLY S
  3308.     MOV    A,2FH
  3309.     ADD    A,#01H            ;2AH-2FH
  3310.     DA     A            ;SS
  3311.     MOV    2FH,A
  3312.     CJNE   A,#60H,CKR
  3313.     MOV    2FH,#00H
  3314.     MOV    A,2EH            ;MM
  3315.     ADD    A,#01H
  3316.     DA     A
  3317.     MOV    2EH,A
  3318.     XRL    A,#60H
  3319.     JNZ    CKR
  3320.     MOV    2EH,#00H
  3321.     MOV    A,2DH            ;HH
  3322.     ADD    A,#01H
  3323.     DA     A
  3324.     MOV    2DH,A
  3325.     XRL    A,#12H
  3326.     JNZ    CKR
  3327.     MOV    2DH,#00H
  3328. CKR:    RET
  3329. ;
  3330. ;
  3331. ;
  3332. ;
  3333. ;
  3334. ;                    ;THIS SUBROUTING  12-7
  3335. ;
  3336. HASC:    ANL    A,#0FH            ;HEX > ASCII
  3337.     ADD    A,#90H
  3338.     DA     A
  3339.     ADDC   A,#40H
  3340.     DA     A
  3341.     RET
  3342. ;
  3343. ;
  3344. ;
  3345. ;
  3346. ;                    ;THIS SUBROUTING  12-9
  3347. ASCH:    CLR    C            ;ASCII->HEX
  3348.     SUBB   A,#30H
  3349.     MOV    B,A
  3350.     SUBB   A,#0AH
  3351.     JC     SB10
  3352.     XCH    A,B
  3353.     SUBB   A,#07H
  3354.     RET
  3355. SB10:    XCH    A,B
  3356.     RET
  3357. ;
  3358. ;
  3359. ;
  3360. ;
  3361. ;
  3362. RLNB:    CLR C            ;THIS SUBROUTING  12-10
  3363. RLN0:    MOV A,@R0
  3364.     RLC A
  3365.     MOV @R0,A
  3366.     INC R0
  3367.     DJNZ R7,RLN0
  3368.     RET
  3369. ;
  3370. ;
  3371. ;
  3372. ;
  3373. ;
  3374. ;
  3375. ;
  3376. RRNB:    CLR C            ;THIS SUBROUTING  12-11
  3377. RRN0:    MOV A,@R0
  3378.     RRC A
  3379.     MOV @R0 ,A
  3380.     DEC R0
  3381.     DJNZ R7,RRN0
  3382.     RET
  3383. ;
  3384. ;
  3385. ;
  3386. ;
  3387. ;
  3388. ;
  3389. ;
  3390. ;
  3391. ;
  3392. MUL10:    CLR C        ;THIS SUBROUTING  12-12 SUBH1
  3393.     MOV R2,#00H
  3394. SML0:    MOV A,@R1
  3395.     MOV B,#0AH
  3396.     PUSH PSW
  3397.     MUL AB
  3398.     POP PSW
  3399.     ADDC A,R2
  3400.     MOV @R1,A
  3401.     MOV R2,B
  3402.     INC R1
  3403.     DJNZ R7,SML0
  3404.     RET
  3405. ;
  3406. ;
  3407. ;
  3408. ;
  3409. ;
  3410. ;
  3411. ;
  3412. ;
  3413. ;
  3414. ;
  3415. INTF:    RET
  3416. RDXI:    RET
  3417. RDXP:    RET
  3418. RDAD:    RET
  3419. ;
  3420. ;
  3421. ;
  3422. ;
  3423. ;
  3424. ;
  3425. ;
  3426. ;
  3427. ;
  3428. ;
  3429. ;
  3430. ;
  3431. ;
  3432. ;
  3433. ;
  3434. ;THIS IS A FILE OF BCD.ASM
  3435. ;
  3436. BCDC:    MOV   A,@R0        ;THIS IS  SUBROUTING 6-1
  3437.     SWAP  A
  3438.     INC   R0
  3439.     XCHD  A,@R0
  3440.     MOV   @R1,A
  3441.     XCHD  A,@R0
  3442.     INC   R0
  3443.     INC   R1
  3444.     DJNZ  R3,BCDC
  3445.     RET
  3446. ;
  3447. ;
  3448. ;
  3449. ;
  3450. ;
  3451. ;
  3452. ;
  3453. CBCD:    MOV   A,@R0        ;THIS IS  SUBROUTING 6-2
  3454.     SWAP  A
  3455.     ANL   A,#0FH
  3456.     MOV   @R1,A
  3457.     MOV   A,@R0
  3458.     INC   R1
  3459.     ANL   A,#0FH
  3460.     MOV   @R1,A
  3461.     INC   R0
  3462.     INC   R1
  3463.     DJNZ  R3,CBCD
  3464.     RET
  3465. ;
  3466. ;
  3467. ;
  3468. ;
  3469. ;
  3470. ;
  3471. ;
  3472. ;
  3473. CCMP:    MOV   A,R0        ;THIS IS  SUBROUTING 6-3
  3474.     ADD   A,R2
  3475.     MOV   R0,A
  3476.     DEC   R0
  3477. CCML:    MOV   A,@R0
  3478.     CPL   C
  3479.     CPL   A
  3480.     ADDC  A,#9AH
  3481.     MOV   @R0,A
  3482.     DEC   R0
  3483.     DJNZ  R2,CCML
  3484.     RET
  3485. ;
  3486. ;
  3487. ;
  3488. ;
  3489. ;
  3490. ;
  3491. ;
  3492. ;
  3493. ;
  3494. ;            ;THIS IS  SUBROUTING 6-4
  3495. CADD:    MOV   A,R0    ;N BYTE BCD ADD
  3496.     ADD   A,R3    ;NOT SIGN
  3497.     MOV   R0,A
  3498.     DEC   R0
  3499.     MOV   A,R1
  3500.     ADD   A,R3
  3501.     MOV   R1,A
  3502.     DEC   R1
  3503.     CLR   C
  3504. CADL:    MOV   A,@R0
  3505.     ADDC  A,@R1
  3506.     DA    A
  3507.     MOV   @R0,A
  3508.     DEC   R0
  3509.     DEC   R1
  3510.     DJNZ  R3,CADL
  3511.     RET
  3512. ;
  3513. ;                ;THIS IS  SUBROUTING 6-5 ;
  3514. CSUB1:    MOV   A,R0        ;N BYTE N SIGN BCD SUB
  3515.     ADD   A,R3
  3516.     MOV   R0,A
  3517.     DEC   R0
  3518.     MOV   A,R1
  3519.     ADD   A,R3
  3520.     MOV   R1,A
  3521.     DEC   R1
  3522.     SETB  C
  3523. CSUL1:    CLR   A
  3524.     ADDC  A,#99H
  3525.     SUBB  A,@R1
  3526.     ADD   A,@R0
  3527.     DA    A
  3528.     MOV   @R0,A
  3529.     DEC   R0
  3530.     DEC   R1
  3531.     DJNZ  R3,CSUL1
  3532.     RET
  3533. ;
  3534. ;
  3535. ;
  3536. ;
  3537. ;    THIS IS SUBROUTING    ;THIS IS  SUBROUTING 6-6
  3538. CSUB2:    MOV   A,R0        ;N BYTE N SIGN
  3539.     ADD   A,R3        ;BCD SUB
  3540.     MOV   R0,A
  3541.     DEC   R0
  3542.     MOV   A,R1
  3543.     ADD   A,R3
  3544.     MOV   R1,A
  3545.     DEC   R1
  3546.     CLR   C
  3547.     CPL   C
  3548. CSUL2:    MOV   A,@R1
  3549.     CPL   A
  3550.     ADDC  A,#9AH
  3551.     ADD   A,@R0
  3552.     DA    A
  3553.     MOV   @R0,A
  3554.     DEC   R0
  3555.     DEC   R1
  3556.     DJNZ  R3,CSUL2
  3557.     RET
  3558. ;
  3559. ;
  3560. ;
  3561. ;
  3562. ;                ;THIS IS  SUBROUTING 6-8
  3563. CDSUB:    MOV   A,@R1        ;N  BYTE O SIGN BCD SUB
  3564.     CPL   A
  3565.     ANL   A,#1
  3566.     MOV   @R1,A
  3567. CDADD:    MOV   A,R3
  3568.     MOV   R2,A
  3569.     MOV   A,@R0
  3570.     XRL   A,@R1
  3571.     ANL   A,#01H
  3572.     INC   R0
  3573.     INC   R1
  3574.     JNZ   CDSB
  3575.     LCALL  CADD
  3576.     RET
  3577. CDSB:    LCALL  CSUB2
  3578.     JC    CDRT
  3579.     INC   R0
  3580.     INC   R1
  3581.     LCALL  CCMP
  3582.     MOV   A,@R1
  3583.     MOV   @R0,A
  3584. CDRT:    CLR   C
  3585.     RET
  3586. ;
  3587. ;
  3588. ;
  3589. ;
  3590. ;
  3591. ;
  3592. ;
  3593. ;            ;THIS IS  SUBROUTING 6-7
  3594. CMUL:    MOV   A,R3    ;N BYTES BCD MUL
  3595.     MOV   R6,A    ;R6 = n
  3596.     ADD   A,R3
  3597.     MOV   R2,A    ;R2 = 2n
  3598.     MOV   A,R3
  3599.     ADD   A,R0
  3600.     MOV   R0,A
  3601.     MOV   A,R1
  3602.     ADD   A,R3
  3603.     DEC   A
  3604.     MOV   R1,A
  3605.     CLR   A
  3606. CMUL1:    MOV   @R0,A
  3607.     INC   R0
  3608.     DJNZ  R6,CMUL1
  3609.     MOV   A,R2
  3610.     MOV   R6,A
  3611.     DEC   R0
  3612. CMUL2:    CLR   A
  3613. CMUL3:    XCH   A,@R0    ;(B,S) * 10
  3614.     SWAP  A
  3615.     XCHD  A,@R0
  3616.     XCH   A,@R0
  3617.     DEC   R0
  3618.     DJNZ  R2,CMUL3
  3619.     MOV   R7,A    ;R7 = bi
  3620.     JZ    CMUL7
  3621. CMUL4:    MOV   A,R3
  3622.     MOV   R2,A
  3623.     ADD   A,R3
  3624.     ADD   A,R0
  3625.     MOV   R0,A
  3626.     CLR   C
  3627. CMUL5:    MOV   A,@R0    ;S + A -> S
  3628.     ADDC  A,@R1
  3629.     DA    A
  3630.     MOV   @R0,A
  3631.     DEC   R0
  3632.     DEC   R1
  3633.     DJNZ  R2,CMUL5
  3634.     MOV   A,R3
  3635.     MOV   R2,A
  3636. CMUL6:    CLR   A
  3637.     ADDC  A,@R0
  3638.     DA    A
  3639.     MOV   @R0,A
  3640.     DEC   R0
  3641.     DJNZ  R2,CMUL6
  3642.     MOV   A,R3
  3643.     ADD   A,R1
  3644.     MOV   R1,A
  3645.     DJNZ  R7,CMUL4
  3646. CMUL7:    MOV   A,R3
  3647.     ADD   A,R3
  3648.     MOV   R2,A
  3649.     ADD   A,R0
  3650.     MOV   R0,A
  3651.     DJNZ  R6,CMUL2
  3652.     RET
  3653. ;
  3654. ;
  3655. ;
  3656. ;
  3657. ;
  3658. ;
  3659. ;
  3660. ;            ;THIS IS  SUBROUTING 6-8
  3661. CDIV:    MOV   A,R3    ;2N BYTE BCD / N BYTE BCD
  3662.     ADD   A,R3
  3663.     MOV   R7,A    ;R7 = 2n
  3664.     DEC   R0
  3665.     DEC   R1
  3666. CDIV1:    MOV   A,R3
  3667.     ADD   A,R3
  3668.     MOV   R2,A    ;R2 = 2n
  3669.     ADD   A,R0
  3670.     MOV   R0,A
  3671.     CLR   A
  3672. CDIV2:    XCH   A,@R0
  3673.     SWAP  A
  3674.     XCHD  A,@R0
  3675.     XCH   A,@R0
  3676.     DEC   R0
  3677.     DJNZ  R2,CDIV2
  3678.     MOV   R4,A
  3679. CDIV3:    MOV   A,R3
  3680.     MOV   R6,A    ;R6 = n
  3681.     ADD   A,R0
  3682.     MOV   R0,A
  3683.     ADD   A,R3
  3684.     XCH   A,R0
  3685.     INC   @R0
  3686.     XCH   A,R0
  3687.     MOV   A,R1
  3688.     ADD   A,R3
  3689.     MOV   R1,A
  3690.     SETB  C
  3691. CDIV4:    CLR   A
  3692.     ADDC  A,#99H
  3693.     SUBB  A,@R1
  3694.     ADD   A,@R0
  3695.     DA    A
  3696.     MOV   @R0,A
  3697.     DEC   R0
  3698.     DEC   R1
  3699.     DJNZ  R6,CDIV4
  3700.     CPL   C
  3701.     MOV   A,R4
  3702.     SUBB  A,#0
  3703.     MOV   R4,A
  3704.     JNC   CDIV3
  3705.     MOV   A,R3
  3706.     MOV   R6,A
  3707.     ADD   A,R0
  3708.     MOV   R0,A
  3709.     ADD   A,R3
  3710.     XCH   A,R0
  3711.     DEC   @R0
  3712.     XCH   A,R0
  3713.     MOV   A,R1
  3714.     ADD   A,R3
  3715.     MOV   R1,A
  3716.     CLR   C
  3717. CDIV5:    MOV   A,@R0
  3718.     ADDC  A,@R1
  3719.     DA    A
  3720.     MOV   @R0,A
  3721.     DEC   R0
  3722.     DEC   R1
  3723.     DJNZ  R6,CDIV5
  3724.     DJNZ  R7,CDIV1
  3725.     RET
  3726. ;
  3727. ;
  3728. ;
  3729. ;
  3730. ;
  3731. ;
  3732. ;
  3733. ;
  3734. ;    THIS IS FILE OF TBF.ASM
  3735. ;
  3736. ;
  3737. NORM:    MOV   A,@R0         ;THIS IS SUBROUTING 4-1
  3738.     MOV   C,ACC.7
  3739.     MOV   PSW.5,C
  3740.     INC   R0
  3741. NORM1:    MOV   A,@R0
  3742.     INC   R0
  3743.     JNZ   NORM3
  3744.     MOV   A,@R0
  3745.     JNZ   NORM4
  3746.     DEC   R0
  3747.     DEC   R0
  3748.     MOV   A,#40H
  3749. NORM2:    MOV   C,PSW.5
  3750.     MOV   ACC.7,C
  3751.     MOV   @R0,A
  3752.     RET
  3753. NORM3:    JB    ACC.7,NORM5
  3754. NORM4:    CLR   C
  3755.     MOV   A,@R0
  3756.     RLC   A
  3757.     MOV   @R0,A
  3758.     DEC   R0
  3759.     MOV   A,@R0
  3760.     RLC   A
  3761.     MOV   @R0,A
  3762.     DEC   R0
  3763.     DEC   @R0
  3764.     MOV   A,@R0
  3765.     INC   R0
  3766.     ANL   A,#7FH
  3767.     CJNE  A,#40H,NORM3
  3768.     DEC   R0
  3769.     SJMP  NORM2
  3770. NORM5:    DEC   R0
  3771.     DEC   R0
  3772.     MOV   A,@R0
  3773.     SJMP  NORM2
  3774. ;
  3775. ;
  3776. ;
  3777. ;
  3778. ;
  3779. FSDT:    JC    FS2        ;THIS IS SUBROUTING 4-2
  3780.     MOV   C,39H
  3781.     JB    PSW.5,FS1
  3782.     MOV   A,R2
  3783.     RRC   A
  3784.     MOV   R2,A
  3785.     MOV   A,R3
  3786.     RRC   A
  3787.     MOV   R3,A
  3788.     INC   R6
  3789.     RET
  3790. FS1:    MOV   A,R4
  3791.     RRC   A
  3792.     MOV   R4,A
  3793.     MOV   A,R5
  3794.     RRC   A
  3795.     MOV   R5,A
  3796.     INC   R7
  3797.     RET
  3798. FS2:    MOV    A,R2
  3799.     JNZ    FS4
  3800.     CJNE  R3,#0,FS5
  3801.     MOV   R6,#41H
  3802. FS3:    RET
  3803. FS4:    JB    ACC.7,FS3
  3804. FS5:    MOV   C,PSW.5
  3805.     MOV   A,R3
  3806.     RLC   A
  3807.     MOV   R3,A
  3808.     MOV   A,R2
  3809.     RLC   A
  3810.     MOV   R2,A
  3811.     CLR   PSW.5
  3812.     DEC   R6
  3813.     SJMP  FS2
  3814. ;
  3815. ;
  3816. ;
  3817. ;
  3818. ;
  3819. FMLD:    MOV   A,@R0          ;THIS IS SUBROUTING 4-3
  3820.     MOV   R6,A
  3821.     INC   R0
  3822.     MOV   A,@R0
  3823.     MOV   R2,A
  3824.     INC   R0
  3825.     MOV   A,@R0
  3826.     MOV   R3,A
  3827.     DEC   R0
  3828.     DEC   R0
  3829.     MOV   A,@R1
  3830.     MOV   R7,A
  3831.     INC   R1
  3832.     MOV   A,@R1
  3833.     MOV   R4,A
  3834.     INC   R1
  3835.     MOV   A,@R1
  3836.     MOV   R5,A
  3837.     DEC   R1
  3838.     DEC   R1
  3839.     RET
  3840. ;
  3841. ;
  3842. ;
  3843. ;
  3844. ;
  3845. FSTR:    MOV   A,R4        ;THIS IS SUBROUTING 4-4
  3846.     MOV   @R1,A
  3847.     INC   R1
  3848.     MOV   A,R2
  3849.     MOV   @R1,A
  3850.     INC   R1
  3851.     MOV   A,R3
  3852.     MOV   @R1,A
  3853.     DEC   R1
  3854.     DEC   R1
  3855.     RET
  3856. ;
  3857. ;
  3858. ;
  3859. ;
  3860. ;
  3861. ;
  3862. FABP:    MOV   A,R6        ;THIS IS SUBROUTING 4-5
  3863.     MOV   C,ACC.7
  3864.     MOV   38H,C
  3865.     XRL   A,R7
  3866.     JNB   ACC.7,FA1
  3867.     CPL   3AH
  3868. FA1:    MOV   A,R6
  3869.     MOV   C,ACC.6
  3870.     MOV   ACC.7,C
  3871.     MOV   R6,A
  3872.     MOV   A,R7
  3873.     MOV   C,ACC.6
  3874.     MOV   ACC.7,C
  3875.     MOV   R7,A
  3876.     CLR   C
  3877.     MOV   A,R6
  3878.     SUBB  A,R7
  3879.     JZ    FA2
  3880.     CLR   PSW.5
  3881.     CLR   39H
  3882.     JB    ACC.7,FA5
  3883.     CJNE  R4,#0,FA6
  3884.     CJNE  R5,#0,FA6
  3885. FA2:    JB    3AH,FA8
  3886.     MOV   A,R3
  3887.     ADD   A,R5
  3888.     MOV   R3,A
  3889.     MOV   A,R2
  3890.     ADDC  A,R4
  3891.     MOV   R2,A
  3892.     JNC   FA4
  3893.     SETB  39H
  3894.     CLR   C
  3895. FA3:    CLR   PSW.5
  3896.     LCALL FSDT
  3897. FA4:    CJNE  R2,#0,FAA
  3898.     CJNE  R3,#0,FAA
  3899.     MOV   R4,#41H
  3900.     RET
  3901. FAA:    MOV   A,R6
  3902.     MOV   C,38H
  3903.     MOV   ACC.7,C
  3904.     XCH   A,R4
  3905.     MOV   R6,A
  3906.     RET
  3907. FA5:    CJNE  R2,#0,FA7
  3908.     CJNE  R3,#0,FA7
  3909.     MOV   A,R7
  3910.     MOV   R6,A
  3911.     SJMP  FA2
  3912. FA6:    CPL   PSW.5
  3913. FA7:    CLR   C
  3914.     LCALL FSDT
  3915.     SJMP  FA1
  3916. FA8:    MOV   A,R3
  3917.     CLR   C
  3918.     SUBB  A,R5
  3919.     MOV   R3,A
  3920.     MOV   A,R2
  3921.     SUBB  A,R4
  3922.     MOV   R2,A
  3923.     JNC   FA9
  3924.     CLR   A
  3925.     CLR   C
  3926.     SUBB  A,R3
  3927.     MOV   R3,A
  3928.     CLR   A
  3929.     SUBB  A,R2
  3930.     MOV   R2,A
  3931.     CPL   38H
  3932. FA9:    SETB  C
  3933.     SJMP  FA3
  3934. ;
  3935. ;
  3936. ;
  3937. ;
  3938. ;
  3939. ;
  3940. FADD:    CLR   3AH        ;THIS IS SUBROUTING 4-6
  3941.     LCALL FMLD
  3942.     LCALL FABP
  3943.     RET
  3944. ;
  3945. ;
  3946. ;
  3947. ;
  3948. ;
  3949. ;
  3950. ;
  3951. ;
  3952. FSUB:    SETB  3AH        ;THIS IS SUBROUTING 4-7
  3953.     LCALL FMLD
  3954.     LCALL FABP
  3955.     RET
  3956. ;
  3957. ;
  3958. ;
  3959. ;
  3960. ;
  3961. ;
  3962. ;
  3963. FMUL:    LCALL FMLD        ;THIS IS SUBROUTING 4-8
  3964.     MOV   A,R6
  3965.     XRL   A,R7
  3966.     MOV   C,ACC.7
  3967.     MOV   38H,C
  3968.     LCALL WDMUL
  3969.     MOV   A,R7
  3970.     MOV   C,ACC.7
  3971.     MOV   PSW.5,C
  3972.     MOV   A,@R0
  3973.     ADD   A,@R1
  3974.     MOV   R6,A
  3975.     SETB  C
  3976.     LCALL FSDT
  3977.     MOV   A,R6
  3978.     MOV   C,38H
  3979.     MOV   ACC.7,C
  3980.     MOV   R4,A
  3981.     RET
  3982. ;
  3983. ;
  3984. ;
  3985. ;
  3986. ;
  3987. ;
  3988. ;
  3989. ;
  3990. ;
  3991. ;
  3992. WDMUL:    MOV   A,R3        ;THIS IS SUBROUTING 4-10
  3993.     MOV   B,R5
  3994.     MUL   AB
  3995.     MOV   R7,B
  3996.     MOV   A,R3
  3997.     MOV   B,R4
  3998.     MUL   AB
  3999.     ADD   A,R7
  4000.     MOV   R7,A
  4001.     CLR   A
  4002.     ADDC  A,B
  4003.     MOV   R3,A
  4004.     MOV   A,R2
  4005.     MOV   B,R5
  4006.     MUL   AB
  4007.     ADD   A,R7
  4008.     MOV   R7,A
  4009.     MOV   A,R3
  4010.     ADDC  A,B
  4011.     MOV   R3,A
  4012.     MOV   PSW.5,C
  4013.     MOV   A,R2
  4014.     MOV   B,R4
  4015.     MUL   AB
  4016.     ADD   A,R3
  4017.     MOV   R3,A
  4018.     CLR   A
  4019.     ADDC  A,B
  4020.     MOV   C,PSW.5
  4021.     ADDC  A,#0
  4022.     MOV   R2,A
  4023.     RET
  4024. ;
  4025. ;
  4026. ;
  4027. ;
  4028. ;
  4029. ;
  4030. ;
  4031. ;
  4032. FDIV:    LCALL FMLD        ;THIS IS SUBROUTING 4-9
  4033.     MOV   A,R6
  4034.     XRL   A,R7
  4035.     MOV   C,ACC.7
  4036.     MOV   38H,C
  4037.     CLR   A
  4038.     MOV   R6,A
  4039.     MOV   R7,A
  4040.     CJNE  R4,#0,FD1
  4041.     CJNE  R5,#0,FD1
  4042.     SETB  C
  4043.     RET
  4044. FD1:    MOV   A,R3
  4045.     SUBB  A,R5
  4046.     MOV   A,R2
  4047.     SUBB  A,R4
  4048.     JC    FD2
  4049.     CLR   PSW.5
  4050.     CLR   39H
  4051.     LCALL FSDT
  4052.     MOV   A,R7
  4053.     RRC   A
  4054.     MOV   R7,A
  4055.     CLR   C
  4056.     SJMP  FD1
  4057. FD2:    CLR   A
  4058.     XCH   A,R6
  4059.     PUSH  ACC
  4060.     LCALL WDDIV
  4061.     POP   ACC
  4062.     ADD   A,@R0
  4063.     CLR   C
  4064.     SUBB  A,@R1
  4065.     MOV   C,38H
  4066.     MOV   ACC.7,C
  4067.     MOV   R4,A
  4068.     CLR   C
  4069.     RET
  4070. ;
  4071. ;
  4072. ;
  4073. ;
  4074. ;
  4075. WDDIV:    MOV   A,R1        ;THIS IS SUBROUTING 4-11
  4076.     PUSH  ACC
  4077.     MOV   B,#10H
  4078. DV1:    CLR   C
  4079.     MOV   A,R6
  4080.     RLC   A
  4081.     MOV   R6,A
  4082.     MOV   A,R7
  4083.     RLC   A
  4084.     MOV   R7,A
  4085.     MOV   A,R3
  4086.     RLC   A
  4087.     MOV   R3,A
  4088.     XCH   A,R2
  4089.     RLC   A
  4090.     XCH   A,R2
  4091.     MOV   PSW.5,C
  4092.     CLR   C
  4093.     SUBB  A,R5
  4094.     MOV   R1,A
  4095.     MOV   A,R2
  4096.     SUBB  A,R4
  4097.     JB    PSW.5,DV2
  4098.     JC    DV3
  4099. DV2:    MOV   R2,A
  4100.     MOV   A,R1
  4101.     MOV   R3,A
  4102.     INC   R6
  4103. DV3:    DJNZ  B,DV1
  4104.     POP   ACC
  4105.     MOV   R1,A
  4106.     MOV   A,R7
  4107.     MOV   R2,A
  4108.     MOV   A,R6
  4109.     MOV   R3,A
  4110.     RET
  4111. ;
  4112. ;
  4113. ;
  4114. ;
  4115. ;
  4116. INTTF:     MOV     R6,#10H     ;THIS IS SUBROUTING 4-12
  4117.     SETB    C
  4118.     CLR    PSW.5
  4119.     LCALL    FSDT
  4120.     MOV    A,R6
  4121.     MOV    C,3CH
  4122.     MOV    ACC.7,C
  4123.     MOV    R4,A
  4124.     LCALL    FSTR
  4125.     RET
  4126. ;
  4127. ;
  4128. ;
  4129. ;
  4130. ;
  4131. ;
  4132. FINT:    CLR    PSW.5        ;THIS IS SUBROUTING 4-13
  4133.     INC    R0
  4134.     MOV    A,@R0
  4135.     MOV    R2,A
  4136.     INC    R0
  4137.     MOV    A,@R0
  4138.     MOV    R3,A
  4139.     DEC    R0
  4140.     DEC    R0
  4141.     MOV    A,@R0
  4142.     MOV    C,ACC.7
  4143.     MOV    3CH,C
  4144.     CLR    ACC.7
  4145.     JNB    ACC.6,FIN1
  4146.     MOV    R2,#00H
  4147.     MOV    R3,#00H
  4148.     RET
  4149. FIN1:    CJNE    A,#11H,FIN5
  4150.     JC    FIN3
  4151. FIN5:    SETB    PSW.5
  4152.     MOV    R2,#0FFH
  4153.     MOV    R3,#0FFH
  4154.     RET
  4155. FIN3:    CJNE    A,#10H,FIN4
  4156.     RET
  4157. FIN4:    CLR    C
  4158.     XCH    A,R2
  4159.     RRC    A
  4160.     XCH    A,R2
  4161.     XCH    A,R3
  4162.     RRC    A
  4163.     XCH    A,R3
  4164.     INC    A
  4165.     SJMP    FIN3
  4166. ;
  4167. ;
  4168. ;    THIS THE FILE OF DBINT.ASM
  4169. ;
  4170. ;
  4171. ;
  4172. ;
  4173. ;
  4174. CMPT:    MOV    A,R5     ;THIS IS SUBROUTING 2-1
  4175.     CPL    A
  4176.     ADD    A,#01H
  4177.     MOV    R5,A
  4178.     MOV    A,R4
  4179.     CPL    A
  4180.     ADDC    A,#00H
  4181.     MOV    R4,A
  4182.     RET
  4183. ;
  4184. ;
  4185. NADD:    MOV   A,R3     ;THIS IS SUBROUTING 2-2
  4186.     ADD   A,R7
  4187.     MOV   R5,A
  4188.     MOV   A,R2
  4189.     ADDC  A,R6
  4190.     MOV   R4,A
  4191.     RET
  4192. ;
  4193. ;
  4194. ;
  4195. ;
  4196. ;
  4197. NSUB1:    MOV   A,R3    ;THIS IS SUBROUTING 2-3
  4198.     CLR   C
  4199.     SUBB  A,R7
  4200.     MOV   R5,A
  4201.     MOV   A,R2
  4202.     SUBB  A,R6
  4203.     MOV   R4,A
  4204.     RET
  4205. ;
  4206. ;
  4207. ;
  4208. ;
  4209. ;
  4210. ;
  4211. DSUB:    MOV   A,R6     ;THIS IS SUBROUTING 2-4
  4212.     CPL   ACC.7
  4213.     MOV   R6,A
  4214. DADD:    MOV   A,R2
  4215.     MOV   C,ACC.7
  4216.     MOV   PSW.5,C
  4217.     XRL   A,R6
  4218.     MOV   C,ACC.7
  4219.     MOV   A,R2
  4220.     CLR   ACC.7
  4221.     MOV   R2,A
  4222.     MOV   A,R6
  4223.     CLR   ACC.7
  4224.     MOV   R6,A
  4225.     JC    DAB2
  4226.     LCALL NADD
  4227.     MOV   A,R4
  4228.     JB    ACC.7,DABE
  4229. DAB1:    MOV   C,PSW.5
  4230.     MOV   ACC.7,C
  4231.     MOV   R4,A
  4232.     RET
  4233. DABE:    SETB  C
  4234.     RET
  4235. DAB2:    LCALL NSUB1
  4236.     MOV   A,R4
  4237.     JNB   ACC.7,DAB1
  4238.     LCALL CMPT
  4239.     CPL   PSW.5
  4240.     SJMP  DAB1
  4241. ;
  4242. ;
  4243. ;
  4244. ;
  4245. NMUL:    MOV   R4,#0         ;THIS IS SUBROUTING 2-5
  4246.     MOV   R5,#0
  4247.     MOV   R0,#16
  4248.     CLR   C
  4249. NMLP:    MOV   A,R4
  4250.     RRC   A
  4251.     MOV   R4,A
  4252.     MOV   A,R5
  4253.     RRC   A
  4254.     MOV   R5,A
  4255.     MOV   A,R6
  4256.     RRC   A
  4257.     MOV   R6,A
  4258.     MOV   A,R7
  4259.     RRC   A
  4260.     MOV   R7,A
  4261.     JNC   NMLN0
  4262.     MOV   A,R5
  4263.     ADD   A,R3
  4264.     MOV   R5,A
  4265.     MOV   A,R4
  4266.     ADDC  A,R2
  4267.     MOV   R4,A
  4268. NMLN0:    DJNZ  R0,NMLP
  4269.     MOV   A,R4
  4270.     RRC   A
  4271.     MOV   R4,A
  4272.     MOV   A,R5
  4273.     RRC   A
  4274.     MOV   R5,A
  4275.     MOV   A,R6
  4276.     RRC   A
  4277.     MOV   R6,A
  4278.     MOV   A,R7
  4279.     RRC   A
  4280.     MOV   R7,A
  4281.     RET
  4282. ;
  4283. ;
  4284. ;
  4285. ;
  4286. ;
  4287. QKMUL:    MOV   A,R3    ;THIS IS SUBROUTING 2-6
  4288.     MOV   B,R7
  4289.     MUL   AB    ;R3 * R7
  4290.     XCH   A,R7    ;R7 =(R3*R7)L
  4291.     MOV   R5,B    ;R5 =(R3*R7)H
  4292.     MOV   B,R2
  4293.     MUL   AB    ;R2 * R7
  4294.     ADD   A,R5
  4295.     MOV   R4,A
  4296.     CLR   A
  4297.     ADDC  A,B
  4298.     MOV   R5,A    ;R5 =(R2*R7)H
  4299.     MOV   A,R6
  4300.     MOV   B,R3
  4301.     MUL   AB    ;R3 * R6
  4302.     ADD   A,R4
  4303.     XCH   A,R6
  4304.     XCH   A,B
  4305.     ADDC  A,R5
  4306.     MOV   R5,A
  4307.     MOV   PSW.5,C       ;Store CY
  4308.     MOV   A,R2
  4309.     MUL   AB    ;R2 * R6
  4310.     ADD   A,R5
  4311.     MOV   R5,A
  4312.     CLR   A
  4313.     MOV   ACC.0,C
  4314.     MOV   C,PSW.5
  4315.     ADDC  A,B
  4316.     MOV   R4,A
  4317.     RET
  4318. ;
  4319. ;
  4320. ;
  4321. ;
  4322. NDIV1:    MOV   A,R3        ;THIS IS SUBROUTING 2-7
  4323.     CLR   C         ;
  4324.     SUBB  A,R7
  4325.     MOV   A,R2
  4326.     SUBB  A,R6
  4327.     JNC   NDVE1
  4328.     MOV   B,#16
  4329. NDVL1:    CLR   C
  4330.     MOV   A,R5
  4331.     RLC   A
  4332.     MOV   R5,A
  4333.     MOV   A,R4
  4334.     RLC   A
  4335.     MOV   R4,A
  4336.     MOV   A,R3
  4337.     RLC   A
  4338.     MOV   R3,A
  4339.     XCH   A,R2
  4340.     RLC   A
  4341.     XCH   A,R2
  4342.     MOV   PSW.5,C
  4343.     CLR   C
  4344.     SUBB  A,R7
  4345.     MOV   R1,A
  4346.     MOV   A,R2
  4347.     SUBB  A,R6
  4348.     JB    PSW.5,NDVM1
  4349.     JC    NDVD1
  4350. NDVM1:    MOV   R2,A
  4351.     MOV   A,R1
  4352.     MOV   R3,A
  4353.     INC   R5
  4354. NDVD1:    DJNZ  B,NDVL1
  4355.     CLR   PSW.5
  4356.     RET
  4357. NDVE1:    SETB  PSW.5
  4358.     RET
  4359. ;
  4360. ;
  4361. ;
  4362. IMUL:    MOV   A,R2         ;THIS IS SUBROUTING 2-8
  4363.     XRL   A,R6
  4364.     MOV   C,ACC.7
  4365.     MOV   PSW.5,C
  4366.     MOV   A,R2
  4367.     CLR   ACC.7
  4368.     MOV   R2,A
  4369.     MOV   A,R6
  4370.     CLR   ACC.7
  4371.     MOV   R6,A
  4372.     LCALL NMUL
  4373.     MOV   A,R4
  4374.     MOV   C,PSW.5
  4375.     MOV   ACC.7,C
  4376.     MOV   R4,A
  4377.     RET
  4378. ;
  4379. ;
  4380. ;
  4381. ;
  4382. IDIV:    MOV   A,R2         ;THIS IS SUBROUTING 2-9
  4383.     XRL   A,R6
  4384.     MOV   C,ACC.7
  4385.     MOV   0,C         ;Save SIGN
  4386.     MOV   A,R2
  4387.     CLR   ACC.7
  4388.     MOV   R2,A
  4389.     MOV   A,R6
  4390.     CLR   ACC.7
  4391.     MOV   R6,A
  4392.     LCALL NDIV1
  4393.     MOV   A,R4
  4394.     JB    ACC.7,IDIVE
  4395.     MOV   C,0         ;Restore SIGN
  4396.     MOV   ACC.7,C
  4397.     MOV   R4,A
  4398.     RET
  4399. IDIVE:    SETB  PSW.5         ;Ouer Flow
  4400.     RET
  4401. ;
  4402. ;
  4403. ;
  4404. ;
  4405. ;
  4406. ;
  4407. ;
  4408. ;
  4409. ;
  4410. ;
  4411. DMUL:    MOV   A,R2        ;THIS IS SUBROUTING 2-10
  4412.     XRL   A,R6
  4413.     MOV   C,ACC.7
  4414.     MOV   PSW.5,C
  4415.     MOV   A,R2
  4416.     CLR   ACC.7
  4417.     MOV   R2,A
  4418.     MOV   A,R6
  4419.     CLR   ACC.7
  4420.     MOV   R6,A
  4421.     MOV   R4,#0
  4422.     MOV   R5,#0
  4423.     MOV   R0,#16
  4424.     CLR   C
  4425. DMLP:    MOV   A,R4
  4426.     RRC   A
  4427.     MOV   R4,A
  4428.     MOV   A,R5
  4429.     RRC   A
  4430.     MOV   R5,A
  4431.     MOV   A,R6
  4432.     RRC   A
  4433.     MOV   R6,A
  4434.     MOV   A,R7
  4435.     RRC   A
  4436.     MOV   R7,A
  4437.     JNC   DMLN
  4438.     MOV   A,R5
  4439.     ADD   A,R3
  4440.     MOV   R5,A
  4441.     MOV   A,R4
  4442.     ADDC  A,R2
  4443.     MOV   R4,A
  4444. DMLN:    DJNZ  R0,DMLP
  4445.     MOV   A,R4
  4446.     MOV   C,PSW.5
  4447.     MOV   ACC.7,C
  4448.     MOV   R4,A
  4449.     RET
  4450. ;
  4451. ;
  4452. ;
  4453. ;
  4454. ;
  4455. ;
  4456. ;
  4457. DDIV:    MOV   A,R2        ;THIS IS SUBROUTING 2-11
  4458.     XRL   A,R6
  4459.     MOV   C,ACC.7
  4460.     MOV   0,C           ;Save SIGN
  4461.     MOV   A,R2
  4462.     CLR   ACC.7
  4463.     MOV   R2,A
  4464.     MOV   A,R6
  4465.     CLR   ACC.7
  4466.     MOV   R6,A
  4467.     CLR   A
  4468.     MOV   R4,A
  4469.     MOV   R5,A
  4470.     LCALL NDIV1
  4471.     MOV   C,0    ;Restore SIGN
  4472.     MOV   A,R4
  4473.     RRC   A
  4474.     MOV   R4,A
  4475.     MOV   A,R5
  4476.     RRC   A
  4477.     MOV   R5,A
  4478.     RET
  4479. ;
  4480. ;
  4481. ;
  4482. ;
  4483. ;
  4484. ;
  4485. ;
  4486. ;THIS IS THE FILE OF NBINT.ASM
  4487. ;
  4488. ;
  4489. NIADD:    MOV    A,R0        ; THIS IS SUBROUTING 3-1
  4490.     MOV    R4,A
  4491.     MOV    A,R3
  4492.     MOV    R7,A
  4493.     CLR    C
  4494. SA20:    MOV    A,@R0
  4495.     ADDC    A,@R1
  4496.     MOV    @R0,A
  4497.     INC    R0
  4498.     INC    R1
  4499.     DJNZ    R7,SA20
  4500.     CLR    A
  4501.     MOV    ACC.0,C
  4502.     MOV    @R0,A
  4503.     INC    R3
  4504. SA21:    MOV    A,R4
  4505.     MOV    R0,A
  4506.     RET
  4507. ;
  4508. ;
  4509. ;
  4510. NISUB:    MOV    A, R0        ; THIS IS SUBROUTING 3-2
  4511.     MOV    R4, A
  4512.     MOV    A, R3
  4513.     MOV    R7, A
  4514.     CLR    C
  4515. SB20:    MOV    A,@R0
  4516.     SUBB    A,@R1
  4517.     MOV    @R0, A
  4518.     INC    R0
  4519.     INC    R1
  4520.     DJNZ    R7,SB20
  4521.     MOV    A,R4
  4522.     MOV    R0,A
  4523.     RET
  4524. ;
  4525. ;
  4526. ;
  4527. ;
  4528. ;
  4529. ;
  4530. NIMUL:    MOV    A,R0        ; THIS IS SUBROUTING 3-3
  4531.     MOV    R4,A
  4532.     MOV    A,R3
  4533.     MOV    R7,A
  4534.     MOV    A,R1
  4535.     MOV    R5,A
  4536. SE20:    CLR    C
  4537.     SUBB    A,R7
  4538.     MOV    R6,A
  4539.     MOV    R1,A
  4540.     LCALL    SUBD4
  4541.     MOV    A,R7
  4542.     ADD    A,R7
  4543.     MOV    R2,A
  4544.     MOV    B,#04H
  4545.     MUL    AB
  4546. SE201:    PUSH    ACC
  4547.     MOV    A,R6
  4548.     MOV    R1,A
  4549.     MOV    A,R2
  4550.     MOV    R3,A
  4551.     LCALL    SUBE4
  4552.     JNC    SE203
  4553.     MOV    A,R7
  4554.     MOV    R3,A
  4555.     MOV    A,R6
  4556.     MOV    R0,A
  4557.     MOV    A,R4
  4558.     MOV    R1,A
  4559.     CLR    C
  4560. SE202:    MOV    A,@R0
  4561.     ADDC    A,@R1
  4562.     MOV    @R0,A
  4563.     INC    R0
  4564.     INC    R1
  4565.     DJNZ    R3,SE202
  4566.     JNC    SE203
  4567.     MOV    A,R5
  4568.     MOV    R1,A
  4569.     MOV    A,R7
  4570.     MOV    R3,A
  4571. SE204:    MOV    A,@R1
  4572.     ADDC    A,#00H
  4573.     MOV    @R1,A
  4574.     JNC    SE203
  4575.     INC    R1
  4576.     DJNZ    R3,SE204
  4577. SE203:    POP    ACC
  4578.     DEC    A
  4579.     JNZ    SE201
  4580.     MOV    A,R2
  4581.     MOV    R3,A
  4582.     MOV    A,R6
  4583.     MOV    R0,A
  4584.     RET
  4585. SUBD4:    CLR    A        ;N BYTES  CLR
  4586. SD40:    MOV    @R1,A
  4587.     INC    R1
  4588.     DJNZ    R3,SD40
  4589.     RET
  4590. SUBE4:    CLR    C
  4591. SE40:    MOV    A,@R1
  4592.     RLC    A
  4593.     MOV    @R1,A
  4594.     INC    R1
  4595.     DJNZ    R3,SE40
  4596.     RET
  4597. ;
  4598. ;
  4599. ;
  4600. ;
  4601. ;
  4602. ;
  4603. NINORM: SETB    C        ;; THIS IS SUBROUTING 3-4
  4604. SC40:    MOV    A,@R1
  4605.     CPL    A
  4606.     ADDC    A,#00H
  4607.     MOV    @R1,A
  4608.     INC    R1
  4609.     DJNZ    R3,SC40
  4610.     RET
  4611. ;
  4612. ;
  4613. ;
  4614. ;
  4615. ;
  4616. SNIMUL: MOV    A,R0        ; THIS IS SUBROUTING 3-5
  4617.     MOV    R4,A
  4618.     MOV    A,R1
  4619.     MOV    R5,A
  4620.     MOV    A,R3
  4621.     MOV    R7,A
  4622.     DEC    A
  4623.     MOV    R6,A
  4624.     ADD    A,R4
  4625.     MOV    R1,A
  4626.     MOV    A,@R1
  4627.     ANL    A,#80H
  4628.     MOV    R2,A
  4629.     JZ    SF21            ; < 0 SF21
  4630.     SETB    C
  4631. SF23:    MOV    A,@R0
  4632.     CPL    A
  4633.     ADDC    A,#00H
  4634.     MOV    @R0,A
  4635.     INC    R0
  4636.     DJNZ    R3 ,SF23
  4637. SF21:    MOV    A,R5
  4638.     ADD    A,R6
  4639.     MOV    R1,A
  4640.     MOV    A,@R1
  4641.     ANL    A,#80H
  4642.     MOV    R6,A
  4643.     JZ    SF22
  4644.     MOV    A,R5
  4645.     MOV    R1,A
  4646.     MOV    A,R7
  4647.     MOV    R3,A
  4648.     SETB    C
  4649. SF24:    MOV    A,@R1
  4650.     CPL    A
  4651.     ADDC    A,#00H
  4652.     MOV    @R1,A
  4653.     INC    R1
  4654.     DJNZ    R3,SF24
  4655. SF22:    MOV    A,R2
  4656.     XRL    A,R6        ;SIGN > STATION
  4657.     PUSH    A
  4658.     MOV    A,R4
  4659.     MOV    R0,A
  4660.     MOV    A,R7
  4661.     MOV    R3,A
  4662.     MOV    A,R5
  4663.     MOV    R1,A
  4664.     LCALL    SE20
  4665.     POP    ACC
  4666.     JZ    SF20
  4667.     MOV    A,R2
  4668.     MOV    R3,A
  4669.     MOV    A,R0
  4670.     MOV    R1,A
  4671.     LCALL    NINORM
  4672. SF20:    MOV    A,R2
  4673.     MOV    R3,A
  4674.     RET
  4675. ;
  4676. ;
  4677. ;
  4678. ;
  4679. ;
  4680. ;
  4681. ;
  4682. NIZERO: MOV    A,@R1        ; THIS IS SUBROUTING 3-6
  4683.     JNZ    SF40
  4684.     INC    R1
  4685.     DJNZ    R3,NIZERO
  4686. SF40:    RET
  4687. ;
  4688. ;
  4689. ;
  4690. NIDIV1: MOV    A,R0        ; THIS IS SUBROUTING 3-7
  4691.     ADD    A,R7
  4692.     MOV    R6,A
  4693.     MOV    R1,A
  4694.     LCALL    SUBD4
  4695.     MOV    A,R7
  4696.     ADD    A,R7
  4697.     MOV    R2,A
  4698.     MOV    B,#04H
  4699.     MUL    AB
  4700. SA401:    PUSH    ACC
  4701.     CLR    C
  4702.     MOV    A,R2
  4703.     MOV    R3,A
  4704.     MOV    A,R4
  4705.     MOV    R1,A
  4706.     LCALL    SUBE4
  4707.     MOV    A,R6
  4708.     MOV    R0,A
  4709.     MOV    A,R5
  4710.     MOV    R1,A
  4711.     MOV    A,R7
  4712.     MOV    R3,A
  4713.     CLR    C
  4714. SA402:    MOV    A,@R0
  4715.     SUBB    A,@R1
  4716.     PUSH    ACC
  4717.     INC    R0
  4718.     INC    R1
  4719.     DJNZ    R3,SA402
  4720.     MOV    A,R7
  4721.     MOV    R3,A
  4722.     JC    SA403
  4723.     MOV    A,R4
  4724.     MOV    R0,A
  4725.     INC    @R0
  4726.     MOV    A,R6
  4727.     ADD    A,R7
  4728.     DEC    A
  4729.     MOV    R0,A
  4730. SA404:    POP    ACC
  4731.     MOV    @R0,A
  4732.     DEC    R0
  4733.     DJNZ    R3,SA404
  4734.     SJMP    SA405
  4735. SA403:    POP    ACC
  4736.     DJNZ    R3,SA403
  4737. SA405:    POP    ACC
  4738.     DEC    A
  4739.     JNZ    SA401
  4740.     MOV    A,R6
  4741.     ADD    A,R7
  4742.     DEC    A
  4743.     MOV    R0,A
  4744.     MOV    R2,A
  4745.     MOV    A,@R0
  4746.     RLC    A
  4747.     JC    SA407
  4748.     MOV    A,R6
  4749.     MOV    R1,A
  4750.     MOV    A,R7
  4751.     MOV    R3,A
  4752.     LCALL    SUBE4
  4753.     MOV    A,R2
  4754.     MOV    R0,A
  4755.     MOV    A,R7
  4756.     MOV    R3,A
  4757.     ADD    A,R5
  4758.     DEC    A
  4759.     MOV    R1,A
  4760. SA406:    CLR    C
  4761.     MOV    A,@R0
  4762.     SUBB    A,@R1
  4763.     JC    SA409
  4764.     JNZ    SA407
  4765.     DEC    R0
  4766.     DEC    R1
  4767.     DJNZ    R3,SA406
  4768. SA407:    MOV    A,R4
  4769.     MOV    R1,A
  4770.     MOV    A,R7
  4771.     MOV    R3,A
  4772. SA408:    MOV    A,@R1
  4773.     ADD    A,#01H
  4774.     MOV    @R1,A
  4775.     JNC    SA409
  4776.     INC    R1
  4777.     DJNZ    R7,SA408
  4778. SA409:    MOV    A,R4
  4779.     MOV    R0,A
  4780.     RET
  4781. ;
  4782. ;
  4783. ;
  4784. ;
  4785. ;
  4786. NIDIV2: MOV    A,R0        ; THIS IS SUBROUTING 3-8
  4787.     MOV    R4,A
  4788.     MOV    A,R1
  4789.     MOV    R5,A
  4790.     MOV    A,R3
  4791.     MOV    R7,A
  4792.     LCALL    NIZERO
  4793.     JZ    SA41
  4794.     MOV    A,R5
  4795.     MOV    R1,A
  4796.     MOV    A,R7
  4797.     MOV    R3,A
  4798.     LCALL    NIDIV1
  4799.     MOV    A,#0FFH
  4800.     MOV    A,R7
  4801.     MOV    R3,A
  4802. SA41:    RET
  4803. ;
  4804. ;
  4805. ;
  4806. ;
  4807. ;
  4808. SNIDIV: MOV    A,R0        ; THIS IS SUBROUTING 3-9
  4809.     MOV    R4,A
  4810.     MOV    A,R1
  4811.     MOV    R5,A
  4812.     MOV    A,R3
  4813.     MOV    R7,A
  4814.     LCALL    NIZERO
  4815.     JZ    SB41
  4816.     MOV    A,R7
  4817.     MOV    R3,A
  4818.     DEC    A
  4819.     MOV    R6,A
  4820.     ADD    A,R4
  4821.     MOV    R1,A
  4822.     MOV    A,@R1
  4823.     ANL    A,#80H
  4824.     MOV    R2,A
  4825.     JZ    SB42
  4826.     SETB    C
  4827. SB43:    MOV    A,@R0
  4828.     CPL    A
  4829.     ADDC    A,#00H
  4830.     MOV    @R0,A
  4831.     INC    R0
  4832.     DJNZ    R3,SB43
  4833. SB42:    MOV    A,R5
  4834.     MOV    R0,A
  4835.     ADD    A,R6
  4836.     MOV    R1,A
  4837.     MOV    A,@R1
  4838.     ANL    A,#80H
  4839.     MOV    R6,A
  4840.     JZ    SB44
  4841.     MOV    A,R7
  4842.     MOV    R3,A
  4843.     SETB    C
  4844. SB45:    MOV    A,@R0
  4845.     CPL    A
  4846.     ADDC    A,#00H
  4847.     MOV    @R0,A
  4848.     INC    R0
  4849.     DJNZ    R3,SB45
  4850. SB44:    MOV    A,R6
  4851.     XRL    A,R2
  4852.     PUSH    ACC
  4853.     MOV    A,R4
  4854.     MOV    R0,A
  4855.     MOV    A,R5
  4856.     MOV    R1,A
  4857.     MOV    A,R7
  4858.     MOV    R3,A
  4859.     LCALL    NIDIV1
  4860.     POP    ACC
  4861.     JZ    SB40
  4862.     MOV    A,R0
  4863.     MOV    R1,A
  4864.     MOV    A,R7
  4865.     MOV    R3,A
  4866.     LCALL    NINORM
  4867. SB40:    MOV    A,R7
  4868.     MOV    R3,A
  4869.     MOV    A,#0FFH
  4870. SB41:    RET
  4871. ;
  4872. ;
  4873. ;
  4874. ;