


 ,   
1.    
2.     (        )
(3).      
(4).  

3-4    ,  

      -   
  
              

  ,    -  12   
    (  ,   ) -  1.5   
[  192   (2 ) -  1.5   ]
 25     ,     , ..  

       -    ,    ( ,  ,  , , jp (hl))


  (31t -    ,       ld de  7   push, .. 48t  ( ld bc) 58t):
jp (hl)
...
ld sp,NN ;screen
ld l,nextcall
jp NN ;patch (  ldpush)
nextcall:
   2  ?
 ,       (  )

     
+1..7 -   0..1
+8 - Z80
   128 (128 -   )

push = 5+3+3 http://scratchpad.wikia.com/wiki/Contended_memory
ld (),hl = (4+3+3)+3+3 = 24 
ld (),de = (4+4+3+3)+3+3 = 32  (     )
ld hl:ld (),hl = (10+4+3+3)+3+3 = 32 
ld hl:push hl = (10+5)+3+3 = 32 


 ld bc (   ):
(     2        )

;-20
ld de
push de
;+1
ld de   ;+11
push de ;+24(19),32
ld de   ;+42
push de ;+56(50),64
ld de   ;+74
push de ;+88(82),96
ld de   ;+106
push de ;+120(114),128
..     23 
     23 ( )
   ldpush = 16*21+23+23 = 382, + 31 = 413, ..     35 
          ( )    (  )
      -        ,      ,     
(..    -   )


      2  
  Y mod 8      ,    

  25    (  ? ,  )
   25 ,   
   AY,  50  :
ld bc,#fffd
ld de,#ffbf
ld hl,aydata
dup 14
out (c),l
ld b,e
outi
ld b,d
edup
org $-1
:530
    ld    exx:outi:
:484


   156   (    - )
  24 -    
96 -  
 36     , []  

,      ,     

    ?
    ,          
[,     (    ) -  ]
      (,   )

  , 2- (  1-   Y)   (         ):
2+(3*23) = 71     
 120  :
50    (. 108  ,  )
24     (. 48  ,  )
 !
(50+24)*(16*21+31) = 74*367 = 27158,   122 , ..    !
  ,      :
(50+24)*(16*21+10(ld sp)+10(jp)) = 74*356 = 26344,   118  -   ! 26344+484 = 26828 < 120 , ..  
    (   )
    (   )?   50  -        ,       
    (74-7-1)*20 = 1320  (    )
        
  , 0- (  1-   Y)  :
(3*23)+2 = 71     



#  
#    
#  
#     
--- HALT (   )
#     (       ,    , )
#   ()
#  -    Y
#     +   
#     
#    
#     
#     +   
# (     )


 50     ,     .
   ? , 128
 64  ,     16*3 = 48 
 80   , ..   (, ,  )
 16  
     184  
(80+16)*(16*21+31) = 96*367 = 35232 > 157 ,     23   64   (1472,      ) = 36704 < 164 
     ,   





  

)
 :
;125
  ld sp,5818 
  ld ix,n 
  ld iy,n 
  ld bc,n 
  ld de,n 
  ld hl,n 
  exx  
  ld bc,n 
  ld de,b 
  ld hl,n 
;219=-5
;( 0-1,2-3) 
  ld [5800],hl ;+8,16
  ld hl,n 
  ld [5802],hl ;+40,48
  ld hl,n 
  ld [5804],hl ;+72,80
  ld hl,n 
  ld [5806],hl ;+104,112
  ld hl,n 
  push iy 
  push hl 
  push de 
  push bc 
  exx  
  push ix 
  push hl 
  push de 
  push bc 
  ld sp,581e 
  ld bc,n 
  ld de,n 
  ld hl,n 
  push hl ;+272(270),280 
  push de ;+288,296 
  push bc ;+304,312 
  ld hl,n 
  ld [581e],hl ;+336,344=+120

  6  (2   )
     2  ( 5 ), ..       .      ,      ( ,         )
..    (,),   (),    (,)

[)
	ld (),bc
	ld (),de
	ld (),hl
	exx
	push af
	push bc
	push de
	push hl
	ld de
	push de
	ld de
	push de
	ld de
	push de
	ld de
	push de
	ld de
	push de
	ld de
	push de
	ld de
	push de
	ld (),ix
	ld (),iy

  5 
    ?
]
