nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 21 Nov 2018 10:13



Reply to topic  [ 54 posts ]  Go to page Previous  1, 2, 3, 4
Венец творенья 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Я и раньше интересовался этим вопросом и помню эту рекомендацию,
что стек обязательно надо установить: LXI SP,XXXX.

Но вот что конкретно происходит с SP по RESET - не встречал.
И сегодня потратил много времени в поиске, но безуспешно пока... :(

Ну вот, к примеру, типичная цитата про RESET:
Quote:
RESET – асинхронный выход сброса всех регистров, входящих в состав всех внутренних устройств БИС. Обычно он вырабатывается аппаратно и производится вначале при подаче питания на микропроцессорную систему, имеется также возможность подачи сигнала сброса оператором вручную.

_________________
iLavr


07 Apr 2012 09:39
Profile
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2150
Location: От туда
Reply with quote
Post 
Lavr wrote:
HardWareMan wrote:
А М68К грузит PC и SP из первых двух двойных слов таблицы векторов. ;)

Хардыч, а в твоём Интелловском мануале по i8080 нет какой-либо конкретики о состоянии SP по RESET?

Есть.
Image
Стало быть, все протестированные VituZz'м ВМ80 работали правильно. ;)


07 Apr 2012 09:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Что ж - закрываем этот вопрос. Люблю ясность.

Image


07 Apr 2012 10:52
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
HardWareMan wrote:
Зачем ПЗУ? Вплоне бесПЗУшная работоспособная схема есть:
http://stor.altervista.org/z80/schema_2.htm
Запускаем проц и через ЛПТ сливаем ему прогу приема, а потом сливаем данные,
после подачи последнего байта клац тумблером и вперед (можно не тумблром а
портом, но тумблером нагляднее.

Image


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

Мне кажется, с Хардычем и b2m мы где-то здесь и программу-загрузчик обсуждали...
но я поиском не нашел.

А загрузчик довольно интересный, причем характерный для z80:
Code:
    LD HL,0
    LD DE,0
    LD BC,1000
    LDIR

То есть эти 11 байт: 21 00 00 11 00 00 01 E8 03 ED B0
мы подсовываем процессору как бы вне зависимости от выставляемых им адресов,
загружаются рег.пары HL, DE, BC и инструкция LDIR по сути начинает прием и загрузку
байтов из буфера принтера в ОЗУ этой простенькой системы в собственном цикле...
Завершать там всё же советуют через HLT, потом при нажатом RESET перебросить тумблер,
чтобы проц. мог читать из своего ОЗУ, и отпустив сброс, пускаем проц в работу по загруженной
программе с 0000Н.

Сразу указывают там ограничения, что извне через ЛПТ можно подкидывать
процу опкоды только линейно исполняемой программы.

Так что в принципе тут с кодами именно загрузчика и не пофантазируешь сильно.
LDIR - он сам себе цикл получается, с автоматическими инкрементами указателей
и декрементом счетчика...

А вот если представить на месте z80 - К580ВМ80, схема не станет аппаратно сложнее,
но вот код загрузчика вопросы вызывает...
Впрочем и для z80 разнообразие загрузчиков представимо с трудом...

Мы вроде как PUSH предполагали заюзать... но тогда автоматический цикл трудно себе
представить. LDIR всё же на этом месте работает очень эффективно!
И само программно-аппаратное решение очень симпатичное... :kruto:

_________________
iLavr


Last edited by Lavr on 16 Feb 2013 07:02, edited 1 time in total.



15 Feb 2013 18:44
Profile
Doomed

Joined: 26 May 2003 07:57
Posts: 634
Reply with quote
Post 
Lavr wrote:
Мы вроде как PUSH предполагали заюзать... но тогда автоматический цикл трудно себе
представить.

Зачем тебе цикл? Гони в порт 31 AL AH 21 XX XX E5 21 XX XX E5 ... 76 и будет тебе щастье (только не забывай, что загрузка задом наперёд). Байты E5 21 можно считать частью протокола :kruto:

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


16 Feb 2013 02:55
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
Зачем тебе цикл? Гони в порт 31 AL AH 21 XX XX E5 21 XX XX E5 ... 76 и будет тебе щастье

Да я помню наше обсуждение, хотя и не нашел его.
Просто когда сначала загрузчик, а потом байты программы непрерывно -
это как бы более элегантно выглядит, нет?

И практически проще - к своим кодам приделал 11 байт заголовка с правильной
длиной в ВС и можно просто перенаправить бинарник в LPT.

В этом же случае бинарник надо предварительно чем-либо обработать,
или свою утилиту печати написать.
Я только из таких соображений поразмыслил...

Но есть другой вариант, как мне кажется: посредством этого метода
31 AL AH 21 XX XX E5 21 XX XX E5 ... 76
сформировать всего один бинарник - собственно локальный начальный загрузчик.
И первоначально "печатать" в плату именно его, а потом отдавать ему управление
и непрерывным массивом уже "печатать" свой бинарник по любым заданным адресам...


PS. В этом случае можно "печатать" загрузчику бинарники в формате типа rks, где указаны
адреса посадки и КС.

_________________
iLavr


16 Feb 2013 06:02
Profile
Doomed

Joined: 26 May 2003 07:57
Posts: 634
Reply with quote
Post 
Тогда вышеприведённую схему усложнять надо. Дешифрация портов (читать не только из ВВ55 надо, но и из LPT порта) как минимум. Ну и если загрузчик самостоятельно запускаться должен (чтобы сразу файл грузить), а не "нажать на сброс, переключить run", то тоже.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


16 Feb 2013 06:49
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
Тогда вышеприведённую схему усложнять надо. Дешифрация портов (читать не только из ВВ55 надо, но и из LPT порта) как минимум.

Знаешь, мне представляется, что вышеприведённую схему усложнять сильно не придется.
Но мне понравилась мысль Хардыча, что переключатель надо бы сделать программным...
По типу - запустил вручную, а отключил он себя сам.

По аналогии НП в "Специалистах" и др.

Хотя, конечно же, в варианте с z80 тут всё очень минималистски самодостаточно...


PS. Может быть буфер принтера и размещать временно по адресам порта?
Чтобы не множить сущностей?

_________________
iLavr


16 Feb 2013 06:56
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Lavr wrote:
Может быть буфер принтера и размещать временно по адресам порта?
Чтобы не множить сущностей?

Есть ещё один удобный момент в схемотехнике этой платы: /CS (/E) ОЗУ
намертво завешан на землю, а не на А15.

Поэтому автор чутка лукавит, что у него ОЗУ спроецировано на адреса 0...7FFFh.
ОЗУ у него и в верхних адресах "зеркалится".

Возможно, с буфером принтера удобно схемотехнически прицепиться к верхним адресам.

_________________
iLavr


16 Feb 2013 07:19
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 54 posts ]  Go to page Previous  1, 2, 3, 4

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.