How to activate IBASIC on vintage HP 871XB network analyzers - Page 1
Forum section: electronics / testgear

author: TK
author_rank: Super Contributor
timestamp: July 08, 2017, 01:34:54 am
content: Some time ago I purchased an HP 8713B with no software options. I found information about reprogramming some bytes on the flash ROM to activate all software options and convert the 8711 to 8712 (VNA) and 8713 to 8714 (VNA):https://www.eevblog.com/forum/testgear/enable-those-extra-features-on-your-hp-8714c-network-analyzer/The instructions are for the HP 871XC series and it works on the HP 871XB series except for IBASIC which requires a PAL chip (marked as U137 GAL16V8 on the CPU schematics).So I had the 8713B converted to 8714B, but no IBASIC. So I started my quest to have IBASIC on my VNA. The other day I scored another HP 8714B that included the IBASIC U137 PAL chip. The PAL chip seems to have security bits programmed, and cannot be copied directly using miniPro. I connected my logic analyzer and I found out what the VNA expects as output of the PAL chip. It just wants the sequence of characters I B A S i C \0. The PAL (GAL16V8) chip defines pin 1 as clock and pin 11 as OE when operating in registered mode (flip flops), so I grabbed some old GAL16V8D, GAL16V8B and GAL16V8 chips on eBay and started to learn about PAL programming.Using PALASM tool running on a DOSBOX image, I was able to recreate the state machine that HP used to generate the sequence "IBASiC". Before getting to the idea that was a state machine, started exploring the possibility of some crypto algorithm, but I noticed that it only had 9 clock transitions and 8 OE activations... impossible to implement any type of shift operation using only 9 clock transitions and generate 8 character sequence output, So it must be something very simple... like some basic logic mask using the input to generate the output. Reviewing the PALASM manual, I realized it must be a MOORE STATE MACHINE.For anyone interested, I wrote the following state machine in PALASM:Code:;-------------------------------------------------------------------;; IBASIC PAL chip clone ;;-------------------------------------------------------------------;; ;; ;; ;;-------------------------------------------------------------------;;PALASM Design Description;---------------------------------- Declaration Segment ------------TITLE IBASICPATTERN AREVISION 1.0AUTHOR TKCOMPANYDATE 07/05/17CHIP IBASIC PAL16V8;---------------------------------- PIN Declarations ---------------PIN 1 CLOCK COMBINATORIAL ; INPUTPIN 2 I0 COMBINATORIALPIN 3 I1 COMBINATORIALPIN 4 I2 COMBINATORIALPIN 5 I3 COMBINATORIALPIN 6 I4 COMBINATORIALPIN 7 I5 COMBINATORIALPIN 8 I6 COMBINATORIALPIN 9 I7 COMBINATORIALPIN 12 Q7 REGISTERED ; OUTPUTPIN 13 Q6 REGISTERED ; OUTPUTPIN 14 Q5 REGISTERED ; OUTPUTPIN 15 Q4 REGISTERED ; OUTPUTPIN 16 Q3 REGISTEREDPIN 17 Q2 REGISTEREDPIN 18 Q1 REGISTEREDPIN 19 Q0 REGISTERED;-----------------------------------State Segment ------------------STATEMOORE_MACHINEDEFAULT_BRANCH STATE0;TRANSITION EQUATIONS------------------STATE0 := S0S1 -> STATE1STATE1 := S1S2 -> STATE2STATE2 := S2S3 -> STATE3STATE3 := S3S4 -> STATE4STATE4 := S4S5 -> STATE5STATE5 := S5S6 -> STATE6STATE6 := S6S7 -> STATE7STATE7 := S7S0 -> STATE0STATE0 = Q7 * Q6 * Q5 * Q4 * Q3 * Q2 * Q1 * Q0STATE1 = /Q7 * Q6 * /Q5 * /Q4 * Q3 * /Q2 * /Q1 * Q0STATE2 = /Q7 * Q6 * /Q5 * /Q4 * /Q3 * /Q2 * Q1 * /Q0STATE3 = /Q7 * Q6 * /Q5 * /Q4 * /Q3 * /Q2 * /Q1 * Q0STATE4 = /Q7 * Q6 * /Q5 * Q4 * /Q3 * /Q2 * Q1 * Q0STATE5 = /Q7 * Q6 * Q5 * /Q4 * Q3 * /Q2 * /Q1 * Q0STATE6 = /Q7 * Q6 * /Q5 * /Q4 * /Q3 * /Q2 * Q1 * Q0STATE7 = /Q7 * /Q6 * /Q5 * /Q4 * /Q3 * /Q2 * /Q1 * /Q0CONDITIONSS0S1 = /I7 * /I6 */I5 * I4 * I3 * /I2 * /I1 * I0S1S2 = I7 * I6 * I5 * /I4 * I3 * I2 * I1 * /I0S2S3 = /I7 * /I6 * /I5 * I4 * /I3 * /I2 * /I1 * /I0S3S4 = I7 * I6 * I5 * /I4 * I3 * /I2 * /I1 * I0S4S5 = /I7 * I6 * I5 * I4 * I3 * I2 * I1 * /I0S5S6 = /I7 * I6 * /I5 * I4 * I3 * I2 * I1 * I0S6S7 = I7 * I6 * /I5 * I4 * I3 * I2 * /I1 * I0S7S0 = /I7 * /I6 * I5 * /I4 * /I3 * /I2 * I1 * I0I used a GAL16V8 chip. Do not use GAL16V8D or GAL16V8B as they have active pull-ups on the I/O pins and when OE is HIGH, output is HIGH and not High-Z. The old GAL16V8 chip does not have active pull-ups.PALASM takes the source code and generates a JED file that can be used with miniPro to program the GAL16V8 chip.Now I have IBASIC and learned something about PAL and GAL programmingEDIT 19-MAY-2019: Attached IBASIC.JED.txt Download and rename as IBASIC.JED