РВЕ035 (aka КР1816ВЕ35 aka i8035)

8-битные микроконтроллеры и микропроцессоры от Intel и их клоны, а также компьютеры на них построенные

Moderator: Shaos

Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Да там не маленькая прошивка-то. Весь килобайт кодом занят..... Наверное лучше самому разобраться, как с этим индикатором работать.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Tronix wrote:Наверное лучше самому разобраться, как с этим индикатором работать.
Как хочешь... но замучаешься больше, чем прочитать оригинальное ПЗУ.
Раньше у всех этих старых недо-компов типа РК-86 и Микроши ПЗУ читали как нефиг делать!
А там - по 2Кбайт минимум было... :wink:

Кстати, ПЗУ-ху слей куда-нибуть, чтобы булО...
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Слил сюда: http://zx.pk.ru/showpost.php?p=680408&postcount=588

Как я понял нужно "бежать" по С2 - С5 (выставлять ноль), затем писать в PORT1 маску символа и тд...
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Да принцип-то - да, несложный... просто неприятное занятие подбор временнЫх интервалов,
чтобы оно нормально было видно.

Я так думаю - в оригинале там всё сделано по прерыванию, чтобы периодически индикатор
сканировать, ну и на этом фоне заниматься прочими делами.
Ну и все интервалы нужные уже подобраны.

За ПЗУ-ху спасибо! :lol: У меня у самогО дома такая печка и что-то уже с год как не работает...
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Ну да, в интервале весь замес идет. Для меня просто ассемблер этот непривычен, поэтому читать на лету не получается. Но разбираюсь...

Image
Last edited by Tronix on 28 Feb 2014 12:04, edited 1 time in total.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Tronix wrote:Для меня просто ассемблер этот непривычен, поэтому читать на лету не получается...
Привыкнешь быстро. Там просто адресация и банки несколько непривычны.

А так-то это по сути урезанный-обрезанный i8080, которому на кристалл добавили
порты и память программ.
А блок регистров общего назначения сделали 8-битным сугубо, удлиннили до 64 ячеек,
и назвали памятью данных.

Только будь осторожен - если я правильно помню, у этих микро-ЭВМ нет инструкции вычитания.
Это несколько озадачивает по первому разу... 8)
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Lavr wrote:Только будь осторожен - если я правильно помню, у этих микро-ЭВМ нет инструкции вычитания.
Это несколько озадачивает по первому разу... 8)
Испугали ежа иголкой :) Уж чего чего, а вычитание то я могу запилить через сложение с NOT. Да и вообще, при наличии стольких свободных килобайт можно вообще полную таблицу значений держать.
Но оно мне пока все не нужно.

Решил значит делать отрисовку в таймере. Нужно ему задать вектор прерывания (по адресу 0x007), потом задать интервал (mov a,#??; mov t,a) и запустить таймер STRT T

Немного не вкуриваю с RAM памятью. Мне нужен массив из 4 байт (ну для 4 символов). Че, какие адреса, почему такие... Вот смотрю в дизасм основной прошивки, там так:

Code: Select all

	mov	r1,#02DH
	mov	a,@r1
Что за 02dh? Почему? И дальше по тексту уже так:

Code: Select all

	mov	r0,#03CH
	mov	a,@r0
Тут уже на ~100h больше адрес. Странно..
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

У меня какое-то дежавю в этой теме... :)

Сташин, Урусов, Мологонцева. Проектирование цифровых устройств на однокристальных микроконтроллерах. Отличная книга по 1816, со схемами, алгоритмами и готовыми кусочками кода.
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

С памятью более-менее разобрался вроде. Первые 8 байт отображаются на регистры R0-R7, следующие 8 байт вроде для стека (для запоминания адреса возврата CALL), остальные 16 байт можно юзать по усмотрению. Ну и второй банк SEL RB1 - так же. Ну мне 16 байт хватит за глаза.
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Сделал вывод через таймер. Тайминги подсмотрел в оригинальной прошивке, как и советовал Lavr. Все работает :)
Image

Говнокодес:

Code: Select all

;DATA
	.equ disp_buf, 030h			; 4 bytes buffer


;;;  reset vector 
	.org	0
	dis 	i			; disable interrupts
	jmp	main

;;;  external interrupt vector--trap
	.org	3
	jmp	$			; nop

;;;  timer interrupt vector
	.org	7
	sel 	rb1
	mov a,#0d5h
	mov t,a
	mov	a,#00FH
	orld	p5,a

	mov	a,disp_buf-1
	add	a,r5
	mov	r0,a
	mov 	a,@r0

	outl 	p1,a

	mov	a,r4
	movd	p5,a
	rl	a
	mov	r4,a

	djnz	r5,exit_tmr
	mov	r4,#0feh
	mov	r5,4

exit_tmr:
	sel 	rb0
	mov a,#0d8h
	mov t,a
;	strt 	t
	retr

;MAIN
main:
	;initialize

	dis 	tcnti			; turn off counter

	mov 	r0,disp_buf		; Fill disp_buf
	mov 	a,#0c0h			; O
	mov 	@r0,a
	inc 	r0
	mov 	a,#0c7h			; L
	mov 	@r0,a
	inc 	r0
	mov 	a,#086h			; E
	mov 	@r0,a
	inc 	r0
	mov 	a,#089h			; H
	mov 	@r0,a

	sel 	rb1			; timer variables
	mov	r4,#0feh		; 1110h - CT position
	mov	r5,4			; R5 = buf offset
	sel	rb0

	mov 	a,#0e5h
	mov 	t,a
	strt 	t
	en	tcnti

main_loop:
	jmp main_loop
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

iLavr
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Post by petrenko »

Lavr wrote:...
А так-то это по сути урезанный-обрезанный i8080, которому на кристалл добавили
порты и память программ..
Не совсем так - скорее это "урезанный-обрезанный i8085" ибо забыли упомянуть генератор, и ещё всяко разно. Да и питание одно, что тоже как у 8085 а не как у 8080 ..
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

petrenko wrote:Не совсем так - скорее это "урезанный-обрезанный i8085"...
Ага... щаззз... а 8085 - это кто? Это продвинутый 8080.
И раз ты сам говоришь, "урезанный-обрезанный i8085" - это как раз и будет "обрезанный 8080". :wink:

Но весь этот словесный бредятник никак не влияет на основную подчеркнутую мной мысль:
Lavr wrote:...на кристалл добавили порты и память программ.
А блок регистров общего назначения сделали 8-битным сугубо,
удлиннили до 64 ячеек, и назвали памятью данных.
iLavr
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Радует другое, что у сабжа есть шина BUS. Это почти как Parallel slave port у некоторых PIC. Правда конкретно у 8035 она занята ПЗУ, а у какого-нить 8048 можно юзать по своему усмотрению. Плюс ко всему очень просто подключить динамическую память типа РУ7, можно тестер сделать для РУ5, РУ7.... Да и камни стоят копейки.
Mixa64
Doomed
Posts: 478
Joined: 25 Aug 2009 07:02
Location: Москва

Post by Mixa64 »

...Теперь только остается сыграть на девайсе «в лесу родилась елочка»...
А "Мурку" смогёшь?