User Tag List

Страница 165 из 455 ПерваяПервая ... 161162163164165166167168169 ... ПоследняяПоследняя
Показано с 1,641 по 1,650 из 4545

Тема: ДВК (и всё, что с ними связано)

  1. #1641
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Текущая сборка "эмулятора ДВК" - DVK_Emulator_26.02.12_12-55

    Исправлена пара ошибок, затаившихся в коде с самых первых дней :)

    Изменения:

    1. Обновлена версия драйвера HD ( теперь 1.0c ). Предыдущие версии могут вызвать зависание при загрузке, если загрузка осуществляется не с устройства HD.

    2. В разделе [Booter.ini] всех конфигов предыдущих релизов удалить строчку BooterTemporalDisable = 1 - она больше не используется.

    3. В файле STRTSB.COM предыдущих релизов добавить строчку SET TT FORM, чтобы можно было нормально смотреть дампы.

    4. Файл LD.SYS в предыдущих релизах был смонтирован на несуществующие диски - выполнить команды DISM LD0, DISM LD1
    Последний раз редактировалось Patron; 23.09.2014 в 16:05.

  2. #1642
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    3. В файле STARTSB.COM предыдущих релизов добавить строчку SET TT FORM, чтобы можно было нормально смотреть дампы.
    STARTSB это сильно

    Насчет SET TT FORM все зависит от эмуляции терминала и привычек. Сам считаю более удобным вариант NOFORM (несколько пустых строк вместо FF на экране). На УКНЦ же выбора просто нет - только NOFORM и никак иначе
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  3. #1643
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    STARTSB это сильно
    Исправил :)
    Цитата Сообщение от form Посмотреть сообщение
    Насчет SET TT FORM все зависит от эмуляции терминала и привычек. Сам считаю более удобным вариант NOFORM (несколько пустых строк вместо FF на экране). На УКНЦ же выбора просто нет - только NOFORM и никак иначе :)
    Когда при просмотре дампа командой типа DU/TE SY: в конце дампа каждого блока вылетает сразу 6 переводов строки - это не только напрягает, но и иногда даже заставляет "мотать экран обратно"..

  4. #1644
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Когда при просмотре дампа командой типа DU/TE SY: в конце дампа каждого блока вылетает сразу 6 переводов строки - это не только напрягает, но и иногда даже заставляет "мотать экран обратно"..
    Это дело привычки. Зато в УКНЦшном варианте вместо переводов строки будет реальное стирание экрана
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  5. #1645
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Это дело привычки.
    Когда есть реальная альтернатива - привыкать к 6-строчным "судорогам" в конце дампа каждого блока как-то не хочется..
    Цитата Сообщение от form Посмотреть сообщение
    Зато в УКНЦшном варианте вместо переводов строки будет реальное стирание экрана
    Как и во многих Telnet-клиентах.

  6. #1646
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Когда есть реальная альтернатива - привыкать к 6-строчным "судорогам" в конце дампа каждого блока как-то не хочется..
    Как и во многих Telnet-клиентах.
    Я и говорю - дело привычки. Для меня было бы мерзостью привыкать к убогому отсутствию реакции на <FF> ибо изначально привык к стандартной для терминала реакции

    Мне везло - настолько кривых (а это именно кривость) телнетов не видел
    Насчет большинства же очень сильно сомневаюсь.

    ---------- Post added at 16:42 ---------- Previous post was at 16:35 ----------

    Patron, Кстати, вопрос на засыпку - ты точно знаешь ответ
    Опиши pls механизм как управляешься с NumLock чтобы он не переключался при нажатии на него. Автор E11 просит, а у меня в виндовсе из гуевого только авторизатор для биллинга был и тот не столько написан был сколько "натыкан" в delphi
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  7. #1647
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    371
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Обновлена версия драйвера HD ( теперь 1.0c ). Предыдущие версии могут вызвать зависание при загрузке, если загрузка осуществляется не с устройства HD.
    Можно подробнее этот момент? И новая версия в плане "дружбы" с версиями
    монитора SJ - изменилось что нибудь ???

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


    [свернуть]
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  8. #1648
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Я и говорю - дело привычки. Для меня было бы мерзостью привыкать к убогому отсутствию реакции на <FF> ибо изначально привык к стандартной для терминала реакции
    Поскольку в эмуляторе уже есть универсальный Telnet-адаптер для потока байтов (который можно настроить или как Telnet-сервер, или как Telnet-клиент), то похоже, что в настройки эмулятора терминала придётся добавить строки, отображаемые на экране при получении FF и VT. Сейчас эти коды отрабатываются терминалом, как LF.

    Цитата Сообщение от form Посмотреть сообщение
    настолько кривых (а это именно кривость) телнетов не видел Насчет большинства же очень сильно сомневаюсь.
    Значит всё не так плохо, как мне казалось.

  9. #1649
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Значит всё не так плохо, как мне казалось
    Зато с другим в плане VT52 все плохо
    Из виндовсных не нашел ни одного хотя бы просто правильно эмулирующего ESC последовательности. Про полноценный уж не говорю
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  10. #1650
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    123
    Поблагодарили
    62 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Опиши pls механизм как управляешься с NumLock чтобы он не переключался при нажатии на него.
    Общая идея проста - если статический глобальный хук клавиатуры, установленный либо в exe, либо в dll вот так:

    Код:
    ghKeyboardHook = SetWindowsHookEx( WH_KEYBOARD_LL, KeyboardHook, ghInstance, 0);
    возвращает (int)1, то Windows никак не реагирует на нажатую клавишу.

    Чтобы программа, установившая глобальный хук, могла тем не менее на нажатую клавишу отреагировать - статическая функция глобального хука должна симитировать отправку соответствующих сообщений в окно программы.

    У меня всё гораздо сложнее - один хук обслуживает все запущенные экземпляры программы, которые обмениваются ссылками на текущее окно-получатель через разделяемую память процессов Windows.

    В итоге мой вариант глобального хука выглядит так:
    Код:
    LRESULT CALLBACK ConfigClass::KeyboardHook( int nCode, WPARAM wp, LPARAM lp ) 
    {   
    	KBDLLHOOKSTRUCT *pkh = (KBDLLHOOKSTRUCT *) lp;
    	dword wParam = pkh->vkCode;
    	dword lParam = 1;
    	dword lParamHi = pkh->scanCode;
    	signed char cFlags = pkh->flags;
     
    	if( cFlags & 1 )
    	{
    		lParamHi |= BIT_8;
    	}
    	if( cFlags < 0 )
    	{
    		lParamHi |= BIT_14;
    		lParamHi |= BIT_15;
    	}
    
    	if( nCode==HC_ACTION )
    	{
    		if( wParam == VK_NUMLOCK )
    		{
    			if( pSharedData2->gbNumLockDisabled )
    			{
    				if( cFlags < 0 )
    				{
    					pSharedData2->bVK_NUMLOCK_pressed = false;
    					lParamHi <<= 16;
    					lParam |= lParamHi;
    					if( pSharedData2->ghWndFocus ) { PostMessage( pSharedData2->ghWndFocus, WM_KEYUP, wParam, lParam ); }
    				}
    				else
    				{
    					if( pSharedData2->bVK_NUMLOCK_pressed ) { lParamHi |= BIT_14; } 
    					pSharedData2->bVK_NUMLOCK_pressed = true;
    					lParamHi <<= 16;
    					lParam |= lParamHi;
    					if( pSharedData2->ghWndFocus ) { PostMessage( pSharedData2->ghWndFocus, WM_KEYDOWN, wParam, lParam ); }
    				}
    				if( pSharedData2->ghWndFocus ) { return 1; }
    			}
    			else
    			{
    				if( cFlags < 0 ){ pSharedData2->bVK_NUMLOCK_pressed = false; }
    				else
    				{
    					if( !pSharedData2->bVK_NUMLOCK_pressed )
    					{
    						pSharedData2->bVK_NUMLOCK_pressed = true;
    						
    						pSharedData2->bNumLockState = !pSharedData2->bNumLockState;
    						pSharedData2->bNewNumLock   = pSharedData2->bNumLockState;
    					}
    				}
    			}
    		}
    		else
    		if( wParam == VK_CAPITAL )


    ---------- Post added at 13:15 ---------- Previous post was at 13:07 ----------

    Цитата Сообщение от hobot Посмотреть сообщение
    Можно подробнее этот момент? И новая версия в плане "дружбы" с версиями монитора SJ - изменилось что нибудь ???
    В дайвере не изменилось вообще ничего, кроме кода, выводящего строчку "HD (177720) disk driver v1.0c 2012" при загрузке.

    Вот исходник новой версии драйвера:

    Код:
    .Title	HD
    ;
    ; HD.MAC - HD device driver.
    ;
    ; Revision history:
    ;		    19-Mar-2003 : Created 
    ;		    02-Feb-2011 : HDCSR changed from 177660 to 177720
    
    .Macro ......
    .EndM
    
    .Enabl	LC
    
    ; Default SYSGEN options.
    
    TIM$IT = 0
    MMG$T  = 0
    ERL$G  = 0
    
    HDCSR = 177720	; Command and state reg addr for HD device.
    HDSIZ = 1600.	; Default HD device size in 512 byte blocks.
    
    ;
    ; HD command codes (for HD command reg: 177720 )
    ;
    
    SetUni		= 1	; Set HD unit number
    SetBlk		= 2	; Set HD block number
    SetBuf		= 3	; Set memory buffer address
    SetWCn		= 4	; Set operation word count
    CmdRea		= 5	; Execute READ  on HD
    CmdWri		= 6	; Execute WRITE on HD
    GetSiz		= 7	; Get HD size in blocks.
    
    
    ;
    ; Fixed locations.
    ;
    .ASECT
    . = 60
    HD.GEN:
    ;;;;;;;
    
    	.MCall	.DrDef
    	
    	.DrDef	HD, 362, FILST$!SPFUN$!VARSZ$, HDSIZ, HDCSR, 0
    	.DrPtr
    	.DrSpF	<373>
    
    	.SbTtl	Installation check
    ;
    ; Initial check (prints HD message).
    ;
    
    .ASect
    
    . = 116
    
    HDMES:
    	.ASCIZ	<CR><LF>/HD (177720) disk driver v1.0c  2012/<CR><LF>
    
    . = 200
    
    	Nop
    
    	Tst	@#64
    	BNE	1$
    
    	Mov	PC, R0
    	Add	#HDMES-., R0
    	Br	2$
    3$:
    	MovB	(R0)+, @#TPB
    
    	TstB	@#TPS
    	BPl	.-4.
    
    2$:	TstB	(R0)
    	BNe	3$
    1$:
    	ClC
    	Return
    
    	.............
    
    ;
    ; SET HD subroutines.
    ;
    	.DrSet	ERLG,  1, O.GEN, NUM
    	.DrSet	MMGT,  2, O.GEN, NUM
    	.DrSet	TIMIT, 4, O.GEN, NUM
    
    	.Dsabl	LSB
    	.Enabl	LSB
    ;
    ; Use 'SET HD ERLG=1'  or 'SET HD ERLG=0'  to change ERL$G  bit on the fly.
    ; Use 'SET HD MMGT=1'  or 'SET HD MMGT=0'  to change MMG$T  bit on the fly.
    ; Use 'SET HD TIMIT=1' or 'SET HD TIMIT=0' to change TIM$IT bit on the fly.
    ;
    O.GEN:
    	Tst	R0		; Arg = 0 ?
    	BEq	30$
    	BiS	R3, HD.GEN	; Set SYSGEN bit.
    	Br	31$
    30$:
    	BiC	R3, HD.GEN	; Clear SYSGEN bit.
    31$:
    	ClC
    	Return
    
    .IIF GT	.-1000	.ERROR
    
    
    ;
    ; I/O request entry point.
    ;
    
    	.DrBeg	HD
    
    	Mov	HDCQE,  R4		; R4 -> Queue element
    	Mov	(R4)+,  R2		; R2 = Block number
    	MovB	(R4)+,  R1		; R1 = SpFun code
    	BNe	SPFUN			; Is it SpFun call?
    	MovB	(R4)+,  R1		; R1 = Unit number
    	BiC	#^c7,   R1		; Force it to be 1..7
    	Mov	R1,	@#HD$CSR+2	; 
    	Mov	#SetUni,@#HD$CSR	; Select unit for operations.
    
    	Tst	@#HD$CSR		; Valid unit number?
    	BMi	HDERR			;   No - Error!
    
    	Mov	R2,	@#HD$CSR+2	; 
    	Mov	#SetBlk,@#HD$CSR	; Set block number.
    	Tst	@#HD$CSR		; Valid?
    	BPl	3$			;   Yes - OK
    	Mov	HDCQE,	R4		;
    	BiS	#EOF$,	@-(R4)		;   Else - return EOF
    	Br	DONE			;
    3$:
    	Mov (R4)+,	@#HD$CSR+2	;
    	Mov #SetBuf,	@#HD$CSR	; Set buf addr
    
    	Mov (R4), R1			; R1 = word count
    	BEq	DONE			; R1 = 0 - Nothing to do
    	BPl	HDREAD			;    > 0 - Read
    					;    < 0 - Write
    	Neg	R1			; Get true word count
    	Mov	R1,	@#HD$CSR+2	;     ...
    	Mov	#SetWCn,@#HD$CSR	;     and set it.
    	Tst	@#HD$CSR		; Valid?
    	BPl	4$			;   Yes - OK
    	Mov	HDCQE,	R4		;
    	BiS	#EOF$,	@-(R4)		;   Else - set EOF bit
    4$:
    
    	Mov	#CmdWri,@#HD$CSR	; Make Write to HD
    	Br	CHECK			; OK?
    HDREAD:
    	Mov	R1,	@#HD$CSR+2	;
    	Mov	#SetWCn,@#HD$CSR	; Set word count
    	Tst	@#HD$CSR		; Valid?
    	BPl	5$			;   Yes - OK
    	Mov	HDCQE,	R4		;
    	BiS	#EOF$,	@-(R4)		;   Else - set EOF bit
    5$:
    	Mov	#CmdRea,@#HD$CSR	; Make Read from HD
    CHECK:
    	Tst	@#HD$CSR		; Error?
    	BPl	DONE			;   No - OK
    					;   Else  - abort
    HDINT:
    HDERR:
    	Mov	HDCQE,	R4		;
    	BiS	#HDERR$,	@-(R4)	; Set ERROR bit in CSW.
    DONE:
    	.DRFIN	HD
    
    
    ;
    ; .SpFun 373 - Get HD unit size.
    ;
    
    SPFUN:
    	CmpB	R1, #373		; GET SIZE?
    	BNe	HDERR
    	MovB	(R4)+,	 R1		; Q$UNIT
    	BiC	#^c7,	 R1			; 
    	Mov	R1, 	 @#HD$CSR+2
    	Mov	#SetUni, @#HD$CSR	; Select unit for operations.
    
    	Mov	#GetSiz,    @#HD$CSR	; Get unit size
    	Mov	@#HD$CSR+2, R1
    	BEq	HDERR
    	Mov	R1, @(R4)+ 		; Report unit size
    
    	Br	DONE
    
    
    .IIF GT	.-HDSTRT-1000	.ERROR
    
    	.Dsabl	LSB
    	.Enabl	LSB
    
    ;
    ; Primary bootstrap.
    ;
    	.DrBot HD, START, READ
    
    	. = HDBOOT + 40
    START:
    	Jmp	BOOT
    
    ;
    ; Boottime media read.  R0 = Block;  R1 = Word Count;  R2 = Buf Addr
    ;
    
    	. = HDBOOT + 210
    
    READ:
    	Mov	#HD$CSR+2, R4		; R4 -> HD data reg
    	Mov	R4, R5			; R5 -> HD data reg
    
    	Mov	@#B$DEVU, (R4)		; Unit Num
    	Mov	#SetUni, -(R4)		; R4 -> HD command reg
    
    	Mov	R0, (R5)		; R0 - Block number
    	Mov	#SetBlk, (R4)		;      Set it
    
    	Mov	R1, (R5)		; R1 - Word count
    	Mov	#SetWCn, (R4)		;      Set it
    
    	Mov	R2, (R5)		; R2 - Buf addr
    	Mov	#SetBuf, (R4)		;      Set it
    
    	Mov	#CmdRea, (R4)		; READ from HD device
    	RtS	PC			; 
    
    
    ;
    ; Primary boot
    ;
    	. = HDBOOT + 500
    HDMESC:
    	.ASCIZ	<CR><LF>"HD Boot-I-Cold boot.."<CR><LF>
    	.Even
    
    BOOT:					; Cold boot
    
    	Mov	#10000,	SP		; Boottime SP value
    	Mov	R0,   -(SP)		; Get cold boot unit num
    
    	......
    
    	Mov		PC, 	   R0
    	Add		#HDMESC-., R0
    	Br		2$
    3$:
    	MovB		(R0)+,	@#TPB
    1$:	TstB		@#TPS
    	BPl		1$
    2$:	TstB		(R0)
    	BNe		3$
    
    	......
    
    	Mov	#2,	R0		; Block number of  BSTRAP
    	Mov	#2000,	R1		; Word  count  of  BSTRAP
    
    	Mov	#1000,	R2		; Loading addr for BSTRAP
    
    	Mov	(SP),	@#B$DEVU	; Unit number
    
    	Call	READ			; READ Secondary Bootstrap
    
    	; Set data in Secondary Bootstrap		
    
    	Mov	#^RHD , @#B$DEVN	; Device name in RADIX50
    	Mov	(SP)+,	@#B$DEVU	; Boot device unit number
    	Mov	#READ-HDBOOT,@#B$READ	; Hook for BSTRAP
    
    	Jmp	@#B$BOOT		; Jmp to Secondary Bootstrap
    
    	.DrEnd	HD
    	.End
    Последний раз редактировалось Patron; 03.12.2012 в 12:05.

Страница 165 из 455 ПерваяПервая ... 161162163164165166167168169 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Видеорежимы и работа с ними
    от icebear в разделе Программирование
    Ответов: 23
    Последнее: 26.07.2005, 12:55
  2. Видеорежимы и работа с ними
    от icebear в разделе Несортированное железо
    Ответов: 3
    Последнее: 21.07.2005, 11:49
  3. Ответов: 0
    Последнее: 25.06.2005, 23:14

Ваши права

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