#! /usr/bin/env python3
import argparse
import sys


def main() -> int:
    # Handle program arguments
    ap = argparse.ArgumentParser(
        prog="aprs-passcode",
        description="Calculate the passcode used for APRS-IS authentication",
    )
    ap.add_argument("callsign", help="APRS callsign")
    args = ap.parse_args()

    # Perform passcode calculation
    callsign = args.callsign.upper().split("-")[0]
    code = 0x73E2
    for i, char in enumerate(callsign):
        code ^= ord(char) << (8 if not i % 2 else 0)
    passcode = code & 0x7FFF

    print(passcode)

    return 0


if __name__ == "__main__":
    sys.exit(main())