Re: Reading PALs
On 2/21/2017 1:48 PM, Jecel Assumpcao Jr. wrote: Don't forget that 16L8 means 8 logic outputs and 16 inputs even though at first glance there only seems to be 8 inputs. That is because every output is also an input and can possibly be just an input by forcing the three state option. One of the L8s uses an output as an input, but the design does not use any tristates or feedback on the L8s, so my job is easier. The R4 and R6 are harder, though, as feedback is used on one, and both have registers. Jim
Re: Reading PALs
On 2/21/2017 2:06 PM, Mattis Lind wrote: But now it solved because Kelly Leavitt somehow did find the correct link, which is not the one linked to from the page. Thanks a lot for this! Unfortunately there were no source code in there unless they are self extracting binaries. No PC nor DOSEMU running so I cannot check right now. If there are no source I need to try to figure out the the ordering of the pins that the dump uses from the schematic. It seems not to readable by the version of Eagle I have here though. Maybe it will be easier to DIY anyway... Anyone else that done this kind of PAL analysis so I can avoid reinventing the wheel? /Mattis There are PD executables which run from the dos command line for both versions of the hardware. Manufacturing info for the boards are there. I'll targz the source and email it to you offline if that would help. It is compiled with mingw, so should hopefully be simple to make it run on gcc and run the analyze component. thanks Jim
Re: Reading PALs
On 02/21/2017 02:06 PM, Mattis Lind wrote: > But now it solved because Kelly Leavitt somehow did find the correct > link, which is not the one linked to from the page. Thanks a lot for > this! > > Unfortunately there were no source code in there unless they are > self extracting binaries. No PC nor DOSEMU running so I cannot check > right now. If there are no source I need to try to figure out the the > ordering of the pins that the dump uses from the schematic. It seems > not to readable by the version of Eagle I have here though. > > Maybe it will be easier to DIY anyway... > > Anyone else that done this kind of PAL analysis so I can avoid > reinventing the wheel? If you check my vcfed.org blog, you'll see that I used a PC parallel port to drive a setup pretty much consisting of a few 74LS193 counters and a 74LS151 multiplexer, driven off the low 4 bits of the counters. This gave me 20 bits of output, so I took some of the extra bits and used them to "push" possible tristate bits through 2K resistors. One parallel printer bit to reset, another to count and one to read the output. Built in an evening with parts from my hellbox on a hunk of perfboard. I was tempted to use an MCU, but given the 20 outputs+4 inputs of this rig, it made more sense. --Chuck
Re: Reading PALs
2017-02-21 22:01 GMT+01:00 jim stephens: > > > On 2/21/2017 12:41 PM, Mattis Lind wrote: > >> I have seen someone making a small device to do this. >> http://dreamjam.co.uk/emuviews/elec/pal.php >> >> Unfortunately the software doesn't seem to be available any longer. Anyone >> that has it? It would definetely save me some time. >> > Did you try contacting him thru his page? > > http://dreamjam.co.uk/emuviews/ > http://dreamjam.co.uk/emuviews/contact.php > > I do like his antispam puzzle. > > > I did try to contact him but got no reply. But now it solved because Kelly Leavitt somehow did find the correct link, which is not the one linked to from the page. Thanks a lot for this! Unfortunately there were no source code in there unless they are self extracting binaries. No PC nor DOSEMU running so I cannot check right now. If there are no source I need to try to figure out the the ordering of the pins that the dump uses from the schematic. It seems not to readable by the version of Eagle I have here though. Maybe it will be easier to DIY anyway... Anyone else that done this kind of PAL analysis so I can avoid reinventing the wheel? /Mattis > > thanks > Jim > >
Re: Reading PALs
I have seen someone making a small device to do this. http://dreamjam.co.uk/emuviews/elec/pal.php Unfortunately the software doesn't seem to be available any longer. Anyone that has it? It would definetely save me some time. /Mattis How about: http://dreamjam.co.uk/emuviews/pal/pd-070908.zip
Re: Reading PALs
tisdag 21 februari 2017 skrev Jecel Assumpcao Jr.: > Jim Brain wrote: > > > As a function of "give a man a fish, you feed him for a day; teach a man > > to fish, you feed him for all time", I dloaded Logic Friday, and figured > > out a quick way to read the two 16L8 (combinatorial only) PALs on the > > board with my EPROM reader (cue duct tape and baling wire snickers). > > Don't forget that 16L8 means 8 logic outputs and 16 inputs even though > at first glance there only seems to be 8 inputs. That is because every > output is also an input and can possibly be just an input by forcing the > three state option. > Right now I am in the situation of having a 16L8 with unknown program so I have been thinking (and googling) to find a solution. I have come to the conclusion that this device has to be considered as 262144 by 8 ROM. 18 bits address space because it has 8 three state outputs (six of them may act as inputs) which has to be probed in what way they are active driving or not and then 10 inputs. I was thinking of driving the outputs through a 1k or so resistor and then reading back the outputs. The inputs are of course driven as usual. Then I need to write some small piece of software to deduce the OE pin values and minimise the equations using some program mentioned above in the thread. I have seen someone making a small device to do this. http://dreamjam.co.uk/emuviews/elec/pal.php Unfortunately the software doesn't seem to be available any longer. Anyone that has it? It would definetely save me some time. /Mattis
Re: Reading PALs
Jim Brain wrote: > As a function of "give a man a fish, you feed him for a day; teach a man > to fish, you feed him for all time", I dloaded Logic Friday, and figured > out a quick way to read the two 16L8 (combinatorial only) PALs on the > board with my EPROM reader (cue duct tape and baling wire snickers). Don't forget that 16L8 means 8 logic outputs and 16 inputs even though at first glance there only seems to be 8 inputs. That is because every output is also an input and can possibly be just an input by forcing the three state option. Both options complicate things and in the first case you can have stuff like: O1 = /I1*I2 + I1*O1 If you count up the possible values of I1 and I2 you will get: I2, I1 => O1 0, 0 => 0 0, 1 => 0 1, 0 => 1 1, 1 => 1 but if you count down you get: I2, I1 => O1 1, 1 => 0 1, 0 => 1 0, 1 => 1 0, 0 => 0 which is different, and if you repeat this a bunch of times you will sometimes get 1 output in the first line and you might get 0 output in the third line once in a while. The IBM PC AT had two PALs. One was a simple address decoder while the second included an interface to the FPU and had a tiny state machine implemented like this. I helped some friends who were doing an AT clone in 1986 figure this out in a few minutes, but most of their competitors in Brazil took nearly two years to reverse engineer this. -- Jecel
Re: Reading PALs
On 02/21/2017 12:51 AM, Jim Brain wrote: > I assume this is the "wetware" process you mention, but I thought I > would check if I need to tweak something in Logic Friday to achieve > better results. I've always gone the "wetware" route, which seems to be mandatory when a term involves, say, 30 terms because of feedback terms. I don't know if there's a automatic reduction package out there that can make this leap. --Chuck
Re: Reading PALs
As a function of "give a man a fish, you feed him for a day; teach a man to fish, you feed him for all time", I dloaded Logic Friday, and figured out a quick way to read the two 16L8 (combinatorial only) PALs on the board with my EPROM reader (cue duct tape and baling wire snickers). After getting some good reads, and minimizing the binaries (I read 8kB of data, and then split the files into 1kB chunks to handle the one unit's 10 input lines, and split the other file into 4 2048 byte chunks due to the 11 inputs), I then wrote a really crappy C program to convert the data to CSV format for Logic Friday. After dealing with some nuances in the format, I was able to minimize the equations, and I thank you Chuck (I probably am still going to hit you up on the 16R4 and the 16R6, as I assume they are not so easy to reverse engineer) for the suggestion. Now, my new question: Is there a way to get Logic Friday to perform "negative" logic? Specifically, by looking at the CSV file, it is obvious that one of the outputs is low only when A15:A10 and R/W are all low. So, basically: O3 = (A15 + A14 + A13 + A12 + A11 + A10 + R/W) But, what I get is: O3 = A10 + A11 + A15 A13' A12' + A14' A13' A12 + A14 R/W' + A13 R/W' + R/W I assume this is the "wetware" process you mention, but I thought I would check if I need to tweak something in Logic Friday to achieve better results. Jim
Re: Reading PALs
Thanks for mentioning Logic Friday. I had never heard of it. I just used it to great effect in an unrelaed combinatorial logic reduction problem! -Alan On 2017-02-18 20:37, Chuck Guzis wrote: > On 02/18/2017 04:22 PM, Jim Brain wrote: > >> Seems like someone on list was willing and able to read PAL16L8s and >> give a try to some PAL16R4s... Is that person still on list and >> still interested? If so, please contact me off-list. >> >> I am trying to restore some C64 carts, and the PAL on my working unit >> is protected, so I cannot replicate. > > If I'm the person (see my blog on vcfed.org), "reading" isn't exactly > the right term. For purely combinatorial PALs, the technique is to > determine the input and output assignments, then exhaustively run > through all the combinations. Take that data and run it through a logic > minimizer, such as Logic Friday and then use a bit of wetware to pick > out tristate control lines and their corresponding outputs. > > Not foolproof by any means--and much less so, if the device is > registered, but very often successful. > > A schematic showing the part application can be a godsend. > > --Chuck
Re: Reading PALs
On 2/18/2017 7:37 PM, Chuck Guzis wrote: If I'm the person (see my blog on vcfed.org), "reading" isn't exactly the right term. Yes, of course. I meant running through the combinations of the inputs on the PAL and obtaining the outputs for each set of inputs, then attempting to minimize the logic (for combinatorial). REgistered is a more complex kettle of fish. A schematic showing the part application can be a godsend. I am working on creating the schematic now, but it's a tedious process. Jim
Re: Reading PALs
On 02/18/2017 04:22 PM, Jim Brain wrote: > Seems like someone on list was willing and able to read PAL16L8s and > give a try to some PAL16R4s... Is that person still on list and > still interested? If so, please contact me off-list. > > I am trying to restore some C64 carts, and the PAL on my working unit > is protected, so I cannot replicate. If I'm the person (see my blog on vcfed.org), "reading" isn't exactly the right term. For purely combinatorial PALs, the technique is to determine the input and output assignments, then exhaustively run through all the combinations. Take that data and run it through a logic minimizer, such as Logic Friday and then use a bit of wetware to pick out tristate control lines and their corresponding outputs. Not foolproof by any means--and much less so, if the device is registered, but very often successful. A schematic showing the part application can be a godsend. --Chuck
Reading PALs
Seems like someone on list was willing and able to read PAL16L8s and give a try to some PAL16R4s... Is that person still on list and still interested? If so, please contact me off-list. I am trying to restore some C64 carts, and the PAL on my working unit is protected, so I cannot replicate. Jim -- Jim Brain br...@jbrain.com www.jbrain.com