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

User Tag List

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 38

Тема: Определение типа компа и расширенной памяти.

  1. #21

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    Так что это вопрос исключительно личных предпочтений,
    просто нужно понять
    что производительность у спектрума не та
    чтобы разводить на нем всякие ОС и обращения ко всему через драйвера..
    и пару десятков тактов лучше сэкономить
    тем более когда не знаешь на каком железе эта твоя умная определялка только нагадит

    как вариант можно делать ручное включение нужного типа памяти
    перед началом автоопределения
    делать опрос клавиатуры
    повесить каждый режим на свою клавишу
    или же запилить менюшку с выбором

    в случае не правильной работы определялки
    можно будет в ручную запустить с нужным\рабочим драйвером памяти

  2. #22

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Собственно собрал определялку памяти (правда только до 1024 K ), точнее выдрал и переработал что была в BGE. Может кому пригодится.
    Получилост конечно ацки как-то, но и фиг с ним. Исходник под ужасм, тестовая прога завёрнута в trd.
    Не сбрасывается (по крайней мере не должен) на +2A,+3 (если есть бетадиск с тырдосом или его эмулятор-заменитель типа divMMC/divIDE с esxdos)
    Определяет pentgon 256-512, pentagon1024sl (старая версия 1.4x за KAY должна сойти), scorpion 256-1024, kay 256-1024, atm, atm2, profi. Эва определяется как пентагон 1024 (хотя думал что будет как atm2)) )
    Конечно проверял на эмуляторах, так что х.з. мог и напортачить, хотя вроде не должен
    Вложения Вложения

    Эти 3 пользователя(ей) поблагодарили Dart Alver за это полезное сообщение:

    Biland(02.09.2021), Dexus(08.10.2021), zebest(14.10.2020)

  3. #23

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,973
    Спасибо Благодарностей отдано 
    1,083
    Спасибо Благодарностей получено 
    1,177
    Поблагодарили
    916 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    как пентагон 1024
    Как pentagon1024sl. Если разлочить память, конечно.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  4. #24

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Black Cat / Era CG Посмотреть сообщение
    Как pentagon1024sl.
    Ну да, определялка только 1024sl стандарт определяет. Я мельком видел вроде и другие варианты расширения памяти для пентагона, но нормальной инфы по таким машинам не нашёл.
    Кстати я в демонстрашке забыл сообщение для 48 K сделать .... Зы забавно пишет: ATM TURBO 2+ rev 7... 16 kb memory found
    Оставлю забавный ляпчик ))

    Этот пользователь поблагодарил Dart Alver за это полезное сообщение:

    Black Cat / Era CG(18.03.2020)

  5. #25

    Регистрация
    06.05.2019
    Адрес
    г. Подольск
    Сообщений
    108
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Dart Alver, использовал сборку для создания пары адресов (для каждого порта) в таблице. Для Kay1024 не совпало, т.к. от Pent1024. Для остальных ещё не проверял. Хотел узнать, спецификация увеличения памяти для каждого клона учитывается, вообще? Например, у ОС, там же свои таблицы адресов. Если на них запускать программу, по идее может быть дан от ОС список свободных банок. Чтобы он совпал и свой драйвер щёлкал свободные (если, конечно, ОС отдаёт прерывание и управление программе полностью на время работы, этого не знаю) страницы в своё логическом пространстве?


    П.С.:Есть ли желание поиск до 4МБ расширить. Драйвера сам попробую для новых найденных клонов дописать.

  6. #26

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Biland Посмотреть сообщение
    использовал сборку для создания пары адресов (для каждого порта) в таблице. Для Kay1024 не совпало, т.к. от Pent1024.
    Не понял темы, что именно не совпало и с чем должно было совпасть ?
    По найденному в интернете мануалу к KAY1024 для расширения памяти свыше 128K используются биты 4,7 порта #1FFD и бит 7 порта #7FFD.

    Схема адресации банков памяти KAY1024

    [свернуть]


    Цитата Сообщение от Biland Посмотреть сообщение
    Хотел узнать, спецификация увеличения памяти для каждого клона учитывается, вообще? Например, у ОС, там же свои таблицы адресов.
    Опять не понял ? Что за спецификация увеличения памяти для каждого клона ?
    Разумеется определение ведётся по реакции на запись в порты конфигурации различных клонов. При этом по возможности используется последовательность опроса не вызывающая конфликта дешифраторов портов.
    Какая ОС имеется ввиду ? Определялка не портит содержимое в страницах (вроде бы), но она не подгонялась под какие либо ОС.

    Цитата Сообщение от Biland Посмотреть сообщение
    П.С.:Есть ли желание поиск до 4МБ расширить. Драйвера сам попробую для новых найденных клонов дописать.
    Честно влом. По сути это не так уж и сложно, но нужно буфера под нумерацию страниц больше давать.
    Кстати я могу ошибаться (это проверить надо бы да не на чем), но вроде бы NEXT при текущей определялке должен определиться как PROFI 1024

    --------------------
    А, понял, имелось ввиду не PENTAGON 1024SL а старый вариант PENTAGON 1024 v1.4x ? Да этот вариант расширения пентагона вроде как и делали по стандарту кая. Но в массе не прижился. Были вроде бы и другие варианты расширения до 1024, но тоже типа не прижились.
    Последний раз редактировалось Dart Alver; 03.09.2021 в 00:25.

  7. #27

    Регистрация
    06.05.2019
    Адрес
    г. Подольск
    Сообщений
    108
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    ;		#1FFD		#7FFD
    ;Physical	D7	D4	D7	D6	D5	D4	D3	D2	D1	D0
    ;Logical	D4	D3	D5					D2	D1	D0
    ;		16	8	32					4	2	1
    Здесь показаны логические биты, которые должны стать физическими (фактическими) по задумке авторов и спецификации на KAY1024. В IS-DOS (например) это, согласно автору, соблюдено. На картинке тоже самое, согласно спецификации. В драйвере по другому используется эта таблица (старшинство логических битов изменено, походу). С эмулятором unreal не совпадает в половине случаев и с реальностью тоже. Драйвер для KAY1024 уже переписал, осталось всё проверить.

    Что за спецификация увеличения памяти для каждого клона?

    Ну как я понял, это какой бит по старшинству, по задумке авторов железа, идёт по очереди в банке для расширения памяти. Можно и в другой комбинации их использовать. Про соблюдение спецификации, здесь смысл такой. ОС (любая, наверно) работает с физическими банками, делает их логическими (в примитивной теории), согласно спецификациям. И, чтобы дешифрация совпадала у драйвера и ОС, нужно одинаковый алгоритм, при котором, у всех одна и та же логическая страница, одинаково дешифруется.

    Вот так совпало, с спецификацией.
    Код:
    rKAY1024                    ; KAY 1024
    	ld		e,a				; копия логической страницы
    		and		%00011000		; выделяем биты для порта #1FFD
    		sla		a		;8	; двигаем бит с D4 на D5, с D3 на D4
    		ld		d,a			; копия
    		sla		d		;8	; двигаем бит с D5 на D6
    		sla		d		;8	;			на D7
    		or		d			; соединяем D7 и D4
    		and		%10010000		; оставляем D7 и D4, мусор убираем	
    		ld		h,a			; копия физ.адреса для порта #1FFD
    		ld		bc,#1FFD		; порт страниц
    		out		(c),a			; данные в порт
    	ld		a,e				; 	логической страницы, оригинал
    		and		%00100000 		; бит D5 логической страницы оставляем
    		ld		d,a			; копия
    		sla		d		;8	; двигаем бит с D5
    		sla		d		;8	;		на D7
    		ld		a,e			; логической страницы, оригинал
    		and		%00000111		; оставляем D2, D1, D0
    		or		d			; соединяем бит D7 и D2, D1, D0
    		or		%00010000	; + BASIC48	;#10
    		ld		l,a			; копия физ.адрес для порта #7FFD
    		ld		b,#7F			; порт страниц
    		out		(c),a			; данные в порт
    		;?nop
    	ret
    lKAY1024   EQU $-rKAY1024
    Поиск пары физических адресов, с вызовом вот такой:
    Код:
    ;С - порядковый номер в массиве логических страниц (где они соответствуют физическим адресам)
    ;Проще, для нас страницы от 1 до 256 [0..255],
    ; в массиве свободные логические по спецификации клона, без исключённых
    bKAY1024
    		;ld		c,a			; можно в регистре С страницу передать
    		ld		b,0
    		sla		c			; умножение на два
    		ld		hl,TBL_Physical_RAM	; находим в таблице начало
    		add		hl,bc			;	физической пары страниц
    		ld		a,(hl)	;7
    		ld		bc,#1FFD
    		out		(c),a
    		inc		hl			; inc h, если выровнено по сегментам в 256Б
    		ld		d,(hl)
    		ld		a,(vVideoBankD3)
    		or		d
    		ld		b,#7F
    		out		(c),a
    		;?nop
    		ret
    eKAY1024		EQU		$-bKAY1024
    Последний раз редактировалось Biland; 03.09.2021 в 20:08. Причина: драйвер плюс

    Этот пользователь поблагодарил Biland за это полезное сообщение:

    Dart Alver(03.09.2021)

  8. #28

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Biland Посмотреть сообщение
    старшинство логических битов изменено, походу
    Да точно есть такое. Моя ошибка, хотя для моих использований не критичная.

    Цитата Сообщение от Biland Посмотреть сообщение
    ОС (любая, наверно) работает с физическими банками, делает их логическими (в примитивной теории), согласно спецификациям.
    Вот ещё. )) Классике жанра - Tr-dos 5.03/04T глубоко начхать на банки памяти и на их порты. Версиями 6.xx не увлекался поэтому х.з. Но при работе с физ. носителя думаю тоже можно послать далеко и надолго и пользовать как сам хочешь. Для извращений типа IS-DOS и прочего надо под их формат подгонять но это на любителя.

    В общем зацепило )) , тоже покумекал над дровом для кая, получилось так:
    Код:
    rKAY1024                    ; KAY 1024
                 DISP RAM_DRV
    
                  rlca
                  ld d,a
                  ld e,a
                  rlca
                  rlca
                  rr d
                  and %10000000
                  xor e
                  and %11101111
                  xor e
                  ld bc,#1FFD
                  out (c),a
                  nop
                  ld b,#7F
                  ld a,d
                  and %10000111
                  or #10
                  out (c),a
                  nop
                 ret
    
                ENT
    lKAY1024   EQU $-rKAY1024
    NOP после OUT может и не нужен х.з. осталась привычка ставить. Вроде даааавно читал что ставили дабы на некоторых тупых клонах страницы успевали перещёлкнуться ))

    По поводу поиска пары "физических адресов" которые ни разу не адреса. Честно не понял нафига оно вам ? Для ускорения доступа ? Ну может быть, х.з. по обстоятельствам.
    В общем успехов в доработках, надеюсь что-нибудь путное получится ))

  9. #29

    Регистрация
    06.05.2019
    Адрес
    г. Подольск
    Сообщений
    108
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для Pentagon1024 (через #7ffd c bit 5) тоже не совпадают. Пишут, что задумано так:

    0x7FFD бит 7 - 256 КБ
    0x7FFD бит 6 - 512 КБ
    0x7FFD бит 5 - 1024 КБ

    Есть желание допилить до спецификации? D7 и D5 местами поменять, походу нужно.

    Дрова для KAY забрал, -4 такта ещё получилось снять

    Код:
    		sla		a		;8	; двигаем бит с D4 на D5, с D3 на D4
    		ld		e,a		;4	; копия логической страницы со сдвигом влево
    		and		%01110000	;7	; выделяем биты для порта логические D3,D4,D5
    		ld		d,a		;4	; копия
    		sla		d		;8	; двигаем бит D6 -> D7, D5 -> D6, D4 -> D5
    		rlc		d		;8	;		D7 -> CY, D6 -> D7, D5 -> D6
    		rr		e		;8	; двигаем вправо, восстанавливаем логическую страницу + CY -> D7,  
    		or		d		;4	; соединяем D7 и D4
    		and		%10010000	;7	; оставляем D7 и D4, мусор убираем
    		ld		bc,#1FFD	;10	; порт страниц
    		out		(c),a		;12	; данные в порт
    	ld		a,e			;4
    		and		%10000111	;7	; выделяем биты
    		or		%00010000	;7	; + BASIC48	;#10
    		ld		b,#7F		;7	; порт страниц
    		out		(c),a		;12	; данные в порт
    		;?nop
    	ret					;10

  10. #30

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не знаю по какой спецификации вы смотрели Pentagon но в инструкции на сайте по Pentagon1024sl биты 5,6,7 следуют по порядку.

    Да еще, вместо sla a лучше используйте add a,a (а в нашем случае пойдет и rla и rlca) 4 такта вместо 8 и 1байт вместо 2-х

    - - - Добавлено - - -

    Да насчет пентагона. Впринципе возможно вы правы. Вы подали идею - надо будет проверить как работает рамдиск в real commander. Pentagon 1024 она вроде не определяет, значит надо сделать чтоб рамдиск от 512 заводился на 1024. Хм...

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 44
    Последнее: 22.06.2023, 18:03
  2. реанимация расширенной орель бк-08
    от strade в разделе Несортированное железо
    Ответов: 6
    Последнее: 07.02.2015, 00:00
  3. Определение текущего адреса
    от Alex Rider в разделе Программирование
    Ответов: 52
    Последнее: 26.07.2012, 13:38
  4. Ответов: 10
    Последнее: 12.09.2011, 19:12
  5. Определение Turbo-FM
    от Максагор в разделе Программирование
    Ответов: 21
    Последнее: 28.09.2007, 20:29

Ваши права

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