home *** CD-ROM | disk | FTP | other *** search
/ telefisk.org / amiga_virus_collection_research.7z / VIRUSCOLLECTIE / C / CJEZUS / LQSORT.ASM < prev    next >
Assembly Source File  |  1995-09-11  |  2KB  |  135 lines

  1. @lqsort        LEA    lbC000034(PC),A1
  2.         MOVEQ    #4,D1
  3.  
  4. @qsort        SUBQ.W    #4,SP
  5.         MOVEM.L    D4-D7/A2/A3/A5/A6,-(SP)
  6.         MOVE.L    D1,D6
  7.         MOVE.L    D0,D7
  8.         MOVE.L    A0,A5
  9.         MOVE.L    A1,$20(SP)
  10.         MOVEQ    #1,D0
  11.         CMP.L    D0,D7
  12.         BLS    lbC000184
  13.         MOVE.L    A5,A3
  14.         ADD.L    D6,A3
  15.         MOVE.L    D7,D0
  16.         SUBQ.L    #2,D0
  17.         BNE.S    lbC000102
  18.         MOVE.L    A3,-(SP)
  19.         MOVE.L    A5,-(SP)
  20.         MOVE.L    A5,A0
  21.         MOVE.L    A3,A1
  22.         MOVE.L    $28(SP),A6
  23.         JSR    (A6)
  24.         ADDQ.W    #8,SP
  25.         TST.L    D0
  26.         BLE    lbC000184
  27.         MOVE.L    D6,D0
  28.         MOVE.L    A5,A0
  29.         MOVE.L    A3,A1
  30.         JSR    @__swmem(PC)
  31.         BRA    lbC000184
  32. lbC000102    MOVE.L    D7,D0
  33.         LSR.L    #1,D0
  34.         MOVE.L    D6,D1
  35.         JSR    __CXM22(PC)
  36.         MOVE.L    A5,A1
  37.         ADD.L    D0,A1
  38.         MOVE.L    D6,D0
  39.         MOVE.L    A5,A0
  40.         JSR    @__swmem(PC)
  41.         MOVE.L    A5,A2
  42.         MOVEQ    #0,D5
  43.         MOVEQ    #1,D4
  44.         BRA.S    lbC00014A
  45. lbC000120    MOVE.L    A5,-(SP)
  46.         MOVE.L    A3,-(SP)
  47.         MOVE.L    A3,A0
  48.         MOVE.L    A5,A1
  49.         MOVE.L    $28(SP),A6
  50.         JSR    (A6)
  51.         ADDQ.W    #8,SP
  52.         TST.L    D0
  53.         BPL.S    lbC000146
  54.         ADDQ.L    #1,D5
  55.         ADD.L    D6,A2
  56.         CMP.L    A3,A2
  57.         BEQ.S    lbC000146
  58.         MOVE.L    D6,D0
  59.         MOVE.L    A3,A0
  60.         MOVE.L    A2,A1
  61.         JSR    @__swmem(PC)
  62. lbC000146    ADD.L    D6,A3
  63.         ADDQ.L    #1,D4
  64. lbC00014A    CMP.L    D7,D4
  65.         BCS.S    lbC000120
  66.         CMP.L    A5,A2
  67.         BEQ.S    lbC00015C
  68.         MOVE.L    D6,D0
  69.         MOVE.L    A5,A0
  70.         MOVE.L    A2,A1
  71.         JSR    @__swmem(PC)
  72. lbC00015C    MOVE.L    $20(SP),A3
  73.         MOVE.L    D5,D0
  74.         MOVE.L    D6,D1
  75.         MOVE.L    A5,A0
  76.         MOVE.L    A3,A1
  77.         BSR    @qsort
  78.         MOVE.L    A2,A0
  79.         ADD.L    D6,A0
  80.         MOVE.L    D7,D0
  81.         SUB.L    D5,D0
  82.         SUBQ.L    #1,D0
  83.         MOVE.L    D6,D1
  84.         MOVE.L    A3,A1
  85.         MOVEM.L    (SP)+,D4-D7/A2/A3/A5/A6
  86.         ADDQ.L    #4,SP
  87.         BRA    @qsort
  88. lbC000184    MOVEM.L    (SP)+,D4-D7/A2/A3/A5/A6
  89.         ADDQ.W    #4,SP
  90.         RTS
  91.  
  92. lbC000034    MOVE.L    (A1),D0
  93.         MOVE.L    (A0),D1
  94.         CMP.L    D0,D1
  95.         BNE.S    lbC000040
  96.         MOVEQ    #0,D0
  97.         BRA.S    lbC00004A
  98. lbC000040    CMP.L    (A1),D1
  99.         BLE.S    lbC000048
  100.         MOVEQ    #1,D0
  101.         BRA.S    lbC00004A
  102. lbC000048    MOVEQ    #-$1,D0
  103. lbC00004A    RTS
  104.  
  105. @__swmem    TST.L    D0
  106.         BLE.S    lbC00007A
  107. lbC000070    MOVE.B    (A0),D1
  108.         MOVE.B    (A1),(A0)+
  109.         MOVE.B    D1,(A1)+
  110.         SUBQ.L    #1,D0
  111.         BNE.S    lbC000070
  112. lbC00007A    RTS
  113.  
  114. __CXM22        MOVEM.L    D1-D3,-(SP)
  115.         MOVE.L    D0,D2
  116.         BEQ.S    lbC0000A4
  117.         TST.L    D1
  118.         BNE.S    lbC00008C
  119.         CLR.L    D0
  120.         BRA.S    lbC0000A4
  121. lbC00008C    MOVE.L    D0,D3
  122.         MULU    D1,D3
  123.         SWAP    D2
  124.         MULU.W    D1,D2
  125.         SWAP    D2
  126.         CLR.W    D2
  127.         ADD.L    D2,D3
  128.         SWAP    D1
  129.         MULU.W    D1,D0
  130.         SWAP    D0
  131.         CLR.W    D0
  132.         ADD.L    D3,D0
  133. lbC0000A4    MOVEM.L    (SP)+,D1-D3
  134.         RTS
  135.