Важная информация

User Tag List

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 45

Тема: Определение типа процессора на клонах Вектора

  1. #11
    Activist Аватар для PPC
    Регистрация
    01.03.2011
    Адрес
    Stamford
    Сообщений
    335
    Спасибо Благодарностей отдано 
    46
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Одна тонкость, в production-strength коде всё-таки наверное не стоит использовать недокументированные команды, хотя нам - самое оно.

  2. #12
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Недокументированные команды - моя слабость, пусть их использование и не очень хорошая вещь.

    Кстати, версия 1.0 возвращала уникальные значения аккумулятора для каждого типа процессора, только не по порядку:
    00 - 1821ВМ85
    02 - 580ВМ80
    0A - 580ВМ1
    FF - Z80

  3. #13
    Activist Аватар для PPC
    Регистрация
    01.03.2011
    Адрес
    Stamford
    Сообщений
    335
    Спасибо Благодарностей отдано 
    46
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Недокументированные команды - моя слабость, пусть их использование и не очень хорошая вещь.
    Ну в 8085 их использование почти нормально. Когда у Intel его лицензировали чтобы сделать low power 80с85, то вообще в даташите описали, хотя Intel потом протестовал несильно, потому в последующих версиях камня разработчикам ядра приходится эти команды тащить/эмулировать.

    Цитата Сообщение от ivagor Посмотреть сообщение
    URL="http://zx-pk.ru/showpost.php?p=538130&postcount=5"]версия 1.0[/URL] возвращала уникальные значения аккумулятора для каждого типа процессора, только не по порядку:
    По порядку, само собой лучше по понятным причинам: сдвиг влево, и вот уже готов ключ адреса перехода в таблице.

  4. #14
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Оффтоп про 8085.
    В прошлом году нагуглил название древней статьи про флаг x5. К сожалению в открытом доступе я ее не нашел. Может там ничего нового и нет, но все же интересно.

  5. #15
    Activist Аватар для PPC
    Регистрация
    01.03.2011
    Адрес
    Stamford
    Сообщений
    335
    Спасибо Благодарностей отдано 
    46
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пораскинул мозгами, есть вариант ещё на байт короче, чем самый короткий выше, весь на документированных командах и не требует инициализации <HL> в первые буквы сообщения.
    Скорее всего и это ещё не предел.

    Код:
    ;_CPUTxt  Detects CPU type, returns 0-terminated CPU type string
    ;_INPUT:   NONE
    ;_OUTPUT:  <A>-CPU type:0-i8085, 1-KP580BM1, 2 - i8080, 3-Zilog z80
    
    CPUTXT:	lxi	b,0908h
    	mvi	a,2
    	inr	a
    	lxi	h,_z80
    	rpo
    	push	b
    	pop	psw
    	push	psw
    	pop	b
    	lxi	h,_580VM1
    	mov	a,c
    	sub	b
    	rp
    	add	b
    	lxi	h,_i8080
    	rnz
    	lxi	h,_i8085
    	ret
    
    _i8080:	     DB	"i8080",0
    _580VM1:     DB	"KP580BM1",0
    _z80:        DB	"z80",0
    _i8085:      DB	"i8085",0

  6. #16
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Круто, но вариант с недокументированными снова короче
    Инициализировать HL буквами действительно не стоит, т.к. надпись 580ВМ80 испортится только на ВМ1 и ВМ85, соответственно ее никто не увидит.
    Код:
    cpudetect:	lxi	d, msg_z80
    		xra	a
    		dcr	a
    		mvi	a, 3
    		rpo
    		lxi	d, msg_8080
    		xra	a
    		shlx
    		inr	a
    		mov	h, d
    		mov	l, e
    		dsub	d
    		lxi	d, msg_vm1
    		rz
    		lxi	d, msg_8085
    		inr	a
    		ret

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Activist Аватар для PPC
    Регистрация
    01.03.2011
    Адрес
    Stamford
    Сообщений
    335
    Спасибо Благодарностей отдано 
    46
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну тогда можно ещё короче

    Код:
    cpudetect:	lxi	d, msg_z80
    	        mvi	a,2
                    inr	a
    	        rpo
    		lxi	d, msg_8080
    		xra	a
    		shlx
    		inr	a
    		mov	h, d
    		mov	l, e
    		dsub	d
    		lxi	d, msg_vm1
    		rz
    		lxi	d, msg_8085
    		inr	a
    		ret

  9. #18
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И еще короче:
    Код:
    cpudetect:
    	mvi	a,2
    	inr	a
    	lxi	d,_z80
    	rpo
    	push	psw
    	pop	b
    	dcr	a
    	lxi	d,_i8080
    	shlx
    	ana	c
    	lxi	d,_i8085
    	rz
    	lxi	d,_580VM1
    	dcr	a
    	ret

  10. #19
    Activist Аватар для PPC
    Регистрация
    01.03.2011
    Адрес
    Stamford
    Сообщений
    335
    Спасибо Благодарностей отдано 
    46
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    И еще короче:
    Код:
    	push	psw
    	pop	b
    Не поверишь, но я сейчас прогонял именно такие варианты
    А кстати, какой опкод у dsub d?

  11. #20
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Интересно, какова нижняя граница? Волшебная однобайтовая операция + 4 разных reta (ну и lxi для сообщений)?

    ---------- Post added at 22:43 ---------- Previous post was at 22:41 ----------

    Цитата Сообщение от PPC Посмотреть сообщение
    Не поверишь, но я сейчас прогонял именно такие варианты
    Почему же, верю Вариантов то не так уж много (хотя сначала я думал, что вариантов почти нет).

    Цитата Сообщение от PPC Посмотреть сообщение
    какой опкод у dsub d?
    18h

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Определение текущего адреса
    от Alex Rider в разделе Программирование
    Ответов: 52
    Последнее: 26.07.2012, 13:38
  2. Ответов: 14
    Последнее: 29.01.2009, 13:56
  3. Определение Pentagon 1024/512
    от CPLx в разделе Программирование
    Ответов: 5
    Последнее: 02.03.2008, 22:47
  4. Определение Turbo-FM
    от Максагор в разделе Программирование
    Ответов: 21
    Последнее: 28.09.2007, 20:29
  5. Определение номера дисковода
    от goodboy в разделе Программирование
    Ответов: 2
    Последнее: 22.06.2005, 01:54

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •