Initial version

This commit is contained in:
Kris Sekula 2020-03-21 14:09:37 -07:00 committed by GitHub
parent 78b46f6517
commit 0c90e87113
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 74 additions and 0 deletions

74
ERMAX100_v1.0.py Normal file
View File

@ -0,0 +1,74 @@
import argparse
import serial,os
parser = argparse.ArgumentParser(usage='ERMAX100.py <EPROM> <file> <port>', description='This script sends data to ERMAX100 EPROM Emulator over serial port, requires python 3.8 and pyserial "pip install pyserial"')
parser.add_argument('eprom_arg', metavar='EPROM', type=str, nargs=1, help='Specify EPROM Type: 2716..27512')
parser.add_argument('file_arg', metavar='file', type=str, nargs=1, help='Binary data file')
parser.add_argument('port_arg', metavar='port', type=str, nargs=1, help='Serial port to use, eg COM1 in Windows or "/dev/ttyUSB0" in Linux')
# ver 1.0 kris@mygeekyhobby.com
args = parser.parse_args()
try:
binary_data = open(args.file_arg[0], 'rb').read()
except:
print("Failed to open the file")
exit()
if args.eprom_arg[0] == "2716":
mem_type = b'\x01'
if len(binary_data) > 2048:
print("File size is {} is large for this type of memory".format(len(binary_data)))
exit()
elif args.eprom_arg[0] == "2732":
mem_type = b'\x02'
if len(binary_data) > 4096:
print("File size is {} is large for this type of memory".format(len(binary_data)))
exit()
elif args.eprom_arg[0] == "2764":
mem_type = b'\x03'
if len(binary_data) > 8192:
print("File size is {} is large for this type of memory".format(len(binary_data)))
exit()
elif args.eprom_arg[0] == "27128":
mem_type = b'\x04'
if len(binary_data) > 16384:
print("File size is {} is large for this type of memory".format(len(binary_data)))
exit()
elif args.eprom_arg[0] == "27256":
mem_type = b'\x05'
if len(binary_data) > 32768:
print("File size is {} is large for this type of memory".format(len(binary_data)))
exit()
elif args.eprom_arg[0] == "27512":
mem_type = b'\x06'
if len(binary_data) > 65536:
print("File size is {} is large for this type of memory".format(len(binary_data)))
exit()
else:
print("Unsupported memory type: {}".format(args.eprom_arg[0]))
exit()
try:
ser = serial.Serial(args.port_arg[0],57600)
except:
print("Failed to open port, verify port name")
exit()
print("Sending: {} bytes over serial port {}, emulating: {} EPROM".format(str(len(binary_data)),args.port_arg[0],args.eprom_arg[0]))
sync_byte = b'\x55'
is_one = b'\x01'
out_data = sync_byte + mem_type + is_one + binary_data
try:
ser.write(out_data)
print("Sent: OK!")
except:
Print("Failed to send")
ser.close()
exit()