VOGONS


First post, by pan069

User metadata
Rank Member
Rank
Member

So, I have one of these TL866II+ programmers and I want to use it on Linux (I have no windows, never will). anyway, there is a project on gitlab that allows you to use this programmer from Linux and Macos:

https://gitlab.com/DavidGriffith/minipro

I installed this and it seems to work. When I do:

minipro -V
Supported programmers: TL866A/CS, TL866II+
Found TL866II+ 04.2.86 (0x256)
Warning: Firmware is out of date.
Expected 04.2.123 (0x27b)
Found 04.2.86 (0x256)
minipro version 0.5 A free and open TL866XX programmer
Commit date: 2021-02-04 17:25:19 +0400
Git commit: b2fd68da00154608bcaacde01845466e51795a7d
Git branch: master
TL866A/CS: 14330 devices, 8 custom
TL866II+: 16324 devices, 4 custom

I won't bother with the firmware for now, however, to verify the thing works I just want to read out a BIOS from one my 486 boards. So, I inserted the chip into the programmer (yes, I noticed the orientation of the notch), now what? Apparently there is an option to get "device" information:

--get_info		-d <device>	Show device information

Hmm, OK. What device, I assume the chip type?

What about:

--get_id		-D		Just read the chip ID

OK. So when I do:

minipro -D

I get the error:

Device required. Use -p <device> to specify a device.

Okay... What device?

Does it assume I know by heart everything single chip type before I can use the programmer? I understand that you need to known this information before you program it but how do you obtain it?

Kinda lost atm... Any help appreciated 🥺

Reply 1 of 8, by Horun

User metadata
Rank l33t
Rank
l33t

I find no helpful documentation on your link (did they forget to do a write up on Useage ?)
Am not a guru on the TL866II+ but your firmware is way out of date, like 6 months or better and the software is somewhat firmware dependent.
To read the chip you have to select the type (27c64, etc) or else it will not read properly under Windows.
Sorry but never tried mine under Ubunto or FreeBSD (my only linux box) so not sure what it needs other than bios chip type.

Hate posting a reply and have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. 🤣 Second computer a 286 12Mhz with real IDE drive ! After that came 386, 486, Pentium, P.Pro and everything after....

Reply 2 of 8, by pan069

User metadata
Rank Member
Rank
Member

Thanks.

Yes, I know I can upgrade the firmware. It should perform basic functionality regardless so I won't bother with it for now.

When I do:

minipro -l | grep 27C64

I get:

AM27C64@DIP28
AM27C64@PLCC32
NM27C64Q@DIP28
NM27C64Q@PLCC32
NMC27C64Q@DIP28
NMC27C64Q@PLCC32
MBM27C64@DIP28
MBM27C64@PLCC32
HN27C64G@DIP28
HN27C64FP@SOP28
HY27C64@DIP28
HY27C64@DIP28
27C64@DIP28
27C64@PLCC32
27C64@SOIC28
NM27C64Q@DIP28
NM27C64Q@PLCC32
NMC27C64Q@DIP28
NMC27C64Q@PLCC32
M27C64A@DIP28
M27C64A@PLCC32
TS27C64A@DIP28
TS27C64A@PLCC32
M27C64A@DIP28
M27C64A@PLCC32
TS27C64A@DIP28
TS27C64A@PLCC32
TMS27C64@DIP28
WS27C64@DIP28
WS27C64@PLCC32

Out of this list, how do I know exactly what type of chip I'm dealing with? Since my chip only has 28 pins I guess I focus on those only? That still leaves quite a few choices...

It seems I can do:

minipro -d 27C64@DIP28 -D

Which gives me:

Found TL866II+ 04.2.86 (0x256)
Warning: Firmware is out of date.
Expected 04.2.123 (0x27b)
Found 04.2.86 (0x256)
Name: 27C64@DIP28
Memory: 8192 Bytes
Package: DIP28
ICSP: -
Protocol: 0x07
Read buffer size: 1024 Bytes
Write buffer size: 128 Bytes
*******************************
VPP programming voltage: 13V
VDD write voltage: 6.5V
VCC verify voltage: 5V
Pulse delay: 100us

So, but this means that the programmer cannot detect the chip type for me? I have to explicitly tell the programmer what type of chip it will be reading/writing?

So, then my question becomes; how in general do you figure out what type of chip you're dealing with? You just know?

Edit: also, does the "Memory: 8192 Bytes" means there is 8K of memory on this chip?

Reply 4 of 8, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

Yes, you have to tell it exactly what type of chip you are using. Most often this will be on the top or sometimes the underside of the part.

Most BIOS chips will be 27c256/27c512 or derivatives. So start with those devices in your list.

The command is usually something like:

tl866 -p m27256@dip28 -r out.bin

... Reads a Motorola 27256 dip28 EPROM into out.bin.... finding the right device can be trial and error, but the programmer will warn you if the device isn't correct.

Reply 5 of 8, by pan069

User metadata
Rank Member
Rank
Member

Thanks everyone!

It's working now. I guess you can just use any random device type since the programmer will return the correct type in an error message (as megatron-uk said).

So, it's reading out 64k file and there is clearly data all the way to end (I can see a date at the end of the file). Does the programmer automatically detect the size of the data or is that determined by the device type?

Reply 6 of 8, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

Most times the device type it thinks it is, usually is correct.

I'd verify its the correct chip type before assuming the file is valid though. Normally if it's something like a BIOS chip, not a odd/even pair, and you can see valid text string in the file it's probably okay.

hexdump -C is your friend to look at the file.

Reply 7 of 8, by pan069

User metadata
Rank Member
Rank
Member

Yes, I'm just using a hex viewer to view the contents of the file and I can see all the AMI copyright notices etc so it definitely grabbed the data from it.

I'm just wondering about the size. It has dumped 64k, does it automatically detect the size to be dumped?

You bring up an interesting topic, re. odd/even chips. In this scenario, is the data spread over two chips (interwoven, interleaved) and therefore viewing the data in a hex viewer would be confusing. How exactly does odd/even chips?

Reply 8 of 8, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

If it's say a 27256, then the second part of the device type indicates the capacity in kilobits; 256kbit, so 32kbytes (not all eeprom/EPROM chip types follow this naming convention but a LOT do).

The tl866 device will read the full size of the chip, even if only the first N bytes have anything written to them. You end up with the rest of the data being null, but to th exact size of the device.

If you get a 64kbyte file then you device must be a 27512 or something similar.

Odd/even BIOS images are stored with byte one in the first chip, byte two in the second, and so on. The motherboard interleaves when reading the data from them. If you have devices like this then your hex viewer will show only partial text strings.