home *** CD-ROM | disk | FTP | other *** search
/ Merciful 1 / Merciful - Disc 1.iso / software / d / dms / dmsv2.03.dms / in.adf / DEVELOPERS / ASM / CALC_CRC_HEADERS.ASM next >
Encoding:
Assembly Source File  |  1994-04-14  |  2.2 KB  |  68 lines

  1. *************************************************************************
  2. *                     Device Masher System
  3. *         Calculation of CRC headers for .DMS/.FMS files
  4. *************************************************************************
  5.  
  6. Calculate_DMS_Header_CRC
  7.         MOVEQ    #$32,D0
  8.         LEA    Header,A0
  9.         BSR    Calc_CRC
  10.         MOVE.W    D0,InfoHeaderCRC
  11.         RTS
  12.  
  13. Calculate_TR_Header_CRC
  14.         MOVEQ    #$12,D0
  15.         LEA    HeaderID1,A0
  16.         BSR    Calc_CRC
  17.         MOVE.W    D0,Hcrc_
  18.         RTS
  19.  
  20. Calculate_TR_DATA_CRC            ;PACKED
  21.         MOVE.W    Packlength,D0
  22.         LEA    TR_DATA,A0
  23.         BSR    Calc_CRC
  24.         MOVE.W    D0,Dcrc_
  25.         rts
  26.  
  27. Calc_CRC    MOVE.L    D2,-(A7)
  28.         LEA    CRC_TAB,A1
  29.         SUBQ.W    #1,D0
  30.         MOVEQ    #0,D1
  31. .l1        MOVEQ    #0,D2
  32.         MOVE.B    (A0)+,D2
  33.         EOR.B    D1,D2
  34.         ADD.W    D2,D2
  35.         LSR.W    #8,D1
  36.         MOVE.W    (A1,D2.W),D2
  37.         EOR.W    D2,D1
  38.         DBRA    D0,.l1
  39.         MOVE.W    D1,D0
  40.         MOVE.L    (A7)+,D2
  41.         RTS
  42.  
  43. CRC_TAB    dc.l    $C0C1,$C1810140,$C30103C0,$280C241,$C60106C0,$780C741
  44.     dc.l    $500C5C1,$C4810440,$CC010CC0,$D80CD41,$F00CFC1,$CE810E40
  45.     dc.l    $A00CAC1,$CB810B40,$C90109C0,$880C841,$D80118C0,$1980D941
  46.     dc.l    $1B00DBC1,$DA811A40,$1E00DEC1,$DF811F40,$DD011DC0
  47.     dc.l    $1C80DC41,$1400D4C1,$D5811540,$D70117C0,$1680D641
  48.     dc.l    $D20112C0,$1380D341,$1100D1C1,$D0811040,$F00130C0
  49.     dc.l    $3180F141,$3300F3C1,$F2813240,$3600F6C1,$F7813740
  50.     dc.l    $F50135C0,$3480F441,$3C00FCC1,$FD813D40,$FF013FC0
  51.     dc.l    $3E80FE41,$FA013AC0,$3B80FB41,$3900F9C1,$F8813840
  52.     dc.l    $2800E8C1,$E9812940,$EB012BC0,$2A80EA41,$EE012EC0
  53.     dc.l    $2F80EF41,$2D00EDC1,$EC812C40,$E40124C0,$2580E541
  54.     dc.l    $2700E7C1,$E6812640,$2200E2C1,$E3812340,$E10121C0
  55.     dc.l    $2080E041,$A00160C0,$6180A141,$6300A3C1,$A2816240
  56.     dc.l    $6600A6C1,$A7816740,$A50165C0,$6480A441,$6C00ACC1
  57.     dc.l    $AD816D40,$AF016FC0,$6E80AE41,$AA016AC0,$6B80AB41
  58.     dc.l    $6900A9C1,$A8816840,$7800B8C1,$B9817940,$BB017BC0
  59.     dc.l    $7A80BA41,$BE017EC0,$7F80BF41,$7D00BDC1,$BC817C40
  60.     dc.l    $B40174C0,$7580B541,$7700B7C1,$B6817640,$7200B2C1
  61.     dc.l    $B3817340,$B10171C0,$7080B041,$500090C1,$91815140
  62.     dc.l    $930153C0,$52809241,$960156C0,$57809741,$550095C1
  63.     dc.l    $94815440,$9C015CC0,$5D809D41,$5F009FC1,$9E815E40
  64.     dc.l    $5A009AC1,$9B815B40,$990159C0,$58809841,$880148C0
  65.     dc.l    $49808941,$4B008BC1,$8A814A40,$4E008EC1,$8F814F40
  66.     dc.l    $8D014DC0,$4C808C41,$440084C1,$85814540,$870147C0
  67.     dc.l    $46808641,$820142C0,$43808341,$410081C1,$80814040
  68.