'91 TDS 256KB RAM Card for the HP-48 SX
|
03-19-2015, 04:59 AM
Post: #1
|
|||
|
|||
'91 TDS 256KB RAM Card for the HP-48 SX
Hi,
I have recently aquired a TDS 256KB RAM card for the HP-48 SX. Unfortunately I cannot find any means to use it since I imagine that I need a bank switch (have never used such program). The SuperSwitch on site hpcalc.org states that it can be used with the GX-model that was introduced in 1993. Documentation in french that I do not master... Can someone please clarify the situation? TIA, Matti/Sweden Super SWITCH for 48GX ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ******************** * Switch une carte * * en port 1 ou 2 ! * * Utilisable en * * port 1 ou 2 * ******************** +---------------+ | DOCUMENTATION | +---------------+ Préliminaire ¯¯¯¯¯¯¯¯¯¯¯¯¯ Il faut stocker sur chaque banc la variable BANK de la forme x.y x numéro du banc y nb total de bancs Exemple : 1.4 :1:BANK STO {Pour une carte 512Ko} {Configurée en banc 1} SW: (Aucune entrée) ¯¯ Utilitaire donnant le numéro du banc selectionné en Inversion Video et les bancs disponibles et switchables ainsi que la position de la protection en écriture.Pour les 2 ports. BS1: (numéro du banc) ¯¯¯ Switch la carte en port 1 sur le banc demandé BS2: (numéro du banc) ¯¯¯ Switch la carte en port 2 sur le banc demandé |
|||
03-19-2015, 01:15 PM
Post: #2
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-19-2015 04:59 AM)MattiMark Wrote: Hi, I did not think a 48SX could use a card above 128KB, but perhaps the TDS card was special. On a GX, cards larger than 128KB are seen as having additional ports, each 128KB in size, so this card may look like ports :2 and :3 if installed in physical port-2. So maybe it's all thee, but you just didn't see it there? --Bob Prosperi |
|||
03-19-2015, 01:55 PM
Post: #3
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX | |||
03-19-2015, 08:00 PM
Post: #4
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
From my knowledge of the HP48 hardware, it's not possible to switch the banks of a RAM card > 128KB under software control with a HP48SX.
Only a HP48GX has a bank switcher logic for card slot 2, and only for the slot 2. This hardware logic adds 5 additional address lines for max. 2^5 = 32 banks. Slot 1 of the GX can only handle a 128KB RAM card like the SX. So if somebody know, how this super duper 256KB RAM card is able to switch his banks under software control in a SX, please tell me. I'll try to implement this immediately into Emu48. ;-) Christoph |
|||
03-19-2015, 08:16 PM
Post: #5
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-19-2015 08:00 PM)Christoph Giesselink Wrote: From my knowledge of the HP48 hardware, it's not possible to switch the banks of a RAM card > 128KB under software control with a HP48SX. Moin Christoph, I can't tell of course. But the discussion here sounds like it is possible? Günter |
|||
03-19-2015, 11:39 PM
Post: #6
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-19-2015 08:16 PM)Guenter Schink Wrote: I can't tell of course. But the discussion here sounds like it is possible? Just got a report, these cards really exist for the SX and it seem that the bank switching was activated by a special read sequence. This version of Super Switch can definitely handle cards for the GX. I had a short look inside the decompiled source code and found a code sequence typically for accessing a memory card inside slot 2 of a GX (conditional UNCFG the module at address #C0000, normally a card in slot 1, to get access to the covered memory below, in our case to the card in slot 2). This code sequence makes no sense on a SX, because there's no covered memory at #C0000. Christoph |
|||
03-19-2015, 11:46 PM
Post: #7
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
I'm not familiar with this particular RAM card, but bankswitching under software control does not seem to be that difficult.
If the calculator can address only 128 KB, the card itself (and not the calculator, as in the 48GX) will have to contain the bankswitching logic. While bankswitching is typically accomplished through I/O ports, it can also be done through memory-mapped I/O. At the minimum, all you need is a single latch to switch the RAM's A17 address line. If this is 0, the calculator will see the card's first 128 KB, if it's 1, the second 128 KB bank (and so on for larger cards). If you then add an address decoder to map this latch into the calculator's address room as bit 0 at address 1FFFFh (or something similar) overriding the actual RAM contents at this address, you can write a small program to set or clear this bit in order to switch RAM banks under software control. Of course, it might be wise to add some "locking" logic to make it more difficult to flip RAM banks in order to avoid accidental bank switches in the case of a program running wild. This logic would disable the switching logic unless a specific 8-bit value is written to the address, or until a certain sequence of "magic" values is written to the same address, or a certain access pattern is recognized (for example, three successive reads of the same address). If the RAM to be paged in or out is used for storage only (like a RAM disk), the bank-switching program should ensure that all files are closed on the corresponding volume, dirty data written out and all cached contents in the filesystem layer invalided before actually switching banks. Basically, the volume needs to be unmounted and remounted. If, however, the RAM is part of the device's operational memory, the device would most certainly crash when switching banks. In this case, it might be possible to delay the requested page switch until the next power sequence or reboot. Alternatively, if a certain system state needs to be preserved through bank switches, the switching program might copy the vital data from one page to the other within a mutex. Or a more sophisticated switching logic would allow to map in and out sub-pages under software control. There are various ways how to accomplish this... Greetings, Matthias -- "Programs are poems for computers." |
|||
03-21-2015, 06:06 PM
Post: #8
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-19-2015 11:39 PM)Christoph Giesselink Wrote:(03-19-2015 08:16 PM)Guenter Schink Wrote: I can't tell of course. But the discussion here sounds like it is possible? If you look a further down in the disassembly of the directory, it says that it's for the HP48GX. Or just open the DOC804 variable :-) I have always wondered if these cards had extra hardware to handle the bank switching since the HP48SX itself doesn't have any bank switching mechanism built into its hardware. I have never owned such a card, nor would I open one up if I did just to see. Graph 3D | QPI | SolveSys |
|||
03-22-2015, 04:55 PM
Post: #9
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
Thanks all for digging into the subject.
I inserted the TDS 256-card into a 48 GX port 2 and after PINIT it shows as port 2. After initiating the card for two banks with 1.2:x:BANK STO (x = port 2) I can now run SW which displays two ports, of which bank BK1 is highlighted. However, when I try to switch to bank 2 I get a warmstart... Any clues of how to proceed? /Matti |
|||
03-22-2015, 06:48 PM
Post: #10
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-22-2015 04:55 PM)MattiMark Wrote: Any clues of how to proceed? press [L-shift] [2], then [Ports] to see the installed ports. You will see :0:, :1:, and :2:, and possibly :3: if the 2nd 128KB bank is mapped into the 'normal' port addressing scheme. If so, you just access items with the normal :3:ITEM syntax to STO/RCL, etc. If not, and I'm guessing this is the case, then this TDS card implements some non-standard bank access scheme, which I can't help with. --Bob Prosperi |
|||
03-22-2015, 08:01 PM
Post: #11
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
rprosperi,
I did that (unfortunately forgot to mention it, sorry) but I only saw ports :0: and :2:, or :0: and :1: using the two differet possibilities to inser the card. Now, any clues? /Matti |
|||
03-22-2015, 08:40 PM
(This post was last modified: 03-22-2015 11:34 PM by Han.)
Post: #12
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
You should try using it in card slot 1, and not 2. Card slot 2 has its own bankswitcher built into the hardware.
Graph 3D | QPI | SolveSys |
|||
03-22-2015, 08:54 PM
Post: #13
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-22-2015 08:40 PM)Han Wrote: You should try using it in card slot 1, and not 2. Card slot 2 has its own bankswitcher built into the hardware. That's probably why you got a warmstart (and likey WSLOG shows a module pulled message). Card slot 1 is identical to both card slots on the HP48SX, whereas card slot 2 is not. Good call, an important distinction. And if it works in a GX/Port-1, it could possibly work the same in an SX, unless it uses some of the GX extensions (implied by the items found in the disassembly), but seems unlikely if it was marketed as also working with the SX as described in the mktg blurb quoted above. It's possible that the latest version of Super Switch only supported the GX since most users, likely to need such a card, probably had switched to GX machines. --Bob Prosperi |
|||
03-22-2015, 11:22 PM
Post: #14
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
Here's a disassembly of Super Switcher:
Code: ******************************************************************************* A bit strange is the lack of argument checks for BS1 and BS2 (prior to using SWAP), which are commands accessible to the user. If you simply execute these commands (with no arguments), you could possibly crash the calculator (usage of SysRPL command SWAP without guaranteeing sufficient arguments; oddly the checks come after SWAP). Anyway, the code uses UNCNFG at address #C0000h to unconfigure card slot 2 (if necessary) and does a series of reads at #FFFF?h. This suggests that there is probably an additional chip on the card that acts as a latch. This also suggests that it may not work correctly for an HP48SX with cards in both slots. As for a warmstart, it appears to be designed into the program. When you request a bankswitch, it sets up an alarm that does a warmstart and configures the ports. (I was wrong earlier w/ respect to my warmstart comments.) Perhaps you may want to check that the bank was actually switched as a warmstart is not a cause for alarm (pun optional). Graph 3D | QPI | SolveSys |
|||
03-23-2015, 01:42 AM
Post: #15
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-22-2015 11:22 PM)Han Wrote: ...you may want to check that the bank was actually switched as a warmstart is not a cause for alarm (pun optional). Groan....ouch. But I can see how couldn't let that go by... --Bob Prosperi |
|||
03-23-2015, 01:22 PM
Post: #16
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
Hi all,
I have tried it in both ports on the GX, but with the same results... No joy. So what do you all recommend me to do? /Matti |
|||
03-23-2015, 01:32 PM
Post: #17
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-23-2015 01:22 PM)MattiMark Wrote: Hi all, Totally out of left field suggestion: Since this card seems to be quite rare, sell it to a collector and get 2 normal 128KB cards that behave normally. Sorry, not a technically savvy suggestion, but it may get you to where you want to be faster than continuing to fight with old/undocumented equipment. One last thing - have you checked that card in a different GX and/or checked a different (e.g. 32 or 128KB) card in this machine to verify your machine is working properly. --Bob Prosperi |
|||
03-23-2015, 03:41 PM
Post: #18
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-23-2015 01:22 PM)MattiMark Wrote: Hi all, Can you share what results you are seeing, aside from warmstarts (which are part of the bankswitching process)? Graph 3D | QPI | SolveSys |
|||
03-24-2015, 08:05 AM
Post: #19
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-23-2015 01:32 PM)rprosperi Wrote:(03-23-2015 01:22 PM)MattiMark Wrote: Hi all, Oh, yes I have tried different 128 KB Cards in the GX. These work just fine in the SX as well |
|||
03-24-2015, 02:37 PM
Post: #20
|
|||
|
|||
RE: '91 TDS 256KB RAM Card for the HP-48 SX
(03-23-2015 01:32 PM)rprosperi Wrote:(03-23-2015 01:22 PM)MattiMark Wrote: Hi all, That's a good suggestion. Ebaying it as memory for the TDS 48 surveying system or advertising it in the classifieds of P.O.B or Professional Surveyor would find a buyer that is willing to pay because he uses it to make money and he'll already have the card with software to drive it. I don't remember exactly when they started the ability to access your full card. Maybe as early as v4.02, for sure by 4.12. |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 3 Guest(s)