home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / VRAC / GT1800S.ZIP / CRC.ASM < prev    next >
Encoding:
Assembly Source File  |  1992-08-19  |  1.3 KB  |  75 lines

  1.  
  2. EXTRN            _crc_reg_lo:WORD
  3. EXTRN            _crc_reg_hi:WORD
  4.  
  5. CRC_TEXT     SEGMENT  BYTE PUBLIC 'CODE'
  6. CRC_TEXT     ENDS
  7.  
  8. _DATA    SEGMENT  WORD PUBLIC 'DATA'
  9. _DATA    ENDS
  10.  
  11. _BSS    SEGMENT  WORD PUBLIC 'BSS'
  12. _BSS    ENDS
  13.  
  14. DGROUP    GROUP    _BSS,_DATA
  15.     ASSUME  CS:CRC_TEXT,DS:DGROUP,SS:DGROUP,ES:DGROUP
  16.  
  17. _DATA           SEGMENT
  18. $T201        DD    _crc_reg_lo
  19. $T202        DD    _crc_reg_hi
  20. _DATA           ENDS
  21.  
  22. CRC_TEXT        SEGMENT
  23.  
  24.         PUBLIC    @ccitt_crc_calc
  25. @ccitt_crc_calc    PROC    FAR
  26. ;                              push    bp
  27. ;                              mov     bp,sp
  28.         push    di
  29.         les    di,$T202
  30.         mov    bx,es:[di]
  31.         mov    cx,8
  32. ;                              mov     ax,[bp+6]
  33. u1:        rcl    al,1
  34.         rcl    bx,1
  35.         jnc    u2
  36.         xor    bx,1021h
  37. u2:        loop    u1
  38.         les    di,$T202
  39.         mov    es:[di],bx
  40.         pop    di
  41. ;                              pop     bp
  42.         ret
  43. @ccitt_crc_calc    ENDP
  44.  
  45.         PUBLIC    @ccitt_crc32_calc
  46. @ccitt_crc32_calc    PROC FAR
  47. ;                              push    bp
  48. ;                              mov     bp,sp
  49.         push    di
  50.         les    di,$T201
  51.         mov    bx,es:[di]
  52.         les    di,$T202
  53.         mov    dx,es:[di]
  54.         mov    cx,8
  55. ;                              mov     ax,[bp+6]
  56. u12:        rcr    al,1
  57.         rcr    dx,1
  58.         rcr    bx,1
  59.         jnc    u22
  60.         xor    bx,8320h
  61.         xor    dx,0EDB8h
  62. u22:        loop    u12
  63.         les    di,$T201
  64.         mov    es:[di],bx
  65.         les    di,$T202
  66.         mov    es:[di],dx
  67.         pop    di
  68. ;                              pop     bp
  69.         ret
  70. @ccitt_crc32_calc    ENDP
  71.  
  72. CRC_TEXT    ENDS
  73.  
  74.         END
  75.