Advertisement
vovkakorben

Untitled

Feb 19th, 2022
1,798
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.       org $2000
  3.  
  4. crc32_table:
  5.     dc.l    $00000000, $77073096, $EE0E612C, $990951BA
  6.     dc.l    $076DC419, $706AF48F, $E963A535, $9E6495A3
  7.     dc.l    $0EDB8832, $79DCB8A4, $E0D5E91E, $97D2D988
  8.     dc.l    $09B64C2B, $7EB17CBD, $E7B82D07, $90BF1D91
  9.     dc.l    $1DB71064, $6AB020F2, $F3B97148, $84BE41DE
  10.     dc.l    $1ADAD47D, $6DDDE4EB, $F4D4B551, $83D385C7
  11.     dc.l    $136C9856, $646BA8C0, $FD62F97A, $8A65C9EC
  12.     dc.l    $14015C4F, $63066CD9, $FA0F3D63, $8D080DF5
  13.     dc.l    $3B6E20C8, $4C69105E, $D56041E4, $A2677172
  14.     dc.l    $3C03E4D1, $4B04D447, $D20D85FD, $A50AB56B
  15.     dc.l    $35B5A8FA, $42B2986C, $DBBBC9D6, $ACBCF940
  16.     dc.l    $32D86CE3, $45DF5C75, $DCD60DCF, $ABD13D59
  17.     dc.l    $26D930AC, $51DE003A, $C8D75180, $BFD06116
  18.     dc.l    $21B4F4B5, $56B3C423, $CFBA9599, $B8BDA50F
  19.     dc.l    $2802B89E, $5F058808, $C60CD9B2, $B10BE924
  20.     dc.l    $2F6F7C87, $58684C11, $C1611DAB, $B6662D3D
  21.     dc.l    $76DC4190, $01DB7106, $98D220BC, $EFD5102A
  22.     dc.l    $71B18589, $06B6B51F, $9FBFE4A5, $E8B8D433
  23.     dc.l    $7807C9A2, $0F00F934, $9609A88E, $E10E9818
  24.     dc.l    $7F6A0DBB, $086D3D2D, $91646C97, $E6635C01
  25.     dc.l    $6B6B51F4, $1C6C6162, $856530D8, $F262004E
  26.     dc.l    $6C0695ED, $1B01A57B, $8208F4C1, $F50FC457
  27.     dc.l    $65B0D9C6, $12B7E950, $8BBEB8EA, $FCB9887C
  28.     dc.l    $62DD1DDF, $15DA2D49, $8CD37CF3, $FBD44C65
  29.     dc.l    $4DB26158, $3AB551CE, $A3BC0074, $D4BB30E2
  30.     dc.l    $4ADFA541, $3DD895D7, $A4D1C46D, $D3D6F4FB
  31.     dc.l    $4369E96A, $346ED9FC, $AD678846, $DA60B8D0
  32.     dc.l    $44042D73, $33031DE5, $AA0A4C5F, $DD0D7CC9
  33.     dc.l    $5005713C, $270241AA, $BE0B1010, $C90C2086
  34.     dc.l    $5768B525, $206F85B3, $B966D409, $CE61E49F
  35.     dc.l    $5EDEF90E, $29D9C998, $B0D09822, $C7D7A8B4
  36.     dc.l    $59B33D17, $2EB40D81, $B7BD5C3B, $C0BA6CAD
  37.     dc.l    $EDB88320, $9ABFB3B6, $03B6E20C, $74B1D29A
  38.     dc.l    $EAD54739, $9DD277AF, $04DB2615, $73DC1683
  39.     dc.l    $E3630B12, $94643B84, $0D6D6A3E, $7A6A5AA8
  40.     dc.l    $E40ECF0B, $9309FF9D, $0A00AE27, $7D079EB1
  41.     dc.l    $F00F9344, $8708A3D2, $1E01F268, $6906C2FE
  42.     dc.l    $F762575D, $806567CB, $196C3671, $6E6B06E7
  43.     dc.l    $FED41B76, $89D32BE0, $10DA7A5A, $67DD4ACC
  44.     dc.l    $F9B9DF6F, $8EBEEFF9, $17B7BE43, $60B08ED5
  45.     dc.l    $D6D6A3E8, $A1D1937E, $38D8C2C4, $4FDFF252
  46.     dc.l    $D1BB67F1, $A6BC5767, $3FB506DD, $48B2364B
  47.     dc.l    $D80D2BDA, $AF0A1B4C, $36034AF6, $41047A60
  48.     dc.l    $DF60EFC3, $A867DF55, $316E8EEF, $4669BE79
  49.     dc.l    $CB61B38C, $BC66831A, $256FD2A0, $5268E236
  50.     dc.l    $CC0C7795, $BB0B4703, $220216B9, $5505262F
  51.     dc.l    $C5BA3BBE, $B2BD0B28, $2BB45A92, $5CB36A04
  52.     dc.l    $C2D7FFA7, $B5D0CF31, $2CD99E8B, $5BDEAE1D
  53.     dc.l    $9B64C2B0, $EC63F226, $756AA39C, $026D930A
  54.     dc.l    $9C0906A9, $EB0E363F, $72076785, $05005713
  55.     dc.l    $95BF4A82, $E2B87A14, $7BB12BAE, $0CB61B38
  56.     dc.l    $92D28E9B, $E5D5BE0D, $7CDCEFB7, $0BDBDF21
  57.     dc.l    $86D3D2D4, $F1D4E242, $68DDB3F8, $1FDA836E
  58.     dc.l    $81BE16CD, $F6B9265B, $6FB077E1, $18B74777
  59.     dc.l    $88085AE6, $FF0F6A70, $66063BCA, $11010B5C
  60.     dc.l    $8F659EFF, $F862AE69, $616BFFD3, $166CCF45
  61.     dc.l    $A00AE278, $D70DD2EE, $4E048354, $3903B3C2
  62.     dc.l    $A7672661, $D06016F7, $4969474D, $3E6E77DB
  63.     dc.l    $AED16A4A, $D9D65ADC, $40DF0B66, $37D83BF0
  64.     dc.l    $A9BCAE53, $DEBB9EC5, $47B2CF7F, $30B5FFE9
  65.     dc.l    $BDBDF21C, $CABAC28A, $53B39330, $24B4A3A6
  66.     dc.l    $BAD03605, $CDD70693, $54DE5729, $23D967BF
  67.     dc.l    $B3667A2E, $C4614AB8, $5D681B02, $2A6F2B94
  68.     dc.l    $B40BBE37, $C30C8EA1, $5A05DF1B, $2D02EF8D
  69.       org $2600
  70. patterns:
  71.     dc.l    $00000000,$000000ff,$0000ffff,$ffffffff
  72.     dc.l    $00000080,$00008000,$80000000
  73. pattern_count     equ   *-patterns
  74.  
  75.       org $2800
  76. opcodes:    abcd.b  d1,d0
  77.  
  78.         add.b   d1,d0
  79.         add.w   d1,d0
  80.         add.l   d1,d0
  81.  
  82.         addx.b  d1,d0
  83.         addx.w  d1,d0
  84.         addx.l  d1,d0
  85.  
  86.         and.b   d1,d0
  87.         and.w   d1,d0
  88.         and.l   d1,d0
  89.  
  90.         asl.b   d1,d0
  91.         asl.w   d1,d0
  92.         asl.l   d1,d0
  93.  
  94.         asr.b   d1,d0
  95.         asr.w   d1,d0
  96.         asr.l   d1,d0
  97.  
  98.         clr.b   d0
  99.         clr.w   d0
  100.         clr.l   d0
  101.  
  102.         cmp.b   d1,d0
  103.         cmp.w   d1,d0
  104.         cmp.l   d1,d0
  105.  
  106.         eor.b   d1,d0
  107.         eor.w   d1,d0
  108.         eor.l   d1,d0
  109.  
  110.         exg.l   d1,d0
  111.  
  112.         ext.w   d0
  113.         ext.l   d0
  114.  
  115.         lsl.b   d1,d0
  116.         lsl.w   d1,d0
  117.         lsl.l   d1,d0
  118.  
  119.         lsr.b   d1,d0
  120.         lsr.w   d1,d0
  121.         lsr.l   d1,d0
  122.  
  123.         muls.w  d1,d0
  124.         mulu.w  d1,d0
  125.  
  126.         nbcd.b  d0
  127.  
  128.         neg.b   d0
  129.         neg.w   d0
  130.         neg.l   d0
  131.  
  132.         negx.b  d0
  133.         negx.w  d0
  134.         negx.l  d0
  135.  
  136.         or.b    d1,d0
  137.         or.w    d1,d0
  138.         or.l    d1,d0
  139.  
  140.         rol.b   d1,d0
  141.         rol.w   d1,d0
  142.         rol.l   d1,d0
  143.  
  144.         ror.b   d1,d0
  145.         ror.w   d1,d0
  146.         ror.l   d1,d0
  147.  
  148.         roxl.b  d1,d0
  149.         roxl.w  d1,d0
  150.         roxl.l  d1,d0
  151.  
  152.         roxr.b  d1,d0
  153.         roxr.w  d1,d0
  154.         roxr.l  d1,d0
  155.  
  156.         sbcd.b  d1,d0
  157.  
  158.         sub.b   d1,d0
  159.         sub.w   d1,d0
  160.         sub.l   d1,d0
  161.  
  162.         subx.b  d1,d0
  163.         subx.w  d1,d0
  164.         subx.l  d1,d0
  165.  
  166.         tas.b   d0
  167.  
  168.         tst.b   d0
  169.         tst.w   d0
  170.         tst.l   d0
  171. opcodes_count     equ   *-opcodes
  172.         divs.w  d1,d0
  173.         divu.w  d1,d0
  174.  
  175.  
  176.       org $3000
  177. crc32   dc.l    0
  178.  
  179.     org $4000
  180. START  
  181.         move.l  #opcodes_count,d4
  182.         lsr.l   #2,d4
  183.         lea opcodes,a4
  184.         lea opcode_place,a0
  185.         bsr init_crc32
  186.  
  187. next_opcode:
  188.         move.w  (a4),d0
  189.         move.w  d0,(a0)
  190.        
  191.  
  192.         move.l  #pattern_count,d2
  193.         lsr.l   #2,d2
  194.         lea patterns,a2
  195.        
  196. next_pattern0:
  197.         move.l  #pattern_count,d3
  198.         lsr.l   #2,d3
  199.         lea patterns,a3
  200. next_pattern1:
  201.         clr.l   d7
  202.  
  203.  
  204.  
  205. do_test:
  206.         move.l  (a2),d0
  207.         move.l  (a3),d1
  208.         move.w  d7,ccr
  209. opcode_place:   dc.w    0
  210.  
  211. * store ccr and d0 to crc32
  212.         move    sr,d1
  213.         andi    #$ff,d1
  214.         bsr add_crc32
  215.         move.l  d1,d0
  216.         bsr add_crc32      
  217. * next ccr
  218.         addi.l  #1,d7
  219.         btst    #5,d7
  220.         beq do_test
  221.  
  222. * next pattern1
  223.         adda.l  #4,a3
  224.         dbra    d3,next_pattern1
  225.  
  226. * next pattern0
  227.         adda.l  #4,a2
  228.         dbra    d2,next_pattern0
  229.  
  230. * next opcode
  231.         adda.l  #4,a4
  232.         dbra    d4,next_opcode
  233.  
  234.  
  235. *do next opcode
  236.         adda.l  #4,a4
  237.         dbra    d4,next_opcode
  238.  
  239.     SIMHALT
  240. init_crc32  lea crc32,a6
  241.         lea crc32_table,a5
  242.         move.l  #$FFFFFFFF,(a6)
  243.         rts
  244.        
  245. *in d0 input long      
  246. add_crc32:              move.l  (crc32),d6          * d1 = crc
  247.         eor.b   d6,d0           * d0 = crc ^ input
  248.         and.l   #$000000FF,d0       * d = & 0xFF
  249.         lsl.l   #2,d0           * d * 4 (table item size)
  250.         lea crc32_table,a5      * get Crc32Table addr
  251.         add.l   d0,a5           * add displace
  252.         move.l  (a5),d0         * in d0 - value from table
  253.  
  254.         lsr.l   #8,d6
  255.         eor.l   d6,d0
  256.         move.l  d0,(crc32)
  257.         rts
  258.  
  259. end_crc32:  move.l  (a6),d0
  260.         eori.l  #$FFFFFFFF,d0
  261.         rts
  262.       END   START
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272. *~Font name~Consolas~
  273. *~Font size~12~
  274. *~Tab type~1~
  275. *~Tab size~6~
  276.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement