MSX MEMORY: Difference between revisions
Onionmixer (talk | contribs) (MSX 의 메모리 페이지 내용 추가) |
Onionmixer (talk | contribs) (이미지 정보 추가) |
||
Line 9: | Line 9: | ||
[[image:MSX_Memory_image_01.png|640px|확장슬롯 3 의 슬롯 맵 예제(디스크 없음)]] | |||
따라서 슬롯에 있는 RAM의 첫 번째 페이지가 메인 RAM으로 선택됩니다. | 따라서 슬롯에 있는 RAM의 첫 번째 페이지가 메인 RAM으로 선택됩니다. | ||
Line 29: | Line 29: | ||
디스크가 있는 경우 디스크-ROM의 재설정 루틴은 현재 선택된 페이지 0과 1의 슬롯을 F341h 및 F342h에 저장한 다음 0000h~3FFFh 및 4000h~7FFFh 페이지의 슬롯을 스캔하여 위에 표시된 것과 동일한 방식으로 나머지 32kB를 찾습니다. 페이지 2와 3에서 찾은 RAM 슬롯은 F343h와 F344h에 저장됩니다. | 디스크가 있는 경우 디스크-ROM의 재설정 루틴은 현재 선택된 페이지 0과 1의 슬롯을 F341h 및 F342h에 저장한 다음 0000h~3FFFh 및 4000h~7FFFh 페이지의 슬롯을 스캔하여 위에 표시된 것과 동일한 방식으로 나머지 32kB를 찾습니다. 페이지 2와 3에서 찾은 RAM 슬롯은 F343h와 F344h에 저장됩니다. | ||
[[image:MSX_Memory_image_02.png|640px|확장슬롯 3 의 슬롯 맵 예제(디스크 있음)]] | |||
Disk-ROM이 v2.20 이상인 경우, 내부 메모리를 선택하는 MSX 터보 R을 제외하고 각 페이지에서 첫 번째 더 큰 메모리 매퍼가 선택됩니다. | Disk-ROM이 v2.20 이상인 경우, 내부 메모리를 선택하는 MSX 터보 R을 제외하고 각 페이지에서 첫 번째 더 큰 메모리 매퍼가 선택됩니다. | ||
Line 40: | Line 40: | ||
'''기본 환경의 기본 메모리 맵:''' | '''기본 환경의 기본 메모리 맵:''' | ||
[[image:MSX_Memory_image_03.png|640px|기본환경의 메모리 맵]] | |||
메모리 맵에 따르면 MSX는 메인 램의 상단 부분만 절반까지만 선택합니다. 사용자가 사용할 수 있는 RAM은 8kB의 MSX 컴퓨터에서는 주소 0E000h에서 시작하고, 16kB의 경우 0C000h에서 시작합니다. 다른 모든 MSX에서는 주소 08000h에서 시작됩니다. 이 주소는 BOTTOM(0FC48h) 시스템 변수로 표시됩니다. 사용 가능한 RAM의 끝을 확인하려면 MEMSIZ(0F672h) 변수를 읽습니다. | 메모리 맵에 따르면 MSX는 메인 램의 상단 부분만 절반까지만 선택합니다. 사용자가 사용할 수 있는 RAM은 8kB의 MSX 컴퓨터에서는 주소 0E000h에서 시작하고, 16kB의 경우 0C000h에서 시작합니다. 다른 모든 MSX에서는 주소 08000h에서 시작됩니다. 이 주소는 BOTTOM(0FC48h) 시스템 변수로 표시됩니다. 사용 가능한 RAM의 끝을 확인하려면 MEMSIZ(0F672h) 변수를 읽습니다. |
Latest revision as of 09:42, 10 August 2023
- MSX 의 메모리
- 원문
- https://www.msx.org/wiki/The_Memory
디스크가 설치되지 않은 RAM
MSX 컴퓨터의 메모리는 RAM과 ROM으로 구성됩니다. Z80은 주소 지정 핀이 16개(16비트용)에 불과하기 때문에 최대 64KB까지만 처리할 수 있지만, MSX 컴퓨터는 4개의 고정 영역에서 16KB를 전환할 수 있는 두 개의 시스템을 사용합니다. 이러한 영역을 "페이지"라고 합니다. 첫 번째는 슬롯 시스템입니다. 1세대 MSX 컴퓨터부터 등장했습니다. 두 번째 시스템은 메모리 매퍼입니다. MSX2 옵션부터 등장했습니다. 이 시스템은 RAM을 확장하도록 설계되었습니다.
MSX가 시작되면 CPU는 주소 0000h(슬롯 0 또는 0-0)의 메인-ROM에서 초기화 루틴을 실행하고 아래 그림과 같이 기본 및 보조 슬롯을 스캔합니다. 예시(0-0)에서 첫 번째 0은 기본 슬롯, 두 번째 0은 보조 슬롯입니다.)
따라서 슬롯에 있는 RAM의 첫 번째 페이지가 메인 RAM으로 선택됩니다.
MSX 컴퓨터에는 최소 8kB의 RAM이 있어야 하며, 이는 상위 E000h ~ FFFFh입니다. 슬롯에서 16kB 페이지가 발견되지 않으면 이 영역이 스캔됩니다.
참고:
- MSX1/2/2+에서는 위에서 설명한 대로 메인 RAM이 감지됩니다. 메모리 매퍼는 고려되지 않습니다.
- MSX 터보 R에서는 R800 모드에서 훨씬 빠른 속도로 액세스할 수 있기 때문에 기본적으로 내부 RAM이 선택됩니다.
다음으로, MSX2/MSX2+ 시스템은 서브 롬을 검색합니다(각 슬롯에서 0000h의 "CD" 문자를 검색하고 발견 시 0102h에서 슬롯 간 호출을 수행합니다). 이 단계는 서브 롬이 직접 호출되기 때문에 MSX Turbo R에서는 수행되지 않습니다.
그런 다음 시스템은 실행 가능한 ROM을 검색합니다(각 슬롯에서 4000h와 8000h에서 "AB" 문자를 검색하고, 발견되면 INIT에 지정된 주소로 슬롯 간 호출을 수행합니다). (자세한 내용은 여기를 참조하세요.)
디스크가 설치된 RAM
디스크가 있는 경우 디스크-ROM의 재설정 루틴은 현재 선택된 페이지 0과 1의 슬롯을 F341h 및 F342h에 저장한 다음 0000h~3FFFh 및 4000h~7FFFh 페이지의 슬롯을 스캔하여 위에 표시된 것과 동일한 방식으로 나머지 32kB를 찾습니다. 페이지 2와 3에서 찾은 RAM 슬롯은 F343h와 F344h에 저장됩니다.
Disk-ROM이 v2.20 이상인 경우, 내부 메모리를 선택하는 MSX 터보 R을 제외하고 각 페이지에서 첫 번째 더 큰 메모리 매퍼가 선택됩니다.
Disk-ROM v2.30 이상일 경우, 시동 중에 '1' 키를 눌러 강제로 DOS1 모드로 전환하거나 DOS1을 부팅하면 0페이지와 1페이지(0000h~7FFFh)에서 위에서 설명한 대로 메인 RAM이 감지됩니다. MSX 터보 R은 Z80 모드를 선택하면 상단 두 페이지에서만 내부 RAM이 선택됩니다.
기본 모드에서 시스템이 시작되면 메모리 맵은 아래와 같습니다.
기본 환경의 기본 메모리 맵:
메모리 맵에 따르면 MSX는 메인 램의 상단 부분만 절반까지만 선택합니다. 사용자가 사용할 수 있는 RAM은 8kB의 MSX 컴퓨터에서는 주소 0E000h에서 시작하고, 16kB의 경우 0C000h에서 시작합니다. 다른 모든 MSX에서는 주소 08000h에서 시작됩니다. 이 주소는 BOTTOM(0FC48h) 시스템 변수로 표시됩니다. 사용 가능한 RAM의 끝을 확인하려면 MEMSIZ(0F672h) 변수를 읽습니다.
기본 명령어를 지우면 작업 디스크 위에 "보호" 영역을 만들어 거기에 기계어로 된 자체 루틴을 배치할 수 있습니다. HIMEM(0FC4Ah)은 CLEAR 문의 두 번째 파라미터로 지정되며, MEMSIZ(0F672h)와 DSKTOP(0F674h) 사이의 변수 영역의 크기는 첫 번째 파라미터로 정의됩니다.
32KB 이상의 RAM이 있는 MSX에서는 기본에서 액세스할 수 없는 나머지 RAM에 액세스하기 위해 슬롯을 조작해야 합니다.
롬(ROMs)
MSX 컴퓨터에는 다음과 같은 표준 ROM이 있습니다:
- BIOS와 MSX-BASIC 인터프리터가 포함된 메인-ROM. (MSX1~)
- 새로운 MSX-BASIC 명령어와 MSX2에 의해 추가된 새로운 장치용 BIOS가 포함된 서브-ROM. (MSX2~)
- 디스크-ROM BIOS와 디스크 BASIC이 포함된 디스크-ROM. (MSX 터보 R)(이전 세대의 경우 옵션)
- FM-BIOS 및 MSX-MUSIC BASIC이 포함된 MSX-MUSIC. (MSX 터보 R)(이전 세대의 경우 옵션)
2K, 4K, 8K 등 다른 ROM 크기라도 슬롯 시스템은 메모리를 16kB 페이지로 나누고 슬롯 레지스터에 페이지 번호를 기록하여 4페이지에서 페이지를 선택할 수 있습니다. 주소 4000h 또는 8000h에서 "AB" 문자가 발견되면 MSX 시작 시 ROM이 자동으로 실행됩니다. (자세한 내용은 ROM 헤더 참조).
메가롬이라는 표준화되지 않은 시스템을 통해 ROM 크기를 확장할 수 있습니다. 메가롬 매퍼와 비슷하지만 메가롬 매퍼 유형을 사용하는 메가롬 매퍼도 있습니다. 하지만 이는 대부분 크랙된 ROM 게임을 플레이하기 위한 것입니다. (ROM 매퍼 참조)