home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / sviluppo / fm2000 / rawdo.s < prev    next >
Encoding:
Text File  |  2000-02-04  |  3.9 KB  |  236 lines

  1. ;/*
  2. ;     Filemaster - Multitasking directory utility.
  3. ;     Copyright (C) 2000  Toni Wilen
  4. ;     
  5. ;     This program is free software; you can redistribute it and/or
  6. ;     modify it under the terms of the GNU General Public License
  7. ;     as published by the Free Software Foundation; either version 2
  8. ;     of the License, or (at your option) any later version.
  9. ;     
  10. ;     This program is distributed in the hope that it will be useful,
  11. ;     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ;     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. ;     GNU General Public License for more details.
  14. ;     
  15. ;     You should have received a copy of the GNU General Public License
  16. ;     along with this program; if not, write to the Free Software
  17. ;     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  18. ;*/
  19.  
  20.  
  21.     xdef    _rawdo
  22.     
  23.  
  24. _rawdo    movem.l    d2-d6/a2-a5,-(sp)
  25.     link    a6,#-$10
  26.     move.l    a1,-(sp)
  27.     move.l    a0,a4
  28.     bra    LC0DE
  29. LC010    bsr    LC228
  30.     move.l    (sp),d0
  31.     unlk    a6
  32.     movem.l    (sp)+,d2-d6/a2-a5
  33.     rts
  34. LC01E    moveq    #0,d0
  35.     moveq    #0,d2
  36. LC022    move.b    (a4)+,d2
  37.     cmp.b    #$30,d2
  38.     bcs.s    LC042
  39.     cmp.b    #$39,d2
  40.     bhi.s    LC042
  41.     add.l    d0,d0
  42.     move.l    d0,d1
  43.     add.l    d0,d0
  44.     add.l    d0,d0
  45.     add.l    d1,d0
  46.     sub.b    #$30,d2
  47.     add.l    d2,d0
  48.     bra.s    LC022
  49. LC042    subq.l    #1,a4
  50.     rts
  51. LC046    tst.l    d4
  52.     bpl.s    LC050
  53.     move.b    #$2D,(a5)+
  54.     neg.l    d4
  55. LC050    moveq    #$30,d0
  56.     lea    LL076(pc),a0
  57. LC056    move.l    (a0)+,d1
  58.     beq.s    LC06E
  59.     moveq    #$2F,d2
  60. LC05C    addq.l    #1,d2
  61.     sub.l    d1,d4
  62.     bcc.s    LC05C
  63.     add.l    d1,d4
  64.     cmp.l    d0,d2
  65.     beq.s    LC056
  66.     moveq    #0,d0
  67.     move.b    d2,(a5)+
  68.     bra.s    LC056
  69. LC06E    moveq    #$30,d0
  70.     add.b    d0,d4
  71.     move.b    d4,(a5)+
  72.     rts
  73. LL076    dc.l    $3B9ACA00
  74.     dc.l    $5F5E100
  75.     dc.l    $989680
  76.     dc.l    $F4240
  77.     dc.l    $186A0
  78.     dc.l    $2710
  79.     dc.l    $3E8
  80.     dc.l    $64
  81.     dc.l    10
  82.     dc.l    0
  83. LC09E    tst.l    d4
  84.     beq.s    LC06E
  85.     clr.w    d1
  86.     btst    #2,d3
  87.     bne.s    LC0B0
  88.     moveq    #3,d2
  89.     swap    d4
  90.     bra.s    LC0B2
  91. LC0B0    moveq    #7,d2
  92. LC0B2    rol.l    #4,d4
  93.     move.b    d4,d0
  94.     and.b    #15,d0
  95.     bne.s    LC0C0
  96.     tst.w    d1
  97.     beq.s    LC0D4
  98. LC0C0    moveq    #-$1,d1
  99.     cmp.b    #9,d0
  100.     bhi.s    LC0CE
  101.     add.b    #$30,d0
  102.     bra.s    LC0D2
  103. LC0CE    add.b    #$37,d0
  104. LC0D2    move.b    d0,(a5)+
  105. LC0D4    dbra    d2,LC0B2
  106.     rts
  107. LC0DA    bsr    LC228
  108. LC0DE    move.b    (a4)+,d0
  109.     beq    LC010
  110.     cmp.b    #$25,d0
  111.     bne.s    LC0DA
  112.     lea    -$10(a6),a5
  113.     clr.w    d3
  114.     cmp.b    #$2D,(a4)
  115.     bne.s    LC0FC
  116.     bset    #0,d3
  117.     addq.l    #1,a4
  118. LC0FC    cmp.b    #$30,(a4)
  119.     bne.s    LC106
  120.     bset    #1,d3
  121. LC106    bsr    LC01E
  122.     move.w    d0,d6
  123.     moveq    #0,d5
  124.     cmp.b    #$2E,(a4)
  125.     bne.s    LC11C
  126.     addq.l    #1,a4
  127.     bsr    LC01E
  128.     move.w    d0,d5
  129. LC11C    cmp.b    #$6C,(a4)
  130.     bne.s    LC128
  131.     bset    #2,d3
  132.     addq.l    #1,a4
  133. LC128    move.b    (a4)+,d0
  134.     cmp.b    #$75,d0        ;!
  135.     beq.s    LC136
  136.     cmp.b    #$64,d0
  137.     beq.s    LC136
  138.     cmp.b    #$55,d0        ;!
  139.     beq.s    LC136
  140.     cmp.b    #$44,d0
  141.     bne.s    LC140
  142. LC136    bsr.s    LC154
  143.     bsr    LC046
  144.     bra    LC1C2
  145. LC140    cmp.b    #$78,d0
  146.     beq.s    LC14C
  147.     cmp.b    #$58,d0
  148.     bne.s    LC176
  149. LC14C    bsr.s    LC154
  150.     bsr    LC09E
  151.     bra.s    LC1C2
  152. LC154    btst    #2,d3
  153.     bne.s    LC168
  154.     move.l    4(sp),a1
  155.     move.w    (a1)+,d4
  156.     move.l    a1,4(sp)
  157.     ext.l    d4
  158.     rts
  159. LC168    move.l    4(sp),a1
  160.     move.l    (a1)+,d4
  161.     move.l    a1,4(sp)
  162.     tst.l    d4
  163.     rts
  164. LC176    cmp.b    #$73,d0
  165.     bne.s    LC184
  166.     bsr.s    LC168
  167.     beq.s    LC1FE
  168.     move.l    d4,a5
  169.     bra.s    LC1C8
  170. LC184    cmp.b    #$62,d0
  171.     bne.s    LC1A2
  172.     bsr.s    LC168
  173.     beq.s    LC1FE
  174.     lsl.l    #2,d4
  175.     move.l    d4,a5
  176.     moveq    #0,d2
  177.     move.b    (a5)+,d2
  178.     beq.s    LC1FE
  179.     tst.b    -1(a5,d2.w)
  180.     bne.s    LC1D4
  181.     subq.w    #1,d2
  182.     bra.s    LC1D4
  183. LC1A2    cmp.b    #$75,d0
  184.     beq.s    LC1AE
  185.     cmp.b    #$55,d0
  186.     bne.s    LC1B6
  187. LC1AE    bsr.s    LC154
  188.     bsr    LC050
  189.     bra.s    LC1C2
  190. LC1B6    cmp.b    #$63,d0
  191.     bne    LC0DA
  192.     bsr.s    LC154
  193.     move.b    d4,(a5)+
  194. LC1C2    clr.b    (a5)
  195.     lea    -$10(a6),a5
  196. LC1C8    move.l    a5,a0
  197.     moveq    #-$1,d2
  198. LC1CC    tst.b    (a0)+
  199.     dbeq    d2,LC1CC
  200.     not.l    d2
  201. LC1D4    tst.w    d5
  202.     beq.s    LC1DC
  203.     cmp.w    d5,d2
  204.     bhi.s    LC1DE
  205. LC1DC    move.w    d2,d5
  206. LC1DE    sub.w    d5,d6
  207.     bpl.s    LC1E4
  208.     clr.w    d6
  209. LC1E4    btst    #0,d3
  210.     bne.s    LC1F2
  211.     bsr.s    LC202
  212.     bra.s    LC1F2
  213. LC1EE    move.b    (a5)+,d0
  214.     bsr.s    LC228
  215. LC1F2    dbra    d5,LC1EE
  216.     btst    #0,d3
  217.     beq.s    LC1FE
  218.     bsr.s    LC202
  219. LC1FE    bra    LC0DE
  220. LC202    move.b    #$20,d2
  221.     btst    #1,d3
  222.     beq.s    LC222
  223.     cmp.b    #$2D,(a5)
  224.     bne.s    LC218
  225.     move.b    (a5)+,d0
  226.     subq.w    #1,d5
  227.     bsr.s    LC228
  228. LC218    move.b    #$30,d2
  229.     bra.s    LC222
  230. LC21E    move.b    d2,d0
  231.     bsr.s    LC228
  232. LC222    dbra    d6,LC21E
  233.     rts
  234. LC228    move.b    d0,(a3)+
  235.     rts
  236.