Инструменты пользователя

Инструменты сайта


msx:yamaha_v9938:yamaha_v9938

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:yamaha_v9938:yamaha_v9938 [2022-04-06 14:32]
GreyWolf [Руководство программиста]
msx:yamaha_v9938:yamaha_v9938 [2023-06-27 19:19] (текущий)
GreyWolf
Строка 1: Строка 1:
 ====== Yamaha V9938 (VDP) ====== ====== Yamaha V9938 (VDP) ======
  
-Видеопроцессор (VDP), используемый в большинстве компьютеров [[msx:​msx_2]].+Видеопроцессор (VDP), используемый в большинстве компьютеров [[msx:msx_2]] и [[msx:​msx_1.5|]].
  
 Разрешения прогрессивной развертки:​ Разрешения прогрессивной развертки:​
Строка 31: Строка 31:
 ====== Руководство программиста ====== ====== Руководство программиста ======
  
-На основе **V9938 MSX-VIDEO Technical Data Book Programmer’s Guide** (переписано и отредактировано Евгением Брычковым):​+На основе **%%V9938 MSX-VIDEO Technical Data Book Programmer’s Guide%%** (переписано и отредактировано Евгением Бричковым):​
   * {{v9938-programmers-guide.pdf|редакция 1.01d от 2020-09-06}}   * {{v9938-programmers-guide.pdf|редакция 1.01d от 2020-09-06}}
-  * {{v9938-programmers-guide_20220313.pdf|редакция 1.01e от 2022-03-13}} (отличия в страницах:​ 3, 25, 28, 29, 33, 34, 37, 38, 41, 42, 46, 49, 54, 55, 58, 59, 62)+  * {{v9938-programmers-guide_20220313.pdf|редакция 1.01e от 2022-03-13}} (отличия в страницах:​ 3, 25, 28, 29, 33, 34, 37, 38, 41, 42, 46, 49, 54, 58, 62
 +  * {{v9938-programmers-guide_20220621.pdf|редакция 1.01f от 2022-06-21}} (отличия в страницах:​ 3, 16, 21, 72, 79, 82, 108)
 [[http://​rs.gr8bit.ru/​Documentation/​V9938-programmers-guide.pdf|оригинал]] [[http://​rs.gr8bit.ru/​Documentation/​V9938-programmers-guide.pdf|оригинал]]
  
-Выражаем огромную благодарность **Dolphin_Soft** за помощь в переводе,​исправлении и дополнении этих материалов. ​+Выражаем огромную благодарность **Dolphin_Soft** за помощь в переводе,​ исправлении и дополнении этих материалов. ​ 
  
 ~~TOC_HERE~~ ~~TOC_HERE~~
 ~~TOC wide~~ ~~TOC wide~~
 +
  
 {{anchor:​definitions}} {{anchor:​definitions}}
Строка 169: Строка 172:
 {{anchor:​n14s2}} {{anchor:​n14s2}}
 **Шаг 2: Установка счетчика адреса (биты A16…A14)** **Шаг 2: Установка счетчика адреса (биты A16…A14)**
-\\ VDP может логически адресовать 128 Кбайт в диапазоне адресов 0x00000–0x1FFFF через ​16–ти ​битные ​адреса,​ задаваемые через A16…A0. На этом шаге мы устанавливаем биты A16…A14, записывая их в [[#R14]] (регистр базового адреса доступа к VRAM). ​+\\ VDP может логически адресовать 128 Кбайт в диапазоне адресов 0x00000–0x1FFFF через ​17 бит адреса,​ задаваемые через A16…A0. На этом шаге мы устанавливаем биты A16…A14, записывая их в [[#R14]] (регистр базового адреса доступа к VRAM). ​
  
 |<100% 10% 5% 5% 5% 5% 5% 5% 5% 5% 35%>| |<100% 10% 5% 5% 5% 5% 5% 5% 5% 5% 35%>|
Строка 349: Строка 352:
 |**R10\_(ТCT)**| ​ 0  |  0  |  0  |  0  |  0  |  A16  |  A15  |  A14  |Старшие разряды TCT {{anchor:​r10}}| |**R10\_(ТCT)**| ​ 0  |  0  |  0  |  0  |  0  |  A16  |  A15  |  A14  |Старшие разряды TCT {{anchor:​r10}}|
 |**R4\_\_\_(TPT)**| ​ 0  |  0  |  A16  |  A15  |  A14  |  A13  |  A12  |  A11  |[[#​pgt|Таблица знакогенератора]] {{anchor:​r4}}| |**R4\_\_\_(TPT)**| ​ 0  |  0  |  A16  |  A15  |  A14  |  A13  |  A12  |  A11  |[[#​pgt|Таблица знакогенератора]] {{anchor:​r4}}|
-|**R5\_\_\_(SAT)**| ​ A14  |  A13  |  A12  |  A12  |  A10  |  A9  |  A8  |  A7  |Таблица атрибутов спрайтов [[#n222fn1|*]] {{anchor:​r5}}|+|**R5\_\_\_(SAT)**| ​ A14  |  A13  |  A12  |  A12  |  A10  |  A9  |  A8  |  A7  |Таблица атрибутов спрайтов [[#n222fn1|]] {{anchor:​r5}}|
 |**R11\_(SAT)**| ​ 0  |  0  |  0  |  0  |  0  |  0  |  A16  |  A15  |Старшие разряды SAT {{anchor:​r11}}| |**R11\_(SAT)**| ​ 0  |  0  |  0  |  0  |  0  |  0  |  A16  |  A15  |Старшие разряды SAT {{anchor:​r11}}|
 |**R6\_\_\_(SPT)**| ​ 0  |  0  |  A16  |  A15  |  A14  |  A13  |  A12  |  A11  |Таблица шаблонов спрайтов {{anchor:​r6}}| |**R6\_\_\_(SPT)**| ​ 0  |  0  |  A16  |  A15  |  A14  |  A13  |  A12  |  A11  |Таблица шаблонов спрайтов {{anchor:​r6}}|
  
 {{anchor:​n222fn1}} {{anchor:​n222fn1}}
-В режиме SM2 спрайтового движка,​ SAT так же указывает на SCT — Таблицу цветов спрайтов (спрайтовая окраска). Адрес SCT равен полному адресу SAT, минус 512 байт.+∗ В режиме SM2 спрайтового движка,​ SAT так же указывает на SCT — Таблицу цветов спрайтов (спрайтовая окраска). Адрес SCT равен полному адресу SAT, минус 512 байт.
  
 {{anchor:​n223}} {{anchor:​n223}}
Строка 447: Строка 450:
 |  <fs 80%>​старший бит</​fs>​^ ​ 7  ^  6  ^  5  ^  4  ^  3  ^  2  ^  1  ^  0  |<fs 80%>​младший бит</​fs>​| |  <fs 80%>​старший бит</​fs>​^ ​ 7  ^  6  ^  5  ^  4  ^  3  ^  2  ^  1  ^  0  |<fs 80%>​младший бит</​fs>​|
 |**R14**| ​ 0  |  0  |  0  |  0  |  0  |  A16  |  A15  |  A14  |Базовый регистр доступа к VRAM | |**R14**| ​ 0  |  0  |  0  |  0  |  0  |  A16  |  A15  |  A14  |Базовый регистр доступа к VRAM |
-R14 содержит три старших бита адреса доступа к VRAM. Во всех режимах,​ кроме [[#​G1|Graphic1]],​ [[#​G2|Graphic2]],​ [[#​MC|MultiColor]] и [[#Text1]], если есть флаг переноса из A13, значение в этом регистре автоматически инкрементируется. ​+R14 содержит три старших бита адреса доступа к VRAM. Во всех режимах,​ кроме [[#​G1|Graphic1]],​ [[#​G2|Graphic2]],​ [[#​MC|MultiColor]] и [[#Text1]], если ​из–за автоинкримента адреса в битах A13...A0, ​есть флаг переноса из бита адреса ​A13, значение в этом регистре ​R14 автоматически инкрементируется.
  
 {{anchor:​r15}} {{anchor:​r15}}
Строка 1144: Строка 1147:
 |Размер шаблона с точках (Ш×В)|8×8| |Размер шаблона с точках (Ш×В)|8×8|
 |Число шаблонов|768 (по 256 на 1⁄3 экрана)| |Число шаблонов|768 (по 256 на 1⁄3 экрана)|
-|Размер экрана,​ в шаблонах (Ш×В)|32×24 (256×192 точки) [[#n35fn1|*]]|+|Размер экрана,​ в шаблонах (Ш×В)|32×24 (256×192 точки) [[#n35fn1|]]|
 |Цвета шаблона|16 цветов из 512 (на экран)| |Цвета шаблона|16 цветов из 512 (на экран)|
 |Режим спрайтов|Graphic2 — [[#​sm1|Sprite mode 1]] \\ Graphic3 — [[#​sm2|Sprite mode 2]]| |Режим спрайтов|Graphic2 — [[#​sm1|Sprite mode 1]] \\ Graphic3 — [[#​sm2|Sprite mode 2]]|
Строка 1150: Строка 1153:
  
 {{anchor:​n35fn1}} {{anchor:​n35fn1}}
-Режимы Graphic2 и Graphic3 идентичны,​ за исключением режима спрайтов. ​+∗ Режимы Graphic2 и Graphic3 идентичны,​ за исключением режима спрайтов. ​
  
 |<60% 60% 40%>| |<60% 60% 40%>|
Строка 1182: Строка 1185:
  
 {{anchor:​n35fn1}} {{anchor:​n35fn1}}
-В режиме 212 строки (бит LN регистра [[#R9]] равен 1) дополнительные 20 строк отображаются как пустые с цветной рамкой,​ невозможно отобразить что-либо в этом пространстве.+∗ В режиме 212 строки (бит LN регистра [[#R9]] равен 1) дополнительные 20 строк отображаются как пустые с цветной рамкой,​ невозможно отобразить что-либо в этом пространстве.
  
 {{anchor:​n351}} {{anchor:​n351}}
Строка 1296: Строка 1299:
 |  0x00000 \\ \\ \\ \\ 0x007FF| ​ Верхняя 1/3 \\ (256*8=2048 байт) ​ || |  0x00000 \\ \\ \\ \\ 0x007FF| ​ Верхняя 1/3 \\ (256*8=2048 байт) ​ ||
 |  0x00800 \\ \\ \\ \\ 0x00FFF| ​ Средняя 1/3 \\ (256*8=2048 байт) ​ || |  0x00800 \\ \\ \\ \\ 0x00FFF| ​ Средняя 1/3 \\ (256*8=2048 байт) ​ ||
-|  0x01000 \\ \\ \\ \\ 0x017FF| ​ Нижняя 1/3 \\ (256*8=2048 байт)[[#​n356fn1|*]]  ||+|  0x01000 \\ \\ \\ \\ 0x017FF| ​ Нижняя 1/3 \\ (256*8=2048 байт)[[#​n356fn1|]]  ||
 |  ^  [[#​g2|Graphic2]] ​ ^  [[#​g3|Graphic3]] ​ | |  ^  [[#​g2|Graphic2]] ​ ^  [[#​g3|Graphic3]] ​ |
-|  0x01800 \\ \\ \\ \\ 0x01BFF| ​ Sprite pattern table \\ (128*8=1024 байт)[[#​n356fn2|**]]  |  Sprite pattern table \\ (128*8=1024 байт)[[#​n356fn2|**]] ​ |+|  0x01800 \\ \\ \\ \\ 0x01BFF| ​ Sprite pattern table \\ (128*8=1024 байт)[[#​n356fn2|∗∗]]  |  Sprite pattern table \\ (128*8=1024 байт)[[#​n356fn2|**]] ​ |
 |  0x01C00 \\ \\ \\ \\ 0x01C7F| ​ Sprite attribute table \\ (32*4=128 байт) ​ |  Sprite color table \\ (32*16=512 байт) ​ | |  0x01C00 \\ \\ \\ \\ 0x01C7F| ​ Sprite attribute table \\ (32*4=128 байт) ​ |  Sprite color table \\ (32*16=512 байт) ​ |
 |  0x01C80 \\ \\ \\ \\ 0x01DFF| ​ ---  |:::| |  0x01C80 \\ \\ \\ \\ 0x01DFF| ​ ---  |:::|
Строка 1307: Строка 1310:
 |  0x02000 \\ \\ \\ \\ 0x027FF| ​ Верхняя 1/3 \\ (256*8=2048 байт) ​ || |  0x02000 \\ \\ \\ \\ 0x027FF| ​ Верхняя 1/3 \\ (256*8=2048 байт) ​ ||
 |  0x02800 \\ \\ \\ \\ 0x02FFF| ​ Средняя 1/3 \\ (256*8=2048 байт) ​ || |  0x02800 \\ \\ \\ \\ 0x02FFF| ​ Средняя 1/3 \\ (256*8=2048 байт) ​ ||
-|  0x03000 \\ \\ \\ \\ 0x037FF| ​ Нижняя 1/3 \\ (256*8=2048 байт)[[#​n356fn1|*]]  || +|  0x03000 \\ \\ \\ \\ 0x037FF| ​ Нижняя 1/3 \\ (256*8=2048 байт)[[#​n356fn1|]]  || 
-|  0x03800 \\ \\ \\ \\ 0x03AFF| ​ Pattern layout table \\ (256*8=2048 байт)[[#​n356fn1|*]]  ||+|  0x03800 \\ \\ \\ \\ 0x03AFF| ​ Pattern layout table \\ (256*8=2048 байт)[[#​n356fn1|]]  ||
 |  \_ \\ \_ … \\ \_  |  …  || |  \_ \\ \_ … \\ \_  |  …  ||
 |  0x04000 \\ \\ \\ \\ 0x1FFFF|Таким же образом можно выделить максимум 8 страниц,​ если к VDP подключено 128 Кбайт.|| |  0x04000 \\ \\ \\ \\ 0x1FFFF|Таким же образом можно выделить максимум 8 страниц,​ если к VDP подключено 128 Кбайт.||
Строка 1314: Строка 1317:
  
 {{anchor:​n356fn1}} {{anchor:​n356fn1}}
-В режиме 212 строки (бит LN регистра [[#R9]] равен 1) дополнительные 20 строк отображаются как пустые с цветной рамкой,​ невозможно отобразить что-либо в этом пространстве.+∗ В режиме 212 строки (бит LN регистра [[#R9]] равен 1) дополнительные 20 строк отображаются как пустые с цветной рамкой,​ невозможно отобразить что-либо в этом пространстве.
  
 {{anchor:​n356fn2}} {{anchor:​n356fn2}}
-%%**%% ​В этом режиме доступна только половина от максимально возможного количества спрайтов — от 0 до 127. Спрайты с номерами 128-255 перекрывают таблицу макетов шаблонов (Pattern Layout Table).+∗∗ ​В этом режиме доступна только половина от максимально возможного количества спрайтов — от 0 до 127. Спрайты с номерами 128-255 перекрывают таблицу макетов шаблонов (Pattern Layout Table).
  
 {{anchor:​n36}} {{anchor:​n36}}
Строка 1585: Строка 1588:
 Пример распределения видеопамяти для режима [[#​g5|Graphic5]]:​ Пример распределения видеопамяти для режима [[#​g5|Graphic5]]:​
 |<100% 10% 20% 70%>| |<100% 10% 20% 70%>|
-|  0x00000 \\ \\ \\ \\ |  Pattern name table  | | +|  0x00000 \\ \\ \\ \\ |  Pattern name table \\ (512*192/​4=24576 байт) \\ (512*212/​4=27136 байт) ​ | | 
-|  0x02000 \\ \\ \\ \\ | |:::| +|  0x02000 \\ \\ \\ \\ |:::|:::| 
-|  0x04000 \\ \\ \\ \\  ​|  192 lines  |:::| +|  0x04000 \\ \\ \\ 0x05FFF|  192 lines  |:::| 
-|  0x06000 \\ \\ \\ \\  ​|  212 lines  |:::| +|  0x06000 \\ \\ \\ 0x069FF|  212 lines  |:::| 
-|  0x06A00 \\ \\ \\ \\  |:::| +|  0x06A00 \\ \\ \\ 0x06FFF| ​ —  ​|:::​| 
-|  0x07000 \\ \\ \\ \\  ​|  Sprite pattern table  |:::| +|  0x07000 \\ \\ \\ 0x077FF|  Sprite pattern table \\ (256*8=2048 байт) ​ ​|:::​| 
-|  0x00780 \\ \\ \\ \\  ​|  Sprite color table  |:::| +|  0x00780 \\ \\ \\ 0x079FF|  Sprite color table \\ (32*16=512 байт) ​ ​|:::​| 
-|  0x07A00 \\ \\ \\ \\ 0x07A80|  Sprite attribute table  |:::| +|  0x07A00 \\ \\ \\ 0x07A7F|  Sprite attribute table \\ (32*4=128 байт) ​ ​|:::​| 
-|  ​0x08000 ​\\ \\ \\ \\  ​| |:::|+|  ​0x07A80 ​\\ \\ \\ 0x07FFF ​—  ​|:::|
 |  \_ \\ \_ … \\ \_  |  …  |Таким же образом можно выделить максимум 4 страницы,​ если к VDP подключено 128 Кбайт.| |  \_ \\ \_ … \\ \_  |  …  |Таким же образом можно выделить максимум 4 страницы,​ если к VDP подключено 128 Кбайт.|
-|  ​\\ \\ \\ \\ 0x1FFFF| |:::|+|  ​0x08000 ​\\ \\ \\ 0x1FFFF| |:::|
  
 {{anchor:​n38}} {{anchor:​n38}}
Строка 1693: Строка 1696:
 Пример распределения видеопамяти для режима [[#​g6|Graphic6]]:​ Пример распределения видеопамяти для режима [[#​g6|Graphic6]]:​
 |<100% 10% 20% 70%>| |<100% 10% 20% 70%>|
-|  0x00000 \\ \\ \\ \\ |  Pattern name table  | | +|  0x00000 \\ \\ \\ \\ |  Pattern name table \\ (512*192/​2=49152 байт) \\ (512*212/​2=54272 байт) ​ | | 
-|  0x04000 \\ \\ \\ \\ | |:::| +|  0x04000 \\ \\ \\ \\ |:::|:::| 
-|  0x08000 \\ \\ \\ \\  ​|  192 lines  |:::| +|  0x08000 \\ \\ \\ |  192 lines  |:::| 
-|  0x0C000 \\ \\ \\ \\  |  212 lines  |:::| +|  0x0C000 \\ \\ \\ \\ |  212 lines  |:::| 
-|  0x0D400 \\ \\ \\ \\  |:::| +|  0x0D400 \\ \\ \\ 0x0F000| ​ —  ​|:::​| 
-|  0x0F000 \\ \\ \\ \\  ​|  Sprite pattern table  |:::| +|  0x0F000 \\ \\ \\ 0x0F7FF|  Sprite pattern table \\ (256*8=2048 байт) ​ ​|:::​| 
-|  0x0F800 \\ \\ \\ \\  ​|  Sprite color table  |:::| +|  0x0F800 \\ \\ \\ 0x0F9FF|  Sprite color table \\ (32*16=512 байт) ​ ​|:::​| 
-|  0x0FA00 \\ \\ \\ \\ 0x0FA80|  Sprite attribute table  |:::| +|  0x0FA00 \\ \\ \\ 0x00FA7F|  Sprite attribute table \\ (32*4=128 байт) ​ ​|:::​| 
-|  ​0x10000 \\ \\ \\ \\  | |:::| +|  ​0x07A80 ​\\ \\ \\ 0x0FFFF ​—  ​|:::| 
-|  \_ \\ \_ … \\ \_  |  …  |Таким же образом можно выделить максимум ​страницы,​ если к VDP подключено 128 Кбайт.| +|  \_ \\ \_ … \\ \_  |  …  |Таким же образом можно выделить максимум ​страницы,​ если к VDP подключено 128 Кбайт.| 
-|  ​\\ \\ \\ \\ 0x1FFFF| |:::|+|  ​0x10000 ​\\ \\ \\ 0x1FFFF| |:::|
  
 {{anchor:​n39}} {{anchor:​n39}}
Строка 1809: Строка 1812:
  
 |<100% 10% 20% 70%>| |<100% 10% 20% 70%>|
-|  0x00000 \\ \\ \\ \\ |  Pattern name table  | | +|  0x00000 \\ \\ \\ \\ |  Pattern name table \\ (512*192/​2=49152 байт) \\ (512*212/​2=54272 байт) ​ | | 
-|  0x04000 \\ \\ \\ \\ | |:::|+|  0x04000 \\ \\ \\ \\ |:::|:::|
 |  0x08000 \\ \\ \\ \\  |  192 lines  |:::| |  0x08000 \\ \\ \\ \\  |  192 lines  |:::|
 |  0x0C000 \\ \\ \\ \\  |  212 lines  |:::| |  0x0C000 \\ \\ \\ \\  |  212 lines  |:::|
 |  0x0D400 \\ \\ \\ \\  | |:::| |  0x0D400 \\ \\ \\ \\  | |:::|
-|  0x0F000 \\ \\ \\ \\  ​|  Sprite pattern table  |:::| +|  0x0F000 \\ \\ \\ 0x0F7FF|  Sprite pattern table \\ (256*8=2048 байт) ​ ​|:::​| 
-|  0x0F800 \\ \\ \\ \\  ​|  Sprite color table  |:::| +|  0x0F800 \\ \\ \\ 0x0F9FF|  Sprite color table \\ (32*16=512 байт) ​ ​|:::​| 
-|  0x0FA00 \\ \\ \\ \\ 0x0FA80|  Sprite attribute table  |:::| +|  0x0FA00 \\ \\ \\ \\ 0x0FA7F|  Sprite attribute table \\ (32*4=128 байт) ​ ​|:::​| 
-|  ​0x10000 ​\\ \\ \\ \\  | |:::|+|  ​0x0FA80 ​\\ \\ \\ \\ 0x0FFFF ​—  ​|:::|
 |  \_ \\ \_ … \\ \_  |  …  |Таким же образом можно выделить максимум 2 страницы,​ если к VDP подключено 128 Кбайт.| |  \_ \\ \_ … \\ \_  |  …  |Таким же образом можно выделить максимум 2 страницы,​ если к VDP подключено 128 Кбайт.|
-|  ​\\ \\ \\ \\ 0x1FFFF| |:::|+|  ​0x10000 ​\\ \\ \\ 0x1FFFF| |:::|
  
 {{anchor:​n4}} {{anchor:​n4}}
Строка 1903: Строка 1906:
 ===== 4.3. Logical operations ===== ===== 4.3. Logical operations =====
 FIXME FIXME
 +
 +When executing logical commands LINE, PSET and LOGICAL MOVE, it is possible to define logical operation to be done on the color of the pixels. The four bits identifying the logical operation should be written in lower four bits of R#46 (command register) together with the command code.
 +
 +^Name^Operation^LO3^LO2^LO1^LO0^
 +|IMP|DC=SC|0|0|0|0|
 +|AND|DC=SC&​DC|0|0|0|1|
 +|OR|%%DC=SC|DC%%|0|0|1|0|
 +|XOR|%%DC=SC^DC%%|0|0|1|1|
 +|NOT|DC=!SC|0|1|0|0|
 +|Invalid||0|1|0|1|
 +|:::​||0|1|1|0|
 +|:::​||0|1|1|1|
 +|TIMP|If SC=0 then DC=DC else DC=SC|1|0|0|0|
 +|TAND|If SC=0 then DC=DC else %%DC=SC&​DC%%|1|0|0|1|
 +|TOR|If SC=0 then DC=DC else %%DC=SC|DC%%|1|0|1|0|
 +|TXOR|If SC=0 then DC=DC else %%DC=SC^DC%%|1|0|1|1|
 +|TNOT|If SC=0 then DC=DC else DC=!SC|1|1|0|0|
 +|Invalid||1|1|0|1|
 +|:::​||1|1|1|0|
 +|:::​||1|1|1|1|
 +
 +*SC = source color code
 +
 +*DC = destination color code
  
 {{anchor:​n46}} {{anchor:​n46}}
Строка 1942: Строка 1969:
   * [[msxorg>​wiki/​Yamaha_V9938|Yamaha V9938]]   * [[msxorg>​wiki/​Yamaha_V9938|Yamaha V9938]]
   * [[http://​map.grauw.nl/​resources/​|Resources - MSX Assembly Page]]   * [[http://​map.grauw.nl/​resources/​|Resources - MSX Assembly Page]]
-  * DELETEME <del>[[http://sblive.narod.ru/ZX-Spectrum/V9938Manual/​V9938Cont.htm|MSX-VDP V-9938 Руководство пользователя]]</​del>​+  * [[http://map.grauw.nl/articles/​vdp-vram-timing/vdp-timing.html|V9938 VRAM timings]]
   * [[http://​www.bitsavers.org/​pdf/​yamaha/​Yamaha_V9938_MSX-Video_Technical_Data_Book_Aug85.pdf]]   * [[http://​www.bitsavers.org/​pdf/​yamaha/​Yamaha_V9938_MSX-Video_Technical_Data_Book_Aug85.pdf]]
- 
  
 ---- ----
msx/yamaha_v9938/yamaha_v9938.1649244752.txt.gz · Последние изменения: 2022-04-06 14:32 — GreyWolf