ALA Axelen Logic Analyzer 24100A file format reverse engineering - Page 1
Forum section: electronics / projects

author: tillewolle
author_rank: Contributor
timestamp: November 03, 2021, 12:07:17 pm
content: Hey,I managed to get my hands on an ALA Axelen Logic Analyzer 24100A made by Axelen Industrial Inc.I set up a MS-DOS 6.22 machine, connected card, cables and pods in and managed to start the ALA Operating System (ALA).Then I built a simple Arduino circuit to detect inputs of an IR remote control to have a circuit to test the ALA Logic Analyzer.I was able to measure some reasonable results and display a timing diagram in MS-DOS using the ALA.EXE.First problem: The ALA.EXE just supports Epson FX-80, MX-80 or compatible dot-matrix printers to print the timing diagram. Using the Print Menu immediately crashes the program without any printer installed. The Prt Scrn button on my keyboard also crashes the system. My first thought was to emulate a FX-80/MX-80 printer on LPT1 and somehow print to file. I managed to work around this problem by creating screenshots viaSnarf. This allows me to create *.BMP files of my timing diagrams but honestly that's not the way I want to use it. Rember to start SNARF.EXE before measurement; measure; Alt + S to screenshot; COPY SNARF001.BMP A:; transfer via USB-Floppy drive to modern machine, not be able to use process data because of *.BMP - takes waaay to long.I read through the manual and found the DOS mode (which was cut off the top of my monitor because of miscalibration) that allows me to load, edit and save files in *.ALA or *.FMT format. Researching about those formats wasn't successful so I need to find a way to convert those files for a use with modern programs to generate some nice timing diagrams with different software.I saved my IR-sensor measurement as IR.ALA and IR.FMT and uploaded them at the end of the post as IR.zip because of upload limitations.So how do I start processing the data to create some nice timing diagrams on a modern machine? I also would like to be able to print from the DOS-machine but that would require a printer emulator or a network printer thats DOS-compatible so thats not prio 1. Another feature that would be nice to have is transfering the data via network so I can use the DOS-Machine just for measurement purposes.I scanned theoperating manualand uploaded it to the Internet Archive. Pages 51/52 provide info about the structure of the *.ALA format. I found no info about the *.FMT format.I did the same for the provided disk withALA Operating System.The disk contains:ALA.CFG - I guess it's the config file for the analyzer?ALA.CLR - Maybe the color settings for the color mode?ALA.EXE - The main operating system for the ALA Logic Analyzer 24100A; Version 3.00/AALA.HLP - Help file for use with F1 while using ALA.EXEEXAMPLE.ALA - Example *.ALA fileEXAMPLE.FMT - Example *.FMT fileREADME.DOC - Changelog of AOS v2.30 and v2.30/A from 7-18-1988SETCOLOR.EXE - Change the color combinations for the "Custom" color setI absolutely don't find any info about this device on the internet despite one person trying to sell his unit (model no. 32100) here ateevblog. The company Axelen Industrial Inc. seem to have produced mice (1,2,3) and guarantee lifelong support for the logic analyzer. The manual refers to the company as:AXELEN INDUSTRIAL INC.4th Fl., No. 5–1, Alley 26,Lane 123, Jen AI Rd., Sec. 3,Taipei, Taiwan, R.O.C.No matches for about that on Google Maps. I'd also be happy to find any info about this device and the operating system (there seemed to exist a ALA v2.30 and v2.30/A), similar devices and anything about the company AXELEN Industrial Inc. Are they still around? (I doubt it but I want to check about my lifelong guarantee!) Were they purchased by another company? Did they go bankrupt?My system specsGigabyte GA-6BAwithF1-BIOSIntel Pentium II 400/512/100/2.0V2x64MB SDRAMStealth SE PCIWestern Digital 102AA 10.2GB HDD // MS-DOS 6.22Edit: Fixed broken linkEdit 2: spelling mistakes & Added system specs

author: Renate
author_rank: Super Contributor
timestamp: November 04, 2021, 03:29:40 pm
content: What is the PC interface on this thing?I don't think anything is so useful that I'd want to play with parallel ports (if that's what it is) and MS-DOS.Does this logic analyzer do anything that a $5 Cypress FX2LP and SigROK PulseView doesn't?If the pods and level shifters are good, why not just connect it to an FX2LP internally?

author: tillewolle
author_rank: Contributor
timestamp: November 04, 2021, 04:19:24 pm
content: Quote from: Renate on November 04, 2021, 03:29:40 pmThe card goes into the ISA-Slot and it's interfacing with a proprietary 25-Pin D-Sub connector. The manual explicitly tells NOT to mix the cable with RS232 or printer connector. Can I beep something out?Quote from: Renate on November 04, 2021, 03:29:40 pmIt's about having fun and learning how things work. Also there is no documentation online so someone needs to make a start. That was the best way to do it. Dave had a similar project in an Electronic Australia magazine back in 1996.I don't know about the FX2LP and SigROK Pulseview (yet), but I'll have a look. So I have no idea what to compare it with. I took some pictures of the System unit.EDIT: A lot of link formatting and added the pictures of the PODs

author: Renate
author_rank: Super Contributor
timestamp: November 04, 2021, 06:52:36 pm
content: You know, the problem with it being old is that the pods are probably all just (5V) TTL.I see an op amp there, but no idea if the inputs have any voltage range.I have a FX2LP and besides testing I've hardly used it.I really don't need big multibit interfaces.My needs are mostly 3.3V I²C, and 5V, 3.3V, 1.8V UART.

author: tillewolle
author_rank: Contributor
timestamp: November 05, 2021, 09:19:25 am
content: Quote from: Renate on November 04, 2021, 06:52:36 pmThe manual tellsthat it has three types of input threshold voltage:TTL: +1.5VECL: -1.3Vvariable voltage: -10.0V to +10.0V by the step of 0.1VGuess that's quite a bit of range?Quote from: Renate on November 04, 2021, 06:52:36 pmAt least it is capable of all of your needs.

author: Renate
author_rank: Super Contributor
timestamp: November 05, 2021, 11:28:48 am
content: Hmm, with a range like that, it must have been a pretty spiffy analyzer in its day.What's the speed? Of the pods or the analyzer?If the pods and probes are in good shape I'd do what I already suggested.Reverse engineer the pinout of the pods. Is it 8-10 bits per pod?Make a new chassis with two pod sockets, connect an FX2LP (over USB). You get 16 channels with little effort and it's compatible with modern software.Of course you could make a USB 3.0 that could handle three pods put you'd have to implement the firmware yourself.Selecting voltage levels could probably be done by a simple manual selector.

author: tillewolle
author_rank: Contributor
timestamp: November 05, 2021, 12:04:39 pm
content: Quote from: Renate on November 05, 2021, 11:28:48 amWhat do you mean bei speed? Repetition Rate? Sample Rate? I can recite the specs from the manual.Repetition Rate:INT Clock: 100MHz max.EXT Clock: 25MHz max.Input Channels:24 channels max.Input Threshold:TTL: +1.5VECL: -1.3Vvariable voltage: -10.0V to +10.0V by the step of 0.1VMaximum Input:+/- 25V (absolute maximum rating)Input Impedance:12K ohm min.Set Up Time:0 ns, before active edge of EXT clockHold time:5 ns, after active edge of EXT clockSample Clock:INT clock operation: from 500 Hhz to 100 MHz in 5, 2, 1 sequence and 25 MHz special, 18 programmable stepsEXT clock operation: 25 MHz max., RISING or FALLING edgePulse width of EXT clock:10 ns both high and lowTriggering:Trigger words: 4 words max.Trigger states: "0", "1", "x" (don't care)Trigger commands: ARM (if-then), AND, ORTrigger levels: 4 levels max.Data Qualification:Sample clock rate: 25 MHz max., INT or EXTQualifier channels: POD C, 8 channelsQualifier states: "0", "1", "x" (don't care)Trigger displacement:from 0 to full memory depthMemory depth:8176 bits/channel max.I don't find much about the possible sample rate in the manual. It uses 10 ns/clk, 20 ns/clk and >=40 ns/clk as examples. But I remember also using 1s and 2s for my tests. Also saw different values between 10 ns/clk and 2 s/clk. May need to write them down, when I'm testing it the next timeQuote from: Renate on November 05, 2021, 11:28:48 amIt's 8 channels from 0-7 plus 1 GND plus 1 CLK per pod.Quote from: Renate on November 05, 2021, 11:28:48 amSounds very reasonable! But then I'll lose the DOS-AESTHETICSWhile looking through the stuff I realized something:I imaged the 3.5" disk which I thought was created from the 5.25" disks by the former owner. Had no other chance because I don't have access to a 5.25" drive. Taking another look made me realize that the two disks seem to contain different versions of AOS. Will need to find a way to dump both of them.The left one says VER. 3.0/A on the label. The right one has VER. 3.00/A on it.

author: Renate
author_rank: Super Contributor
timestamp: November 05, 2021, 01:08:40 pm
content: The version numbers might just be formatting. It does say 24100A vs 24100/A.Not bad specs there, but it still couldn't handle the parallel digital video in ECL that I was doing 30 years ago (27 MHz clock).You know, if you go the PulseView/FX2 route you can get something that works on both Windows/Linux pretty quickly.You can try just by using the existing chassis and throwing in an FX2LP that is teeing off the input from the pods.You can set the voltage trigger in your MS-DOS box and use PulseView on a separate PC.In the simplest case, you only need to tack on one wire for a bit and ground.That way you can get a feel for what you want to do.

author: abyrvalg
author_rank: Frequent Contributor
timestamp: November 05, 2021, 01:16:50 pm
content: .ALA format:Code:+0  Header+0  TBD+0xD0  Channel names as an array of Pascal-style strings (byte len0, byte text0, byte len1, byte text1, ...)+0x200  Description+0x600 [0x2000/4] Samples - bytes 0-2 looks like channel data, byte 3 looks like some kind of a timestamp (always 00 in your sample, but incrementing in EXAMPLE.ALA)So you can just skip the header and visualize the Samples array

author: tillewolle
author_rank: Contributor
timestamp: November 06, 2021, 10:06:52 am
content: Quote from: Renate on November 05, 2021, 01:08:40 pmOh. Did not notice that. You might be right!Quote from: Renate on November 05, 2021, 01:08:40 pmMaybe that's the way to go. I'll think about the opportunities. I don't know whether my skills let me do thisQuote from: abyrvalg on November 05, 2021, 01:16:50 pmThanks a lot! I am not sure if I understand everything you wrote yet but I'll have a digger deep with your findings. How did you found this out? Maybe I'll have a look by myself and redo your steps to comprehend all of this.You have a recommendation how to visualize the sample array? Maybe a specific tool.

author: abyrvalg
author_rank: Frequent Contributor
timestamp: November 06, 2021, 11:37:22 pm
content: > How did you found this out?By disassembling ALA.EXE and matching the findings to .ALA samples you’ve provided.> You have a recommendation how to visualize the sample array?I would suggest to code a converter from .ala to any of Sigrok’s supported formats (listed herehttps://sigrok.org/wiki/Input_output_formats) instead. That will allow to use full Sigrok/PulseView functionality - protocol decoders, measurement cursors etc.

author: tillewolle
author_rank: Contributor
timestamp: November 08, 2021, 12:32:20 pm
content: Quote from: abyrvalg on November 06, 2021, 11:37:22 pmI tried to disassemble ALA.EXE with Ghidra but I'm not familiar with Ghidra so I was not successful reproducing your findingsQuote from: abyrvalg on November 06, 2021, 11:37:22 pmWill try to do this... but this will take a while... My programming skills are quite basic... But thanks!