ZX-Spectrum & TR-DOS за потребители и програмисти - Архитектура ZX SPECTRUM - система

Прекъсванията са основни инструменти за програмиране-
паралелни процеси. С тяхна помощ, например, в ZX Spectrum
едновременно с изпълнението на програмата в BASIC се извършва ска-
настройка и синхронизиране на клавиатурата от системния таймер.

Z80 има два входа за хардуерна инициализация
прекъсвания: INT - за маскирани прекъсвания и NMI - за немаскирани-
управлява. Маскираните прекъсвания получиха името си от-
възможността за програмно деактивиране или активиране на реакцията на сигнал за прекъсване-
докато за немаскируеми прекъсвания това е невъзможно.

Таблица 2. Битове за състояние
kemp ston джойстик.

Таблица 2. Битове за състояние
kemp ston джойстик.

Предпоставка за правилното функциониране на програмите
обслужването на прекъсванията е тяхната балансирана работа със стека:
по времето, когато прекъсването се върне, стекът трябва да е в същото състояние като
което той беше по време на пристигането на прекъсването. Друго условие
е да запазите всички регистри, включени в сервизната програма-
прекъсва и възстановява техните стойности при връщане от
прекъсвания.

В ZX Spectrum половин контур постоянно се подава към INT входа на процесора-
Плосък сигнал за синхронизация с период от 1/50 секунди. Към операционната-
в системата това се използва за организиране на анкетиране на клавиатурата и-
стойността на системния брояч едновременно с работата на преводача-
Татор ОСНОВНИ.

Можете да контролирате преминаването на маскирани прекъсвания с командата-
mi DI и EI, които променят състоянието на специален вътрешен спусък
микропроцесорен IFF. Командата DI нулира този тригер, като деактивира-
извличане, EI го настройва да позволява прекъсвания.

Когато се извика маскируемо прекъсване, IFF задейства автоматично
изчистено, забранено повторното извикване на прекъсванията. След обработка
процесорът за прекъсвания не задава отново спусъка - за да се активира
преминаването на последващи прекъсвания, програмистът трябва да включи в
програмна команда EI.

Z80 има три маскируеми режима на работа с прекъсвания, които
зададени от командите на процесора IM 0, IM 1 и IM 2. За съжаление,
е почти невъзможно програмно да се определи в кой режим
обработката на прекъсвания е процесорът в определен момент.

Режимът се задава или чрез командата IM 0, или чрез хардуерно нулиране
процесор и не се различава от режима за обработка на прекъсвания в
микропроцесор 18080. При пристигане на INT сигнала процесорът чете от шината
код за данни на данни (предварително зададен към шината от външен-
издърпващо устройство) и го изпълнява. По принцип може да бъде всеки
команда (най-често срещаните команди са RST N или CALL addr). Но
ZX Spectrum е проектиран по такъв начин, че когато се извика прекъсване в режим 0
стойността 255 (#FF) винаги се чете от шината за данни - RST команден код 56.
Следователно за ZX Spectrum този режим е подобен на режим 1. *

Задава се от командата IM 2. Режимът позволява програмиране-
Мога да се справя сам с прекъсвания, което е интересно.

*) Строго погледнато, това не е напълно вярно, вижте бележката за режим 2.

**) Някои външни устройства, например AMX-мишка, могат да генерират-
Добавете вектор на прекъсване, различен от 255.

PRINT PEEK (2559) + 256 * PEEK (2560)

10 ВХОД "Вектор на прекъсване:"; l: REM вектор на прекъсване

20 ПЕЧАТ I.PEEK (l "256 + 255) + 256 * PEEK (1 * 256 + 255 + 1)

Връщането от маскирани прекъсвания се извършва от командата RETI.
Разпознава се от специални периферни микросхеми *, които чрез-

Таблица 3. Адреси на процедурите за обработка на прекъсвания.

Таблица 3. Адреси на процедурите за обработка на прекъсвания.

*) Компанията Zilog разработи микросхеми, включени заедно с
Z80 CPU в комплекта под общото име Z80.

Позволява ви да организирате система за прекъсване на няколко нива. Но тъй като
в ZX Spectrum тази система не се използва, след това се върнете от прекъсване
можете да използвате командата RET.

В ZX Spectrum не е включено немаскируемо прекъсване, но