utils.go 377 B

123456789101112131415161718192021222324
  1. package mz700_tape_wav_gen
  2. func GetSingleByteChecksum(b byte) uint16 {
  3. var num byte = 0
  4. /*
  5. v := b
  6. for v > 0 {
  7. v &= v - 1
  8. num++
  9. }
  10. */
  11. for i := 0; i < 8; i++ {
  12. num += (b >> i) & 0x01
  13. }
  14. return uint16(num)
  15. }
  16. func GetByteSliceChecksum(bs []byte) uint16 {
  17. var chksum uint16 = 0
  18. for _, sb := range bs {
  19. chksum += GetSingleByteChecksum(sb)
  20. }
  21. return chksum
  22. }