• Please review our updated Terms and Rules here

epson hx20 - reports only 2658 bytes of RAM (?!)

RetroHospital

Experienced Member
Joined
Oct 20, 2020
Messages
185
Location
Belgium
Hey everyone,

I've got a nice hx20 that I fully restored/rcapped/etc. Everything used to work perfectly.

Until... It crashed in basic (TRAP!, etc), and when I restarted it ; it reports only 2658bytes of RAM
I tried everything ; removing the battery, initialise, reset, nothing works

STAT ALL reports 2658
PRINT FRE(0) reports 2651

I've got ROM v1.0 so maaaaybe this is limited to devices with ROM 1.0. (Most people have ROM 1.1)
I've seen a single mention of this problem on the internet, but the guy solved it with a CTRL/@ (init) mine seems to stick.

Any help appreciated,
 
Just my thoughts. I have never seen or heard of one of these. Look pretty neat. Is it possible that one of the RAM chips has developed a fault of only partially working? I don't know how it checks the RAM size but would like it would write a value and try to read it back. If the RAM is partly faulty might it work for some memory range but not higher. I may be totally off base here too.
 
Is it possible that one of the RAM chips has developed a fault of only partially working? I don't know how it checks the RAM size but would like it would write a value and try to read it back. If the RAM is partly faulty might it work for some memory range but not higher. I may be totally off base here too.
I don't know the HX20 either, but that was basically my thought. The OSI C1P BASIC memory size works more or less this way.
 
Hello,

I've got an HX-20 here, and mine is still working.

I've certainly had problems with strange memory figures over the years, but the initialisation (CTRL + @) has always worked in the past, although not necessarily at the first attempt.

The RAM available is partly controlled via 'soft' processes, this involves some settings in RAM. If this RAM gets corrupted, then you can get a false FRE() result.. Maybe you need to keep trying the Initialisation.

You say you've done this, and it 'seems to stick'? Please explain more.

Does your device have any extensions.? Mine has a RAM expansion board, and a FORTH ROM chip. Both of these involve an install process, which involved using the MONITOR to change some bytes, which alters RAM settings incl the FRE() result.

NB - the ROM version should NOT make any difference. Oh, and make sure the battery is fully charged.

Geoff
 
That is right. The HX-20 does not count memory like a PC. There are settings in memory that tells the system which areas have usable ram. You must have a fully working battery and do the init. once to make sure these settings are (and stay) correct.
 
Well I'm convinced my problem is software,
However what I don't understand is how can this "setting" or "corruption" survive an "INIT" (ctrl/@)

It's like something is "sticking" (I mean by that, is kept in RAM forever, like an EEprom), there is no eeprom in the thing, everything is supposed to be wiped off by an init, or at least when removing the batteries...
It's like my memory neevr gets erased/reset, and this buggy "setting" never dies


Also I do have a memory extension. This is part of the problem ; I've got a card that nobody else seems to have. It's a "micropoint" ram expansion marked "2x32KB". And I know this sounds impossible but that's what the sticker syays. It is very similar to a german 16KB expansion board, but instead of ROM I've got 4 HM6264 RAMs in the slots, and 3 wires are coming out of the motherboard on a 3 pin connector at the left of the expansion board

The "monitor" INIT string that I found for the 16KB board doesn't seem to help (SFFF5/0/-/B)

However my problem is not with that board ; I tried removing the card, restoring the cut trace, and booting only with my stock ram, but still, I get 2658 bytes of ram (apart from that the machine works beautifully)

So it's likely I'll need to init my card to get back my 32KB, but I don't even have my 16KB so far, even with just the stock ram. A bogus settings seems to "stick" in my RAM and can't be erased.

In short I think I need either
- a way to really really reaaaaaally wipe it off
- find someone who know his "micropoint 2x32KB RAM" and know the monitor init procedure
 
Last edited:
There is, of course, also the possibility that one ram chip is bad and that it is the one that would hold the memory settings.

There should be MONITOR code for a simple ram test.
 
From my understanding of resolving this issue you have to perform the following steps:

1. Perform a hard RESET (using the reset button).

2. CTRL+SHIFT+@ to initialise the machine.

Dave
 
- find someone who know his "micropoint 2x32KB RAM" and know the monitor init procedure
I only found someone in a German forum who has one as well. Apart from that, the card was made by Laskys. Pretty much all you can find about it.
 
Also I'm looking for any program (short basic or monitor) that would help me test my ram, especially the lower range ( which can't be tested because of MEMSET protected area at 2624 ).
 
Could you ask there of someone knows the init procedure, or still has the paper documentation ?
I don't have an account in that forum. But you can look yourself. Post here:

And he has a website at https://lord-luxors-retrogalerie.de/ , which should allow you to contact him (click on "Impressum").
 
Could you ask there of someone knows the init procedure, or still has the paper documentation ?
That's where I found the information I posted back in #8. In an online manual called "Epson HX-20 Tips and Tricks" Martin Hepperle, November 2018 – January 2021.

It has the full initialisation sequence for adding memory. This manual also includes entering the debug monitor and poking the register values to whatever is desired.

Dave
 
There's also Martin Hepperle in Germany who's done a lot of work with the HX machines.

I'm not sure exactly what the CTRL+@ does but I've always understood that it resets everything in the lower RAM, i.e up to the default MEMSET address. It may well not touch anything else?

The addresses used regarding the 'switches', say for ROM settings, the RAM boards, etc, all seem to involve writing data to addresses at the top of memory, i.e. over FFF0. BUT, this is ROM, not RAM, so how can you change data there? But writing certain values up there certainly DOES DO something. Activates my RAM expansion, or my FORTH ROM. Is there some 'shadow' RAM linked to these addresses. That maybe is NOT affected by a normal INITIALISE.

Using MONITOR, I see that on my machine I get:

FFF0: 01, 09, 01, 0C, 01
FFF5: 0F, 01, 12, 01, 15
FFFA: 01, 18, 01, 1B, E0
FFFF: 00

What shows on your machine?

FFF5 and 6 are used to activate/deactivate my FORTH ROM on my system.

My RAM board is controlled via addresses FEFD and FE99. Other boards seem to use different addresses (see Martin Hepperle's document re the HX, two different RAM boards are detailed there).

When you use the S option within MON, it shows the current value for that address, and asks for the vew value. Not sure if the current value is as per the above list. I.e. is it actually accessing the same memory?

Note that after you enter the activate data, THEN you do an INIT. Does this suggest that this data is NOT affected by the INIT, or does the mere entry of the data cause the activation which happens BEFORE the INIT.

Either way, you might have some dud data in one or more of these bytes?

Geoff
 
Yes - I don't see how my problem could be caused by a hardware problem, but of course I may be wrong.

@GeoffB17 what ram board do you have ?

However, even if I remove my ram expansion board the problem continues. This is super frustrating for a restored system :(
 
Last edited:
Hello Ceds,

Regarding my RAM expansion card, I bought this via an advert in a computer mag, and I don't remember any detail as to the mfg/supplier. I have the dot matrix printer mounting instructions, and this does not give any detail as to where it came from. I don't remember any label on it. It's a 16k board, to increase the RAM from 16k to 32k. I'll have bought it 198?

Regarding your latest message, I'm not suggesting any hardware problem. It seems possible though that some memory has got corrupted (how - esp if the memory is supposed to be ROM, not RAM).

I have needed to switch my extra RAM in/out from time to time, as the RAM uses the same memory space as does the FORTH ROM. So I cannot have BOTH the extra 16k AND the FORTH ROM active. If I want to use the FORTH, then I get ONLY 8k extra RAM.

Oh, the instructions show different addresses to Set depending on ROM version, 1.0 or 1.1 - this is relating to setting the Option ROM On/Off. The RAM card activates automatically with CTRL+@.

Geoff
 
Some further thoughts.

The RAM numbers you quote relate to the free RAM available to BASIC. Not the TOTAL RAM. When you turn the machine on, you usually get a menu showing. If there is nothing else loaded in RAM, then you will get 1 MONITOR and 2 BASIC showing on the menu. Nothing else. Does anything else show on your menu? Anything? A '3', or any other number. Any sort of garbage? If there is a rogue menu item of some sort then this would take up RAM. It also might not clear with an INIT.

If you do a STATALL does it show anything for the 5 program areas. If the memory is empty then all 5 areas should show no text and zero bytes.

Can you LOGIN to each area in turn, and enter NEW in each? Can you enter a 1 line BASIC prog in each? Does the MENU update, and show a prog size for each area? Does this reduce the FRE(0) accordingly? And the STATALL result as well? If you can enter things, can you then TITLE all 5 areas, see that the titles show on the menu. Then retitle as "" (null) otherwise NEW will not work.

I think you're saying that the RAM expansion is NOT working/installed. So your machine has 16k, minus the MEMSET value and maybe a bit more. I'm trying to determine roughly how much RAM is 'missing'. I seem to remember that the normal figure was about 14k, but these numbers will change depending upon various settings (RAM File, screen size, string space, etc.

Did you have one or more progs loaded before this problem started? I think that I've had problems in the past where a prog was showing as garbage on the menu, and I had some difficulty getting rid of it.

Geoff
 
Upon further investigation, I'm afraid my machine is braindead.
What seems to be the rootcause of this issue is my recapping ; everything was working good, however I seem to have made a mistake, or at least something is wrong, with the step up converter that creates +/-8V for the RS232C
I've repaired this machine months ago, however I've only recently started playing with the serial port. It seems most of the caps are actually part of the step up converter to generate what I would call a "ghost-ground +/-8V"
What's interesting, and un documented, is that this part ONLY activates when you" LOAD COM0 or SAVE COM0 ; and when I do that when powering my hx20 with my bench power supply, the over current protection kicks in (and it was set at 400mA).

IOW ; I think I may have "fried" my HX20 by using the com port, probably due to a problem in that circuitry and/or my repair that went under the radar because this is not in active use unless you "load COM0:".

At this stage; anything could be wrong with it if I indeed made multiple short circuits (altough they did not melt the fuse which is weird). I could have damaged the ROM , RAM, or anything in between.

Given that there is a fire hazard here, I'll replace the entire motherboard when I find another "cheap" HX20 (I just need the motherboard).
 
Sorry to hear about your mishap...
Maybe you installed one of the capacitors in inverted orientation (these are polarized electrolytics)?
The RS232 power-up and -down procedure is described in the technical manual. The serial port is usually powered down to conserve energy because, as you said, the voltage converter required for true RS232 operation consumes additional power. But indeed, 400 mA is too much. You could also check the other components in this circuit for shorts.
 
Back
Top