^ma1 80^pl66 0 6^ce HP71, AMNESIA, AND HP41 ^sk^ju^pa10Does your HP71 suffer bouts of amnesia?~ Mine does, more often than I would like. It may be happily running a program that it has run often before when something goes wrong. The message SYSTEM ERROR may come up, followed by MEMORY LOST if I try to continue. The display may go haywire before the MEMORY LOST message. Or it may seem to get stuck, taking forever to do something that should take only a second or so. It may require an INIT 1 or INIT 3 to recover, or at times things get so bad the only thing I can think of doing is to take out the batteries and let the poor thing die. ^sk^paSomething interesting occurred last time I had to do this. The situation was it wouldn't respond to any keys, including OFF. I pressed ON and /, and as it should INIT 1 came up on the display, but then there was no response to ENDLINE or any other keys. I was running it off a recharger at the time, so I removed the batteries and switched of the recharger. The display faded out, but when I switched on again after about five minutes INIT 1 reappeared and there was still no response to any key. I left it switched off for progressively longer times, till when I switched on after it had been off about 22 minutes the display remained blank, it responded to the ON key, told me MEMORY LOST, and then responded normally to all keys. The interesting point is that the two FREEPORTS, 1 and 5, survived with their files intact. ^sk^pa I got fed up with resetting the time, date, etc., after these bouts of amnesia, particularly when it happened two or three times in an hour or so, and thought perhaps my good old 41CX might help. I remembered seeing somewhere that if a 41 and 71 were linked through the HPIL, and the 41 did a REMOTE, then a BASIC function in the 41's Alpha register could be sent by OUTA and the 71 would act on it as if it had been typed in on its own keyboard. I tried it out, and came up with the program SET71. Now when the 71 loses its memory, I link it to the 41 (no other devices on the loop to avoid complications), XEQ "SET71", and when the 41 says "DONE" and the 71 "Loop Broken", I disconnect them and carry on using the 71. ^sk^pa Some comments on this program may be of interest. Note that several text lines contain characters that can't be keyed in; they were produced by a synthetic programming technique. However this can be avoided by breaking up these lines and using XTOA to place these characters in the Alpha register. ^sk^ma5 80^pa-4 Line~4:~~Puts the 71 in the mode (or mood) to receive instructions. With both 41 and 71 trying to be controllers, line 4 gives TRANSMIT ERR, but has the effect of making the 71 do a CONTROL OFF. Flag 25 is used so that the TRANSMIT ERR doesn't stop the program. Instead of REMOTE, I have tried "BEEP" OUTA. Sometimes this worked exactly as REMOTE; other times the 41 froze and I had to unplug the IL module to regain control. ^sk0^pa Line 6:~~If at first yoy don't succeed try again. ^sk0^pa Lines~7~-~14:~~The 41 reads its clock (as a 24 hour clock), puts this time (to nearest second) into the Alpha register as part of the SETTIME function, and sends it. ^sk0^pa Lines 15~-~20:~~Calculates the fraction of a second rounding error~.~.~. ^sk0^pa Lines~21~-~22:~~.~.~.~adds a bit that seems to be needed (processing time?)~.~.~. ^sk0^pa Lines~23~-~25:~~.~.~.~and sends the adjusting function. Of course this assumes the 41's clock is correct to a fraction of a second, which it generally isn't. But it looks nice to have the two clocks exactly synchronised by this program. ^sk0^pa Lines~26~-~27:~~Prepares to set date. ^sk0^pa Lines~28~-~38:~~Reads date and takes it apart into day, month, year~.~.~. ^sk0^pa Lines~39~-~53:~~.~.~.~reassembles these in the Alpha register in the required format (with leading zeros where required) and sends it. ^sk0^pa Lines~54~-~55:~~Sets Contrast to the value I prefer. ^sk0^pa Lines~56~-~57:~~To stop the 71 taking time to search the Loop for a Display device at switch on. ^sk0^pa Lines~58~-~59:~~The FREE PORT where I have my standard set of files. If this FREE PORT has survived, the 71 beeps, and flashes an error message, and the program carries on. ^sk0^pa Lines~60~-~62:~~The first part of my STARTUP string, with flag 17 set to tell the 71 there is more to come. ^sk0^pa Lines~63~-~66:~~The second and third parts~.~.~. ^sk0^pa Lines~67~-~69:~~.~.~.~and the final part, this time with flag 17 clear so the 71 will know it is the end of the string. With this STARTUP string, when the 71 is switched on it displays the date and a running clock (using CLOCKLEX LEX file). Then when any key (except ATTN) is pressed the display is cleared, DELAY is set to the values I like, and the function of that key is carried out. ^sk0^pa Lines~70~-~74:~~Sets the accuracy factor. The actual figure is in a data entry line rather than a text line for ease of altering to an updated figure. ^sk0^pa Lines~75~-~76:~~The 41 in effect passes control to the 71, though of course it doesn't know this. Presumably when the 71 does a CONTROL ON it sends a message around the loop to see what devices are on the loop. The 41 can't accept any other controller, so it does nothing with this message. When the 71 receives no reply it assumes the loop is broken, and says so. Meanwhile~.~.~. ^sk0^pa Lines~77~-~79:~~.~.~.~the 41 comes to the end of the program and says "DONE". ^sk^ce R.~G.~Laughton