Subversion Repositories pentevo

Rev

Rev 277 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;
  2. ;--------------------------------------
  3. ;out:   DATA == п.случайное число
  4. RANDOM: PUSHW
  5.         LDS     DATA,RND+0
  6.         LDS     WL,RND+1
  7.         LDS     WH,RND+2
  8.         LSL     DATA
  9.         ROL     WL
  10.         ROL     WH
  11.         BRCC    RAND1
  12.         EOR     DATA,ONE
  13. RAND1:  SBRC    WH,7
  14.         EOR     DATA,ONE
  15.         SBRC    WH,6
  16.         EOR     DATA,ONE
  17.         SBRC    WH,1
  18.         EOR     DATA,ONE
  19.         STS     RND+0,DATA
  20.         STS     RND+1,WL
  21.         STS     RND+2,WH
  22.         POPW
  23.         RET
  24. ;
  25. ;--------------------------------------
  26. ;
  27. CLRPINS:LDIZ    $0020
  28. CLRPIN1:ST      Z+,NULL
  29.         CPI     ZL,$3C
  30.         BRNE    CLRPIN1
  31.         LDI     ZL,$61
  32. CLRPIN2:ST      Z+,NULL
  33.         CPI     ZL,$66
  34.         BRNE    CLRPIN2
  35.         RET
  36. ;
  37. ;--------------------------------------
  38. ;in:    W == address
  39. ;out:   DATA == data
  40. EEPROM_READ:
  41.         SBIC    EECR,EEWE
  42.         RJMP    EEPROM_READ
  43.         OUT     EEARH,WH
  44.         OUT     EEARL,WL
  45.         SBI     EECR,EERE
  46.         IN      DATA,EEDR
  47.         RET
  48. ;
  49. ;--------------------------------------
  50. ;in:    W == address
  51. ;       DATA == data
  52. EEPROM_WRITE:
  53.         MOV     TEMP,DATA
  54.         RCALL   EEPROM_READ
  55.         CP      TEMP,DATA
  56.         BREQ    WREE9
  57.         OUT     EEARH,WH
  58.         OUT     EEARL,WL
  59.         OUT     EEDR,TEMP
  60.         SBI     EECR,EEMWE
  61.         SBI     EECR,EEWE
  62. WREE9:  RET
  63. ;
  64. ;--------------------------------------
  65. ;
  66. CRC32_INIT:
  67.         STD     Y+0,FF
  68.         STD     Y+1,FF
  69.         STD     Y+2,FF
  70.         STD     Y+3,FF
  71.         RET
  72. ;
  73. CRC32_UPDATE:
  74.         PUSHZ
  75.         LDD     TEMP,Y+0
  76.         EOR     DATA,TEMP
  77.         CLR     TEMP
  78.         LSL     DATA
  79.         ROL     TEMP
  80.         LSL     DATA
  81.         ROL     TEMP
  82.         LDIZ    TAB32*2 ;в младших 64K
  83.         ADD     ZL,DATA
  84.         ADC     ZH,TEMP
  85.         LPM     DATA,Z+
  86.         LDD     TEMP,Y+1
  87.         EOR     DATA,TEMP
  88.         STD     Y+0,DATA
  89.         LPM     DATA,Z+
  90.         LDD     TEMP,Y+2
  91.         EOR     DATA,TEMP
  92.         STD     Y+1,DATA
  93.         LPM     DATA,Z+
  94.         LDD     TEMP,Y+3
  95.         EOR     DATA,TEMP
  96.         STD     Y+2,DATA
  97.         LPM     DATA,Z
  98.         STD     Y+3,DATA
  99.         POPZ
  100.         RET
  101. ;
  102. RAM_CRC32:
  103.         RCALL   CRC32_INIT
  104.         RCALL   RAM_CRC32_UPDATE
  105. ;
  106. CRC32_RELEASE:
  107.         LDD     R0,Y+0
  108.         COM     R0
  109.         STD     Y+0,R0
  110.         LDD     R1,Y+1
  111.         COM     R1
  112.         STD     Y+1,R1
  113.         LDD     R2,Y+2
  114.         COM     R2
  115.         STD     Y+2,R2
  116.         LDD     R3,Y+3
  117.         COM     R3
  118.         STD     Y+3,R3
  119.         RET
  120. ;
  121. RAM_CRC32_UPDATE:
  122.         LD      DATA,Z+
  123.         RCALL   CRC32_UPDATE
  124.         SBIW    XL,1
  125.         BRNE    RAM_CRC32_UPDATE
  126.         RET
  127. ;
  128. TAB32:  .DW     $0000,$0000,$3096,$7707,$612C,$EE0E,$51BA,$9909
  129.         .DW     $C419,$076D,$F48F,$706A,$A535,$E963,$95A3,$9E64
  130.         .DW     $8832,$0EDB,$B8A4,$79DC,$E91E,$E0D5,$D988,$97D2
  131.         .DW     $4C2B,$09B6,$7CBD,$7EB1,$2D07,$E7B8,$1D91,$90BF
  132.         .DW     $1064,$1DB7,$20F2,$6AB0,$7148,$F3B9,$41DE,$84BE
  133.         .DW     $D47D,$1ADA,$E4EB,$6DDD,$B551,$F4D4,$85C7,$83D3
  134.         .DW     $9856,$136C,$A8C0,$646B,$F97A,$FD62,$C9EC,$8A65
  135.         .DW     $5C4F,$1401,$6CD9,$6306,$3D63,$FA0F,$0DF5,$8D08
  136.         .DW     $20C8,$3B6E,$105E,$4C69,$41E4,$D560,$7172,$A267
  137.         .DW     $E4D1,$3C03,$D447,$4B04,$85FD,$D20D,$B56B,$A50A
  138.         .DW     $A8FA,$35B5,$986C,$42B2,$C9D6,$DBBB,$F940,$ACBC
  139.         .DW     $6CE3,$32D8,$5C75,$45DF,$0DCF,$DCD6,$3D59,$ABD1
  140.         .DW     $30AC,$26D9,$003A,$51DE,$5180,$C8D7,$6116,$BFD0
  141.         .DW     $F4B5,$21B4,$C423,$56B3,$9599,$CFBA,$A50F,$B8BD
  142.         .DW     $B89E,$2802,$8808,$5F05,$D9B2,$C60C,$E924,$B10B
  143.         .DW     $7C87,$2F6F,$4C11,$5868,$1DAB,$C161,$2D3D,$B666
  144.         .DW     $4190,$76DC,$7106,$01DB,$20BC,$98D2,$102A,$EFD5
  145.         .DW     $8589,$71B1,$B51F,$06B6,$E4A5,$9FBF,$D433,$E8B8
  146.         .DW     $C9A2,$7807,$F934,$0F00,$A88E,$9609,$9818,$E10E
  147.         .DW     $0DBB,$7F6A,$3D2D,$086D,$6C97,$9164,$5C01,$E663
  148.         .DW     $51F4,$6B6B,$6162,$1C6C,$30D8,$8565,$004E,$F262
  149.         .DW     $95ED,$6C06,$A57B,$1B01,$F4C1,$8208,$C457,$F50F
  150.         .DW     $D9C6,$65B0,$E950,$12B7,$B8EA,$8BBE,$887C,$FCB9
  151.         .DW     $1DDF,$62DD,$2D49,$15DA,$7CF3,$8CD3,$4C65,$FBD4
  152.         .DW     $6158,$4DB2,$51CE,$3AB5,$0074,$A3BC,$30E2,$D4BB
  153.         .DW     $A541,$4ADF,$95D7,$3DD8,$C46D,$A4D1,$F4FB,$D3D6
  154.         .DW     $E96A,$4369,$D9FC,$346E,$8846,$AD67,$B8D0,$DA60
  155.         .DW     $2D73,$4404,$1DE5,$3303,$4C5F,$AA0A,$7CC9,$DD0D
  156.         .DW     $713C,$5005,$41AA,$2702,$1010,$BE0B,$2086,$C90C
  157.         .DW     $B525,$5768,$85B3,$206F,$D409,$B966,$E49F,$CE61
  158.         .DW     $F90E,$5EDE,$C998,$29D9,$9822,$B0D0,$A8B4,$C7D7
  159.         .DW     $3D17,$59B3,$0D81,$2EB4,$5C3B,$B7BD,$6CAD,$C0BA
  160.         .DW     $8320,$EDB8,$B3B6,$9ABF,$E20C,$03B6,$D29A,$74B1
  161.         .DW     $4739,$EAD5,$77AF,$9DD2,$2615,$04DB,$1683,$73DC
  162.         .DW     $0B12,$E363,$3B84,$9464,$6A3E,$0D6D,$5AA8,$7A6A
  163.         .DW     $CF0B,$E40E,$FF9D,$9309,$AE27,$0A00,$9EB1,$7D07
  164.         .DW     $9344,$F00F,$A3D2,$8708,$F268,$1E01,$C2FE,$6906
  165.         .DW     $575D,$F762,$67CB,$8065,$3671,$196C,$06E7,$6E6B
  166.         .DW     $1B76,$FED4,$2BE0,$89D3,$7A5A,$10DA,$4ACC,$67DD
  167.         .DW     $DF6F,$F9B9,$EFF9,$8EBE,$BE43,$17B7,$8ED5,$60B0
  168.         .DW     $A3E8,$D6D6,$937E,$A1D1,$C2C4,$38D8,$F252,$4FDF
  169.         .DW     $67F1,$D1BB,$5767,$A6BC,$06DD,$3FB5,$364B,$48B2
  170.         .DW     $2BDA,$D80D,$1B4C,$AF0A,$4AF6,$3603,$7A60,$4104
  171.         .DW     $EFC3,$DF60,$DF55,$A867,$8EEF,$316E,$BE79,$4669
  172.         .DW     $B38C,$CB61,$831A,$BC66,$D2A0,$256F,$E236,$5268
  173.         .DW     $7795,$CC0C,$4703,$BB0B,$16B9,$2202,$262F,$5505
  174.         .DW     $3BBE,$C5BA,$0B28,$B2BD,$5A92,$2BB4,$6A04,$5CB3
  175.         .DW     $FFA7,$C2D7,$CF31,$B5D0,$9E8B,$2CD9,$AE1D,$5BDE
  176.         .DW     $C2B0,$9B64,$F226,$EC63,$A39C,$756A,$930A,$026D
  177.         .DW     $06A9,$9C09,$363F,$EB0E,$6785,$7207,$5713,$0500
  178.         .DW     $4A82,$95BF,$7A14,$E2B8,$2BAE,$7BB1,$1B38,$0CB6
  179.         .DW     $8E9B,$92D2,$BE0D,$E5D5,$EFB7,$7CDC,$DF21,$0BDB
  180.         .DW     $D2D4,$86D3,$E242,$F1D4,$B3F8,$68DD,$836E,$1FDA
  181.         .DW     $16CD,$81BE,$265B,$F6B9,$77E1,$6FB0,$4777,$18B7
  182.         .DW     $5AE6,$8808,$6A70,$FF0F,$3BCA,$6606,$0B5C,$1101
  183.         .DW     $9EFF,$8F65,$AE69,$F862,$FFD3,$616B,$CF45,$166C
  184.         .DW     $E278,$A00A,$D2EE,$D70D,$8354,$4E04,$B3C2,$3903
  185.         .DW     $2661,$A767,$16F7,$D060,$474D,$4969,$77DB,$3E6E
  186.         .DW     $6A4A,$AED1,$5ADC,$D9D6,$0B66,$40DF,$3BF0,$37D8
  187.         .DW     $AE53,$A9BC,$9EC5,$DEBB,$CF7F,$47B2,$FFE9,$30B5
  188.         .DW     $F21C,$BDBD,$C28A,$CABA,$9330,$53B3,$A3A6,$24B4
  189.         .DW     $3605,$BAD0,$0693,$CDD7,$5729,$54DE,$67BF,$23D9
  190.         .DW     $7A2E,$B366,$4AB8,$C461,$1B02,$5D68,$2B94,$2A6F
  191.         .DW     $BE37,$B40B,$8EA1,$C30C,$DF1B,$5A05,$EF8D,$2D02
  192. ;
  193. ;--------------------------------------
  194. ;
  195.