User Tag List

Страница 28 из 50 ПерваяПервая ... 242526272829303132 ... ПоследняяПоследняя
Показано с 271 по 280 из 494

Тема: Вектор-06Ц: Операционные системы

  1. #271

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,389
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Оказалось, что в T72
    1B 5A - КОИ-8
    1B 5C - Альтернативная (CP866)
    Вложения Вложения
    • Тип файла: zip ch20FF.zip (630 байт, Просмотров: 108)

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

    Improver(10.04.2020)

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

  3. #272

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,389
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Почитал про SPR и немного потрассировал (проще начать с D452) загрузку SID.SPR в DOSF143. На описание внимание можно не сильно обращать, реально дос берет два адреса по смещениям 0001 и 0004, использует их для определения адреса загрузки и смещения таблицы индикаторов коррекции адресов. Загружает, корректирует и запускает.
    Не про spr. В описании F143 упомянуто "включение клавиатуры для редактора QWERTY/JCUKEN". Сходу я не понял, что именно там переключается.

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

    Improver(13.04.2020)

  4. #273

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Получается, микродос в оригинале (как и SID) компилировался как .SPR, чтобы получить код и таблицу. А потом PRL заголовок заменялся на код перемещения.

  5. #274

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,389
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Процедура коррекции адресов в инициализаторе классических досов и загрузчике spr практически идентичная. Ну и теперь понятно, что за PRL, RSP и SPR упоминаются в линковщике.

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

    Кстати, считаю оценку Ускова "... удалось разобраться в структуре .SPR-файла ... Структура эта оказалась довольно сложной." сильно преувеличенной.

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

    Думаю авторы Draw не знали про классические spr и поэтому так назвали свой формат картинок.

  6. #275

    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    1,034
    Спасибо Благодарностей отдано 
    467
    Спасибо Благодарностей получено 
    194
    Поблагодарили
    125 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дорогие друзья !

    Прошу помощи.. Вашим опытным взглядам мои глупые ошибки сразу будут заметны, уверен...

    Хотел пропатчить mdos31h вдохновившись тем, что ошибка собственно известна, и подробно описана, более того - есть исходники T-72 c патчем (еще не LBA)... вобщем, вытащил из бинарника BDOS, который в бинарнике сидит по адресам 3400H - 468EH, после перетаскивается по адресам В800H - FF8D и от туда работает. Дизассемблировал его (если это можно так назвать), получил файл orgD800H_3400H-468EH_BDOS_original.asm который компилится в точно такую же область, и в нем нашел куски, которые описываются в сообщении b2m и все что с ним связано, и заменил по аналогии на код из исходников первой версии T-72 без "заворота" из сообщения от ivagor .... код конечно в целом отличается, тем не менее, логически, вроде все должно ратотать.. но что то пошло не так.. Из за того, что я в целом, очень поверхностно знаком с работой HDD, мои попытки понять это при помощи трассировки кода в отладчике особо не дали результатов. Получал два варианта - первый (не сохранился) - когда система говорит о ошибке, просит продолжить или игнорировать, а второй, когда загружается, и выдает на команду D - no files... Наверняка, вам, как специалистам в этом, тем более знающим этот код, будет не трудно понять, что я там сделал не так. В целом, если вы этого делать не будете, ничего страшного, я продолжу его ковырять... Я не стремлюсь к каким то серьезным результатам, целью этого патча не является создать что то совершенное и быстрое, достаточно просто заставить ось видеть хотя бы 2 гб CF, то есть чисто практический интерес, и встроить эту ось в ПЗУ своего вектора. Да и в целом, наверняка не только я обрадуюсь наличию такой оси для вектора...

    В папке на яндекс диске находятся:

    1. mdos31hp_32BFH_80_2D.rom файл оси, которая встроена в ПЗУ, с патчем на "СБР+БЛК" и желто-сиий колор.
    2. mdos31hp_32BFH_80_2D_HDD2GB.rom файл оси, которую я пропатчил измененным кодом, говорит NO FILES
    3. orgD800H_3400H-468EH_BDOS_original.asm файл дизассемблированный BDOS ОС mdos31h
    4. orgD800H_3400H-468EH_BDOS_second_ver.asm файл дизассемблированный BDOS ОС mdos31h с моими попытками его пропатчить (вот)
    5. orgD800H_3400H-468E‬H_BDOS.rom файл BDOS оригинальный, вырезанный из операционной системы mdos31hp_32BFH_80_2D.rom (1.)


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


    Код:
    LD85F:
    	cpi	0A5H
    	jnc	LD853
    	xthl
    	inx	h
    	mov	e,m
    	inx	h
    	mov	d,m
    	inx	h
    	mov	a,m
    	pop	h
    	
    LD86C:
    	dad	d             ; (h, l) + (BC) -> (h, l)
    	aci	000H          ; A + data8 + C -> A
    	
    ;	mov	e,l
    ;	mov	l,h
    ;	mov	h,a	        ; (HL,E) = (A,HL)
    	
    	mov e,a		        ; (E,HL)
    
    	call	LD9D9     	; проверка готовности НЖМД, получение кода ошибки и RET
    
    	jz	LD9F8           ; обработка ошибки ?
    
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++    
    sectors:
    	mvi b,16
    	mov a,e
    	call div
    	inr a
    	out 53h		;sector
    	xra a
    heads:
    	mvi b,4
    	call div
    	out 56h		;head
    	mov a,h
    	out 055h	;cyl (High)
    	mov a,l
    	out 054h	;cyl (Low)
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    jmp Lnext_00
    
    .db $00, $00, $00, $00, $00, $00, $00, $00
    
    ;----------------------------------------------------------------------------------------	
    ;	push	d
    ;	call	LD8F3
    ;	out	055H
    ;	pop	d
    ;	mov	h,l
    ;	mov	l,e
    ;	call	LD8F3
    ;	out	054H
    ;----------------------------------------------------------------------------------------	
    ;----------------------------------------------------------------------------------------	
    ;	lxi	d,0FF00H
    ;	call	LD904
    ;	lxi	d,0010H
    ;	call	LD8FC
    ;	out	056H
    ;	mov	a,l
    ;	inr	a
    ;	out	053H
    ;----------------------------------------------------------------------------------------	
    	
    Lnext_00:	
            mvi	a,002H
    	out	052H
    	pop	d
    	lxi	h,0EB00H
    	mvi	a,020H
    	inr	e
    	dcr	e
    	jz	LD8A9
    	mvi	a,030H
    LD8A9:
    	out	057H
    	mvi	c,002H
    	
    LD8AD:
    	call	LD9D9                   ; проверка готовности НЖМД, получение кода ошибки и RET
    	jz	LD9F9                   ; обработка ошибки ?
    	in	057H
    	ani	008H
    	jz	LD9F9                   ; обработка ошибки ?
    	mvi	b,002H
    LD8BC:
    	inr	e
    	dcr	e
    	jnz	LD8CF
    LD8C1:
    	in	050H
    	mov	m,a
    	inr	l
    	in	058H
    	mov	m,a
    	inr	l
    	jnz	LD8C1
    	jmp	LD8DC
    ;
    LD8CF:
    	inr	l
    	mov	a,m
    	out	058H
    	dcr	l
    	mov	a,m
    	out	050H
    	inr	l
    	inr	l
    	jnz	LD8CF
    LD8DC:
    	inr	h
    	dcr	b
    	jnz	LD8BC
    	dcr	c
    	jnz	LD8AD
    	call	LD9D9 	        ; проверка готовности НЖМД, получение кода ошибки и RET
    	jz	    LD9F9       ; обработка ошибки ?
    	ani	0DDH
    	cpi	050H
    	rz
    	jmp	LD9F9           ; обработка ошибки ?
    ;
    
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    	
    div:	
        MVI C,16 ; HL=AHL/B, A=AHL%B
    L1: DAD H
        ADC A
        JC L2
        CMP B
        JC L3
    L2: SUB B
        INR L
    L3: DCR C
        JNZ L1
        RET	
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
        .db $00, $00, $00, $00, $00, $00, $00, $00
    
    ;----------------------------------------------------------------------------------------
    ;LD8F3:
    ;	lxi	d,0FC00H
    ;	call	LD904
    ;	lxi	d,00040H
    ;LD8FC:
    ;	mvi	b,0FFH
    ;LD8FE:
    ;	add	b
    ;	dad	d
    ;	jnc	LD8FE
    ;	ret
    ;----------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------
    ;LD904:
    ;	xra	a
    ;	mvi	b,010H
    ;LD907:
    ;	add	b
    ;	dad	d
    ;	jc	LD907
    ;	ret
    ;----------------------------------------------------------------------------------------
    ;
    	call	LE474
    	lda	0080H
    	ana	a
    	jz	LD980
    	lxi	d,005DH
    	call	LE0BB
    	mov	b,h
    	mov	c,l
    	lxi	d,0FFCFH
    	dad	d
    	jc	LE0B5
    	lda	005CH
    	ana	a
    	jnz	LD931
    	lda	0004H
    	inr	a
    LD931:
    	dcr	a
    	cpi	002H
    	jz	LE0B5
    	cmc
    	sbi	000H
    	cpi	004H
    	jnc	LE0B5
    	mov	e,a
    	mvi	d,000H
    LD942:
    	mov	a,d
    	call	LD9B2
    	mov	a,m
    	cmp	c
    	jnz	LD954
    	inx	h
    	mov	a,m
    	sub	b
    	jnz	LD954
    	mov	m,a
    	dcx	h
    	mov	m,a
    LD954:
    	inr	d
    	mov	a,d
    	cpi	004H
    	jnz	LD942
    	mov	a,e
    	call	LD9B2
    	mov	m,c
    	inx	h
    	mov	m,b
    	inx	h
    	push	h
    	lxi	h,0F3BEH
    	mvi	a,0FFH
    	inx	b
    LD96A:
    	lxi	d,00622H
    	dad	d
    	aci	000H
    	dcx	b
    	mov	d,a
    	mov	a,b
    	ora	c
    	mov	a,d
    	jnz	LD96A
    	xchg
    	pop	h
    	mov	m,e
    	inx	h
    	mov	m,d
    	inx	h
    	mov	m,a
    	ret
    
            *
            *
            *
    
    LD9F8:
    	pop	psw
    LD9F9:
    	in	057H
    	rrc
    	in	051H
    	jc	LDA02
    	xra	a
    LDA02:
    	mov	b,a
    	in	057H
    	ani	020H
    	ora	b
    	mov	b,a
    	in	057H
    	ani	0C0H
    	cpi	040H
    	mov	a,b
    	jz	LDA15
    	ori	010H
    LDA15:
    	out	05FH
    	jmp	LE6AB
    
            *
            *
            *
    
    LE6AB:
    	sta	XE873
    	lda	XE867
    	cpi	006H
    	jz	LE6C2
    	xra	a
    	sta	XE874
    	sta	XE87A
    	mvi	a,001H
    	sta	XE872
    LE6C2:
    	lda	XE873
    	ana	a
    	ret

    [свернуть]


    В целом, старался очень аккуратно патчить, оригинальный код остался на своих местах по своим адресам, адреса ссылок соответствуют их названиям.
    Моего понимания таки еще не хватает для такого рода операций, тем не менее, если кто то поможет, буду очень благодарен !!! Если нет, в целом, я и так вам очень благодарен за то что вы делаете, за то, чем вы меня вдохновляете !!!

    Спасибо!

    И кстати, еще вопрос, посоветуйте какой нибудь хороший дизассемблер. Я пользуюсь DASMX130, уверен, есть что то более совершенное, посоветуйте пожалуйста что нибудь ?!?
    Последний раз редактировалось electroscat; 13.04.2020 в 19:48.

  7. #276

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    И кстати, еще вопрос, посоветуйте какой нибудь хороший дизассемблер. Я пользуюсь DASMX130, уверен, есть что то более совершенное, посоветуйте пожалуйста что нибудь ?!?
    Я мельком посмотрел Ваши исходники, в принципе DASMX даёт неплохой результат, можно пользоваться. Просто в качестве альтернативы могу поделиться тем, чем пользуюсь сам -- DASM580 (DASM580_106.7z), который я написал когда-то давно-давно...

    И по поводу патча МДОС, вопрос: если взять полученные Вами исходники без патча (orgD800H_3400H-468EH_BDOS_original.asm), то откомпилированный с них бинарник полностью совпадает с бинарником из MДОС (orgD800H_3400H-468E‬H_BDOS.rom)? Я бы начал копать отсюда...

    Второе, что следует сделать, это разобраться с командами PCHL (их там 5 штук), и дизассемблиролвать подпрограммы, на которые они ссылаются. Вполне возможно, что Ваш патч затрагивает их работу, но из-за того, что в исходнике они показаны, как наборы данных, в них ссылки не исправляются при перекомпиляции и вылезает ошибка.
    Последний раз редактировалось Improver; 14.04.2020 в 08:42.

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

    electroscat(14.04.2020)

  8. #277

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,389
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По образцу Improvera патчнул FH51 в режим LBA, заворота больше нет.

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

    Добавил патч рестарта.
    Вложения Вложения

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

    electroscat(14.04.2020), Improver(14.04.2020)

  9. #278

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    но что то пошло не так
    А количество секторов и головок по адресам sectors+1 и heads+1 в коде инициализации устанавливаются?

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

    electroscat(14.04.2020)

  10. #279

    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    1,034
    Спасибо Благодарностей отдано 
    467
    Спасибо Благодарностей получено 
    194
    Поблагодарили
    125 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    Я мельком посмотрел Ваши исходники, в принципе DASMX даёт неплохой результат, можно пользоваться. Просто в качестве альтернативы могу поделиться тем, чем пользуюсь сам -- DASM580 (DASM580_106.7z), который я написал когда-то давно-давно...
    Спасибо за ссылочку, посмотрю обязательно !

    Цитата Сообщение от Improver Посмотреть сообщение
    И по поводу патча МДОС, вопрос: если взять полученные Вами исходники без патча (orgD800H_3400H-468EH_BDOS_original.asm), то откомпилированный с них бинарник полностью совпадает с бинарником из MДОС (orgD800H_3400H-468E‬H_BDOS.rom)? Я бы начал копать отсюда...
    Да, я добился идентичности, оригинальный текст компилится, я сравниваю его с вырезанным куском, HEX редактор заявляет об идентичности файлов.


    Цитата Сообщение от Improver Посмотреть сообщение
    Второе, что следует сделать, это разобраться с командами PCHL (их там 5 штук), и дизассемблиролвать подпрограммы, на которые они ссылаются. Вполне возможно, что Ваш патч затрагивает их работу, но из-за того, что в исходнике они показаны, как наборы данных, в них ссылки не исправляются при перекомпиляции и вылезает ошибка.
    На счет этого я не подумал, поищу, спасибо за направление!

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

    Цитата Сообщение от b2m Посмотреть сообщение
    А количество секторов и головок по адресам sectors+1 и heads+1 в коде инициализации устанавливаются?
    Вот наверное я на это вчера и наткнулся, это похоже оно и есть, нашел участок кода, как раз там, где были адреса "LXI B, XXX" в LD8F3. там у меня оказался кусок кода, и он постоянно "портился" при анализе в дебагере, ... в итоге, я понял, что по этим адресам что то пишется. Похоже это и есть адреса, осталось только найти от куда они пишутся, или по крайней мере, засунуть в эти места переменные, из которых потом брать эти значения. Сейчас я там просто массив нулей расположил, и обозначил две переменных в этом массиве, код расположил так, чтобы его по этим адресам не было, ну и как раз нулей там столько, чтобы восстановить оригинальные адреса всего оставшегося кода.

    Подскажите пожалуйста, sectors+1 и heads+1 - это:

    Код:
    sectors:
    	mvi b, 16              
    	mov a,e                
    	call LD879              
    	inr a                 
    	out 53h		       
    	xra a                 
    heads:
    	mvi b,4               
    	call LD879             
    	out 56h		       
    	mov a,h
    	out 055h	        
    	mov a,l
    	out 054h
    в этом коде... Наверняка я что то не так понимаю... в этом коде вроде не куда патчить адреса... пока не понятно, можете чуть пояснить? И "в коде инициализации" это за пределами BDOS? это тот код, который распределяет по памяти куски системы после загрузки бинарника, он патчит код на предмет адресов ?
    Последний раз редактировалось electroscat; 14.04.2020 в 12:14.

  11. #280

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    код, который распределяет по памяти куски системы после загрузки бинарника, он патчит код на предмет адресов ?
    Нет, по-моему это чуть позже. После пересылки запускается инициализация, это в самом начале BDOS. Поищи в коде Improvera, где он пишет в sectors+1 и heads+1.

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

    electroscat(14.04.2020)

Страница 28 из 50 ПерваяПервая ... 242526272829303132 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 213
    Последнее: 13.06.2022, 14:02
  2. Ответов: 4
    Последнее: 20.08.2007, 16:14
  3. Организация plug-in'нной системы
    от CityAceE в разделе Программирование
    Ответов: 9
    Последнее: 20.09.2005, 12:45
  4. Описание системы команд - давайте централизуем ;)
    от Alex/AT в разделе Программирование
    Ответов: 42
    Последнее: 09.07.2005, 22:34
  5. Инициализация системы
    от breeze в разделе Программирование
    Ответов: 13
    Последнее: 24.03.2005, 10:03

Ваши права

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