모드 13h
Mode 13hMode 13h는 1987년 IBM PS/2에서 도입된 VGA 그래픽 하드웨어의 표준 256색 모드입니다.해상도는 320×[1]200픽셀입니다.1980년대 후반과 1990년대 초중반의 컴퓨터 게임과 아트/애니메이션 소프트웨어에서 광범위하게 사용되었습니다."13h"는 VGA BIOS에서 모드 수를 나타냅니다."h"는 16진수를 나타냅니다.
Mode 13h는 프로그래머에게 비디오 메모리의 선형 320x200 블록을 제공합니다.여기서 각 바이트는 1개의 픽셀을 나타냅니다.이것에 의해, VGA 하드웨어의 다른 편리한 기능에의 액세스를 희생하고, 간단하게 프로그래밍할 수 있습니다.
4:3 디스플레이에서 사용하는 320×200 해상도 화면의 가로 세로 비율을 고려할 때 Mode 13h에는 정사각형 [2]픽셀이 없습니다.
기술적 세부사항
Mode 13h는 하드웨어의 관점에서 볼 때 평면 디바이스이기 때문에 매우 흥미롭습니다.또, VGA는 통통한 그래픽스 조작에 적합하지 않습니다.VGA에는 256KiB의 비디오 메모리가 있으며, 64KiB의 4개의 뱅크로 구성되어 있으며, 이는 평면(IBM 설명서에서는 '맵')으로 알려져 있습니다.평면 메모리 배열은 픽셀을 수평으로 4개의 그룹으로 분할합니다.PC의 64KiB 비디오 메모리 조리개 내의 특정 바이트에 대해 필요한 평면을 선택하여 4개의 픽셀에 액세스할 수 있습니다.이것은 프로그래머에게 더 복잡하지만 사용 가능한 모든 비디오 메모리 및 기타 이점에 액세스할 수 있습니다(모드 X 참조).
그러나 Mode 13h에서는 프로그래머가 "chunky"(선형) 방식으로 VGA에 액세스할 수 있습니다. 여기서 개구부의 각 연속된 주소는 화면 상의 연속된 픽셀을 나타냅니다.수정하거나 읽을 올바른 픽셀을 선택하기 위해 평면을 조작할 필요가 없습니다.이는 16비트 조리개 주소의 가장 낮은 2비트를 사용하여 쓰기/읽기 평면을 선택하는 VGA 'Chain 4' 설정을 사용하여 이루어집니다.결론은 프로그래머가 단순한 액세스 모델을 가지고 있다는 것입니다. 단점은 비디오 플레인 주소 공간 중 2개(16KiB)만14 액세스할 수 있다는 것입니다(다른 2비트는 플레인 선택에 사용됨). 따라서 총 64KiB만 주소가 지정됩니다(4×16KiB).이 모드에서는 각 평면의 상위 48KiB가 사용되지 않습니다.
SVGA나 그 이상의 색심도와 달리, MCGA 비디오 모드 세트의 일부인 Mode 13h는 채널당 6개씩 18비트의 색상을 가집니다.팔레트 데이터는 메모리 자체에 저장되지 않고 저레벨의 I/O 포트 호출에 의해 DAC 레지스터에 수정, 읽기 및 쓰기가 이루어집니다.
색상 팔레트 데이터는 화면 데이터 뒤에 저수준 포트에서 메모리의 한 스폿으로 한 번에 하나씩 복사되어 색상이 속한 픽셀과 함께 저장되는 경우가 많습니다.모드 13h 화면 캡처는 0에서 255까지의 값의 64,000바이트에 불과하며, 각 값은 여러 색상의 기존의 팔레트로부터의 색지수이다.색상 팔레트가 혼재하거나 완전히 잘못된 경우 256개 중 어떤 색상이 설정되어 있는지에 따라 녹색 잎이 파란색 또는 기타 가능한 색으로 표시됩니다.
이러한 환경에서는 메모리 청크가 할당되어 있기 때문에, 높은 주소 0xA000의 낮은 주소 64000~64768 의 바이트를, 부정적인 영향 없이 쓸 수 있습니다.이를 통해 프로그래머는 화면 캡처 파일의 끝에 추가 바이트인 256(표준) × 3(색상 채널) = 768바이트를 저장할 수 있습니다.색상 정보의 바닥글이 포함된 이미지가 로드되면 다시 읽어내고 색상 포트에 기록해야 변경할 수 있습니다.이와 함께 사용된 방법은 글로벌 팔레트를 사용하여 이전 색상 팔레트의 색상을 새 색상 팔레트에 맞추는 것이었습니다.이것은 각 픽셀의 인덱스를 변경하는 것을 의미하며, 이전 색상에서 새로운 색상으로 한 색상의 거의 완벽한 일치를 가리킵니다.또, 구배가 충분하지 않은 경우도 있어, 아티팩트가 나타나는 등의 단점도 있었습니다.
BIOS에서 그래픽 모드를 설정할 필요는 없습니다.좀 더 복잡한 경우 32비트 보호 모드로 그래픽 모드를 전환할 수 있습니다.VGA 컨트롤러에 크기 데이터를 쓰는 작업이 포함됩니다.
변종
체인 4 모드를 무효로 하는 것으로, 다른 평면 256 컬러 모드를 사용할 수 있습니다.이 기술을 사용하여 만든 비디오 모드를 총칭하여 Mode X라고 부릅니다. 단, 원래 이 용어는 정사각형 픽셀을 가진 VGA 모드에 사용되었습니다.이러한 모드(다른 많은 가능한 VGA 모드와 함께)는 IBM에 의해 구체적으로 문서화되어 있지 않지만, VGA 하드웨어 기능 및 구현에 사용되는 기능은 적어도 1988년에 PS/2 하드웨어 인터페이스 기술 레퍼런스에 문서화되어 있습니다.
표기법
x86 어셈블리 언어에서는 AL이 13h, AH가 0, BIOS INT 10h가 [1]실행되면 모드가 시작됩니다.단, QuickBasic 및 그 [3]스피노프에서는 화면 모드 13으로 알려져 있는 등 해당 표기법을 지원하지 않는 언어에서는 "h"가 삭제되는 경우가 있습니다.QuickBASIC에는 자체 화면 모드 번호 지정 방식이 있으며 많은 QuickB가 있습니다.ASIC 화면 모드에는,[4] 그 베이스가 되는 BIOS 모드와는 다른 번호가 있습니다.C에서는 16진수 13은 0x13으로 표기됩니다.
레퍼런스
- ^ a b Brown, Ralf D. "Ralf Brown's Interrupt List". Retrieved 2018-08-24.
- ^ Fabien Sanglard, GAME ENGE BLACK BOOK: WOLFENSTEIN 3D, 제2판, Chapter Hardware, 59페이지, https:https://fabiensanglard.net/gebb/index.html에서 무료로 구할 수 있습니다.
- ^ "Microsoft QuickBasic 4.5 Advisor". Microsoft. 1990. Retrieved 2007-07-19.
- ^ 주요 예로는 QuickB가 있습니다.ASIC 화면 모드0 : 모든 BIOS 텍스트모드 00h..03h. QuickB도 마찬가지입니다.ASIC 화면 모드 1 및 2는 CGA BIOS 모드 04h~06h에 대응하고 있습니다.QuickB의 추가 정보ASIC에는 표준 BIOS를 전혀 지원하지 않는 헤라클레스 그래픽 모드 및 Olivetti/AT&T 확장 CGA 그래픽 모드 모드가 있습니다.