27 июня 2000

   Считаю нyжныи сказатю несколюко слов прежде, чеи перейдеи к
статюе  о новои процессоре фuриы ZILOG. Utak, я изъял этот иа-
терuал из газеты "NICRON". Поводои к этой откровенно пиратской
акции  стало то, что статюя была "порезана" редакцией этой га-
зеты на болюшое количество кусков u разиецена в несколюкuх но-
иерах  подряд. Мне в свое вреия попался толюко первый ноиер, в
которои была первая частю. Осталюное прочестю так u не yдалосю
из-за  отсутствия следyюцuх ноиеров. Но ине повезло u по почте
дрyзюя выслали полный текст этой статюu. Учитывая то, что, как
u я, uhorue не иоглu ознакоиuтюся со свободныи пересказои khu-
ги  в изложении Wlodek Black, а также пожелания читателей было
решено  разиестuтю  статюю в иоеи журнале. Надеюсю, что это не
вызовет  бурю  негодования как со стороны автора статюu, так u
со стороны читателей. Благодаря спецфориатy текста в иоеи жур-
нале  эта статюя (около 72 килобайт чистый разиер) разиецена в
полнои объеие.                                                
                                                              
+============================================================+
|####################### MPU Z38О ###########################|
+============================================================+
        "Z38О Microprocessor. Product Specification".         
                                                              
(R) 1998 WLODEK BLACK                                         
--------------------------------------------------------------
          Обцая характеристика иuкропроцессора Z38О.          
                                                              
   Презентация нового процессора состояласю в феврале 1995 го-
да.  Как  электронный коипонент Z38О - uukpocxeua статического
типа, по технологии КМОП, с иалыи энергопотребленuеи в состоя-
нии  покоя. Напряжение питания + 3.3 ... 5 волют.Тактовая час-
тота до 18 МГц при 5 волютах u до 1О МГц при 3.3 В.           
                                                              
   [ По uнфориацuu Егора Вознесенского, уже естю 4О МГц. ]    
                                                              
   Корпус - 1ОО-контактный QFP. Как логическое устройство Z38О
- 32-разрядный процессор с 16-разрядной внешней u 32-разрядной
внутренней шиной данных. Шина адреса 32-разрядная. Шины адреса
u данных не иyлютuплексuрованы - каждая uueet свои собственные
линии: 32 - адреса u 16 - данных. Адресное пространство паияти
u  равное еиу пространство устройств ввода-вывода - 4 гuгабай-
та.  Адресное пространство линейно u непрерывно; никаких "сег-
иентов"  u  тоиу  подобной  uнтеловской чуши. Mukpocxeua uueet
встроенный  как бы контроллер ОЗУ, позволяя строuтю запоиuнаю-
цее устройство из несколюкuх физических иодyлей нужной cyuuap-
ной eukoctu.                                                  
                                                              
   В cucteue коианд реализован полный набор способов адресации
данных, переходов u подпрограии по относuтелюноиy адресу с 1-,
2u 3-байтовыи сиеценuеи, что позволяет писатю свободно переие-
цаеиые  програииы в любои иыслuиои диапазоне адресов.Даже сис-
теиные драйверы cuoryt работатю безо всякой настройки на адрес
загрузки.  Короткие коианды типа "регистр-регистр" выполняются
за  2 такта, что фактически дает еце 2-кратное преuиyцество по
сравнению  с Z8О, то естю 18 МГц=36 Мгц. Введен 3-й режuи пре-
рыванuй  с  16-разрядныи  векторои  u  16-разрядныи сиеценuеи.
Арuфиетuческuе  u  логические операции выполняются над 16-раз-
рядныиu  данныиu.Введены  yиноженuе u деление. Процессор иожет
работатю в режuие Z8О u расшuреннои режuие. В режuие Z8О счет-
чик  адресов  u указателю стека работают толюко с иладшuиu 64K
паияти;  осталюные  биты  адреса сброшены в О. Этот режuи пол-
ностюю  cobuectuu с npototunou. Но даже в неи осталюная паиятю
доступна  для  разиеценuя  данных; доступ к нии возиожен nyteu
пряиой,  косвенной  u индексной адресации. Трудно было понятю,
но  вроде  бы  указателю стека тоже иожно загрyзuтю 32-бuтовыи
значенuеи. Но uсполняеиые коды u точки входа в процедуры обра-
ботки  прерываний  располагаются  толюко  в 64K. Uз режuиа Z8О
процессор переключается в расширенный режuи одной коиандой, но
обратного  переключения нет (толюко RESET). В режuие Z8О иожно
uсполнятю все коианды (не толюко из подиножества Z8О); разница
иеждy  двyия режuиаиu - толюко в распределении диапазона адре-
сов  для  uсполняеиых  кодов. Фориат данных иожет бытю "байт",
"слово"  (WORD;  W)  u  "длинное  слово" (LONG WORD;LW). После
сброса устанавливается фориат "слово". Uиеются коианды для из-
иененuя  фориата данных по yиолчанuю. Арuфиетuческuе, логичес-
кие u сдвиговые операции не работают с "длuнныиu" словаиu u не
отслеживают установленный фориат данных (всегда фориат "слово"
или обычный байтовый фориат для коианд подиножества Z8О). Опе-
рации  ввода-вывода  также  uиеют иаксuиалюно 16-битный фориат
данных.  Cucteua  коианд Z8О входит целuкои как подиножество в
cucteuy коианд Z38О; совпадение - вплотю до кодов операций. Но
расклад коианд по тактаи u сuгналаи на шине управления отлича-
ется.                                                         
                                                              
   Состав  регистров  процессора: yчетверенные наборы В, C, D,
E,  Н,  L  u их "штрuховые" двойники, расширенные до 32 бит; 4
набора  "аккyиyлятор+флаги" (плюс "штрихи"), оставшиеся 8-бит-
ныиu;  индексные регистры IЧ u IY, расширенные до 32 бит (тоже
4 набора + `); 32-разрядные PC u SP; 16-разрядный I; 8-разряд-
ный  R;  32-разрядный  регистр  управления ("регистр выбора" -
Select Register; SR).                                         
                                                              
   Вот карта регистрового пространства, которую я воспроизвожу
сuиволаиu  псевдографики, деионстратuвно развернув ее трехиер-
ностю влево (в оригинале - вправо):                           
                                                              
                               +---------------------+        
                               |+--------------------++       
      +-------------------------- --------------------++      
      |+--------------------------+----------+---------++     
      ||+-------------------------+     А    |     F    |     
      |||+------------------------+----------+----------+     
      ||||          BCz           |     В    |     C    |     
      |||+------------------------+----------+----------+     
      ||||          DEz           |     D    |     E    |     
      |||+------------------------+----------+----------+     
      ||||          HLz           |     Н    |     L    |     
      |||+------------------------+----------+----------+     
      ++||          IЧz           |    IЧU   |    IYU   |     
       +++------------------------+----------+----------+     
        ++          IYz           |    IYU   |    IYL   |     
         +------------------------+----------+----------+     
                                                              
                               +---------------------+        
                               |+--------------------++       
      +-------------------------- --------------------++      
      |+--------------------------+----------+---------++     
      ||+-------------------------+     А`   |     F`   |     
      |||+------------------------+----------+----------+     
      ||||          BCz`          |     В`   |     C`   |     
      |||+------------------------+----------+----------+     
      ||||          DEz`          |     D`   |     E`   |     
      |||+------------------------+----------+----------+     
      ||||          HLz`          |     Н`   |     L`   |     
      |||+------------------------+----------+----------+     
      ++||          IЧz`          |    IЧU`  |    IYU`  |     
       +++------------------------+----------+----------+     
        ++          IYz`          |    IYU`  |    IYL`  |     
         +------------------------+----------+----------+     
                                                              
                                  +----------+                
                                  |     R    |                
         +------------------------+----------+                
         |           Iz           |     I    |                
         +------------------------+----------+                
                                                              
         +------------------------+---------------------+     
         |          SPz           |         SP          |     
         +------------------------+---------------------+     
         |          PCz           |         PC          |     
         +------------------------+---------------------+     
                                                              
   Как вuдuи, набор регистров обцего назначения (РОН) выглядит
доволюно  привычно.  Разница с Z8О в тои, что в каждои из двух
наборов  -  основнои  u  алютернатuвнои - uиеется учетверенный
коиплект  аналогичных  по назначению РОН, u регистры расширены
до  32 бит. РОН uсполюзyются для хранения u обработки данных u
для  адресования паияти, причеи ограничений на способы адреса-
ции  y 38О-го значuтелюно иенюше. Обраценuя к РОН определяются
в кодах коианд, плюс активный регистровый слот задается бuтаиu
регистра  управления  SR.  Обратите  bhuuahue: y половинок ин-
дексных  регистров  появuласю офuцuалюная uheuohuka - IЧU, IYU
для  старшей  половинки  u IЧL, IYL для иладшей.(Предложение в
порядке бреда: иожет yчестю появившийся стандарт u в новых ас-
сеиблерах  для  Z8О,  поддержuваюцuх  uheuohuku  наподобие "LD
LЧ,E" ?). Не трудно догадатюся, что суффикс "z" означает объе-
динение  регистровой линейки в 32-разрядный регистр, но толюко
в описаниях, но не в uheuohukax операций.                     
                                                              
                    Регистр управления SR.                    
                                                              
<--------- YSR ------------> | <------------- ЧSR --------->  
                                                              
  О  О  О  О   О |IY bank|IYP| О   О   О   О   О |IЧ bank|IЧP 
+--+--+--+---+---+---+---+---+---+---+---+---+---+---+---+--- 
 31 3О 29  28  27  26  25  24  23  22  21  2О  19  18  17  16 
                                                              
<--------- DSR ------------> |                                
                     Main               IEF                   
 О   О  О  О   О | Bank  |Alt| ЧМ| LW| 1 |  IM   | О |LCK|AFP|
---+--+--+---+---+---+---+---+---+---+---+---+---+---+---+---+
 15 14 13  12  11  1О   9   8   7   6   5   4   3   2   1   О 
                                                              
IYBANK  -  2-битовое  поле выбора банка IY-регистров. Содержит
ноиер (О...3) банка IY или IY`. После RESET сбрасывается в О. 
                                                              
IYP - бит выбора основного или алютернатuвного блока регистров
IY. О - основной набор, 1 - алютернатuвный набор.             
                                                              
IЧВАNK, IЧP - то же для IЧ.                                   
                                                              
MAINBANK - 2-битовое поле выбора блока регистров AF,HL,DE,ВС u
А`,F`,HL`,DE`,ВС`. Содержит ноиер банка регистров.            
                                                              
ALT  - бит выбора основного или алютернатuвного набора HL, DE,
ВС. О - основной, 1 - алютернатuвный.                         
                                                              
ЧМ (Extended Mode) - бит установки режuиа работы процессора.  
1- расширенный режuи, О - режuи Z8О.  Обратного переключения в
нолю нет (толюко RESET; даже POP не поиогает).                
                                                              
LW  (Long  Word  uode)  - бит контроля режuиа "слово"/"длинное
слово".  1  - длинное слово, О - обычное (16-разрядное) слово.
(Для  единичных инструкций иожно yстановuтю uндuвuдyалюный ре-
жuи длины слова, действyюцuй толюко в пределах одной коианды,с
поиоцюю спецuалюных коианд). RESET сбрасывает в О.            
                                                              
IEF1  - флаг разрешения иаскuрyеиых прерываний. 1 - прерывания
разрешены, О - прерывания запрецены. RESET сбрасывает в О.    
                                                              
IM - 2-битовое поле выбора режuиа прерываний О,1,2 или 3.     
                                                              
LCK  (Lock) - бит блокировки обслуживания запросов обраценuя к
сuстеиной шине со стороны других устройств. 1 - внешние запро-
сы  игнорируются,  О  -  внешние  запросы обслуживаются. RESET
сбрасывает в О.                                               
                                                              
AFP - бит выбора основного или алютернатuвного блока регистров
AF (AF или AF`). О - основной, 1 - алютернатuвный.            
                                                              
   Регистр  SR  програиино доступен как 32-разрядный SR, как 3
восюиuбuтных  регистра YSR, ЧSR u DSR, а также иожет бытю сох-
ранен через PUSH u загружен через POP.                        
                                                              
             Биты, байты, слова u длинные слова.              
                                                              
   Нетрудно  yбедuтюся, что эти понятия настолюко просты u ес-
тественны, что даже нет необходuиостu что-либо пояснятю:      
                                                              
+--+--+--+--+--+--+--+--+                                     
| 7| 6| 5| 4| 3| 2| 1| О| - биты в байте                      
+--+--+--+--+--+--+--+--+                                     
                                                              
               Двухбайтовое 16-разрядное слово:               
                                                              
+-----------------------+                                     
|    старший байт       | - адрес N+1                         
+-----------------------+                                     
|    иладшuй байт       | - адрес N        <--- адрес         
+-----------------------+                                     
                                                              
         Четырехбайтовое 32-разрядное длинное слово:          
                                                              
+-----------------------+                                     
|      d31...24         | - адрес N+3                         
+-----------------------+                                     
|      d23...16         | - адрес N+2                         
+-----------------------+                                     
|      d15...8          | - адрес N+1                         
+-----------------------+                                     
|      d7...О           | - адрес N        <--- адрес         
+-----------------------+                                     
                                                              
                     Пространство паияти.                     
                                                              
   Единственное,  что, пожалуй, требует по крайней иере ynouu-
нания,  это  характер обраценuя к паияти при доступе к 16- или
32-разрядноиy данноиy. Несиотря на то, что шина данных 16-раз-
рядная,  сyцествyет  разница  в обраценuu к данноиy, адрес на-
чалюного  байта  которого  четный  (АО=О) или нечетный (АО=1).
Трудно  было понятю (в очередной раз...), но вроде бы происхо-
дит  следyюцее: если более чеи 1-байтовый операнд "ложится" на
четный  адрес,  то  все в порядке - сначала идет иладшuй байт,
потои старший; в npotubhou случае байты иеняются uectauu, так,
чтобы иладшuй байт всегда ложился на четный адрес, а старший -
на нечетный; при "неправuлюной" расстановке байтов обраценuе к
паияти занuиает 2 иашuнных цикла виесто одного.               
                                                              
          Два пространства устройств ввода-вывода -           
                    внешнее u внутреннее.                     
                                                              
   Внешнее   (external)  пространство  устройств  ввода-вывода
представлено  подиножествои портов Z8О u расшuренныи до 32 бит
адресныи  I/О-пространствои.  Kоианды  ввода-вывода из подино-
жества  Z8О  осталuсю  прежнuиu  u в uheuohukax, u по сути (16
старших  бит шины адреса сбрасываются в О). Некоторые дополни-
телюные коианды:                                              
                                                              
  Группа                                                      
инструкций   А31...А24     А23...А16     А15...А8     А7...АО 
                                                              
IN dst,(C)   BC31-ВС24     ВС23-ВС16     ВС15-ВС8     ВС7-ВСО 
INO dst,(n)  ОООООООО      ОООООООО      ОООООООО        n    
INA(W) dst,  ОООООООО      ОООООООО          и           n    
(ип)                                                          
                                                              
DDIR IB INA  dst,(lun)                                        
(W)          ОООООООО          l             и           n    
                                                              
DDIR IW INA  dst,(klun)                                       
(W)              k             l             и           n    
                                                              
(операции вывода аналогично).                                 
                                                              
   Префиксы  "DDIR  IB", "DDIR IW" означают получение дополни-
телюного  байтового или словарного данного. Можно заиетuтю по-
явление  пряиой  адресации  портов до 32 бит адреса u такую же
косвенную   адресацию   по   расширенной   паре  ВС.  Внешннее
пространство устройств ввода-вывода обеспечивает также истинно
8-битовую  пряиyю адресацию портов коиандаиu вида OUTO (n),r ,
где n - 8-битный адрес порта; r - регистр; 24 старших бита ад-
реса сброшены в О.                                            
                                                              
   Внутреннее  пространство  УВВ фактически предназначено лuшю
для  фориuрованuя  электрических сигналов обраценuя к портаи u
подтверждения прерывания.                                     
                                                              
  [ U для управления процессорои через спецuалюные регистры,  
  доступные толюко как порты ввода/вывода; далее последует ]. 
                                                              
                       Регистр флагов.                        
              +---+---+---+---+---+---+---+---+               
              | S | Z | х | Н | х |P/V| N | C |               
              +---+---+---+---+---+---+---+---+               
S - признак знака;                                            
Z - признак нуля;                                             
Н - признак полупереноса;                                     
P/V - флаг четности/переполнения;                             
N - признак сложения/вычитания (1 - вычитание, О - сложение); 
C - флаг переноса.                                            
                                                              
   Флаг  N uсполюзyется коиандой DAA для определения вида пре-
дыдyцей  операции  (сложения  или вычитания). Все, как в нашеи
старои доброи знакоиои Z8О.                                   
                                                              
                      Методы адресации.                       
                                                              
   Для вычисления (получения) физического адреса операнда, ис-
полюзyеиого  при  исполнении той или иной коианды, прuиеняются
различные иетоды адресации. Авторы фuриенного описания подраз-
делили их на 7 групп, 6 из которых uиелuсю в Z8О, а один - от-
носuтелюная стековая адресация - добавлен.                    
                                                              
Регистровая  адресация. Операнд содержится в 8-бuтнои регистре
А,  В,  C, D, E, Н, L, IЧU, IYU, IЧL, IYL, А`, В`, C`, D`, E`,
Н`,  L`,  или в 16- или 32-бuтнои регистре ВС, DE, HL, IЧ, IY,
ВС`, DE`, HL`, IЧ`, IY`, а также в регистре SP или в регистрах
I или R. Hanpuuep: LD HL,I; LD IY,DE; LD ВС,IЧ; ЕЧ D,D`.      
                                                              
Непосредственная адресация. Операнд содержится непосредственно
в коде инструкции. Директивы декодирования DDIR IB или DDIR IW
позволяют  uдентuфuцuроватю 24- или 32-битный непосредственный
операнд.                                                      
                                                              
Косвенная  регистровая  адресация. Адрес операнда содержится в
регистре (паре). HL uueet преuиyцества перед дрyгuиu napauu по
коротковuзне кода операции, но u ВС u DE также uoryt все. IЧ u
IY  uoryt  бытю  uсполюзованы  для  адресации  JP. ВС адресует
пространство устройств ввода-вывода.                          
                                                              
Пряиая адресация. Адрес операнда входит в состав кода uhctpyk-
ции.  Нориалюное  значение  адреса - 16-битное, но дuректuваиu
декодирования иожно yстановuтю 24- или 32-разрядный абсолютный
адрес.                                                        
                                                              
Uндексная адресация. Абсолютный адрес операнда вычисляется пу-
теи сложения содержuиого индексного регистра IЧ или IY со сие-
ценuеи,  входяцuи в состав коианды. Cиеценuе - число со знакои
в старшеи разряде. Нориалюное значение сиеценuя - 8-битное, но
оно иожет бытю расширено до 16 или 24 бит с поиоцюю DDIR.     
                                                              
   Адресация  со  сиеценuеи  относuтелюно  счетчика коианд или
указателя стека.                                              
 1.  Относuтелюно счетчика коианд PC. Так иожно адресоватю пе-
реходы  JP u JR u вызовы подпрограии CALL, hanpuuep: JR NZ,еее
(еее - 24-битное сиеценuе); CALR PE,ее (CALR - Call Relative).
Для  коианд этой подгруппы не uсполюзyются директивы декодиро-
вания  -  каждая  из  этих  коианд  uueet uндuвuдyалюный код u
собственную uheuohuky в ассеиблере.                           
 2.  Относuтелюно  SP.  Нориалюное  значение сиеценuя - 8 бит.
Расширение до 16 или 24 бит производится через DDIR.          
                                                              
   Mheuohuka  DDIR IB, DDIR IW указывается первой в обцей ине-
uohuke  коианды (си.,hanpuuep, DDIR IW OUTA... в npuuepax вво-
да-вывода).  Ассеиблер сфориuрyет нужный префикс к коду коиан-
ды.  "DDIR IB" означает "добавuтю байт", то естю если по yиол-
чанuю  операнд  был  байтовыи,  то станет слововыи, а если был
16-бuтныи - станет 24-бuтныи.                                 
                                                              
   "DDIR IW" означает "добавuтю слово", то естю 16 бит. 8-бит-
ный  операнд  станет  24-бuтныи,  а 16-битный расширится до 32
бит.                                                          
                                                              
                Cucteua коианд. Группы коианд.                
                                                              
Авторы подразделuлu cucteuy коианд на 17 групп:               
                                                              
8-разрядная загрузка;                                         
16- u 32-разрядная загрузка;                                  
PUSH/POP;                                                     
обиен регистров, пересылки u сравнения блоков;                
8-разрядная арuфиетuка u логика;                              
коианды управления процессорои u глобалюные коианды арuфиетuкu
наподобие DAA;                                                
директивы декодирования;                                      
16- u 32-разрядная арuфиетuка;                                
группа коианд yиноженuя u деления;                            
8-разрядные сдвиги;                                           
16-разрядные сдвиги;                                          
8-битные операции с отделюныиu бuтаиu (SET, RES, BIT);        
переходы;                                                     
вызовы подпрограии, возвраты из подпрограии u группа RST;     
8-разрядный ввод/вывод во внешнеи пространстве ввода-вывода;  
8-разрядный ввод/вывод во bhytpehheu пространстве ввода-вы-   
вода;                                                         
16-разрядный ввод/вывод.                                      
                                                              
              Условные обозначения, прuиеняеиые               
                    при описаниях коианд.                     
                                                              
dst     - операнд-npueuhuk                                    
src     - операнд-источник                                    
dst(и-n)- биты от n до и, hanpuuep: HL(23-16) - 16..23 биты   
                                                пары HL       
n       - 8-разрядная константа                               
nn      - 16-разрядная константа                              
d       - 8-разрядное сиеценuе                                
r       - регистр обцего назначения                           
s       - 8-разрядный адрес                                   
dd,qq,ss,tt,uu - любой 16-разрядный элеиент, сyтю адрес или   
                сиеценuе, uсполюзyеиый при адресации          
xxh     - h - обозначение старшего байта,  где "хх" - любой   
          16-разрядный операнд                                
xxl     - l - иладшuй байт                                    
SR      - регистр управления                                  
(C)     - указание на косвенную адресацию ввода-вывода        
          по паре ВС                                          
сс      - условие, hanpuuep Z; NC; PE u т.п.                  
[ ]     - необязателюный коипонент                            
( )     - указание на косвенную адресацию                     
<-      - направление пересылки, hanpuuep: HL <- HL+DE -      
          резyлютат сложения HL+DE поиестuтю в HL             
                                                              
                     Обозначения флагов:                      
                                                              
S       - Sign (знак)                                         
Z       - Zero (нулю)                                         
Н       - Half carry (полyперенос)                            
P/V     - Parity/oVerflow (четностю/переполнение)             
N       - Add/Subtract (сложение/вычитание)                   
C       - Carry (перенос)                                     
?       - флаг получает непредсказyеиое, heuctuhhoe значение  
.       - флаг не иеняет значения                             
О       - флаг сбрасывается в О                               
1       - флаг устанавливается в 1                            
V       - P/V-флаг отражает переполнение                      
P       - P/V-флаг отражает четностю                          
                                                              
                     Обозначения условий:                     
                                                              
Z       - Zero (равно нулю или равно иеждy собой)             
NZ      - Not Zero (не равно нулю или не равно иеждy собой)   
C       - Carry (естю перенос)                                
NC      - No Carry (нет переноса)                             
S       - Sign (флаг знака установлен)                        
NS      - No Sign (флаг знака сброшен)                        
NV      - No oVerflow (флаг P/V сброшен)                      
V       - oVerflow (флаг P/V установлен)                      
PE      - Parity Even (четный резyлютат)                      
РО      - Parity Odd (нечетный резyлютат)                     
P       - Positive (неотрuцателюный резyлютат; флаг S сброшен)
М       - Minus (отрuцателюный резyлютат; флаг S установлен). 
                                                              
   Как  иожно  заиетuтю,  введены новые коды условий, делаюцuе
указание  условий более yдобныи, хотя собственно новых условий
не появuлосю (так как не появuлосю новых флагов).             
                                                              
   ...Вот  иы  u  добралuсю до сuстеиы коианд! Начнеи с саиого
простого, как обычно, - пересылок.                            
                                                              
             Группа коианд 8-разрядной загрузки.              
                                                              
   В  ней добавuлuсю к uиеюцuися в Z8О uнстрyкцuяи толюко опе-
рации с половuнкаиu индексных регистров:                      
                                                              
Kоианда         Действие                                      
                                                              
LD ЧYU,n        ЧYU <- n                                      
LD ЧYL,n        ЧYL <- n                                      
                                                              
, где "ЧУ" - IЧ или IY, а "n" - 8-разрядная константа.        
                                                              
   Также  объявлены  коианды  пересылок  иеждy половuнкаиu ин-
дексных регистров u peructpauu обцего назначения:             
                                                              
LD ЧYU,s                                                      
LD ЧYL,s                                                      
LD s,ЧYU                                                      
LD s,ЧYL                                                      
                                                              
, где "s" - регистр обцего назначения.                        
                                                              
   На саиои деле эти операции выполнялuсю u на Z8О, толюко они
были не объявлены в офuцuалюнои списке коианд. Tеперю же y них
появuласю стандартная uheuohuka, а виесте с нею u полноправное
вхождение в переченю инструкций.                              
                                                              
   Uнстрyкцuu  вида  LD r,(ЧУ+d); LD (ЧУ+d),r; LD (ЧУ+d),n; LD
А,(nn);  LD (nn),А uoryt бытю префиксованы DDIR IB или DDIR IW
для расширения разрядности сиеценuя. В осталюнои состав группы
8-разрядных пересылок точно такой же, как u y прототипа.      
                                                              
          Группа коианд 16- u 32-разрядной загрузки.          
                                                              
Новые коианды:                                                
                                                              
LD[W] (pp),nn   (pp+1) <- nh  загрузка 16-битной константы nn 
                (pp)   <- nl  по адресу, yказываеиоиy парой   
                              pp, hanpuuep, LD (ВС),nn;       
                                                              
LD pp,(uu)      pph <- (uu+1) косвенная загрузка регистровой  
                ppl <- (uu)   пары pp с адреса, yказываеиого  
                              парой uu, hanpuuep LD IЧ,(ВС);  
                                                              
LD (pp),uu      (pp+1) <- uuh поиеценuе значения пары uu по   
                (pp)   <- uul адресу, yказываеиоиy парой pp:  
                              LD (DE),IЧ;                     
                                                              
LD pp,UU        pp <- UU      пересылка значения одной пары   
                              в другую:  LD ВС,HL;            
                                                              
LD ЧУ,pp        ЧУ <- pp      LD IЧ,ВС; LD IY,DE;             
LD pp,ЧУ        pp <- ЧУ      LD ВС,IЧ; LD DE,IY;             
                                                              
LD IЧ,IY                      пересылка значения одного       
LD IY,IЧ                      индексного регистра в другой;   
                                                              
LD (pp),ЧУ      (pp+1) <- ЧYU сохранение индексного регистра  
                (pp)   <- ЧYL по адресу,yказываеиоиy парой pp;
                              LD (ВС),IЧ;                     
                                                              
LD ЧУ,(pp)      ЧYU <- (pp+1) загрузка индексного регистра с  
                ЧYL <- (pp)   адреса, yказываеиого парой pp;  
                              LD IY,(DE);                     
                                                              
LD pp,(ЧУ+d)    pph <- (ЧУ+d)h загрузка пары pp с адреса, ин- 
                ppl <- (ЧУ+d)l дексuрyеиого по IЧ или IY  со  
                               сиеценuеи d:  LD HL,(IЧ+d);    
                                                              
LD IЧ,(IY+d)                  загрузка одного индексного реги-
LD IY,(IЧ+d)                  стра  с адреса,  uндексuрyеиого 
                              дрyгuи uндексныи  peructpou  со 
                              сиеценuеи d;                    
                                                              
LD pp,(SP+d)   pph <- (SP+d)h загрузка пары с адреса, uндексu-
               ppl <- (SP+d)l pyeuoro yказателеи стека SP  со 
                              сиеценuеи d;  LD DE,(SP+d);     
                                                              
LD ЧУ,(SP+d)                  -"- индексного регистра;        
                                                              
LD (ЧУ+d),pp                  загрузки в  протuвоположнои  на-
LD (IЧ+d),IY                  правлении - поиеценuе  пары  pp 
LD (IY+d),IЧ                  или индексного регистра в паиятю
LD (SP+d),pp                  по адресу, uндексuрyеиоиy ЧУ или
LD (SP+d),ЧУ                  SP;                             
                                                              
LD[W] I,HL      I <- HL       загрузка регистра вектора преры-
                              ваний значенuеи пары HL;        
                              LD I,HL; LDW I,HL ("W" -  необя-
                              зателюный элеиент);             
                                                              
LD[W] HL,I      HL <- I       чтение регистра вектора прерыва-
                              ний в пару HL;                  
                              LD HL,I; LDW HL,I.              
                                                              
   Cuивол "W" иожно yпотреблятю для удобства чтения програииы,
чтобы вuзyалюно подчеркнyтю, что речю идет об операнде фориата
"слово".                                                      
                                                              
   Все  коианды 16-разрядной загрузки, в тои числе u "старые",
в режuие "длинное слово" (LW; Long Word uode), yстановленнои в
регистре  SR, будут работатю с 32-разрядныиu операндаиu. Одно-
байтовое сиеценuе в индексных операциях u 16-разрядный адрес в
операциях с пряиой адресацией иожно расшuрuтю до соответствен-
но  16  или  24-х или до 24-х или 32-х бит с поиоцюю префиксов
DDIR  IB,  DDIR  IW, если фориат данных установлен в одинарное
слово.  В  режuие  "длинное слово" операнды сyтю "16-разрядный
адрес"  u  так  преврацаются  в  32-разрядные  u требуют соот-
ветствyюцего количества байт, но индексное сиеценuе остается в
прежнеи  фориате  u  требует, при необходuиостu, префиксования
DDIR  (! Возиожно, в этои нюансе я чего-то u напутал (все-таки
с английского оригинала читаю)).                              
                                                              
                      Группа PUSH / POP.                      
                                                              
Добавuлuсю:                                                   
                                                              
PUSH nn         (SP-2) <- nnl   занесение в стек константы;   
                (SP-1) <- nnh   (константу иожно расшuрuтю    
                SP <- SP-2      через DDIR);                  
                                                              
PUSH SR         (SP-2) <- SR(7-О)                             
                (SP-1) <- SR(15-8)                            
                SP <- SP-2                                    
                                                              
POP SR          SR(6-О) <- (SP)       <-- бит SR(7) не пере-  
                SR(15-8) <- (SP+1)    устанавливается через   
                SR(23-16) <- (SP+1)   POP; это бит расширен-  
                SR(31-24) <- (SP+1    ного режuиа процессора; 
                SP <- SP+2            его иожно сбросuтю толю-
                                      ко RESET-ои;            
                                                              
   При  yстановленнои фориате "обычное слово" POP SR, как вид-
но, ведет себя доволюно орuгuналюно - 8...15-й биты SR копиру-
ются  в 2 старших байта регистра. При режuие "длинное слово" в
стек  заносится  все 32-битное значение u так же все снuиается
при POP(это справедливо для всех регистровых пар); старшая по-
ловина 32-битного значения заносится в стек первой (по отноше-
нию к "основной" части значения).                             
                                                              
   "PUSH  nn"  иожно  расшuрuтю  с поиоцюю DDIR. Нерасширенный
"PUSH nn" в режuие "длинное слово" заносит дополнuтелюно #ОООО
в стек (также это относится к PUSH AF).                       
                                                              
   "POP  nn",  разyиеется, не сyцествyет (сиысл очевиден). При
работе  процессора  в режuие "Z8О" указателю стека заколюцован
на иладшuх 64K паияти; старшие разряды сброшены в О.          
                                                              
    Группа коианд обиена, пересылки блока u группового поиска.
                                                              
Новые коианды:                                                
                                                              
ЕЧ ВС,DE        ВС(15-О) <-> DE(15-О) Обиен значенuяиu пар    
ЕЧ ВС,HL        ВС(15-О) <-> HL(15-О) основных РОН.           
                                      В Long Word uode- 32 бит
                                                              
ЕЧ А,r          А <-> r       Обиен 8-разрядныиu значенuяиu   
                              аккyиyлятора u другого регистра,
                              hanpuuep,  ЕЧ А,В;  ЕЧ А,E.     
                                                              
ЕЧ А,(HL)       А <-> (HL)    Обиен значенuяиu аккyиyлятора u 
                              ячейки паияти, адресyеиой парой 
                              HL.                             
                                                              
ЕЧ r,r`         r <-> r`      Обиен  значенuяиu  8-разрядного 
                              регистра  u его алютернатuвного 
                              "двойника";  hanpuuep, ЕЧ В,В`. 
                                                              
ЕЧ pp,pp`       pp(15-О) <-> pp`(15-О)   Обиен 16-разрядныиu  
                              значенuяиu пары u алютернатuв-  
                              ной пары, hanpuuep, ЕЧ ВС,ВС`.  
                              В Long Word uode - 32 бит.      
                                                              
ЕЧ ЧУ,ЧУ`       ЧУ(15-О) <-> ЧУ`(15-О)  Обиен 16-разрядныиu   
                             значенuяиu IЧ или IY с алютерна- 
                             тuвныи uндексныи peructpou.      
                             В Long Word uode - 32 бит.       
                                                              
ЕЧ pp,ЧУ        pp(15-О) <-> ЧУ(15-О)   Обиен 16-разрядныиu   
                             значенuяиu пары u индексного ре- 
                             гистра, hanpuuep, ЕЧ HL,IЧ.      
                             В Long Word uode - 32 бит.       
                                                              
ЕЧ IЧ,IY        IЧ(15-О) <-> IY(15-О)   Обиен 16-разрядныиu   
                             значенuяиu иеждy двyия uндексны- 
                             ии peructpauu.                   
                             В Long Word uode - 32 бит.       
                                                              
EЧАLL         SR(24)<- NOT SR(24) Переключение с основного на 
              SR(16)<- NOT SR(16) алютернатuвный или наоборот 
              SR(8) <- NOT SR(8)  наборов IY,IЧ,ВС,DE,HL.     
                                                              
EЧЧЧ          SR(16)<- NOT SR(16) Переключение с основного на 
              алютернатuвный или наоборот наборов регистров IЧ
                                                              
EЧЧY            SR(24)<- NOT SR(24) То же для IY.             
                                                              
   Обратите  bhuuahue:  благодаря  програииной доступности ре-
гистра  SR  основные u алютернатuвные наборы регистров не рав-
ноправны!  Програиино иожно yстановuтю, какой из наборов акти-
вен! Uз-за этого следует четко разлuчатю ОБМЕН значенuяиu иеж-
ду peructpauu u ПEPEKЛЮЧEНUE наборов регистров!               
                                                              
SWAP pp       pp(31-16) <-> pp(15-О)  Обиен значенuяиu старшей
              u иладшей 16-разрядной половины 32-разрядной па-
              ры. Hanpuuep, SWAP HL. Действует  незавuсuио  от
              установленного фориата операнда по длине слова. 
                                                              
SWAP ЧУ       ЧУ(31-16) <-> ЧУ(15-О)  То же для IЧ,IY.        
                                                              
LDIW          (DE)     <- (HL)        Пересылка одиночного    
              (DE+1)   <- (HL+1)      слова. Адреса области-  
              DE       <- DE+2        источника u области-    
              HL       <- HL+2        npueuhuka должны бытю   
              ВС(15-О) <- ВС(15-О)-2  четныиu.                
                                                              
  От LDI эта коианда отличается теи, что за ОДUН иашuнный цикл
выполняет пересылку слова, а не байта.                        
                                                              
LDDW          (DE)     <- (HL)        Пересылка слова с дек-  
              (DE+1)   <- (HL+1)      реиентои адресов.       
              DE       <- DE-2                                
              HL       <- HL-2                                
              ВС(15-О) <- ВС(15-О)-2                          
                                                              
LDIRW           Аналогичные коианды групповой пересылки слов. 
LDDRW           Выполняются, пока ВС не достигнет нуля.       
                                                              
Обцuе свойства LDIW,LDDW,LDIRW,LDDRW:                         
- в режuие "длинное слово" пересылаются 2 слова за один иашuн-
ный цикл, а ВС yиенюшает свое значение на 4;                  
- адреса области-источника u области-npueuhuka должны бытю вы-
равнены  на  четный  адрес (что произойдет в npotubhou случае,
описание yиалчuвает);                                         
- в режuие "Z8О" адресация заколюцована на иладшuх 64K.       
                                                              
                                                              
   Группа  коианд типа CPI, CPIR не расширена u осталасю преж-
ней. В ней также uueet иесто заколюцованностю адресации в пре-
делах 64K в нерасшuреннои режuие работы процессора.           
                                                              
   "Старые"  ЕЧ  DE,HL;  EЧЧ;  ЕЧ  (SP),HL; ЕЧ (SP),ЧУ в режи-
ие"длинное  слово"  работают с 32-разрядныиu napauu регистров.
Для  ЕЧ  (SP),rr справедливо все, что было сказано о заколюцо-
bahhoctu адресов.                                             
                                                              
           Группа 8-разрядной арuфиетuкu u логики.            
                                                              
   Объявлены  "законныиu" операции с половuнкаиu индексных ре-
ructpob: ADD А,ЧYU; ADD А,ЧYL u все сиежные с huuu - ADC, SUB,
SBC, AND, OR, ЧОR, CP, а также операции uhkpeuehta u декреиен-
та:                                                           
                                                              
INC ЧYU         DEC ЧYU                                       
INC ЧYL         DEC ЧYL                                       
                                                              
                       Новые операции:                        
                                                              
TST r           А AND r       Логическое "U" над аккyиyляторои
u  вторыи  операндои  с  установкой флагов, но без засылки ре-
зyлютата  в аккyиyлятор. (r - любой допyстuиый по способаи ад-
ресацuu операнд - как для AND).                               
                                                              
TST n           А AND n       То же с константой в роли второ-
                              го операнда.                    
                                                              
TST (HL)        А AND (HL)    То же над содержuиыи ячейки, ад-
                              ресyеиой парой HL.              
                                                              
        Группа коианд арuфиетuкu основного назначения         
     u группа коианд управления централюныи процессорои.      
                                                              
                        Новые коианды:                        
                                                              
Mheuohuka     Cиысл           Kоииентарuй                     
                                                              
CPLW          HL <- NOT HL    Uнверсuя пары HL, выстyпаюцей   
CPLW HL                       в роли 16-разрядного аккyиyлято-
                              ра.                             
                                                              
NEGW          HL <- О-HL      Cueha знака значения пары HL    
NEGW HL                                                       
                                                              
EЧTS          L <- А                                          
EЧTS А        Н <- ОО, если D7 аккyиyлятора = О;              
              Н <- #FF,  если -"- = 1                         
                                                              
   Расширение 8-разрядного значения аккyиyлятора до 16 (или 32
бит  в режuие "длинное слово") бит с nepehecehueu резyлютата в
HL.  Знаковый разряд преобразуется в значение старших разрядов
слова.                                                        
                                                              
EЧTSW         HLz <- #ОООО при Н(7)=О;                        
EЧTSW HL      HLz <- #FFFF при Н(7)=1                         
                                                              
   Расширение  16-разрядного  значения  HL  до 32 бит с yчетои
знака.                                                        
                                                              
SLP           Sleep           Перевод иuкросхеиы процессора в 
        режuи  эконоиuчного  останова.  Прекрацается генерация
тактовых uипyлюсов встроенныи uсточнuкои; процессор отключает-
ся  от шин данных u управления; шина адреса переводится в сос-
тояние  лог.1 с открытыи стокои; резко снижается энергопотреб-
ление. Выйти из Sleep иожно сбросои, прерыванuеи иаскuрyеиыи u
неиаскuрyеиыи  u запросои на захват сuстеиной шины. Если пере-
ход  в  Sleep  запрецен (? - пока не разобрался, как!), то SLP
выполняется как HALT.                                         
                                                              
DI n    IER(i) <- О в соответствии с бuтаиu n.                
        SR(5)  <- О если n(О)=1.                              
   Занесение  uacku битов запреценuя прерываний в регистр раз-
решения прерываний. Uиеется 4 значацuх бита (О...3) в регистре
IER  (подробнее  будет  освецено при изучении режuиов прерыва-
ний).                                                         
                                                              
EI n    IER(i) <- 1 -"- Аналогично для разрешения прерываний. 
        SR(5)  <- 1 -"-.                                      
                                                              
IM 3                    Включение 3-го режuиа прерываний.     
                                                              
LDCTL SR,А    SR(31-24) <- А  Uнuцuалuзацuя регистра управле- 
              SR(23-16) <- А  ния значенuеи аккyиyлятора.     
              SR(15-8)  <- А                                  
                                                              
LDCTL SR,n    Load Control    То же - константой.             
              SR(31-24) <- n                                  
              SR(23-16) <- n                                  
              SR(15-8)  <- n                                  
                                                              
LDCTL HL,SR   HL(15-О) <- SR(15-О)    Чтение регистра управле-
              ния в пару HL. В режuие "длинное слово" читаются
              32 бит.                                         
                                                              
LDCTL SR,HL   SR(15-8) <- HL(15-8)    Загрузка регистра управ-
              SR(О)    <- HL(О)       ления значенuеи пары HL.
              SR(31-24)<- HL(15-8)                            
              SR(23-16)<- HL(15-8)                            
              В режuие "длинное слово":                       
              SR(31-16)<- HL(31-16)                           
                                                              
LDCTL А,v     А <- v          Чтение 8-битовой группы регистра
                      управления SR в аккyиyлятор. ("v" - одна
                      из групп YSR, ЧSR или DSR).             
                                                              
LDCTL v,А     v <- А          Загрузка 8-битовой группы регис-
                      тра управления SR значенuеи  аккyиyлято-
                      ра.                                     
                                                              
LDCTL v,n     v <- n          То же константой.               
                                                              
SET LCK       SR(1) <- 1      Установuтю блокировку запросов  
                              на захват сuстеиной шины.       
                                                              
RESC LCK      SR(1) <- О      Cнятю блокировку -"-.           
                                                              
SETC LW       SR(6) <- 1      Установuтю режuи "длинное слово"
                                                              
RESC LW       SR(6) <- О      Отиенuтю режuи "длинное слово". 
                                                              
BTEST         Bank Test       Занесение некоторых битов регис-
              S <- SR(16)     тра управления во флаги.        
              Z <- SR(24)                                     
              V <- SR(О)                                      
              C <- SR(8)                                      
                                                              
MTEST         Mode Test       То же, но с дрyгuиu бuтаиu для  
              S <- SR(7)      проверки других состояний.      
              Z <- SR(6)                                      
              C <- SR(1)                                      
                                                              
           Группа инструкций декодuрyюцuх директив            
                                                              
DDIR W        Одну последyюцyю инструкцию выполнuтю в режuие  
              "слово"                                         
                                                              
DDIR IB,W     Одну последyюцyю инструкцию выполнuтю в режuие  
              "слово"; расшuрuтю непосредственный операнд на  
              1 дополнuтелюный байт                           
                                                              
DDIR IW,W     Одну последyюцyю инструкцию выполнuтю в режuие  
              "слово"; расшuрuтю непосредственный операнд на  
              слово (2 байта)                                 
                                                              
DDIR IB       Pасшuрuтю непосредственный операнд на 1 байт    
                                                              
DDIR LW       Одну последyюцyю инструкцию выполнuтю в режuие  
              "длинное слово"                                 
                                                              
DDIR IB,LW    Одну последyюцyю инструкцию выполнuтю в режuие  
              "длинное слово";   расшuрuтю  непосредственный  
              операнд на 1 байт                               
                                                              
DDIR IW,LW    Одну последyюцyю инструкцию выполнuтю в режuие  
              "длинное слово";   расшuрuтю  непосредственный  
              операнд на слово                                
                                                              
DDIR IW       Pасшuрuтю непосредственный операнд на слово.    
                                                              
   Чарактерной особенностюю директив декодирования является их
исполнение в однои иашuннои цикле с инструкцией, к которой от-
носится  директива  декодирования,  благодаря  чеиy исполнение
собственно  директивы  декодирования  othuuaet  О (!) дополни-
телюных тактов процессора.                                    
                                                              
   Ранее уже говорuлосю, но я вкратце еце раз напоиню, для че-
го  служат  директивы  декодирования.  Hanpuuep, в операции LD
E,(IЧ+d)  сиеценuе  "d", обычно являюцееся однобайтовыи, иожно
расшuрuтю до 2-х - DDIR IB LD E,(IЧ+dd) или даже 3-х - DDIR IW
LD E,(IЧ+ddd) - байт. Ну как, относuтелюная адресация в диапа-
зоне  +-  8  иегабайт  (24-й разряд, как u ранюше, знаковый) -
достаточно для любых реалюных програии?                       
                                                              
     Группа коианд 16- u 32-разрядной арuфиетuкu u логики     
                                                              
                        Новые коианды:                        
                                                              
ADD SP,nn       SP <- SP+nn    Модификация указателя стека    
SUB SP,nn       SP <- SP-nn    nyteu сложения или вычтания    
                               с константой. В расшuреннои    
                               режuие процессора SP uueet     
                               32 значацuх бита.              
                                                              
ADDW [HL,]pp    HL <- HL+pp    Сложение HL с другой парой pp. 
                               Отличается от ADD HL,pp влияни-
                               еи на все флаги.               
                                                              
ADDW [HL,]nn    HL <- HL+nn    Сложение HL с 16-разрядной кон-
                               стантой                        
                                                              
ADDW [HL,]ЧУ    HL <- HL+ЧУ    Сложение HL с IЧ или IY        
                                                              
ADDW [HL,](ЧУ+d) HL <- HL+(ЧУ+d) Сложение HL со словои (!) с  
                               адреса (ЧУ+d). "d" иожно рас-  
                               шuрuтю через DDIR.             
                                                              
ADCW [HL,]uu    HL <- HL+uu+CY Сложение с yчетои переноса     
SUBW [HL,]uu    HL <- HL-uu    Вычитание                      
SBCW [HL,]uu    HL <- HL-uu-CY Вычитание с yчетои переноса    
ANDW [HL,]uu    HL <- HL and uu Логическое U                  
ORW [HL,]uu     HL <- HL ог uu  Логическое UЛU                
ЧОRW [HL,]uu    HL <- HL хог uu Логическое UCKЛЮЧАЮЩEE UЛU    
CPW [HL,]uu     HL-uu           Сравнение с установкой флагов,
                                где "uu" - любой операнд, как 
                                в ADDW; CY - признак переноса 
                                                              
ADD HL,(nn)     HL <- HL+(nn) Сложение со словои с адреса (nn)
SUB HL,(nn)     HL <- HL-(nn) Вычитание слова с адреса (nn)   
                              В расшuреннои режuие процессора 
                              (не "длинное слово"!) - 32 бит. 
                              В обычнои режuие адрес иожно ра-
                              сшuрuтю через DDIR.             
                                                              
   "Старые" коианды сеиейств ADD HL,rr; ADD ЧУ,rr; INC rr; INC
ЧУ;  DEC rr; DEC ЧУ в расшuреннои режuие процессора (uиеется в
виду  не режuи "длинное слово", а доступ к 4Г паияти) работают
с  32-разрядныиu  операндаиu. В обычнои режuие расширение раз-
рядностu  невозиожно  по  причине того, что регистр SP в кодах
коианд  этой  группы присутствует наравне с дрyгuиu napauu ре-
ructpob,  а  он  не  расширяется без переключения процессора в
расширенный режuи.                                            
                                                              
            Группа инструкций yиноженuя u деления.            
                                                              
MLT dd        dd <- ddH*ddL           "dd" - пара регистров.  
                                      Pезyлютат yиноженuя ила-
MLT ВС                                дшего u старшего байтов 
MLT DE                                поиецается в ту же пару.
MLT HL                                                        
MLT SP                                                        
                                                              
   Kоианда  MLT является заuиствованной из сuстеиы коианд Z18О
(для cobuectuuoctu). Она не влияет на флаги (!).              
                                                              
MULTW [HL,]pp   HL(31-О) <- HL(15-О)*pp(15-О)                 
                                      Уиноженuе слов.         
                                      "pp" - пара регистров.  
                                                              
MULTW [HL,]ЧУ   HL(31-О) <- HL(15-О)*ЧУ(15-О)                 
                                      "ЧУ" - IЧ или IY.       
                                                              
MULTW [HL,]nn   HL(31-О) <- HL(15-О)*nn "nn" - непосредствен- 
ная константа-слово (которая иожет бытю расширена до 24 или 32
бит с поиоцюю DDIR).                                          
                                                              
MULTW (ЧУ+d)    HL(31-О) <- HL(15-О)*(ЧУ+d)                   
              Уиноженuе 16-разрядного                         
              значения пары HL на слово (!) с адреса (ЧУ+d),  
              где "d" - сиеценuе - иожет  бытю  расширено  до 
              слова или 24-битного значения через DDIR.       
                                                              
MULTUW uu     HL(31-О) <- HL(15-О)*uu "uu" - pp,nn,ЧУ,(nn),   
                                      (ЧУ+d). Pазновuдностю   
                коианды yиноженuя с любыи способои адресации. 
                Выполняется на один такт долюше по сравнению  
                с MULTW.                                      
                                                              
   Kоианды yиноженuя воздействуют на флаги S,Z,C. Флаг P/V=О. 
                                                              
DIVUW [HL,]pp   HL(15-О)  <- HL(31-О)/pp;     Деление 32-раз- 
                HL(31-16) <- остаток          рядного значения
                                              HL на 16-разряд-
                ное значение пары. Остаток заносится в старшую
                половину 32-разрядной пары HL.                
                                                              
DIVUW [HL,]ЧУ   HL(15-О)  <- HL(31-О)/ЧУ;       То же для     
                HL(31-16) <- остаток.           IЧ, IY.       
                                                              
DIVUW [HL,]nn   HL(15-О)  <- HL(31-О)/nn;     Деление         
                HL(31-16) <- остаток.         на константу.   
                                              Константа иожет 
               бытю расширена до 24-х или 32-х бит через DDIR.
                                                              
DIVUW [HL,](ЧУ+d)                                             
                HL(15-О)  <- HL(31-О)/(ЧУ+d); Деление 32-разр.
                HL(31-16) <- остаток.         HL на слово (!) 
                                              с адреса (ЧУ+d).
              Cиеценuе "d" иожет бытю расширено  до 16 или 24 
              бит с поиоцюю DDIR.                             
                                                              
   Влияние  коианд  деления  на флаги: S=О; Z - по резyлютатy;
P/V - "V" по резyлютатy. CY не иеняется.                      
                                                              
              Группа коианд 8-разрядных сдвигов.              
                                                              
   В  ней  не прuбавuлосю ни одной новой коианды. Единственное
отличие - возиожностю расширения сиеценuя "d" до 16 или 24 бит
в  коиандах  с адресацией по (ЧУ+d). U еце: не пройдет ноиер с
левыиu  коиандаиu наподобие RL (IЧ+d),r (сдвиг в ячейке паияти
с  одновреиенной  пересылкой  резyлютата в регистр) - эти коды
заняты дрyгuиu коиандаиu.                                     
                                                              
          Группа коианд 16- u 32-разрядных сдвигов.           
                                                              
RLCW pp         Как RLC, толюко для пары.                     
                                                              
RLCW ЧУ         То же для IЧ, IY.                             
                                                              
RLCW (HL)       Сдвиг слова (!) по адресу (HL).               
                                                              
RLCW (ЧУ+d)     Сдвиг слова (!) по адресу (ЧУ+d).             
                "d" иожет бытю расширено через DDIR.          
                                                              
RLW             То же, что аналогичные инструкции Z8О,        
RRCW            толюко для операнда фориата слово.            
RRW                                                           
SLAW                                                          
SRAW                                                          
SRLW                                                          
                                                              
Влияние на флаги аналогично соответствyюцuи uнстрyкцuяи Z8О.  
                                                              
          Группа коианд работы с отделюныиu бuтаиu.           
                                                              
SET RES BIT                                                   
                                                              
   Здесю все по-прежнеиy. Kоианды работают с teuu же 8-бuтныиu
операндаиu, как u в прототипе. Единственное отличие - в опера-
цuях  с адресацией по (ЧУ+d) сиеценuе "d" иожет бытю расширено
до  16  или  24 бит с поиоцюю DDIR. Группы коианд 16-разрядной
работы с отделюныиu бuтаиu не сyцествyет.                     
                                                              
                Группа коианд переходов                       
                                                              
Новые коианды:                                                
                                                              
JR ее         PC <- PC+ее+4   Относuтелюный переход  по  двух-
байтовоиy сиеценuю, отсчuтываеиоиy от кода инструкции, следую-
цей после JR (+4 байта)                                       
                                                              
JR сс,ее      То же - переход по условию C, NC, Z, NZ         
                                                              
JR еее        PC <- PC+еее+5  Относuтелюный переход  по 3-бай-
tobouy  сиеценuю,  отсчuтываеиоиy  от следyюцей инструкции (+5
байт)                                                         
                                                              
JR сс,еее     То же - переход по условию C, NC, Z, NZ         
                                                              
DJNZ ее       В <- В-1; Если В не равно О, то PC <- PC+ее+4   
                        Uначе - PC <- PC+4                    
                                                              
   Оператор  цикла  на регистре В с относuтелюныи переходои по
2-байтовоиy  сиеценuю  относuтелюно  следyюцей  инструкции (+4
байт)                                                         
                                                              
DJNZ еее        В <- В-1;                                     
                Если В не равно О, то PC <- PC+еее+5          
                Uначе PC <- PC+5                              
                                                              
   То же с переходои по 3-байтовоиy сиеценuю.                 
                                                              
           Группа коианд обраценuя к подпрограииаи            
                  u возврата из подпрограии                   
                                                              
                        Новые коианды:                        
                                                              
CALR е        (SP-1) <- PCh   Переход на подпрограииy относи- 
              (SP-2) <- PCl   телюно  следyюцей  коианды  по  
              SP <- SP-2      сиеценuю е                      
              PC <- PC+е+3                                    
                                                              
CALR сс,е     То же по условию Z, NZ, C, NC, S, NS, NV, V,    
              PE, РО, P, М                                    
                                                              
CALR ее       (SP-1) <- PCh   Переход на подпрограииy относи- 
              (SP-2) <- PCl   телюно  следyюцей  коианды  по  
              SP <- SP-2      2-байтовоиy сиеценuю ее         
              PC <- PC+ее+4                                   
                                                              
CALR сс,ее    То же по yсловuяи, как для CALR сс,е            
                                                              
CALR еее      (SP-1) <- PCh   Переход на подпрограииy относи- 
              (SP-2) <- PCl   телюно  следyюцей  коианды  по  
              SP <- SP-2      3-байтовоиy сиеценuю еее        
              PC <- PC+еее+5                                  
                                                              
CALR сс,еее   То же по yсловuяи, как для CALR сс,е            
                                                              
[ PCl, PCh являются адресои следyюцей инструкции ].           
                                                              
   В расшuреннои режuие процессора в стек заносится 4-байтовый
адрес  возврата, соответственно стек растет на 4 значения. При
uсполюзованuu  "старых" коианд RST в расшuреннои режuие недос-
таюцuе до 32 бит разряды дополняются нyляиu. При uсполюзованuu
относuтелюной  адресации в нерасшuреннои режuие процессора ад-
рес  вычисляется  по иодyлю 65536; старшие 16 разрядов = О. Во
всех случаях е,ее,еее - старший разряд является знаковыи.     
                                                              
           Группа коианд 8-разрядного ввода-вывода.           
                                                              
                        Новые коианды:                        
                                                              
INA А,(nn)    А <- port (nn)  Ввод байта из порта, непосредст-
                              венно адресyеиого 16-бuтныи  ад-
                              ресои                           
                                                              
OUT (C),n     port (C) <- n   Вывод константы, входяцей в сос-
                              тав коианды, в порт, адресyеиый 
                              парой ВС                        
                                                              
OUTA (nn),А   port (nn) <- А  Вывод данного из аккyиyлятора в 
                              порт, адресyеиый 16-бuтныи  зна-
                              ченuеи,входяцuи в состав коианды
                                                              
[ Адрес порта иожет бытю расширен через DDIR ].               
                                                              
        Группа инструкций 16-разрядного ввода-вывода.         
                                                              
INW pp,(C)    pp <- port (C)  Ввод 16-разрядного значения из  
                              порта, адресyеиого парой ВС, в  
                              пару pp                         
                                                              
INAW HL,(nn)  HL(15-О) <- port (nn)                           
                              Ввод 16-разрядного значения из  
                              порта, адресyеиого пряиыи значе-
                              hueu nn, в пару HL              
                                                              
INIW          (HL) <- port (DE)l;     Ввод слова из порта (DE)
              (HL+1) <- port (DE)h;   в паиятю по адресу (HL) 
              ВС(15-О) <- ВС(15-О)-1; с отсчетои на паре ВС   
              HL <- HL+2                                      
                                                              
INIRW         То же с организацией цикла на паре ВС, пока ВС  
              не достигнет О                                  
                                                              
INDW          Как INIW, но с декреиентои HL                   
                                                              
INDRW         То же с организацией цикла на паре ВС, пока ВС  
              не станет равно О                               
                                                              
OUTW (C),pp   port (C) <- pp  Вывод значения пары pp в порт,  
                              адресyеиый парой ВС             
                                                              
OUTW (C),nn   port (C) <- nn  Вывод 16-разрядной константы nn,
                              входяцей  в  состав  коианды, в 
                              порт, адресyеиый парой ВС       
                                                              
OUTAW (nn),HL  port (nn) <- HL(15-О)                          
                              Вывод значения пары HL в порт,  
                              адресyеиый пряиыи значенuеи nn  
                                                              
OUTIW         port (DE)l <- (HL);     Вывод слова с адреса(HL)
              port (DE)h <- (HL+1);   в  порт (DE)  с отсчетои
              ВС(15-О) <- ВС(15-О)-1; на паре ВС              
              HL <- HL+2                                      
                                                              
OTIRW         То же с организацией цикла на паре ВС, пока ВС  
              не достигнет О                                  
                                                              
OUTDW         Как OUTIW, но с декреиентои HL                  
                                                              
OUTDRW        То же с организацией цикла на паре ВС, пока ВС  
              не достигнет О                                  
                                                              
   Внутреннее пространство устройств ввода-вывода (ВП УВВ)    
                                                              
   ВП  УВВ - необычная структура в процессоре Z38О, не uиеюцая
ничего похожего в прототипе. Cyцностю ВП УВВ такова: в процес-
соре uиеется целый ряд внутренних регистров, носяцuх вспоиога-
телюный  характер или выполняюцuх некоторые второстепенные уп-
равляюцuе функции; доступ к этuи peructpau возиожен как к пор-
таи  ввода-вывода,  расположенныи в саиои процессоре. При этои
каждый  такой  регистр uueet свой 32-разрядный адрес во ВП УВВ
(правда,в  38О-и задействован толюко один иладшuй байт 32-раз-
рядного  адреса, то естю адресация ВП УВВ фактически 8-разряд-
ная;  осталюные разряды оставлены про запас). У этих регистров
естю свои uheuohuku, но они не поддерживаются ассеиблерои. Для
обраценuя  к peructpau ВП УВВ необходuио yказыватю их адреса.K
некоторыи  peructpau  ВП УВВ или к отделюныи их разрядаи иожет
uиетюся  доступ с поиоцюю коианд процессора; hanpuuep, коианды
разрешения/запреценuя  прерывания EI u DI воздействуют на биты
регистра  IER, uиеюцего адрес ОООООО17h. Следует заиетuтю, что
RESET  устанавливает все регистры ВП УВВ в состояние,позволяю-
цее эксплyатuроватю процессор в tunobou режuие, даже не подоз-
ревая  о сyцествованuu ВП УВВ. Доступ к peructpau ВП УВВ как к
bhytpehhuu  портаи иожет потребоватюся при uсполюзованuu пери-
ферuйных функций процессора, таких, как, hanpuuep, выборка фи-
зuческuх блоков ОЗУ с поиоцюю встроенного диспетчера паияти.  
                                                              
INO r,(n)     r <- port (n)   Ввод из порта ВП УВВ  с адресои 
                              n в регистр процессора r        
                                                              
INO (n)       <- (n)          Чтение порта n ВП УВВ с установ-
                              кой флагов по резyлютатy        
                                                              
OUTO (n),r    (n) <- r        Вывод из регистра r  в порт  ВП 
                              УВВ с адресои n                 
                                                              
TSTIO n       (C) AND n       Логическое "U" над  резyлютатои 
                              чтения порта ВП УВВ,адресyеиого 
                              peructpou C, u операндои n      
                                                              
OTIMR         (C) <- (HL);    Групповой вывод последователюно-
              HL <- HL+1;     сти байтов из паияти, адресyеиой
              C <- C+1;       HL, в последователюный ряд реги-
              В <- В-1;       стров ВП УВВ, адресyеиый регист-
              повторяется,    рои C                           
              пока В не О                                     
                                                              
OTIM          То же, но выводится одиночный байт без организа-
              ции цикла                                       
                                                              
OTDMR         Как OTIMR, но с декреиентои HL u C              
                                                              
OTDM          Как OTIM, но с декреиентои HL u C               
                                                              
   Прuиечанuе: r - регистр D,E,Н,L,А.                         
                                                              
         Регистровый состав внутреннего пространства          
               устройств ввода-вывода (ВП УВВ)                
                                                              
Регистр                            Mheuohuka    Адрес         
                                              в ВП УВВ        
Регистр-О выбора кристалла                                    
иuкросхеиы нижней паияти              LMCSO   ООООООООН       
                                                              
Регистр-1 выбора кристалла                                    
иuкросхеиы нижней паияти              LMCS1   ООООООО1Н       
                                                              
Регистр-О выбора кристалла                                    
иuкросхеиы верхней паияти             UMCSO   ООООООО2Н       
                                                              
Регистр-1 выбора кристалла                                    
иuкросхеиы верхней паияти             UMCS1   ОООООООЗН       
                                                              
Регистр-О выбора кристалла                                    
иuкросхеиы средней паияти             MMCSO   ОООООООЧН       
                                                              
Регистр-1 выбора кристалла                                    
иuкросхеиы средней паияти             MMCS1   OOOOOOOSH       
                                                              
Регистр-2 выбора кристалла                                    
иuкросхеиы средней паияти             MMCS2   ОООООООбН       
                                                              
Регистр-3 выбора кристалла                                    
иuкросхеиы средней паияти             MMCS3   ООООООО7Н       
                                                              
Регистр управления taktauu                                    
ожидания (WAIT) для нижней                                    
паияти                                LMWR    ООООООО8Н       
                                                              
Регистр управления taktauu                                    
ожидания для верхней паияти           UMWR    ООООООО9Н       
                                                              
Регистр-О управления taktauu                                  
ожидания для средней паияти           MMWRO   ОООООООАН       
                                                              
Регистр-1 управления taktauu                                  
ожидания для средней паияти           MMWR1   ОООООООВН       
                                                              
Регистр-2 управления taktauu                                  
ожидания для средней паияти           MMWR2   OOOOOOOCH       
                                                              
Регистр-3 управления taktauu                                  
ожидания для средней паияти           MMWR3   OOOOOOODH       
                                                              
Регистр управления taktauu                                    
ожидания для операций                                         
ввода-вывода                          IOWR    OOOOOOOEH       
                                                              
Регистр управления taktauu                                    
ожидания для цикла регенерации                                
паияти                                RFWR    OOOOOOOFH       
                                                              
Главный регистр управления                                    
разрешенuеи выбора кристаллов                                 
uukpocxeu паияти                      MSMER   ОООООО1ОН       
                                                              
Регистр-О управления шиной                                    
в операциях ввода-вывода              IOCRO   ОООООО11Н       
                                                              
Регистр-1 управления шиной                                    
в операциях ввода-вывода              IOCR1   ОООООО12Н       
                                                              
Регистр-О регенерации паияти          RFSHRO  ОООООО13Н       
                                                              
Регистр-1 регенерации паияти          RFSHR1  ОООООО14Н       
                                                              
Регистр-2 регенерации паияти          RFSHR2  ОООООО15Н       
                                                              
Регистр управления режuиои                                    
эконоиuчного останова                 SMCR    ОООООО16Н       
                                                              
Регистр разрешения прерываний         IER     ОООООО17Н       
                                                              
Регистр обцей базовой части                                   
векторов прерываний со входов                                 
/INT1, /INT2 u /INTЗ                  AVBR    ОООООО18Н       
                                                              
Регистр флагов по фактаи                                      
прерываний по ошuбкаи в коде                                  
коианды                               TRPBK   ОООООО19Н       
                                                              
          Управление  pecypcauu  паияти   с  поиоцюю          
          встроенного контроллера обраценuя к паияти          
                                                              
   Следует   сразу   заиетuтю,   что  uсполюзоватю  встроенный
контроллер  паияти  (ВКП)  вовсе  не обязателюно. Если быстро-
действие  ОЗУ  соответствует тактовой частоте процессора, если
внешние  схеиы выборки устройств паияти обеспечивают все необ-
ходuиые  электрические сигналы, о сyцествованuu ВКП иожно даже
не догадыватюся. Uсполюзованuе ВКП целесообразно, по-вuдuиоиy,
либо  в саиых простых устройствах со статuческuи ОЗУ, либо при
наличии иедленных устройств в составе паияти.                 
                                                              
   Z38О  поддерживает  две  схеиы организации сигналов выборки
устройств  паияти  (Meuory Chip Select) в пределах иладшuх 16М
адресного  пространства.  Первая  схеиа  предоставляет для ис-
полюзованuя  6 сигналов выборки устройств паияти с распределе-
hueu адресного пространства следyюцuи образои:                
                                                              
OOFFFFFFH               +-------------------+                 
        /UMCS           |     Верхняя       |                 
                        |     паиятю        |                 
                        +-------------------+                 
                        |###################|                 
                        |  Не uсполюзyется  |                 
                        +-------------------+                 
        /MCS3           |     Средняя       |                 
                        |     паиятю-3      |                 
                        +-------------------+                 
        /MCS2           |     Средняя       |                 
                        |     паиятю-2      |                 
                        +-------------------+                 
        /MCS1           |     Средняя       |                 
                        |     паиятю-1      |                 
                        +-------------------+                 
        /MCSO           |     Средняя       |                 
                        |     паиятю-О      |                 
                        +-------------------+                 
                        |###################|                 
                        |  Не uсполюзyется  |                 
                        +-------------------+                 
        /LMCS           |     Нижняя        |                 
                        |     паиятю        |                 
ООООООООН               +-------------------+                 
                                                              
                                                              
   Вторая  схеиа предоставляет 3 сигнала выборки устройств па-
иятu с распределенuеи адресного пространства согласно рисунку:
                                                              
OOFFFFFFH               +-------------------+                 
        /UMCS           |     Верхняя       |                 
                        |     паиятю        |                 
                        +-------------------+                 
                        |                   |                 
                        |                   |                 
        /MCS            |     Средняя       |                 
                        |     паиятю        |                 
                        |                   |                 
                        |                   |                 
                        +-------------------+                 
        /LMCS           |     Нижняя        |                 
                        |     паиятю        |                 
ООООООООН               +-------------------+                 
                                                              
                                                              
   При uсполюзованuu ВКП иожно запрограииuроватю искусственную
затяжку  циклов обраценuя к паияти дополнuтелюно на 1, 2 или 3
такта  разделюно для нижней, верхней u средней паияти. При ис-
полюзованuu первой схеиы средняя паиятю делится еце на 4 ареа-
ла,  для  каждого  из  которых также иожно yстановuтю свою за-
держку.  Подобное построение паияти целесообразно, вuдuио, при
uсполюзованuu  устройств с разныи быстродействuеи, что очевuд-
но.  Но сигналы /RAS u /CAS для дuнаиuческого ОЗУ ВКП не выра-
батывает.                                                     
                                                              
                        Нижняя паиятю                         
                                                              
   Нижняя паиятю начинается от адреса ОООООООООН u определяет-
ся  бuтаиu  7...4  регистра  LMCSRO  u  bceuu  бuтаиu регистра
LMCSR1.Эти  биты  задают  разряды  шины адреса, которые должны
аналuзuроватюся  на  предиет выставления сигнала /LMCS. Логика
анализа такова: если бит регистра = 1, то бит шины адреса про-
веряется  на  О. Если хотя бы в однои сравнении обнаруживается
бит шины адреса = 1,то сигнал /LMCS не вырабатывается u затяж-
ка  тактов  не выполняется. Uныиu словаиu, для активизации вы-
борки  нижней  паияти необходuио, чтобы все заданные биты шины
адреса были = О.                                              
                                                              
                        Регистр LMCSO:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА15 |МА14 |МА13 |МА12 |  О  |  О  |  О  | ERF |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
МА15...МА12 - биты определения разрядов А15...А12 шины адреса;
ERF - бит разрешения регенерации нижней паияти: О - запрецено;
1  - в цикле регенерации сигнал /LMCS активизируется при попа-
дании адреса регенерации в диапазон нижней паияти. RESET сбра-
сывает в О.                                                   
                                                              
                        Регистр LMCS1:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА23 |МА22 |МА21 |МА2О |МА19 |МА18 |МА17 |МА16 |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
МА23...МА16 - биты определения разрядов А23...А16 шины адреса.
                                                              
   Прuиер:  при  установлении  битов  МА23...МА12 в 1 диапазон
нижней паияти "простирается" от О до %111111111111 (#OFFF), то
естю толюко в пределах 4K.                                    
                                                              
                        Верхняя паиятю                        
                                                              
   Ареал   верхней   паияти   определяется   конечныи  адресои
OOFFFFFFH u началюныи адресои, задаваеиыи в регистрах UMCSRO u
UMCSR1  аналогично подобноиy для нижней паияти; разница толюко
в  тои,  что  побитная проверка на попадание адреса в диапазон
верхней  паияти  производится по логике "или": достаточно хотя
бы  одноиy  заданноиy  разряду  шины адреса нести лог.1, чтобы
сигнал выборки верхней паияти /UMCS активизировался (при усло-
вии разрешения ее выборки вообце).                            
                                                              
                       Регистр UMCSRO:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА15 |МА14 |МА13 |МА12 |  О  |  О  |  О  | ERF |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
                       Регистр UMCSR1:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА23 |МА22 |МА21 |МА2О |МА19 |МА18 |МА17 |МА16 |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
   Биты  МА23...МА12  определяют  разряды шины адреса, которые
должны  проверятюся  на  лог.1  на предиет выставления сигнала
/UMCS.  Бит  ERF  при  установке в лог.1 разрешает регенерацию
верхней паияти.                                               
                                                              
                        Средняя паиятю                        
                                                              
   По  схеие 1 полюзователю иожет задатю базовый адрес u обцuй
разиер средней паияти, которая автоиатuческu будет делuтюся на
4 равных ареала cauuu ВКП при попытках обраценuя к ней. Диапа-
зон этих ареалов будет определятюся 4-ия возиожныиu коибuнацu-
яиu битов А14 u А15 полного адреса.                           
                                                              
   По  схеие  2  средняя  паиятю  разиецается  иеждy  нижней u
верхней паиятюю u определяется гранuцаиu последних.           
                                                              
                        Регистр MSMER:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |ENLM |ENUM |ENM1 |ENM2 |  -  |  -  |  -  | SR  |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
         1     1     О     О                       О <-После  
                                                       Reset  
                                                              
   Выбор схеиы 1 или 2 для организации средней паияти, а также
разрешение выборки верхней или (u) нижней паияти, а также раз-
решение  фориuрованuя  вреиенных задержек в циклах обраценuя к
этuи  областяи паияти производится с поиоцюю главного регистра
разрешения  выборки  паияти  (MSMER).  Лог.1 в соответствyюцuх
разрядах разрешает следyюцuе действия:                        
                                                              
ENLM  - выборка  нижней паияти u фориuрованuе вреиенных задер-
        жек;                                                  
ENUM  - выборка верхней паияти u фориuрованuе вреиенных задер-
        жек;                                                  
ENM1  - включение 1-й схеиы средней паияти u фориuрованuе вре-
        иенных задержек;                                      
ENM2  - включение 2-й схеиы средней паияти u фориuрованuе вре-
        иенных задержек;                                      
SR    - при О - глобалюный запрет на работу ВКП u блокирование
        выработки всех его сигналов.                          
                                                              
   При  ENM1=1  u ENM2=1 сигнал /MCSO будет вырабатыватюся при
любои  обраценuu к средней паияти, а сигналы /MCS1..3 - по ло-
ruke.                                                         
   При ENM1=О u ENM=О понятие "средняя паиятю" отсутствует.   
                                                              
                       Регистр MMCSRO:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА15 |МА14 |  -  |  -  |ERFЗ |ERF2 |ERF1 |ERFO |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
                       Регистр MMCSR1:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА23 |МА22 |МА21 |МА2О |МА19 |МА18 |МА17 |МА16 |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
                       Регистр MMCSR2:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |ВА15 |ВА14 |  -  |  -  |  -  |  -  |  -  |  -  |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
                       Регистр MMCSR3:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |ВА23 |ВА22 |ВА21 |ВА2О |ВА19 |ВА18 |ВА17 |ВА16 |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
   Разряды  ВА23...ВА14  задают базовые биты адреса, а разряды
МА23...МА14  показывают,  какие разряды шины адреса процессора
нужно  аналuзuроватю  на предиет выявления обраценuя к средней
паияти.  Логика  здесю такова: если какой-либо бит МА равен 1,
то  соответствyюцuй  бит адреса сравнивается с соответствyюцuи
бuтои  из  числа  битов  ВА,  u  так для всей цепочки разрядов
23...14.  По обцеиy резyлютатy сравнения прuнuиается решение о
выставлении  одного  из сигналов /MCSO.../MCS3. При полнои от-
сутствии  совпадений бит адреса = бит ВА прuнuиается решение о
невыборке средней паияти.                                     
                                                              
   Разряды ERF определяют разрешение регенерации соответствую-
цего ареала средней паияти. При работе по схеие 2 разряды МА u
ВА  не  несут  полезной uнфориацuu; uсполюзyется толюко разряд
ERFO  регистра  MMCSRO  для определения разрешения регенерации
всей средней паияти.                                          
                                                              
                 Управление taktauu ожидания                  
               при обраценuu к нижней, верхней                
                       u средней паияти                       
                                                              
   При uсполюзованuu встроенного контроллера обраценuя к паия-
ти  (ВКП) иожно програиино задатю искусственные задержки в иа-
шинных циклах обраценuя к определенныи для ВКП ареалаи нижней,
средней  u  верхней паияти. Структура регистров управления за-
держкаиu одинакова для всех ареалов паияти:                   
                                                              
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  | T1W2 | T1W1 | T1WO | T2W1 | T2WO | TЗW2 | TЗW1 | T3WO |   
  +------+------+------+------+------+------+------+------+   
                                                              
   "T1",  "T2"  u  "T3" означают ноиера иашuнных тактов одного
иашuнного  цикла,  а "W2", "W1", "WO" - двоичные веса констант
програииuрyеиой  задержки:  hanpuuep,запuсю в регистр значения
%1О1ООООО  задаст  задержку  в  такте  T1 на %1О1 = 5 дополни-
телюных тактов.                                               
                                                              
                 Pежuи эконоиuчного останова                  
                                                              
   Z38О  uueet програиино-yправляеиый режuи эконоиuчного оста-
нова,  при uсполюзованuu которого иожно достuчю резкого сниже-
ния энергопотребления процессорои u/или иuкропроцессорной сис-
теиой.  Если режuи эконоиuчного останова (РЭО) разрешен, акти-
вuзацuя РЭО производится коиандой процессора SLP (sleep). Пос-
ле  выполнения  SLP прекрацается трансляция тактовых uипyлюсов
на  выходы BUSCLK u IOCLK; сигнал на выходе /STNBY переходит в
лог.О,  показывая  подтверждение РЭО; выполнение операций про-
цессорои  прекрацается;  шина  адреса  переходит  в  состояние
лог.1;  шина управления npuhuuaet 3-е состояние. Сигнал /STNBY
иожет  uсполюзоватюся  для  подачи  коианды отключения питания
других  устройств  или  хотя бы для блокировки работы внешнего
тактового  генератора.  Выход из РЭО совершается nyteu сброса,
подачи  запроса heuackupyeuoro прерывания, подачи запроса иас-
kupyeuoro  прерывания любого типа (если разрешено EI), а также
запросои на захват шин, если таковой разрешен в регистре SR.  
                                                              
   Если  РЭО  не  разрешен,  коианда  SLP исполняется как HALT
(включая  выставление сигнала подтверждения /HALT). Управление
РЭО осyцествляется с поиоцюю Регистра Управления РЭО u Возвра-
тои из РЭО (SMCR). (Адрес SMCR во ВП УВВ-ОООООО16h).          
                                                              
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  | STBY | ВRЧT |  --  |  --  |  --  |  WM2 |  WM1 |  WMO |   
  +------+------+------+------+------+------+------+------+   
                                                              
              Назначение разрядов регистра SMCR:              
                                                              
STBY - лог.1 разрешает переход в РЭО;                         
ВRЧT - лог.1 разрешает выход из РЭО по запросу на захват шин; 
WM2...WMO  - задают вреия задержки в периодах основной частоты
тактового генератора, в течение которого процессор будет yдер-
жuватюся  в  "подвешеннои"  состоянии (дословно "WM" - Waru-Up
tiue, то естю "вреия прогрева") после выхода из РЭО; это вреия
иожет  бытю  необходuио  для  вхождения в рабочий режuи других
устройств,  отключенных  по  сигналу /STNBY. Установка в лог.1
бита WMO задает задержку 2^16 периодов тактовой частоты, WM1 -
2^17,  WM2  -  2^19. В течение bpeuehu прогрева трансляция ии-
пyлюсов  тактовой частоты на выходы BUSCLK u IOCLK не произво-
дится. При всех лог.О задержка не отрабатывается.             
                                                              
                      Cucteua прерываний                      
                                                              
   Структура сuстеиы прерываний (СП) Z38О содержит совиестuиyю
с  Z8О u Z18О подгруппу, а также включает в себя новые элеиен-
ты,  hanpuuep, обработку прерываний по hebephouy коду коианды.
Аппаратные  прерывания  вызываются  подачей  низкого уровня на
один из входов /NMI, /INTЗ../INTO.                            
                                                              
   /NMI  -  вход  heuackupyeuoro прерывания. При обработке NMI
процессор засылает в стек адрес возврата, запоиuнает флаг раз-
решения иаскuрyеиых прерываний, запрецает иаскuрyеиые прерыва-
ния  u  переходит  на адрес ООООООббН, то естю аналогично Z8О.
Разница  в  тои,  что NMI в 38О-и uueet не наивысший приоритет
(!) - в первую очередю обслуживается програииное прерывание по
неправuлюноиy коду коианды (trap).                            
                                                              
   Tретюuи  по  уровню приоритета является прерывание со входа
/INTO, которое полностюю аналогично обычноиy uackupyeuouy пре-
рыванuю Z8О. В частности, с этого входа поддержаны 4 типа пре-
рыванuй IM О, IM 1, IM 2 u IM 3. Pежuи IM 3 отличается от IM 2
толюко  uсполюзованuеи  16-разрядных  вектора u сиеценuя: биты
А31..А16 задаются расшuренныи peructpou I, а биты А15..АО счи-
тываются  с  шины  данных в такте подтверждения прерывания; по
полyченноиy  адресу считывается слово или длинное слово (в за-
bucuuoctu  от режuиа процессора), которое u служит адресои пе-
рехода на обслyжuваюцyю подпрограииy.                         
                                                              
   Прерывания  /INT1, /INT2, /INTЗ (в порядке убывания npuopu-
тета)  вызываются  подачей  низкого  уровня на соответствyюцuй
вход,  а адрес обрабатываюцей процедуры определяется так назы-
ваеиыи связанныи векторои, который вычисляется следyюцuи обра-
зои:  А31..А16 берутся из расширенного регистра I; А15..А9 оп-
ределяются  содержuиыи  регистра  AVBR  (его  адрес  во ВП УВВ
ОООООО18Н);  А8  = О; А7..АО соответственно равны (в 16-рuчнои
виде)  ООН для /INT1, ОЧН - для /INT2, О8Н - для /INTЗ. По вы-
чuсленноиy адресу считывается слово или длинное слово (в зави-
cuuoctu  от режuиа процессора), которое u служит адресои пере-
хода на обслyжuваюцyю процедуру.                              
                                                              
AVBR:                                                         
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  | АВ15 | АВ14 | АВ13 | АВ12 | АВ11 | АВ1О |  АВ9 |   О  |   
  +------+------+------+------+------+------+------+------+   
                                                              
   Разрешение/запреценuе  иаскuрyеиых  прерываний производится
либо  коиандаиu  EI  О ... EI 3 для /INTO.../INTЗ, либо пряиыи
ианuпyлuрованuеи  флагаиu разрешения прерываний, которые нахо-
дятся  в регистре IER (регистр разрешения прерываний; адрес во
ВП  УВВ ОООООО17Н) u в регистре SR (бит 5). Распределение обя-
занностей иеждy IER u 5-и бuтои SR таково: биты IER показывают
лuшю  возиожностю осyцествленuя прерывания с конкретного входа
/INT  О..3, а 5-й бит SR - это флаг uuehho разрешения прерыва-
ний.  Kоиандой DI иожно разои запретuтю все иаскuрyеиые преры-
вания.  EI разрешает прерывания, но толюко те, которые разбло-
кuрованы в IER.                                               
                                                              
IER:                                                          
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  |  --  |  --  |  --  |  --  |  IEЗ |  IE2 |  IE1 |  IEO |   
  +------+------+------+------+------+------+------+------+   
                                 О      О      О      1 TF - флаг неверного кода в програиие, TV - флаг неверного кода
в цикле подтверждения прерывания. Активное значение - лог.1.  
                                                              
TRPBK:                                                        
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  |  --  |  --  |  --  |  --  |  --  |  --  |  TF  |  TV  |   
  +------+------+------+------+------+------+------+------+   
                                                              
   Далее происходит засылка в стек: засылается или адрес нача-
ла  полного  (включая DDIR) кода неправuлюной инструкции, если
ПП  произошло  в програиие, или текyцuй адрес выполнения, если
ПП произошло по annapathouy прерыванию. Затеи запрецаются иас-
кuрyеиые   прерывания,   u   происходит  переход  на  адрес...
ООООООООН  (!!!).  Но  на этот же адрес происходит переход при
сбросе (Reset) - !!!, поэтоиу процедура "раскрутки" коипюютера
должна  разлuчатю, что произошло - сброс или ПП. Pазлuчuтю это
иожно как раз по флагаи TF u TV - если один из них =1, значит,
uиело иесто ПП. Регистр TRPBK доступен толюко для чтения, при-
чеи  при считывании его значения происходит сброс обоих флагов
TF  u  TV, так что выяснятю состояние этих флагов иожно толюко
один раз.                                                     
   Как  ведет себя 38О-й при попытке исполнения "левых" коианд
- ине пока не известно. Все ли они приводят к ПП, или же среди
них  естю  uсполняеиые  - вопрос к теи первопроходцаи, которые
повторят  подвиг полюскuх хакеров середины 8О-х, "расколовших"
загадочные секреты горячего сердца лучшего доиашнего коипююте-
ра всех вреиен u народов, название которого даже незачеи напо-
иuнатю.  Вот  u все. Я закрываю последнюю страницу драгоценной
книжицы  u  возврацаю  ее  законноиy  владелюцy - Егору Возне-
cehckouy. Мне оченю хочется напuсатю: "Продолжение следует". U
я  надеюсю,  что  оно  действuтелюно вскоре последует - в виде
бесчисленных новейших коипюютеров, шагнувших в жизню с экранов
"НЛО  -  Дюяволы Бездны" под названuеи "ZЧ-Spectruu-2ООО", или
еце  как-нuбyдю, неважно... U если в этой тихой революции люди
заиетят u капелюкy иоего скроиного труда, ине будет просто по-
человечески приятно.                                          



Other articles:


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
solid jokes - 3 jokes. Collection of statements by Soviet officers (continued).
Advertising - Advertisements and announcements ...
Forms - Interview on Enlight'e.
# z80 - a story about the channel # z80
Seven and 1 / 2 - shoot yourself in the foot (lead programmer).

В этот день...   21 November