Getting warm, in more ways than one

So in my last entry I mentioned that the ICs LS245, 341-0170-A, 74166, 6502 and 341-0150 were getting warm.  This wasnt the full list, the MMU, IOU and ROMs were also feeling a bit above room temperature, but it was subtle.  After looking at the schematic however, I think I now have a pretty good idea of what's going on.  The LS 245 is getting very hot.  It is an octal bus trancever that connects 74166 to the databus, based on it's inputs from the HAL and the MMU.  The 74166 is also getting very hot and it is controlled by the MMU and the IOU.  The ROMs and the CPU are getting hot because the data bus is a mess, with diferent ICs being allowed to write to it at the same time due to the incorrect signals from the MMU and the IOU.  All of this seems to be caused by the HAL (341-0170-A) which I am guessing has failed.  Unfortunately, the HAL is not an off the shelf part and getting a replacement doesn't seem very likely.  Having said that, I replace the ROMs (one had definitely failed) reletively easily by building an EPROM programmer with an arduino and downloading the ROM data from the internet.  I have found some ICs (GAL 16v8) that should be programmable to replace the HAL, however the manufacturer does not disclose the method of programming, preferring instead to sell their own programmers.  So a programmer is on it's way.  I have found the data that needs to be programmed on the net so hopefully it shouldn't be too difficult to program the GAL to replace the HAL (famous last words).  One concern I do have is to do with speed.  The HAL seems to be responsible for taking a 14MHz clock input and generating all the different clocks needed throughout the computer.  The GALs I have ordered however are likely to be faster devices with a lower propogation delay so they might not generate the required delays to some of the outputs.  I guess I'll just have to keep my fingers crossed.