DOS 2.20: How exactly does the mapper work ? (Hardware MSX Fora)MSX Resource Center MSX Info Update - Finnish MSX madness at its best           
            
English Nederlands Español Português Russian         
 Nieuws
   Voorpagina
  Nieuws archief
  Nieuws onderwerpen

 Informatie
   MSX Fora
  Artikelen
  Recensies
  Beursverslagen
  Fotoreportages
  Beurzen en meetings
  Enquêtes
  Links
  Zoek

 Software
   Downloads
  Webshop

 MRC
   Wie we zijn
  Kom bij ons team
  Doneren
  Policies
  Contact met het MRC
  Link naar Ons
  Statistieken

 Zoek
 
  

  

 Login
 

Gebruikersnaam

Wachtwoord




Ben je nog niet lid? Klik hier en word MSX vriend!


 Statistieken
 

Er zijn 40 gasten en 2 MSX vrienden online

Je bent een anonieme bezoeker.
 

MSX Fora


MSX Fora

Hardware - DOS 2.20: How exactly does the mapper work ?

Schrijver

DOS 2.20: How exactly does the mapper work ?

foske
msx novice
Berichten: 27
Geplaatst: 19 Februari 2007, 14:58   
Hi,

I've seen many schematics of a DOS 2.20 hardware mod, but I'm trying to find out whether it's possible to put DOS2.20 in a subslot which already contains another ROM (in a different bank). I know DOS 2.20 is 64 kB, but memory mapped. So, how exactly does the memory mapper work: which bank is used for DOS 2.20 and which address should be used by the memory map register ? Most implementations use only the upper 4 address bits to select the register...

Does anybody know whether it should be at all possible to put two different roms in one subslot when they do not use the same banks ?


foske
msx novice
Berichten: 27
Geplaatst: 19 Februari 2007, 15:30   
Ok, I overlooked the CS1 input signal... So, the CS1 line indicates that the ROM is mapped in bank 1, right ? However, the address decoder takes part of bank 1 too (0x6XXX). Now that looks inefficient to me ?
zeilemaker54
msx lover
Berichten: 97
Geplaatst: 19 Februari 2007, 15:46   
the DOS2 kernel is indeed in page 1 (04000H-07FFFH), but has 4 'segments' which can be selected by writing the segmentnummer in the 'segmentregister'. This is generally (but not always) at address 06000H. In order to keep the hardware design simple (and cheap), the complete decoding of address 06000H is not performed but only the decoding of 6XXX.

segment 0 = dos2 environment (including diskbasic)
segment 1 = support routines + (error) messages
segment 2 = dos2 kernel (bdos)
segment 3 = MSX KANJI (standalone) or dos1 kernel (MSX Turbo-R)

foske
msx novice
Berichten: 27
Geplaatst: 19 Februari 2007, 16:50   
Thanks for your excellent explanation, but it still doesn't explain why a 64 kB ROM is reduced to a 48 kB ROM by using the address range of 0x6000-0x6FFF for the mapper register. Or is the trick that you can only write into the mapper register and only read from the ROM ?
HansO
msx addict
Berichten: 375
Geplaatst: 19 Februari 2007, 18:40   
Quote:

Thanks for your excellent explanation, but it still doesn't explain why a 64 kB ROM is reduced to a 48 kB ROM by using the address range of 0x6000-0x6FFF for the mapper register. Or is the trick that you can only write into the mapper register and only read from the ROM ?



The 64K rom is divided in 4 segments, each 16K in size. The mapper maps in one of those 4 segments at the 16K window 4000H - 7FFFH. So nothing is spilled.
The mapper register is a write only memory location, so reading the same location gives ROM content, writing does load the register. In fact, writing to ROM does not make sense!
And giving it the name register is a lot of honour for two flipflops in a row..


foske
msx novice
Berichten: 27
Geplaatst: 20 Februari 2007, 09:40   
Thanks Hans !

I got the picture now. I am aware that writing to EPROMs doesn't really make sense unless you got programming logic and voltages applied :-) Then the next question of course is why an address decoder is used at all, and not simply /CS1 is OR-ed with /WR. Or does /CS1 contain /RD? Any recommendations about a good MSX Engine (the Philips one) manual ? Oh man what a questions...

So. What I am trying to find out is whether I can put MSXDOS 2.20 in Slot 30, bank 1. The MSX2 Extension ROM is in bank 0. Now I have to find out what exactly SLT3/30 from the Engine does, if it only gets low in bank 0 I need to copy the slot select logic. Why I want to do it ? Because everybody uses slot 3.1 for this and IMHO it is a waste of slot 3.0 :-). I like turning left when the obvious way is right...
 
 







(c) 1994 - 2008 Stichting MSX Resource Center. MSX is een trademark van MSX Licensing Corporation.