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

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 13 из 13

Тема: Вопросы по МК-90

  1. #11
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    5,576
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    415
    Поблагодарили
    348 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Мои предположения, что прерывания в начале памяти
    Если это прерывания самого процессора (нечётный адрес, резервный код, BPT, IOT и т.п.) - их адреса фиксированные.
    Если это прерывания от внешнего устройства - что выдаст устройство - то и вектор (вроде как должно быть меньше 1000, но.. не помню в доках по процессорам, что так ДОЛЖНО БЫТЬ). Чисто формально - может быть любой, хоть 177774.
    Отдельный вопрос, когда запрос прерывания имеет отдельную линию (типа EVNT) - тогда тоже фиксированные

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

    piotr433 (15.01.2022)

  3. #12
    Junior Аватар для piotr433
    Регистрация
    16.02.2011
    Адрес
    Szczecin, Польша
    Сообщений
    25
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    24
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Зачем нужно запрещать прерывания? Зачем нужно их потом разрешать?
    Безопаснее вводить изменения в системе прерываний (установление векторов, программирование контроллера прерываний) при запрещённых прерываниях и разрешать их только когда всё готово.
    Операнд MTPS должен быть действительно #E0 вместо #E00. Исправил ошибку.

    Где хранятся векторы прерываний? В нижних адресах или где-то ещё?
    В диапазоне адресов 0x0004-0x00FF.

    В загрузчике видел выравнивание для пропуска байт. Тоже не очень понятно, зачем их пропускать.
    Загрузчик занимает область памяти предназначенную для векторов прерываний. Необходимо пропустить адреса используемых векторов. Автор данного фрагмента кода видимо считал векторы по адресам 4..31 важными.

    Кстати, можно также опрашивать клавиатуру не используя прерываний:

    Код:
    ; attempt to poll the keyboard without using interrupts
    
    	.radix	16
    
    	.loc	0
    
    	nop			;obligatory!
    	mtps	#E0
    	mov	#scr,r0		;display RAM
    	mov	r0,@#E800
    	mov	#88C6,@#E802
    ; clear the display RAM
    	mov	#1E0,r1
    cls:	clr	(r0)+
    	sob	r1,cls
    	br	cont
    
    	.loc	100
    
    cont:	mov	#100,@#E812	;slow clock
    
    ; continuously read and display the keyboard scan code
    again:	jsr	pc,keyb
    	mov	#scr,r0
    	jsr	pc,hex
    	br	again
    
    ; read the keyboard scan code to R3
    keyb:	mov	#^XF2,@#E814
    	clr	@#E816
    keyb1:	tstb	@#E814
    	bpl	keyb1
    	mov	@#E816,r3
    keyb2:	tstb	@#E814
    	bpl	keyb2
    	mov	#E2,@#E814
    	rts	pc
    
    ; display the byte R3 at the screen address R0
    hex:	jsr	pc,hex1
    hex1:	mov	#4,r4
    	clr	r1
    hex2:	rolb	r3
    	rol	r1
    	sob	r4,hex2
    	jsr	pc,putc
    	rts	pc
    
    ; display the character R1 at the screen address R0,
    ; advance the pointer R0 to the next column
    putc:
    ; R1 <- 6 * R1
    	asl	r1		;* 2
    	mov	r1,-(sp)
    	asl	r1		;* 4
    	add	(sp)+,r1	;* 6
    	add	#chars,r1
    	mov	#6,r2
    putc1:	movb	(r1)+,(r0)
    	add	#1E,r0
    	sob	r2,putc1
    	sub	#B2,r0		;6 * 1E - 2 = B2
    	rts	pc
    
    ; characters, width = 8 pixels, height = 6 pixels
    chars:	.byte	3C, 46, 4A, 52, 62, 3C	;digit '0'
    	.byte	18, 28, 8,  8,  8,  3E	;digit '1'
    	.byte	3C, 42, 2,  3C, 40, 7E	;digit '2'
    	.byte	3C, 42, C,  2,  42, 3C	;digit '3'
    	.byte	8,  18, 28, 48, 7E, 8	;digit '4'
    	.byte	7E, 40, 7C, 2,  42, 3C	;digit '5'
    	.byte	3C, 40, 7C, 42, 42, 3C	;digit '6'
    	.byte	7E, 2,  4,  8,  10, 10	;digit '7'
    	.byte	3C, 42, 3C, 42, 42, 3C	;digit '8'
    	.byte	3C, 42, 42, 3E, 2,  3C	;digit '9'
    	.byte	3C, 42, 42, 7E, 42, 42	;'A'
    	.byte	7C, 42, 7C, 42, 42, 7C	;'B'
    	.byte	3C, 42, 40, 40, 42, 3C	;'C'
    	.byte	78, 44, 42, 42, 44, 78	;'D'
    	.byte	7E, 40, 7C, 40, 40, 7E	;'E'
    	.byte	7E, 40, 7C, 40, 40, 40	;'F'
    
    	.loc	200
    
    scr:
    - - - Добавлено - - -

    Цитата Сообщение от Hunta Посмотреть сообщение
    Если это прерывания самого процессора (нечётный адрес, резервный код, BPT, IOT и т.п.) - их адреса фиксированные.
    Если это прерывания от внешнего устройства - что выдаст устройство - то и вектор (вроде как должно быть меньше 1000, но.. не помню в доках по процессорам, что так ДОЛЖНО БЫТЬ). Чисто формально - может быть любой, хоть 177774.
    Отдельный вопрос, когда запрос прерывания имеет отдельную линию (типа EVNT) - тогда тоже фиксированные
    Насколко мне известно, в самом МК-90 все адреса прерываний меньше 001000, также выдаваемые внешними устройствами.
    Последний раз редактировалось piotr433; 15.01.2022 в 14:42.

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

    Oleg N. Cher (15.01.2022), Yprit (15.01.2022)

  5. #13
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    5,576
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    415
    Поблагодарили
    348 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от piotr433 Посмотреть сообщение
    в самом МК-90 все адреса прерываний меньше 001000
    Обычно они даже меньше 400, но понятие - вектор прерывания - используется не только в МК-90.

    Ну и никто не мешает сделать своё устройство с вектором, который будет выше. И кстати, интересный вопрос - как себя поведёт МК-90 в частности и конкретные модели PDP-11 в общем.

Страница 2 из 2 ПерваяПервая 12

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

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

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

Похожие темы

  1. Мои вопросы
    от Viktor2312 в разделе Разное
    Ответов: 2
    Последнее: 05.04.2015, 21:26
  2. Famitracker: вопросы
    от evgs в разделе Творчество
    Ответов: 3
    Последнее: 28.09.2010, 00:08
  3. Статистические вопросы ?
    от AAA в разделе Форум
    Ответов: 25
    Последнее: 22.07.2008, 20:44
  4. Вопросы и ответы
    от Addison в разделе ZX Концепции
    Ответов: 31
    Последнее: 28.11.2007, 11:35

Метки этой темы

Ваши права

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