User Tag List

Показано с 271 по 280 из 494

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

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    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.

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

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

Эту тему просматривают: 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

Ваши права

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