6502-OS/util/parity.h65

36 lines
995 B
Plaintext
Raw Normal View History

2023-12-31 14:56:24 +01:00
.ifndef INCLUDE_PARITY
INCLUDE_PARITY = 1
.import count_set_bits
;;********************************************************************************
;; @macro Calculate even parity
2024-08-08 20:39:25 +02:00
;; @modifies A, X, Y
2023-12-31 14:56:24 +01:00
;; @returns A: 0 - even number of set bits, 1 - uneven number of set bits
;; @returns Y: The number of set bits in the byte
;;********************************************************************************
.macro CalculateEvenParity
jsr count_set_bits
tya
and #1
.endmacro
;;********************************************************************************
;; @macro Calculate odd parity
;; @details
;; Count the number of set bits in Y.
;;
2024-08-08 20:39:25 +02:00
;; @modifies A, X, Y
2023-12-31 14:56:24 +01:00
;; @returns A: 1 - even number of set bits, 0 - uneven number of set bits
;; @returns Y: The number of set bits in the byte
;;********************************************************************************
.macro CalculateOddParity
jsr count_set_bits
tya
and #1
eor #1
.endmacro
.endif ; guard