you're probably right and so far even that simple comms log I cannot make any sense of it - it's consistent though - by that I mean every time I run AEC software that is the log I get after the software shows "Labtool-48 found" and "Firmware version: 2.20".
however, I see nothing in that log that can resample anything "structured", I mean I was expecting to see something like "GET_FW_VER_COMMAND" send and then response with "2.20", but I see nothing like that to a point that I wonder if in QEMU source code:
https://github.com/qemu/qemu/blob/master/hw/char/parallel.c
all those pdebug() calls are on the right place and not that something there is a miss, i.e. small bug in QEMU logging. BTW, if someone else wants to make such logs and investigate here is something like a very short HOWTO guide:
======================================================================
Ubuntu 22.04.2 LTS x64 : no any particular reason, just what I had in hand for years on one old hdd
# wget https://download.qemu.org/qemu-6.2.0.tar.bz2 : again, getting QEMU v6.2 source code for no any particular reason other than that QEMU version was already installed in my Ubuntu 22.04.2 LTS, i.e. i wanted to replace just the executable with my modified one and not the whole QEMU installation
# tar xjvf qemu-6.2.0.tar.bz2
# cd qemu-6.2.0
# vi hw/char/parallel.c : or any other text editor if 'vi' is too weird for you and modify the line I mentioned in my previous post to activate the debug logging
# ./configure --target-list=x86_64-softmmu : depending on your environment it will fail several times complaining about missing dependencies, in my case I was missing "ninja" and "libpixman" and needed to install them:
# apt install ninja-build
# apt install libpixman-1-dev
# ./configure --target-list=x86_64-softmmu : run it again for final configuration after all the missing dependencies in your environment are installed.
# make -j8
# mv qemu-system-x86_64 myqemu-system-x86_64 : rename the newly build modified QEMU and so it can exist with the original one installed in your system
# modprobe parport_pc : load the driver for your LPT hardware with Linux support, in my case LPT port build-in the motherboard, hence the "parport_pc" driver (kenrel module), but it could be any PCI/PCIe LPT card, etc as far as it has Linux drivers that create "parport" Linux device, then it will work
then run the modified for LPT logging "myqemu-system-x86_64" QEMU with:
# ./myqemu-system-x86_64 -enable-kvm -cpu host -m 256 \
-drive format=raw,file=xpsp3.raw \
-serial none -parallel /dev/parport0
where "xpsp3.raw" image is your WinXP installation QEMU raw image and "/dev/parport0" is the device file of your motherboard real HW LPT port.
so, it's pretty easy and fast - building QEMU is surprisingly fast - maybe 10 minutes time even on that 15 years old computer. of course, you need to have image with WinXP installation, which I am omitting to include in this short guide how to prepare, because it's documented already by many other guides how to install WinXP in QEMU and prepare such image.
======================================================================
also, you can use the above procedure to run the programmer in the future, i.e. when there will be no way on that very modern future computer to install WinXP/Win7/Win10, etc and the AEC software cannot work in that HW/OS of the future (as far as you have PCIe LPT card with Linux driver that creates "parport" device). so, it's not a total waste to know the above, even if it's not about reverse-engineering of the communication.
however, I see nothing in that log that can resample anything "structured", I mean I was expecting to see something like "GET_FW_VER_COMMAND" send and then response with "2.20", but I see nothing like that to a point that I wonder if in QEMU source code:
https://github.com/qemu/qemu/blob/master/hw/char/parallel.c
all those pdebug() calls are on the right place and not that something there is a miss, i.e. small bug in QEMU logging. BTW, if someone else wants to make such logs and investigate here is something like a very short HOWTO guide:
======================================================================
Ubuntu 22.04.2 LTS x64 : no any particular reason, just what I had in hand for years on one old hdd
# wget https://download.qemu.org/qemu-6.2.0.tar.bz2 : again, getting QEMU v6.2 source code for no any particular reason other than that QEMU version was already installed in my Ubuntu 22.04.2 LTS, i.e. i wanted to replace just the executable with my modified one and not the whole QEMU installation
# tar xjvf qemu-6.2.0.tar.bz2
# cd qemu-6.2.0
# vi hw/char/parallel.c : or any other text editor if 'vi' is too weird for you and modify the line I mentioned in my previous post to activate the debug logging
# ./configure --target-list=x86_64-softmmu : depending on your environment it will fail several times complaining about missing dependencies, in my case I was missing "ninja" and "libpixman" and needed to install them:
# apt install ninja-build
# apt install libpixman-1-dev
# ./configure --target-list=x86_64-softmmu : run it again for final configuration after all the missing dependencies in your environment are installed.
# make -j8
# mv qemu-system-x86_64 myqemu-system-x86_64 : rename the newly build modified QEMU and so it can exist with the original one installed in your system
# modprobe parport_pc : load the driver for your LPT hardware with Linux support, in my case LPT port build-in the motherboard, hence the "parport_pc" driver (kenrel module), but it could be any PCI/PCIe LPT card, etc as far as it has Linux drivers that create "parport" Linux device, then it will work
then run the modified for LPT logging "myqemu-system-x86_64" QEMU with:
# ./myqemu-system-x86_64 -enable-kvm -cpu host -m 256 \
-drive format=raw,file=xpsp3.raw \
-serial none -parallel /dev/parport0
where "xpsp3.raw" image is your WinXP installation QEMU raw image and "/dev/parport0" is the device file of your motherboard real HW LPT port.
so, it's pretty easy and fast - building QEMU is surprisingly fast - maybe 10 minutes time even on that 15 years old computer. of course, you need to have image with WinXP installation, which I am omitting to include in this short guide how to prepare, because it's documented already by many other guides how to install WinXP in QEMU and prepare such image.
======================================================================
also, you can use the above procedure to run the programmer in the future, i.e. when there will be no way on that very modern future computer to install WinXP/Win7/Win10, etc and the AEC software cannot work in that HW/OS of the future (as far as you have PCIe LPT card with Linux driver that creates "parport" device). so, it's not a total waste to know the above, even if it's not about reverse-engineering of the communication.
. Hope anybody know any info/software about it. Thanks in advance
Comment