I guess I got the polarity wrong regarding A*.

Well,

I guess try what you like.  In my tests, A* seems durable to output
shorting. I think I read the buffer datasheet to see what the output short
current is.  Anyhow you see the issues.

I think the only way you see that there is a PSU discontinuity coming is by
monitoring /RAMRST.   Which makes it hard if you are back driving it.  One
could do it with a current monitor of some kind, maybe

in M100 CP/M, the BIOS makes extensive use of the M100 main ROM.  If you
disable and replace with RAM, you'd need to replicate all of that ROMware
to support CP/M.

Doable for sure.  Why not just replace the optrom with RAM?  leave the main
ROM alone.

The scenarios that drive the need for ram protection
1) battery runs out (or any other discontinuity) and PSU shuts down via TRAP
2) user hits reset
3) program inadvertently shuts off the PSU (kinda the same as 1)



On Sun, Aug 21, 2022 at 6:02 PM Henner Zeller <[email protected]> wrote:

> On Sun, 21 Aug 2022 at 14:16, Stephen Adolph <[email protected]> wrote:
>
>> Henner,
>> I have taken both approaches.
>> I have a few comments:
>>
>> 1) RAMRST serves to protect RAM during power events.  So, I think you can
>> for sure use it to disable the internal ram, but then you need to take some
>> precautions on whatever RAM you add.  I don't think it's purpose was to
>> disable ram for any other reason than protection.    RAMRST is switched
>> using a number of different conditions, including auto-power down.    I
>> don't have a good recommendation on such a protection ckt.
>>
>
> My intent is to replace the RAM entirely as I have a machine with not full
> 32k, and I also intend to make the lower 32k writeable (makes it simpler to
> write a new operating system and possibly run CP/M; I think you're running
> CPM successfully on your machine with a trick like this ?). I'd have to
> make sure that memory is preserved on power down of course.
> Besides losing power and memory in the external RAM, are there other
> conditions you can think of that might be problematic ? If I set RAMRST I
> would have to detect power-down/halt situations in a different way, but
> given that ~RESET is just the inverted signal of RAMRST and I get it at the
> bus as well, this should be doable.
>
> Reading again page 4-13, RAMRST seems to be indeed more meant to tell an
> external RAM module to be enabled/disabled, _not_ that it can/should be
> manipulated, which was my initial hopeful reading
> (in fact, on 4-12, RAMRST is marked as output, i.e. input to the external
> module).
>
> 2) A* can be pulled high. This has the effect of killing the chip selects
>> to the ram modules. This is more "painful" but it can be done.    You could
>> for example add a switch and control which RAM you want to use.   I would
>> recommend using  a RAM with 2 chip selects, and then using RAMRST to
>> protect the secondary ram.
>>
>
> mmh, A* (or RDWR* as I like to call it as it is better describing what it
> means. Apparently they ran out of ideas back in the day, and thought "Ⓐ*"
> is the best way to describe the signal...), is the output of the M20
> (40H367) buffer, so pulling that low to disable the M3 and M4 chip selects
> would put a strain on the output buffer transistors, risking damaging a 40
> year old chip.
>
> So looks like both methods are essentially fighting output of some
> transistors, though I think I'd be more comfortable doing that to a
> discrete T9 than to an output stage in a buffer chip. WDYT ?
>
> (Note, I have not wired up anything yet to my bus, still in planning
> stages, so I might miss things; and you certainly have a lot more
> experience with these machines).
>
> -h
>
>
>> I would recommend manipulating A* at the system bus.
>>
>> Steve
>>
>>
>>
>> On Sun, Aug 21, 2022 at 4:56 PM Henner Zeller <[email protected]> wrote:
>>
>>> On Sat, 20 Aug 2022 at 14:44, Henner Zeller <[email protected]> wrote:
>>>
>>>> Hi,
>>>> I enjoy playing with my new/old T100 and want to start doing some
>>>> hardware hacking with its system bus.
>>>>
>>>> According to the docs, REXCPM can disable
>>>> <https://bitchin100.com/wiki/index.php?title=REXCPM#Overview> the
>>>> built-in RAM and shadow the internal ram with its own banked RAM. Since I
>>>> consider doing some RAM  banking without pulling out the original RAM or
>>>> sneaking in an extra wire or resistor and wondering how that can be
>>>> achieved.
>>>>
>>>> It would mean that we need to switch off the internal RAM. But looking at
>>>> the schematic <https://github.com/hzeller/trs80-100-schematic>, it
>>>> looks like options would be to
>>>>
>>>>   * Either make sure that none of the chip enable signals for the RAM
>>>> ever go to zero, but they are under control of M3 and M4 and this looks
>>>> infeasible
>>>>   * We could force pull the RAMRST signal to high, but I suppose that
>>>> would make transistor T9 not very happy. So also not feasible
>>>>    * The option that I missed :)
>>>>
>>>
>>> To answer my own question: pulling RAMRST is indeed what needs to be
>>> done and it is intended for that purpose.
>>> The service manual states it on page 4-13.
>>>
>>> Measuring, it turns out that pulling up RAMRST to VDD only takes about
>>> 1.2mA, so the transistor T9 will not have trouble with it.
>>>
>>> -h
>>>
>>>>

Reply via email to