HP Forums

Full Version: (48GX/ASM) data logger on a card with Invalid Card Data message
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello everyone,

I am new to this forum, at least as a member Wink

I am using an old broken 128 kB Klotz RAM card to make a kind of data logger on an HP48GX. I made a simple protocol to exchange data between the HP and a microcontroler soldered on the card in the P1 port and it is working ok, data can be transmitted and received by the HP. A simple application is a kind of multimeter where you can read a voltage and display the result on the screen.

My problem is that each time I turn on the calculator I have the message "Invalid Card Data" and this seems to trigger a warmstart. It is working well after that but this prevent me to run the data logger on a programmed alarm because if I do so the data logger program is not launched. I guess that this is due to the warmstart and instead of running the program I see 1 'data_log_prog_name' on the stack. I guess the '1' is the alarm index and 'data_log_prog_name' is the name of the program I wanted to run (specified as an <<action>> in the programmed alarm).

Do you know how it is possible to configure the card in the HP so to avoid the ICD message? Maybe with the CONFIG instruction? I have read the section on cards in the great book of Gilbert Fernandes "Introduction to Saturn Assembly Language" available at hpcalc.org (section 66.1 and following) but I'm not very familiar with this instruction. How the HP48 discriminates between a valid card and an invalid one?

Does anybody has an idea on how to get rid of this warmstart?

Thank you!
First, welcome to the Forum as a member.

Suggest you repost this in the General section, as many more people will see it there and you will have a much better chance of getting some answers. The Library sub-forums are intended for sharing finished programs, libraries, etc.

Regarding your question, if you are able to read data from the card (from the card h/w side, not the 48 side) you may be able to figure out how the 48 discerns good from bad by using the PINIT (Port Initialize) command. This somehow fixes cards that are corrupted, seemingly without affecting user data.

Good luck with this, it will be interesting to see how this is resolved.
Thank you for the advice, I will post in the General section.

Concerning PINIT I can't really monitor the whole activity of this command with my card because I only use 3 pins of the card for TX/RX : one adress line (A15) from HP to Card, and D0 from card to HP. The third one, CE, being here as sync. It is really minimal 1 bit communication on both sides!
Reference URL's