Mercurial > codedump
annotate sfv.py @ 129:8c39820da60a default tip
add decode-mixed-mode.c
this decodes macintosh mixed-mode procedure types. It currently
only supports stack-based procedures :)
| author | Paper <paper@tflc.us> |
|---|---|
| date | Sun, 19 Oct 2025 22:48:24 -0400 |
| parents | 2aa9614cb39a |
| children |
| rev | line source |
|---|---|
| 40 | 1 import sys |
| 2 import zlib | |
| 3 | |
|
33
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
4 |
| 40 | 5 def crc(filename): return "%X" % (zlib.crc32( |
| 6 open(filename, "rb").read()) & 0xFFFFFFFF) | |
| 7 | |
|
33
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
8 |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
9 try: |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
10 temp = sys.argv[1] |
| 40 | 11 except Exception: |
|
33
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
12 print("No file specified!") |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
13 sys.exit() |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
14 |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
15 f = open(sys.argv[1]) |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
16 lines = f.readlines() |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
17 f.close() |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
18 |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
19 for line in lines: |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
20 if not line[0] == ";": |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
21 crc32 = line.strip()[-8:] |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
22 name = line.strip()[:-8] |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
23 if crc(name).zfill(8) == crc32: |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
24 print(f"{name}: CRC hash match!") |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
25 else: |
|
349c9636d8ca
Create sfv.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
26 print(f"{name}: CRC hash does not match!") |
