        IF1
INCLUDE COMDEF.INC              ; Include command definition
        ENDIF
VOL     EQU     0               ; Define volume number
LOGIC   SEGMENT BYTE
        ASSUME  CS:LOGIC
        BEGIN                   ; Start up

; logic 13; процесс ионизации в облачной капле
; А.В.Хорев, обучающая программа "ГРОЗА", 1991 год.

         if_
           isset 5      ; f5 установлен (=1) ?
         else_ NotNr

;┌───────────────────────────────────────────────────────────────────────────┐
;│   Инициализация log13.                                                    │
;│   Сюда мы попадаем только при первом вхождении в log13 по ком.new_room 13,│
;│ выданной в log11 (см.описание new_room). При этом автоматически f5 -> 1.  │
;│   После возврата из этой части в log0 по оператору return, log0 передаст  │
;│ управление интерпретатору, который в своем следующем цикле установит      │
;│ f5 -> 0 (см.цикл работы интерпретатора). Именно поэтому управление этой   │
;│ части программы передается только один раз.                               │
;│   Поэтому, если из логики будут вызываться другие логики, имеющие части   │
;│ инициализации, то они должны быть загружены и вызваны в инициализационной │
;│ части вызывающей логики (см., например, log20.asm).                       │
;└───────────────────────────────────────────────────────────────────────────┘

	  set_horizon 1 ; установить линию горизонта у=1
       ;   load_logic 4
       ;   call_      4

; в облачной капле

	  load_pic    0  ; загрузить picture по значению v0 (v0 = 13)   
	  draw_pic    0  ; изобразить декорацию в буфере интерпретатора 
	  discard_pic 0  ; уничтожить picture в памяти                  

; загрузить logic-, sound- и view-ресурсы по их номеру в томах

	  load_logic  20  ; мигающие звездочки
          load_sound  54  ; привлечение внимания перед выводом сообщений
	  load_sound  26  ; удар второго электрона

	  load_view      8  ; удар первого электрона со скоростью 1v
	  load_view     10  ; удар второго электрона со скоростью 2v
	  load_view     11  ; захват электрона атомом
	  load_sound    58  ; удар первого электрона
          load_sound   118  ; вылет фотона
	  load_sound   105  ; захват электрона атомом
	  load_sound   112  ; сопровождает появление первого кадра


          show_pic          ; изобразить декорацию на экране 
          status_line_on    ; дать строку состояния          
	  call_ 20          ; вызвать logic 20 (мигающие звезды)

	  clear_lines 23, 24, 0   ; строки 23 и 24 очистить цветом 0    
          set_text_attribute 6, 0 ; установить цвет букв 6 и фона 0     
          display 24, 1, 1        ; в строку 24 с поз.1 вывести сообщ. 1 

	  assignn 130, 1 ; v130 = 1 -  управление выводом сообщений
	  reset   230    ; f230 -> 0 (служит для искл.части проверок; см.далее)                                                          
	  reset    15    ; f15 -> 0 ; окно с экр.будет удал.авт.или Enter                                                               

	  return         ; возврат управления в log0

NotNr:  ;display 23, 5, 12
        call_ 20         ; вызвать logic 20 (мигающие звезды)

        if_                                                       
          isset 230    ; f230 -> 1 ?                                                                         
	else_ EQ1      ; нет : переход на EQ1                                                                
		       ; да: для исключения проверок от EQ1 до EQ3                                          
	  jump EQ4     ;     сразу перейти на EQ4                

EQ1:    if_
          equaln 130, 1   ; v130 = 1 ?                                       
	else_ EQ2         ; нет : переход на EQ2                             
			  ; да:                                                   
	  assignn 21, 25    ; окно удал. автоматически через (v21=17)/2 сек  
	  sound   54, 52    ; исполнить звук 54 (внимание), по оконч.f52 -> 1
	  print    2        ; печать сообщения 2                             
	  jump ENDLOG       ; безусловный переход на ENDLOG                  

EQ2:    if_
         equaln 130, 2      ; v130 = 2 ?                                       
	else_ EQ3           ; нет : переход на EQ3                             
			    ; да:                                                   
	  assignn 21, 60      ; окно удал. автоматически через (v21=60)/2 сек  
	  sound   54, 52      ; исполнить звук 54 (внимание), по оконч.f52 -> 1
	  print    3          ; печать сообщения 3                             
	  jump ENDLOG         ; безусловный переход на ENDLOG                  

EQ3:    if_
         equaln 130, 3        ; v130 = 3 ?                                       
	else_ EQ4             ; нет : переход на EQ4                             
			      ; да:                                                   
	  assignn 21, 40        ; окно удал. автоматически через (v21=17)/2 сек  
	  sound   54, 52        ; исполнить звук 54 (внимание), по оконч.f52 -> 1
	  print    4            ; печать сообщения 4                             
	  set 230               ; f230 -> 1 (,чтобы сразу переход на EQ4)                 
	  jump ENDLOG           ; безусловный переход на ENDLOG

EQ4:    if_
          equaln 130, 4       ; v130 = 4 ?           
	else_ EQ5             ; нет : переход на EQ4 
			      ; да: показать удар электрона со скоростью 1v

	  animate_obj    1          ; объект #1 вкл.в список упр.объектов   
	  ignore_horizon 1          ; объекту #1 не замечать линию горизонта
	  ignore_objs    1          ; объекту #1 не замечать др.объекты     
	  ignore_blocks  1          ; объекту #1 не замечать блоки          
	  set_view       1, 8       ; связать объект #1 с view #8 (удар
	                            ; электрона со скоростью 1v)
	  set_priority   1, 8       ; объекту #1 устан.приоритет 8         
	  position       1, 26, 126 ; объекту #1 устан.нач.х=26, у=126      
          set_loop       1, 0       ; объекту #1 устан.цикл 0 во view #8   
     	  set_cel        1, 0       ; объекту #1 устан.кадр 0 в цикле 0     
				    ; во view #8                           
          assignn      121, 3       ; v121 = 3
          cycle_time     1, 121     ; объекту 1 установить интервал между
	                            ; сменой кадров (в циклах интерпр.) по v121
	  draw           1          ; изобразить объект 1 на экране, сопроводив
	  sound        112, 52      ; звуком 112, по оконч.которого f52-> 1

	  jump ENDLOG               ; безусловный переход на ENDLOG

EQ5:    if_
          equaln 130, 5       ; v130 = 5 ?          
	else_ EQ6             ; нет : переход на EQ6
			      ; да: начать aнимацию первого удара со скор.1v
			                      
	    end_of_loop    1, 121 ; однократно прокрутить мультфильм, связанный
	                          ; с объектом 1, по оконч. его f121 -> 1
            jump ENDLOG           ; безусловный переход на ENDLOG

EQ6:    if_
          equaln 130, 6       ; v130 = 6 ?          
	else_ EQ7             ; нет : переход на EQ7
			      ; да: по мере показа удара озвучить его фазы                
	  current_cel 1, 221  ; v121 = номер текущего кадра в текущем цикле
	                      ; (мультфильме) объекта 1
	  if_
	    equaln 221, 10    ; v221 = 10 ( 10-й кадр) ?
	  else_ EQ6a          ; нет: переход на EQ6a
			      ; да: озвучить удар первого электрона по атому
	    sound 58, 52      ; издать звук 58, по оконч. f52->1
            jump EQ6b         ; безусловный переход на EQ6b

EQ6a:     if_
            equaln 221, 19    ; v221 = 19 ( 19-й кадр) ?
          else_ EQ6b          ; безусловный переход на EQ6b
			      ; да: озвучить вылет фотона
            sound 118, 52     ; издать звук 118, по оконч. f52->1

EQ6b:     if_
            not_              ; не
            isset 121         ; установлен f121 -> 1 (мультфильм закончен)?
          else_ EQ6c          ; нет (установлен): переход на EQ6c
			      ; да (не установлен):
            return       ; возвращаться в log0, пока не закончится цикл
	                 ; (мультфильм) первого удара
EQ6c:
	  assignn       21, 60 ; окно удал. автоматически через (v21=60)/2 сек                                                     
	  sound         54, 52 ; исполнить звук 54 (внимание), по оконч.f52->1                                                   
	  print          5     ; печать сообщения 5                          
      	                               
          assignn      121, 5    ; v121 = 5 ; замедлить удар первого электрона                                
          cycle_time     1, 121  ; объекту 1 установить интервал между      
				 ; сменой кадров (в циклах интерпр.) по v121
	  sound        112, 52   ; звуком 112, по оконч.которого f52-> 1

	  jump ENDLOG            ; безусловный переход на ENDLOG

EQ7:    if_
          equaln 130, 7       ; v130 = 7 ?          
	else_ EQ8             ; нет : переход на EQ8
			      ; да: замедленный повтор первого удара                
	  set_cel 1, 0        ; объекту #1 устан.кадр 0 в цикле 0
			      ; во view #8                       
	  end_of_loop 1, 121  ; однократно прокрутить мультфильм, связанный
	                      ; с объектом 1, по оконч. его f121 -> 1      
	  jump ENDLOG         ; безусловный переход на ENDLOG

EQ8:    if_
          equaln 130, 8       ; v130 = 8 ?          
	else_ EQ9             ; нет : переход на EQ9
			      ; да: (комментарии команд см.по метке EQ6)
                              ;      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	  current_cel 1, 221
	  if_
	    equaln 221, 10
	  else_ EQ8a
	    sound 58, 52   ; звук удара первого электрона
            jump EQ8b
EQ8a:     if_
            equaln 221, 19
          else_ EQ8b
            sound 118, 52  ; звук вылетающего фотона

EQ8b:     if_
            not_
            isset 121
          else_ EQ8c
            return     ; возвращаться в log0, пока не закончится цикл
	               ; повтора 1-го удара

EQ8c: ; замедленный показ удара 1-го электрона окончен
	  
          assignn 21, 25  ; окно удал. автоматически через (v21=25)/2 сек  
	  sound   54, 52  ; исполнить звук 54 (внимание), по оконч.f52->1  
	  print    6      ; печать сообщения 6                          
	  jump ENDLOG     ; безусловный переход на ENDLOG

EQ9:    if_
          equaln 130, 9       ; v130 = 9 ?          
	else_ EQ10            ; нет : переход на EQ10
			      ; да: пригот. к показу удара электрона со скор.2v
			                      
          erase          1         ; стереть с экрана объект 1 (удар с 1v) 
	  animate_obj    2         ; объект  #2 вкл.в список упр.объектов   
	  ignore_horizon 2         ; объекту #2 не замечать линию горизонта
	  ignore_objs    2         ; объекту #2 не замечать др.объекты     
	  ignore_blocks  2         ; объекту #2 не замечать блоки          
	  set_view       2, 10     ; связать объект #2 с view #10 (удар 
	                           ; электрона со скоростью 2v)
	  set_priority   2, 8      ; объекту #2 устан.приоритет 8          
	  position       2, 26, 126; объекту #2 устан.нач.х=26, у=126      
          set_loop       2, 0      ; объекту #2 устан.цикл 0 во view #10   
     	  set_cel        2, 0      ; объекту #2 устан.кадр 0 в цикле 0     
				   ; во view #10                           
          assignn      121, 3      ; v121 = 3                                 
          cycle_time     2, 121    ; объекту 2 установить интервал между      
				   ; сменой кадров (в циклах интерпр.) по v121
	  draw           2         ; изобразить объект 2 на экране, сопроводив
	  sound        112, 52     ; звуком 112, по оконч.которого f52-> 1    

	  jump ENDLOG              ; безусловный переход на ENDLOG

EQ10:   if_
          equaln 130, 10      ; v130 = 10 ?           
	else_ EQ11            ; нет : переход на EQ11
			      ; да: приступить к показу удара со скор.2v
			                       
	  end_of_loop 2, 121  ; однократно прокрутить мультфильм, связанный
			      ; с объектом 2, по оконч. его f121 -> 1      
	  jump ENDLOG         ; безусловный переход на ENDLOG

EQ11:   if_
          equaln 130, 11      ; v130 = 11 ?          
	else_ EQ12            ; нет : переход на EQ12
			      ; да: озвучить удар второго электрона по атому                  
	  current_cel 2, 221  ; v221 = номер текущего кадра в текущем цикле
			      ; (мультфильме) объекта 2                    
	  if_
	    equaln 221, 10    ; v221 = 10 ( 10-й кадр) ?
	  else_ EQ11a         ; нет: переход на EQ11a
	                      ; да: озвучить удар второго электрона по атому:
	    sound 26, 52      ; издать звук 26, по оконч. f52->1

EQ11a:     if_                                                             
            not_              ; не                                                                                      
            isset 121         ; установлен f121 -> 1 (мультфильм закончен)?                                             
          else_ EQ11c         ; нет (установлен): переход на EQ11c                                                       
			      ; да (не установлен):
            return       ; возвращаться в log0, пока не закончится цикл
	                 ; (мультфильм) второго удара
EQ11c:
	  assignn 21, 60    ; окно удал. автоматически через (v21=60)/2 сек
	  sound   54, 52    ; исполнить звук 54 (внимание), по оконч.f52->1
	  print    7        ; печать сообщения 7
	                             
          assignn 121, 5    ; v121 = 5 ; замедлить удар второго электрона                                
          cycle_time 2, 121 ; объекту 2 установить интервал между      
			    ; сменой кадров (в циклах интерпр.) по v121
	  jump ENDLOG       ; безусловный переход на ENDLOG


EQ12:   if_
          equaln 130, 12      ; v130 = 12 ?          
	else_ EQ13            ; нет : переход на EQ13
			      ; да: замедленно повторить удар второго электрона
			                       
          set_cel     2, 0    ; объекту #2 устан.кадр 0 в цикле 0
			      ; во view #10                       
	  end_of_loop 2, 121  ; однократно прокрутить мультфильм, связанный
	                      ; с объектом 2, по оконч. его f121 -> 1                                                   
	  sound        112, 52; исполнить звук 112, по оконч.которого f52-> 1		                                                   
	  jump ENDLOG         ; безусловный переход на ENDLOG

EQ13:   if_
          equaln 130, 13      ; v130 = 13 ?          
	else_ EQ14            ; нет : переход на EQ14
			      ; да: (комментарии команд см.по метке EQ11)                 
	  current_cel 2, 221  ;      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
	  if_
	    equaln 221, 10
	  else_ EQ13a
	    sound 26, 52   ; звук удара второго электрона

EQ13a:     if_
            not_
            isset 121
          else_ EQ13c

            return       ; возвращаться в log0, пока не закончится цикл
	                 ; повтора второго удара

EQ13c: ; замедленный показ удара 2-го электрона окончен

	  assignn 21, 60   ; окно удал. автоматически через (v21=60)/2 сек
	  sound   54, 52   ; исполнить звук 54 (внимание), по оконч.f52->1
	  print    8       ; печать сообщения 8                           
	  jump ENDLOG      ; безусловный переход на ENDLOG

EQ14:   if_
          equaln 130, 14      ; v130 = 14 ?          
        else_ EQ15            ; нет : переход на EQ15
			      ; да: пригот.к показу захвата электрона атомом
			                       
	  animate_obj    3         ; объект  #3 вкл.в список упр.объектов      
	  ignore_horizon 3         ; объекту #3 не замечать линию горизонта   
	  ignore_objs    3         ; объекту #3 не замечать др.объекты        
	  ignore_blocks  3         ; объекту #3 не замечать блоки             
	  set_view       3, 11     ; связать объект #3 с view #11 (захват          
	                           ; электрона атомом)
	  set_priority   3, 8      ; объекту #3 устан.приоритет 8             
	  position       3, 74, 126; объекту #3 устан.нач.х=74, у=126         
          set_loop       3, 0      ; объекту #3 устан.цикл 0 во view #11      
     	  set_cel        3, 0      ; объекту #3 устан.кадр 0 в цикле 0        
				   ; во view #11                              
          assignn      121, 3      ; v121 = 3                                 
          cycle_time     3, 121    ; объекту 3 установить интервал между      
				   ; сменой кадров (в циклах интерпр.) по v121
	  draw           3         ; изобразить объект 3 на экране, сопроводив
	  sound        112, 52     ; звуком 112, по оконч.которого f52-> 1    
	  jump ENDLOG              ; безусловный переход на ENDLOG

EQ15:   if_
          equaln 130, 15      ; v130 = 15 ?          
	else_ EQ16            ; нет : переход на EQ16
			      ; да: начать показ захвата электрона атомом
	  end_of_loop 3, 121  ; однократно прокрутить мультфильм, связанный 
	                      ; с объектом 3 (цикл захвата электрона),
			      ; по оконч. его f121 -> 1       
	  jump ENDLOG         ; безусловный переход на ENDLOG

EQ16:   if_
          equaln 130, 16      ; v130 = 16 ?          
	else_ EQ17            ; нет : переход на EQ17
			      ; да: озвучить цикл захвата электрона                 
	  current_cel 3, 221  ; v221 = номер текущего кадра в текущем цикле
			      ; (мультфильме) объекта 3                    
	  if_
	    equaln 221, 9     ; v221 = 9 ( 9-й кадр) ?                     
	  else_ EQ16a         ; нет: переход на EQ16a                        
			      ; да: озвучить захват
	    sound 105, 52     ; издать звук 105 (звук захвата), по оконч. f52->1

EQ16a:    if_
            not_              ; не                                         
            isset 121         ; установлен f121 -> 1 (мультфильм закончен)?
          else_ EQ16c         ; нет (установлен): переход на EQ16c         
			      ; да (не установлен)
            return       ; возвращаться в log0, пока не закончится цикл
	                 ; захвата электрона
EQ16c:
	  assignn 21, 35  ; окно удал. автоматически через (v21=35)/2 сек
	  sound   54, 52  ; исполнить звук 54 (внимание), по оконч.f52->1
	  print    9      ; печать сообщения 9
	                             
; подготовиться к ускоренному показу всех 3-х фаз ионизации
	  assignn    121,   1  ; v121 = 1
	  cycle_time   1, 121  ; объектам 1(первый удар),2(второй удар),
	  cycle_time   2, 121  ; 3(захват) установить интервал между 
	  cycle_time   3, 121  ; сменой кадров (в циклах интерпр.) по v121
	  jump ENDLOG          ; безусловный переход на ENDLOG

EQ17:   if_
          equaln 130, 17   ; v130 = 17 ?          
	else_ EQ18         ; нет : переход на EQ18

   ; Бесконечный повтор всех 3-х фаз ионизации до нажатия любой клавиши.
   ; В этой части программы подробные покомандные комментарии
   ; опущены, т.к. здесь циклически повторяются действия,
   ; описанные выше.
			   ; да: первый удар                 
	  if_
	    have_key       ; клавиша нажата ?
	  else_ EQ17a      ; нет (продолжить показ): переход на EQ17a
			   ; да:
	    assignn 130, 21; v130 = 21
	    jump EQ21      ; безусловный переход на EQ21

EQ17a:      set_cel        1, 0
	    draw           1
	    erase          2
            set_cel        3, 15
            draw           3
	    end_of_loop    1, 121 ; aнимация первого удара со скоростью 1v
	    sound        112, 52
	    jump ENDLOG           ; безусловный переход на ENDLOG

EQ18:   if_
          equaln 130, 18      ; v130 = 18 ?          
	else_ EQ19            ; нет : переход на EQ19
			      ; да:                  
	  if_
	    have_key          ; клавиша нажата ?                        
	  else_ EQ18$         ; нет (продолж.показ 1-го удара): перех.на EQ18$
			      ; да:                                     
	    assignn 130, 21   ; v130 = 21                               
	    jump EQ21         ; безусловный переход на EQ21

EQ18$:	  current_cel 1, 221
	  if_
	    equaln 221, 10
	  else_ EQ18a
	    sound 58, 52   ; удар первого электрона
            jump EQ6b
EQ18a:    if_
            equaln 221, 19
          else_ EQ18b
            sound 118, 52  ; вылет фотона

EQ18b:     if_
            not_
            isset 121
          else_ EQ18c

            return       ; возвращаться в log0, пока не закончится цикл
	                 ; первого удара
EQ18c:    set_cel        2, 0
          draw           2
          erase          1
	  sound        112, 52
	  end_of_loop    2, 121
	  jump ENDLOG           ; безусловный переход на ENDLOG

EQ19:   if_
          equaln 130, 19       ; v130 = 19 ?          
	else_ EQ20             ; нет : переход на EQ20
			       ; да:                  
	  if_
	    have_key         ; клавиша нажата ?                        
	  else_ EQ19$        ; нет (продолж. показ 2-го удара):перех.на EQ19$
			     ; да:                                     
	    assignn 130, 21  ; v130 = 21                               
	    jump EQ21        ; безусловный переход на EQ21             

EQ19$:	  current_cel 2, 221
	  if_
	    equaln 221, 10
	  else_ EQ19a
	    sound 26, 52   ; удар второго электрона

EQ19a:    if_
            not_
            isset 121
          else_ EQ19c

            return       ; возвращаться в log0, пока не закончится цикл
	                 ; второго удара
EQ19c:  set_cel        3, 0
	sound        112, 52
	end_of_loop    3, 121 ; анимация захвата электрона
	jump ENDLOG           ; безусловный переход на ENDLOG

EQ20:   if_
          equaln 130, 20      ; v130 = 20 ?          
	else_ EQ21            ; нет : переход на EQ21
			      ; да:                  
	  if_
	    have_key          ; клавиша нажата ?                              
	  else_ EQ20$         ; нет (продолж. показ захвата):перех.на EQ20$
			      ; да:                                           
	    assignn 130, 21   ; v130 = 21                                     
	    jump EQ21         ; безусловный переход на EQ21                   

EQ20$:	  current_cel 3, 221
	  if_
	    equaln 221, 9
	  else_ EQ20a
	    sound 105, 52     ; звук захвата

EQ20a:    if_
            not_
            isset 121
          else_ EQ20b

            return       ; возвращаться в log0, пока не закончится цикл
	                 ; захвата электрона

; задержка между показами 3-х фаз ионизации

EQ20b:  assignn 241, 0         ; v241 = 0
EQ20c:  if_                    ;
          lessn 241, 60        ;   v241 < 60 ?
	else_ EQ20f            ; нет: переход на EQ20f
	  assignn 240, 0       ;   да: v240 = 0
EQ20d:    if_                  ;
            lessn 240, 255     ;   v240 < 255 ?
	  else_ EQ20e          ; нет: переход на EQ20e   
	    increment 240      ;   да: v240 = v240 + 1
	    jump EQ20d         ;       переход на EQ20d
EQ20e:    increment 241        ;   v241 = v241 + 1
          jump EQ20c           ;   переход на EQ20c

EQ20f:  assignn 130, 17        ; v130 = 17 (чтобы начать показ сначала)
        return                 ; возврат в log0

EQ21:   if_
          equaln 130, 21      ; v130 = 21 ?          
	else_ EQ22            ; нет : переход на EQ22
			      ; да:                  
	  assignn 21, 55      ; окно удал. автоматически через (v21=55)/2 сек
	  sound   54, 52      ; исполнить звук 54 (внимание), по оконч.f52->1
	  print    10         ; печать сообщения 10                           
	  jump ENDLOG         ; безусловный переход на ENDLOG

EQ22:   if_
          equaln 130, 22      ; v130 = 22 ?          
	else_ EQ22a           ; нет : переход на EQ22a
			      ; да:                  
	  assignn 21, 55      ; окно удал. автоматически через (v21=55)/2 сек
	  sound   54, 52      ; исполнить звук 54 (внимание), по оконч.f52->1
	  print    11         ; печать сообщения 11                          

	  assignn  130, 0   ; чистка переменных и флагов :
	  assignn  121, 0   ; v121 = 0
	  assignn  221, 0
	  reset     52      ; f52 -> 0
	  reset    230

	  new_room 15 ; перейти в нов. комнату 15
                      ; (гроза с показом образования лидера, грозозащита)

EQ22a:  return        ; возврат в log0

ENDLOG: increment 130 ; v130 = v130 + 1
        return        ; возврат в log0

         MESSAGES      12 ; сообщения

m1     db   "Для продолжения нажмите Enter/Return", 0

m2     db   " Вы знаете, что все вещества, в том числе воздух и вода, "
       db   "состоят из молекул и атомов.", 10, " Aтом состоит из "
       db   "положительно заряженного ядра и отрицательно заряженных "
       db   "электронов.", 10
       db   " Электроны и ядро связаны между собой электрическим полем.", 0

m3     db   " Если же электрону каким-то образом удастся разорвать эту "
       db   "связь и покинуть атом, то атом превращается в положительный "
       db   "ион. Aтом же присоединивший к себе дополнительный электрон, "
       db   "становится отрицательным ионом.", 10, 10
       db   " Превращение атомов в положительные и отрицательные ионы "
       db   "называется ионизацией.", 0

m4     db   " Проследите процесс ионизации, который мог бы произойти в "
       db   "облачной капле.", 10, 10
       db   " Разогнанный в поле до некоторой скорости, свободный электрон "
       db   "пытается освободить своего собрата.", 0

m5     db   ' Однако с первой попытки это не всегда удается осуществить.', 10
       db   ' Aтом "рассердился" - находится в возбужденном состоянии '
       db   'и испускает фотон - мельчайшую частичку света. В дальнейшем '
       db   'фотон тоже примет участие в процессе ионизации.', 10, 10
       db   ' Посмотрите замедленно еще раз как это было.', 0

m6     db   ' A вот, что может произойти дальше!', 10, ' Обратите '
       db   'внимание на скорость второго электрона.', 0

m7     db   " С помощью второго свободного электрона, электрон покидает "
       db   "атом и тоже становится свободным. Aтом превращается в "
       db   "положительный ион.", 10, 10
       db   " Посмотрите замедленно еще раз, что произошло.", 0

m8     db   " Сбежавший электрон не долго находится на свободе. Его "
       db   "захватывает другой атом, становясь обладателем дополнительного "
       db   "отрицательного электрона.", 0

m9     db   " Aтом, захвативший электрон, превращается в отрицательный ион.",10
       db   10, " A сейчас просмотрите весь процесс ионизации от начала "
       db   "до конца необходимое Вам число раз.", 0

m10    db   " Далее, под действием сильного электрического поля между облаком и"
       db   " землей, ионы и электроны с огромными скоростями ударяясь о "
       db   "молекулы и атомы, ионизируют их. Те, в свою очередь, "
       db   "ионизируют другие.", 0

m11    db   " Процесс ионизации лавинообразно нарастает.", 10
       db   " Все это происходит в узком канале, по которому из облака "
       db   "начинает стекать электрический заряд - предшественник "
       db   "молнии - ее лидер.", 10
       db   " Вот как это происходит.", 0

m12    db   " Var(130) = %v130 .", 0

VERYEND EQU $
LOGIC   ENDS
        END