home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Source / pheno.lha / pha / Sortering.S < prev    next >
Encoding:
Text File  |  1987-12-17  |  1.1 KB  |  74 lines

  1.  
  2.             ;---------------
  3.             ;-- Sortering --
  4.             ;---------------
  5.  
  6.  
  7. AntVarden:    =    40
  8.  
  9. S:        lea.l    $dff000,a6
  10.         move.w    $1c(a6),d0
  11.         bset    #15,d0
  12.         move.w    d0,OldIrq
  13.         move.w    #$4000,$9a(a6)
  14.         bsr    Slumpa
  15.         bsr    MainLoop
  16.         move.w    OldIrq(pc),$9a(a6)
  17.         rts
  18.  
  19. OldIrq:        dc.w    0
  20.  
  21. Slumpa:        lea.l    Posses(pc),a0
  22.         move.w    #8392,d1
  23.         move.w    #14,d2
  24.         move.w    #2,d3
  25.         move.w    #AntVarden-1,d7
  26. SlumpLoop:    move.w    $6(a6),d0
  27.         muls    d2,d1
  28.         add.w    d3,d2
  29.         and.w    #$ff,d0
  30.         move.w    d0,(a0)+
  31.         dbra    d7,SlumpLoop
  32.         rts
  33.  
  34. MainLoop:    cmp.b    #$50,$6(a6)
  35.         bne.S    MainLoop
  36.         move.w    #$f00,$180(a6)
  37.         bsr    Sortera
  38.         move.w    #$a,$180(a6)
  39.         btst    #6,$bfe001
  40.         bne.S    MainLoop
  41.         rts
  42.  
  43. Sortera:    lea.l    Posses(pc),a0
  44.         lea.l    Posses2(pc),a1
  45.         move.w    #AntVarden-1,d7
  46. SL:        move.w    (a0)+,(a1)+
  47.         dbra    d7,SL
  48.  
  49.         lea.l    Posses2(pc),a0
  50.         lea.l    Sorterade(pc),a1
  51.         move.l    a0,a2
  52.         moveq    #0,d0
  53.         move.w    #AntVarden-1,d7
  54.         move.w    d7,d5
  55. SortLoop:    move.w    d5,d6
  56. SortLoop2:    cmp.w    (a0),d0
  57.         bhi.S    NoC
  58.         move.w    (a0),d0
  59.         move.l    a0,a3
  60. NoC:        addq.l    #2,a0
  61.         dbra    d6,SortLoop2
  62.         move.w    d0,(a1)+
  63.         move.l    a2,a0
  64.         clr.w    (a3)
  65.         move.l    a2,a3
  66.         moveq    #0,d0
  67.         dbra    d7,SortLoop
  68.         rts
  69.  
  70. Posses:        blk.w    AntVarden,0
  71. Posses2:    blk.w    AntVarden,0
  72. Sorterade:    blk.w    AntVarden,0
  73.  
  74.