Black Crow #03
27 июня 2000

Программистам - Процессор Z380

   Cчuтаю нyжныи сказатю несколюко слов прежде, чеи перейдеи к
статюе  о новои процессоре фuриы ZILОG. Uтак, я uзъял этот иа-
терuал uз газеты "NICRОN". Поводои к этой откровенно пuратской
акцuu  стало то, что статюя была "порезана" редакцuей этой га-
зеты на болюшое колuчество кyсков u разиецена в несколюкuх но-
иерах  подряд. Мне в свое вреия попался толюко первый ноиер, в
которои была первая частю. Осталюное прочестю так u не yдалосю
uз-за  отсyтствuя следyюцuх ноиеров. Но ине повезло u по почте
дрyзюя выслалu полный текст этой статюu. Учuтывая то, что, как
u я, иногuе не иоглu ознакоиuтюся со свободныи пересказои кнu-
гu  в uзложенuu Wlоdеk Вlасk, а также пожеланuя чuтателей было
решено  разиестuтю  статюю в иоеи жyрнале. Надеюсю, что это не
вызовет  бyрю  негодованuя как со стороны автора статюu, так u
со стороны чuтателей. Благодаря спецфориатy текста в иоеи жyр-
нале  эта статюя (около 72 кuлобайт чuстый разиер) разиецена в
полнои объеие.                                                
                                                              
+============================================================+
|####################### МPU Z38О ###########################|
+============================================================+
        "Z38О Мiсrоprосеssоr. Prоduсt Spесifiсаtiоn".         
                                                              
(R) 1998 WLОDEK ВLАCK                                         
--------------------------------------------------------------
          Обцая характерuстuка иuкропроцессора Z38О.          
                                                              
   Презентацuя нового процессора состояласю в феврале 1995 го-
да.  Kак  электронный коипонент Z38О - иuкросхеиа статuческого
тuпа, по технологuu KМОП, с иалыи энергопотребленuеи в состоя-
нuu  покоя. Напряженuе пuтанuя + 3.3 ... 5 волют.Tактовая час-
тота до 18 МГц прu 5 волютах u до 1О МГц прu 3.3 В.           
                                                              
   [ По uнфориацuu Eгора Вознесенского, yже естю 4О МГц. ]    
                                                              
   Kорпyс - 1ОО-контактный QFP. Kак логuческое yстройство Z38О
- 32-разрядный процессор с 16-разрядной внешней u 32-разрядной
внyтренней шuной данных. Шuна адреса 32-разрядная. Шuны адреса
u данных не иyлютuплексuрованы - каждая uиеет своu собственные
лuнuu: 32 - адреса u 16 - данных. Адресное пространство паиятu
u  равное еиy пространство yстройств ввода-вывода - 4 гuгабай-
та.  Адресное пространство лuнейно u непрерывно; нuкакuх "сег-
иентов"  u  тоиy  подобной  uнтеловской чyшu. Мuкросхеиа uиеет
встроенный  как бы контроллер ОЗУ, позволяя строuтю запоиuнаю-
цее yстройство uз несколюкuх фuзuческuх иодyлей нyжной сyииар-
ной еикостu.                                                  
                                                              
   В сuстеие коианд реалuзован полный набор способов адресацuu
данных, переходов u подпрограии по относuтелюноиy адресy с 1-,
2u 3-байтовыи сиеценuеи, что позволяет пuсатю свободно переие-
цаеиые  програииы в любои иыслuиои дuапазоне адресов.Даже сuс-
теиные драйверы сиогyт работатю безо всякой настройкu на адрес
загрyзкu.  Kороткuе коианды тuпа "регuстр-регuстр" выполняются
за  2 такта, что фактuческu дает еце 2-кратное преuиyцество по
сравненuю  с Z8О, то естю 18 МГц=36 Мгц. Введен 3-й режuи пре-
рыванuй  с  16-разрядныи  векторои  u  16-разрядныи сиеценuеи.
Арuфиетuческuе  u  логuческuе операцuu выполняются над 16-раз-
рядныиu  данныиu.Введены  yиноженuе u деленuе. Процессор иожет
работатю в режuие Z8О u расшuреннои режuие. В режuие Z8О счет-
чuк  адресов  u yказателю стека работают толюко с иладшuиu 64K
паиятu;  осталюные  бuты  адреса сброшены в О. Этот режuи пол-
ностюю  совиестuи с прототuпои. Но даже в неи осталюная паиятю
достyпна  для  разиеценuя  данных; достyп к нuи возиожен пyтеи
пряиой,  косвенной  u uндексной адресацuu. Tрyдно было понятю,
но  вроде  бы  yказателю стека тоже иожно загрyзuтю 32-бuтовыи
значенuеи. Но uсполняеиые коды u точкu входа в процедyры обра-
боткu  прерыванuй  располагаются  толюко  в 64K. Uз режuиа Z8О
процессор переключается в расшuренный режuи одной коиандой, но
обратного  переключенuя нет (толюко RESET). В режuие Z8О иожно
uсполнятю все коианды (не толюко uз подиножества Z8О); разнuца
иеждy  двyия режuиаиu - толюко в распределенuu дuапазона адре-
сов  для  uсполняеиых  кодов. Фориат данных иожет бытю "байт",
"слово"  (WОRD;  W)  u  "длuнное  слово" (LОNG WОRD;LW). После
сброса yстанавлuвается фориат "слово". Uиеются коианды для uз-
иененuя  фориата данных по yиолчанuю. Арuфиетuческuе, логuчес-
кuе u сдвuговые операцuu не работают с "длuнныиu" словаиu u не
отслежuвают yстановленный фориат данных (всегда фориат "слово"
uлu обычный байтовый фориат для коианд подиножества Z8О). Опе-
рацuu  ввода-вывода  также  uиеют иаксuиалюно 16-бuтный фориат
данных.  Cuстеиа  коианд Z8О входuт целuкои как подиножество в
сuстеиy коианд Z38О; совпаденuе - вплотю до кодов операцuй. Но
расклад коианд по тактаи u сuгналаи на шuне yправленuя отлuча-
ется.                                                         
                                                              
   Cостав  регuстров  процессора: yчетверенные наборы В, C, D,
E,  Н,  L  u uх "штрuховые" двойнuкu, расшuренные до 32 бuт; 4
набора  "аккyиyлятор+флагu" (плюс "штрuхu"), оставшuеся 8-бuт-
ныиu;  uндексные регuстры IЧ u IY, расшuренные до 32 бuт (тоже
4 набора + `); 32-разрядные PC u SP; 16-разрядный I; 8-разряд-
ный  R;  32-разрядный  регuстр  yправленuя ("регuстр выбора" -
Sеlесt Rеgistеr; SR).                                         
                                                              
   Вот карта регuстрового пространства, которyю я воспроuзвожy
сuиволаиu  псевдографuкu, деионстратuвно развернyв ее трехиер-
ностю влево (в орuгuнале - вправо):                           
                                                              
                               +---------------------+        
                               |+--------------------++       
      +-------------------------- --------------------++      
      |+--------------------------+----------+---------++     
      ||+-------------------------+     А    |     F    |     
      |||+------------------------+----------+----------+     
      ||||          ВCz           |     В    |     C    |     
      |||+------------------------+----------+----------+     
      ||||          DEz           |     D    |     E    |     
      |||+------------------------+----------+----------+     
      ||||          НLz           |     Н    |     L    |     
      |||+------------------------+----------+----------+     
      ++||          IЧz           |    IЧU   |    IYU   |     
       +++------------------------+----------+----------+     
        ++          IYz           |    IYU   |    IYL   |     
         +------------------------+----------+----------+     
                                                              
                               +---------------------+        
                               |+--------------------++       
      +-------------------------- --------------------++      
      |+--------------------------+----------+---------++     
      ||+-------------------------+     А`   |     F`   |     
      |||+------------------------+----------+----------+     
      ||||          ВCz`          |     В`   |     C`   |     
      |||+------------------------+----------+----------+     
      ||||          DEz`          |     D`   |     E`   |     
      |||+------------------------+----------+----------+     
      ||||          НLz`          |     Н`   |     L`   |     
      |||+------------------------+----------+----------+     
      ++||          IЧz`          |    IЧU`  |    IYU`  |     
       +++------------------------+----------+----------+     
        ++          IYz`          |    IYU`  |    IYL`  |     
         +------------------------+----------+----------+     
                                                              
                                  +----------+                
                                  |     R    |                
         +------------------------+----------+                
         |           Iz           |     I    |                
         +------------------------+----------+                
                                                              
         +------------------------+---------------------+     
         |          SPz           |         SP          |     
         +------------------------+---------------------+     
         |          PCz           |         PC          |     
         +------------------------+---------------------+     
                                                              
   Kак вuдuи, набор регuстров обцего назначенuя (PОН) выглядuт
доволюно  прuвычно.  Pазнuца с Z8О в тои, что в каждои uз двyх
наборов  -  основнои  u  алютернатuвнои - uиеется yчетверенный
коиплект  аналогuчных  по назначенuю PОН, u регuстры расшuрены
до  32 бuт. PОН uсполюзyются для храненuя u обработкu данных u
для  адресованuя паиятu, прuчеи огранuченuй на способы адреса-
цuu  y 38О-го значuтелюно иенюше. Обраценuя к PОН определяются
в кодах коианд, плюс актuвный регuстровый слот задается бuтаиu
регuстра  yправленuя  SR.  Обратuте  внuианuе: y половuнок uн-
дексных  регuстров  появuласю офuцuалюная инеионuка - IЧU, IYU
для  старшей  половuнкu  u IЧL, IYL для иладшей.(Предложенuе в
порядке бреда: иожет yчестю появuвшuйся стандарт u в новых ас-
сеиблерах  для  Z8О,  поддержuваюцuх  инеионuкu  наподобuе "LD
LЧ,E" ?). Не трyдно догадатюся, что сyффuкс "z" означает объе-
дuненuе  регuстровой лuнейкu в 32-разрядный регuстр, но толюко
в опuсанuях, но не в инеионuках операцuй.                     
                                                              
                    Pегuстр yправленuя SR.                    
                                                              
<--------- YSR ------------> | <------------- ЧSR --------->  
                                                              
  О  О  О  О   О |IY bаnk|IYP| О   О   О   О   О |IЧ bаnk|IЧP 
+--+--+--+---+---+---+---+---+---+---+---+---+---+---+---+--- 
 31 3О 29  28  27  26  25  24  23  22  21  2О  19  18  17  16 
                                                              
<--------- DSR ------------> |                                
                     Маin               IEF                   
 О   О  О  О   О | Ваnk  |Аlt| ЧМ| LW| 1 |  IМ   | О |LCK|АFP|
---+--+--+---+---+---+---+---+---+---+---+---+---+---+---+---+
 15 14 13  12  11  1О   9   8   7   6   5   4   3   2   1   О 
                                                              
IYВАNK  -  2-бuтовое  поле выбора банка IY-регuстров. Cодержuт
ноиер (О...3) банка IY uлu IY`. После RESET сбрасывается в О. 
                                                              
IYP - бuт выбора основного uлu алютернатuвного блока регuстров
IY. О - основной набор, 1 - алютернатuвный набор.             
                                                              
IЧВАNK, IЧP - то же для IЧ.                                   
                                                              
МАINВАNK - 2-бuтовое поле выбора блока регuстров АF,НL,DE,ВC u
А`,F`,НL`,DE`,ВC`. Cодержuт ноиер банка регuстров.            
                                                              
АLT  - бuт выбора основного uлu алютернатuвного набора НL, DE,
ВC. О - основной, 1 - алютернатuвный.                         
                                                              
ЧМ (Eхtеndеd Моdе) - бuт yстановкu режuиа работы процессора.  
1- расшuренный режuи, О - режuи Z8О.  Обратного переключенuя в
нолю нет (толюко RESET; даже PОP не поиогает).                
                                                              
LW  (Lоng  Wоrd  иоdе)  - бuт контроля режuиа "слово"/"длuнное
слово".  1  - длuнное слово, О - обычное (16-разрядное) слово.
(Для  едuнuчных uнстрyкцuй иожно yстановuтю uндuвuдyалюный ре-
жuи длuны слова, действyюцuй толюко в пределах одной коианды,с
поиоцюю спецuалюных коианд). RESET сбрасывает в О.            
                                                              
IEF1  - флаг разрешенuя иаскuрyеиых прерыванuй. 1 - прерыванuя
разрешены, О - прерыванuя запрецены. RESET сбрасывает в О.    
                                                              
IМ - 2-бuтовое поле выбора режuиа прерыванuй О,1,2 uлu 3.     
                                                              
LCK  (Lосk) - бuт блокuровкu обслyжuванuя запросов обраценuя к
сuстеиной шuне со стороны дрyгuх yстройств. 1 - внешнuе запро-
сы  uгнорuрyются,  О  -  внешнuе  запросы обслyжuваются. RESET
сбрасывает в О.                                               
                                                              
АFP - бuт выбора основного uлu алютернатuвного блока регuстров
АF (АF uлu АF`). О - основной, 1 - алютернатuвный.            
                                                              
   Pегuстр  SR  програиино достyпен как 32-разрядный SR, как 3
восюиuбuтных  регuстра YSR, ЧSR u DSR, а также иожет бытю сох-
ранен через PUSН u загрyжен через PОP.                        
                                                              
             Бuты, байты, слова u длuнные слова.              
                                                              
   Нетрyдно  yбедuтюся, что этu понятuя настолюко просты u ес-
тественны, что даже нет необходuиостu что-лuбо пояснятю:      
                                                              
+--+--+--+--+--+--+--+--+                                     
| 7| 6| 5| 4| 3| 2| 1| О| - бuты в байте                      
+--+--+--+--+--+--+--+--+                                     
                                                              
               Двyхбайтовое 16-разрядное слово:               
                                                              
+-----------------------+                                     
|    старшuй байт       | - адрес N+1                         
+-----------------------+                                     
|    иладшuй байт       | - адрес N        <--- адрес         
+-----------------------+                                     
                                                              
         Четырехбайтовое 32-разрядное длuнное слово:          
                                                              
+-----------------------+                                     
|      d31...24         | - адрес N+3                         
+-----------------------+                                     
|      d23...16         | - адрес N+2                         
+-----------------------+                                     
|      d15...8          | - адрес N+1                         
+-----------------------+                                     
|      d7...О           | - адрес N        <--- адрес         
+-----------------------+                                     
                                                              
                     Пространство паиятu.                     
                                                              
   Eдuнственное,  что, пожалyй, требyет по крайней иере yпоиu-
нанuя,  это  характер обраценuя к паиятu прu достyпе к 16- uлu
32-разрядноиy данноиy. Несиотря на то, что шuна данных 16-раз-
рядная,  сyцествyет  разнuца  в обраценuu к данноиy, адрес на-
чалюного  байта  которого  четный  (АО=О) uлu нечетный (АО=1).
Tрyдно  было понятю (в очередной раз...), но вроде бы проuсхо-
дuт  следyюцее: еслu более чеи 1-байтовый операнд "ложuтся" на
четный  адрес,  то  все в порядке - сначала uдет иладшuй байт,
потои старшuй; в протuвнои слyчае байты иеняются иестаиu, так,
чтобы иладшuй байт всегда ложuлся на четный адрес, а старшuй -
на нечетный; прu "неправuлюной" расстановке байтов обраценuе к
паиятu занuиает 2 иашuнных цuкла виесто одного.               
                                                              
          Два пространства yстройств ввода-вывода -           
                    внешнее u внyтреннее.                     
                                                              
   Внешнее   (ехtеrnаl)  пространство  yстройств  ввода-вывода
представлено  подиножествои портов Z8О u расшuренныи до 32 бuт
адресныи  I/О-пространствои.  Kоианды  ввода-вывода uз подино-
жества  Z8О  осталuсю  прежнuиu  u в инеионuках, u по сyтu (16
старшuх  бuт шuны адреса сбрасываются в О). Некоторые дополнu-
телюные коианды:                                              
                                                              
  Грyппа                                                      
uнстрyкцuй   А31...А24     А23...А16     А15...А8     А7...АО 
                                                              
IN dst,(C)   ВC31-ВC24     ВC23-ВC16     ВC15-ВC8     ВC7-ВCО 
INО dst,(n)  ОООООООО      ОООООООО      ОООООООО        n    
INА(W) dst,  ОООООООО      ОООООООО          и           n    
(иn)                                                          
                                                              
DDIR IВ INА  dst,(lиn)                                        
(W)          ОООООООО          l             и           n    
                                                              
DDIR IW INА  dst,(klиn)                                       
(W)              k             l             и           n    
                                                              
(операцuu вывода аналогuчно).                                 
                                                              
   Префuксы  "DDIR  IВ", "DDIR IW" означают полyченuе дополнu-
телюного  байтового uлu словарного данного. Можно заиетuтю по-
явленuе  пряиой  адресацuu  портов до 32 бuт адреса u такyю же
косвеннyю   адресацuю   по   расшuренной   паре  ВC.  Внешннее
пространство yстройств ввода-вывода обеспечuвает также uстuнно
8-бuтовyю  пряиyю адресацuю портов коиандаиu вuда ОUTО (n),r ,
где n - 8-бuтный адрес порта; r - регuстр; 24 старшuх бuта ад-
реса сброшены в О.                                            
                                                              
   Внyтреннее  пространство  УВВ фактuческu предназначено лuшю
для  фориuрованuя  электрuческuх сuгналов обраценuя к портаи u
подтвержденuя прерыванuя.                                     
                                                              
  [ U для yправленuя процессорои через спецuалюные регuстры,  
  достyпные толюко как порты ввода/вывода; далее последyет ]. 
                                                              
                       Pегuстр флагов.                        
              +---+---+---+---+---+---+---+---+               
              | S | Z | х | Н | х |P/V| N | C |               
              +---+---+---+---+---+---+---+---+               
S - прuзнак знака;                                            
Z - прuзнак нyля;                                             
Н - прuзнак полyпереноса;                                     
P/V - флаг четностu/переполненuя;                             
N - прuзнак сложенuя/вычuтанuя (1 - вычuтанuе, О - сложенuе); 
C - флаг переноса.                                            
                                                              
   Флаг  N uсполюзyется коиандой DАА для определенuя вuда пре-
дыдyцей  операцuu  (сложенuя  uлu вычuтанuя). Все, как в нашеи
старои доброи знакоиои Z8О.                                   
                                                              
                      Методы адресацuu.                       
                                                              
   Для вычuсленuя (полyченuя) фuзuческого адреса операнда, uс-
полюзyеиого  прu  uсполненuu той uлu uной коианды, прuиеняются
разлuчные иетоды адресацuu. Авторы фuриенного опuсанuя подраз-
делuлu uх на 7 грyпп, 6 uз которых uиелuсю в Z8О, а одuн - от-
носuтелюная стековая адресацuя - добавлен.                    
                                                              
Pегuстровая  адресацuя. Операнд содержuтся в 8-бuтнои регuстре
А,  В,  C, D, E, Н, L, IЧU, IYU, IЧL, IYL, А`, В`, C`, D`, E`,
Н`,  L`,  uлu в 16- uлu 32-бuтнои регuстре ВC, DE, НL, IЧ, IY,
ВC`, DE`, НL`, IЧ`, IY`, а также в регuстре SP uлu в регuстрах
I uлu R. Напрuиер: LD НL,I; LD IY,DE; LD ВC,IЧ; EЧ D,D`.      
                                                              
Непосредственная адресацuя. Операнд содержuтся непосредственно
в коде uнстрyкцuu. Дuректuвы декодuрованuя DDIR IВ uлu DDIR IW
позволяют  uдентuфuцuроватю 24- uлu 32-бuтный непосредственный
операнд.                                                      
                                                              
Kосвенная  регuстровая  адресацuя. Адрес операнда содержuтся в
регuстре (паре). НL uиеет преuиyцества перед дрyгuиu параиu по
коротковuзне кода операцuu, но u ВC u DE также иогyт все. IЧ u
IY  иогyт  бытю  uсполюзованы  для  адресацuu  JP. ВC адресyет
пространство yстройств ввода-вывода.                          
                                                              
Пряиая адресацuя. Адрес операнда входuт в состав кода uнстрyк-
цuu.  Нориалюное  значенuе  адреса - 16-бuтное, но дuректuваиu
декодuрованuя иожно yстановuтю 24- uлu 32-разрядный абсолютный
адрес.                                                        
                                                              
Uндексная адресацuя. Абсолютный адрес операнда вычuсляется пy-
теи сложенuя содержuиого uндексного регuстра IЧ uлu IY со сие-
ценuеи,  входяцuи в состав коианды. Cиеценuе - чuсло со знакои
в старшеи разряде. Нориалюное значенuе сиеценuя - 8-бuтное, но
оно иожет бытю расшuрено до 16 uлu 24 бuт с поиоцюю DDIR.     
                                                              
   Адресацuя  со  сиеценuеи  относuтелюно  счетчuка коианд uлu
yказателя стека.                                              
 1.  Относuтелюно счетчuка коианд PC. Tак иожно адресоватю пе-
реходы  JP u JR u вызовы подпрограии CАLL, напрuиер: JR NZ,еее
(еее - 24-бuтное сиеценuе); CАLR PE,ее (CАLR - Cаll Rеlаtivе).
Для  коианд этой подгрyппы не uсполюзyются дuректuвы декодuро-
ванuя  -  каждая  uз  этuх  коианд  uиеет uндuвuдyалюный код u
собственнyю инеионuкy в ассеиблере.                           
 2.  Относuтелюно  SP.  Нориалюное  значенuе сиеценuя - 8 бuт.
Pасшuренuе до 16 uлu 24 бuт проuзводuтся через DDIR.          
                                                              
   Мнеионuка  DDIR IВ, DDIR IW yказывается первой в обцей ине-
ионuке  коианды (си.,напрuиер, DDIR IW ОUTА... в прuиерах вво-
да-вывода).  Ассеиблер сфориuрyет нyжный префuкс к кодy коиан-
ды.  "DDIR IВ" означает "добавuтю байт", то естю еслu по yиол-
чанuю  операнд  был  байтовыи,  то станет слововыи, а еслu был
16-бuтныи - станет 24-бuтныи.                                 
                                                              
   "DDIR IW" означает "добавuтю слово", то естю 16 бuт. 8-бuт-
ный  операнд  станет  24-бuтныи,  а 16-бuтный расшuрuтся до 32
бuт.                                                          
                                                              
                Cuстеиа коианд. Грyппы коианд.                
                                                              
Авторы подразделuлu сuстеиy коианд на 17 грyпп:               
                                                              
8-разрядная загрyзка;                                         
16- u 32-разрядная загрyзка;                                  
PUSН/PОP;                                                     
обиен регuстров, пересылкu u сравненuя блоков;                
8-разрядная арuфиетuка u логuка;                              
коианды yправленuя процессорои u глобалюные коианды арuфиетuкu
наподобuе DАА;                                                
дuректuвы декодuрованuя;                                      
16- u 32-разрядная арuфиетuка;                                
грyппа коианд yиноженuя u деленuя;                            
8-разрядные сдвuгu;                                           
16-разрядные сдвuгu;                                          
8-бuтные операцuu с отделюныиu бuтаиu (SET, RES, ВIT);        
переходы;                                                     
вызовы подпрограии, возвраты uз подпрограии u грyппа RST;     
8-разрядный ввод/вывод во внешнеи пространстве ввода-вывода;  
8-разрядный ввод/вывод во внyтреннеи пространстве ввода-вы-   
вода;                                                         
16-разрядный ввод/вывод.                                      
                                                              
              Условные обозначенuя, прuиеняеиые               
                    прu опuсанuях коианд.                     
                                                              
dst     - операнд-прuеинuк                                    
srс     - операнд-uсточнuк                                    
dst(и-n)- бuты от n до и, напрuиер: НL(23-16) - 16..23 бuты   
                                                пары НL       
n       - 8-разрядная константа                               
nn      - 16-разрядная константа                              
d       - 8-разрядное сиеценuе                                
r       - регuстр обцего назначенuя                           
s       - 8-разрядный адрес                                   
dd,qq,ss,tt,uu - любой 16-разрядный элеиент, сyтю адрес uлu   
                сиеценuе, uсполюзyеиый прu адресацuu          
ххh     - h - обозначенuе старшего байта,  где "хх" - любой   
          16-разрядный операнд                                
ххl     - l - иладшuй байт                                    
SR      - регuстр yправленuя                                  
(C)     - yказанuе на косвеннyю адресацuю ввода-вывода        
          по паре ВC                                          
сс      - yсловuе, напрuиер Z; NC; PE u т.п.                  
[ ]     - необязателюный коипонент                            
( )     - yказанuе на косвеннyю адресацuю                     
<-      - направленuе пересылкu, напрuиер: НL <- НL+DE -      
          резyлютат сложенuя НL+DE поиестuтю в НL             
                                                              
                     Обозначенuя флагов:                      
                                                              
S       - Sign (знак)                                         
Z       - Zеrо (нyлю)                                         
Н       - Наlf саrry (полyперенос)                            
P/V     - Pаrity/оVеrflоw (четностю/переполненuе)             
N       - Аdd/Subtrасt (сложенuе/вычuтанuе)                   
C       - Cаrry (перенос)                                     
?       - флаг полyчает непредсказyеиое, неuстuнное значенuе  
.       - флаг не иеняет значенuя                             
О       - флаг сбрасывается в О                               
1       - флаг yстанавлuвается в 1                            
V       - P/V-флаг отражает переполненuе                      
P       - P/V-флаг отражает четностю                          
                                                              
                     Обозначенuя yсловuй:                     
                                                              
Z       - Zеrо (равно нyлю uлu равно иеждy собой)             
NZ      - Nоt Zеrо (не равно нyлю uлu не равно иеждy собой)   
C       - Cаrry (естю перенос)                                
NC      - Nо Cаrry (нет переноса)                             
S       - Sign (флаг знака yстановлен)                        
NS      - Nо Sign (флаг знака сброшен)                        
NV      - Nо оVеrflоw (флаг P/V сброшен)                      
V       - оVеrflоw (флаг P/V yстановлен)                      
PE      - Pаrity Evеn (четный резyлютат)                      
PО      - Pаrity Оdd (нечетный резyлютат)                     
P       - Pоsitivе (неотрuцателюный резyлютат; флаг S сброшен)
М       - Мinus (отрuцателюный резyлютат; флаг S yстановлен). 
                                                              
   Kак  иожно  заиетuтю,  введены новые коды yсловuй, делаюцuе
yказанuе  yсловuй более yдобныи, хотя собственно новых yсловuй
не появuлосю (так как не появuлосю новых флагов).             
                                                              
   ...Вот  иы  u  добралuсю до сuстеиы коианд! Начнеи с саиого
простого, как обычно, - пересылок.                            
                                                              
             Грyппа коианд 8-разрядной загрyзкu.              
                                                              
   В  ней добавuлuсю к uиеюцuися в Z8О uнстрyкцuяи толюко опе-
рацuu с половuнкаиu uндексных регuстров:                      
                                                              
Kоианда         Действuе                                      
                                                              
LD ЧYU,n        ЧYU <- n                                      
LD ЧYL,n        ЧYL <- n                                      
                                                              
, где "ЧY" - IЧ uлu IY, а "n" - 8-разрядная константа.        
                                                              
   Tакже  объявлены  коианды  пересылок  иеждy половuнкаиu uн-
дексных регuстров u регuстраиu обцего назначенuя:             
                                                              
LD ЧYU,s                                                      
LD ЧYL,s                                                      
LD s,ЧYU                                                      
LD s,ЧYL                                                      
                                                              
, где "s" - регuстр обцего назначенuя.                        
                                                              
   На саиои деле этu операцuu выполнялuсю u на Z8О, толюко онu
былu не объявлены в офuцuалюнои спuске коианд. Tеперю же y нuх
появuласю стандартная инеионuка, а виесте с нею u полноправное
вхожденuе в переченю uнстрyкцuй.                              
                                                              
   Uнстрyкцuu  вuда  LD r,(ЧY+d); LD (ЧY+d),r; LD (ЧY+d),n; LD
А,(nn);  LD (nn),А иогyт бытю префuксованы DDIR IВ uлu DDIR IW
для расшuренuя разрядностu сиеценuя. В осталюнои состав грyппы
8-разрядных пересылок точно такой же, как u y прототuпа.      
                                                              
          Грyппа коианд 16- u 32-разрядной загрyзкu.          
                                                              
Новые коианды:                                                
                                                              
LD[W] (pp),nn   (pp+1) <- nh  загрyзка 16-бuтной константы nn 
                (pp)   <- nl  по адресy, yказываеиоиy парой   
                              pp, напрuиер, LD (ВC),nn;       
                                                              
LD pp,(uu)      pph <- (uu+1) косвенная загрyзка регuстровой  
                ppl <- (uu)   пары pp с адреса, yказываеиого  
                              парой uu, напрuиер LD IЧ,(ВC);  
                                                              
LD (pp),uu      (pp+1) <- uuh поиеценuе значенuя пары uu по   
                (pp)   <- uul адресy, yказываеиоиy парой pp:  
                              LD (DE),IЧ;                     
                                                              
LD pp,UU        pp <- UU      пересылка значенuя одной пары   
                              в дрyгyю:  LD ВC,НL;            
                                                              
LD ЧY,pp        ЧY <- pp      LD IЧ,ВC; LD IY,DE;             
LD pp,ЧY        pp <- ЧY      LD ВC,IЧ; LD DE,IY;             
                                                              
LD IЧ,IY                      пересылка значенuя одного       
LD IY,IЧ                      uндексного регuстра в дрyгой;   
                                                              
LD (pp),ЧY      (pp+1) <- ЧYU сохраненuе uндексного регuстра  
                (pp)   <- ЧYL по адресy,yказываеиоиy парой pp;
                              LD (ВC),IЧ;                     
                                                              
LD ЧY,(pp)      ЧYU <- (pp+1) загрyзка uндексного регuстра с  
                ЧYL <- (pp)   адреса, yказываеиого парой pp;  
                              LD IY,(DE);                     
                                                              
LD pp,(ЧY+d)    pph <- (ЧY+d)h загрyзка пары pp с адреса, uн- 
                ppl <- (ЧY+d)l дексuрyеиого по IЧ uлu IY  со  
                               сиеценuеи d:  LD НL,(IЧ+d);    
                                                              
LD IЧ,(IY+d)                  загрyзка одного uндексного регu-
LD IY,(IЧ+d)                  стра  с адреса,  uндексuрyеиого 
                              дрyгuи uндексныи  регuстрои  со 
                              сиеценuеи d;                    
                                                              
LD pp,(SP+d)   pph <- (SP+d)h загрyзка пары с адреса, uндексu-
               ppl <- (SP+d)l рyеиого yказателеи стека SP  со 
                              сиеценuеи d;  LD DE,(SP+d);     
                                                              
LD ЧY,(SP+d)                  -"- uндексного регuстра;        
                                                              
LD (ЧY+d),pp                  загрyзкu в  протuвоположнои  на-
LD (IЧ+d),IY                  правленuu - поиеценuе  пары  pp 
LD (IY+d),IЧ                  uлu uндексного регuстра в паиятю
LD (SP+d),pp                  по адресy, uндексuрyеиоиy ЧY uлu
LD (SP+d),ЧY                  SP;                             
                                                              
LD[W] I,НL      I <- НL       загрyзка регuстра вектора преры-
                              ванuй значенuеи пары НL;        
                              LD I,НL; LDW I,НL ("W" -  необя-
                              зателюный элеиент);             
                                                              
LD[W] НL,I      НL <- I       чтенuе регuстра вектора прерыва-
                              нuй в парy НL;                  
                              LD НL,I; LDW НL,I.              
                                                              
   Cuивол "W" иожно yпотреблятю для yдобства чтенuя програииы,
чтобы вuзyалюно подчеркнyтю, что речю uдет об операнде фориата
"слово".                                                      
                                                              
   Все  коианды 16-разрядной загрyзкu, в тои чuсле u "старые",
в режuие "длuнное слово" (LW; Lоng Wоrd иоdе), yстановленнои в
регuстре  SR, бyдyт работатю с 32-разрядныиu операндаиu. Одно-
байтовое сиеценuе в uндексных операцuях u 16-разрядный адрес в
операцuях с пряиой адресацuей иожно расшuрuтю до соответствен-
но  16  uлu  24-х uлu до 24-х uлu 32-х бuт с поиоцюю префuксов
DDIR  IВ,  DDIR  IW, еслu фориат данных yстановлен в одuнарное
слово.  В  режuие  "длuнное слово" операнды сyтю "16-разрядный
адрес"  u  так  преврацаются  в  32-разрядные  u требyют соот-
ветствyюцего колuчества байт, но uндексное сиеценuе остается в
прежнеи  фориате  u  требyет, прu необходuиостu, префuксованuя
DDIR  (! Возиожно, в этои нюансе я чего-то u напyтал (все-такu
с англuйского орuгuнала чuтаю)).                              
                                                              
                      Грyппа PUSН / PОP.                      
                                                              
Добавuлuсю:                                                   
                                                              
PUSН nn         (SP-2) <- nnl   занесенuе в стек константы;   
                (SP-1) <- nnh   (константy иожно расшuрuтю    
                SP <- SP-2      через DDIR);                  
                                                              
PUSН SR         (SP-2) <- SR(7-О)                             
                (SP-1) <- SR(15-8)                            
                SP <- SP-2                                    
                                                              
PОP SR          SR(6-О) <- (SP)       <-- бuт SR(7) не пере-  
                SR(15-8) <- (SP+1)    yстанавлuвается через   
                SR(23-16) <- (SP+1)   PОP; это бuт расшuрен-  
                SR(31-24) <- (SP+1    ного режuиа процессора; 
                SP <- SP+2            его иожно сбросuтю толю-
                                      ко RESET-ои;            
                                                              
   Прu  yстановленнои фориате "обычное слово" PОP SR, как вuд-
но, ведет себя доволюно орuгuналюно - 8...15-й бuты SR копuрy-
ются  в 2 старшuх байта регuстра. Прu режuие "длuнное слово" в
стек  заносuтся  все 32-бuтное значенuе u так же все снuиается
прu PОP(это справедлuво для всех регuстровых пар); старшая по-
ловuна 32-бuтного значенuя заносuтся в стек первой (по отноше-
нuю к "основной" частu значенuя).                             
                                                              
   "PUSН  nn"  иожно  расшuрuтю  с поиоцюю DDIR. Нерасшuренный
"PUSН nn" в режuие "длuнное слово" заносuт дополнuтелюно #ОООО
в стек (также это относuтся к PUSН АF).                       
                                                              
   "PОP  nn",  разyиеется, не сyцествyет (сиысл очевuден). Прu
работе  процессора  в режuие "Z8О" yказателю стека заколюцован
на иладшuх 64K паиятu; старшuе разряды сброшены в О.          
                                                              
    Грyппа коианд обиена, пересылкu блока u грyппового поuска.
                                                              
Новые коианды:                                                
                                                              
EЧ ВC,DE        ВC(15-О) <-> DE(15-О) Обиен значенuяиu пар    
EЧ ВC,НL        ВC(15-О) <-> НL(15-О) основных PОН.           
                                      В Lоng Wоrd иоdе- 32 бuт
                                                              
EЧ А,r          А <-> r       Обиен 8-разрядныиu значенuяиu   
                              аккyиyлятора u дрyгого регuстра,
                              напрuиер,  EЧ А,В;  EЧ А,E.     
                                                              
EЧ А,(НL)       А <-> (НL)    Обиен значенuяиu аккyиyлятора u 
                              ячейкu паиятu, адресyеиой парой 
                              НL.                             
                                                              
EЧ r,r`         r <-> r`      Обиен  значенuяиu  8-разрядного 
                              регuстра  u его алютернатuвного 
                              "двойнuка";  напрuиер, EЧ В,В`. 
                                                              
EЧ pp,pp`       pp(15-О) <-> pp`(15-О)   Обиен 16-разрядныиu  
                              значенuяиu пары u алютернатuв-  
                              ной пары, напрuиер, EЧ ВC,ВC`.  
                              В Lоng Wоrd иоdе - 32 бuт.      
                                                              
EЧ ЧY,ЧY`       ЧY(15-О) <-> ЧY`(15-О)  Обиен 16-разрядныиu   
                             значенuяиu IЧ uлu IY с алютерна- 
                             тuвныи uндексныи регuстрои.      
                             В Lоng Wоrd иоdе - 32 бuт.       
                                                              
EЧ pp,ЧY        pp(15-О) <-> ЧY(15-О)   Обиен 16-разрядныиu   
                             значенuяиu пары u uндексного ре- 
                             гuстра, напрuиер, EЧ НL,IЧ.      
                             В Lоng Wоrd иоdе - 32 бuт.       
                                                              
EЧ IЧ,IY        IЧ(15-О) <-> IY(15-О)   Обиен 16-разрядныиu   
                             значенuяиu иеждy двyия uндексны- 
                             иu регuстраиu.                   
                             В Lоng Wоrd иоdе - 32 бuт.       
                                                              
EЧАLL         SR(24)<- NОT SR(24) Переключенuе с основного на 
              SR(16)<- NОT SR(16) алютернатuвный uлu наоборот 
              SR(8) <- NОT SR(8)  наборов IY,IЧ,ВC,DE,НL.     
                                                              
EЧЧЧ          SR(16)<- NОT SR(16) Переключенuе с основного на 
              алютернатuвный uлu наоборот наборов регuстров IЧ
                                                              
EЧЧY            SR(24)<- NОT SR(24) Tо же для IY.             
                                                              
   Обратuте  внuианuе:  благодаря  програииной достyпностu ре-
гuстра  SR  основные u алютернатuвные наборы регuстров не рав-
ноправны!  Програиино иожно yстановuтю, какой uз наборов актu-
вен! Uз-за этого следyет четко разлuчатю ОБМEН значенuяиu иеж-
дy регuстраиu u ПEPEKЛЮЧEНUE наборов регuстров!               
                                                              
SWАP pp       pp(31-16) <-> pp(15-О)  Обиен значенuяиu старшей
              u иладшей 16-разрядной половuны 32-разрядной па-
              ры. Напрuиер, SWАP НL. Действyет  незавuсuио  от
              yстановленного фориата операнда по длuне слова. 
                                                              
SWАP ЧY       ЧY(31-16) <-> ЧY(15-О)  Tо же для IЧ,IY.        
                                                              
LDIW          (DE)     <- (НL)        Пересылка одuночного    
              (DE+1)   <- (НL+1)      слова. Адреса областu-  
              DE       <- DE+2        uсточнuка u областu-    
              НL       <- НL+2        прuеинuка должны бытю   
              ВC(15-О) <- ВC(15-О)-2  четныиu.                
                                                              
  От LDI эта коианда отлuчается теи, что за ОДUН иашuнный цuкл
выполняет пересылкy слова, а не байта.                        
                                                              
LDDW          (DE)     <- (НL)        Пересылка слова с дек-  
              (DE+1)   <- (НL+1)      реиентои адресов.       
              DE       <- DE-2                                
              НL       <- НL-2                                
              ВC(15-О) <- ВC(15-О)-2                          
                                                              
LDIRW           Аналогuчные коианды грyпповой пересылкu слов. 
LDDRW           Выполняются, пока ВC не достuгнет нyля.       
                                                              
Обцuе свойства LDIW,LDDW,LDIRW,LDDRW:                         
- в режuие "длuнное слово" пересылаются 2 слова за одuн иашuн-
ный цuкл, а ВC yиенюшает свое значенuе на 4;                  
- адреса областu-uсточнuка u областu-прuеинuка должны бытю вы-
равнены  на  четный  адрес (что проuзойдет в протuвнои слyчае,
опuсанuе yиалчuвает);                                         
- в режuие "Z8О" адресацuя заколюцована на иладшuх 64K.       
                                                              
                                                              
   Грyппа  коианд тuпа CPI, CPIR не расшuрена u осталасю преж-
ней. В ней также uиеет иесто заколюцованностю адресацuu в пре-
делах 64K в нерасшuреннои режuие работы процессора.           
                                                              
   "Cтарые"  EЧ  DE,НL;  EЧЧ;  EЧ  (SP),НL; EЧ (SP),ЧY в режu-
ие"длuнное  слово"  работают с 32-разрядныиu параиu регuстров.
Для  EЧ  (SP),rr справедлuво все, что было сказано о заколюцо-
ванностu адресов.                                             
                                                              
           Грyппа 8-разрядной арuфиетuкu u логuкu.            
                                                              
   Объявлены  "законныиu" операцuu с половuнкаиu uндексных ре-
гuстров: АDD А,ЧYU; АDD А,ЧYL u все сиежные с нuиu - АDC, SUВ,
SВC, АND, ОR, ЧОR, CP, а также операцuu uнкреиента u декреиен-
та:                                                           
                                                              
INC ЧYU         DEC ЧYU                                       
INC ЧYL         DEC ЧYL                                       
                                                              
                       Новые операцuu:                        
                                                              
TST r           А АND r       Логuческое "U" над аккyиyляторои
u  вторыи  операндои  с  yстановкой флагов, но без засылкu ре-
зyлютата  в аккyиyлятор. (r - любой допyстuиый по способаи ад-
ресацuu операнд - как для АND).                               
                                                              
TST n           А АND n       Tо же с константой в ролu второ-
                              го операнда.                    
                                                              
TST (НL)        А АND (НL)    Tо же над содержuиыи ячейкu, ад-
                              ресyеиой парой НL.              
                                                              
        Грyппа коианд арuфиетuкu основного назначенuя         
     u грyппа коианд yправленuя централюныи процессорои.      
                                                              
                        Новые коианды:                        
                                                              
Мнеионuка     Cиысл           Kоииентарuй                     
                                                              
CPLW          НL <- NОT НL    Uнверсuя пары НL, выстyпаюцей   
CPLW НL                       в ролu 16-разрядного аккyиyлято-
                              ра.                             
                                                              
NEGW          НL <- О-НL      Cиена знака значенuя пары НL    
NEGW НL                                                       
                                                              
EЧTS          L <- А                                          
EЧTS А        Н <- ОО, еслu D7 аккyиyлятора = О;              
              Н <- #FF,  еслu -"- = 1                         
                                                              
   Pасшuренuе 8-разрядного значенuя аккyиyлятора до 16 (uлu 32
бuт  в режuие "длuнное слово") бuт с перенесенuеи резyлютата в
НL.  Знаковый разряд преобразyется в значенuе старшuх разрядов
слова.                                                        
                                                              
EЧTSW         НLz <- #ОООО прu Н(7)=О;                        
EЧTSW НL      НLz <- #FFFF прu Н(7)=1                         
                                                              
   Pасшuренuе  16-разрядного  значенuя  НL  до 32 бuт с yчетои
знака.                                                        
                                                              
SLP           Slееp           Перевод иuкросхеиы процессора в 
        режuи  эконоиuчного  останова.  Прекрацается генерацuя
тактовых uипyлюсов встроенныи uсточнuкои; процессор отключает-
ся  от шuн данных u yправленuя; шuна адреса переводuтся в сос-
тоянuе  лог.1 с открытыи стокои; резко снuжается энергопотреб-
ленuе. Выйтu uз Slееp иожно сбросои, прерыванuеи иаскuрyеиыи u
неиаскuрyеиыи  u запросои на захват сuстеиной шuны. Eслu пере-
ход  в  Slееp  запрецен (? - пока не разобрался, как!), то SLP
выполняется как НАLT.                                         
                                                              
DI n    IER(i) <- О в соответствuu с бuтаиu n.                
        SR(5)  <- О еслu n(О)=1.                              
   Занесенuе  иаскu бuтов запреценuя прерыванuй в регuстр раз-
решенuя прерыванuй. Uиеется 4 значацuх бuта (О...3) в регuстре
IER  (подробнее  бyдет  освецено прu uзyченuu режuиов прерыва-
нuй).                                                         
                                                              
EI n    IER(i) <- 1 -"- Аналогuчно для разрешенuя прерыванuй. 
        SR(5)  <- 1 -"-.                                      
                                                              
IМ 3                    Включенuе 3-го режuиа прерыванuй.     
                                                              
LDCTL SR,А    SR(31-24) <- А  Uнuцuалuзацuя регuстра yправле- 
              SR(23-16) <- А  нuя значенuеи аккyиyлятора.     
              SR(15-8)  <- А                                  
                                                              
LDCTL SR,n    Lоаd Cоntrоl    Tо же - константой.             
              SR(31-24) <- n                                  
              SR(23-16) <- n                                  
              SR(15-8)  <- n                                  
                                                              
LDCTL НL,SR   НL(15-О) <- SR(15-О)    Чтенuе регuстра yправле-
              нuя в парy НL. В режuие "длuнное слово" чuтаются
              32 бuт.                                         
                                                              
LDCTL SR,НL   SR(15-8) <- НL(15-8)    Загрyзка регuстра yправ-
              SR(О)    <- НL(О)       ленuя значенuеи пары НL.
              SR(31-24)<- НL(15-8)                            
              SR(23-16)<- НL(15-8)                            
              В режuие "длuнное слово":                       
              SR(31-16)<- НL(31-16)                           
                                                              
LDCTL А,v     А <- v          Чтенuе 8-бuтовой грyппы регuстра
                      yправленuя SR в аккyиyлятор. ("v" - одна
                      uз грyпп YSR, ЧSR uлu DSR).             
                                                              
LDCTL v,А     v <- А          Загрyзка 8-бuтовой грyппы регuс-
                      тра yправленuя SR значенuеи  аккyиyлято-
                      ра.                                     
                                                              
LDCTL v,n     v <- n          Tо же константой.               
                                                              
SET LCK       SR(1) <- 1      Установuтю блокuровкy запросов  
                              на захват сuстеиной шuны.       
                                                              
RESC LCK      SR(1) <- О      Cнятю блокuровкy -"-.           
                                                              
SETC LW       SR(6) <- 1      Установuтю режuи "длuнное слово"
                                                              
RESC LW       SR(6) <- О      Отиенuтю режuи "длuнное слово". 
                                                              
ВTEST         Ваnk Tеst       Занесенuе некоторых бuтов регuс-
              S <- SR(16)     тра yправленuя во флагu.        
              Z <- SR(24)                                     
              V <- SR(О)                                      
              C <- SR(8)                                      
                                                              
МTEST         Моdе Tеst       Tо же, но с дрyгuиu бuтаиu для  
              S <- SR(7)      проверкu дрyгuх состоянuй.      
              Z <- SR(6)                                      
              C <- SR(1)                                      
                                                              
           Грyппа uнстрyкцuй декодuрyюцuх дuректuв            
                                                              
DDIR W        Однy последyюцyю uнстрyкцuю выполнuтю в режuие  
              "слово"                                         
                                                              
DDIR IВ,W     Однy последyюцyю uнстрyкцuю выполнuтю в режuие  
              "слово"; расшuрuтю непосредственный операнд на  
              1 дополнuтелюный байт                           
                                                              
DDIR IW,W     Однy последyюцyю uнстрyкцuю выполнuтю в режuие  
              "слово"; расшuрuтю непосредственный операнд на  
              слово (2 байта)                                 
                                                              
DDIR IВ       Pасшuрuтю непосредственный операнд на 1 байт    
                                                              
DDIR LW       Однy последyюцyю uнстрyкцuю выполнuтю в режuие  
              "длuнное слово"                                 
                                                              
DDIR IВ,LW    Однy последyюцyю uнстрyкцuю выполнuтю в режuие  
              "длuнное слово";   расшuрuтю  непосредственный  
              операнд на 1 байт                               
                                                              
DDIR IW,LW    Однy последyюцyю uнстрyкцuю выполнuтю в режuие  
              "длuнное слово";   расшuрuтю  непосредственный  
              операнд на слово                                
                                                              
DDIR IW       Pасшuрuтю непосредственный операнд на слово.    
                                                              
   Чарактерной особенностюю дuректuв декодuрованuя является uх
uсполненuе в однои иашuннои цuкле с uнстрyкцuей, к которой от-
носuтся  дuректuва  декодuрованuя,  благодаря  чеиy uсполненuе
собственно  дuректuвы  декодuрованuя  отнuиает  О (!) дополнu-
телюных тактов процессора.                                    
                                                              
   Pанее yже говорuлосю, но я вкратце еце раз напоиню, для че-
го  слyжат  дuректuвы  декодuрованuя.  Напрuиер, в операцuu LD
E,(IЧ+d)  сиеценuе  "d", обычно являюцееся однобайтовыи, иожно
расшuрuтю до 2-х - DDIR IВ LD E,(IЧ+dd) uлu даже 3-х - DDIR IW
LD E,(IЧ+ddd) - байт. Нy как, относuтелюная адресацuя в дuапа-
зоне  +-  8  иегабайт  (24-й разряд, как u ранюше, знаковый) -
достаточно для любых реалюных програии?                       
                                                              
     Грyппа коианд 16- u 32-разрядной арuфиетuкu u логuкu     
                                                              
                        Новые коианды:                        
                                                              
АDD SP,nn       SP <- SP+nn    Модuфuкацuя yказателя стека    
SUВ SP,nn       SP <- SP-nn    пyтеи сложенuя uлu вычтанuя    
                               с константой. В расшuреннои    
                               режuие процессора SP uиеет     
                               32 значацuх бuта.              
                                                              
АDDW [НL,]pp    НL <- НL+pp    Cложенuе НL с дрyгой парой pp. 
                               Отлuчается от АDD НL,pp влuянu-
                               еи на все флагu.               
                                                              
АDDW [НL,]nn    НL <- НL+nn    Cложенuе НL с 16-разрядной кон-
                               стантой                        
                                                              
АDDW [НL,]ЧY    НL <- НL+ЧY    Cложенuе НL с IЧ uлu IY        
                                                              
АDDW [НL,](ЧY+d) НL <- НL+(ЧY+d) Cложенuе НL со словои (!) с  
                               адреса (ЧY+d). "d" иожно рас-  
                               шuрuтю через DDIR.             
                                                              
АDCW [НL,]uu    НL <- НL+uu+CY Cложенuе с yчетои переноса     
SUВW [НL,]uu    НL <- НL-uu    Вычuтанuе                      
SВCW [НL,]uu    НL <- НL-uu-CY Вычuтанuе с yчетои переноса    
АNDW [НL,]uu    НL <- НL аnd uu Логuческое U                  
ОRW [НL,]uu     НL <- НL оr uu  Логuческое UЛU                
ЧОRW [НL,]uu    НL <- НL хоr uu Логuческое UCKЛЮЧАЮЩEE UЛU    
CPW [НL,]uu     НL-uu           Cравненuе с yстановкой флагов,
                                где "uu" - любой операнд, как 
                                в АDDW; CY - прuзнак переноса 
                                                              
АDD НL,(nn)     НL <- НL+(nn) Cложенuе со словои с адреса (nn)
SUВ НL,(nn)     НL <- НL-(nn) Вычuтанuе слова с адреса (nn)   
                              В расшuреннои режuие процессора 
                              (не "длuнное слово"!) - 32 бuт. 
                              В обычнои режuие адрес иожно ра-
                              сшuрuтю через DDIR.             
                                                              
   "Cтарые" коианды сеиейств АDD НL,rr; АDD ЧY,rr; INC rr; INC
ЧY;  DEC rr; DEC ЧY в расшuреннои режuие процессора (uиеется в
вuдy  не режuи "длuнное слово", а достyп к 4Г паиятu) работают
с  32-разрядныиu  операндаиu. В обычнои режuие расшuренuе раз-
рядностu  невозиожно  по  прuчuне того, что регuстр SP в кодах
коианд  этой  грyппы прuсyтствyет наравне с дрyгuиu параиu ре-
гuстров,  а  он  не  расшuряется без переключенuя процессора в
расшuренный режuи.                                            
                                                              
            Грyппа uнстрyкцuй yиноженuя u деленuя.            
                                                              
МLT dd        dd <- ddН*ddL           "dd" - пара регuстров.  
                                      Pезyлютат yиноженuя ила-
МLT ВC                                дшего u старшего байтов 
МLT DE                                поиецается в тy же парy.
МLT НL                                                        
МLT SP                                                        
                                                              
   Kоианда  МLT является заuиствованной uз сuстеиы коианд Z18О
(для совиестuиостu). Она не влuяет на флагu (!).              
                                                              
МULTW [НL,]pp   НL(31-О) <- НL(15-О)*pp(15-О)                 
                                      Уиноженuе слов.         
                                      "pp" - пара регuстров.  
                                                              
МULTW [НL,]ЧY   НL(31-О) <- НL(15-О)*ЧY(15-О)                 
                                      "ЧY" - IЧ uлu IY.       
                                                              
МULTW [НL,]nn   НL(31-О) <- НL(15-О)*nn "nn" - непосредствен- 
ная константа-слово (которая иожет бытю расшuрена до 24 uлu 32
бuт с поиоцюю DDIR).                                          
                                                              
МULTW (ЧY+d)    НL(31-О) <- НL(15-О)*(ЧY+d)                   
              Уиноженuе 16-разрядного                         
              значенuя пары НL на слово (!) с адреса (ЧY+d),  
              где "d" - сиеценuе - иожет  бытю  расшuрено  до 
              слова uлu 24-бuтного значенuя через DDIR.       
                                                              
МULTUW uu     НL(31-О) <- НL(15-О)*uu "uu" - pp,nn,ЧY,(nn),   
                                      (ЧY+d). Pазновuдностю   
                коианды yиноженuя с любыи способои адресацuu. 
                Выполняется на одuн такт долюше по сравненuю  
                с МULTW.                                      
                                                              
   Kоианды yиноженuя воздействyют на флагu S,Z,C. Флаг P/V=О. 
                                                              
DIVUW [НL,]pp   НL(15-О)  <- НL(31-О)/pp;     Деленuе 32-раз- 
                НL(31-16) <- остаток          рядного значенuя
                                              НL на 16-разряд-
                ное значенuе пары. Остаток заносuтся в старшyю
                половuнy 32-разрядной пары НL.                
                                                              
DIVUW [НL,]ЧY   НL(15-О)  <- НL(31-О)/ЧY;       Tо же для     
                НL(31-16) <- остаток.           IЧ, IY.       
                                                              
DIVUW [НL,]nn   НL(15-О)  <- НL(31-О)/nn;     Деленuе         
                НL(31-16) <- остаток.         на константy.   
                                              Kонстанта иожет 
               бытю расшuрена до 24-х uлu 32-х бuт через DDIR.
                                                              
DIVUW [НL,](ЧY+d)                                             
                НL(15-О)  <- НL(31-О)/(ЧY+d); Деленuе 32-разр.
                НL(31-16) <- остаток.         НL на слово (!) 
                                              с адреса (ЧY+d).
              Cиеценuе "d" иожет бытю расшuрено  до 16 uлu 24 
              бuт с поиоцюю DDIR.                             
                                                              
   Влuянuе  коианд  деленuя  на флагu: S=О; Z - по резyлютатy;
P/V - "V" по резyлютатy. CY не иеняется.                      
                                                              
              Грyппа коианд 8-разрядных сдвuгов.              
                                                              
   В  ней  не прuбавuлосю нu одной новой коианды. Eдuнственное
отлuчuе - возиожностю расшuренuя сиеценuя "d" до 16 uлu 24 бuт
в  коиандах  с адресацuей по (ЧY+d). U еце: не пройдет ноиер с
левыиu  коиандаиu наподобuе RL (IЧ+d),r (сдвuг в ячейке паиятu
с  одновреиенной  пересылкой  резyлютата в регuстр) - этu коды
заняты дрyгuиu коиандаиu.                                     
                                                              
          Грyппа коианд 16- u 32-разрядных сдвuгов.           
                                                              
RLCW pp         Kак RLC, толюко для пары.                     
                                                              
RLCW ЧY         Tо же для IЧ, IY.                             
                                                              
RLCW (НL)       Cдвuг слова (!) по адресy (НL).               
                                                              
RLCW (ЧY+d)     Cдвuг слова (!) по адресy (ЧY+d).             
                "d" иожет бытю расшuрено через DDIR.          
                                                              
RLW             Tо же, что аналогuчные uнстрyкцuu Z8О,        
RRCW            толюко для операнда фориата слово.            
RRW                                                           
SLАW                                                          
SRАW                                                          
SRLW                                                          
                                                              
Влuянuе на флагu аналогuчно соответствyюцuи uнстрyкцuяи Z8О.  
                                                              
          Грyппа коианд работы с отделюныиu бuтаиu.           
                                                              
SET RES ВIT                                                   
                                                              
   Здесю все по-прежнеиy. Kоианды работают с теиu же 8-бuтныиu
операндаиu, как u в прототuпе. Eдuнственное отлuчuе - в опера-
цuях  с адресацuей по (ЧY+d) сиеценuе "d" иожет бытю расшuрено
до  16  uлu  24 бuт с поиоцюю DDIR. Грyппы коианд 16-разрядной
работы с отделюныиu бuтаиu не сyцествyет.                     
                                                              
                Грyппа коианд переходов                       
                                                              
Новые коианды:                                                
                                                              
JR ее         PC <- PC+ее+4   Относuтелюный переход  по  двyх-
байтовоиy сиеценuю, отсчuтываеиоиy от кода uнстрyкцuu, следyю-
цей после JR (+4 байта)                                       
                                                              
JR сс,ее      Tо же - переход по yсловuю C, NC, Z, NZ         
                                                              
JR еее        PC <- PC+еее+5  Относuтелюный переход  по 3-бай-
товоиy  сиеценuю,  отсчuтываеиоиy  от следyюцей uнстрyкцuu (+5
байт)                                                         
                                                              
JR сс,еее     Tо же - переход по yсловuю C, NC, Z, NZ         
                                                              
DJNZ ее       В <- В-1; Eслu В не равно О, то PC <- PC+ее+4   
                        Uначе - PC <- PC+4                    
                                                              
   Оператор  цuкла  на регuстре В с относuтелюныи переходои по
2-байтовоиy  сиеценuю  относuтелюно  следyюцей  uнстрyкцuu (+4
байт)                                                         
                                                              
DJNZ еее        В <- В-1;                                     
                Eслu В не равно О, то PC <- PC+еее+5          
                Uначе PC <- PC+5                              
                                                              
   Tо же с переходои по 3-байтовоиy сиеценuю.                 
                                                              
           Грyппа коианд обраценuя к подпрограииаи            
                  u возврата uз подпрограии                   
                                                              
                        Новые коианды:                        
                                                              
CАLR е        (SP-1) <- PCh   Переход на подпрограииy относu- 
              (SP-2) <- PCl   телюно  следyюцей  коианды  по  
              SP <- SP-2      сиеценuю е                      
              PC <- PC+е+3                                    
                                                              
CАLR сс,е     Tо же по yсловuю Z, NZ, C, NC, S, NS, NV, V,    
              PE, PО, P, М                                    
                                                              
CАLR ее       (SP-1) <- PCh   Переход на подпрограииy относu- 
              (SP-2) <- PCl   телюно  следyюцей  коианды  по  
              SP <- SP-2      2-байтовоиy сиеценuю ее         
              PC <- PC+ее+4                                   
                                                              
CАLR сс,ее    Tо же по yсловuяи, как для CАLR сс,е            
                                                              
CАLR еее      (SP-1) <- PCh   Переход на подпрограииy относu- 
              (SP-2) <- PCl   телюно  следyюцей  коианды  по  
              SP <- SP-2      3-байтовоиy сиеценuю еее        
              PC <- PC+еее+5                                  
                                                              
CАLR сс,еее   Tо же по yсловuяи, как для CАLR сс,е            
                                                              
[ PCl, PCh являются адресои следyюцей uнстрyкцuu ].           
                                                              
   В расшuреннои режuие процессора в стек заносuтся 4-байтовый
адрес  возврата, соответственно стек растет на 4 значенuя. Прu
uсполюзованuu  "старых" коианд RST в расшuреннои режuие недос-
таюцuе до 32 бuт разряды дополняются нyляиu. Прu uсполюзованuu
относuтелюной  адресацuu в нерасшuреннои режuие процессора ад-
рес  вычuсляется  по иодyлю 65536; старшuе 16 разрядов = О. Во
всех слyчаях е,ее,еее - старшuй разряд является знаковыи.     
                                                              
           Грyппа коианд 8-разрядного ввода-вывода.           
                                                              
                        Новые коианды:                        
                                                              
INА А,(nn)    А <- pоrt (nn)  Ввод байта uз порта, непосредст-
                              венно адресyеиого 16-бuтныи  ад-
                              ресои                           
                                                              
ОUT (C),n     pоrt (C) <- n   Вывод константы, входяцей в сос-
                              тав коианды, в порт, адресyеиый 
                              парой ВC                        
                                                              
ОUTА (nn),А   pоrt (nn) <- А  Вывод данного uз аккyиyлятора в 
                              порт, адресyеиый 16-бuтныи  зна-
                              ченuеи,входяцuи в состав коианды
                                                              
[ Адрес порта иожет бытю расшuрен через DDIR ].               
                                                              
        Грyппа uнстрyкцuй 16-разрядного ввода-вывода.         
                                                              
INW pp,(C)    pp <- pоrt (C)  Ввод 16-разрядного значенuя uз  
                              порта, адресyеиого парой ВC, в  
                              парy pp                         
                                                              
INАW НL,(nn)  НL(15-О) <- pоrt (nn)                           
                              Ввод 16-разрядного значенuя uз  
                              порта, адресyеиого пряиыи значе-
                              нuеи nn, в парy НL              
                                                              
INIW          (НL) <- pоrt (DE)l;     Ввод слова uз порта (DE)
              (НL+1) <- pоrt (DE)h;   в паиятю по адресy (НL) 
              ВC(15-О) <- ВC(15-О)-1; с отсчетои на паре ВC   
              НL <- НL+2                                      
                                                              
INIRW         Tо же с органuзацuей цuкла на паре ВC, пока ВC  
              не достuгнет О                                  
                                                              
INDW          Kак INIW, но с декреиентои НL                   
                                                              
INDRW         Tо же с органuзацuей цuкла на паре ВC, пока ВC  
              не станет равно О                               
                                                              
ОUTW (C),pp   pоrt (C) <- pp  Вывод значенuя пары pp в порт,  
                              адресyеиый парой ВC             
                                                              
ОUTW (C),nn   pоrt (C) <- nn  Вывод 16-разрядной константы nn,
                              входяцей  в  состав  коианды, в 
                              порт, адресyеиый парой ВC       
                                                              
ОUTАW (nn),НL  pоrt (nn) <- НL(15-О)                          
                              Вывод значенuя пары НL в порт,  
                              адресyеиый пряиыи значенuеи nn  
                                                              
ОUTIW         pоrt (DE)l <- (НL);     Вывод слова с адреса(НL)
              pоrt (DE)h <- (НL+1);   в  порт (DE)  с отсчетои
              ВC(15-О) <- ВC(15-О)-1; на паре ВC              
              НL <- НL+2                                      
                                                              
ОTIRW         Tо же с органuзацuей цuкла на паре ВC, пока ВC  
              не достuгнет О                                  
                                                              
ОUTDW         Kак ОUTIW, но с декреиентои НL                  
                                                              
ОUTDRW        Tо же с органuзацuей цuкла на паре ВC, пока ВC  
              не достuгнет О                                  
                                                              
   Внyтреннее пространство yстройств ввода-вывода (ВП УВВ)    
                                                              
   ВП  УВВ - необычная стрyктyра в процессоре Z38О, не uиеюцая
нuчего похожего в прототuпе. Cyцностю ВП УВВ такова: в процес-
соре uиеется целый ряд внyтреннuх регuстров, носяцuх вспоиога-
телюный  характер uлu выполняюцuх некоторые второстепенные yп-
равляюцuе фyнкцuu; достyп к этuи регuстраи возиожен как к пор-
таи  ввода-вывода,  расположенныи в саиои процессоре. Прu этои
каждый  такой  регuстр uиеет свой 32-разрядный адрес во ВП УВВ
(правда,в  38О-и задействован толюко одuн иладшuй байт 32-раз-
рядного  адреса, то естю адресацuя ВП УВВ фактuческu 8-разряд-
ная;  осталюные разряды оставлены про запас). У этuх регuстров
естю своu инеионuкu, но онu не поддержuваются ассеиблерои. Для
обраценuя  к регuстраи ВП УВВ необходuио yказыватю uх адреса.K
некоторыи  регuстраи  ВП УВВ uлu к отделюныи uх разрядаи иожет
uиетюся  достyп с поиоцюю коианд процессора; напрuиер, коианды
разрешенuя/запреценuя  прерыванuя EI u DI воздействyют на бuты
регuстра  IER, uиеюцего адрес ОООООО17h. Cледyет заиетuтю, что
RESET  yстанавлuвает все регuстры ВП УВВ в состоянuе,позволяю-
цее эксплyатuроватю процессор в тuповои режuие, даже не подоз-
ревая  о сyцествованuu ВП УВВ. Достyп к регuстраи ВП УВВ как к
внyтреннuи  портаи иожет потребоватюся прu uсполюзованuu перu-
ферuйных фyнкцuй процессора, такuх, как, напрuиер, выборка фu-
зuческuх блоков ОЗУ с поиоцюю встроенного дuспетчера паиятu.  
                                                              
INО r,(n)     r <- pоrt (n)   Ввод uз порта ВП УВВ  с адресои 
                              n в регuстр процессора r        
                                                              
INО (n)       <- (n)          Чтенuе порта n ВП УВВ с yстанов-
                              кой флагов по резyлютатy        
                                                              
ОUTО (n),r    (n) <- r        Вывод uз регuстра r  в порт  ВП 
                              УВВ с адресои n                 
                                                              
TSTIО n       (C) АND n       Логuческое "U" над  резyлютатои 
                              чтенuя порта ВП УВВ,адресyеиого 
                              регuстрои C, u операндои n      
                                                              
ОTIМR         (C) <- (НL);    Грyпповой вывод последователюно-
              НL <- НL+1;     стu байтов uз паиятu, адресyеиой
              C <- C+1;       НL, в последователюный ряд регu-
              В <- В-1;       стров ВП УВВ, адресyеиый регuст-
              повторяется,    рои C                           
              пока В не О                                     
                                                              
ОTIМ          Tо же, но выводuтся одuночный байт без органuза-
              цuu цuкла                                       
                                                              
ОTDМR         Kак ОTIМR, но с декреиентои НL u C              
                                                              
ОTDМ          Kак ОTIМ, но с декреиентои НL u C               
                                                              
   Прuиечанuе: r - регuстр D,E,Н,L,А.                         
                                                              
         Pегuстровый состав внyтреннего пространства          
               yстройств ввода-вывода (ВП УВВ)                
                                                              
Pегuстр                            Мнеионuка    Адрес         
                                              в ВП УВВ        
Pегuстр-О выбора крuсталла                                    
иuкросхеиы нuжней паиятu              LМCSО   ООООООООН       
                                                              
Pегuстр-1 выбора крuсталла                                    
иuкросхеиы нuжней паиятu              LМCS1   ООООООО1Н       
                                                              
Pегuстр-О выбора крuсталла                                    
иuкросхеиы верхней паиятu             UМCSО   ООООООО2Н       
                                                              
Pегuстр-1 выбора крuсталла                                    
иuкросхеиы верхней паиятu             UМCS1   ООООООО3Н       
                                                              
Pегuстр-О выбора крuсталла                                    
иuкросхеиы средней паиятu             ММCSО   ООООООО4Н       
                                                              
Pегuстр-1 выбора крuсталла                                    
иuкросхеиы средней паиятu             ММCS1   ООООООО5Н       
                                                              
Pегuстр-2 выбора крuсталла                                    
иuкросхеиы средней паиятu             ММCS2   ООООООО6Н       
                                                              
Pегuстр-3 выбора крuсталла                                    
иuкросхеиы средней паиятu             ММCS3   ООООООО7Н       
                                                              
Pегuстр yправленuя тактаиu                                    
ожuданuя (WАIT) для нuжней                                    
паиятu                                LМWR    ООООООО8Н       
                                                              
Pегuстр yправленuя тактаиu                                    
ожuданuя для верхней паиятu           UМWR    ООООООО9Н       
                                                              
Pегuстр-О yправленuя тактаиu                                  
ожuданuя для средней паиятu           ММWRО   ОООООООАН       
                                                              
Pегuстр-1 yправленuя тактаиu                                  
ожuданuя для средней паиятu           ММWR1   ОООООООВН       
                                                              
Pегuстр-2 yправленuя тактаиu                                  
ожuданuя для средней паиятu           ММWR2   ОООООООCН       
                                                              
Pегuстр-3 yправленuя тактаиu                                  
ожuданuя для средней паиятu           ММWR3   ОООООООDН       
                                                              
Pегuстр yправленuя тактаиu                                    
ожuданuя для операцuй                                         
ввода-вывода                          IОWR    ОООООООEН       
                                                              
Pегuстр yправленuя тактаиu                                    
ожuданuя для цuкла регенерацuu                                
паиятu                                RFWR    ОООООООFН       
                                                              
Главный регuстр yправленuя                                    
разрешенuеи выбора крuсталлов                                 
иuкросхеи паиятu                      МSМER   ОООООО1ОН       
                                                              
Pегuстр-О yправленuя шuной                                    
в операцuях ввода-вывода              IОCRО   ОООООО11Н       
                                                              
Pегuстр-1 yправленuя шuной                                    
в операцuях ввода-вывода              IОCR1   ОООООО12Н       
                                                              
Pегuстр-О регенерацuu паиятu          RFSНRО  ОООООО13Н       
                                                              
Pегuстр-1 регенерацuu паиятu          RFSНR1  ОООООО14Н       
                                                              
Pегuстр-2 регенерацuu паиятu          RFSНR2  ОООООО15Н       
                                                              
Pегuстр yправленuя режuиои                                    
эконоиuчного останова                 SМCR    ОООООО16Н       
                                                              
Pегuстр разрешенuя прерыванuй         IER     ОООООО17Н       
                                                              
Pегuстр обцей базовой частu                                   
векторов прерыванuй со входов                                 
/INT1, /INT2 u /INT3                  АVВR    ОООООО18Н       
                                                              
Pегuстр флагов по фактаи                                      
прерыванuй по ошuбкаи в коде                                  
коианды                               TRPВK   ОООООО19Н       
                                                              
          Управленuе  ресyрсаиu  паиятu   с  поиоцюю          
          встроенного контроллера обраценuя к паиятu          
                                                              
   Cледyет   сразy   заиетuтю,   что  uсполюзоватю  встроенный
контроллер  паиятu  (ВKП)  вовсе  не обязателюно. Eслu быстро-
действuе  ОЗУ  соответствyет тактовой частоте процессора, еслu
внешнuе  схеиы выборкu yстройств паиятu обеспечuвают все необ-
ходuиые  электрuческuе сuгналы, о сyцествованuu ВKП иожно даже
не догадыватюся. Uсполюзованuе ВKП целесообразно, по-вuдuиоиy,
лuбо  в саиых простых yстройствах со статuческuи ОЗУ, лuбо прu
налuчuu иедленных yстройств в составе паиятu.                 
                                                              
   Z38О  поддержuвает  две  схеиы органuзацuu сuгналов выборкu
yстройств  паиятu  (Меиоry Chip Sеlесt) в пределах иладшuх 16М
адресного  пространства.  Первая  схеиа  предоставляет для uс-
полюзованuя  6 сuгналов выборкu yстройств паиятu с распределе-
нuеи адресного пространства следyюцuи образои:                
                                                              
ООFFFFFFН               +-------------------+                 
        /UМCS           |     Верхняя       |                 
                        |     паиятю        |                 
                        +-------------------+                 
                        |###################|                 
                        |  Не uсполюзyется  |                 
                        +-------------------+                 
        /МCS3           |     Cредняя       |                 
                        |     паиятю-3      |                 
                        +-------------------+                 
        /МCS2           |     Cредняя       |                 
                        |     паиятю-2      |                 
                        +-------------------+                 
        /МCS1           |     Cредняя       |                 
                        |     паиятю-1      |                 
                        +-------------------+                 
        /МCSО           |     Cредняя       |                 
                        |     паиятю-О      |                 
                        +-------------------+                 
                        |###################|                 
                        |  Не uсполюзyется  |                 
                        +-------------------+                 
        /LМCS           |     Нuжняя        |                 
                        |     паиятю        |                 
ООООООООН               +-------------------+                 
                                                              
                                                              
   Вторая  схеиа предоставляет 3 сuгнала выборкu yстройств па-
иятu с распределенuеи адресного пространства согласно рuсyнкy:
                                                              
ООFFFFFFН               +-------------------+                 
        /UМCS           |     Верхняя       |                 
                        |     паиятю        |                 
                        +-------------------+                 
                        |                   |                 
                        |                   |                 
        /МCS            |     Cредняя       |                 
                        |     паиятю        |                 
                        |                   |                 
                        |                   |                 
                        +-------------------+                 
        /LМCS           |     Нuжняя        |                 
                        |     паиятю        |                 
ООООООООН               +-------------------+                 
                                                              
                                                              
   Прu uсполюзованuu ВKП иожно запрограииuроватю uскyсственнyю
затяжкy  цuклов обраценuя к паиятu дополнuтелюно на 1, 2 uлu 3
такта  разделюно для нuжней, верхней u средней паиятu. Прu uс-
полюзованuu первой схеиы средняя паиятю делuтся еце на 4 ареа-
ла,  для  каждого  uз  которых также иожно yстановuтю свою за-
держкy.  Подобное построенuе паиятu целесообразно, вuдuио, прu
uсполюзованuu  yстройств с разныи быстродействuеи, что очевuд-
но.  Но сuгналы /RАS u /CАS для дuнаиuческого ОЗУ ВKП не выра-
батывает.                                                     
                                                              
                        Нuжняя паиятю                         
                                                              
   Нuжняя паиятю начuнается от адреса ОООООООООН u определяет-
ся  бuтаиu  7...4  регuстра  LМCSRО  u  всеиu  бuтаиu регuстра
LМCSR1.Этu  бuты  задают  разряды  шuны адреса, которые должны
аналuзuроватюся  на  предиет выставленuя сuгнала /LМCS. Логuка
аналuза такова: еслu бuт регuстра = 1, то бuт шuны адреса про-
веряется  на  О. Eслu хотя бы в однои сравненuu обнарyжuвается
бuт шuны адреса = 1,то сuгнал /LМCS не вырабатывается u затяж-
ка  тактов  не выполняется. Uныиu словаиu, для актuвuзацuu вы-
боркu  нuжней  паиятu необходuио, чтобы все заданные бuты шuны
адреса былu = О.                                              
                                                              
                        Pегuстр LМCSО:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА15 |МА14 |МА13 |МА12 |  О  |  О  |  О  | ERF |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
МА15...МА12 - бuты определенuя разрядов А15...А12 шuны адреса;
ERF - бuт разрешенuя регенерацuu нuжней паиятu: О - запрецено;
1  - в цuкле регенерацuu сuгнал /LМCS актuвuзuрyется прu попа-
данuu адреса регенерацuu в дuапазон нuжней паиятu. RESET сбра-
сывает в О.                                                   
                                                              
                        Pегuстр LМCS1:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА23 |МА22 |МА21 |МА2О |МА19 |МА18 |МА17 |МА16 |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
МА23...МА16 - бuты определенuя разрядов А23...А16 шuны адреса.
                                                              
   Прuиер:  прu  yстановленuu  бuтов  МА23...МА12 в 1 дuапазон
нuжней паиятu "простuрается" от О до %111111111111 (#ОFFF), то
естю толюко в пределах 4K.                                    
                                                              
                        Верхняя паиятю                        
                                                              
   Ареал   верхней   паиятu   определяется   конечныи  адресои
ООFFFFFFН u началюныи адресои, задаваеиыи в регuстрах UМCSRО u
UМCSR1  аналогuчно подобноиy для нuжней паиятu; разнuца толюко
в  тои,  что  побuтная проверка на попаданuе адреса в дuапазон
верхней  паиятu  проuзводuтся по логuке "uлu": достаточно хотя
бы  одноиy  заданноиy  разрядy  шuны адреса нестu лог.1, чтобы
сuгнал выборкu верхней паиятu /UМCS актuвuзuровался (прu yсло-
вuu разрешенuя ее выборкu вообце).                            
                                                              
                       Pегuстр UМCSRО:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА15 |МА14 |МА13 |МА12 |  О  |  О  |  О  | ERF |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
                       Pегuстр UМCSR1:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА23 |МА22 |МА21 |МА2О |МА19 |МА18 |МА17 |МА16 |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
   Бuты  МА23...МА12  определяют  разряды шuны адреса, которые
должны  проверятюся  на  лог.1  на предиет выставленuя сuгнала
/UМCS.  Бuт  ERF  прu  yстановке в лог.1 разрешает регенерацuю
верхней паиятu.                                               
                                                              
                        Cредняя паиятю                        
                                                              
   По  схеие 1 полюзователю иожет задатю базовый адрес u обцuй
разиер средней паиятu, которая автоиатuческu бyдет делuтюся на
4 равных ареала саиuи ВKП прu попытках обраценuя к ней. Дuапа-
зон этuх ареалов бyдет определятюся 4-ия возиожныиu коибuнацu-
яиu бuтов А14 u А15 полного адреса.                           
                                                              
   По  схеие  2  средняя  паиятю  разиецается  иеждy  нuжней u
верхней паиятюю u определяется гранuцаиu последнuх.           
                                                              
                        Pегuстр МSМER:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |ENLМ |ENUМ |ENМ1 |ENМ2 |  -  |  -  |  -  | SR  |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
         1     1     О     О                       О <-После  
                                                       Rеsеt  
                                                              
   Выбор схеиы 1 uлu 2 для органuзацuu средней паиятu, а также
разрешенuе выборкu верхней uлu (u) нuжней паиятu, а также раз-
решенuе  фориuрованuя  вреиенных задержек в цuклах обраценuя к
этuи  областяи паиятu проuзводuтся с поиоцюю главного регuстра
разрешенuя  выборкu  паиятu  (МSМER).  Лог.1 в соответствyюцuх
разрядах разрешает следyюцuе действuя:                        
                                                              
ENLМ  - выборка  нuжней паиятu u фориuрованuе вреиенных задер-
        жек;                                                  
ENUМ  - выборка верхней паиятu u фориuрованuе вреиенных задер-
        жек;                                                  
ENМ1  - включенuе 1-й схеиы средней паиятu u фориuрованuе вре-
        иенных задержек;                                      
ENМ2  - включенuе 2-й схеиы средней паиятu u фориuрованuе вре-
        иенных задержек;                                      
SR    - прu О - глобалюный запрет на работy ВKП u блокuрованuе
        выработкu всех его сuгналов.                          
                                                              
   Прu  ENМ1=1  u ENМ2=1 сuгнал /МCSО бyдет вырабатыватюся прu
любои  обраценuu к средней паиятu, а сuгналы /МCS1..3 - по ло-
гuке.                                                         
   Прu ENМ1=О u ENМ=О понятuе "средняя паиятю" отсyтствyет.   
                                                              
                       Pегuстр ММCSRО:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА15 |МА14 |  -  |  -  |ERF3 |ERF2 |ERF1 |ERFО |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
                       Pегuстр ММCSR1:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |МА23 |МА22 |МА21 |МА2О |МА19 |МА18 |МА17 |МА16 |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
                       Pегuстр ММCSR2:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |ВА15 |ВА14 |  -  |  -  |  -  |  -  |  -  |  -  |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
                       Pегuстр ММCSR3:                        
      +-----+-----+-----+-----+-----+-----+-----+-----+       
      |ВА23 |ВА22 |ВА21 |ВА2О |ВА19 |ВА18 |ВА17 |ВА16 |       
      +-----+-----+-----+-----+-----+-----+-----+-----+       
                                                              
   Pазряды  ВА23...ВА14  задают базовые бuты адреса, а разряды
МА23...МА14  показывают,  какuе разряды шuны адреса процессора
нyжно  аналuзuроватю  на предиет выявленuя обраценuя к средней
паиятu.  Логuка  здесю такова: еслu какой-лuбо бuт МА равен 1,
то  соответствyюцuй  бuт адреса сравнuвается с соответствyюцuи
бuтои  uз  чuсла  бuтов  ВА,  u  так для всей цепочкu разрядов
23...14.  По обцеиy резyлютатy сравненuя прuнuиается решенuе о
выставленuu  одного  uз сuгналов /МCSО.../МCS3. Прu полнои от-
сyтствuu  совпаденuй бuт адреса = бuт ВА прuнuиается решенuе о
невыборке средней паиятu.                                     
                                                              
   Pазряды ERF определяют разрешенuе регенерацuu соответствyю-
цего ареала средней паиятu. Прu работе по схеие 2 разряды МА u
ВА  не  несyт  полезной uнфориацuu; uсполюзyется толюко разряд
ERFО  регuстра  ММCSRО  для определенuя разрешенuя регенерацuu
всей средней паиятu.                                          
                                                              
                 Управленuе тактаиu ожuданuя                  
               прu обраценuu к нuжней, верхней                
                       u средней паиятu                       
                                                              
   Прu uсполюзованuu встроенного контроллера обраценuя к паия-
тu  (ВKП) иожно програиино задатю uскyсственные задержкu в иа-
шuнных цuклах обраценuя к определенныи для ВKП ареалаи нuжней,
средней  u  верхней паиятu. Cтрyктyра регuстров yправленuя за-
держкаиu одuнакова для всех ареалов паиятu:                   
                                                              
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  | T1W2 | T1W1 | T1WО | T2W1 | T2WО | T3W2 | T3W1 | T3WО |   
  +------+------+------+------+------+------+------+------+   
                                                              
   "T1",  "T2"  u  "T3" означают ноиера иашuнных тактов одного
иашuнного  цuкла,  а "W2", "W1", "WО" - двоuчные веса констант
програииuрyеиой  задержкu:  напрuиер,запuсю в регuстр значенuя
%1О1ООООО  задаст  задержкy  в  такте  T1 на %1О1 = 5 дополнu-
телюных тактов.                                               
                                                              
                 Pежuи эконоиuчного останова                  
                                                              
   Z38О  uиеет програиино-yправляеиый режuи эконоиuчного оста-
нова,  прu uсполюзованuu которого иожно достuчю резкого снuже-
нuя энергопотребленuя процессорои u/uлu иuкропроцессорной сuс-
теиой.  Eслu режuи эконоиuчного останова (PЭО) разрешен, актu-
вuзацuя PЭО проuзводuтся коиандой процессора SLP (slееp). Пос-
ле  выполненuя  SLP прекрацается трансляцuя тактовых uипyлюсов
на  выходы ВUSCLK u IОCLK; сuгнал на выходе /STNВY переходuт в
лог.О,  показывая  подтвержденuе PЭО; выполненuе операцuй про-
цессорои  прекрацается;  шuна  адреса  переходuт  в  состоянuе
лог.1;  шuна yправленuя прuнuиает 3-е состоянuе. Cuгнал /STNВY
иожет  uсполюзоватюся  для  подачu  коианды отключенuя пuтанuя
дрyгuх  yстройств  uлu  хотя бы для блокuровкu работы внешнего
тактового  генератора.  Выход uз PЭО совершается пyтеи сброса,
подачu  запроса неиаскuрyеиого прерыванuя, подачu запроса иас-
кuрyеиого  прерыванuя любого тuпа (еслu разрешено EI), а также
запросои на захват шuн, еслu таковой разрешен в регuстре SR.  
                                                              
   Eслu  PЭО  не  разрешен,  коианда  SLP uсполняется как НАLT
(включая  выставленuе сuгнала подтвержденuя /НАLT). Управленuе
PЭО осyцествляется с поиоцюю Pегuстра Управленuя PЭО u Возвра-
тои uз PЭО (SМCR). (Адрес SМCR во ВП УВВ-ОООООО16h).          
                                                              
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  | STВY | ВRЧT |  --  |  --  |  --  |  WМ2 |  WМ1 |  WМО |   
  +------+------+------+------+------+------+------+------+   
                                                              
              Назначенuе разрядов регuстра SМCR:              
                                                              
STВY - лог.1 разрешает переход в PЭО;                         
ВRЧT - лог.1 разрешает выход uз PЭО по запросy на захват шuн; 
WМ2...WМО  - задают вреия задержкu в перuодах основной частоты
тактового генератора, в теченuе которого процессор бyдет yдер-
жuватюся  в  "подвешеннои"  состоянuu (дословно "WМ" - Wаrи-Up
tiие, то естю "вреия прогрева") после выхода uз PЭО; это вреия
иожет  бытю  необходuио  для  вхожденuя в рабочuй режuи дрyгuх
yстройств,  отключенных  по  сuгналy /STNВY. Установка в лог.1
бuта WМО задает задержкy 2^16 перuодов тактовой частоты, WМ1 -
2^17,  WМ2  -  2^19. В теченuе вреиенu прогрева трансляцuя uи-
пyлюсов  тактовой частоты на выходы ВUSCLK u IОCLK не проuзво-
дuтся. Прu всех лог.О задержка не отрабатывается.             
                                                              
                      Cuстеиа прерыванuй                      
                                                              
   Cтрyктyра сuстеиы прерыванuй (CП) Z38О содержuт совиестuиyю
с  Z8О u Z18О подгрyппy, а также включает в себя новые элеиен-
ты,  напрuиер, обработкy прерыванuй по неверноиy кодy коианды.
Аппаратные  прерыванuя  вызываются  подачей  нuзкого yровня на
одuн uз входов /NМI, /INT3../INTО.                            
                                                              
   /NМI  -  вход  неиаскuрyеиого прерыванuя. Прu обработке NМI
процессор засылает в стек адрес возврата, запоиuнает флаг раз-
решенuя иаскuрyеиых прерыванuй, запрецает иаскuрyеиые прерыва-
нuя  u  переходuт  на адрес ОООООО66Н, то естю аналогuчно Z8О.
Pазнuца  в  тои,  что NМI в 38О-и uиеет не наuвысшuй прuорuтет
(!) - в первyю очередю обслyжuвается програииное прерыванuе по
неправuлюноиy кодy коианды (trаp).                            
                                                              
   Tретюuи  по  yровню прuорuтета является прерыванuе со входа
/INTО, которое полностюю аналогuчно обычноиy иаскuрyеиоиy пре-
рыванuю Z8О. В частностu, с этого входа поддержаны 4 тuпа пре-
рыванuй IМ О, IМ 1, IМ 2 u IМ 3. Pежuи IМ 3 отлuчается от IМ 2
толюко  uсполюзованuеи  16-разрядных  вектора u сиеценuя: бuты
А31..А16 задаются расшuренныи регuстрои I, а бuты А15..АО счu-
тываются  с  шuны  данных в такте подтвержденuя прерыванuя; по
полyченноиy  адресy счuтывается слово uлu длuнное слово (в за-
вuсuиостu  от режuиа процессора), которое u слyжuт адресои пе-
рехода на обслyжuваюцyю подпрограииy.                         
                                                              
   Прерыванuя  /INT1, /INT2, /INT3 (в порядке yбыванuя прuорu-
тета)  вызываются  подачей  нuзкого  yровня на соответствyюцuй
вход,  а адрес обрабатываюцей процедyры определяется так назы-
ваеиыи связанныи векторои, который вычuсляется следyюцuи обра-
зои:  А31..А16 берyтся uз расшuренного регuстра I; А15..А9 оп-
ределяются  содержuиыи  регuстра  АVВR  (его  адрес  во ВП УВВ
ОООООО18Н);  А8  = О; А7..АО соответственно равны (в 16-рuчнои
вuде)  ООН для /INT1, О4Н - для /INT2, О8Н - для /INT3. По вы-
чuсленноиy адресy счuтывается слово uлu длuнное слово (в завu-
сuиостu  от режuиа процессора), которое u слyжuт адресои пере-
хода на обслyжuваюцyю процедyрy.                              
                                                              
АVВR:                                                         
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  | АВ15 | АВ14 | АВ13 | АВ12 | АВ11 | АВ1О |  АВ9 |   О  |   
  +------+------+------+------+------+------+------+------+   
                                                              
   Pазрешенuе/запреценuе  иаскuрyеиых  прерыванuй проuзводuтся
лuбо  коиандаиu  EI  О ... EI 3 для /INTО.../INT3, лuбо пряиыи
ианuпyлuрованuеи  флагаиu разрешенuя прерыванuй, которые нахо-
дятся  в регuстре IER (регuстр разрешенuя прерыванuй; адрес во
ВП  УВВ ОООООО17Н) u в регuстре SR (бuт 5). Pаспределенuе обя-
занностей иеждy IER u 5-и бuтои SR таково: бuты IER показывают
лuшю  возиожностю осyцествленuя прерыванuя с конкретного входа
/INT  О..3, а 5-й бuт SR - это флаг uиенно разрешенuя прерыва-
нuй.  Kоиандой DI иожно разои запретuтю все иаскuрyеиые преры-
ванuя.  EI разрешает прерыванuя, но толюко те, которые разбло-
кuрованы в IER.                                               
                                                              
IER:                                                          
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  |  --  |  --  |  --  |  --  |  IE3 |  IE2 |  IE1 |  IEО |   
  +------+------+------+------+------+------+------+------+   
                                 О      О      О      1 TF - флаг неверного кода в програиие, TV - флаг неверного кода
в цuкле подтвержденuя прерыванuя. Актuвное значенuе - лог.1.  
                                                              
TRPВK:                                                        
      7      6      5      4      3      2      1      О      
  +------+------+------+------+------+------+------+------+   
  |  --  |  --  |  --  |  --  |  --  |  --  |  TF  |  TV  |   
  +------+------+------+------+------+------+------+------+   
                                                              
   Далее проuсходuт засылка в стек: засылается uлu адрес нача-
ла  полного  (включая DDIR) кода неправuлюной uнстрyкцuu, еслu
ПП  проuзошло  в програиие, uлu текyцuй адрес выполненuя, еслu
ПП проuзошло по аппаратноиy прерыванuю. Затеи запрецаются иас-
кuрyеиые   прерыванuя,   u   проuсходuт  переход  на  адрес...
ООООООООН  (!!!).  Но  на этот же адрес проuсходuт переход прu
сбросе (Rеsеt) - !!!, поэтоиy процедyра "раскрyткu" коипюютера
должна  разлuчатю, что проuзошло - сброс uлu ПП. Pазлuчuтю это
иожно как раз по флагаи TF u TV - еслu одuн uз нuх =1, значuт,
uиело иесто ПП. Pегuстр TRPВK достyпен толюко для чтенuя, прu-
чеи  прu счuтыванuu его значенuя проuсходuт сброс обоuх флагов
TF  u  TV, так что выяснятю состоянuе этuх флагов иожно толюко
одuн раз.                                                     
   Kак  ведет себя 38О-й прu попытке uсполненuя "левых" коианд
- ине пока не uзвестно. Все лu онu прuводят к ПП, uлu же средu
нuх  естю  uсполняеиые  - вопрос к теи первопроходцаи, которые
повторят  подвuг полюскuх хакеров середuны 8О-х, "расколовшuх"
загадочные секреты горячего сердца лyчшего доиашнего коипююте-
ра всех вреиен u народов, названuе которого даже незачеи напо-
иuнатю.  Вот  u все. Я закрываю последнюю странuцy драгоценной
кнuжuцы  u  возврацаю  ее  законноиy  владелюцy - Eгорy Возне-
сенскоиy. Мне оченю хочется напuсатю: "Продолженuе следyет". U
я  надеюсю,  что  оно  действuтелюно вскоре последyет - в вuде
бесчuсленных новейшuх коипюютеров, шагнyвшuх в жuзню с экранов
"НЛО  -  Дюяволы Бездны" под названuеи "ZЧ-Spесtruи-2ООО", uлu
еце  как-нuбyдю, неважно... U еслu в этой тuхой революцuu людu
заиетят u капелюкy иоего скроиного трyда, ине бyдет просто по-
человеческu прuятно.                                          



Другие статьи номера:

От автора - управление, действие иконок в статье, о следующих номерах, связь.

Программистам - Процессор Z380

Программистам - Сборник кодов: зашифровка файла, Эффект точечной сетки, работа с диском при включенных прерываниях, программирование кэша.

Программистам - Теория: Биты и байты.

Очумелые ручки - Реализация кэша.

Очумелые ручки - ZX-дигитайзер: оцифровка видеосигнала.

Очумелые ручки - Всё о HDD IDE: Краткое описание портов и битов.

Белый_попугай - Советы молодожёнам.

Белый_попугай - Поручик Ржевский.

Белый_попугай - О начальстве.

Белый_попугай - Автошкола.

Белый_попугай - Набор приколов.

Раскрутка - Новые группы.

Раскрутка - Алло, таланты!

Раскрутка - Neos

Игротека - Редактор черного ворона и его новые миссии.

Игротека - Прохождение игр: 12 Тайныx Книг, Twillight.

Игротека -Перспективные проекты.

Разное - Наша жизнь компьютерщика.

Разное - Глюкодром.

Разное - Intel outside.

Разное - Почтовый ящик.

Разное - Pidarsoft.

Разное - Реклама.

Комментарий к приложению


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

Похожие статьи:
Новье !? - O программах Mask I, Blinky's Scarry School, Plotting, Jonny Quest in Doctor Zin's Underground, Bronx Street Cop, Dina Blaster, Sly Spy Secret Agent, Silent Storm, International Ninja Operation Hanoi, Duck Out .
Презентация - Mickey mouse.
Объявления - Реклама и объявления ...

В этот день...   25 февраля