PC-01 Lviv

It is currently 28 Mar 2024, 14:26

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 27 Nov 2019, 17:14 
Offline

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

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


Top
   
PostPosted: 28 Nov 2019, 13:08 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
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% не уверен).


Top
   
PostPosted: 28 Nov 2019, 13:22 
Offline

Joined: 18 May 2016, 19:55
Posts: 425
Спасибо за разъяснения.
В общем, проще выражаясь - выкинуть их из внимания и никогда не возвращаться к ним!


Top
   
PostPosted: 26 Jul 2020, 10:41 
Offline

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 4 posts ] 

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


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:
cron
Powered by phpBB® Forum Software © phpBB Limited