PC-01 Lviv
http://pc01.lviv.ua/forum/

Команды процессора RST0...RST7, DI,EI
http://pc01.lviv.ua/forum/viewtopic.php?f=4&t=364
Page 1 of 1

Author:  als [ 27 Nov 2019, 17:14 ]
Post subject:  Команды процессора RST0...RST7, DI,EI

Как-то однажды на просторах форума (или еще где-то), я прочитал что
команды процессора RST0...RST7, DI, EI - во "ЛЬВОВ"-е не реализованы!
Я не заострил тогда внимания на том, что "не реализованы", это ж не значит что они не работают?!
Можна ли их реализовать в программах? т.е. имеется ввиду будут ли они работать на реальном ПК-01 если их задействовать.
Реализовывали ли их в играх (если да каких именно, если нет, то почему) ?

(тонкости работы данных команд их я еще не рассматривал, но насколько я понял, то каждая RST "привязана" к конкретному адресу начала памяти = ( (RST0...RST7) *8 ) и при применении их в программе, они ведут себя подобно CALL с разницей, что адрес фиксированный)
EI - Разрешение прерываний.
DI - Запрет прерываний.
Т.е. насколько я понял при применении DI, EI, будет включаться или выключаться (игнорироваться) команды RST0...RST7 ?

Author:  Zelya [ 28 Nov 2019, 13:08 ]
Post subject:  Re: Команды процессора RST0...RST7, DI,EI

RST0...RST7 - это команды прерываний. Их вызов будет аналогичен
CALL 0
CALL 8
CALL 16
и т.д.

Основная идея заключается в том, что к процессору можно подключить какую-нибудь аппаратную приблуду, которая будет вызывать их сама.
Чаще всего, это - таймер. Например, если подключить аппаратный таймер, скажем 50Гц, к прерыванию №2, то каждые 20 мс у нас автоматически будет вызываться код расположенный по адресу 16.

Увы, в ПК-01 это все не реализировано. Т.е. нет ни одной приблуды, которая бы вызывала прерывания аппаратно.

Их можно вызвать програмно. Хотя, обычно их редко используют. Единственный известный мне пример, это перекомпиляции с Z80. CALL c адресом занимает 3 байта, а RST - один байт, что позволяет экономить место в макросах, которые заменяют расширенные команды Z80.


EI и DI в 8080 не реализированы (только в 8085), стало быть в ПК-01 Львов они не работают. Но, если мне не изменяет память, они блокируют только аппаратные прерывания. Софтверные RST будут работать, как и прежде (но на 100% не уверен).

Author:  als [ 28 Nov 2019, 13:22 ]
Post subject:  Re: Команды процессора RST0...RST7, DI,EI

Спасибо за разъяснения.
В общем, проще выражаясь - выкинуть их из внимания и никогда не возвращаться к ним!

Author:  sadfsdfsdaf [ 26 Jul 2020, 10:41 ]
Post subject:  Re: Команды процессора RST0...RST7, DI,EI

Quote:
Их можно вызвать програмно. Хотя, обычно их редко используют. Единственный известный мне пример, это перекомпиляции с Z80.
микрософтовский бейсик в ПЗУ их использует для парсинга (там 2 байта получается вместе с данными: RST не_помню_номер 'ожидаемый_символ')
Quote:
EI и DI в 8080 не реализированы (только в 8085), стало быть в ПК-01 Львов они не работают. Но, если мне не изменяет память, они блокируют только аппаратные прерывания. Софтверные RST будут работать, как и прежде (но на 100% не уверен).
всё так, но в ПЗУ они почему-то используются и, кстати, по прерыванию процессору на шину выставляется команда, так что фактически по прерываниям процессор мог бы выполнять любую однобайтовую команду (например INR B) без захода в подпрограммы.

Page 1 of 1 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/