https://github.com/virtualagc/virtualagc
Raw File
Tip revision: 52901838ab640b21ad17cecf2eff21bd2a65565b authored by Mike Stewart on 22 September 2019, 06:57:09 UTC
Luminary 173: final cleanup and removal of incompletion warnings
Tip revision: 5290183
unHOP.py
#!/usr/bin/python3
# This little script simply tries to parse an LVDC HOP
# constant, given in octal in an LVDC assembly listing, 
# into its component fields.  It simply takes inputs 
# from stdin, one HOP constant per line, and prints
# results to stdout.

import sys

for line in sys.stdin:
	hop = int(line, 8) >> 1
	#syllable0 = hop >> 13
	#syllable1 = hop & 0o17777
	#print("%05o %05o" % (syllable0, syllable1))
	#hop = (syllable1 << 13) | syllable0
	
	IM = (hop >> 25) | ((hop & 0o3) << 1)
	IS = (hop >> 2) & 0o17
	S = (hop >> 6) & 0o1
	LOC = (hop >> 7) & 0o377
	DUPDN = (hop >> 16) & 0o1
	DM = (hop >> 17) & 0o7
	DS = (hop >> 20) & 0o17
	DUPIN = (hop >> 24) & 0o1
	
	print("IM IS S LOC DM DS DUPIN DUPDN")
	line = " %o %02o %o %03o  %o %02o     %1o     %1o" % (IM, IS, S, LOC, DM, DS, DUPIN, DUPDN)
	print(line)
	
back to top