From d14de2068bcdafe66151e7ba926d283941882937 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Sat, 19 Jul 2025 16:28:57 +1000 Subject: [PATCH] Implement automatic net names instead of numbers (by colour and coordinates) --- 8085/Makefile | 8 ++-- 8085/net_names.txt | 82 ++++++++++++++++++++--------------------- scripts/image_nets.py | 75 +++++++++++++++++++------------------ scripts/net_channels.py | 7 +++- scripts/net_image.py | 9 ++++- scripts/net_sizes.py | 7 +++- 6 files changed, 103 insertions(+), 85 deletions(-) diff --git a/8085/Makefile b/8085/Makefile index 7273d05..6a02df0 100644 --- a/8085/Makefile +++ b/8085/Makefile @@ -32,16 +32,16 @@ sizes.txt: nets.txt ../scripts/net_sizes.py nets.txt >$@ net_gnd.png: nets.txt - ../scripts/net_image.py --adjacency nets.txt 4036 $@ ${COLOURS} + ../scripts/net_image.py --adjacency nets.txt 1_2507_0147 $@ ${COLOURS} net_vcc.png: nets.txt - ../scripts/net_image.py --adjacency nets.txt 5091 $@ ${COLOURS} + ../scripts/net_image.py --adjacency nets.txt 1_3232_6986 $@ ${COLOURS} net_phi0.png: nets.txt - ../scripts/net_image.py --adjacency nets.txt 109896 $@ ${COLOURS} + ../scripts/net_image.py --adjacency nets.txt 3_0455_4632 $@ ${COLOURS} net_phi1.png: nets.txt - ../scripts/net_image.py --adjacency nets.txt 104210 $@ ${COLOURS} + ../scripts/net_image.py --adjacency nets.txt 3_0304_3500 $@ ${COLOURS} nets.txt: \ pads.png \ diff --git a/8085/net_names.txt b/8085/net_names.txt index c3cea52..1605721 100644 --- a/8085/net_names.txt +++ b/8085/net_names.txt @@ -1,41 +1,41 @@ -0 INTR -5 SID -43 RST5.5 -48 RST6.5 -53 RST7.5 -58 TRAP -1242 AD4 -1397 INTAn -1474 AD3 -1502 AD1 -1503 AD0 -1543 AD2 -2790 AD5 -3000 SOD -3218 AD6 -3447 RESET_OUT -3521 AD7 -4036 GND -4081 X2 -4509 X1 -4644 SUBSTRATE -5091 VCC -5341 A8 -5496 A9 -5574 HOLD -5875 A10 -6058 HLDA -6313 A11 -6492 CLK_OUT -6896 RESET_INn -6904 A15 -6908 A13 -6916 A14 -7005 WRn -7006 RDn -7007 IO_Mn -7290 S1 -7297 A12 -7336 S0 -7338 ALE -7673 READY +1_0199_5453 INTR +1_0199_6992 SID +1_0204_5731 RST5.5 +1_0204_6012 RST6.5 +1_0204_6362 RST7.5 +1_0204_6645 TRAP +1_0239_0213 AD4 +1_0245_2969 INTAn +1_0253_1293 AD3 +1_0256_2205 AD1 +1_0256_2538 AD0 +1_0259_1640 AD2 +1_1146_0229 AD5 +1_1550_6978 SOD +1_1702_0327 AD6 +1_2033_6937 RESET_OUT +1_2046_0229 AD7 +1_2507_0147 GND +1_2517_7052 X2 +1_2839_7059 X1 +1_2946_0292 SUBSTRATE +1_3232_6986 VCC +1_3322_0333 A8 +1_3595_0329 A9 +1_3619_6926 HOLD +1_4049_0323 A10 +1_4090_6927 HLDA +1_4332_0324 A11 +1_4533_6963 CLK_OUT +1_5029_6922 RESET_INn +1_5039_2089 A15 +1_5041_1078 A13 +1_5042_1809 A14 +1_5049_3466 WRn +1_5049_3953 RDn +1_5049_4941 IO_Mn +1_5063_4416 S1 +1_5064_0271 A12 +1_5065_2576 S0 +1_5065_3034 ALE +1_5073_5176 READY diff --git a/scripts/image_nets.py b/scripts/image_nets.py index 6841568..1b4577d 100755 --- a/scripts/image_nets.py +++ b/scripts/image_nets.py @@ -94,33 +94,33 @@ while len(ptrs) <= len(images) * ys: reports = [] def merge(item0, item1): - net0 = item0 - i = items[net0][0] - while i != net0: - net0 = i - i = items[net0][0] - - net1 = item1 - i = items[net1][0] - while i != net1: - net1 = i - i = items[net1][0] - - net = min(net0, net1) - items[net0][0] = net - items[net1][0] = net - - net0 = item0 - while net0 != net: - i = items[net0][0] - items[net0][0] = net - net0 = i - - net1 = item1 - while net1 != net: - i = items[net1][0] - items[net1][0] = net - net1 = i + net_item0 = item0 + i = items[net_item0][0] + while i != net_item0: + net_item0 = i + i = items[net_item0][0] + + net_item1 = item1 + i = items[net_item1][0] + while i != net_item1: + net_item1 = i + i = items[net_item1][0] + + net_item = min(net_item0, net_item1) + items[net_item0][0] = net_item + items[net_item1][0] = net_item + + net_item0 = item0 + while net_item0 != net_item: + i = items[net_item0][0] + items[net_item0][0] = net_item + net_item0 = i + + net_item1 = item1 + while net_item1 != net_item: + i = items[net_item1][0] + items[net_item1][0] = net_item + net_item1 = i def end_to_end(p, q): if q > p + 1: i = p @@ -218,20 +218,23 @@ with open(nets_txt, 'w') as fout: print(colours[-1], ys, xs, file = fout) print(len(items), file = fout) for i in range(len(items)): - net, colour, y, x0, x1 = items[i] + net_item, colour0, y0, x0, x1 = items[i] - j = items[net][0] - while j != net: - net = j - j = items[net][0] + j = items[net_item][0] + while j != net_item: + net_item = j + j = items[net_item][0] j = i - while j != net: + while j != net_item: k = items[j][0] - items[j][0] = net + items[j][0] = net_item j = k - - print(net, colour, y, x0, x1, file = fout) + + _, colour1, y1, x2, _ = items[net_item] + net = f'{colour1:d}_{y1:04d}_{x2:04d}' + + print(net, colour0, y0, x0, x1, file = fout) print(len(reports), file = fout) for item0, item1 in reports: diff --git a/scripts/net_channels.py b/scripts/net_channels.py index 3a00b44..659c699 100755 --- a/scripts/net_channels.py +++ b/scripts/net_channels.py @@ -41,7 +41,12 @@ with open(nets_txt) as fin: for i in range(n_items): line = fin.readline() assert len(line) - net, colour, y, x0, x1 = [int(i) for i in line.split()] + fields = line.split() + net = fields[0] + colour = int(fields[1]) + y = int(fields[2]) + x0 = int(fields[3]) + x1 = int(fields[4]) if colour == channel_colour: if net not in channel_items: channel_items[net] = ([], []) # items, reports (report may be swapped) diff --git a/scripts/net_image.py b/scripts/net_image.py index 4b0a0c6..e450391 100755 --- a/scripts/net_image.py +++ b/scripts/net_image.py @@ -30,7 +30,7 @@ if len(sys.argv) < 4: ) sys.exit(1) nets_txt = sys.argv[1] -net = int(sys.argv[2]) +net = sys.argv[2] image_out = sys.argv[3] colours = ( numpy.array([int(i) for i in sys.argv[4].split(',')], numpy.uint8) @@ -52,7 +52,12 @@ with open(nets_txt) as fin: for i in range(n_items): line = fin.readline() assert len(line) - net1, colour, y, x0, x1 = [int(i) for i in line.split()] + fields = line.split() + net1 = fields[0] + colour = int(fields[1]) + y = int(fields[2]) + x0 = int(fields[3]) + x1 = int(fields[4]) items.append((net1, colour, y, x0, x1)) if net1 == net: image[y, x0:x1] = colour diff --git a/scripts/net_sizes.py b/scripts/net_sizes.py index 194b75b..b5af893 100755 --- a/scripts/net_sizes.py +++ b/scripts/net_sizes.py @@ -22,7 +22,12 @@ with open(nets_txt) as fin: for i in range(n_items): line = fin.readline() assert len(line) - net, colour, y, x0, x1 = [int(i) for i in line.split()] + fields = line.split() + net = fields[0] + colour = int(fields[1]) + y = int(fields[2]) + x0 = int(fields[3]) + x1 = int(fields[4]) if net not in net_sizes: net_sizes[net] = 0 net_sizes[net] += x1 - x0 -- 2.34.1