The ET-11967 Service Module
|
05-28-2024, 06:46 PM
Post: #1
|
|||
|
|||
The ET-11967 Service Module
Hi all,
While looking at the Service Module (SM-1C), I raised some questions about the test of peripheral flags. The answer (that I had missed from the documentation) was the use of the ET-11967 FI-wired module. It is described in another post that "This ET-11967 module is a double memory module which fills both ports 3 & 4 address range and has FI line active". While trying to implement this module on the Pico board, I stumbled upon some questions while disassembling the code and trying to understand the inner workings of this module. In short - I have now successfully executed the IO service test on a real HP-41 with the Service Module loaded and the ET-11967 module emulated, and to get this to work I had to abandon the description above. Firstly, the FI-line is not just active, it is in reality a copy of the DATA line. I think (without having a module to test with), that the FI and DATA pins are just shorted in the module, so that any data on the DATA pin is copied to the FI line. This is how I implemented the ET-11967 in the Pico - just copy the DATA to the FI line when a Service Module is plugged in. Secondly I doubt that this is a "double memory module" - I belive it is only a single memory module only. While developing the code for the ET-11967 I tested it on a HP-41CV, and I could verify that the peripheral flag test worked ok, but the memory test failed - I just got "IO PORT TEST FAILED". Looking through the code, I found the test code and it loops 4 times, writing and reading at address 0x100, 0x140, 0x180 and 0x1C0 - which corresponds to the addresses of the 4 memory modules that fits in the calculator. And according to the ínstructions in the module manual, the Service Module should be in port 3, the ET-11967 in port 4, and a single memory module in both port 1 and 2. This made us belive that the ET-11967 is a double memory module, so that we have full memory in the calculator and the service module could test them all. I equipped a HP41C with no memory modules and the Pico (with Service Module and the ET-11967 emulated). Running the IO test resulted in "1,2,3,4, FAILED". WIth two memory modules inserted I got "3,4, FAILED". As expected, since I don't have any memory emulation in the Pico for this setup. But why did the HP41CV fail? It should have all the memory needed?!? Disassembling the test code revealed that there is a loop, which writes and reads from the adresses above (writes a value, reads it back and compare - if equal the memory exists). If the test fails - it will increment a counter, and after the test, this counter is tested against .... 1 !! So, for the test to work, the loop must fail once! I loaded my HP41C with three memory modules and executed the test again - and voila - "IO PORT TEST OK"! So, my interpretation of these results and tests shows that the ET-11967 is NOT a double memory module, but a single memory module with the FI and DATA pins connected. Is there anyone out there who have access to these two modules and could try the IO test (EEX) in a HP41CV? Or if someone have made a double memory module to try that with the service module (SM1C) in a 41C with two memory modules? My expectation in that case is that the test should work with only one memory module ... (but the test will fail if the DATA and FI are not connected). So, in summary, the description of the module should be that "This ET-11967 module is a single memory module which fills port 3 address range and has FI connected to DATA pin". If someone is interested I could provide traces from executing the IO test in a CV or C with 3 memory modules. Cheers, Thomas This is the code for the complete IO port test in Servioce Module SM-1C. It only checks the peripheral flags according to a pattern in register C, and then writes and read from 4 addresses, of which one (and one only) must fail, then reports the result. Code: ; Execute IO test (key EEX) [35/45/55/65/67/97/80 21/25/29C 31E/32E/33E|C/34C/38E 41C|CV|CX 71B 10C/11C/12C/15C|CE/16C 32S|SII/42S 28C|S 48GX/49G/50G 35S 41X] |
|||
« Next Oldest | Next Newest »
|
Messages In This Thread |
The ET-11967 Service Module - ThomasF - 05-28-2024 06:46 PM
RE: The ET-11967 Service Module - Didier Lachieze - 05-28-2024, 07:31 PM
RE: The ET-11967 Service Module - ThomasF - 05-28-2024, 08:25 PM
RE: The ET-11967 Service Module - ThomasF - 05-30-2024, 04:54 PM
RE: The ET-11967 Service Module - Didier Lachieze - 05-30-2024, 06:31 PM
|
User(s) browsing this thread: 1 Guest(s)