Login

Subversion Repositories NedoOS

Rev

Rev 861 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

TODO: ╨┐╤А╨╕ ╤Н╨║╤А╨░╨╜╨╡ ╨г╨╢╨╡ 320 ╤Б╨┐╤А╨░╨▓╨░ ╤А╨╕╤Б╤Г╤О╤В╤Б╤П ╨╗╨╕╤И╨╜╨╕╨╡ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л, ╤Б╨┐╤А╨░╨╣╤В╤Л ╤В╨╛╨╢╨╡ ╤Г╤Б╨╡╨║╨░╤О╤В╤Б╤П ╨╜╨╡╨┐╤А╨░╨▓╨╕╨╗╤М╨╜╨╛. ╨╕ ╤Ж╨╡╨╜╤В╤А╨╛╨▓╨║╨░ ╨╜╨╡ ╤В╨░╨╝?

╨Т Nedodemo 2 ╤Б╨║╤А╨╛╨╗╨╗ ╨┐╨╛ 1 ╨┐╨╕╨║╤Б. ╨┤╨╗╤П ╤Н╤В╨╛╨│╨╛ ╨┤╨▓╨╡ ╨║╨╛╨┐╨╕╨╕ ╤Н╨║╤А╨░╨╜╨░, ╤А╨░╨╖╨╗╨╛╨╢╨╡╨╜╨╜╨╛╨│╨╛ ╨▓ ld de:push. ╨▓╤Л╤Е╨╛╨┤ ╨┐╨░╤В╤З╨╕╤В╤Б╤П jp (hl), ╨┐╨╛╤В╨╛╨╝ ╤А╨░╤Б╨┐╨░╤В╤З╨╕╨▓╨░╨╡╤В╤Б╤П (╤Е╨╛╤В╤П ╤В╨░╨╝ ╨╜╨╡ ╨╜╤Г╨╢╨╜╨╛, ╤В.╨║. ╤Б╨║╤А╨╛╨╗╨╗ ╤В╨╛╨╗╤М╨║╨╛ ╨▓╨╗╨╡╨▓╨╛)
╤Н╤В╨╛ 1 ╨▒╨░╨╣╤В ╨╜╨░ ╨┐╨╕╨║╤Б╨╡╨╗╤М 16╤Ж *2, ╤В.╨╡. 2 ╨▒╨░╨╣╤В╨░ ╨╜╨░ ╨┐╨╕╨║╤Б╨╡╨╗╤М
╨┤╨╗╤П ╤Н╨║╤А╨░╨╜╨░ 512x512 ╨┐╨╛╤В╤А╨╡╨▒╤Г╨╡╤В╤Б╤П ╨▒╨╛╨╗╨╡╨╡ 512K ╨Ю╨Ч╨г ╨┐╨╛╨┤ ╤Д╨╛╨╜ (╤В.╨║. ╨╡╤Й╤С ╨▓╤Л╤Е╨╛╨┤ jp (hl)). ╨╕╨╗╨╕ ╨╝╨╛╨╢╨╜╨╛ ╤А╨╛╨▓╨╜╨╛ 512╨Ъ, ╨╡╤Б╨╗╨╕ ╨▓╤Л╤Е╨╛╨┤ ╨╝╨╛╨╢╨╡╤В ╨╜╨░╨║╨╗╨░╨┤╤Л╨▓╨░╤В╤М╤Б╤П ╨╜╨░ ╨┤╤А╤Г╨│╨╕╨╡ ╨┤╨░╨╜╨╜╤Л╨╡ ╨╕╨╗╨╕ ╤Б╨╗╨╡╨┤╤Г╤О╤Й╨╡╨╡ ╨╛╨║╨╜╨╛ ╨┐╨░╨╝╤П╤В╨╕
╨┐╤А╨╕ ╤Н╤В╨╛╨╝ ╨╜╨░ ╤Н╨║╤А╨░╨╜╨╡ ╤А╨╕╤Б╨╛╨▓╨░╤В╤М ╨╜╨╡╤Г╨┤╨╛╨▒╨╜╨╛ - ╨║╨░╨╢╨┤╤Г╤О ╤В╨╛╤З╨║╤Г ╨╜╨░╨┤╨╛ ╤Б╤В╨░╨▓╨╕╤В╤М ╨┤╨▓╨░ ╤А╨░╨╖╨░.
Worms ╨┐╨╛╤В╤А╨╡╨▒╤Г╨╡╤В 1M ╨Ю╨Ч╨г ╤В╨╛╨╗╤М╨║╨╛ ╨┐╨╛╨┤ ╤Д╨╛╨╜.
╨╝╨╛╨╢╨╜╨╛ ╨┤╨╡╨╗╨░╤В╤М ╤Б╨║╤А╨╛╨╗╨╗ ╨┐╨╛ 2 ╨┐╨╕╨║╤Б - ╤В╨╛╨│╨┤╨░ 1 ╨▒╨░╨╣╤В ╨╜╨░ ╨┐╨╕╨║╤Б╨╡╨╗╤М, ╨┐╨╕╨║╤Б╨╡╨╗╤М ╤Б╤В╨░╨▓╨╕╨╝ ╤В╨╛╨╗╤М╨║╨╛ ╨╛╨┤╨╕╨╜ ╤А╨░╨╖. Worms ╨┐╨╛╤В╤А╨╡╨▒╤Г╨╡╤В 512K ╨Ю╨Ч╨г ╨┐╨╛╨┤ ╤Д╨╛╨╜

╨╛╨┤╨╜╨░ ╤Б╤В╤А╨╛╨║╨░ 512 ╨┐╨╕╨║╤Б ╨╖╨░╨╜╨╕╨╝╨░╨╡╤В 512 ╨▒╨░╨╣╤В, ╤Б╨╛╤Б╤В╨╛╨╕╤В ╨╕╨╖ 4 ╨┐╨╛╨┤╤Б╤В╤А╨╛╨║ 128+1 ╨▒╨░╨╣╤В (╨▓ Nedodemo 2 ╨▒╤Л╨╗╨░ ╤И╨╕╤А╨╕╨╜╨░ 920 ╨┐╨╕╨║╤Б, ╤Б╨╛╤Б╤В╨╛╤П╨╗╨╛ ╨╕╨╖ 4 ╨┐╨╛╨┤╤Б╤В╤А╨╛╨║ ╨┐╨╛ 240+1 ╨▒╨░╨╣╤В).

╤Н╤В╨╛ ╨│╨╛╨┤╨╕╤В╤Б╤П ╨╕ ╨┤╨╗╤П ╨│╨╛╨╜╨╛╨║, ╨│╨┤╨╡ ╤Б╤В╤А╨╛╨║╨╕ ╨┐╨╛-╤А╨░╨╖╨╜╨╛╨╝╤Г ╤Б╨┤╨▓╨╕╨╜╤Г╤В╤Л (╨╕╨╗╨╕ ╤Б╨┤╨▓╨╕╨│╨░╨╡╤В╤Б╤П ╨┐╨╛ ╨│╨╛╤А╨╕╨╖╨╛╨╜╤В╨░╨╗╨╕ ╨▓╨╡╤Б╤М ╤Н╨║╤А╨░╨╜)

╨╜╨░ ╤В╨░╨║╨╛╨╝ ╤Н╨║╤А╨░╨╜╨╡ ╨╜╨╡╨╗╤М╨╖╤П ╨┤╨╡╨╗╨░╤В╤М ╨▒╨╡╤Б╨║╨╛╨╜╨╡╤З╨╜╨╛ ╨▒╨╛╨╗╤М╤И╨╛╨╣ ╤Б╨║╤А╨╛╨╗╨╗, ╤В.╨║. ╤Б╤В╤А╨╛╨║╨╕ ╨╜╨╡ ╨╖╨░╤Ж╨╕╨║╨╗╨╡╨╜╤Л.
╨╜╨╛ ╨╝╨╛╨╢╨╜╨╛ ╨╜╨░ ╨╡╨│╨╛ ╨╛╤Б╨╜╨╛╨▓╨╡ ╨┐╨╛╨┐╤А╨╛╨▒╨╛╨▓╨░╤В╤М ╤Н╤В╨╛ ╤Б╨┤╨╡╨╗╨░╤В╤М, ╨╡╤Б╨╗╨╕ ╨▓╤Л╨╖╤Л╨▓╨░╤В╤М (╨┐╨░╤В╤З, jp, ╨░╨╜╨┐╨░╤В╤З) ╨╛╤В╨┤╨╡╨╗╤М╨╜╨╛ ╨╗╨╡╨▓╤Г╤О ╨╕ ╨┐╤А╨░╨▓╤Г╤О ╨┐╨╛╨╗╨╛╨▓╨╕╨╜╨║╤Г (╨║╨░╨║ ╨▓ ╨б╤Г╨┐╨╡╤А ╨Ь╨░╤А╨╕╨╛).
╤Б╨╜╨░╤З╨░╨╗╨░ ╨┐╤А╨░╨▓╤Г╤О, ╤З╤В╨╛╨▒╤Л ╨┐╤А╨░╨▓╨░╤П ╨╜╨╡ ╨╖╨░╨┐╨╛╤А╨╛╨╗╨░ ╨╗╨╡╨▓╤Г╤О ╨┐╤А╨╕ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╕.
╨┐╨╛╤В╨╛╨╝ ╨╝╨░╤Б╨║╨╕╤А╨╛╨▓╨░╤В╤М ╨║╤А╨░╤П ╤Н╨║╤А╨░╨╜╨░.
╨▓ ╨┐╤А╨╛╤Б╤В╨╡╨╣╤И╨╡╨╝ ╤Б╨╗╤Г╤З╨░╨╡ ╨╝╨░╤Б╨║╨╕╤А╤Г╨╡╨╝ (╨╕╨╗╨╕ ╨┐╤А╤П╨╝╨╛ ╨▓╤Л╨▓╨╛╨┤╨╕╨╝???) ╨▓╤Б╨╡╨│╨┤╨░ ╨╛╨┤╨╕╨╜ ╨╖╨╜╨░╨║╨╛╨╝╨╡╤Б╤В╨╜╤Л╨╣ ╤Б╤В╨╛╨╗╨▒╨╡╤Ж - 0-╨╣ (╨┐╤А╨╕ ╤Н╤В╨╛╨╝ ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╨╗╨╕╨▒╨╛ 0..39, ╨╗╨╕╨▒╨╛ 1..40, ╤Б ╨╖╨░╤Е╨╛╨┤╨╛╨╝ ╨╜╨░ ╤Б╨╗╨╡╨┤╤Г╤О╤Й╤Г╤О ╤Б╤В╤А╨╛╨║╤Г)
╨┐╨╗╤О╤Б ╨▓ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╕ ╨▓╨╛╤Б╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╤Б╤В╨╡╨║ ╨╕╨╖ de (╨╖╨░╨╜╤Г╨╗╤П╤В╤М ╨╜╨╡╨╗╤М╨╖╤П - ╨╖╨░╨┐╨╛╤А╨╡╨╝ ╨╛╨┤╨╕╨╜ ╨▒╨░╨╣╤В ╨╜╨░ ╨║╤А╨░╤О ╤Н╨║╤А╨░╨╜╨░).
╤З╤В╨╛ ╨▒╤Г╨┤╨╡╤В ╨┐╤А╨╕ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╕ ╨▓ ╨║╨╛╨╜╤Ж╨╡ ╤Б╤В╤А╨╛╨║╨╕ (╤В.╨║. ╨║╨╛╨│╨┤╨░ sp ╨▓ ╨║╤А╨░╨╣╨╜╨╡╨╝ ╨╗╨╡╨▓╨╛╨╝ ╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╕ ╨╕ ╨▓╤Б╤С ╤Г╨╢╨╡ ╨╛╤В╤А╨╕╤Б╨╛╨▓╨░╨╗)? ╤В╨░╨╝ ╨╝╤Л ╨╝╨╛╨╢╨╡╨╝ ╨╖╨░╨┐╨╛╤А╨╛╤В╤М ╨┐╤А╨╛╤В╨╕╨▓╨╛╨┐╨╛╨╗╨╛╨╢╨╜╤Л╨╣ ╨║╤А╨░╨╣ ╤Н╨║╤А╨░╨╜╨░ ╨╕╨╗╨╕ ╨▓╤В╨╛╤А╤Г╤О ╨┐╨╛╨╗╨╛╨▓╨╕╨╜╨║╤Г! ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╡ ╨┤╨╛╨╗╨╢╨╜╨╛ ╨▒╤Л╤В╤М ╤Г╨╝╨╜╨╛╨╡ ╨╕ ╨┤╨╛╤Б╤В╨░╨▓╨░╤В╤М ╨╖╨░╨┐╨╛╤А╨╛╤В╤Л╨╡ ╨┤╨░╨╜╨╜╤Л╨╡ ╨╕╨╖ ╨│╤А╨░╤Д╨╕╨║╨╕ ld:push?


╨╝╨░╤Б╨║╨╕╤А╨╛╨▓╨║╨░ ╤Б╤В╨╛╨╗╨▒╤Ж╨░ - ╤Н╤В╨╛ ╨┐╤А╨╛╤Б╤В╨╛ ld (),a = 13t/line = 2600t * 4 layers
╨╛╤В╤А╨╕╤Б╨╛╨▓╨║╨░ ╤Б╤В╨╛╨╗╨▒╤Ж╨░ (╨╕╨╖ ╨│╤А╨░╤Д╨╕╨║╨╕ ╨▓ ld:push) - ╤Н╤В╨╛ ld a,(de):inc d:ld (),a = 24t/line = 4800t * 4 layers (╨╜╨░╨┤╨╛ ╨┐╨╛╨┤╨║╨╗╤О╤З╨╕╤В╤М ╨│╤А╨░╤Д╨╕╨║╤Г ╨▓ 0x8000..0xffff ╨╕ ╤А╨╕╤Б╨╛╨▓╨░╤В╤М ╨╛╤В╤В╤Г╨┤╨░ 64 ╤Б╤В╤А╨╛╨║╨╕ ╨╖╨░ ╤А╨░╨╖)

╤Б╨░╨╝╨╛ ╨╝╤П╤Б╨╛ ╨▓╤Л╨▓╨╛╨┤╨░ ╨╖╨░╨╜╨╕╨╝╨░╨╡╤В 160*10.5*200 = 336000t

╤Н╤В╨╛╤В ╤Б╨┐╨╛╤Б╨╛╨▒ ╨╜╨╡ ╨╝╨╛╨╢╨╡╤В ╨╛╨┐╤В╨╕╨╝╨╕╨╖╨╕╤А╨╛╨▓╨░╤В╤М ╤Б╨║╨╛╤А╨╛╤Б╤В╤М ╨╛╤В╤А╨╕╤Б╨╛╨▓╨║╨╕ ╨▓╤Л╨║╨╕╨┤╤Л╨▓╨░╨╜╨╕╨╡╨╝ ld.

╨╛╨▒╨▓╤П╨╖╨║╨░ ╨┤╨╗╤П ╤А╨░╤Б╤Б╤В╨╛╤П╨╜╨╕╤П ╨╝╨╡╨╢╨┤╤Г ╨┐╨╛╨┤╤Б╤В╤А╨╛╨║╨░╨╝╨╕ 128 ╨▒╨░╨╣╤В (╤А╨╕╤Б╤Г╨╡╨╝ ╨▓ 2 ╨┐╤А╨╕╤С╨╝╨░ - ╤З╤С╤В╨╜╤Л╨╡ ╨╕ ╨╜╨╡╤З╤С╤В╨╜╤Л╨╡ ╤Б╤В╤А╨╛╨║╨╕, ╤В╨╛ ╨╢╨╡ ╤Б ╨╛╤В╤А╨╕╤Б╨╛╨▓╨║╨╛╨╣ ╤Б╤В╨╛╨╗╨▒╤Ж╨░ ╨┤╨╗╤П ╨╝╨░╤Б╨║╨╕╤А╨╛╨▓╨║╨╕)
╨┤╨╗╤П ╤А╨╕╤Б╨╛╨▓╨░╨╜╨╕╤П ╨╛╤В╨┤╨╡╨╗╤М╨╜╨╛ ╨╗╨╡╨▓╨╛╨╣ ╨╕ ╨┐╤А╨░╨▓╨╛╨╣ ╨┐╨╛╨╗╨╛╨▓╨╕╨╜╨╛╨║ ╨╗╤Г╤З╤И╨╡ ╤В╨░╨║╨╛╨╣ ╨▓╨░╤А╨╕╨░╨╜╤В:
ld (hl),d;0xe9 ;jp (hl) ;
exx
ld l/hl,nnnext_i
ld sp,iy
jp (ix)
...
ld-push
jp (hl)
...
nnnext_i
inc hx
add iy,bc
exx
ld (hl),e;0x11 ;ld de ;
inc h
;73t/line * 2 halves * 4 layers = 116800t - ╤Б╨╗╨╕╤И╨║╨╛╨╝ ╨╢╨╕╤А╨╜╨╛!

╨╡╤Б╨╗╨╕ ╨╢╨╡ ╤Н╨║╤А╨░╨╜ ╤А╨╡╨░╨╗╤М╨╜╨╛ ╨╖╨░╤Ж╨╕╨║╨╗╨╡╨╜ ╨▓╨╜╤Г╤В╤А╨╕ (╨║╨░╨║ ╨▓ The Board II), ╤В╨╛ ╨╜╨░╨┤╨╛ ╨╕╨╝╨╡╤В╤М jp NNN ╨▓ ╨║╨╛╨╜╤Ж╨╡ ╤Б╤В╤А╨╛╨║╨╕, ╤В╨╛ ╨╡╤Б╤В╤М ╨▓ 128 ╨▒╨░╨╣╤В╨░╤Е ╨▒╤Г╨┤╨╡╤В ╨╖╨░╤Ж╨╕╨║╨╗╨╡╨╜╨╛ ╨╜╨╡ 512 ╨┐╨╕╨║╤Б, ╨░ 124*4 = 496 ╨┐╨╕╨║╤Б
╨╜╨░╨╝-╤В╨╛ ╨┤╨╛╤Б╤В╨░╤В╨╛╤З╨╜╨╛ 320 ╨┐╨╕╨║╤Б, ╨╜╨╛... ╨┐╤А╨╕╨┤╤С╤В╤Б╤П ╨╜╨╡ ╤Б╤З╨╕╤В╨░╤В╤М x mod scrbufwid, ╨░ ╨┐╤А╨╕ ╤Б╨║╤А╨╛╨╗╨╗╨╡ ╨╜╨╡╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛ ╨╛╨▒╨╜╨╛╨▓╨╗╤П╤В╤М ╨┐╨╛╨╖╨╕╤Ж╨╕╤О ╤Б╨┤╨▓╨╕╨│╨░ ╨▓ ╨┤╨░╨╜╨╜╤Л╤Е ╨│╤А╨░╤Д╨╕╨║╨╕
ld (hl),d;0xe9 ;jp (hl) ;
exx
ld l/hl,nnnext_i
ld sp, ;╨╜╨░╨┤╨╛ ╨┤╨▓╨╡ ╨║╨╛╨┐╨╕╨╕ ╨┤╨╗╤П ╤А╨╕╤Б╨╛╨▓╨░╨╜╨╕╤П 0..39 ╨╕╨╗╨╕ 1..40 ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓ (sp+1) *2 ╨║╨╛╨┐╨╕╨╕ ╨┤╨╗╤П +0/0x2000
jp (ix)
...
ld-push
jp N ;╤Е╤Г╨┤╤И╨╕╨╣ ╤Б╨╗╤Г╤З╨░╨╣ (2/3 ╨┐╨╛╨╖╨╕╤Ж╨╕╨╣ ╤Б╨║╤А╨╛╨╗╨╗╨░, ╤В.╨║. ╤Н╨║╤А╨░╨╜╨╜╤Л╨╣ ╨▒╤Г╤Д╨╡╤А ╨╜╨░ 55% ╤И╨╕╤А╨╡ ╤Н╨║╤А╨░╨╜╨░)
...
ld-push
jp (hl)
...
nnnext_i
inc hx
exx
ld (hl),e;0x11/0xc3 ;ld de/jp NN
inc h
;73t/line * 4 layers = 58400t

╨┐╨╛╤А╤П╨┤╨╛╨║ ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓ ╤Н╨║╤А╨░╨╜╨░:
layer0000
layer4000
layer2000
layer6000

UVSCROLL_WID=1024
UVSCROLL_SCRWID=320
UVSCROLL_NPUSHES=UVSCROLL_WID/2/4/2 
UVSCROLL_SCRNPUSHES=UVSCROLL_SCRWID/2/4/2 

xscroll = 0..511
╨╡╤Б╨╗╨╕ xscroll = 0, ╤В╨╛:
layer0000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0
layer4000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1
layer2000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2
layer6000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3
╨╡╤Б╨╗╨╕ xscroll = 1, ╤В╨╛:
layer0000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1
layer4000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2
layer2000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3
layer6000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
╨╡╤Б╨╗╨╕ xscroll = 2, ╤В╨╛:
layer0000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2
layer4000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3
layer2000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer6000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
╨╡╤Б╨╗╨╕ xscroll = 3, ╤В╨╛:
layer0000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3
layer4000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer2000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer6000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
╨╡╤Б╨╗╨╕ xscroll = 4, ╤В╨╛:
layer0000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer4000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer2000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer6000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
╨╡╤Б╨╗╨╕ xscroll = 5, ╤В╨╛:
layer0000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer4000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer2000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer6000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4
╨╡╤Б╨╗╨╕ xscroll = 6, ╤В╨╛:
layer0000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer4000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer2000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4
layer6000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4
╨╡╤Б╨╗╨╕ xscroll = 7, ╤В╨╛:
layer0000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3-4, ╤Б╤В╨╛╨╗╨▒╨╡╤Ж 0 ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3-4 + (UVSCROLL_SCRNPUSHES*4) + 2 ;d
layer4000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4
layer2000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4
layer6000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4
╨╡╤Б╨╗╨╕ xscroll = 8, ╤В╨╛:
layer0000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕0-4
layer4000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕1-4
layer2000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕2-4
layer6000 ╨▓╤Л╨▓╨╛╨┤╨╕╨╝ ╤Б╤В╨╛╨╗╨▒╤Ж╤Л 39..0, ╨║╨╛╨╜╨╡╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕3-4

╨┐╤А╨╕╨╖╨╜╨░╨║ ╨╜╨╡╤З╤С╤В╨╜╨╛╤Б╤В╨╕ (╤Б╤В╨╛╨╗╨▒╤Ж╤Л 40..1 + ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░):
╨┤╨╗╤П layer0000: (xscroll+0)&4
╨┤╨╗╤П layer4000: (xscroll+1)&4
╨┤╨╗╤П layer2000: (xscroll+2)&4
╨┤╨╗╤П layer6000: (xscroll+3)&4

╨░╨┤╤А╨╡╤Б ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨╕ ╨┤╨╗╤П ╨╜╨╡╤З╤С╤В╨╜╤Л╤Е = ╨░╨┤╤А╨╡╤Б ╨│╤А╨░╤Д╨╕╨║╨╕ + (UVSCROLL_SCRNPUSHES*4) + 2 ;d

╨░╨┤╤А╨╡╤Б ╨│╤А╨░╤Д╨╕╨║╨╕:
╨┤╨╗╤П layer0000: ╨║╨╛╨╜╨╡╤Ж - ((xscroll+4)/2&0xfc)
╨┤╨╗╤П layer4000: ╨║╨╛╨╜╨╡╤Ж - ((xscroll+5)/2&0xfc)
╨┤╨╗╤П layer2000: ╨║╨╛╨╜╨╡╤Ж - ((xscroll+6)/2&0xfc)
╨┤╨╗╤П layer6000: ╨║╨╛╨╜╨╡╤Ж - ((xscroll+7)/2&0xfc)
;╨║╨╛╨╜╨╡╤Ж (╨║╤А╨░╨╣╨╜╨╡╨╡ ╨┐╤А╨░╨▓╨╛╨╡ ╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╡ L ╨┐╤А╨╕ ╨▓╤Л╨╖╨╛╨▓╨╡) = 256-(UVSCROLL_SCRNPUSHES*4)

╨░╨┤╤А╨╡╤Б ╨│╤А╨░╤Д╨╕╨║╨╕: ╨║╨╛╨╜╨╡╤Ж - ((xscroll+4+layer)/2&0xfc)
╨░╨┤╤А╨╡╤Б ╨┐╨░╤В╤З╨░ ╨▓╤Л╤Е╨╛╨┤╨░ = ╨░╨┤╤А╨╡╤Б ╨│╤А╨░╤Д╨╕╨║╨╕ + (UVSCROLL_SCRNPUSHES*4)


╨╡╤Б╨╗╨╕ ╤А╨╕╤Б╤Г╨╡╨╝ ╤Б╨╜╨╕╨╖╤Г ╨▓╨▓╨╡╤А╤Е, ╤В╨╛ ╨╜╤Г╨╢╨╜╨░ ╤В╨╛╨╗╤М╨║╨╛ ╨╛╨┤╨╜╨░ ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ ╨┤╨╗╤П ╨╜╨╡╤З╤С╤В╨╜╤Л╤Е
╨┐╤А╨╕ ╨╝╨╡╨╜╤М╤И╨╡╨╣ ╤И╨╕╤А╨╕╨╜╨╡ ╨╜╨░╨┤╨╛ ╨╡╤Й╤С ╨╖╨░╤В╨╕╤А╨░╨╜╨╕╨╡ ╤Б╨┐╤А╨░╨▓╨░ ╨┤╨╗╤П ╨╜╨╡╤З╤С╤В╨╜╤Л╤Е, ╨░ ╨╛╨▒╤А╨░╨▒╨╛╤В╤З╨╕╨║ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╤П ╨┤╨╛╨╗╨╢╨╡╨╜ ╤Б╨░╨╝ ╤Г╨╝╨╡╤В╤М ╨┐╨╕╤Б╨░╤В╤М 0 ╨▓ ╤Б╤В╨╡╨║ (╨┤╨╛╤Б╤В╨░╤В╨╛╤З╨╜╨╛ ╨╛╨▒╤Л╤З╨╜╨╛╨│╨╛ ╨╛╨▒╤А╨░╨▒╨╛╤В╤З╨╕╨║╨░ ╤Б de=0)
╨┤╨╗╤П ╨╜╨╡╤З╤С╤В╨╜╤Л╤Е ╤З╤В╨╛ ╨▓╤Л╨│╨╛╨┤╨╜╨╡╨╡ - ╨╖╨░╤В╨╕╤А╨░╤В╤М ╨╗╨╕╤И╨╜╨╕╨╣ ╤Б╤В╨╛╨╗╨▒╨╡╤Ж, ╨▓╤Л╨▓╨╡╨┤╨╡╨╜╨╜╤Л╨╣ ld-push, ╨╕╨╗╨╕ ╤А╨╕╤Б╨╛╨▓╨░╤В╤М ╨╝╨╡╨╜╤М╤И╨╡ ╨▓ ld-push ╨╕ ╨╛╤В╤А╨╕╤Б╨╛╨▓╤Л╨▓╨░╤В╤М ╤Н╤В╨╛ ╨▓╤А╤Г╤З╨╜╤Г╤О?
╨╖╨░╤В╨╕╤А╨░╤В╤М ╨╗╨╕╤И╨╜╨╕╨╣ ╤Б╤В╨╛╨╗╨▒╨╡╤Ж, ╨▓╤Л╨▓╨╡╨┤╨╡╨╜╨╜╤Л╨╣ ld-push = 21+13 = 34 t/line
╤А╨╕╤Б╨╛╨▓╨░╤В╤М ╨╝╨╡╨╜╤М╤И╨╡ ╨▓ ld-push ╨╕ ╨╛╤В╤А╨╕╤Б╨╛╨▓╤Л╨▓╨░╤В╤М ╤Н╤В╨╛ ╨▓╤А╤Г╤З╨╜╤Г╤О = 24 t/line ╨▓╤Л╨│╨╛╨┤╨╜╨╡╨╡
╨╛╨▒╤Й╨╕╨╣ ╨▓╤Л╨╕╨│╤А╤Л╤И ╨┤╨╛ 10(t/line)*4(layers)*200(lines) = 8000t

╨┤╨╗╤П ╤А╨░╨▓╨╜╨╛╨╝╨╡╤А╨╜╨╛╤Б╤В╨╕ ╨┤╨╡╨╗╨░╤В╤М ╨╜╨╡╤З╤С╤В╨╜╤Г╤О ╤И╨╕╤А╨╕╨╜╤Г, ╤З╤В╨╛╨▒╤Л ╨▓╨╡╨╖╨┤╨╡ ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨░ (╨╗╨╕╨▒╨╛ ╤Б╨╗╨╡╨▓╨░, ╨╗╨╕╨▒╨╛ ╤Б╨┐╤А╨░╨▓╨░)?


╨║╨░╨║ ╨┐╨╡╤А╨╡╤Е╨╛╨┤╨╕╤В╤М ╨┐╨╛ ╤Б╤В╤А╨░╨╜╨╕╤Ж╨░╨╝?
[╨┤╨╗╤П ╨▓╤Л╨▓╨╛╨┤╨░ 200 ╤Б╤В╤А╨╛╨║ (╨╕╨╖ ╨╜╨╕╤Е 100 ╨┐╨╛╨┤╤А╤П╨┤) ╨╜╨░╨┤╨╛ ╨┐╤А╨╛╨╣╤В╨╕ 2 ╨╕╨╗╨╕ 3 ╤Б╤В╤А╨░╨╜╨╕╤Ж╤Л!
╨┐╤А╨╕ ╤Н╤В╨╛╨╝ ╨┤╨╛╨╗╨╢╨╜╨░ ╨▒╤Л╤В╤М ╨┐╨╛╨┤╨║╨╗╤О╤З╨╡╨╜╨░ ╨╛╨┤╨╜╨░ ╤Б╤В╤А╨░╨╜╨╕╤Ж╨░ ╤Н╨║╤А╨░╨╜╨░ ╨╕ ╨║╨░╨║╨░╤П-╤В╨╛ ╤Б╤В╤А╨░╨╜╨╕╤Ж╨░ ╤Б im 1
╤Б╨┤╨╡╨╗╨░╤В╤М ╨┐╨╛╨┤╤А╤П╨┤ ╤В╨╛╨╗╤М╨║╨╛ 50 ╤Б╤В╤А╨╛╨║, ╤З╤В╨╛╨▒╤Л ╨┐╤А╨╛╨╣╤В╨╕ ╨╜╨╡ ╨▒╨╛╨╗╨╡╨╡ 2 ╤Б╤В╤А╨░╨╜╨╕╤Ж ╨║╨╛╨┤╨░?
0x0000 - im 1, ╨▓╤Л╨╖╤Л╨▓╨░╨╗╨║╨░
0x4000 - ╤Б╤В╤А╨░╨╜╨╕╤Ж╨░ ╤Н╨║╤А╨░╨╜╨░
0x8000,0xc000 - ╨┤╨▓╨╡ ╤Б╤В╤А╨░╨╜╨╕╤Ж╤Л ╨║╨╛╨┤╨░
╤В╨╛ ╨╡╤Б╤В╤М ╨▓╤Л╨▓╨╛╨┤╨╕╨╗╨║╨░ ╨╛╨┤╨╜╨╛╨│╨╛ ╤Б╨╗╨╛╤П ╤Н╨║╤А╨░╨╜╨░ (╨░ ╨▓╤Б╨╡╨│╨╛ 4 ╤Б╨╗╨╛╤П) ╨┤╨╛╨╗╨╢╨╜╨░ ╤Б╨╛╨┤╨╡╤А╨╢╨░╤В╤М 4 ╨▓╤Л╨╖╨╛╨▓╨░ - ╤З╤С╤В╨╜╤Л╨╡ ╤Б╤В╤А╨╛╨║╨╕ ╨▓╨╡╤А╤Е, ╨╜╨╕╨╖, ╨╜╨╡╤З╤С╤В╨╜╤Л╨╡ ╤Б╤В╤А╨╛╨║╨╕ ╨▓╨╡╤А╤Е, ╨╜╨╕╨╖
╤В╨░╨║ ╨╝╨╛╨╢╨╜╨╛ ╨╖╨░╤Ж╨╕╨║╨╗╨╕╤В╤М ╤Н╨║╤А╨░╨╜ ╨┐╨╛ ╨▓╨╡╤А╤В╨╕╨║╨░╨╗╨╕ ╨╜╨░ N*128 ╨┐╨╕╨║╤Б╨╡╨╗╨╡╨╣]


╨░ ╤З╤В╨╛ ╨╡╤Б╨╗╨╕ ╨▓╤Л╨╖╤Л╨▓╨░╨╗╨║╨░ ╨╗╨╡╨╢╨╕╤В ╨▓ ╨╛╤В╨┤╨╡╨╗╤М╨╜╨╛╨╣ ╤Б╤В╤А╨░╨╜╨╕╤Ж╨╡ ╤Б ╤И╨░╨│╨╛╨╝ 128 ╨╕╨╗╨╕ 256 (╨║╨░╨╢╨┤╨░╤П ╤Б╤В╤А╨╛╨║╨░ ╨▓╤Л╨╖╤Л╨▓╨░╨╗╨║╨╕ ╤Б╨▓╤П╨╖╨░╨╜╨░ ╤Б╨╛ ╤Б╤В╤А╨╛╨║╨╛╨╣ ╨│╤А╨░╤Д╨╕╨║╨╕ ╨┐╨╛ ╨░╨┤╤А╨╡╤Б╤Г +0x4000), ╤В╨░╨║ ╤З╤В╨╛ ╤Б╨░╨╝╨░ ╨╝╨╛╨╢╨╡╤В ╨║╨╛╨╜╤В╤А╨╛╨╗╨╕╤А╨╛╨▓╨░╤В╤М ╨▓╤Л╤Е╨╛╨┤ ╨╕╨╖ ╤Б╤В╤А╨░╨╜╨╕╤Ж╤Л?

╤З╤В╨╛ ╨╡╤Б╨╗╨╕ ╨║╨░╨╢╨┤╨░╤П ╤Б╤В╤А╨╛╨║╨░ ╨│╤А╨░╤Д╨╕╨║╨╕ ╨┐╤А╨╕ ╨╗╤О╨▒╨╛╨╝ ╤Б╨║╤А╨╛╨╗╨╗╨╡ (╨┤╨░╨╢╨╡ ╨╜╤Г╨╗╨╡╨▓╨╛╨╝) ╨┐╤А╨╛╤Е╨╛╨┤╨╕╤В ╤З╨╡╤А╨╡╨╖ jp N, ╨░ ╤Н╤В╨╛╤В jp N (╨╜╨░ ╨┐╨╛╤Б╨╗╨╡╨┤╨╜╨╡╨╣ ╤Б╤В╤А╨╛╨║╨╡) ╨╝╨╛╨╢╨╡╤В ╨┐╨╡╤А╨╡╨╜╨░╤Б╤В╤А╨╛╨╕╤В╤М hl ╨╕╨╗╨╕ ix ╨┤╨╗╤П ╨┐╨╡╤А╨╡╤Е╨╛╨┤╨░ ╨╜╨░ ╨▓╨╡╤В╨║╤Г ╤Б ╨┐╨╡╤А╨╡╨║╨╗╤О╤З╨╡╨╜╨╕╨╡╨╝ ╤Б╤В╤А╨░╨╜╨╕╤Ж╤Л?
╤В╨╛╨│╨┤╨░ ╨╝╨╛╨╢╨╜╨╛ ╤Б╨┤╨╡╨╗╨░╤В╤М ╨╜╨░╨▒╨╛╤А ╨▓╤Л╨╖╤Л╨▓╨░╨╗╨╛╨║ ╤З╨╡╤А╨╡╨╖ 256, ╨┐╤А╨╕╨▓╤П╨╖╨░╨╜╨╜╤Л╨╣ ╨║ ╤Н╨║╤А╨░╨╜╤Г (╨╜╨╡ ╨┐╤А╨╕╨▓╤П╨╖╨░╨╜╨╜╤Л╨╣ ╨║ ╨║╨╛╨┤╤Г ╨│╤А╨░╤Д╨╕╨║╨╕):
ld (hl),d;0xe9 ;jp (hl) ;
exx
ld sp, ;╨╜╨░╨┤╨╛ ╨┤╨▓╨╡ ╨║╨╛╨┐╨╕╨╕ ╨┤╨╗╤П ╤А╨╕╤Б╨╛╨▓╨░╨╜╨╕╤П 0..39 ╨╕╨╗╨╕ 1..40 ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓ (sp+1) *2 ╨║╨╛╨┐╨╕╨╕ ╨┤╨╗╤П +0/0x2000
jp (ix)
...
ld-push
jp N ;╨┐╤А╨╕ ╨╗╤О╨▒╨╛╨╣ ╨┐╨╛╨╖╨╕╤Ж╨╕╨╕ ╤Б╨║╤А╨╛╨╗╨╗╨░ ╨┐╨╛ X (╨┐╤А╨╕ ╨╜╤Г╨╗╨╡╨▓╨╛╨╣ ╨▓╤Е╨╛╨┤╨╕╨╝ ╨┐╤А╤П╨╝╨╛ ╨▓ jp N) - ╤В.╨╡. ╤И╨╕╤А╨╕╨╜╨░ ldpush ╤А╨░╨▓╨╜╨░ ╤И╨╕╤А╨╕╨╜╨╡ ╤Н╨║╤А╨░╨╜╨░!!!
...
ld-push
jp (hl)
...
nnnext_i
inc hx
inc h
exx
ld (hl),e;0x11/0xc3 ;ld de/jp NN
inc h
;70t/line * 4 layers = 56000t
;-4t ╨┐╤А╨╕ ╨╛╤В╨┤╨╡╨╗╤М╨╜╨╛╨╝ ╨┐╨░╤В╤З╨╡ ╨╕ ╤А╨░╤Б╨┐╨░╤В╤З╨╡

╨┤╨╗╤П ╤Г╨┤╨╛╨▒╤Б╤В╨▓╨░ ╤Е╤А╨░╨╜╨╡╨╜╨╕╤П ╨╗╤Г╤З╤И╨╡ ╨┐╨╡╤А╨╡╤Е╨╛╨┤╤Л ╤Е╤А╨░╨╜╨╕╤В╤М ╨▓ ╤Б╨╗╨╡╨┤╤Г╤О╤Й╨╡╨╝ ╨╛╨║╨╜╨╡, ╤З╤В╨╛╨▒╤Л ╨╜╨╡ ╤В╤А╨░╤В╨╕╤В╤М ╨╝╨╡╤Б╤В╨╛ ╨▓ ╨║╨░╨╢╨┤╨╛╨╣ ╨┐╨░╨│╨╡ ╨│╤А╨░╤Д╨╕╨║╨╕ (╤В╨░╨║ ╨╕ ╨┐╨╡╤А╨╡╨║╨╗╤О╤З╨╕╤В╤М ╨┐╨░╨│╤Г ╨┐╤А╨╛╤Й╨╡), ╨╛╨╜╨╕ ╨╢╨╡ ╨┐╨╡╤А╨╡╤Е╨╛╨┤╤П╤В ╤Б╨░╨╝╨╕ ╨╜╨░ ╨╜╤Г╨╢╨╜╨╛╨╡ ╨╝╨╡╤Б╤В╨╛ ╨│╤А╨░╤Д╨╕╨║╨╕ ╨▓ ╨╜╨╛╨▓╨╛╨╣ ╨┐╨░╨│╨╡
╨╗╤Г╤З╤И╨╡ ╨╝╨╡╨╜╤П╤В╤М ix, ╨░ hl ╨┐╤Г╤Б╤В╤М ╨╜╨╡ ╨╝╨╡╨╜╤П╨╡╤В╤Б╤П (╨▓╤Л╨╖╤Л╨▓╨░╨╗╨║╨░ ╨┐╤Г╤Б╤В╤М ╨▓╤Б╨╡╨│╨┤╨░ ╨╛╨┤╨╕╨╜╨░╨║╨╛╨▓╨░╤П)
0x0000: im1
0x4000: screen page
0x8000: gfx page
0xc000: ╨▓ ╨╜╨░╤З╨░╨╗╨╡ ╨┐╨╡╤А╨╡╤Е╨╛╨┤╤Л ╨╜╨░ ╤Б╨╗╨╡╨┤╤Г╤О╤Й╤Г╤О gfx page, ╨┐╨╛╤В╨╛╨╝ ╨▓╤Л╨╖╤Л╨▓╨░╨╗╨║╨░

╨╝╨╛╨╢╨╜╨╛ ╤В╨░╨║╨╛╨╣ ╨╢╨╡ ╨╝╨╡╤В╨╛╨┤ ╨╕ ╨▒╨╡╨╖ ╤Б╨║╤А╨╛╨╗╨╗╨░ ╨┐╨╛ X: ╨┐╨╛╤Б╨╗╨╡╨┤╨╜╤П╤П ╤Б╤В╤А╨╛╨║╨░ ╨▓ ╤Б╤В╤А╨░╨╜╨╕╤Ж╨╡ (╨╕╨╗╨╕ ╨┐╨╡╤А╨▓╨░╤П ╤Б╤В╤А╨╛╨║╨░ ╨┐╨╛╤Б╨╗╨╡ ╨╛╨║╨╛╨╜╤З╨░╨╜╨╕╤П ╤Б╤В╤А╨░╨╜╨╕╤Ж╤Л) ╤Б╨╛╤Б╤В╨╛╨╕╤В ╨╕╨╖ jp ╨╜╨░ ╨┐╨╡╤А╨╡╨║╨╗╤О╤З╨░╨╗╨║╤Г ╤Б╤В╤А╨░╨╜╨╕╤Ж ╨╕ ╨┐╨╡╤А╨╡╤Е╨╛╨┤╨░ ╨▓ ╨╜╤Г╨╢╨╜╨╛╨╡ ╨╝╨╡╤Б╤В╨╛ ╨╜╨╛╨▓╨╛╨╣ ╤Б╤В╤А╨░╨╜╨╕╤Ж╤Л (╤В╨╛╨│╨┤╨░ ╨┐╨░╤В╤З-╤А╨░╤Б╨┐╨░╤В╤З ╨╜╨░╨┤╨╛ ╨╛╤В╨┤╨╡╨╗╤М╨╜╨╛!)






(╨╜╨╛ ╨┤╨╗╤П ╨│╨╛╨╜╨║╨╕ ╨╜╨╡╤Г╨┤╨╛╨▒╨╜╨╛ ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╤Л╨▓╨░╤В╤М ╨│╤А╨░╤Д╨╕╨║╤Г ╨┐╤А╨╕ ╤Б╨║╤А╨╛╨╗╨╗╨╡ ╨┐╨╛ 8 ╨┐╨╕╨║╤Б ╨╖╨░ ╨║╨░╨┤╤А, ╤Г╨┤╨╛╨▒╨╜╨╛ ╨╕╨╝╨╡╤В╤М ╤В╨░╨▒╨╗╨╕╤Ж╤Г ╤Б╤В╤А╨╛╨║ ╨╕ ╨╕╤Е ╤Б╨┤╨▓╨╕╨│╨╛╨▓. ╤В╨░╨╝ ╨▓╤Л╨╖╤Л╨▓╨░╨╗╨║╨░ ╤Б╨╛╨▓╤Б╨╡╨╝ ╨┤╤А╤Г╨│╨░╤П!!!)



╨Ф╨╗╤П ╤Б╨║╤А╨╛╨╗╨╗╨░ ╨╜╨╡╨╖╨░╤Ж╨╕╨║╨╗╨╡╨╜╨╜╨╛╨╣ ╨║╨░╤А╤В╨╕╨╜╨║╨╕ 1024xHGT ╨╝╨╛╨╢╨╜╨╛ ╨┐╤А╨╛╤Й╨╡:

UVSCROLL_WID=1024
;0x0000: im1
;0x4000: screen page
;0x8000: gfx page
;0xc000: ╨▓ ╨╜╨░╤З╨░╨╗╨╡ ╨┐╨╡╤А╨╡╤Е╨╛╨┤╤Л ╨╜╨░ ╤Б╨╗╨╡╨┤╤Г╤О╤Й╤Г╤О gfx page, ╨┐╨╛╤В╨╛╨╝ ╨▓╤Л╨╖╤Л╨▓╨░╨╗╨║╨░

;patch:
ld (hl),d;0x01 ;ld bc
inc h ;╨░╨┤╤А╨╡╤Б ╤Б╨╗╨╡╨┤╤Г╤О╤Й╨╡╨│╨╛ ldpush ╨┤╨╗╤П ╨┐╨░╤В╤З╨░
╨░) ╤Б╤В╤А╨░╨╜╨╕╤Ж╨░ ╨╜╨╡ ╨╛╤В ╨╜╨░╤З╨░╨╗╨░
╨▒) ╤Б╤В╤А╨░╨╜╨╕╤Ж╨░ ╤Ж╨╡╨╗╨╕╨║╨╛╨╝
╨▓) ╤Б╤В╤А╨░╨╜╨╕╤Ж╨░ ╨╜╨╡ ╨┤╨╛ ╨║╨╛╨╜╤Ж╨░
╨▓╤Б╤С ╨╝╨╛╨╢╨╜╨╛ ╤З╨╡╤А╨╡╨╖ ╨╛╨┤╨╜╤Г ╨┐╤А╨╛╤Ж╨╡╨┤╤Г╤А╤Г, ╨▓╤Л╨╖╤Л╨▓╨░╨╡╨╝╤Г╤О ╤Б ╤А╨░╨╖╨╜╤Л╤Е ╨░╨┤╤А╨╡╤Б╨╛╨▓:


UVscroll_unpatch
        ld d,0x01 ;d=patch byte ld bc
        jr UVscroll_patch_d

UVscroll_patch
        ld a,4 ;layer 0..3 + 4
;a=layer 0..3 + 4
        ld d,0xe9 ;d=patch byte jp (hl)
UVscroll_patch_d
        ld hl,(xscroll) ;0..511 for 0..1022 pixels
        add a,l
        ld l,a
        adc a,h
        sub l
        rra        
        ld a,l
        rr l ;l=(xscroll+layer+4)/2
        exx
        ;and 3 ;a=(xscroll+layer+4)&3
        ld hl,(yscroll) ;0..511
        add hl,hl
        add hl,hl
        add hl,hl
        add hl,hl ;h=yscroll/16
        xor h
        and 3
        xor h ;a=(xscroll+layer)&3 + ((yscroll/64)*4)
        ld hl,tpushpgs
        add a,l
        ld l,a
        adc a,h
        sub l
        ld h,a
        exx ;hl'=╤Б╨┐╨╕╤Б╨╛╨║ ╤Б╤В╤А╨░╨╜╨╕╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕ =f((xscroll+layer)&3 + ((yscroll/64)*4))
        ld a,(yscroll) ;0..511
        and 63
        add a,0x80
        ld h,a
        ld a,l
        and 0xfc
        add a,+(UVSCROLL_SCRNPUSHES*4)-1
        ld l,a
        inc hl
        ;jp UVscroll_patchpp

;╨║╨╛╨╜╨╡╤Ж (╨║╤А╨░╨╣╨╜╨╡╨╡ ╨┐╤А╨░╨▓╨╛╨╡ ╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╡ L ╨┐╤А╨╕ ╨▓╤Л╨╖╨╛╨▓╨╡) = 256-(UVSCROLL_SCRNPUSHES*4)
;╨░╨┤╤А╨╡╤Б ╨▓╤Е╨╛╨┤╨░ ╨│╤А╨░╤Д╨╕╨║╨╕: ╨║╨╛╨╜╨╡╤Ж - ((xscroll+layer+4)/2&0xfc)
UVscroll_patchpp
;d=patch byte
;h=0x80+(yscroll&63)
;l=f(xscroll+layer) ;L = ╨░╨┤╤А╨╡╤Б ╨┐╨░╤В╤З╨░ ╨▓╤Л╤Е╨╛╨┤╨░ = ╨░╨┤╤А╨╡╤Б ╨▓╤Е╨╛╨┤╨░ ╨│╤А╨░╤Д╨╕╨║╨╕ + (UVSCROLL_SCRNPUSHES*4) (╨▓╨╛╨╖╨╝╨╛╨╢╨╡╨╜ ╨┐╨╡╤А╨╡╤Е╨╛╨┤ ╨╜╨░ ╤Б╨╗╨╡╨┤╤Г╤О╤Й╨╕╨╣ ╤Б╨╡╨│╨╝╨╡╨╜╤В H!!!)
;hl'=╤Б╨┐╨╕╤Б╨╛╨║ ╤Б╤В╤А╨░╨╜╨╕╤Ж ╨│╤А╨░╤Д╨╕╨║╨╕ =f((xscroll+layer)&3 + ((yscroll/64)*4))
        ;ld e,UVSCROLL_SCRHGT
        exx
        ld a,(hl)
        SETPG32KHIGH
        exx
        xor a
        sub h
        add a,a ;a=0..64*2
        ld (UVscroll_patcher_patch0),a
        ld a,UVSCROLL_SCRHGT
        add a,h
        ld e,a
UVscroll_patcher_patch0=$+1
        call UVscroll_patcher
UVscroll_patcher0
        exx
        inc hl
        ld a,(hl)
        SETPG32KHIGH
        exx
        ld h,0xc0
        ld a,e
        add a,h
        jr nc,UVscroll_patcher0q ;a=-64..-1
        ld e,a
        call UVscroll_patcher
        jp UVscroll_patcher0
UVscroll_patcher0q
        add a,a ;a=-128..-2
        and 0x7f
        ld (UVscroll_patcher_patch1),a
UVscroll_patcher_patch1=$+1
        call UVscroll_patcher
        ret

        align 256
UVscroll_patcher
        dup 63
        ld (hl),d
        inc h
        edup
        ld (hl),d
        ret



;0xc103/43/83/c3:
;ld sp, ;╨╜╨░╨┤╨╛ ╨┤╨▓╨╡ ╨║╨╛╨┐╨╕╨╕ ╨┤╨╗╤П ╤А╨╕╤Б╨╛╨▓╨░╨╜╨╕╤П 0..39 ╨╕╨╗╨╕ 1..40 ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓ (sp+1) *2 ╨║╨╛╨┐╨╕╨╕ ╨┤╨╗╤П +0/0x2000
;jp (ix)
;...
;ld-push ;╨▓╤Б╨╡╨│╨╛ ╨╕╤Е UVSCROLL_NPUSHES
;jp (hl) ;╨╜╨░╤И ╨┐╨░╤В╤З ╨▓╨╝╨╡╤Б╤В╨╛ ld de
...
;nnnext_i
;inc hx ;╨░╨┤╤А╨╡╤Б ╤Б╨╗╨╡╨┤╤Г╤О╤Й╨╡╨│╨╛ ldpush
;inc h ;╨░╨┤╤А╨╡╤Б ╤Б╨╗╨╡╨┤╤Г╤О╤Й╨╡╨│╨╛ nnnext_i
;56t/line * 4 layers

;╨▓ ╨┐╨╛╤Б╨╗╨╡╨┤╨╜╨╡╨╣ ╤Б╤В╤А╨╛╨║╨╡ ╤Б╤В╤А╨░╨╜╨╕╤Ж╤Л ╨▓╤Л╨╖╤Л╨▓╨░╨╗╨║╨╕ (0xffxx) ╨▓╨╝╨╡╤Б╤В╨╛ ╤Н╤В╨╛╨│╨╛:
;nnnext_i
;ld sp, ;╨╜╨░╨┤╨╛ ╨┤╨▓╨╡ ╨║╨╛╨┐╨╕╨╕ ╨┤╨╗╤П ╤А╨╕╤Б╨╛╨▓╨░╨╜╨╕╤П 0..39 ╨╕╨╗╨╕ 1..40 ╤Б╤В╨╛╨╗╨▒╤Ж╨╛╨▓ (sp+1) *2 ╨║╨╛╨┐╨╕╨╕ ╨┤╨╗╤П +0/0x2000 - ╨║╨╛╨┐╨╕╨╕ ╨╝╨╛╨╢╨╜╨╛ ╤А╨░╨╖╨╝╨╡╤Б╤В╨╕╤В╤М ╨▓ ╤В╨╡╤Е ╨╢╨╡ ╤Б╤В╤А╨░╨╜╨╕╤Ж╨░╤Е, ╨╜╨╛ ╤Б ╨┤╤А╤Г╨│╨╕╨╝╨╕ L ╨░╨┤╤А╨╡╤Б╨░╨╝╨╕
;ld a,N
;SETPG32KHIGH
;inc hx ;╨░╨┤╤А╨╡╤Б ╤Б╨╗╨╡╨┤╤Г╤О╤Й╨╡╨│╨╛ ldpush
;inc h ;╨░╨┤╤А╨╡╤Б ╤Б╨╗╨╡╨┤╤Г╤О╤Й╨╡╨│╨╛ nnnext_i
;jp (ix)

;╨▓ ╨┐╨╛╤Б╨╗╨╡╨┤╨╜╨╡╨╣ ╤Б╤В╤А╨╛╨║╨╡ ╤Н╨║╤А╨░╨╜╨░ ╨▓╨╝╨╡╤Б╤В╨╛ ╨▓╤Б╨╡╨│╨╛ ╤Н╤В╨╛╨│╨╛:
;jp UVscroll_endofscreen
;...
;UVscroll_endofscreen
;ld sp,0
;ret

;╨┐╨╛╤Б╨╗╨╡ ╨┐╨╛╤Б╨╗╨╡╨┤╨╜╨╡╨╣ ╤Б╤В╤А╨╛╨║╨╕ ╨│╤А╨░╤Д╨╕╨║╨╕ (0xc0xx) ╨▓╨╝╨╡╤Б╤В╨╛ ld-push (╨▓ ╨╗╤О╨▒╨╛╨╣ ╤Б╤В╤А╨░╨╜╨╕╤Ж╨╡ ╨▓╤Л╨╖╤Л╨▓╨░╨╗╨║╨╕!):
;dup UVSCROLL_NPUSHES
;jp uvscroll_nextgfxpg
;nop
;edup

uvscroll_nextgfxpg
;sp=scr
        exx
        ld a,(hl) ;gfx pages
        inc hl
        SETPG32KLOW
        exx
        ld hx,0x80
        jp (ix)






╨Ь╨╛╨╢╨╜╨╛ ╨╜╨░ ╨╛╤Б╨╜╨╛╨▓╨╡ ╨┐╤А╨╛╤Б╤В╨╛╨│╨╛ ╨╜╨╡╨╖╨░╤Ж╨╕╨║╨╗╨╡╨╜╨╜╨╛╨│╨╛ ╤Б╨║╤А╨╛╨╗╨╗╨░ ╤Б╨┤╨╡╨╗╨░╤В╤М ╨╖╨░╤Ж╨╕╨║╨╗╨╡╨╜╨╜╤Л╨╣ ╤Б ╨┐╨╛╨┤╤А╨╕╤Б╨╛╨▓╨║╨╛╨╣ ╤Б ╨▒╨╛╨║╨╛╨▓? ╤В╨╕╨┐╨░ ╨╝╤Л ╨╕╨╝╨╡╨╡╨╝ ╨┐╤А╨╛╤Б╤В╨╛ ╨╝╨░╤В╤А╨╕╤Ж╤Г ld-push, ╤В╨╡╨║╤Г╤Й╨╡╨╡ ╨╛╨║╨╜╨╛ ╨╝╨╛╨╢╨╡╤В ╨┐╨╡╤А╨╡╤Б╨╡╨║╨░╤В╤М ╨│╤А╨░╨╜╨╕╤Ж╤Г ╤Б╨╡╨│╨╝╨╡╨╜╤В╨╛╨▓
╨┤╨╗╤П ╤Н╤В╨╛╨│╨╛ ╨╜╨░╨┤╨╛ ╨╖╨░╤Ж╨╕╨║╨╗╨╕╤В╤М ╨▒╨╗╨╛╨║ ld-push ╨┐╨╛ ╨▓╨╡╤А╤В╨╕╨║╨░╨╗╨╕ ╤З╨╡╤А╨╡╨╖ uvscroll_nextgfxpg



----------------

╨▒╤Л╨╗╨╛ ╤В╨░╨║:

╨▓╨╕╨┤╨╕╨╝ 1:
- ╤А╨╕╤Б╤Г╨╡╨╝ ╤Д╨╛╨╜ 0
- ╤А╨╕╤Б╤Г╨╡╨╝ ╤Б╨┐╤А╨░╨╣╤В╤Л 0
- ╨┤╨▓╨╕╨│╨░╨╡╨╝ ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л
- ╨╝╨╡╨╜╤П╨╡╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╣ ╨╜╨╛╨╝╨╡╤А ╤Н╨║╤А╨░╨╜╨░
- ╨╗╨╛╨│╨╕╨║╨░ (╨╝╨╡╨╜╤П╨╡╤В ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л 1)
[╨╛╨╢╨╕╨┤╨░╨╡╨╝, ╤З╤В╨╛ ╨┐╤А╨╛╤И╨╗╨╛ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╡ ╤Б ╨╝╨╛╨╝╨╡╨╜╤В╨░ ╤Б╨╝╨╡╨╜╤Л ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╛╨│╨╛ ╨╜╨╛╨╝╨╡╤А╨░ ╤Н╨║╤А╨░╨╜╨░]
╨▓╨╕╨┤╨╕╨╝ 0:
- ╤А╨╕╤Б╤Г╨╡╨╝ ╤Д╨╛╨╜ 1
- ╤А╨╕╤Б╤Г╨╡╨╝ ╤Б╨┐╤А╨░╨╣╤В╤Л 1
- ╨┤╨▓╨╕╨│╨░╨╡╨╝ ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л
- ╨╝╨╡╨╜╤П╨╡╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╣ ╨╜╨╛╨╝╨╡╤А ╤Н╨║╤А╨░╨╜╨░
- ╨╗╨╛╨│╨╕╨║╨░ (╨╝╨╡╨╜╤П╨╡╤В ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л 0)
[╨╛╨╢╨╕╨┤╨░╨╡╨╝, ╤З╤В╨╛ ╨┐╤А╨╛╤И╨╗╨╛ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╡ ╤Б ╨╝╨╛╨╝╨╡╨╜╤В╨░ ╤Б╨╝╨╡╨╜╤Л ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╛╨│╨╛ ╨╜╨╛╨╝╨╡╤А╨░ ╤Н╨║╤А╨░╨╜╨░]


╨Ъ╨╛╨│╨┤╨░ ╨╜╨╡╤В ╤Б╨║╤А╨╛╨╗╨╗╨░, ╨╝╨╛╨╢╨╜╨╛ ╨╜╨╡ ╨┐╨╡╤А╨╡╤А╨╕╤Б╨╛╨▓╤Л╨▓╨░╤В╤М ╤Д╨╛╨╜
╨Ф╨╛╨┐╤Г╤Б╤В╨╕╨╝, ╨▒╤Г╨┤╨╡╨╝ ╨▓╨╛╤Б╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╤В╤М ╤Д╨╛╨╜ ╨┐╨╛╨┤ ╤Б╨┐╤А╨░╨╣╤В╨░╨╝╨╕ ╤Б ╨┤╤А╤Г╨│╨╛╨│╨╛ ╤Н╨║╤А╨░╨╜╨░


╨▓╨╕╨┤╨╕╨╝ 1:
- ╨▓╨╛╤Б╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╤Д╨╛╨╜ ╨┐╨╛╨┤ ╤Б╨┐╤А╨░╨╣╤В╨░╨╝╨╕ B ╨╕╨╗╨╕ ╨┐╨╡╤А╨╡╤А╨╕╤Б╨╛╨▓╤Л╨▓╨░╨╡╨╝ ╤Д╨╛╨╜ 0 (╨╡╤Б╨╗╨╕ ╤Б╨┤╨▓╨╕╨╜╤Г╨╗╨░╤Б╤М ╨║╨░╨╝╨╡╤А╨░ ╨┐╨╛ ╤Б╤А╨░╨▓╨╜╨╡╨╜╨╕╤О ╤Б ╨┐╤А╨╛╤И╨╗╤Л╨╝ 0)
- ╤Б╨╛╤Б╤В╨░╨▓╨╗╤П╨╡╨╝ ╤Б╨┐╨╕╤Б╨╛╨║ ╤Б╨┐╤А╨░╨╣╤В╨╛╨▓ A
- ╤А╨╕╤Б╤Г╨╡╨╝ ╤Б╨┐╤А╨░╨╣╤В╤Л A ╨╜╨░ 0
- ╨┤╨▓╨╕╨│╨░╨╡╨╝ ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л
- ╨╝╨╡╨╜╤П╨╡╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╣ ╨╜╨╛╨╝╨╡╤А ╤Н╨║╤А╨░╨╜╨░
- ╨╗╨╛╨│╨╕╨║╨░ (╨╝╨╡╨╜╤П╨╡╤В ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л B)
[╨╛╨╢╨╕╨┤╨░╨╡╨╝, ╤З╤В╨╛ ╨┐╤А╨╛╤И╨╗╨╛ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╡ ╤Б ╨╝╨╛╨╝╨╡╨╜╤В╨░ ╤Б╨╝╨╡╨╜╤Л ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╛╨│╨╛ ╨╜╨╛╨╝╨╡╤А╨░ ╤Н╨║╤А╨░╨╜╨░]
╨▓╨╕╨┤╨╕╨╝ 0:
- ╨▓╨╛╤Б╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╤Д╨╛╨╜ ╨┐╨╛╨┤ ╤Б╨┐╤А╨░╨╣╤В╨░╨╝╨╕ C ╨╜╨░ 1 ╨╕╨╗╨╕ ╨┐╨╡╤А╨╡╤А╨╕╤Б╨╛╨▓╤Л╨▓╨░╨╡╨╝ ╤Д╨╛╨╜ 1 (╨╡╤Б╨╗╨╕ ╤Б╨┤╨▓╨╕╨╜╤Г╨╗╨░╤Б╤М ╨║╨░╨╝╨╡╤А╨░ ╨┐╨╛ ╤Б╤А╨░╨▓╨╜╨╡╨╜╨╕╤О ╤Б ╨┐╤А╨╛╤И╨╗╤Л╨╝ 1)
- ╤Б╨╛╤Б╤В╨░╨▓╨╗╤П╨╡╨╝ ╤Б╨┐╨╕╤Б╨╛╨║ ╤Б╨┐╤А╨░╨╣╤В╨╛╨▓ B
- ╤А╨╕╤Б╤Г╨╡╨╝ ╤Б╨┐╤А╨░╨╣╤В╤Л B ╨╜╨░ 1
- ╨┤╨▓╨╕╨│╨░╨╡╨╝ ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л
- ╨╝╨╡╨╜╤П╨╡╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╣ ╨╜╨╛╨╝╨╡╤А ╤Н╨║╤А╨░╨╜╨░
- ╨╗╨╛╨│╨╕╨║╨░ (╨╝╨╡╨╜╤П╨╡╤В ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л C)
[╨╛╨╢╨╕╨┤╨░╨╡╨╝, ╤З╤В╨╛ ╨┐╤А╨╛╤И╨╗╨╛ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╡ ╤Б ╨╝╨╛╨╝╨╡╨╜╤В╨░ ╤Б╨╝╨╡╨╜╤Л ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╛╨│╨╛ ╨╜╨╛╨╝╨╡╤А╨░ ╤Н╨║╤А╨░╨╜╨░]
╨▓╨╕╨┤╨╕╨╝ 1:
- ╨▓╨╛╤Б╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╤Д╨╛╨╜ ╨┐╨╛╨┤ ╤Б╨┐╤А╨░╨╣╤В╨░╨╝╨╕ A ╨╕╨╗╨╕ ╨┐╨╡╤А╨╡╤А╨╕╤Б╨╛╨▓╤Л╨▓╨░╨╡╨╝ ╤Д╨╛╨╜ 0 (╨╡╤Б╨╗╨╕ ╤Б╨┤╨▓╨╕╨╜╤Г╨╗╨░╤Б╤М ╨║╨░╨╝╨╡╤А╨░ ╨┐╨╛ ╤Б╤А╨░╨▓╨╜╨╡╨╜╨╕╤О ╤Б ╨┐╤А╨╛╤И╨╗╤Л╨╝ 0)
- ╤Б╨╛╤Б╤В╨░╨▓╨╗╤П╨╡╨╝ ╤Б╨┐╨╕╤Б╨╛╨║ ╤Б╨┐╤А╨░╨╣╤В╨╛╨▓ C
- ╤А╨╕╤Б╤Г╨╡╨╝ ╤Б╨┐╤А╨░╨╣╤В╤Л C ╨╜╨░ 0
- ╨┤╨▓╨╕╨│╨░╨╡╨╝ ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л
- ╨╝╨╡╨╜╤П╨╡╨╝ ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╕╨╣ ╨╜╨╛╨╝╨╡╤А ╤Н╨║╤А╨░╨╜╨░
- ╨╗╨╛╨│╨╕╨║╨░ (╨╝╨╡╨╜╤П╨╡╤В ╨║╨╛╨╛╤А╨┤╨╕╨╜╨░╤В╤Л A)
[╨╛╨╢╨╕╨┤╨░╨╡╨╝, ╤З╤В╨╛ ╨┐╤А╨╛╤И╨╗╨╛ ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╨╡ ╤Б ╨╝╨╛╨╝╨╡╨╜╤В╨░ ╤Б╨╝╨╡╨╜╤Л ╨╗╨╛╨│╨╕╤З╨╡╤Б╨║╨╛╨│╨╛ ╨╜╨╛╨╝╨╡╤А╨░ ╤Н╨║╤А╨░╨╜╨░]