>>On Mon, 15 Mar 1999, Alwin Henseler wrote:
>> (this is not via the MSX mailing-list)
>But it shouldn't be any problem if it was via the list. 

I agree.

>> Thank you for your clear, and complete description.
>> Based upon this, I am one of those people that COULD build a MegaRAM, 
>> or make a new/different design of it, if I wanted to.
> That's great! It's becoming hard to find MSX people who handles 
>with hardware nowadays.

Sure!

My project with MegaRAM uses a double-bank  of  mapped 
registers (16 bytes select ever 8kb block).

>> Okay, you can use it as a RAM expansion. But doesn't the MSX have a 
>> thing called a memory mapper for that purpose?

>Yes, but I think I already said that Megaram was born earlier than Memory
>Mapper. When Memory Mapper was created, I didn't want to buy because I
>already had Megaram.

Reference for Mapped circuits are available on Elektor
Electronics Magazine. Principles of mapper are publis-
hed by brazilian Elektor  on  july'1986.  The  article 
name is "Eprom Expansions".

>> BTW. my question was just out of curiosity. I've heard this MegaRAM 
>> mentioned earlier, but what was it? How does it work? 
>That's the idea!

>>>> -EXACTLY what memory ranges do these blocks occupy?
>>> There are blocks in the area 4000h-5FFFh, 6000h-7FFFh, 8000h-9FFFh and
>>> A000-BFFFh.

Graphic block diagram is:

     MEGARAM SLOT                    MEGARAM BLOCKS

   +-------------+        +---->    +-------------+ 
   | 0000h-3FFFh |        |         | 4000h-5FFFh |   Block 0
   +-------------+  ------+         +-------------+
   | 4000h-7FFFh |                  | 6000h-7FFFh |   Block 1
   +-------------+                  +-------------+
   | 8000h-BFFFh |                  | 8000h-9FFFh |   Block 2
   +-------------+  ------+         +-------------+
   | C000h-FFFFh |        |         | A000h-BFFFh |   Block 3
   +-------------+        +---->    +-------------+


>I'm sorry, I had forget this detail about Megaram: Megaram has only 4
>registers for block numbers.

Yes. Four registers of 8bit.

>This implies that, when you select a block
>over page 0, it will be selected on page 2, too. The same is valid for
>page 3, that acts on page 1, too.

The most mysteriuos MegaRAM's feature is the mirror :)
MSB of address bus (A15) is ignored by MegaRAM!

>So, you can use Megaram on page 0 and page 3, but when you're in "block
>select mode" 

IN A, (8Eh)

>and do a LD A,04h / LD (0000h),A the block 4 is selected for
>the area 0000h-1FFFh and also for 8000h-9FFFh.

If Slot (and sub-slot) Register are  enable  for  same
cartridge. If not, you can select  and  read/write  on 
this 1st address, but not read/write on mirrored.  

You can use 4 MegaRAM for every 16kb on same computer,
1st MegaRAM on  0-3FFFh, 2nd on  4000h-7FFFh,  3th  on 
8000h-BFFFh, and 4th on C000h-FFFFh.  The  (8Eh)  port  
sets "block select/read mode" when OUT, or "write/read
mode" when IN.

The same mechanic is used for "MegaRAM Disk" cartridge
on  (8Fh)  port,  for  enable  internal  DiskROM   for 
RAMDISK emulation.

> The opposite is also valid,
>when you do a LD A,04h / LD (8000h),A the block 4 is selected for the area
>8000h-9FFFh and also for 0000h-1FFFh. That's exactly what you said about
>many Megaroms (the most part of Konami ones).

Mirror or "shadow" is the best name for ?

>I had forget to explain. Megaram can be read and written in pages 0 and 3,
>and can also be "block-selected", but with the mirror effect over the
>pages 2 and 1.

MegaRAM can be read on all addresses. 
Write is possible only when R/W mode is enable, other-
wise block  select  is  acessible  when  "write"  page 
number over data area.

>> Second, if write-enable or block-switch state is undefined after a 
>> reset,

No. The mode  is  undefined  when  computer   startup, 
after reset none changes are made on this register.

>> it could ofcourse be in write-enable state at the time of 
>> reset, and behaving as normal RAM then, be detected as such (be it 
>> at 4000-BFFFh only).

Yes, will be detected as normal RAM. But how much  RAM
is found depends of registers value.

>But that's a good question! The computer could think that it's a normal
>RAM if the state is "write enable mode" while the slots are being scanned.
>I don't know how to answer your question, I guess that the start-up state
>should be "block select mode", but I'm not sure.

No changes are made when startup sequence begins. 
MegaRAM are "RESET-insensitive". See technical informa
tion and electrical diagram on CPU MSX Magazine nr 35.

>> Not at all: it makes sure that you have trouble with programs, that 
>> were written by some eggheads/stupids, that don't how to program in 
>> the first place.

Ugh! 

>> For mapper size detection, I have seen things like:
>> OUT (port),xx
>> IF IN (port)=yy THEN "big enough" ELSE "not big enough mapper"
>I have never seen such a stupidity!

Registers aren't user RAM memmory. 
Registers only controls expanded address bus!

> Simple and good method: select (in descending order) each possible 
> block, write its number in it in at some test address, and then 
> (starting with block 0) check up until which block the block number 
> matches what you find at the test address when selecting each block.
(...)
>I think that this method has a fault

Many faults for a test program... 

>> If it exists, you can change the MegaRAM-disk from (EP)ROM state into 
>> RAM state and vice versa (using both I/O ports), and detect that -> 
>> MegaRAM-disk.
>Yes, but usually there's no need for that.

ROM state is ON or OFF. 
No ROM are mapped on MegaRAM Disk.

>> I wrote a superbly constructed memory mapper detection routine once. 
>> Detects ALL (including full 4096, those stupid 192, 384K etc., or no 
>> mapper at all) sizes correctly, doesn't change the contents of the 
>> mapper, AND does it without using any buffer memory.

I don't believe it. Full detection if 8 cartridges  of
different quantities of RAM ? Withouth IN A, (F_h) ope
rations ?

>I think that it would be very good if
>the Mapper-detection and Megaram-detection routines were the same (unique
>routine for all kinds of memories!)

Yes, detections uses same principia.

>> One question: is this EPROM only at 4000-7FFFh, or also 8000-BFFFh?
>> (32K, or 16K mirrored)
>This EPROM is only at 4000h-7FFFh. In "show EPROM mode", the page 2 if
>full of junk (no data present, open data bus).

Interesting.

>The big defect of Megaram-Disk is that, after a reset, the ramdisk if
>formatted,

Erased information are provide for MegaRAM-BIOSDisk.

> what means that the FAT and the root directory is erased. I
>would like to modify this Megaram-Diskrom to never erase the contents of
>the ramdisk, but the EPROM is soldered!

> The FDC used in European MSX machines is either a TMS 1793 or 2793(...) 
> All other European MSX's, and separate disk interfaces (Philips, 
> Toshiba, Sony etc.) that I've seen, use the TMS 2793.

I shop 4 ICs WD2793BL... but no have schematics for!!!

>> I have datasheets of it, but only on paper.

I try to search on brazilians Enginnering bookstores.

>So do I. Recently, Alex Wulms explained to me how these FDCs work, and
>they work like the port based FDC. The main difference is that addresses
>7FF8h-7FFBh is mapped to ports D0h-D4h. There are other minor differences,
>but they are not important.

More tech info for help me on FDC concepts ?

>> The hardware using the TMS 2793 is about the same in all cases: a 
>> diskROM is present in 4000-7FFFh, the FDC occupies a few addresses (
>> 7FFxh) through memory-mapped I/O, and mirrored at BFFxh of the same 
>> slot (only the FDC, not the ROM; rest of page 2 is empty).

Ok. I understand.

>I had talked to Alex Wulms and he had said it has these datasheets, but
>that's only in paper. So, I couldn't get it. If you know some cheap way of
>sending information from paper to other countries, please contact me.

Only few copies are "sactisfaction" for me.

>And do you know what's the differences between WD1772 and WD1793?

I don't know, too.

>Ok, that's a good idea. The main idea is to get the knowledge used to make
>the disk copier and create an entire new operating system, much more
>efficient.

Marco, a name of project (SODA) is definitive ?

> But one of the difficulties is to understand how the all kinds
>of MSX hardware work, because the variability is really big

I think 1st priority detect all kinds of RAM.

>> I almost forgot - the reason why I wrote you:
>> If I would put this info about how the MegaRAM works, on my webpages, 
>> would it be okay to include your name & e-mail, so that people might 
>> ask you about it?

If you need electrical diagrams and tech info (in por-
tuguese, sorry) of MegaRAM, I send to you.

>> You seem to know what you're talking about here, and I myself don't 
>> have a MegaRAM.

Wait for G-RAM(TM)  (MegaRAM  with  16-bit  registers) 
padronization. Will alocate 512Mbytes RAM/each slot. 

MARUJO.
 _______________ _   _ _______________ _______________________
|               | |_| |_ __  _  __    | WALTER BERNARDO NUNES |
|             /|| |_   _|  \| |/ /    | [EMAIL PROTECTED]    |
 \          /  || | | |    _|  /     / Graduacao Fisica-UFRGS |
   \      /    || |_| |_  |_| |    /__________________________|
     \__/______||___|___|___|_|_ /  [tag ainda nao disponivel]
___________________________________ 
     /"\
     \ / CAMPANHA DA FITA ASCII - CONTRA MAIL HTML
      X    ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
     / \


****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****

Reply via email to