Wednesday, October 26, 2022

Part 2g: Confirming Tokens and PCB's arrive

My ETA3400X pcb's arrive from JLCPCB and they look pretty nice. I don't have all the parts, but I have a fair few of them and the remaining ones wouldn't be far away.


ETA-3400X PCB's arrived.

Majority of parts fitted, awaiting a few others.

PCB Errors.

While I was installing the parts I ran into a couple of errors that I had made in the PCB CAD files (Gerbers). The first one was that the two '3A1' rectifier diodes for the +5V supply would not fit in the holes. I didn't actually have any 3A1 diodes anyway, that's just what the original circuit used, but even the modern equivalent would not fit. Luckily I came up with a couple of work-arounds to this problem. First, you don't actually need to use 3 Amp diodes (3A1), as 1 Amp (1N4001 etc) diodes are more than adequate for this lower power version of the design and they do fit into the holes. Remembering the original used a lot more RAM chips and used more power, I was only using 200mA on the +5V supply and this would be shared between these two diodes in some cases anyway. Also you don't have to use them at all if you use the ET-3400 on-board +5V option which is what I am using anyway. The holes could be drilled out, but that would mean having to bridge the top and bottom pads with the component and in this case did not leave enough of the pad for this to work. I've since ordered and received 2 Amp diodes that do fit the pcb without the need to drill it. That should be a bit closer to the size of the original component.

The second and somewhat bigger problem is that the serial terminal 14-way IDC pins do not fit in the board either (holes too small again) and they ARE essential in most cases. When I drilled out the 14 holes the Plate Through Hole (pth) is destroyed and I have to bridge the top and bottom pads by soldering the IDC pins on both sides. That is quite difficult to do on the IDC pins. How I did this was to slide up the plastic chassis of the IDC header pins up the pins, then solder both sides of the pcb pads to the header pins, then slide down the plastic chassis down to be flush with the pcb.

In the next production of the pcb's I will have to fix those two errors, but luckily for me I got around it this time and you can't see that anything was wrong as both work-arounds are hidden from view once fitted. Phew!!!, got lucky this time. It's not the first time I've made pcb errors that I didn't discover while checking. Hole size is not something I check normally.

Anyway on with the disassembly while I wait for the remaining parts.

Back to BASIC Tokens

Using 5mm graph paper to write out a line of BASIC code as it would be typed in, then examining memory to see the tokenised results.

Using a piece of graph paper I slowly type in valid BASIC program lines then examine memory where BASIC stores its program to analyse and figure out what tokens are used for each keyword. The upper line is the tokenised hex code and the lower line is the original BASIC human readable text for that line.

This is a time consuming process as there are a lot of keywords and other symbols to get through, but each line of BASIC can only hold around 72 characters of data. Another limit is the amount of characters I can fit across the page, otherwise it becomes hard to read. Also at this stage I am limited to small programs as my upper and lower memory limits for program, variables, arrays, and stack storage etc. are not working correctly and I can overwrite some of my relocated subroutines and patches once I get more than a handful of lines of BASIC program.

Eventually I am able to confirm all the tokens for this version of BASIC, which will help later during source disassembly as several of them are not in the keyword pointer list at $0234. An example of two of those keywords are 'THEN and 'STEP' which are found later on.

Next I install the fully assembled pcb, what could possibly go wrong...


No comments:

Post a Comment

Part 2o: The future of the ETA-3400X

You can find all the work I've done on the ETA-3400X and 8K ALTAIR 680 BASIC, except for the ETA-3400X Gerber files, on the ET-3400 grou...