mirror of
https://github.com/Pecusx/jataricart.git
synced 2026-05-21 14:49:37 +02:00
rearranged
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
org $2000
|
||||
|
||||
mwa #$ffff crc16.crc
|
||||
|
||||
lda #'B'
|
||||
jsr crc16.updCRC
|
||||
lda #'N'
|
||||
jsr crc16.updCRC
|
||||
lda #'E'
|
||||
jsr crc16.updCRC
|
||||
|
||||
jmp *
|
||||
*/
|
||||
|
||||
|
||||
.proc crc16
|
||||
|
||||
crc equ $80
|
||||
tmpx equ $82
|
||||
tmpy equ $83
|
||||
|
||||
|
||||
|
||||
updCRC
|
||||
stx tmpx
|
||||
sty tmpy
|
||||
EOR CRC+1 ; A contained the data
|
||||
STA CRC+1 ; XOR it into high byte
|
||||
LSR @ ; right shift A 4 bits
|
||||
LSR @ ; to make top of x^12 term
|
||||
LSR @ ; ($1...)
|
||||
LSR @
|
||||
TAX ; save it
|
||||
ASL @ ; then make top of x^5 term
|
||||
EOR CRC ; and XOR that with low byte
|
||||
STA CRC ; and save
|
||||
TXA ; restore partial term
|
||||
EOR CRC+1 ; and update high byte
|
||||
STA CRC+1 ; and save
|
||||
ASL @ ; left shift three
|
||||
ASL @ ; the rest of the terms
|
||||
ASL @ ; have feedback from x^12
|
||||
TAX ; save bottom of x^12
|
||||
ASL @ ; left shift two more
|
||||
ASL @ ; watch the carry flag
|
||||
EOR CRC+1 ; bottom of x^5 ($..2.)
|
||||
TAY ; save high byte
|
||||
TXA ; fetch temp value
|
||||
ROL @ ; bottom of x^12, middle of x^5!
|
||||
EOR CRC ; finally update low byte
|
||||
STA CRC+1 ; then swap high and low bytes
|
||||
STY CRC
|
||||
ldx tmpx
|
||||
ldy tmpy
|
||||
RTS
|
||||
.endp
|
||||
Reference in New Issue
Block a user