Как опредилить русскую Yamaha MSX/MSX2 из asm.

Por max_iwamoto

Hero (548)

imagem de max_iwamoto

06-07-2009, 21:02

У меня стоит задача написать код, который должен определить, что компьютер является русской версией Yamaha MSX/MSX2.

Самое лучшее, что я пока придумал - это через русский шрифт.
У меня стоит задача написать код, который должен определить, что компьютер является русской версией Yamaha MSX/MSX2.

Самое лучшее, что я пока придумал - это через русский шрифт. Может у кого-то есть другие идеи?
Но способ должен быть простой, т.к. код должен занимать минимально возможное место.

Макс

Entrar ou registrar-se para comentar

Por cax

Prophet (3736)

imagem de cax

06-07-2009, 22:50

Думаю, что через шрифт будет самое правильное. Находишь, скажем, букву "Щ" в ПЗУ и сверяешь 8 байт.

А какая задача стоит - определить русскую машину, или именно Ямаху ? А то ведь есть и Сонька русская (по слухам - побывавшая на станции "Мир" ), может быть и ещё чего.

Por max_iwamoto

Hero (548)

imagem de max_iwamoto

06-07-2009, 23:09

Думаю, что через шрифт будет самое правильное. Находишь, скажем, букву "Щ" в ПЗУ и сверяешь 8 байт.

Буква Щ это хороший выбор. Только не думаю, что у меня будет место сравнить 8 байт, думаю 3-4 должно хватить.
Хотя можно и посчитать контрольную сумму 8 байт.


А какая задача стоит - определить русскую машину, или именно Ямаху ? А то ведь есть и Сонька русская (по слухам - побывавшая на станции "Мир" ), может быть и ещё чего.

Задача стоит сделать универсальный ввод с клавиатуры. Т.к. в Я махе раскладка сильно отличается, то прийдется писать другой код. Если с Сони раскладка QWERTY, о все будет нормально. А если нет, то встает ворос о том насколько буква Щ в Yamaha похожа на русскую букву Щ в Сони. У меня есть большое подозрение, что знакогенераторы там разные. Но для этого мне нужна ПЗУ от этой Сони (ага, нашел на BlueMSX сайте).

Конечно самый лучший выход это испоьзовать функцию ПЗУ 009F, но мне это не подходит, т.к. эта процедура ожидает нажатия клавиши.

Por Igor_BOCHAROV

Expert (125)

imagem de Igor_BOCHAROV

07-07-2009, 00:40

0010 Get Char чем тебя не устраивает?

Por max_iwamoto

Hero (548)

imagem de max_iwamoto

07-07-2009, 01:35

0010 Get Char чем тебя не устраивает?

Address : #0010
Function : Gets the next character (or token) of the Basic-text
Input : HL - Address last character
Output : HL - points to the next character
A - contains the character
C - flag set if it's a number
Z - flag set if it's the end of the statement
Registers: AF, HL

Это для обработки текста Бэйсика. А мне нужен ввод символов с клавиатуры без ожидания.

Por Igor_BOCHAROV

Expert (125)

imagem de Igor_BOCHAROV

07-07-2009, 06:14

Так тут и нет ожидания. Она просто возвращает Zero если символа в буфере нет.

Плять.. Посыпаю голову пеплом.. Перепутал 0010 и 009F...

Por max_iwamoto

Hero (548)

imagem de max_iwamoto

07-07-2009, 16:32

насколько буква Щ в Yamaha похожа на русскую букву Щ в Сони.

Проверил, они одинаковы и расположены в одном месте...

 X X X
 X X X
 X X X
 X X X
 X X X
 XXXXX
     X