рдХреИрд╕реЗ рдореИрдВрдиреЗ рдПрдИ рдХреЛ рдПрдирдИрдПрд╕ рдХреЗ рд▓рд┐рдП рдЯреЗрдЯреНрд░рд┐рд╕ рдЦреЗрд▓рдирд╛ рд╕рд┐рдЦрд╛рдпрд╛ред рднрд╛рдЧ 1: рдЦреЗрд▓ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдирд┐рдВрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЗ рднреНрд░рд╛рдордХ рд╕рд░рд▓ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛, рдФрд░ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдореИрдВрдиреЗ рдПрдХ рдПрдЖрдИ рдмрдирд╛рдпрд╛ рдЬреЛ рдЗрди рдпрд╛рдВрддреНрд░рд┐рдХреА рдХрд╛ рд╢реЛрд╖рдг рдХрд░рддрд╛ рд╣реИред


рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЖрдЬрд╝рдорд╛рдПрдВ


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрдврд╝рддрд╛, рдзреИрд░реНрдп рдФрд░ рд╕рдордп рдХреА рдХрдореА рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдПрдЖрдИ рдмрдирд╛рдпрд╛ рдЬреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдЦреЗрд▓ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЕрдВрдд рдореЗрдВ 30 рдХреЗ рд╕реНрддрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдЧреЗ рднреАред рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЕрдзрд┐рдХрддрдо рдЕрдВрдХ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдкрдВрдХреНрддрд┐ рдХрд╛рдЙрдВрдЯрд░реЛрдВ, рд╕реНрддрд░реЛрдВ рдФрд░ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдВрддрд╣реАрди рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреМрди рд╕реЗ рд░рдВрдЧ рдКрдкрд░ рдХреЗ рд╕реНрддрд░ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЪрдврд╝ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдк рдХрд┐рддрдиреА рджреВрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ


рдПрдЖрдИ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдПрдирдИрдПрд╕ / рдлреЗрдореАрдХреЙрдо рдПрдлрд╕реАрдИрдПрдХреНрд╕ рдПрдореБрд▓реЗрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдХреЛ FCEUX 2.2.2 рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рд╕рдмрд╕реЗ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдерд╛ред

рдЖрдкрдХреЛ рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рд░реЙрдо рдлрд╝рд╛рдЗрд▓ (рдпреВрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг) рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕реЗ Google рдкрд░ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдбрд╛рдЙрдирд▓реЛрдб


рдЗрд╕ рд╕реНрд░реЛрдд рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЕрдирдЬрд╝рд┐рдк lua/NintendoTetrisAI.lua ред

рд▓рд╛рдВрдЪ


FCEUX рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рдореЗрдиреВ рд╕реЗ, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ | рдУрдкрди рд░реЛрдо ... рдУрдкрди рдлрд╛рдЗрд▓ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдореЗрдВ, рдирд┐рдирдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рд░реЛрдо рдлрд╛рдЗрд▓ рдХреЛ рдЪреБрдиреЗрдВ рдФрд░ рдУрдкрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЦреЗрд▓ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдореЗрдиреВ рд╕реЗ, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ | рд▓реБрдЖ | рдирдИ рд▓реБрдЖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдВрдбреЛ ... рд▓реБрдЖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ, NintendoTetrisAI.lua рд▓рд┐рдП рдкрде рджрд░реНрдЬ рдХрд░реЗрдВ рдпрд╛ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, Run рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

Lua рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреЛ рдореЗрдиреВ рдХреА рдкрд╣рд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдЧреАред рдЦреЗрд▓ A- рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЦреЗрд▓ рдЫреЛрдбрд╝ рджреЗрдВ, рдФрд░ рдЖрдк рдХреЛрдИ рднреА рд╕рдВрдЧреАрдд рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рдзреАрдореЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рд╕рдВрдЧреАрдд рдмрд╣реБрдд рдЭрдЯрдХреЗ рд╕реЗ рдЦреЗрд▓ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд▓реА рдореЗрдиреВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯ (рдПрдВрдЯрд░) рджрдмрд╛рдПрдБред рджреВрд╕рд░реЗ рдореЗрдиреВ рдореЗрдВ, рдЖрдк рдкреНрд░рд╛рд░рдВрдн рд╕реНрддрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЧреЗрдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдФрд░ рдпрд╣рд╛рдБ AI рдирд┐рдпрдВрддреНрд░рдг рдХрд░реЗрдЧрд╛ред

рдпрджрд┐ рджреВрд╕рд░реА рдореЗрдиреВ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рд╕реНрддрд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЧреЗрдордкреИрдб рдмрдЯрди A рдХреЛ рджрдмрд╛рдП рд░рдЦреЗрдВ (рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреАрдмреЛрд░реНрдб рд▓реЗрдЖрдЙрдЯ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдирдкреБрдЯ ... рдореЗрдиреВ) рдФрд░ рдкреНрд░рд╛рд░рдВрдн рджрдмрд╛рдПрдВ, рдлрд┐рд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрддрд░ рдЪрдпрдирд┐рдд рдореВрд▓реНрдп рд╕реЗ 10 рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХрддрдо рдкреНрд░рд╡реЗрд╢ рд╕реНрддрд░ рдЙрдиреНрдиреАрд╕рд╡рд╛рдВ рд╣реИред

рд╡рд┐рдиреНрдпрд╛рд╕


рдЦреЗрд▓ рдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдореЗрдВ Lua рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓реЗрдВред рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдвреВрдВрдвреЗрдВред

PLAY_FAST = false

рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ true рд╕рд╛рде false рдмрджрд▓реЗрдВред

PLAY_FAST = true

рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВред рдЗрд╕рдХреЗ рдмрд╛рдж Lua Script рд╡рд┐рдВрдбреЛ рдореЗрдВ рд░рд┐рд╕реНрдЯрд╛рд░реНрдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдирд┐рдирдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдореИрдХреЗрдирд┐рдХреНрд╕


рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдХрд╛ рд╡рд┐рд╡рд░рдг


рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдЖрдХреГрддрд┐ рдПрдХ рдЕрдХреНрд╖рд░ рдХреЗ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдорд┐рд▓рддрд╛ рдЬреБрд▓рддрд╛ рд╣реИред


рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдбрд┐рдЬрд╛рдЗрдирд░ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреНрд░рдо рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЖрдВрдХрдбрд╝реЗ рдЙрд╕ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд░реНрдХрд┐рдЯ рд▓рдЧрднрдЧ рд╕рдордорд┐рдд рдЪрд┐рддреНрд░ рдмрдирд╛рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдЖрджреЗрд╢ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ)ред рдЕрдиреБрдХреНрд░рдо рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЖрдИрдбреА рджреЗрддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реНрддрд░ рдкрд░ рдЕрдиреБрдХреНрд░рдо рдФрд░ рдкреНрд░рдХрд╛рд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ; рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рдЖрдВрдХрдбрд╝реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред


рдирд┐рдВрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ 19 рдЭреБрдХрд╛рд╡ рдПрдирдИрдПрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдореЛрд░реА рдХреЗ $8A9C рдкрд░ рд╕реНрдерд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЖрдХреГрддрд┐ рдХреЛ 12 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рддреНрд░рд┐рдХреЛрдгреАрдп (Y, tile, X) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред $7F рдКрдкрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдЙрдкрд░реЛрдХреНрдд рд╣реЗрдХреНрд╕-рдорд╛рди рдирдХрд╛рд░рд╛рддреНрдордХ рдкреВрд░реНрдгрд╛рдВрдХ ( $FF= тИТ1 , $FF= тИТ1 , рдФрд░ $FE = тИТ2 ) рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред

; Y0 T0 X0 Y1 T1 X1 Y2 T2 X2 Y3 T3 X3

8A9C: 00 7B FF 00 7B 00 00 7B 01 FF 7B 00 ; 00: T up
8AA8: FF 7B 00 00 7B 00 00 7B 01 01 7B 00 ; 01: T right
8AB4: 00 7B FF 00 7B 00 00 7B 01 01 7B 00 ; 02: T down (spawn)
8AC0: FF 7B 00 00 7B FF 00 7B 00 01 7B 00 ; 03: T left

8ACC: FF 7D 00 00 7D 00 01 7D FF 01 7D 00 ; 04: J left
8AD8: FF 7D FF 00 7D FF 00 7D 00 00 7D 01 ; 05: J up
8AE4: FF 7D 00 FF 7D 01 00 7D 00 01 7D 00 ; 06: J right
8AF0: 00 7D FF 00 7D 00 00 7D 01 01 7D 01 ; 07: J down (spawn)

8AFC: 00 7C FF 00 7C 00 01 7C 00 01 7C 01 ; 08: Z horizontal (spawn)
8B08: FF 7C 01 00 7C 00 00 7C 01 01 7C 00 ; 09: Z vertical

8B14: 00 7B FF 00 7B 00 01 7B FF 01 7B 00 ; 0A: O (spawn)

8B20: 00 7D 00 00 7D 01 01 7D FF 01 7D 00 ; 0B: S horizontal (spawn)
8B2C: FF 7D 00 00 7D 00 00 7D 01 01 7D 01 ; 0C: S vertical

8B38: FF 7C 00 00 7C 00 01 7C 00 01 7C 01 ; 0D: L right
8B44: 00 7C FF 00 7C 00 00 7C 01 01 7C FF ; 0E: L down (spawn)
8B50: FF 7C FF FF 7C 00 00 7C 00 01 7C 00 ; 0F: L left
8B5C: FF 7C 01 00 7C FF 00 7C 00 00 7C 01 ; 10: L up

8B68: FE 7B 00 FF 7B 00 00 7B 00 01 7B 00 ; 11: I vertical
8B74: 00 7B FE 00 7B FF 00 7B 00 00 7B 01 ; 12: I horizontal (spawn)

8B80: 00 FF 00 00 FF 00 00 FF 00 00 FF 00 ; 13: Unused


рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдПрдХ рдЕрдкреНрд░рдпреБрдХреНрдд рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рд╕рдВрднрд╡рддрдГ рдПрдХ рдФрд░ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЛрдб рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ, $13 рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдХреНрд░рд┐рдп рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЗ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдорд╛рди рдЕрд╕рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рджрд╢рдорд▓рд╡ рдореЗрдВ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВред

-- { { X0, Y0 }, { X1, Y1 }, { X2, Y2 }, { X3, Y3 }, },

{ { -1, 0 }, { 0, 0 }, { 1, 0 }, { 0, -1 }, }, -- 00: T up
{ { 0, -1 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, }, -- 01: T right
{ { -1, 0 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, }, -- 02: T down (spawn)
{ { 0, -1 }, { -1, 0 }, { 0, 0 }, { 0, 1 }, }, -- 03: T left

{ { 0, -1 }, { 0, 0 }, { -1, 1 }, { 0, 1 }, }, -- 04: J left
{ { -1, -1 }, { -1, 0 }, { 0, 0 }, { 1, 0 }, }, -- 05: J up
{ { 0, -1 }, { 1, -1 }, { 0, 0 }, { 0, 1 }, }, -- 06: J right
{ { -1, 0 }, { 0, 0 }, { 1, 0 }, { 1, 1 }, }, -- 07: J down (spawn)

{ { -1, 0 }, { 0, 0 }, { 0, 1 }, { 1, 1 }, }, -- 08: Z horizontal (spawn)
{ { 1, -1 }, { 0, 0 }, { 1, 0 }, { 0, 1 }, }, -- 09: Z vertical

{ { -1, 0 }, { 0, 0 }, { -1, 1 }, { 0, 1 }, }, -- 0A: O (spawn)

{ { 0, 0 }, { 1, 0 }, { -1, 1 }, { 0, 1 }, }, -- 0B: S horizontal (spawn)
{ { 0, -1 }, { 0, 0 }, { 1, 0 }, { 1, 1 }, }, -- 0C: S vertical

{ { 0, -1 }, { 0, 0 }, { 0, 1 }, { 1, 1 }, }, -- 0D: L right
{ { -1, 0 }, { 0, 0 }, { 1, 0 }, { -1, 1 }, }, -- 0E: L down (spawn)
{ { -1, -1 }, { 0, -1 }, { 0, 0 }, { 0, 1 }, }, -- 0F: L left
{ { 1, -1 }, { -1, 0 }, { 0, 0 }, { 1, 0 }, }, -- 10: L up

{ { 0, -2 }, { 0, -1 }, { 0, 0 }, { 0, 1 }, }, -- 11: I vertical
{ { -2, 0 }, { -1, 0 }, { 0, 0 }, { 1, 0 }, }, -- 12: I horizontal (spawn)


рд╕рднреА рдЭреБрдХрд╛рд╡ 5 ├Ч 5 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд░рдЦреЗ рдЧрдП рд╣реИрдВред


рдКрдкрд░ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ, рд╕рдлреЗрдж рд╡рд░реНрдЧ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЖрдХреГрддрд┐ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдмрд┐рдВрджреБред

рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рд░реЗрдЦрд╛рдВрдХрди рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рд╣реИред


рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ (рдЯреЗрдмрд▓ рдЗрдВрдбреЗрдХреНрд╕) рдкреНрд░рддреНрдпреЗрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдП рдЧрдП mnemonics рдХреЛ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред u , r , d , l , h рдФрд░ v "рдКрдкрд░, рджрд╛рдПрдВ, рдиреАрдЪреЗ, рдмрд╛рдПрдВ, рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░" рдХреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, $07 рдмрдЬрд╛рдп Jd рдХреЗ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдЭреБрдХрд╛рд╡реЛрдВ рд╡рд╛рд▓реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдПрдХ рд╕рдлреЗрдж рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ I, S рдФрд░ Z рдХреЛ 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЭреБрдХрд╛рд╡ рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рдЦреБрдж рдХреЛ рджреЛ рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Zv рдФрд░ Sv рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЖрджрд░реНрд╢ рджрд░реНрдкрдг рдЪрд┐рддреНрд░ рдирд╣реАрдВ рд╣реИрдВред рджреЛрдиреЛрдВ рд╡рд╛рдорд╛рд╡рд░реНрдд рдореЛрдбрд╝ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдЬреЛ рдПрдХ рдЕрд╕рдВрддреБрд▓рди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЙрдиреНрдореБрдЦ рдЖрдХреГрддрд┐ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрд▓ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЕрдзреНрдпрдпрди рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВред

рдЯреАрдЬрдореНрдореВрдЬреЗрдбрд╣реЗрдПрд╕рдПрд▓рдореИрдВ
7B7D7C7B7D7C7B

рдЯрд╛рдЗрд▓ рдорд╛рди рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдкреИрдЯрд░реНрди рдХреЗ (рдЫрджреНрдо рд░рдВрдЧ) рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕реВрдЪрдХ рд╣реИрдВред


$7B , $7C рдФрд░ $7D рдЯрд╛рдЗрд▓реЗрдВ "рд╕рд╛рдВрдЦреНрдпрд┐рдХреА" рд╢рдмреНрдж рд╕реЗ рд╕реАрдзреЗ "ATIS" рдХреЗ рдиреАрдЪреЗ рд╕реНрдерд┐рдд рд╣реИрдВред рдпреЗ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд░реНрдЧ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдмреА-рдЯрд╛рдЗрдк рдореЛрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рд╢реБрддреБрд░рдореБрд░реНрдЧ рдФрд░ рдкреЗрдВрдЧреБрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ "рдПрдВрдбрд┐рдВрдЧ" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред

рдиреАрдЪреЗ $7B рдЬрдЧрд╣ $29 рдмрд╛рдж ROM рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рджрд┐рд▓ рд╕рднреА рдЭреБрдХрд╛рд╡ рдЯреА рдХреЗ рд▓рд┐рдП рдкреИрдЯрд░реНрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреА рдкреНрд░рддреАрдХ рдХреЗ рддрд╣рдд рдЯрд╛рдЗрд▓ рд╣реИред


рдЬрдЧрд╣ рдореЗрдВ рддрд╛рд▓рд╛ рд▓рдЧрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рджрд┐рд▓ рдХреА рджреАрд╡рд╛рд░реЗрдВ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдореЗрдВ рдмрдиреА рд░рд╣рддреА рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ "рдХреНрд░рд┐рдПрдЯ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ" рд╕реЗрдХреНрд╢рди рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдХреЗ рдЯрд╛рдЗрд▓ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред

рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдХреГрддрд┐ рдХреЗ рд▓рд┐рдП 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛, рдФрд░ рди рдХреЗрд╡рд▓ рдПрдХ рдЕрдпреЛрдЧреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд░реНрдЧред рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЦреЗрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреИрдЯрд░реНрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдирдИ рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдЦрд╛рд▓реА рдЬрдЧрд╣ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдПрдХ рдЕрдиреВрдард╛ рд░реВрдк рджреЗ рд╕рдХрддреА рд╣реИред

рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рдЪрд╛рд░ рддреНрд░рд┐рднреБрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

8A9C: FE 7B FE FE 7B 02 02 7B FE 02 7B 02 ; 00: T up

рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рдорд╛рди рд╣реИ:

{ { -2, -2 }, { 2, -2 }, { -2, 2 }, { 2, 2 }, }, -- 00: T up

рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╡рд┐рднрд╛рдЬрди рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рд╣реИред


рдЬрдм рд╡рд┐рднрд╛рдЬрд┐рдд рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рд╡рд░реНрдЧ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдмрдВрдж рдЬрдЧрд╣ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЦреЗрд▓ рдЗрд╕ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рд░реЛрдЯреЗрд╢рди рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдЧрд┐рд░рдиреЗ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЭреВрда рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддрд╛ рд╣реИред

рд╡рд┐рднрд╛рдЬрди рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЙрд╕рдХреЗ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдВрдХрдбрд╝рд╛ рдЕрд╡рд░реБрджреНрдз рд╣реИ, рддреЛ рд╣рд╡рд╛ рдореЗрдВ рд▓рдЯрдХреЗ рд╣реБрдП рд╡рд░реНрдЧреЛрдВ рдХреЛ рд▓рдЯрдХрд╛ рджреЗрдирд╛ рдЬрд╛рд░реА рд╣реИред

рдЧреЗрдо рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдиреНрдп рдЖрдХреГрддрд┐ рдХреА рддрд░рд╣ рд╕реНрдкреНрд▓рд┐рдЯ рдЯреЗрдЯреНрд░рд┐рдорд┐рдирд╕ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд▓рд┐рдХрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рдкрд░рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЦреЗрд▓ рдЖрдХрд╛рд░ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рд╕рднреА рдЪрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ; рд╡реЗ рдЕрдВрддрд░рд╛рд▓ [тИТ2, 2] рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдмреЗрд╢рдХ, рдЗрд╕ рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореВрд▓реНрдп рд╣рдореЗрдВ рдЕрдиреБрдЪрд┐рдд рдЖрдВрдХрдбрд╝реЗ рджреЗрдВрдЧреЗ рдЬреЛ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ "рдЧреЗрдо рд╕реНрдЯреЗрдЯреНрд╕ рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЛрдбреНрд╕", рдЬрдм рдХреЛрдИ рдЖрдВрдХрдбрд╝рд╛ рдЬрдЧрд╣ рдореЗрдВ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рднрд░реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХрд╛ рддрдВрддреНрд░ рдХреЗрд╡рд▓ рдЖрдВрдХрдбрд╝реЗ рдХреЗ рдХреЗрдВрджреНрд░реАрдп рд╡рд░реНрдЧ рд╕реЗ тИТ2 рд╕реЗ 1 рддрдХ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╕реНрдерд╛рдкрди рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ; рдЗрд╕ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдмрд╛рд╣рд░ y рд╕рдордиреНрд╡рдп рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рдмрд┐рдирд╛ рдорд╛рдиреНрдпрддрд╛ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред

рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рд░реЛрдЯреЗрд╢рди


рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рдЪрд┐рддреНрд░рдг рдореЗрдВ, рд░реЛрдЯреЗрд╢рди рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдпрд╛ рджрд╛рдИрдВ рдУрд░ рд╕реЗ рдПрдХ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ $88EE рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИред

; CCW CW
88EE: 03 01 ; Tl Tr
88F0: 00 02 ; Tu Td
88F2: 01 03 ; Tr Tl
88F4: 02 00 ; Td Tu
88F6: 07 05 ; Jd Ju
88F8: 04 06 ; Jl Jr
88FA: 05 07 ; Ju Jd
88FC: 06 04 ; Jr Jl
88FE: 09 09 ; Zv Zv
8900: 08 08 ; Zh Zh
8902: 0A 0A ; OO
8904: 0C 0C ; Sv Sv
8906: 0B 0B ; Sh Sh
8908: 10 0E ; Lu Ld
890A: 0D 0F ; Lr Ll
890C: 0E 10 ; Ld Lu
890E: 0F 0D ; Ll Lr
8910: 12 12 ; Ih Ih
8912: 11 11 ; Iv Iv


рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВрдЧреЗред
TuTrTdTlJlJuJrJdZhZvOShSvLrLdLlLuIvIh
рдШрдбрд╝реА рдХреА рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛TlTuTrTdJdJlJuJrZvZhOSvShLuLrLdLlIhIv
рджрдХреНрд╖рд┐рдгрд╛рд╡рд░реНрддTrTdTlTuJuJrJdJlZvZhOSvShLdLlLuLrIhIv

рдЙрдкрд░реНрдпреБрдХреНрдд рд╢реАрд░реНрд╖рдХреЛрдВ рдореЗрдВ рд╡рд░реНрдгрдХреНрд░рдореАрдпрддрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЕрдиреБрдХреНрд░рдо рд╕реВрдЪрдХрд╛рдВрдХ рдпрд╛ рд╡рд┐рддрд░рдг рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╛рдорд╛рд╡рд░реНрдд Tu рдХреЛ Tl рд╣рдореЗрдВ Tl рджреЗрддрд╛ рд╣реИ, рдФрд░ рджрдХреНрд╖рд┐рдгрд╛рд╡рд░реНрдд Tu рдХреЛ Tr рджреЗрддрд╛ рд╣реИред

рд░реЛрдЯреЗрд╢рди рдЯреЗрдмрд▓ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЗ рдЪреЗрди-рд▓рд┐рдВрдХреНрдб рдЕрдиреБрдХреНрд░рдо рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИ; рдЗрд╕рд▓рд┐рдП, рд╣рдо рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд░реЛрдЯреЗрд╢рди рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рдмрджрд▓ рджреЗред рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрднрд╡рддрдГ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрдкреНрд░рдпреБрдХреНрдд рдкрдВрдХреНрддрд┐ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд░реЛрдЯреЗрд╢рди рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рдордиреЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рд╣реИред

88AB: LDA $0042
88AD: STA $00AE ; originalOrientationID = orientationID;

88AF: CLC
88B0: LDA $0042
88B2: ASL
88B3: TAX ; index = 2 * orientationID;

88B4: LDA $00B5
88B6: AND #$80 ; if (not just pressed button A) {
88B8: CMP #$80 ; goto aNotPressed;
88BA: BNE $88CF ; }

88BC: INX
88BD: LDA $88EE,X
88C0: STA $0042 ; orientationID = rotationTable[index + 1];

88C2: JSR $948B ; if (new orientation not valid) {
88C5: BNE $88E9 ; goto restoreOrientationID;
; }

88C7: LDA #$05
88C9: STA $06F1 ; play rotation sound effect;
88CC: JMP $88ED ; return;

aNotPressed:

88CF: LDA $00B5
88D1: AND #$40 ; if (not just pressed button B) {
88D3: CMP #$40 ; return;
88D5: BNE $88ED ; }

88D7: LDA $88EE,X
88DA: STA $0042 ; orientationID = rotationTable[index];

88DC: JSR $948B ; if (new orientation not valid) {
88DF: BNE $88E9 ; goto restoreOrientationID;
; }

88E1: LDA #$05
88E3: STA $06F1 ; play rotation sound effect;
88E6: JMP $88ED ; return;

restoreOrientationID:

88E9: LDA $00AE
88EB: STA $0042 ; orientationID = originalOrientationID;

88ED: RTS ; return;


рд╡рд╛рдорд╛рд╡рд░реНрдд рдШреБрдорд╛рд╡ рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдХреЗ рд░реЛрдЯреЗрд╢рди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ 1 рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдХреНрд▓реЙрдХрд╡рд╛рдЗрдЬ рд░реЛрдЯреЗрд╢рди рдЗрдВрдбреЗрдХреНрд╕ рдорд┐рд▓рддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди tetrimino рдХреЗ x , y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЛ рдХреНрд░рдорд╢рдГ $0040 , $0041 рдФрд░ $0042 рдХреЗ рдкрддреЗ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЛрдб рдЙрдиреНрдореБрдЦреАрдХрд░рдг рдЖрдИрдбреА рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ, рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдб рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЪрд╛рд░ рд╡рд░реНрдЧ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рднреАрддрд░ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЭреВрдареЗ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдУрд╡рд░рд▓реИрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд╕рддреНрдпрд╛рдкрди рдХреЛрдб $948B рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдХреЗ рддрд╣рдд)ред рдпрджрд┐ рдирдпрд╛ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЧрд▓рдд рд╣реИ, рддреЛ рдореВрд▓ рдПрдХ рдХреЛ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЖрдВрдХрдбрд╝реЗ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдПрдХ рдХреНрд░реЙрд╕ рдХреЗ рд╕рд╛рде рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реБрдП, рдПрдирдИрдПрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЖрда рдмрдЯрди рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рдмрд┐рдЯ $00B6 рджреНрд╡рд╛рд░рд╛ $00B6 ред

76543210
рдПрдХрдмреАрдЪреБрдирдирд╛рдкреНрд░рд╛рд░рдВрднрдКрдкрд░рдиреАрдЪреЗрдмрд╛рдИрдВ рдУрд░рджрд╛рдИрдВ рдУрд░

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, $00B6 рдореЗрдВ рдореВрд▓реНрдп $81 рдЬрдмрдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА A рдФрд░ Left рдХреЛ рд░рдЦрддрд╛ рд╣реИред

рджреВрд╕рд░реА рдУрд░, рдмрдЯрди рджрдмрд╛рдП рдЬрд╛рдиреЗ рдкрд░ $00B5 рд░рд┐рдкреЛрд░реНрдЯ; рдмрд┐рдЯреНрд╕ $00B5 рдХреЗрд╡рд▓ рдЧреЗрдо рд▓реВрдк (1 рд░реЗрдВрдбрд░ рдлреНрд░реЗрдо) рдХреЗ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рджреМрд░рд╛рди рд╕рд╣реА рд╣реИрдВред A рдФрд░ B рджрдмрд╛рдиреЗ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб $00B5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

$00B5 рдФрд░ $00B6 $00B5 рдФрд░ $00B6 рджрд░реНрдкрдг рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рдХреЛрдб рдЗрди рдкрддреЛрдВ рдХрд╛ рдкрд░рд╕реНрдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

Tetrimino рдмрдирд╛рдПрдБ


рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдЦреЗрд▓ рдореИрджрд╛рди рдореЗрдВ 22 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ 10 рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╢реАрд░реНрд╖ рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реЗ рдЫрд┐рдкрд╛рдпрд╛ рдЬрд╛рдПред


рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдЖрдВрдХрдбрд╝рд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдпрд╣ рд╣рдореЗрд╢рд╛ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (5, 0) ред

98BA: LDA #$00
98BC: STA $00A4
98BE: STA $0045
98C0: STA $0041 ; Tetrimino Y = 0
98C2: LDA #$01
98C4: STA $0048
98C6: LDA #$05
98C8: STA $0040 ; Tetrimino X = 5


рдиреАрдЪреЗ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ 5 ├Ч 5 рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реБрдкрд░рд┐рдореНрдкреЛрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдХреЛрдИ рднреА рдирд┐рд░реНрдорд╛рдг рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рд╕реЗ рдКрдкрд░ рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИред рдпрд╣реА рд╣реИ, рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдмрдирд╛рддреЗ рд╕рдордп, рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рд╡рд░реНрдЧ рддреБрд░рдВрдд рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдЬрд▓реНрджреА рд╕реЗ рдЯреБрдХрдбрд╝рд╛ рдШреБрдорд╛рддрд╛ рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рддреЛ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рдкрд╣рд▓реА рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЫрд┐рдкрд╛ рд╣реЛрдЧрд╛ред

рдЖрдорддреМрд░ рдкрд░ рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЦреЗрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдвреЗрд░ рд╢реАрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдЦреЗрд▓ рддрдм рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЕрдЧрд▓реЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдпрд╣реА рд╣реИ, рдЖрдХреГрддрд┐ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдкрд╣рд▓реЗ, рдмрдирд╛рдП рдЧрдП рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдкрджреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдЦреЗрд▓ рдореИрджрд╛рди рдХреЗ рд╕рднреА рдЪрд╛рд░ рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдореБрдХреНрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЪрд┐рддреНрд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЧрд┐рдиреЗ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЦреЗрд▓ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ; рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдореЗрдВ, рдирдХрд╛рд░рд╛рддреНрдордХ рд░реЗрдЦрд╛рдПрдВ рдХреЗрд╡рд▓ рд╕рдХреНрд░рд┐рдп рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рд╣реИрдВред рдЖрдВрдХрдбрд╝рд╛ рдЕрд╡рд░реБрджреНрдз рд╣реЛрдиреЗ (рдЭреВрда рдмреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж) рдХреЗ рдмрд╛рдж, рд╢реВрдиреНрдп рд╕реЗ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд░реНрдЧ рдФрд░ рдЕрдзрд┐рдХ рдХреЛ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЧрд┐рдиреЗ рд▓рд╛рдЗрдиреЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╡рд░реБрджреНрдз рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╛рдл рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЦреЗрд▓ рдХреЗрд╡рд▓ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдКрдкрд░реА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдХрд╛рдЯрдХрд░, рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХрд╛ рджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░ 20 ├Ч 10 рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ $0400 рд▓рд╛рдЗрди рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдЯрд╛рдЗрд▓ рдХрд╛ рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИред рдЦрд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ $EF рдЯрд╛рдЗрд▓, рдПрдХ рдареЛрд╕ рдХрд╛рд▓реЗ рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдХрд╛рд░ рдмрдирд╛рддреЗ рд╕рдордп, рддреАрди рд▓реБрдХрдЕрдк рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рдордирдорд╛рдирд╛ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рд╣реИ, рддреЛ $9956 рдкрд░ рддрд╛рд▓рд┐рдХрд╛ рд╣рдореЗрдВ рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдмрдирд╛рддреЗ рд╕рдордп рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред

9956: 02 02 02 02 ; Td
995A: 07 07 07 07 ; Jd
995E: 08 08 ; Zh
9960: 0A ; O
9961: 0B 0B ; Sh
9963: 0E 0E 0E 0E ; Ld
9967: 12 12 ; Ih


рдЗрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред

TuTrTdTlJlJuJrJdZhZvOShSvLrLdLlLuIvIh
TdTdTdTdJdJdJdJdZhZhOShShLdLdLdLdIhIh

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, J рдХреА рд╕рднреА рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ Jd рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВред

$993B рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджреА рдЧрдИ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП Tetrimino рдкреНрд░рдХрд╛рд░ рд╣реИред

993B: 00 00 00 00 ; T
993F: 01 01 01 01 ; J
9943: 02 02 ; Z
9945: 03 ; O
9946: 04 04 ; S
9948: 05 05 05 05 ; L
994C: 06 06 ; I


рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдм рдХреБрдЫ рд╕рд╛рд░рдгреАрдмрджреНрдз рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред

TuTrTdTlJlJuJrJdZhZvOShSvLrLdLlLuIvIh
TTTTJJJJZZOSSLLLLII

рд╣рдо рдЕрдЧрд▓реЗ рдЦрдВрдб рдореЗрдВ рддреАрд╕рд░реА рдЦреЛрдЬ рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВрдЧреЗред

рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдЪрдпрди


рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдЕрдкрдиреЗ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдЫрджреНрдо-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ (PRNG) рдХреЗ рд░реВрдк рдореЗрдВ 16-рдмрд┐рдЯ рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд╛рд░реА рд░рдЬрд┐рд╕реНрдЯрд░ (LFSR) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред 16-рдмрд┐рдЯ рдорд╛рди рдХреЛ $0017 - $0018 рдХреЗ рдкрддреЗ рдкрд░ рдмрдбрд╝реЗ-рдПрдВрдбрд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред $8988 рдХреА рдПрдХ рдордирдорд╛рдиреА рдмреАрдЬ рдХреЗ рд░реВрдк $8988 рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред

80BC: LDX #$89
80BE: STX $0017
80C0: DEX
80C1: STX $0018


рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд╡рд░реНрддреА рдЫрджреНрдо-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ: рдорд╛рди рдХреЛ 17-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд┐рдЯ 1 рдФрд░ 9 рдХреЗ рд▓рд┐рдП XOR рдкреНрд░рджрд░реНрд╢рди рдХрд░рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдореВрд▓реНрдп рдХреЛ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рдХреЛ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ $AB47 рд╣реЛрддреА рд╣реИред

AB47: LDA $00,X
AB49: AND #$02
AB4B: STA $0000 ; extract bit 1

AB4D: LDA $01,X
AB4F: AND #$02 ; extract bit 9

AB51: EOR $0000
AB53: CLC
AB54: BEQ $AB57
AB56: SEC ; XOR bits 1 and 9 together

AB57: ROR $00,X
AB59: INX
AB5A: DEY ; right shift
AB5B: BNE $AB57 ; shifting in the XORed value

AB5D: RTS ; return


рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рдмрд░реВрдЯреАрди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╢рд┐рдлреНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдЙрд╕ рдкрддреЗ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХреЗ рдЬрд┐рд╕ рдкрд░ рдЗрд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рд░ рдЬрдЧрд╣ рд╕рдорд╛рди рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЗрд╕ рдХреЛрдб рдХреЛ рдХрд╣реАрдВ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИред

 int generateNextPseudorandomNumber(int value) { int bit1 = (value >> 1) & 1; int bit9 = (value >> 9) & 1; int leftmostBit = bit1 ^ bit9; return (leftmostBit << 15) | (value >> 1); } 

рдФрд░ рдпрд╣ рд╕рдм рдХреЛрдб рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдирд┐рдЪреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 int generateNextPseudorandomNumber(int value) { return ((((value >> 9) & 1) ^ ((value >> 1) & 1)) << 15) | (value >> 1); } 

рдпрд╣ PRNG рд▓рдЧрд╛рддрд╛рд░ рдФрд░ рдирд┐рдпрддрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдореВрд▓ рдмреАрдЬ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрдХреНрд░ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП, 32,767 рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзреЗ рд╕реЗ рднреА рдХрдо рд╣реИ рдЬреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдлрд┐рдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╕реЗрдЯ рдореЗрдВ рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХреЛ рдмреАрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реЗрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХрдИ рдорд╛рди рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдВрддрддрдГ рд╕реЗрдЯ рд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╢реВрдиреНрдп рдХреЗ рдЕрдирдВрдд рдХреНрд░рдо рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред

рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЗрд╕ PRNG рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ RANDOM .ORG рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╛рдХреНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдП рдЧрдП рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрд┐рддреНрд░рдордп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ред


рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╕рдордп, PRNG рдХреЛ 16-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдмрд┐рдЯ 0. рдХреЗ рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рдВрдЧреАрди рд╣реЛрддрд╛ рд╣реИред рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ 128 ├Ч 256 рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдкреВрд░реЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред

рдКрдкрд░реА рдФрд░ рдмрд╛рдПрдВ рддрд░рдл рдмрдореБрд╢реНрдХрд┐рд▓ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдзрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рджрд┐рдЦрддрд╛ рд╣реИред рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдкреИрдЯрд░реНрди рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, PRNG рд▓рдЧрд╛рддрд╛рд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдкреНрд▓реИрд╢ рд╕реНрдХреНрд░реАрди рдФрд░ рдореЗрдиреВ рд╕реНрдХреНрд░реАрди рдкрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЬрдм рдЖрдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмреАрдЪ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдЧрд┐рд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЬреЛ рдЖрдВрдХрдбрд╝рд╛ рдЕрдЧрд▓реЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рд╡рд╣ рдЙрд╕ рдлрд╝реНрд░реЗрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдЖрдВрдХрдбрд╝рд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЦреЗрд▓ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЖрдХреГрддрд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди, $9907 рдХреЗ рдХреЛрдб $9907 , рдирдП рдЖрдВрдХрдбрд╝реЗ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЪреБрдирддреЗ рд╣реБрдПред

9907: INC $001A ; spawnCount++;

9909: LDA $0017 ; index = high byte of randomValue;

990B: CLC
990C: ADC $001A ; index += spawnCount;

990E: AND #$07 ; index &= 7;

9910: CMP #$07 ; if (index == 7) {
9912: BEQ $991C ; goto invalidIndex;
; }

9914: TAX
9915: LDA $994E,X ; newSpawnID = spawnTable[index];

9918: CMP $0019 ; if (newSpawnID != spawnID) {
991A: BNE $9938 ; goto useNewSpawnID;
; }

invalidIndex:

991C: LDX #$17
991E: LDY #$02
9920: JSR $AB47 ; randomValue = generateNextPseudorandomNumber(randomValue);

9923: LDA $0017 ; index = high byte of randomValue;

9925: AND #$07 ; index &= 7;

9927: CLC
9928: ADC $0019 ; index += spawnID;

992A: CMP #$07
992C: BCC $9934
992E: SEC
992F: SBC #$07
9931: JMP $992A ; index %= 7;

9934: TAX
9935: LDA $994E,X ; newSpawnID = spawnTable[index];

useNewSpawnID:

9938: STA $0019 ; spawnID = newSpawnID;

993A: RTS ; return;


рдкрддреЗ рдкрд░ $001A рдкрд╛рд╡рд░-рдЕрдк рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдХрд╛рдЙрдВрдЯрд░ рдХреА рд╡реГрджреНрдзрд┐ рд╕рдмрд░реВрдЯреАрди рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕рд┐рдВрдЧрд▓-рдмрд╛рдЗрдЯ рдХрд╛рдЙрдВрдЯрд░ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ 256 рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдмрд╛рдж рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╢реВрдиреНрдп рдкрд░ рд▓реМрдЯ рдЖрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдХрд╛рдЙрдВрдЯрд░ рдЧреЗрдо рдХреЗ рдмреАрдЪ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдЧреЗрдо рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЖрдВрдХрдбрд╝рд╛ рдЪрдпрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ рдЬрдм рдЦреЗрд▓ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рджрд┐рдирдЪрд░реНрдпрд╛ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ ( $0017 ) рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдЗрдЯ рдХреЛ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЖрдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $994E рдкрд░ рд╕реНрдерд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

994E: 02 ; Td
994F: 07 ; Jd
9950: 08 ; Zh
9951: 0A ; O
9952: 0B ; Sh
9953: 0E ; Ld
9954: 12 ; Ih


рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рдмрдирд╛рдП рдЧрдП рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдКрдкрд░реА рдмрд╛рдЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдХреЗрд╡рд▓ рдирд┐рдЪрд▓реЗ 3 рдмрд┐рдЯреНрд╕ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдХ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо 7 рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдкрд┐рдЫрд▓реЗ рдЪрдпрдирд┐рдд рдЖрдВрдХрдбрд╝реЗ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдВрдХрдбрд╝реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЕрдЧрд▓реЗ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдФрд░ рдКрдкрд░реА рдмрд╛рдЗрдЯ рдХреЗ рдирд┐рдЪрд▓реЗ 3 рдмрд┐рдЯреНрд╕ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреМрдЯрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкрд┐рдЫрд▓реЗ рдЖрдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЛрдбреБрд▓реЛ рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдХреГрддрд┐ рдирд┐рд░реНрдорд╛рдг рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╢реЗрд╖ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд╛рдЬрди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ 7 рдШрдЯрд╛рдХрд░ рддрдм рддрдХ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкрд░рд┐рдгрд╛рдо 7. рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╢реЗрд╖ рдХреЗ рд╕рд╛рде рдбрд┐рд╡реАрдЬрди рдКрдкрд░реА рдмрд╛рдЗрдЯ рдХреЗ рдпреЛрдЧ рдкрд░ рд▓рд╛рдЧреВ рдореБрдЦреМрдЯрд╛ рдФрд░ рдкрд┐рдЫрд▓реЗ рдЖрдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд░рд╛рд╢рд┐ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп 25 рд╣реИред рдЕрд░реНрдерд╛рдд, рдЗрд╕реЗ рд╢реЗрд╖ 4 рддрдХ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ 3 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдЦреЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЖрдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА ( $0019 ) рдХреЛ Tu ( $00 ) рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдореВрд▓реНрдп рд╕рдВрднрд╡рддрдГ рдкрд╣рд▓реЗ рдЖрдХрд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди $9928 рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд┐рдЫрд▓реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдХреГрддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реА рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, Tetrimino рд╡рд┐рд░реВрдкрдг рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЗ рдорд╛рди рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

$ 00$02$07$08$0A$0B$0E$12
02013404
13124515
24235626
35346030
46450141
50561252
61602363
72013404

рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдореЗрдВ рдПрдХ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ 3 рдпрд╛ рдмрд┐рдЯ рдореВрд▓реНрдп (рдкрдВрдХреНрддрд┐) рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рдЖрдХреГрддрд┐ (рд╕реНрддрдВрдн) рдХреА рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ 7 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд╢реЗрд╖ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ $07 рдФрд░ $0E рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред 7 рд╕реЗ, рдЬрдмрдХрд┐ $0B рдФрд░ $12 рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрддреБрд▓рди рд╣реИред рд▓рд╛рдЗрдиреЗрдВ 0 рдФрд░ 7 рд╕рдорд╛рди рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ 7 рдХреА рджреВрд░реА рдкрд░ рд╣реИрдВред

56 рд╕рдВрднрд╛рд╡рд┐рдд рдЗрдирдкреБрдЯ рд╕рдВрдпреЛрдЬрди рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдкрд░рд┐рдгрд╛рдореА рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдкреНрд░рдХрд╛рд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдКрдкрд░ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдареАрдХ 8 рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред

рдЯрд╛рдЗрдкрдЖрд╡реГрддреНрддрд┐
рдЯреА9
рдЬрдореНрдореВ8
рдЬреЗрдб8
рд╣реЗ8
рдПрд╕9
рдПрд▓7
рдореИрдВ7

рдЯреА рдФрд░ рдПрд╕ рдЕрдзрд┐рдХ рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдПрд▓ рдФрд░ рдореИрдВ - рдХрдо рдЕрдХреНрд╕рд░ред рд▓реЗрдХрд┐рди рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддрд┐рд░рдЫрд╛ рдХреЛрдб рд╣рд░ рдмрд╛рд░ рд╕рдмрд░реВрдЯреАрди рдХрд╣реЗ рдЬрд╛рдиреЗ рдкрд░ рдЕрдорд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ PRNG рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд╕реНрд╡рддрдВрддреНрд░ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЙрдЪрд┐рдд рдзрд╛рд░рдгрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХреИрд╕реЗ рдЦреЗрд▓ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд╕рд╣реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред $990C рдХреЗ рдкрддреЗ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╡рд┐рддрд░рдг рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЙрд▓ рдХреЗ рдмреАрдЪ рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред $990E рдкрд░ рдмрд┐рдЯрдорд╛рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реЗрд╖ рдХреЗ рд╕рд╛рде 8 рдХреЛ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬреЛ рд╡рд┐рддрд░рдг рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ 1/8 рдореЗрдВ $9910 рдЬрд╛рдБрдЪ invalidIndex рд╣реИред рдФрд░ рдЬрдм $9918 рдХреЗ рдкрддреЗ рдкрд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдкрд░ рдорд╛рд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд┐рдЫрд▓реЗ рдЖрдВрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдирдП рдЪрдпрдирд┐рдд рдЖрдВрдХрдбрд╝реЗ рдХреА рддреБрд▓рдирд╛ 7/8 рд╣реИ, 1/7 рдХреЗ рд╕рдВрдпреЛрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рдередрдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдореМрдХрд╛ 7/8 ├Ч 1/7 = 1/8рд╣реИ invalidIndexред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рддрд┐рд░рдЫреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА 25% рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдФрд░ рдПрдХ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА 75% рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдЬреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред

224 рдмрдирд╛рдП рдЧрдП рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛрд╕ рдХреЗ рдПрдХ рд╕реЗрдЯ рдореЗрдВ, рдЧрдгрд┐рддреАрдп рдЕрдкреЗрдХреНрд╖рд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП 32 рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рддрд░рдг рдмрдирд╛рддрд╛ рд╣реИ:

рдЯрд╛рдЗрдкрдЖрд╡реГрддреНрддрд┐
рдЯреА33
рдЬрдореНрдореВ32
рдЬреЗрдб32
рд╣реЗ32
рдПрд╕33
рдПрд▓31
рдореИрдВ31

рдпрд╣реА рд╣реИ, 90 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдФрд░ 9 рдХреЗ рд╕реНрддрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреА рдФрд░ рдПрд╕ рдФрд░ рдПрдХ рдХрдо рдПрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдФрд░ рдореИрдВ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред

Tetrimino рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдЯрд╛рдЗрдкрд╕рдВрднрд╛рд╡рдирд╛
рдЯреА14.73%
рдЬрдореНрдореВ14.29%
рдЬреЗрдб14.29%
рд╣реЗ14.29%
рдПрд╕14.73%
рдПрд▓13.84%
рдореИрдВ13.84%

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрдпрд╛рди рдореЗрдВ рдХрд┐ "рд▓рдВрдмреА рдЫрдбрд╝реА" рдореИрдВ рдХрднреА рдирд╣реАрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдкреЗрдиреНрд╕рд┐рд▓рд╡реЗрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП)ред

рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рд╢рд┐рдлреНрдЯ


рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рд╡рд┐рд▓рдВрдмрд┐рдд рдСрдЯреЛ рд╢рд┐рдлреНрдЯ (рдбреАрдПрдПрд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред "рд▓реЗрдлреНрдЯ" рдпрд╛ "рд░рд╛рдЗрдЯ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдПрдХ рд╕реЗрд▓ рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рджрд┐рд╢рд╛ рдмрдЯрди рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╕рдордп рдЦреЗрд▓ 16 рдлреНрд░реЗрдо рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рджреЗрд░реА рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ 6 рдлреНрд░реЗрдо рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд╖реИрддрд┐рдЬ рдЖрдВрджреЛрд▓рди рдХреЛ рдкрддреЗ рдкрд░ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $89AEред рд░реЛрдЯреЗрд╢рди рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдирдИ рд╕реНрдерд┐рддрд┐ рдЧрд▓рдд рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪреЗрдХ рдЖрдкрдХреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рджрдмрд╛рддреЗ рд╕рдордп рдЯреБрдХрдбрд╝рд╛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

89AE: LDA $0040
89B0: STA $00AE ; originalX = tetriminoX;

89B2: LDA $00B6 ; if (pressing down) {
89B4: AND #$04 ; return;
89B6: BNE $8A09 ; }

89B8: LDA $00B5 ; if (just pressed left/right) {
89BA: AND #$03 ; goto resetAutorepeatX;
89BC: BNE $89D3 ; }

89BE: LDA $00B6 ; if (not pressing left/right) {
89C0: AND #$03 ; return;
89C2: BEQ $8A09 ; }

89C4: INC $0046 ; autorepeatX++;
89C6: LDA $0046 ; if (autorepeatX < 16) {
89C8: CMP #$10 ; return;
89CA: BMI $8A09 ; }

89CC: LDA #$0A
89CE: STA $0046 ; autorepeatX = 10;
89D0: JMP $89D7 ; goto buttonHeldDown;

resetAutorepeatX:

89D3: LDA #$00
89D5: STA $0046 ; autorepeatX = 0;

buttonHeldDown:

89D7: LDA $00B6 ; if (not pressing right) {
89D9: AND #$01 ; goto notPressingRight;
89DB: BEQ $89EC ; }

89DD: INC $0040 ; tetriminoX++;
89DF: JSR $948B ; if (new position not valid) {
89E2: BNE $8A01 ; goto restoreX;
; }

89E4: LDA #$03
89E6: STA $06F1 ; play shift sound effect;
89E9: JMP $8A09 ; return;

notPressingRight:

89EC: LDA $00B6 ; if (not pressing left) {
89EE: AND #$02 ; return;
89F0: BEQ $8A09 ; }

89F2: DEC $0040 ; tetriminoX--;
89F4: JSR $948B ; if (new position not valid) {
89F7: BNE $8A01 ; goto restoreX;
; }

89F9: LDA #$03
89FB: STA $06F1 ; play shift sound effect;
89FE: JMP $8A09 ; return;

restoreX:

8A01: LDA $00AE
8A03: STA $0040 ; tetriminoX = originalX;

8A05: LDA #$10
8A07: STA $0046 ; autorepeatX = 16;

8A09: RTS ; return;


x



рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдлреЗрдВрдХрдирд╛


рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рдВрд╢ рдХреА рдЧрддрд┐ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рд╣реИред рд╕реНрдкреАрдб рдХреЛ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдерд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдлрд╝реНрд░реЗрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ $898Eред рдЪреВрдВрдХрд┐ рдПрдирдИрдПрд╕ 60.0988 рдлреНрд░реЗрдо / рдПрд╕ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЖрдк рдЕрд╡рд░реЛрд╣реА рдФрд░ рдЧрддрд┐ рдХреЗ рдмреАрдЪ рдХреА рдЕрд╡рдзрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрддрд░рдЕрд╡рд░реЛрд╣реА рддрдЦреНрддреЗрдЕрд╡рдзрд┐ (рдПрд╕ / рд╡рдВрд╢)рдЧрддрд┐ (рдХреЛрд╢рд┐рдХрд╛рдПрдВ)
0480.7991.25
1430.7151.40
2380.6321.58
3330.5491.82
4280.4662.15
5230.3832.61
618.3003.34
7130.2164.62
880.1337.51
96.10010.02
10-1250.08312.02
13-1540.06715.05
16-183.05020.03
19-2820.03330.05
29+10.01760.10

рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреБрд▓ 30 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВред 29 рдХреЗ рд╕реНрддрд░ рдХреЗ рдмрд╛рдж, рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд░реЗрдо рдХрд╛ рдореВрд▓реНрдп рд╣рдореЗрд╢рд╛ 1 рд╣реЛрддрд╛ рд╣реИред рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд░реЗрдо рдХрд╛

рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛ рдЧрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рдЧреНрд░рд╛рдл рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЧрддрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реНрддрд░ 29, рд╕реНрддрд░ 28 рд╕реЗ рджреЛрдЧреБрдирд╛ рддреЗрдЬрд╝ рд╣реИред


1 рдлреНрд░реЗрдо / рдбрд┐рд╕реЗрдВрдЯ рдХреЗ рд╕рд╛рде, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╛рд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 1/3 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╡рд╣ рдЪрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдЗрд╕ рдореВрд▓ рдЧрддрд┐ рдкрд░, DAS рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЬрдЧрд╣ рдкрд░ рд▓реЙрдХ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рдЕрдВрдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдЦрд┐рд▓рд╛рдбрд╝реА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдереЛрд░ рдЕрдХрд░рд▓рдВрдб , рдХреНрд░реЙрд╕ рдмрдЯрди ( D-pad) рдХреЗ рддреНрд╡рд░рд┐рдд рдХрдВрдкрди рдХреЗ рд╕рд╛рде рдбреАрдПрдПрд╕ рдХреЛ рд╣рд░рд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ ред рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рд╢рд┐рдлреНрдЯ рдХреЛрдб рдореЗрдВ, рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдХреНрд╖реИрддрд┐рдЬ рджрд┐рд╢рд╛ рдмрдЯрди рдлреНрд░реЗрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ 29 рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЖрдзреЗ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрд╣ рдПрдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЕрдзрд┐рдХрддрдо рд╣реИ, рд▓реЗрдХрд┐рди 3.75 рдЯреИрдк / рдПрд╕ рд╕реЗ рдКрдкрд░ рдЕрдВрдЧреВрдареЗ рдХреЗ рдХрд┐рд╕реА рднреА рдХрдВрдкрди рд╕реЗ 16 рдлреНрд░реЗрдо рдХреА рдореВрд▓ рджреЗрд░реА рдХреЛ рд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА-рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рдВрд╢ ("рдбрд╛рдЙрди" рджрдмрд╛рдХрд░) рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдореЗрд▓ рдЦрд╛рддрд╛ рдФрд░ рдШрдЯрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдЬреБрдбрд╝рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдпрд╛ рдЗрди рджреЛрдиреЛрдВ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рдлреНрд░реЗрдо рдореЗрдВ рдПрдХ рд╕реЗрд▓ рдмрд┐рд▓реНрдХреБрд▓ рдиреАрдЪреЗ рдЪрд▓реА рдЬрд╛рддреА рд╣реИред

рдЯреНрд░рд┐рдЧрд░ рдирд┐рдпрдВрддреНрд░рдг рддрд░реНрдХ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ $8914ред рдЕрд╡рд░реЛрд╣реА рдлреНрд░реЗрдо рдЯреЗрдмрд▓ рд▓реЗрдмрд▓ рдХреЗ рдиреАрдЪреЗ рд╣реИ ред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, 29 рдФрд░ рдКрдкрд░ рдХреЗ рд╕реНрддрд░ рдкрд░, рдЧрддрд┐ рд▓рдЧрд╛рддрд╛рд░ 1 рд╢рдЯрд░ / рдлреНрд░реЗрдо рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред (рдкрддрд╛ ) рдкрд╣реБрдВрдЪрддреЗ рд╣реА рд╡рдВрд╢ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ( )ред рдЗрд╕ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдкрддреЗ рдкрд░ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреА рдЬрд╛рддреА рд╣реИ ред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдпрд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рдВрд╢ рдХреЗ рджреМрд░рд╛рди, рдЗрд╕реЗ 0. рдкрд░ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪрд░ ( ) рдкрддреЗ рдкрд░ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

8914: LDA $004E ; if (autorepeatY > 0) {
8916: BPL $8922 ; goto autorepeating;
; } else if (autorepeatY == 0) {
; goto playing;
; }

; game just started
; initial Tetrimino hanging at spawn point

8918: LDA $00B5 ; if (not just pressed down) {
891A: AND #$04 ; goto incrementAutorepeatY;
891C: BEQ $8989 ; }

; player just pressed down ending startup delay

891E: LDA #$00
8920: STA $004E ; autorepeatY = 0;
8922: BNE $8939

playing:

8924: LDA $00B6 ; if (left or right pressed) {
8926: AND #$03 ; goto lookupDropSpeed;
8928: BNE $8973 ; }

; left/right not pressed

892A: LDA $00B5
892C: AND #$0F ; if (not just pressed only down) {
892E: CMP #$04 ; goto lookupDropSpeed;
8930: BNE $8973 ; }

; player exclusively just presssed down

8932: LDA #$01
8934: STA $004E ; autorepeatY = 1;

8936: JMP $8973 ; goto lookupDropSpeed;

autorepeating:

8939: LDA $00B6
893B: AND #$0F ; if (down pressed and not left/right) {
893D: CMP #$04 ; goto downPressed;
893F: BEQ $894A ; }

; down released

8941: LDA #$00
8943: STA $004E ; autorepeatY = 0
8945: STA $004F ; holdDownPoints = 0
8947: JMP $8973 ; goto lookupDropSpeed;

downPressed:

894A: INC $004E ; autorepeatY++;
894C: LDA $004E
894E: CMP #$03 ; if (autorepeatY < 3) {
8950: BCC $8973 ; goto lookupDropSpeed;
; }

8952: LDA #$01
8954: STA $004E ; autorepeatY = 1;

8956: INC $004F ; holdDownPoints++;

drop:

8958: LDA #$00
895A: STA $0045 ; fallTimer = 0;

895C: LDA $0041
895E: STA $00AE ; originalY = tetriminoY;

8960: INC $0041 ; tetriminoY++;
8962: JSR $948B ; if (new position valid) {
8965: BEQ $8972 ; return;
; }

; the piece is locked

8967: LDA $00AE
8969: STA $0041 ; tetriminoY = originalY;

896B: LDA #$02
896D: STA $0048 ; playState = UPDATE_PLAYFIELD;
896F: JSR $9CAF ; updatePlayfield();

8972: RTS ; return;

lookupDropSpeed:

8973: LDA #$01 ; tempSpeed = 1;

8975: LDX $0044 ; if (level >= 29) {
8977: CPX #$1D ; goto noTableLookup;
8979: BCS $897E ; }

897B: LDA $898E,X ; tempSpeed = framesPerDropTable[level];

noTableLookup:

897E: STA $00AF ; dropSpeed = tempSpeed;

8980: LDA $0045 ; if (fallTimer >= dropSpeed) {
8982: CMP $00AF ; goto drop;
8984: BPL $8958 ; }

8986: JMP $8972 ; return;

incrementAutorepeatY:

8989: INC $004E ; autorepeatY++;
898B: JMP $8972 ; return;


lookupDropSpeed

fallTimer$0045dropSpeed$00AFfallTimer$8892

autorepeatY$004E$0A$8739), рдЬрд┐рд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ ed96 рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╕реНрдерд┐рддрд┐ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рджреЗрд░реА рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИред рдмрд╣реБрдд рдкрд╣рд▓реЗ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд┐рдВрджреБ рдкрд░ рд╣рд╡рд╛ рдореЗрдВ рдирд┐рд▓рдВрдмрд┐рдд рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ autorepeatYрдпрд╣ 0 рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 1.6 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдЖрдк рдЗрд╕ рдЪрд░рдг рдореЗрдВ рдиреАрдЪреЗ рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ autorepeatYрддреБрд░рдВрдд рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ 0. рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд░рджреНрдж рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рджреЗрд░реА рдХреЗ рдЗрд╕ рдЪрд░рдг рдореЗрдВ рдЖрдВрдХрдбрд╝рд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдФрд░ рдШреБрдорд╛ рд╕рдХрддреЗ рд╣реИрдВред рдзрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди

рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреА autorepeatYрдЬрд╛рддреА рд╣реИред рдЬрдм рдпрд╣ 3 рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдорд╛рдирд╡-рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рдВрд╢ ("рдирд░рдо" рд╡рдВрд╢) рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ autorepeatYрд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред 1. рдЗрд╕рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд░рдо рд╡рдВрд╢ рдореЗрдВ 3 рдлреНрд░реЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ autorepeatY0 рд╕реЗ 1 рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЦреЗрд▓ рдпрд╣ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдиреЗ рдЕрднреА рдбрд╛рдЙрди (рдкрд░) рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рд╣реИ$00B5), рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рдкрдХрдбрд╝реЗ рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ autorepeatYрдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ (рдкрддреЗ рдкрд░ $98E8) рдмрдирд╛рддреЗ рд╕рдордп 0 рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ , рдЬреЛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрдирд╛рддрд╛ рд╣реИ: рдпрджрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдЦреБрдж рдЖрдВрдХрдбрд╝рд╛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд╣ рдЕрдЧрд▓рд╛ рдЖрдВрдХрдбрд╝рд╛ рдмрдирд╛рддреЗ рд╕рдордп "рдбрд╛рдЙрди" рджрдмрд╛рддрд╛ рд░рд╣рддрд╛ рд╣реИ, рдЬреЛ рдЕрдХреНрд╕рд░ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рддрдм рдпрд╣ рдирдП рдЖрдВрдХрдбрд╝реЗ рдХреЗ рдирд░рдо рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдРрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ "рдбрд╛рдЙрди" рдЬрд╛рд░реА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдмрдЯрди рдХреЛ рдлрд┐рд░ рд╕реЗ рджрдмрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХреЛрдорд▓ рд╡рдВрд╢ рдЕрдВрдХ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред holdDownPoints( $004F) рдкреНрд░рддреНрдпреЗрдХ рд╡рдВрд╢ рдХреЗ рд╕рд╛рде рдмрдврд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ "рдбрд╛рдЙрди" рдХреЛ 0. рдкрд░ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдВрдХ рд╕реНрдХреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдирд░рдо рд╡рдВрд╢ рдХреЗ рд╕рд╛рде рд▓реЙрдХ рдореЗрдВ рдХрдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдирд░рдо рд╡рдВрд╢, рдЬреЛ рдЖрдВрдХрдбрд╝реЗ рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдВрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЦрд╛рддреЗ рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ$9BFE, рд▓реЗрдХрд┐рди holdDownPointsрдкрддреЗ рдкрд░, рдЗрд╕рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж 0 рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $9C2Fред

рдЪреЗрдХ, рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЖрдВрдХрдбрд╝реЗ рдХреА рдХреНрд╖реИрддрд┐рдЬ рдкрд╛рд░реА рдХреЗ рд╕рд╛рде рдирд░рдо рд╡рдВрд╢ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдЕрдВрдХ рдХреЗ рд╕реЗрдЯ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдЧрд╣ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдЦрд┐рд░реА рдЪрд╛рд▓ "рдиреАрдЪреЗ" рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЬрдм рдврд▓рд╛рди рдЬрд╛ рд░рд╣рд╛ рд╣реИ, tetriminoY( $0041) рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛рдП originalY( $00AE)ред рдпрджрд┐ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдирдИ рд╕реНрдерд┐рддрд┐ tetriminoYрдЧрд▓рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдпрд╛рдиреА, рдЖрдВрдХрдбрд╝рд╛ рдпрд╛ рддреЛ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдлрд░реНрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдзрдХреНрдХрд╛ рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЭреВрда рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧреЛрдВ рдкрд░ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рддреЛ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИtetriminoYрдФрд░ рдЖрдВрдХрдбрд╝рд╛ рдЕрд╡рд░реБрджреНрдз рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд▓реЙрдХ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЗрд░реА (рддрд┐рдорд┐рддреНрд░рд┐рдиреЛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХрддрдо рдлрд╝реНрд░реЗрдо, рд▓реЙрдХрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд╡рд╛ рдореЗрдВ рдкрдХрдбрд╝рдирд╛) рд╡рдВрд╢ рдореЗрдВ рджреЗрд░реА рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред

рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдореЗрдВ рдХрдареЛрд░ рд╡рдВрд╢ (рддреБрд░рдиреНрдд рдЧрд┐рд░рдиреЗ) рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ


рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдореИрдиреБрдЕрд▓ рдкреБрд╕реНрддрд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╕рдЪрд┐рддреНрд░ рд╕реНрд▓рд┐рдк рдЙрджрд╛рд╣рд░рдг рд╣реИ:


рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рдореЗрдВ рдЕрдиреНрдп рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рд╕рддрд╣ рдХреЗ рд╕рд╛рде рдпрд╛ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдлрд░реНрд╢ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдУрд╡рд░рд╣реИрдВрдЧрд┐рдВрдЧ рд╕реНрдХреНрд╡рд╛рдпрд░ рдХреЗ рдиреАрдЪреЗ рдПрдХ рдЖрдХреГрддрд┐ рдХреЛ рдЪрдордХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд╕рд▓рдиреЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рддрдм рддрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЧрд┐рд░рддрд╛ рд╣реБрдЖ рдЯрд╛рдЗрдорд░ рдореВрд▓ рдЧрддрд┐ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рдЬрдЧрд╣ рдкрд░ рд▓реЙрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдПрдирд┐рдореЗрдЯреЗрдб рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рджреВрд╕рд░реА рдУрд░, рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдЖрдкрдХреЛ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЖрдВрдХрдбрд╝реЗ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдЕрдкреНрд░рд╛рдкреНрдп рд╣реИрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред


рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рдХреА рддрд░рд╣, рд▓реЙрдХ рд▓реЙрдХ рджреЗрд░реА рдХреЗ рдмрд┐рдирд╛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд░реЗ, рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдЙрд╕ рддрд░рд╣ рд╕реЗ рд╢реЛрд╖рдг рдХрд░рддреА рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЦреЗрд▓ рдЖрдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рддрд╛ рд╣реИред рдЖрдХреГрддрд┐ рдХреЛ рдШреБрдорд╛рдиреЗ рдпрд╛ рдШреБрдорд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЦреЗрд▓ рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕рднреА рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рд╡рд░реНрдЧ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рднреАрддрд░ рдЦрд╛рд▓реА рдХрдХреНрд╖реЛрдВ рдореЗрдВ рд╣реЛрдВрдЧреЗред рдРрд╕рд╛ рдЪреЗрдХ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд╛рд╕ рдХреЗ рднрд░реЗ рд╣реБрдП рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЛрдЯреЗрд╢рди рдХреЛ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рд╡рд┐рд╡рд░рдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдЯреЗрдмрд▓ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 12 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ; рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╕рдХреНрд░рд┐рдп рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдХреА рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдИрдбреА рдХреЛ 12 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рджрд┐рдирдЪрд░реНрдпрд╛ рдореЗрдВ рд╕рднреА рдЧреБрдгрд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдпреЛрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

948B: LDA $0041
948D: ASL
948E: STA $00A8
9490: ASL
9491: ASL
9492: CLC
9493: ADC $00A8
9495: ADC $0040
9497: STA $00A8

9499: LDA $0042
949B: ASL
949C: ASL
949D: STA $00A9
949F: ASL
94A0: CLC
94A1: ADC $00A9
94A3: TAX ; index = 12 * orientationID;
94A4: LDY #$00

94A6: LDA #$04
94A8: STA $00AA ; for(i = 0; i < 4; i++) {

94AA: LDA $8A9C,X ; squareY = orientationTable[index];
94AD: CLC
94AE: ADC $0041 ; cellY = squareY + tetriminoY;
94B0: ADC #$02 ; if (cellY < -2 || cellY >= 20) {
94B2: CMP #$16 ; return false;
94B4: BCS $94E9 ; }

94B6: LDA $8A9C,X
94B9: ASL
94BA: STA $00AB
94BC: ASL
94BD: ASL
94BE: CLC
94BF: ADC $00AB
94C1: CLC
94C2: ADC $00A8
94C4: STA $00AD

94C6: INX
94C7: INX ; index += 2;

94C8: LDA $8A9C,X ; squareX = orientationTable[index];
94CB: CLC
94CC: ADC $00AD
94CE: TAY ; cellX = squareX + tetriminoX;
94CF: LDA ($B8),Y ; if (playfield[10 * cellY + cellX] != EMPTY_TILE) {
94D1: CMP #$EF ; return false;
94D3: BCC $94E9 ; }

94D5: LDA $8A9C,X
94D8: CLC
94D9: ADC $0040 ; if (cellX < 0 || cellX >= 10) {
94DB: CMP #$0A ; return false;
94DD: BCS $94E9 ; }

94DF: INX ; index++;
94E0: DEC $00AA
94E2: BNE $94AA ; }

94E4: LDA #$00
94E6: STA $00A8
94E8: RTS ; return true;

94E9: LDA #$FF
94EB: STA $00A8
94ED: RTS




index = (orientationID << 3) + (orientationID << 2); // index = 8 * orientationID + 4 * orientationID;

(cellY << 3) + (cellY << 1) // 8 * cellY + 2 * cellY


рдЦреЗрд▓ рдореИрджрд╛рди рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд▓ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдХреНрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рддрдм рдЬрд╛рдБрдЪрддреА рд╣реИ рдХрд┐ рд╕реЗрд▓ рдХрд╛ рдирд┐рд░реНрджреЗрд╢рди рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рднреАрддрд░ рд╣реИ, рдФрд░ рд╕реЗрд▓ рд╕реНрд╡рдпрдВ рдЦрд╛рд▓реА рд╣реИред

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИрдВ рдХрд┐ рд▓рд╛рдЗрди рд░рд┐рдХреНрддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХреИрд╕реЗ рдХрд░реЗрдВред рджреГрд╢реНрдп рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдб рдЦреЗрд▓ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдКрдкрд░ рджреЛ рдЫрд┐рдкреА рд╣реБрдИ рд░реЗрдЦрд╛рдУрдВ рдХреЛ рдпреМрдЧрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХрд╛рдиреВрдиреА рдкрджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдореЗрдВ рд╕рд┐рдВрдЧрд▓-рдмрд╛рдЗрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЧрдП рдирдХрд╛рд░рд╛рддреНрдордХ рдирдВрдмрд░ 127 рд╕реЗ рдЕрдзрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдиреНрдпреВрдирддрдо рдорд╛рди тИТ2 рд╣реИ, рдЬрд┐рд╕реЗ рдирд┐рдореНрди рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

94AA: LDA $8A9C,X ; squareY = orientationTable[index];
94AD: CLC
94AE: ADC $0041 ; cellY = squareY + tetriminoY;
94B0: ADC #$02 ; if (cellY + 2 >= 22) {
94B2: CMP #$16 ; return false;
94B4: BCS $94E9 ; }


cellY$FE(рджрд╢рдорд▓рд╡ рд╕рдВрдХреЗрддрди рдореЗрдВ 254)ред

рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ cellY10 рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ cellXред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм , cellY1 ( $FF= 255) рдпрд╛ $FE=2 ( = 254), рддреЛ рдЙрддреНрдкрд╛рдж (10 ( $F6= 246) рдФрд░ (20 ( $EC= 236) рджреЗрддрд╛ рд╣реИред рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ cellX9 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ 246 + 9 = 255 рдХрд╛ рдЕрдзрд┐рдХрддрдо рд╕реВрдЪрдХрд╛рдВрдХ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЦреЗрд▓ рдореИрджрд╛рди рдХреЗ рдЕрдВрдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЦреЗрд▓ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ $0400- $04FFрдПрдХ рд╡реИрд▓реНрдпреВ $EF(рдПрдХ рдЦрд╛рд▓реА рдЯрд╛рдЗрд▓) рдХреЗ рд╕рд╛рде, рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдХрд╛ рдПрдХ рдФрд░ 56 рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдЯреНрд╕ рдмрдирд╛рддреЗ рд╣реБрдПред

рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдЕрдВрддрд░рд╛рд▓ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВcellXрдЦреЗрд▓ рдореИрджрд╛рди рдХреЗ рд╕реЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдВрддрд░рд╛рд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╕рдордЧреНрд░ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдХрд╛рд░рдг рд╕рдВрднрд╡ рд╣реИрдВред

94D5: LDA $8A9C,X
94D8: CLC
94D9: ADC $0040 ; if (cellX >= 10) {
94DB: CMP #$0A ; return false;
94DD: BCS $94E9 ; }






рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдРрдиреА рдирд┐рдВрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреА рдЪрд▓рддреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдкреВрд░рд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╕реНрддрд░ 30 рдФрд░ рдЙрд╕рд╕реЗ рдКрдкрд░


30 рдХреЗ рд╕реНрддрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрддрд░ рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИред


рд▓реЗрдХрд┐рди рд╕реНрддрд░ 31 рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдФрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ:


рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрддрд░ рдорд╛рди рдкрддреЗ рдкрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ $96B8ред

96B8: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреИрдЯрд░реНрди рддрд╛рд▓рд┐рдХрд╛ рдЗрд╕рд▓рд┐рдП рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрд▓реНрд╕ $00рдкрд░ $0FрдЧреНрд▓рд┐рдлрд╝ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХ рд╣реИрдВ 0рдкрд░ Fред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдПрдХ рджрд╢рдорд▓рд╡ рдпрд╛ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдЕрдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдВрдХ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкреИрдЯрд░реНрди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрддрд░ рдорд╛рди рджреНрд╡рд┐рдЖрдзрд╛рд░реА-рдХреЛрдбрд┐рдд рджрд╢рдорд▓рд╡ (рдмреАрд╕реАрдбреА) рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ; рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреБрддрд░рдирд╛ рдПрдХ рдЯрд╛рдЗрд▓ рдореВрд▓реНрдп рд╣реИред


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреЗрдо рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдиреЗ рдпрд╣ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдХреЛрдИ рднреА 29 рдХреЗ рд╕реНрддрд░ рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд╝рд░реЗрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрд╕рдиреЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЗрд╡рд▓ 30 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдмрд╛рдж рдЕрдЬреАрдм рдкреНрд░рджрд░реНрд╢рд┐рдд рдореВрд▓реНрдп рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рдЗрдЯ (рдкрддреЗ рдкрд░ $0044) рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдЦреЗрд▓ рдзреАрд░реЗ-рдзреАрд░реЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП 256 рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЪрдХреНрд░ рдХрд░рддрд╛ рд╣реИред

000123456789ABCDEF
000010203040506070809101112131415
11617181920212223242526272829000A
2141E28323C46505A646E78828C96A0AA
3B4BEC620E62006212621462166218621
4A621C621E62106222622462266228622
5A622C622E6220623262385A829F04A4A
64A4A8D0720A5A8290F8D072060A649E0
7151053BDD696A88A0AAAE8BDEA968D06
820CAA5BEC901F01EA5B9C905F00CBDEA
99638E9028D06204C6797BDEA9618690C
A8D06204C6797BDEA961869068D0620A2
B0AB1B88D0720C8CAD0F7E649A549C914
C3004A920854960A5B12903D078A90085
DAAA6AAB54AF05C0AA8B9EA9685A8A5BE
EC901D00AA5A818690685A84CBD97A5B9
FC904D00AA5A838E90285A84CBD97A5A8

рдкрд╣рд▓реЗ 20 рдХреНрд░рдорд┐рдХ рдореВрд▓реНрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬреЛ 20 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рдСрдлрд╕реЗрдЯ рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИред рдЪреВрдВрдХрд┐ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 10 рд╕реЗрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдордирдорд╛рдирд╛ рд╕реЗрд▓ рдХрд╛ рдкрддрд╛ рд╣реИ: рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реАрдзреЗ рдЧреБрдгрди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд▓реБрдХрдЕрдк рддрд╛рд▓рд┐рдХрд╛ рдЙрддреНрдкрд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЗрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрдЧрд▓реЗ 40 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВред рдЗрд╕рдореЗрдВ Nametable 0 (рдкреГрд╖реНрдарднреВрдорд┐ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рдореВрд▓реНрдпреЛрдВ рд╡рд╛рд▓реЗ VRAM рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░) рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдПрдВрдбрд┐рдпрди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ 20 рдкрддреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╡реЗ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рдСрдлрд╕реЗрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реИрдВ ред рд╢реЗрд╖ рдмрд╛рдЗрдЯ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрддрд░ рдорд╛рдиреЛрдВ рдХреА рд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИ, рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред

96D6: 00 ; 0
96D7: 0A ; 10
96D8: 14 ; 20
96D9: 1E ; 30
96DA: 28 ; 40
96DB: 32 ; 50
96DC: 3C ; 60
96DD: 46 ; 70
96DE: 50 ; 80
96DF: 5A ; 90
96E0: 64 ; 100
96E1: 6E ; 110
96E2: 78 ; 120
96E3: 82 ; 130
96E4: 8C ; 140
96E5: 96 ; 150
96E6: A0 ; 160
96E7: AA ; 170
96E8: B4 ; 180
96E9: BE ; 190


$0400

$0400 + 10 * y + x



$0400 + [$96D6 + y] + x

$06



рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдФрд░ рдЖрдБрдХрдбрд╝реЗ


рдкреВрд░реНрдг рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдЖрдБрдХрдбрд╝реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрддреЛрдВ рдкрд░ 2 рдмрд╛рдЗрдЯреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддреА рд╣реИред

рдкрддрд╛рд╕рдВрдЦреНрдпрд╛
0050 - 0051рдкрдВрдХреНрддрд┐рдпрд╛рдБ
03F0 - 03F1рдЯреА
03F2 - 03F3рдЬрдореНрдореВ
03F4 - 03F5рдЬреЗрдб
03F6 - 03F7рд╣реЗ
03F8 - 03F9рдПрд╕
03FA - 03FBрдПрд▓
03FC - 03FDрдореИрдВ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ 16-рдмрд┐рдЯ рдкреИрдХ рдХрд┐рдП рдЧрдП рдЫреЛрдЯреЗ рдПрдВрдбрд┐рдпрди рдмреАрд╕реАрдбреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИ, рдЬреЛ рдХрд┐ 123 рд╣реИред рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рджрд╛рдИрдВ рд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рджрд╢рдорд▓рд╡ рдЕрдВрдХ рдХреНрд░рдо рдореЗрдВ рдЬрд╛рдПрдВред


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЧреЗрдо рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдиреЗ рдпрд╣ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдХреЛрдИ рднреА рдореВрд▓реНрдп 999 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рди рддрд░реНрдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдХреЛ рдПрдХ рдкреИрдХ рдмреАрд╕реАрдбреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдмрд▓ рдХреЛ рдЯрд╛рдЗрд▓ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкреВрд░реЗ рджреВрд╕рд░реЗ рдмрд╛рдЗрдЯ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢реАрд░реНрд╖ рджрд╢рдорд▓рд╡ рдЕрдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдирд┐рдЪрд▓реЗ рдЕрдВрдХ рд╕реЗ 99рдЬрд╛рддреЗ рд╣реИрдВ 00, рддреЛ рджреВрд╕рд░реА рдмрд╛рдЗрдЯ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред рдирддреАрдЬрддрди, рд╕рднреА 256 рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреВрд╕рд░рд╛ рдмрд╛рдЗрдЯ рдЪрдХреНрд░ред рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреЗрдХ рдордзреНрдп рдФрд░ рдирд┐рдЪрд▓реЗ рдЕрдВрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ 0 рдФрд░ 9 рдХреЗ рдмреАрдЪ рд░рд╣реЗрдВред рд▓реЗрдХрд┐рди рдКрдкрд░реА рдЕрдВрдХ рдХреЛ рдЕрд╕реАрдо рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рдмрд╛рдж рдирд┐рдЪрд▓рд╛ рдЕрдВрдХ 0 рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдиреЗ рд╕рд┐рд░реНрдл 10 рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрддрд░ рд╡реГрджреНрдзрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рджреВрд╕рд░рд╛ рдЪреЗрдХ рдЪрдпрдирд┐рдд рдкреНрд░рд╡реЗрд╢ рд╕реНрддрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрддрд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП , рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

9BA8: INC $0050 ; increment middle-lowest digit pair
9BAA: LDA $0050
9BAC: AND #$0F
9BAE: CMP #$0A ; if (lowest digit > 9) {
9BB0: BMI $9BC7
9BB2: LDA $0050
9BB4: CLC
9BB5: ADC #$06 ; set lowest digit to 0, increment middle digit
9BB7: STA $0050
9BB9: AND #$F0
9BBB: CMP #$A0 ; if (middle digit > 9) {
9BBD: BCC $9BC7
9BBF: LDA $0050
9BC1: AND #$0F
9BC3: STA $0050 ; set middle digit to 0
9BC5: INC $0051 ; increment highest digit
; }
; }






9BC7: LDA $0050
9BC9: AND #$0F
9BCB: BNE $9BFB ; if (lowest digit == 0) {
9BCD: JMP $9BD0

9BD0: LDA $0051
9BD2: STA $00A9
9BD4: LDA $0050
9BD6: STA $00A8 ; copy digits from $0050-$0051 to $00A8-$00A9

9BD8: LSR $00A9
9BDA: ROR $00A8
9BDC: LSR $00A9
9BDE: ROR $00A8
9BE0: LSR $00A9
9BE2: ROR $00A8 ; treat $00A8-$00A9 as a 16-bit packed BCD value
9BE4: LSR $00A9 ; and right-shift it 4 times
9BE6: ROR $00A8 ; this leaves the highest and middle digits in $00A8

9BE8: LDA $0044
9BEA: CMP $00A8 ; if (level < [$00A8]) {
9BEC: BPL $9BFB

9BEE: INC $0044 ; increment level
; }
; }


X10Xрд▓рд╛рдЗрдиреЛрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА 5 рд╕реНрддрд░ рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЙрд╕ рдкрд░ рддрдм рддрдХ рдмрдирд╛ рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рд╡рд╣ 60 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рд╛рдл рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ 6 рд╕реНрддрд░ рдкрд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдЕрддрд┐рд░рд┐рдХреНрдд 10 рд▓рд╛рдЗрдиреЗрдВ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдВрдЧреАред

рдЗрд╕ рдЬрд╛рдВрдЪ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рднрд░реЗ рд╣реБрдП рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдп рдХреЛ - рд╕реЗ $0050- $0051рддрдХ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдлрд┐рд░ рдХреЙрдкреА рдХреЛ рджрд╛рдИрдВ рдУрд░ 4 рдмрд╛рд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкреИрдХ рдХрд┐рдП рдЧрдП рдмреАрд╕реАрдбреА рдХреЗ рд▓рд┐рдП 10. рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХреЗ рд╕рдорд╛рди рд╣реИред рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рджрд╢рдорд▓рд╡ рдЕрдВрдХ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдЪреНрдЪрддрдо рдФрд░ рдордзреНрдп рдЕрдВрдХреЛрдВ рдХреЛ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк nibbles рд╣реЛрддреЗ рд╣реИрдВ ред$00A8$00A9$00A8


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрддреЗ рдкрд░, $9BEAрд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рд╕реАрдзреЗ рдмреАрд╕реАрдбреА рдХреЗ рдкреИрдХ рдХрд┐рдП рдЧрдП рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣реИ $00A8ред BCD рдорд╛рди рдХреЛ рджрд╢рдорд▓рд╡ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЛрдИ рдЦреЛрдЬ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рдХреА рддрд╕реНрд╡реАрд░ рдореЗрдВ, рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рдХреА рддреБрд▓рдирд╛ $12(рджрд╢рдорд▓рд╡ рдореЗрдВ 18) рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП , рди рдХрд┐ 12. рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА 17 рд╕реНрддрд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕реНрддрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 120 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ 18 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ 17.

рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрддрд░ рдкрд░ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд░реНрд╢рд╛рддреА рд╣реИред рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдПрдХ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реЛрддреА рд╣реИред

012345678910111213141516171819
102030405060708090100110120130140150160170180190200
102030405060708090100100100100100100100110120130140

рдЕрдкреЗрдХреНрд╖рд┐рдд рд░рд╛рд╢рд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрддрд░ 0тАУ9 рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рд╡реЗрд╢ рд╕реНрддрд░ 9 рдХреЗ рд▓рд┐рдП рд╕рдВрдпреЛрдЧ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИ; 10-15 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде 10-15 рднреА рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ $10- рдпрд╣ рджрд╢рдорд▓рд╡ рд░реВрдк рдореЗрдВ 16 рд╣реИред рдЕрдкреЗрдХреНрд╖рд┐рдд рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЕрдВрддрд░ 60 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдмрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рдж рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдореЗрдиреВ рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦреЗрдВ, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдкреНрд░рд╡реЗрд╢ рд╕реНрддрд░ рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


9. рдКрдкрд░ рдХреЗ рд╕реНрддрд░реЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдмреБрдХрд▓реЗрдЯ рдореЗрдВ рдЗрд╕ рд░рд╣рд╕реНрдп рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рд╣реБрдЖ рд╣реИ:


рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЫрд┐рдкреЗ рд╣реБрдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЖрдЦрд┐рд░реА рд╕рдордп рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╢рд╛рдпрдж рдпрд╣ рд░рд┐рд▓реАрдЬ рдХреА рддрд╛рд░реАрдЦ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреАред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдЬрд╛рдБрдЪ рдореЗрдВ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЙрддреНрдкрд╛рджрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рджреВрд╕рд░реА рддреНрд░реБрдЯрд┐ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд╣реИрдВ рдЬреЛ рдмреЗрд╣рддрд░ рдмрддрд╛рддреА рд╣реИрдВ рдХрд┐ рдирд┐рдореНрди рд╕реНрддрд░ рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рдВрдХреЗрдд рдХреЛ рдШрдЯрд╛рдХрд░ рдФрд░ рдЬрд╛рдБрдЪ рдХрд░ рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдПрдХрд▓-рдмрд╛рдЗрдЯ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ 127128 рд╕реЗ 127 рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдпрджрд┐ рдЕрдВрддрд░ ,128 рд╕реЗ рдХрдо рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдЕрдВрддрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛, рдЬрдм 255 рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдорд╛рдиреЛрдВ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ 0 рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░

9BE8: LDA $0044
9BEA: CMP $00A8 ; if (level - [$00A8] < 0) {
9BEC: BPL $9BFB

9BEE: INC $0044 ; increment level
; }




9BE8: LDA $0044 ; difference = level - [$00A8];
9BEA: CMP $00A8 ; if (difference < 0 && difference >= -128) {
9BEC: BPL $9BFB

9BEE: INC $0044 ; increment level
; }


$00A8рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рдХреЛрдИ рднреА рдореВрд▓реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдКрдкрд░реА рдХреБрддрд░рдирд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $0051, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╡реГрджреНрдзрд┐ рдЕрд╕реАрдо рд░реВрдк рд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдпреЗ рдкреНрд░рднрд╛рд╡ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВ, рдРрд╕реА рдЕрд╡рдзрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рдЧрд▓рддреА рд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддреА рд╣реИред рдкреАрд░рд┐рдпрдбреНрд╕ 2,900 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдирд┐рдпрдорд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВ, 2,190 рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ 800 рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рд░рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2190 ( L90) рд╕реЗ 2990 ( T90) рддрдХ, рд╕реНрддрд░ рдиреАрдЪреЗ $DB( 96) рдХреЗ рдмрд░рд╛рдмрд░ рд░рд╣рддрд╛ рд╣реИ , рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЕрдЧрд▓реА рдЕрд╡рдзрд┐ 5090 рд╕реЗ 5890 рддрдХ рд╣реЛрддреА рд╣реИ, рд╕реНрддрд░ рд▓рдЧрд╛рддрд╛рд░ $AD( 06) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди, рд░рдВрдЧ рдкреИрд▓реЗрдЯ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рд░рдВрдЧ рдкреЗрдЬ


рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдкрд░, рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдЯрд╛рдЗрд▓реНрд╕ рдХреЛ 4 рдЕрджреНрд╡рд┐рддреАрдп рд░рдВрдЧ рджрд┐рдП рдЧрдП рд╣реИрдВред рд░рдВрдЧ рд╕реНрдерд┐рдд рдЯреЗрдмрд▓ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВ $984Cред рдЙрд╕рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рд╣рд░ 10 рд╕реНрддрд░реЛрдВ рдкрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ: рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдХреЗ рдХрд╛рд▓реЗ, рд╕рдлреЗрдж, рдиреАрд▓реЗ рдФрд░ рд▓рд╛рд▓ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдХреЙрд▓рдоред

984C: 0F 30 21 12 ; level 0
9850: 0F 30 29 1A ; level 1
9854: 0F 30 24 14 ; level 2
9858: 0F 30 2A 12 ; level 3
985C: 0F 30 2B 15 ; level 4
9860: 0F 30 22 2B ; level 5
9864: 0F 30 00 16 ; level 6
9868: 0F 30 05 13 ; level 7
986C: 0F 30 16 12 ; level 8
9870: 0F 30 27 16 ; level 9





рдорд╛рди NES рд░рдВрдЧ рдкреИрд▓реЗрдЯ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред


рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рдкрд╣рд▓реЗ 2 рд░рдВрдЧ рд╣рдореЗрд╢рд╛ рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рд╣реЛрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╣рд▓рд╛ рд░рдВрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рдореВрд▓реНрдп рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдпрд╣ рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рд░рдВрдЧ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдареЛрд╕ рдХрд╛рд▓реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╣реЛрддреА рд╣реИред

рд░рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪ рджрд┐рдирдЪрд░реНрдпрд╛ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ $9808ред рд░рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ 10. рдХреЗ рд╢реЗрд╖ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЪрдХреНрд░ рд╡реАрдЖрд░рдПрдПрдо рдореЗрдВ рдкреИрд▓реЗрдЯ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдкреНрд░рд╡реЗрд╢ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИред рд╢реЗрд╖ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд╛рдЬрди 10 рдХреЗ рдирд┐рд░рдВрддрд░ рдШрдЯрд╛рд╡ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкрд░рд┐рдгрд╛рдо 10 рд╕реЗ рдХрдо рди рд╣реЛред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдк-рд░реЗрдЦрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИред

9808: LDA $0064
980A: CMP #$0A
980C: BMI $9814
980E: SEC
980F: SBC #$0A
9811: JMP $980A ; index = levelNumber % 10;

9814: ASL
9815: ASL
9816: TAX ; index *= 4;

9817: LDA #$00
9819: STA $00A8 ; for(i = 0; i < 32; i += 16) {

981B: LDA #$3F
981D: STA $2006
9820: LDA #$08
9822: CLC
9823: ADC $00A8
9825: STA $2006 ; palette = $3F00 + i + 8;

9828: LDA $984C,X
982B: STA $2007 ; palette[0] = colorTable[index + 0];

982E: LDA $984D,X
9831: STA $2007 ; palette[1] = colorTable[index + 1];

9834: LDA $984E,X
9837: STA $2007 ; palette[2] = colorTable[index + 2];

983A: LDA $984F,X
983D: STA $2007 ; palette[3] = colorTable[index + 3];

9840: LDA $00A8
9842: CLC
9843: ADC #$10
9845: STA $00A8
9847: CMP #$20
9849: BNE $981B ; }

984B: RTS ; return;






9808: LDA $0064 ; index = levelNumber;
980A: CMP #$0A ; while(index >= 10) {
980C: BMI $9814
980E: SEC
980F: SBC #$0A ; index -= 10;
9811: JMP $980A ; }


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдВрддрд░ рдЪрд┐рд╣реНрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдШрдЯрд╛рд╡ рдФрд░ рд╢рд╛рдЦрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рддреБрд▓рдирд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдПрдХрд▓-рдмрд╛рдЗрдЯ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ -128 рд╕реЗ 127 рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдиреАрдЪреЗ рджреА рдЧрдИ рдЕрджреНрдпрддрди рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИрдВред рдиреАрдЪреЗ рджреА рдЧрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдФрд░ рд╕рд░рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╢рдмреНрдж рдХреЛрдб рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рддрд╛ рд╣реИред рд╢реЗрд╖ рд╡рд┐рднрд╛рдЬрди рдСрдкрд░реЗрд╢рди 138 рдФрд░ рдЙрдЪреНрдЪрддрд░ рд╕реНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╕реВрдЪрдХрд╛рдВрдХ рд╕реАрдзреЗ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд░рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдмрд╛рдЗрдЯреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рднреА рд▓рдЧрднрдЧ рдПрдХ рдЕрджреГрд╢реНрдп рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИред

9808: LDA $0064 ; index = levelNumber;
; difference = index - 10;
980A: CMP #$0A ; while(difference >= 0 && difference <= 127) {
980C: BMI $9814
980E: SEC ; index -= 10;
980F: SBC #$0A ; difference = index - 10;
9811: JMP $980A ; }




9808: LDA $0064 ; index = levelNumber;
980A: CMP #$0A ; while(index >= 10 && index <= 137) {
980C: BMI $9814
980E: SEC
980F: SBC #$0A ; index -= 10;
9811: JMP $980A ; }





рдиреАрдЪреЗ рд╕рднреА 256 рд╕реНрддрд░реЛрдВ рдХреЗ рд░рдВрдЧ рд╣реИрдВред рд░рдВрдЧреАрди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЪрдХреНрд░реАрдп рдЙрдкрдпреЛрдЧ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрд▓реЛрдВ рдХреЛ 10 рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕реНрддрд░ 138 рдкрд░ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣реЗрдбрд░ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЛ рджрд╢рдорд▓рд╡ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


255 рдХреЗ рдмрд╛рдж, рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ 0. рдкрд░ рд▓реМрдЯ рдЖрддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреБрдЫ рд╕реНрддрд░ 800 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рддрдХ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВред рдЗрди рд▓рдВрдмреЗ рд╕реНрддрд░реЛрдВ рдХреЗ рджреМрд░рд╛рди, рд░рдВрдЧ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддреЗ рд╣реИрдВред

рдЦреЗрд▓ рдореЛрдб


рдкрддреЗ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдЧреЗрдо рдореЛрдб $00C0рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдХреНрд░реАрди рдФрд░ рдореЗрдиреВ рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореВрд▓реНрдпрд╡рд┐рд╡рд░рдг
00рдХрд╛рдиреВрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдХреНрд░реАрди
01рд╕реНрдкрд▓реИрд╢ рд╕реНрдХреНрд░реАрди
02рдЦреЗрд▓ рдкреНрд░рдХрд╛рд░ рдореЗрдиреВ
03рд╕реНрддрд░реЛрдВ рдФрд░ рдКрдВрдЪрд╛рдЗрдпреЛрдВ рдХрд╛ рдореЗрдиреВ
04рдЧреЗрдо / рд╣рд╛рдИрд╕реНрдХреЛрд░ / рд╕рдорд╛рдкреНрдд / рд░реЛрдХреЗрдВ
05рдбреЗрдореЛ

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЧреЗрдо рдореЗрдВ рдПрдХ рдЪрддреБрд░рд╛рдИ рд╕реЗ рд▓рд┐рдЦреА рдЧрдИ рджрд┐рдирдЪрд░реНрдпрд╛ рд╣реИ рдЬреЛ рдХреЙрд▓ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╕реНрдерд┐рдд рдЫреЛрдЯреЗ рдПрдВрдбрд┐рдпрди рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдКрдкрд░ рджреА рдЧрдИ рд╕реВрдЪреА рд╕рднреА рдЧреЗрдо рдореЛрдб рдХреЗ рдкрддреЗ рджрд┐рдЦрд╛рддреА рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ "рдЧреЗрдо" рдФрд░ "рдбреЗрдореЛ" рдореЛрдб рдПрдХ рд╣реА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рджрд┐рдирдЪрд░реНрдпрд╛ рдХрднреА рдирд╣реАрдВ рд▓реМрдЯрддреАред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдХреЛрдб рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╕рдмрд░реВрдЯреАрди (рд╢реВрдиреНрдп рд╕реЗ 1 рдмрд╛рдЗрдЯ) рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЬрдВрдк рдЯреЗрдмрд▓ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред рд╡рд╛рдкрд╕реА рдкрддрд╛ рд╕реНрдЯреИрдХ рд╕реЗ рдкреЙрдк рдФрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╣реИ - ред рдЬрдВрдк рдЯреЗрдмрд▓ рдХреЗ рдкрддреЗ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдб рдП рдореЗрдВ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдХреНрд░рдордг рдХрд░рддрд╛ рд╣реИред

8161: LDA $00C0
8163: JSR $AC82 ; switch(gameMode) {
8166: 00 82 ; case 0: goto 8200; //
8168: 4F 82 ; case 1: goto 824F; //
816A: D1 82 ; case 2: goto 82D1; //
816C: D7 83 ; case 3: goto 83D7; //
816E: 5D 81 ; case 4: goto 815D; // / / /
8170: 5D 81 ; case 5: goto 815D; //
; }




$0000$0001

AC82: ASL
AC83: TAY
AC84: INY

AC85: PLA
AC86: STA $0000
AC88: PLA ; pop return address off of stack
AC89: STA $0001 ; and store it at $0000-$0001

AC8B: LDA ($00),Y
AC8D: TAX
AC8E: INY
AC8F: LDA ($00),Y
AC91: STA $0001
AC93: STX $0000
AC95: JMP ($0000) ; goto Ath 16-bit address
; in table at [$0000-$0001]


рдХреЛрдб рдЗрд╕ рд╕реНрд╡рд┐рдЪ рджрд┐рдирдЪрд░реНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ 0 рдХреЗ рдХрд░реАрдм рд╣реИрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдорд▓реЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕реНрдерд╛рди рдпрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВред

рдХрд╛рдиреВрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдХреНрд░реАрди


рдЦреЗрд▓ рдПрдХ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд╛рдиреВрдиреА рдиреЛрдЯрд┐рд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИред


рд╕реНрдХреНрд░реАрди рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ, Aleksey Pazhitnov рдХреЛ рдкрд╣рд▓реЗ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░рдХ, рдбрд┐рдЬрд╛рдЗрдирд░ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред 1984 рдореЗрдВ, рдбреЛрд░реЛрдбрдирд┐рдЯреНрд╕ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕реЗрдВрдЯрд░ (рдореЙрд╕реНрдХреЛ рдореЗрдВ рд░реВрд╕реА рдЕрдХрд╛рджрдореА рдСрдл рд╕рд╛рдЗрдВрд╕реЗрдЬ рдХреЗ рдПрдХ рдкреНрд░рдореБрдЦ рд╢реЛрдз рд╕рдВрд╕реНрдерд╛рди) рдореЗрдВ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП , рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ -60 (рд╕реЛрд╡рд┐рдпрдд рдХреНрд▓реЛрди рдбреАрдИрд╕реА рдПрд▓рдПрд╕рдЖрдИ -11 ) рдкрд░ рдЧреЗрдо рдХрд╛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ ред рдПрдХ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдореЛрдиреЛрдХреНрд░реЛрдо рдкрд╛рда рдореЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрдЧ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдХреЗ рдЬреЛрдбрд╝реЗ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ []ред 16 рд╡рд░реНрд╖реАрдп рд╕реНрдХреВрд▓реА рдЫрд╛рддреНрд░ рд╡рд╛рджрд┐рдо рдЧреЗрд░рд╛рд╕рд┐рдореЛрд╡ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдЗрдВрдЬреАрдирд┐рдпрд░ рджрд┐рдорд┐рддреНрд░реА рдкрд╛рд╡рд▓реЛрд╡рд╕реНрдХреА рдХреА рдорджрдж рд╕реЗ рдЦреЗрд▓ рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХреЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдмрд╛рдж, рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рдПрдордПрд╕ рдбреЙрд╕ рдФрд░ рдЯрд░реНрдмреЛ рдкрд╛рд╕реНрдХрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдИрдмреАрдПрдо рдкреАрд╕реА рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛редред рджреЛ рд╡рд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд╕рд╛рде рдЧреЗрдо рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛, рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рд░рдВрдЧ, рд╕рд╛рдВрдЦреНрдпрд┐рдХреА, рдФрд░ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдПрдХ рд╕рдордп рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛрдб рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, рдЬрд┐рд╕рдиреЗ рдЧреЗрдо рдХреЛ рдХрдИ рдкреАрд╕реА рдореЙрдбрд▓ рдФрд░ рдХреНрд▓реЛрди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЙрд╕ рд╕рдордп рд╕реЛрд╡рд┐рдпрдд рд╕рдВрдШ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдХреЗ рдХрд╛рд░рдг, рдЦреЗрд▓ рдХреЛ рдореБрджреНрд░реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдЙрдирдХреЗ рдкреНрд░рдпрд╛рд╕ рдЕрд╕рдлрд▓ рд░рд╣реЗ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдлреНрдд рдореЗрдВ рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдкреАрд╕реА рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЙрд╕ рдХреНрд╖рдг рд╕реЗ, "рдЯреЗрдЯреНрд░рд┐рд╕" рдкреВрд░реЗ рджреЗрд╢ рдореЗрдВ рдФрд░ рдЙрд╕рд╕реЗ рдЖрдЧреЗ, рдбрд┐рд╕реНрдХ рд╕реЗ рдбрд┐рд╕реНрдХ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдЦреЗрд▓ рдПрдХ рд╕рд░рдХрд╛рд░реА рдПрдЬреЗрдВрд╕реА рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд░рд╛рдЬреНрдп рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдерд╛, рдФрд░ 1987 рдореЗрдВ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдореЗрдВ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╕рдВрдЧрдарди рдиреЗ рдЦреЗрд▓ рдХрд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ ( рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирдЧреЛрд░рдЯреЗрдЦреНрдирд┐рдХрд╛ (рдПрд▓рдПрд▓рдУрдЬреА)) рд╕рдВрднрд╛рд▓рд╛ред)ред рдХрд╛рдиреВрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо V / O, рд╡рд░реНрдЬрди рдУрд░рд┐рдЬрд┐рдирд▓ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдмреНрд░рд┐рдЯрд┐рд╢ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрдВрдкрдиреА рдПрдВрдбреНрд░реЛрдореЗрдбрд╛ рдиреЗ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЛ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд▓реЗрди-рджреЗрди рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЦреЗрд▓ рдХреЛ рдЕрдиреНрдп рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдВрдкреНрдпреВрдЯрд░ рдЧреЗрдо рдорд┐рд░рд░рд╕реЙрдлреНрдЯ рдХреЗ рдмреНрд░рд┐рдЯрд┐рд╢ рдкреНрд░рдХрд╛рд╢рдХ ред рдорд┐рд░рд░рд╕реЙрдлреНрдЯ, рдмрджрд▓реЗ рдореЗрдВ, рдЕрдЯрд╛рд░реА рдЦреЗрд▓реЛрдВ рдХреА рд╕рд╣рд╛рдпрдХ рдХрдВрдкрдиреА рдЯреЗрдВрдЧреЗрди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ ред рдЯреЗрдВрдЧреЗрди рдиреЗ рдмреБрд▓реЗрдЯ-рдкреНрд░реВрдл рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЛ рдЬрд╛рдкрд╛рди рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЯреЗрдЯреНрд░рд┐рд╕ рдиреЗ рдирд┐рдирдЯреЗрдВрдбреЛ рдлреЗрдореАрдХреЛрдо рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ ред рдиреАрдЪреЗ рдЙрд╕рдХреА рдХрд╛рдиреВрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдХреНрд░реАрди рд╣реИред


рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╕реНрдХреВрд▓ рдХреЗ рд▓рдбрд╝рдХреЗ рд╡рд╛рджрд┐рдо рдЧреЗрд░рд╛рд╕рд┐рдореЛрд╡ рдХреЛ рдореВрд▓ рдбрд┐рдЬрд╛рдЗрдирд░ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдЧрд╛рдореА рдЧреЗрдо рдмреЙрдп рдХрдВрд╕реЛрд▓ рдХреЗ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реБрдП, рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдиреЗ рдмреБрд▓реЗрдЯ-рдкреНрд░реВрдл рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдФрд░ рд╕реАрдзреЗ рдПрд▓рд░реЙрдЬ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдлрд▓ рд╕реМрджрд╛ рдХрд┐рдпрд╛ред рд╕реМрджрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдПрд▓рд░реЙрдЬ рдиреЗ рдПрдВрдбреНрд░реЛрдореЗрдбрд╛ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрдмрдВрдз рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдХрд╣рд╛ рдХрд┐ рдПрдВрдбреНрд░реЛрдореЗрдбрд╛ рдХреЛ рдХреЗрд╡рд▓ рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдЖрд░реНрдХреЗрдб рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдорд┐рд▓реЗред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдмреБрд▓реЗрдЯ-рдкреНрд░реВрдл рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЛ рдлреЗрдореАрдХреЙрдо рдХреЗ рд▓рд┐рдП рдмреЗрдЪреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрд╛рд░рддреВрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓рдЖрд░рдУрдЬреА рд░реЙрдпрд▓реНрдЯреА рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдЯреЗрдВрдЧреЗрди рдХреЛ рдорд┐рд▓реЗ рдЕрдзрд┐рдХрд╛рд░ рдирдХрд▓реА рдирд┐рдХрд▓реЗред рд▓реЗрдХрд┐рди ELORG рдХреЗ рд╕рд╛рде рд╕рд╛рдордВрдЬрд╕реНрдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдмреБрд▓реЗрдЯ-рдкреНрд░реВрдл рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЕрдВрддрддрдГ рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдХреЗ рд▓рд┐рдП рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдЧреЗрдо рдЕрдзрд┐рдХрд╛рд░ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред

рдмреБрд▓реЗрдЯ-рдкреНрд░реВрдл рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдиреЗ рдирд┐рдВрдЯреЗрдВрдбреЛ рдХреЗ рдкреЛрд░реНрдЯреЗрдмрд▓ рдЧреЗрдо рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд╡рд╢реАрднреВрдд рдХрд┐рдпрд╛ рдФрд░ рд╕рд╛рде рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЧреЗрдо рдмреЙрдп рдЯреЗрдЯреНрд░рд┐рд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛, рдЬреЛ рдиреАрдЪреЗ рджреА рдЧрдИ рдХрд╛рдиреВрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдХреНрд░реАрди рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред


рд╡реИрд╢реНрд╡рд┐рдХ рдХрдВрд╕реЛрд▓ рдЧреЗрдорд┐рдВрдЧ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде, рдирд┐рдВрдЯреЗрдВрдбреЛ рдиреЗ рдПрдирдИрдПрд╕ рдХреЗ рд▓рд┐рдП рдЯреЗрдЯреНрд░рд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВред рддрдм рдмреБрд▓реЗрдЯ-рдкреНрд░реВрдл рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдиреЗ рдирд┐рдВрдЯреЗрдВрдбреЛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рдЙрд╕реЗ рдЬрд╛рдкрд╛рди рдореЗрдВ рдлреЗрдореАрдХреЙрдо рдХреЗ рд▓рд┐рдП рдХрд╛рд░рддреВрд╕ рдмреЗрдЪрдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдЬрдЯрд┐рд▓ рдХрд╛рдиреВрдиреА рд▓рдбрд╝рд╛рдИ рд╣реБрдИред рдирд┐рдирдЯреЗрдВрдбреЛ рдФрд░ рдЯреЗрдВрдЧреЗрди рджреЛрдиреЛрдВ рдиреЗ рдорд╛рдВрдЧ рдХреА рдХрд┐ рд╡рд┐рд░реЛрдзреА рдкрдХреНрд╖ рдЦреЗрд▓ рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрддреНрдкрд╛рджрди рдФрд░ рдмрд┐рдХреНрд░реА рдмрдВрдж рдХрд░ рджреЗред рдирддреАрдЬрддрди, рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЬреАрдд рдЧрдпрд╛, рдФрд░ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЯреЗрдВрдЧреЗрди рдЯреЗрдЯреНрд░рд┐рд╕ рдХрд╛рд░рддреВрд╕ рдирд╖реНрдЯ рд╣реЛ рдЧрдПред рдЕрджрд╛рд▓рдд рдХреЗ рдлреИрд╕рд▓реЗ рдиреЗ рдХрдИ рдЕрдиреНрдп рдХрдВрдкрдирд┐рдпреЛрдВ рдЬреИрд╕реЗ рдорд┐рд░рд░рд╕реЙрдлреНрдЯ рдХреЛ рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░ рджрд┐рдпрд╛ред

рдкрд╛рдЬрд┐рдЯрдиреЛрд╡ рдиреЗ рдХрднреА рднреА ELORG рдпрд╛ рд╕реЛрд╡рд┐рдпрдд рд░рд╛рдЬреНрдп рд╕реЗ рдХреЛрдИ рдХрдЯреМрддреА рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, 1991 рдореЗрдВ рд╡рд╣ рдмреБрд▓реЗрдЯ-рдкреНрд░реВрдл рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ рдпреВрдПрд╕рдП рдФрд░ 1996 рдореЗрдВ рдЪрд▓реЗ рдЧрдПрд╣реЗрдиреНрдХрд╛ рд░реЛрдЬрд░реНрд╕ рдиреЗ рдж рдЯреЗрдЯреНрд░рд┐рд╕ рдХрдВрдкрдиреА рдХреА рд╕рд╣-рд╕реНрдерд╛рдкрдирд╛ рдХреА , рдЬрд┐рд╕рдиреЗ рдЙрдиреНрд╣реЗрдВ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдЖрдзреБрдирд┐рдХ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

рдпрд╣ рдХрд╛рдиреВрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдХреНрд░реАрди рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдПрдХ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЗрд▓ рдХреА рдореВрд▓ рдЙрддреНрдкрддреНрддрд┐ рдФрд░ рдмреМрджреНрдзрд┐рдХ рд╕рдВрдкрджрд╛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реА рд▓рдбрд╝рд╛рдЗрдпреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдХреНрд░реАрди рд╕рд┐рд░реНрдл рдПрдХ рдХрд╖реНрдЯрдкреНрд░рдж рдмрд╛рдзрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХрд╛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рджреЗрд░реА рдХреЛ рджреЛ рдХрд╛рдЙрдВрдЯрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ 255 рд╕реЗ 0. рддрдХ рдЧрд┐рдирддреА рдХреА рдЬрд╛рддреА рд╣реИред рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдкреНрд░рд╛рд░рдВрдн рдмрдЯрди рджрдмрд╛рдХрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд╛рдиреВрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдХреНрд░реАрди рдХреЛ рдХрдо рд╕реЗ рдХрдо 4.25 рд╕реЗрдХрдВрдб рдФрд░ 8.5 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЦрд┐рд▓рд╛рдбрд╝реА рдкрд╣рд▓реЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рджреМрд░рд╛рди рд╕реНрдЯрд╛рд░реНрдЯрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдирд╛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рд╡реЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЪрд░рдгреЛрдВ рдХрд╛ рд╕рдордп, рд╕рд╛рде рд╣реА рд╕рд╛рде рдмрд╛рдХреА рдЦреЗрд▓, рдПрдХ рдмрд┐рдирд╛ рд░реБрдХрд╛рд╡рдЯ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдмреНрд▓реИрдВрдЯрд┐рдВрдЧ рдЕрдВрддрд░рд╛рд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЯреЗрд▓реАрд╡рд┐рдЬрди рдлрд╝реНрд░реЗрдореЛрдВ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдмреАрдЪ рдХреА рдПрдХ рдЫреЛрдЯреА рдЕрд╡рдзрд┐ рд╣реЛрддреА рд╣реИред рдЕрд░реНрдерд╛рддреН, рдкреНрд░рддреНрдпреЗрдХ 16.6393 рдорд┐рд▓реАрд╕реЗрдХрдВрдб, рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдмрд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рд░ рд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдмрд╛рдзрд╛ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рд╣реЛред рдХреЙрд▓ рд╡реАрдЖрд░рдПрдПрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдореЗрдореЛрд░реА рдореЙрдбрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣реИрдВрдбрд▓рд░ рдХрд╛рдиреВрдиреА рд╕реВрдЪрдирд╛ рд╕реНрдХреНрд░реАрди рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдХреЙрд▓

8005: PHA
8006: TXA
8007: PHA
8008: TYA
8009: PHA ; save A, X, Y

800A: LDA #$00
800C: STA $00B3
800E: JSR $804B ; render();

8011: DEC $00C3 ; legalScreenCounter1--;

8013: LDA $00C3
8015: CMP #$FF ; if (legalScreenCounter1 < 0) {
8017: BNE $801B ; legalScreenCounter1 = 0;
8019: INC $00C3 ; }

801B: JSR $AB5E ; initializeOAM();

801E: LDA $00B1
8020: CLC
8021: ADC #$01
8023: STA $00B1
8025: LDA #$00
8027: ADC $00B2
8029: STA $00B2 ; frameCounter++;

802B: LDX #$17
802D: LDY #$02
802F: JSR $AB47 ; randomValue = generateNextPseudorandomNumber(randomValue);

8032: LDA #$00
8034: STA $00FD
8036: STA $2005 ; scrollX = 0;
8039: STA $00FC
803B: STA $2005 ; scrollY = 0;

803E: LDA #$01
8040: STA $0033 ; verticalBlankingInterval = true;

8042: JSR $9D51 ; pollControllerButtons();

8045: PLA
8046: TAY
8047: PLA
8048: TAX
8049: PLA ; restore A, X, Y

804A: RTI ; resume interrupted task


render()initializeOAM()рдлрд╝реНрд░реЗрдо рдЬрдирд░реЗрд╢рди рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЪрд░рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рд░ рдлреНрд░реЗрдо рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдмрдврд╝рд╛рдХрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ $00B1- рдкрддреЗ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд 16-рдмрд┐рдЯ рдереЛрдбрд╝рд╛ рдПрдВрдбрд┐рдпрди рдореВрд▓реНрдп - $00B2рдЬреЛ рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ; рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдкреНрд░рддрд┐ рдлреНрд░реЗрдо рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдореЛрдб рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╣реЛрддрд╛ рд╣реИред $8040рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд░рд┐рдХреНрдд рдЕрдВрддрд░рд╛рд▓ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдкрддрд╛ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЕрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдирд┐рдпрдВрддреНрд░рдХ рдмрдЯрди рдкреНрд░рджреВрд╖рд┐рдд рд╣реИрдВ; рдЗрд╕ рджрд┐рдирдЪрд░реНрдпрд╛ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдбреЗрдореЛ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИред

рдзреНрд╡рдЬ рдХрд╛ verticalBlankingIntervalрдЙрдкрдпреЛрдЧ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рджрд┐рдирдЪрд░реНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред

AA2F: JSR $E000 ; updateAudio();

AA32: LDA #$00
AA34: STA $0033 ; verticalBlankingInterval = false;

AA36: NOP

AA37: LDA $0033
AA39: BEQ $AA37 ; while(!verticalBlankingInterval) { }

AA3B: LDA #$FF
AA3D: LDX #$02
AA3F: LDY #$02
AA41: JSR $AC6A ; fill memory page 2 with all $FF's

AA44: RTS ; return;


рдЗрд╕ рдЕрд╡рд░реБрджреНрдз рджрд┐рдирдЪрд░реНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рдиреВрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рдордп рдХреЗ рджреЛ рдЪрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Lua AI рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛрдиреЛрдВ рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдЗрд╕ рджреЗрд░реА рдХреЛ рдмрд╛рдИрдкрд╛рд╕ рдХрд░рддреА рд╣реИред

8236: LDA #$FF
8238: JSR $A459

...

A459: STA $00C3 ; legalScreenCounter1 = 255;

A45B: JSR $AA2F ; do {
A45E: LDA $00C3 ; waitForVerticalBlankingInterval();
A460: BNE $A45B ; } while(legalScreenCounter1 > 0);

A462: RTS ; return;


823B: LDA #$FF
823D: STA $00A8 ; legalScreenCounter2 = 255;

; do {

823F: LDA $00F5 ; if (just pressed Start) {
8241: CMP #$10 ; break;
8243: BEQ $824C ; }

8245: JSR $AA2F ; waitForVerticalBlankingInterval();

8248: DEC $00A8 ; legalScreenCounter2--;
824A: BNE $823F ; } while(legalScreenCounter2 > 0);

824C: INC $00C0 ; gameMode = TITLE_SCREEN;




рдбреЗрдореЛ


рдбреЗрдореЛ рдкреНрд░реА-рд░рд┐рдХреЙрд░реНрдбреЗрдб рдЧреЗрдордкреНрд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 80 рд╕реЗрдХрдВрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЦреЗрд▓ рдореЗрдВ рдЙрд╕реА рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкреНрд▓реЗрдмреИрдХ рдХреЗ рджреМрд░рд╛рди, рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрддреЗ рдкрд░ рд╕реНрдерд┐рдд рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, $DF00рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдмрдирд╛рдиреЗ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

TJTSZJTSZJSZLZJTTSITO JSZLZLIOLZLIOJTSITOJ

рдПрдХ рдЖрдВрдХрдбрд╝рд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдпрд╣ рдпрд╛ рддреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдкрддреЗ рдкрд░ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ $98EBред рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдХреЗ рдмрд┐рдЯреНрд╕ 6, 5 рдФрд░ 4 рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдордп-рд╕рдордп рдкрд░, рдпрд╣ рдСрдкрд░реЗрд╢рди рд╣рдореЗрдВ рдПрдХ рдореВрд▓реНрдп рджреЗрддрд╛ рд╣реИ - рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдХрд╛рд░ рдмрдирд╛рдиреЗ рддрд╛рд▓рд┐рдХрд╛ ( ) tetrimino рдЖрдИрдбреА рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛрдиреЛрдВ рдЖрдкрд╕ рдореЗрдВ рдЬреБрдбрд╝реЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рдд рд╣реИ: рдЕрд░реНрде

98EB: LDA $00C0
98ED: CMP #$05
98EF: BNE $9903 ; if (gameMode == DEMO) {

98F1: LDX $00D3
98F3: INC $00D3
98F5: LDA $DF00,X ; value = demoTetriminoTypeTable[++demoIndex];

98F8: LSR
98F9: LSR
98FA: LSR
98FB: LSR
98FC: AND #$07
98FE: TAX ; tetriminoType = bits 6,5,4 of value;

98FF: LDA $994E,X
9902: RTS ; return spawnTable[tetriminoType];
; } else {
; pickRandomTetrimino();
; }


$07$994E

993B: 00 00 00 00 ; T
993F: 01 01 01 01 ; J
9943: 02 02 ; Z
9945: 03 ; O
9946: 04 04 ; S
9948: 05 05 05 05 ; L
994C: 06 06 ; I


994E: 02 ; Td
994F: 07 ; Jd
9950: 08 ; Zh
9951: 0A ; O
9952: 0B ; Sh
9953: 0E ; Ld
9954: 12 ; Ih


9956: 02 02 02 02 ; Td
995A: 07 07 07 07 ; Jd
995E: 08 08 ; Zh
9960: 0A ; O
9961: 0B 0B ; Sh
9963: 0E 0E 0E 0E ; Ld
9967: 12 12 ; Ih


$07рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд░реЗ, рдЕрдЧрд▓реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рджреЗрддрд╛ рд╣реИ Td( $02)ред

рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдпреЛрдЬрдирд╛ рд╣рдореЗрдВ рдПрдХ рдЕрд╕реАрдорд┐рдд, рд▓реЗрдХрд┐рди рдирд┐рд░реНрдорд┐рдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЙрдиреНрдореБрдЦреАрдХрд░рдг рдХреЗ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрдИрдбреА рдХреЗ рдкреНрд░рдЬрдирди рдпреЛрдЧреНрдп рдЕрдиреБрдХреНрд░рдо рджреЗ рд╕рдХрддреА рд╣реИред рдХреЛрдб рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмрджрд▓рддреЗ рдХреНрд░рдо рдореЗрдВ рдХреЛрдИ рднреА рдордирдорд╛рдирд╛ рдкрддрд╛ рд╣рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХрд╣рд╛рдБ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкрддреЗ рдкрд░ рдЕрдиреБрдХреНрд░рдо $DF00рдЗрд╕ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╢реЗрд╖ 5 рдиреЙрдирдЬрд░реЛ рдмрд┐рдЯреНрд╕ рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЙрддреНрдкрдиреНрди рдЕрдиреБрдХреНрд░рдо рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдбреЗрдореЛ рдореЛрдб рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди, рдЯреЗрдмрд▓ рдЗрдВрдбреЗрдХреНрд╕ ( $00D3) рдкрддреЗ рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ $872Bред

рдбреЗрдореЛ рдХреА рджреВрд╕рд░реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЬреЛрдбрд╝реЗ рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рдЧреЗрдордкреИрдб рдмрдЯрди рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рд╣реИред рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдХреЗ рдмрд┐рдЯреНрд╕ рдмрдЯрди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред

76543210
рдПрдХрдмреАрдЪреБрдирдирд╛рдкреНрд░рд╛рд░рдВрднрдКрдкрд░рдиреАрдЪреЗрдмрд╛рдИрдВ рдУрд░рджрд╛рдИрдВ рдУрд░

рджреВрд╕рд░рд╛ рдмрд╛рдЗрдЯ рдлреНрд░реЗрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдмрдЯрди рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд╛рд▓рд┐рдХрд╛ рдкрддреЗ рд▓реЗрддреА рд╣реИ $DD00- $DEFFрдФрд░ 256 рдЬреЛрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рдкрддреЗ рдкрд░ рд╕рдмрд░реВрдЯреАрди рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $9D5Bред рдЪреВрдВрдХрд┐ рдбреЗрдореЛ рдмрдЯрди рддрд╛рд▓рд┐рдХрд╛ 512 рдмрд╛рдЗрдЯреНрд╕ рд▓рдВрдмреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ-рдмрд╛рдЗрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдХрдо рдПрдВрдбрд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - ред рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдкрддреЗ рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ , рдФрд░ рдЗрд╕рдХреА рд╡реГрджреНрдзрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдХреЛрдб рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЗрдирдкреБрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рдЬреЛ рд╣рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рдбреЗрдореЛ рдХреЛ рджреВрд╕рд░реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЬрдм рдПрдХ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдбреЗрдореЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдореЛрдб рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИред

9D5B: LDA $00D0 ; if (recording mode) {
9D5D: CMP #$FF ; goto recording;
9D5F: BEQ $9DB0 ; }

9D61: JSR $AB9D ; pollController();
9D64: LDA $00F5 ; if (start button pressed) {
9D66: CMP #$10 ; goto startButtonPressed;
9D68: BEQ $9DA3 ; }

9D6A: LDA $00CF ; if (repeats == 0) {
9D6C: BEQ $9D73 ; goto finishedMove;
; } else {
9D6E: DEC $00CF ; repeats--;
9D70: JMP $9D9A ; goto moveInProgress;
; }

finishedMove:

9D73: LDX #$00
9D75: LDA ($D1,X)
9D77: STA $00A8 ; buttons = demoButtonsTable[index];

9D79: JSR $9DE8 ; index++;

9D7C: LDA $00CE
9D7E: EOR $00A8
9D80: AND $00A8
9D82: STA $00F5 ; setNewlyPressedButtons(difference between heldButtons and buttons);

9D84: LDA $00A8
9D86: STA $00CE ; heldButtons = buttons;

9D88: LDX #$00
9D8A: LDA ($D1,X)
9D8C: STA $00CF ; repeats = demoButtonsTable[index];

9D8E: JSR $9DE8 ; index++;

9D91: LDA $00D2 ; if (reached end of demo table) {
9D93: CMP #$DF ; return;
9D95: BEQ $9DA2 ; }

9D97: JMP $9D9E ; goto holdButtons;

moveInProgress:

9D9A: LDA #$00
9D9C: STA $00F5 ; clearNewlyPressedButtons();

holdButtons:

9D9E: LDA $00CE
9DA0: STA $00F7 ; setHeldButtons(heldButtons);

9DA2: RTS ; return;

startButtonPressed:

9DA3: LDA #$DD
9DA5: STA $00D2 ; reset index;

9DA7: LDA #$00
9DA9: STA $00B2 ; counter = 0;

9DAB: LDA #$01
9DAD: STA $00C0 ; gameMode = TITLE_SCREEN;

9DAF: RTS ; return;


$00D1$00D2$872D

9DE8: LDA $00D1
9DEA: CLC ; increment [$00D1]
9DEB: ADC #$01 ; possibly causing wrap around to 0
9DED: STA $00D1 ; which produces a carry

9DEF: LDA #$00
9DF1: ADC $00D2
9DF3: STA $00D2 ; add carry to [$00D2]

9DF5: RTS ; return


$00D0$FFред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рдореНрди рдХреЛрдб рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХреА рдореЗрдЬ рдкрд░ рд▓рд┐рдЦрдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рддрд╛рд▓рд┐рдХрд╛ PRG-ROM рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╕рд╣реЗрдЬреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦрди рдСрдкрд░реЗрд╢рди рдПрдХ рдмреИрдВрдХ рд╕реНрд╡рд┐рдЪ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЧрдбрд╝рдмрдбрд╝ рдкреНрд░рднрд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВред

recording:

9DB0: JSR $AB9D ; pollController();

9DB3: LDA $00C0 ; if (gameMode != DEMO) {
9DB5: CMP #$05 ; return;
9DB7: BNE $9DE7 ; }

9DB9: LDA $00D0 ; if (not recording mode) {
9DBB: CMP #$FF ; return;
9DBD: BNE $9DE7 ; }

9DBF: LDA $00F7 ; if (getHeldButtons() == heldButtons) {
9DC1: CMP $00CE ; goto buttonsNotChanged;
9DC3: BEQ $9DE4 ; }

9DC5: LDX #$00
9DC7: LDA $00CE
9DC9: STA ($D1,X) ; demoButtonsTable[index] = heldButtons;

9DCB: JSR $9DE8 ; index++;

9DCE: LDA $00CF
9DD0: STA ($D1,X) ; demoButtonsTable[index] = repeats;

9DD2: JSR $9DE8 ; index++;

9DD5: LDA $00D2 ; if (reached end of demo table) {
9DD7: CMP #$DF ; return;
9DD9: BEQ $9DE7 ; }

9DDB: LDA $00F7
9DDD: STA $00CE ; heldButtons = getHeldButtons();

9DDF: LDA #$00
9DE1: STA $00CF ; repeats = 0;

9DE3: RTS ; return;

buttonsNotChanged:

9DE4: INC $00CF ; repeats++;

9DE6: RTS
9DE7: RTS ; return;





рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░реИрдо рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдмрд╛рдзрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬрд╝рд┐рдкlua/RecordDemo.lua рдореЗрдВ рд╕реНрдерд┐рдд рдПрдХ рдмрдирд╛рдпрд╛ ред рдбреЗрдореЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ Lua рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЯреЗрдмрд▓ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдХреЙрдкреА рдХрд░рдХреЗ ROM рдореЗрдВ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдбреЗрдореЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, FCEUX рдЪрд▓рд╛рдПрдВ рдФрд░ рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рд░реЙрдо рдлрд╛рдЗрд▓ (рдлрд╛рдЗрд▓ | рдУрдкрди рд░реЙрдо ...) рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдлрд┐рд░ Lua Script рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВ (рдлрд╝рд╛рдЗрд▓ | Lua | New Lua Script Window ...), рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ рдпрд╛ рдкрде рджрд░реНрдЬ рдХрд░реЗрдВред рдбреЗрдореЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдореЛрдб рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рди рдмрдЯрди рджрдмрд╛рдПрдВ, рдФрд░ рдлрд┐рд░ рдлреЛрдХрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП FCEUX рд╡рд┐рдВрдбреЛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЬрдм рддрдХ рдмрдЯрди рддрд╛рд▓рд┐рдХрд╛ рднрд░ рдирд╣реАрдВ рдЬрд╛рддреА рддрдм рддрдХ рдЖрдк рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЧреЗрдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реАрди рд╕реЗрд╡рд░ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП Lua Script рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕реНрдЯреЙрдк рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ (Ctrl + C)ред рдлрд┐рд░ рд╣реЗрдХреНрд╕ рдПрдбрд┐рдЯрд░ (рдбрд┐рдмрдЧ | рд╣реЗрдХреНрд╕ рдПрдбрд┐рдЯрд░ ...) рдЪрд▓рд╛рдПрдВред рд╣реЗрдХреНрд╕ рд╕рдВрдкрд╛рджрдХ рдореЗрдиреВ рд╕реЗ, рджреГрд╢реНрдп рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ | ROM рдлрд╝рд╛рдЗрд▓ рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ | рдЧреЛрдЯреЛ рдХрд╛ рдкрддрд╛ред рдЧреЛрдЯреЛ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ, 5D10 (ROM рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдореЛ рдмрдЯрди рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкрддрд╛) рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рдУрдХреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдлрд┐рд░ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреА рд╕рд╛рдордЧреНрд░реА (Ctrl + V) рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред


рдЕрдВрдд рдореЗрдВ, FCEUX рдореЗрдиреВ рдореЗрдВ, NES рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдЗрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рддреЛ рдбреЗрдореЛ рдХреЛ рдЖрдкрдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдЖрдк рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд░реЛрдо ... рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд ROM рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВ, рдФрд░ рддрдм рд╕рд╣реЗрдЬреЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдЗрд╕реА рддрд░рд╣ рд╕реЗ, рдЖрдк рдмрдирд╛рдП рдЧрдП рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореМрдд рдХреА рд╕реНрдХреНрд░реАрди


рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЦрд┐рд▓рд╛рдбрд╝реА 29 рдХреЗ рд╕реНрддрд░ рдкрд░ рдЖрдВрдХрдбрд╝реЗ рдХреЗ рд╡рдВрд╢ рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЬрд▓реНрджреА рд╕реЗ рдЦреЗрд▓ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╡рд╣ "рдореМрдд рдХреА рд╕реНрдХреНрд░реАрди" рдирд╛рдо рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдореГрддреНрдпреБ рд╕реНрдХреНрд░реАрди рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдЖрдЧреЗ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рд╡рдВрд╢ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдбрд┐рдЬрд╛рдЗрдирд░ рдЗрддрдиреЗ рджрдпрд╛рд▓реБ рдереЗ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреЗрд▓ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЬрдмрдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдЕрд▓реМрдХрд┐рдХ рдЧрддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдореГрддреНрдпреБ рдХреА рдПрдХ рд╕рдЪреНрдЪреА рд╕реНрдХреНрд░реАрди рд▓рдЧрднрдЧ 1550 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬреЛ рдкреАрдЫреЗ рд╣рдЯ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдЦреЗрд▓ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдмрд╕ рдХрд╛рд▓реА рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЧреЗрдо рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж ("рдЬрдорд╛ рджреЗрддрд╛ рд╣реИ"), рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рднрд╛рд╡ рдЕрдХреНрд╕рд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЧреНрд░рд╛рдлрд┐рдХ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВред


рдореМрдд рд╕реНрдХреНрд░реАрди рдХреЛрдб рдореЗрдВ рдПрдХ рдмрдЧ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдЬреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╕рдордп рдЕрдВрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЫрд╣-рдЪрд░рд┐рддреНрд░ рд╡рд╛рд▓рд╛ рдЦрд╛рддрд╛ 24-рдмрд┐рдЯ рдкреИрдХ рд╡рд╛рд▓реЗ рдПрдВрдбрд┐рдпрди рдмреАрд╕реАрдбреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИ $0053- $0055ред рдкреНрд░рд╛рдкреНрдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЗрд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ 16-рдмрд┐рдЯ рдкреИрдХ рд╡рд╛рд▓реА рдмреАрд╕реАрдбреА рд▓рд┐рдЯрд┐рд▓ рдПрдВрдбрд┐рдпрди рд╡реИрд▓реНрдпреВ рд╣реИред рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛, рдФрд░ рд╕рдВрднрд╡рддрдГ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдорд╛рди рдХреЛ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛ рдкреНрд▓рд╕ рдПрдХ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЕрдВрдХреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдореИрдиреБрдЕрд▓ рдкреБрд╕реНрддрд┐рдХрд╛ рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

9CA5: 00 00 ; 0: 0
9CA7: 40 00 ; 1: 40
9CA9: 00 01 ; 2: 100
9CAB: 00 03 ; 3: 300
9CAD: 00 12 ; 4: 1200





рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЧреБрдгрд╛ рдПрдХ рдЪрдХреНрд░ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рд╣реИ рдЬреЛ рд╕реНрдХреЛрд░ рдореЗрдВ рдЕрдВрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЖрдХрд╛рд░ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдХреЛрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдВ рд╕рд╛рдл рди рд╣реЛрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд░рд┐рдХреЛ 2A03 рдореЗрдВ 6502 рдмрд╛рдЗрдирд░реА рджрд╢рдорд▓рд╡ рдореЛрдб рдирд╣реАрдВ рд╣реИ; рд╡рд╣ рдЪрдХреНрд░ рдХреЗ рд╢рд░реАрд░ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмрд╛рдЗрдирд░реА рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЛрдбрд╝ рдХреЗ рдмрд╛рдж 9 рд╕реЗ рдЕрдзрд┐рдХ рдХрд┐рд╕реА рднреА рдЕрдВрдХ рдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ 10 рдШрдЯрд╛рдХрд░ рдФрд░ рдмрд╛рдИрдВ рдУрд░ рдЕрдВрдХреЛрдВ рдХреЛ рдмрдврд╝рд╛рдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рд▓реЗрдХрд┐рди рдРрд╕реА рдпреЛрдЬрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред рд▓реЛ : рдПрдХ рдЪреЗрдХ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИ

9C31: LDA $0044
9C33: STA $00A8
9C35: INC $00A8 ; for(i = 0; i <= level; i++) {

9C37: LDA $0056
9C39: ASL
9C3A: TAX
9C3B: LDA $9CA5,X ; points[0] = pointsTable[2 * completedLines];

9C3E: CLC
9C3F: ADC $0053
9C41: STA $0053 ; score[0] += points[0];

9C43: CMP #$A0
9C45: BCC $9C4E ; if (upper digit of score[0] > 9) {

9C47: CLC
9C48: ADC #$60
9C4A: STA $0053 ; upper digit of score[0] -= 10;
9C4C: INC $0054 ; score[1]++;
; }

9C4E: INX
9C4F: LDA $9CA5,X ; points[1] = pointsTable[2 * completedLines + 1];

9C52: CLC
9C53: ADC $0054
9C55: STA $0054 ; score[1] += points[1];

9C57: AND #$0F
9C59: CMP #$0A
9C5B: BCC $9C64 ; if (lower digit of score[1] > 9) {

9C5D: LDA $0054
9C5F: CLC ; lower digit of score[1] -= 10;
9C60: ADC #$06 ; increment upper digit of score[1];
9C62: STA $0054 ; }

9C64: LDA $0054
9C66: AND #$F0
9C68: CMP #$A0
9C6A: BCC $9C75 ; if (upper digit of score[1] > 9) {

9C6C: LDA $0054
9C6E: CLC
9C6F: ADC #$60
9C71: STA $0054 ; upper digit of score[1] -= 10;
9C73: INC $0055 ; score[2]++;
; }

9C75: LDA $0055
9C77: AND #$0F
9C79: CMP #$0A
9C7B: BCC $9C84 ; if (lower digit of score[2] > 9) {

9C7D: LDA $0055
9C7F: CLC ; lower digit of score[2] -= 10;
9C80: ADC #$06 ; increment upper digit of score[2];
9C82: STA $0055 ; }

9C84: LDA $0055
9C86: AND #$F0
9C88: CMP #$A0
9C8A: BCC $9C94 ; if (upper digit of score[2] > 9) {

9C8C: LDA #$99
9C8E: STA $0053
9C90: STA $0054
9C92: STA $0055 ; max out score to 999999;
; }

9C94: DEC $00A8
9C96: BNE $9C37 ; }


$07 + $07 = $0E$14$09 + $09 = $12$18ред рдЗрд╕рдХреА рднрд░рдкрд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреЛрд░рдХрд╛рд░реНрдб рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдореЗрдВ рджрд╢рдорд▓рд╡ рдЕрдВрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рднреА рдирд╣реАрдВред 6. рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд░рд┐рдХреЙрд░реНрдбреЛрдВ рдХрд╛ рдЕрдВрддрд┐рдо рдЕрдВрдХ рд╣рдореЗрд╢рд╛ 0. рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕ рд▓рдВрдмреЗ рдФрд░ рдЬрдЯрд┐рд▓ рдЪрдХреНрд░ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЙрдЪреНрдЪ рд╕реНрддрд░реЛрдВ рдкрд░, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпрд╛рдВ рдЦреЗрд▓ рдХреЗ рд╕рдордп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ 1/60 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдпрд╣ рд╕рдм "рдореМрдд рдХреА рд╕реНрдХреНрд░реАрди" рдХреА рд╡рд┐рднрд┐рдиреНрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

рд▓реБрдЖ рдПрдЖрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд▓реВрдк рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ 30 рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ - рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдЬреЛ рдбрд┐рдЬрд╛рдЗрдирд░ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдореМрдд рдХреА рд╕реНрдХреНрд░реАрди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдЕрдВрдд


рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдмреБрдХрд▓реЗрдЯ рдореЗрдВ, рдП-рдЯрд╛рдЗрдк рдЧреЗрдо рдХрд╛ рд╡рд░реНрдгрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


рдЦреЗрд▓ рдЙрди рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдкреБрд░рд╕реНрдХреГрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдВрдд рдХреЗ рдкрд╛рдВрдЪ рдПрдирд┐рдореЗрд╢рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдВрдХ рдЕрд░реНрдЬрд┐рдд рдХрд┐рдП рд╣реИрдВред рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫрд╣ рдЕрдВрдХреЛрдВ рдХреЗ рд╕реНрдХреЛрд░ рдХреЗ рджреЛ рд╕рдмрд╕реЗ рдмрд╛рдПрдВ рдЕрдВрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдВрдд рдореЗрдВ рд╕реЗ рдПрдХ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдХрдо рд╕реЗ рдХрдо 30,000 рдЕрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ - рдкрддреЗ рдХрд╛ рдПрдХ рджрд░реНрдкрдг рд╣реИ - ред рдЦрд╛рддрд╛ рдкрддреЗ рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИ - ред рдкрд╣рд▓рд╛ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдВрддрд┐рдо рдПрдиреАрдореЗрд╢рди рдХрд╛ рдЪрдпрди рдирд┐рдореНрди рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

9A4D: LDA $0075
9A4F: CMP #$03
9A51: BCC $9A5E ; if (score[2] >= $03) {

9A53: LDA #$80
9A55: JSR $A459
9A58: JSR $9E3A
9A5B: JMP $9A64 ; select ending;
; }


$0060$007F$0040$005F$0073$0075



A96E: LDA #$00
A970: STA $00C4
A972: LDA $0075 ; if (score[2] < $05) {
A974: CMP #$05 ; ending = 0;
A976: BCC $A9A5 ; }

A978: LDA #$01
A97A: STA $00C4
A97C: LDA $0075 ; else if (score[2] < $07) {
A97E: CMP #$07 ; ending = 1;
A980: BCC $A9A5 ; }

A982: LDA #$02
A984: STA $00C4
A986: LDA $0075 ; else if (score[2] < $10) {
A988: CMP #$10 ; ending = 2;
A98A: BCC $A9A5 ; }

A98C: LDA #$03
A98E: STA $00C4
A990: LDA $0075 ; else if (score[2] < $12) {
A992: CMP #$12 ; ending = 3;
A994: BCC $A9A5 ; }

A996: LDA #$04 ; else {
A998: STA $00C4 ; ending = 4;
; }


рдЕрдВрдд рдореЗрдВ, рдмрдврд╝рддреЗ рдЖрдХрд╛рд░ рдХреЗ рд░реЙрдХреЗрдЯ рд╕реЗрдВрдЯ рдмреЗрд╕рд┐рд▓ рдХреЗ рдХреИрдереЗрдбреНрд░рд▓ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд▓реЙрдиреНрдЪ рдкреИрдб рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЪреМрдереЗ рдЕрдВрдд рдореЗрдВ, рдмреБрд░рд╛рди рдЕрдВрддрд░рд┐рдХреНрд╖ рдпрд╛рди рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЕрдореЗрд░рд┐рдХреА рдЕрдВрддрд░рд┐рдХреНрд╖ рд╢рдЯрд▓ рдХрд╛ рд╕реЛрд╡рд┐рдпрдд рд╕рдВрд╕реНрдХрд░рдгред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдВрдд рдореЗрдВ, рдХреИрдереЗрдбреНрд░рд▓ рдЦреБрдж рд╣рд╡рд╛ рдореЗрдВ рдЙрдЧрддрд╛ рд╣реИ, рдФрд░ рд▓реЙрдиреНрдЪ рдкреИрдб рдХреЗ рдКрдкрд░ рдПрдХ рдпреВрдПрдлрдУ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рдиреАрдЪреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рдкреНрддрд┐ рдХреА рдЫрд╡рд┐ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╕реНрдХреЛрд░ред
30000тАУ49999
50000тАУ69999
70000тАУ99999
100000тАУ119999
120000+

рдмреА-рдЯрд╛рдЗрдк рдЧреЗрдо рдореЛрдб рдореЗрдВ, рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдирд┐рдирдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдмреБрдХрд▓реЗрдЯ рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдгрд┐рдд рд╣реИ:


рдпрджрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА 25 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЦреЗрд▓ рд╕рдорд╛рдкреНрддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рд╕реНрддрд░ реж- consist рдХреЗ рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рд╕реЗрдВрдЯ рдмреЗрд╕рд┐рд▓ рдХреИрдереЗрдбреНрд░рд▓ рдХреЗ рдкреАрдЫреЗ рд░рд╣рд╕реНрдпрдордп рддрд░реАрдХреЗ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реЗ рдЬрд╛рдирд╡рд░реЛрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдлреНрд░реЗрдо рдореЗрдВ рдЙрдбрд╝рддреЗ рд╣реИрдВ рдпрд╛ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред рдП-рдЯрд╛рдЗрдк рдореЛрдб рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдВрдд рд╕реЗ рдпреВрдПрдлрдУ 3 рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдЕрдВрдд 4 рдореЗрдВ, рд╡рд┐рд▓реБрдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдлреНрд▓рд╛рдЗрдВрдЧ рдкреЗрдВрдЯрд░реЛрд╕ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрдд рдореЗрдВ 7 рдореЗрдВ рдкреМрд░рд╛рдгрд┐рдХ рдлреНрд▓рд╛рдЗрдВрдЧ рдбреНрд░реЗрдЧрди рджрд┐рдЦрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред 2 рдФрд░ 6 рдХреЗ рдЕрдВрдд рдореЗрдВ, рдкрдВрдЦрд╣реАрди рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдкреЗрдВрдЧреБрдЗрди рдФрд░ рд╢реБрддреБрд░рдореБрд░реНрдЧ рджреМрдбрд╝рддреЗ рд╣реБрдПред 5 рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЖрдХрд╛рд╢ GOOD airships (Goodyear airships рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛) рд╕реЗ рднрд░рд╛ рд╣реИред рдФрд░ 8 рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ "рдмреБрд░рд╛рдирд╛рд╕" рддреИрд░рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдерд╛ред

рд╢реБрд░реБрдЖрддреА рдКрдВрдЪрд╛рдИ (рдкреНрд▓рд╕ 1) рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдЧреБрдгрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЬрд╛рдирд╡рд░реЛрдВ / рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЬрдЯрд┐рд▓рддрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред

рдмреА-рдЯрд╛рдЗрдк рдХреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдЕрдВрдд рдореЗрдВ, рдирд┐рдирдЯреЗрдВрдбреЛ рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреЗ рдкрд╛рддреНрд░реЛрдВ рд╕реЗ рднрд░рд╛ рдПрдХ рдорд╣рд▓ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд░рд╛рдЬрдХреБрдорд╛рд░реА рдкреАрдЪ рдЙрд╕рдХреЗ рд╣рд╛рдереЛрдВ рдХреЛ рддрд╛рд▓реА рдмрдЬрд╛рддреА рд╣реИ, рдХрд┐рдб рдЗрдХрд╛рд░рд╕ рд╡рд╛рдпрд▓рд┐рди рдмрдЬрд╛рддрд╛ рд╣реИ, рдЧрдзрд╛ рдХрд╛рдБрдЧ рдмрдбрд╝реЗ рдбреНрд░рдо рдкрд░ рдбреЛрд▓рддрд╛ рд╣реИ, рдорд╛рд░рд┐рдпреЛ рдФрд░ рд▓реБрдЗрдЧреА рдиреГрддреНрдп рдХрд░рддреЗ рд╣реИрдВ, рдмреЙрдЙрдЬрд░ рдЕрдХреЙрд░реНрдбрд┐рдпрди рдмрдЬрд╛рддрд╛ рд╣реИ, рд╕реИрдорд╕ рд╕реЗрд▓реЛ рдмрдЬрд╛рддрд╛ рд╣реИ, рд▓рд┐рдВрдХ - рдПрдХ рдмрд╛рдВрд╕реБрд░реА рдкрд░, рдЬрдмрдХрд┐ рд╕реЗрдВрдЯ рдмреЗрд╕рд┐рд▓ рдХреЗ рдХреИрдереЗрдбреНрд░рд▓ рдХреЗ рдЧреБрдВрдмрдж рд╣рд╡рд╛ рдореЗрдВ рдЙрдбрд╝рддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЗрди рддрддреНрд╡реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдКрдВрдЪрд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдиреАрдЪреЗ рд╕рднреА 10 рдЕрдВрдд рдХреА рдЫрд╡рд┐рдпрд╛рдВ рджреА рдЧрдИ рд╣реИрдВред


рдПрдЖрдИ рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрддрд░ рдФрд░ рдКрдВрдЪрд╛рдИ рдкрд░ рдмреА-рдЯрд╛рдЗрдк рдореЛрдб рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рднреА 25 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕рд╛рдл рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдПрдВрдбрд┐рдВрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реИ рдХрд┐ рд╡рд╣ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдмрдбрд╝реЗ рдвреЗрд░ рдХреЛ рдХреИрд╕реЗ рд╢рд╛рдВрдд рдХрд░рддрд╛ рд╣реИред

рдПрдВрдбрд┐рдВрдЧреНрд╕ рдореЗрдВ реж-,, рддрдХ рем рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдлреНрд░реЗрдо рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╕реНрддреБрдУрдВ рдХрд╛ y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ $A7B7ред рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреНрд╖реИрддрд┐рдЬ рджреВрд░реА рдкрддреЗ рдкрд░ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИ ред рдкрддреЗ рдкрд░ рдПрдХ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдо рд╡рд╕реНрддреБрдУрдВ рдХреА рдЧрддрд┐ рдФрд░ рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдЖрд╕рдиреНрди рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╣реЛрддреЗ рд╣реИрдВред рджреВрд╕рд░рд╛ рдЗрдВрдбреЗрдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ 1. рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреНрд░реИрдЧрди рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ

A7B7: 98 A8 C0 A8 90 B0 ; 0
A7BD: B0 B8 A0 B8 A8 A0 ; 1
A7C3: C8 C8 C8 C8 C8 C8 ; 2
A7C9: 30 20 40 28 A0 80 ; 3
A7CF: A8 88 68 A8 48 78 ; 4
A7D5: 58 68 18 48 78 38 ; 5
A7DB: C8 C8 C8 C8 C8 C8 ; 6
A7E1: 90 58 70 A8 40 38 ; 7
A7E7: 68 88 78 18 48 A8 ; 8


$A77B

A77B: 3A 24 0A 4A 3A FF ; 0
A781: 22 44 12 32 4A FF ; 1
A787: AE 6E 8E 6E 1E 02 ; 2
A78D: 42 42 42 42 42 02 ; 3
A793: 22 0A 1A 04 0A FF ; 4
A799: EE DE FC FC F6 02 ; 5
A79F: 80 80 80 80 80 FF ; 6
A7A5: E8 E8 E8 E8 48 FF ; 7
A7AB: 80 AE 9E 90 80 02 ; 8


$A771

A771: 01 ; 0: 1
A772: 01 ; 1: 1
A773: FF ; 2: -1
A774: FC ; 3: -4
A775: 01 ; 4: 1
A776: FF ; 5: -1
A777: 02 ; 6: 2
A778: 02 ; 7: 2
A779: FE ; 8: -1


$A7F3

A7F3: 2C ; 0: dragonfly
A7F4: 2E ; 1: dove
A7F5: 54 ; 2: penguin
A7F6: 32 ; 3: UFO
A7F7: 34 ; 4: pterosaur
A7F8: 36 ; 5: blimp
A7F9: 4B ; 6: ostrich
A7FA: 38 ; 7: dragon
A7FB: 3A ; 8: Buran


$38рдФрд░ $39ред рдЗрди рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрд▓ рдиреАрдЪреЗ рдкреИрдЯрд░реНрди рдЯреЗрдмрд▓ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВред


рд╣рдордиреЗ рдКрдкрд░ рдкреИрдЯрд░реНрди рдХреА рдХреЗрдВрджреНрд░реАрдп рддрд╛рд▓рд┐рдХрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреА, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдФрд░ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЗрд╕рдореЗрдВ рдкреВрд░реА рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдореЗрдВ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдИрдВ рдУрд░ рдкреИрдЯрд░реНрди рдЯреЗрдмрд▓ рдореЗрдВ рд╡рд┐рдорд╛рди рдФрд░ рд╣реЗрд▓реАрдХреЙрдкреНрдЯрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╣реИрдВ; рд╡реЗ рдЕрдВрдд рдореЗрдВ рдпрд╛ рдЦреЗрд▓ рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡рд┐рдорд╛рди рдФрд░ рд╣реЗрд▓реАрдХрд╛рдкреНрдЯрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╣реИ $30рдФрд░ $16рдФрд░ рдЖрдк рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рддрд╛рд▓рд┐рдХрд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдПред



рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣реЗрд▓реАрдХреЙрдкреНрдЯрд░ рдорд╛рдЙрдВрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдФрд░ рдкреВрдВрдЫ рд░реЛрдЯрд░ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдПрдирд┐рдореЗрдЯреЗрдб рд╣реИрдВред

2 рдЦрд┐рд▓рд╛рдбрд╝реА рдмрдирд╛рдо


рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдореЗрдВ рдПрдХ рдЕрдкреВрд░реНрдг рджреЛ-рдкреНрд▓реЗрдпрд░ рдореЛрдб рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрджрд▓рдХрд░ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( $00BE) 2 рд╕реЗред рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рджреЛ рдЧреЗрдо рдлрд╝реАрд▓реНрдб рдПрдХрд▓-рдкреНрд▓реЗрдпрд░ рдореЛрдб рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред


рдЦреЗрддреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рдордзреНрдп рдХреНрд╖реЗрддреНрд░ рдареЛрд╕ рдХрд╛рд▓рд╛ рд╣реИред 003рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рдиреЛрдВ рдХреЗ рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдорд╛рди рдкреНрд░рддреНрдпреЗрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдлрд╝ рдХреА рдЧрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред рджреЛ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрдХрдбрд╝рд╛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдПрдХрд▓ рдЦрд┐рд▓рд╛рдбрд╝реА рдореЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕рд╣реА рдЦреЗрд▓ рдореИрджрд╛рди рдкрд░ рд╕реНрдерд┐рдд рд╣реИред рд╡рд░реНрдЧреЛрдВ рдФрд░ рдЕрдиреНрдп рдЯрд╛рдЗрд▓реЗрдВ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд░рдВрдЧреА рд╣реБрдИ рд╣реИрдВред рдФрд░ рдЬрдм рдЦрд┐рд▓рд╛рдбрд╝реА рдЦреЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореЛрдб рдХрд╛рдлреА рдЪрдВрдЪрд▓ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЗрд╕реА рдЦреЗрд▓ рдореИрджрд╛рди рдореЗрдВ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЬрдм рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдбрдмрд▓, рдЯреНрд░рд┐рдкрд▓ рдпрд╛ рдЯреЗрдЯреНрд░рд┐рд╕ (рдЬреЛ рджреЛ, рддреАрди рдпрд╛ рдЪрд╛рд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ) рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд▓рд╛рдкрддрд╛ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрдЪрд░рд╛ рдкрдВрдХреНрддрд┐рдпрд╛рдВ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреЗ рдЦреЗрд▓ рдХреЗ рдирд┐рдЪрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝реАрд▓реНрдб рдкрд░ рд╕реНрдерд┐рдд рд╣реИ $0500ред рдП $0060- $007F, рдЖрдорддреМрд░ рдкрд░ рджрд░реНрдкрдг рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ $0040- $005FрджреВрд╕рд░реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдВрднрд╡рддрдГ, рдПрдХ рд╡реНрдпрд╕реНрдд рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рджрд┐рд▓рдЪрд╕реНрдк рдореЛрдб рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╛ рд╢рд╛рдпрдж рдЙрд╕реЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЕрдзреВрд░рд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЛ рдирд┐рдирдЯреЗрдВрдбреЛ рдЧреЗрдо рдмреНрд╡реЙрдп рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЧреЗрдо рд▓рд┐рдВрдХ рдХреЗрдмрд▓ рдХреА рдЦрд░реАрдж рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рдерд╛- рдПрдХ рдЧреМрдг рдЬреЛ рджреЛ рдЧреЗрдо рдмреНрд╡реЙрдп рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИ 2 рдЦрд┐рд▓рд╛рдбрд╝реА рдмрдирд╛рдо рдореЛрдб рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдХреЗрдмрд▓ рдиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ "рд╕рд╛рдорд╛рдЬрд┐рдХрддрд╛" рдХрд╛ рдПрдХ рддрддреНрд╡ рдЬреЛрдбрд╝рд╛ - рдЗрд╕рдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдорд╕реНрддреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдмреЙрдп рдЦрд░реАрджрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ред рд╢рд╛рдпрдж рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдХреЛ рдбрд░ рдерд╛ рдХрд┐ рдЕрдЧрд░ рдЧреЗрдо рдХреЗ рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ 2 рдЦрд┐рд▓рд╛рдбрд╝реА рдмрдирд╛рдо рдореЛрдб рдерд╛, рддреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреА "рд╡рд┐рдЬреНрдЮрд╛рдкрди" рд╢рдХреНрддрд┐, рдЬреЛ рдЧреЗрдо рдмреЙрдп рдХреА рдЦрд░реАрдж рдХреЛ рдЙрддреНрддреЗрдЬрд┐рдд рдХрд░рддреА рд╣реИ, рдХрдордЬреЛрд░ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╕рдВрдЧреАрдд рдФрд░ рдзреНрд╡рдирд┐ рдкреНрд░рднрд╛рд╡


рдЬрдм $06F5рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреГрд╖реНрдарднреВрдорд┐ рд╕рдВрдЧреАрдд рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИред

рдореВрд▓реНрдпрд╡рд┐рд╡рд░рдг
01рдЕрдкреНрд░рдпреБрдХреНрдд рдЫрдк рд╕реНрдХреНрд░реАрди рд╕рдВрдЧреАрдд
02рдкреНрд░рд╛рдкреНрдд рдмреА-рдкреНрд░рдХрд╛рд░ рдореЛрдб рд▓рдХреНрд╖реНрдп
03рд╕рдВрдЧреАрдд-1
04рд╕рдВрдЧреАрдд-2
05рд╕рдВрдЧреАрдд -3
06рд╕рдВрдЧреАрдд -1 рд░реВрдкрдХ
07рд╕рдВрдЧреАрдд -2 рд░реВрдкрдХ
08рд╕рдВрдЧреАрдд -3 рд░реВрдкрдХ
09рдмрдзрд╛рдИ рд╣реЛ рд╕реНрдХреНрд░реАрди
0AрдЕрдВрдд
0BрдкреНрд░рд╛рдкреНрдд рдмреА-рдкреНрд░рдХрд╛рд░ рдореЛрдб рд▓рдХреНрд╖реНрдп
рдЖрдк рдпрд╣рд╛рдВ рд╕реНрдХреНрд░реАрди рд╕реЗрд╡рд░ рд╕реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рд╕рдВрдЧреАрдд рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ ред рдЦреЗрд▓ рдореЗрдВ рд╣реА, рд╕реНрдХреНрд░реАрди рд╕реЗрд╡рд░ рд╕реНрдХреНрд░реАрди рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рдореНрдпреВрдЬрд┐рдХ -1 " рдбрд╛рдВрд╕ рдСрдл рдж рдбреНрд░реЗрдЬреЗ рдкрд░реА " рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ , рддреНрдЪрд┐рдХреЛрд╡рд╕реНрдХреА рджреНрд╡рд╛рд░рд╛ рдкрд╕ рдбреЗ рдбреНрдпреВрдХреНрд╕ рд╡рд╛рд▓реНрдЯреНрдЬ "рдж рдирдЯрдХреНрд░реИрдХрд░" рдХреЗ рддреАрд╕рд░реЗ рдЕрдзрд┐рдирд┐рдпрдо рд╕реЗ рдмреИрд▓реЗрд░реАрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреАрдд ред рдЕрдВрддрд┐рдо рд╕рдВрдЧреАрдд " рдмреБрд▓реНрдлрд╛рдЗрдЯрд░ рд╡рд░реНрд╕реЗрдЬ " рдХрд╛ рдПрдХ рд░реВрдкрд╛рдВрддрд░ рд╣реИ , рдУрдкреЗрд░рд╛ рдХрд╛рд░рдореЗрди рдЬреЙрд░реНрдЬреЗрд╕ рдмрд┐рдЬрд╝реЗрдЯ рд╕реЗ рдПрдХ рдЕрд░рд┐рдпрд╛ ред рдЗрди рд░рдЪрдирд╛рдУрдВ рдХреЛ рд╣рд┐рд░реЛрдХрд╛рдЬрд╝реВ рддрдирд╛рдХрд╛ рдХреЗ рдмрд╛рдХреА рд╕рдВрдЧреАрдд рдХреЗ рд╕рдВрдЧреАрддрдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред

рд╕рдВрдЧреАрдд -2 рдкрд╛рд░рдВрдкрд░рд┐рдХ рд▓реЛрдХрдЧреАрдд рд░реВрд╕реА рдЧреАрддреЛрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛ред рд╕рдВрдЧреАрдд -3 рд░рд╣рд╕реНрдпрдордп, рднрд╡рд┐рд╖реНрдп рдФрд░ рдирд┐рд╡рд┐рджрд╛ рд╣реИ; рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдореЗрд░рд┐рдХрд╛ рдХреЗ рдЧреНрд░рд╛рд╣рдХ рд╕рд╣рд╛рдпрддрд╛ рдлреЛрди рд░рд┐рдВрдЧрдЯреЛрди рдХреА рдирд┐рдиреНрдЯреЗрдВрдбреЛ рдерд╛ред

рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдШрдмрд░рд╛рд╣рдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЧрд┐рд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рдвреЗрд░ рдХреА рдКрдВрдЪрд╛рдИ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рдЫрдд рдХреЗ рдкрд╛рд╕ рдкрд╣реБрдВрдЪрддреА рд╣реИ, рдкреГрд╖реНрдарднреВрдорд┐ рд╕рдВрдЧреАрдд рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рддреЗрдЬ рдЧрддрд┐ ( $06- $08) рдкрд░ рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ ред

рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдЧреАрдд рд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдХреЛрдИ " рдЪреИрдкрдореИрди " рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╡рд┐рд╖рдп рд╣реИ рдЬреЛ рдЧреЗрдо рдмреЙрдп рдЯреЗрдЯреНрд░рд┐рд╕ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред

рдзреНрд╡рдирд┐ рдкреНрд░рднрд╛рд╡ рдХреЛ рд▓рд┐рдЦ рдХрд░ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ $06F0рдФрд░ $06F1рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред

рдкрддрд╛рдореВрд▓реНрдпрд╡рд┐рд╡рд░рдг
06F002рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рдХрд╛ рдкрд░реНрджрд╛
06F003рдЕрдВрдд рдореЗрдВ рд░реЙрдХреЗрдЯ
06F101рдореЗрдиреВ рд╡рд┐рдХрд▓реНрдк рдЪрдпрди
06F102рдореЗрдиреВ рд╕реНрдХреНрд░реАрди рдЪрдпрди
06F103рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рд╢рд┐рдлреНрдЯ
06F104рдЯреЗрдЯреНрд░рд┐рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛
06F105рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рд░реЛрдЯреЗрд╢рди
06F106рдирдпрд╛ рд╕реНрддрд░
06F107рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рд▓реЙрдХ
06F108рдЪрд╣рдЪрд╣рд╛рдирд╛
06F109рд░реЛ рд╕рдлрд╛рдИ
06F10Aрд░реЛ рднрд░рд╛

рдЧреЗрдо рд╕реНрдЯреЗрдЯреНрд╕ рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЛрдб


рдЧреЗрдордкреНрд▓реЗ рдХреЗ рджреМрд░рд╛рди, рдЦреЗрд▓ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкрддреЗ рдкрд░ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпреА рдЬрд╛рддреА рд╣реИ $0048ред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЗрд╕рдХрд╛ рдПрдХ рдЕрд░реНрде рд╣реЛрддрд╛ рд╣реИ $01рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рд╕рдХреНрд░рд┐рдп рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдЯреБрдХрдбрд╝рд╛ рдЬрдЧрд╣ рдкрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЦреЗрд▓ рдзреАрд░реЗ-рдзреАрд░реЗ рд░рд╛рдЬреНрдп рд╕реЗ рд░рд╛рдЬреНрдп $02рддрдХ рдЬрд╛рддрд╛ рд╣реИ $08, рдЬреИрд╕рд╛ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд░рд╛рдЬреНрдпрд╡рд┐рд╡рд░рдг
00рдЕрдкреНрд░рдорд╛рдгрд┐рдд рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдЖрдИрдбреА
01рдкреНрд▓реЗрдпрд░ рд╕рдХреНрд░рд┐рдп рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
02рдЦреЗрд▓ рдореИрджрд╛рди рдкрд░ рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рд▓реЙрдХ
03рднрд░реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ
04рдкреНрд░рджрд░реНрд╢рди рдкрдВрдХреНрддрд┐ рд╕рдлрд╛рдИ рдПрдиреАрдореЗрд╢рди
05рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛
06рдмреА-рдЯрд╛рдЗрдк рдореЛрдб рдХреЗ рд▓рдХреНрд╖реНрдп рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
07рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛
08рдЕрдЧрд▓реА Tetrimino рдмрдирд╛рдПрдБ
09рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛
0AрдЦреЗрд▓ рдкрд░рджрд╛ рдЕрджреНрдпрддрди
0BрдЧреЗрдорд┐рдВрдЧ рд░рд╛рдЬреНрдп рд╡реЗрддрди рд╡реГрджреНрдзрд┐

рдХреЛрдб рдХреА рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ, рдЦреЗрд▓ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдирд┐рдореНрди рдкрддреЗ рдкрд░ рд╣реЛрддреА рд╣реИ $81B2: рд╕реНрд╡рд┐рдЪ рд╕реНрдерд┐рддрд┐ рдореЗрдВ , рдпрд╣ рдЙрд╕ рдХреЛрдб рдкрд░ рдХреВрдж рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдорд╛рди рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрднреА рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЦреЗрд▓ рд░рд╛рдЬреНрдп рдХреЛрдб рдХреЗ рдЕрдиреНрдп рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рд░рд╛рдЬреНрдп рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕рдХреНрд░рд┐рдп рдЯреЗрдЯреНрд░рд┐рдорд┐рдиреЛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ, рдШреБрдорд╛рдиреЗ рдФрд░ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдВрдХрдбрд╝реЗ рдХреА рд╢рд┐рдлреНрдЯ, рд░реЛрдЯреЗрд╢рди рдФрд░ рдХрдо рджрд┐рдирдЪрд░реНрдпрд╛, рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЗ рдирдП рдкрджреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдЧрд▓рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд┐рд╕реА рдЖрдХреГрддрд┐ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рдЖрдХрд╛рд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдирд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЦреЗрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реНрдЯреЗрдЯрд╕ рдХреЛрдб рдЗрд╕ рдЪреЗрдХ рдХреЛ рдХрд░рддрд╛ рд╣реИред

81B2: LDA $0048
81B4: JSR $AC82 ; switch(playState) {
81B7: 2F 9E ; case 00: goto 9E2F; // Unassign orientationID
81B9: CF 81 ; case 01: goto 81CF; // Player controls active Tetrimino
81BB: A2 99 ; case 02: goto 99A2; // Lock Tetrimino into playfield
81BD: 6B 9A ; case 03: goto 9A6B; // Check for completed rows
81BF: 39 9E ; case 04: goto 9E39; // Display line clearing animation
81C1: 58 9B ; case 05: goto 9B58; // Update lines and statistics
81C3: F2 A3 ; case 06: goto A3F2; // B-Type goal check; Unused frame for A-Type
81C5: 03 9B ; case 07: goto 9B03; // Unused frame; Execute unfinished 2 player mode logic
81C7: 8E 98 ; case 08: goto 988E; // Spawn next Tetrimino
81C9: 39 9E ; case 09: goto 9E39; // Unused
81CB: 11 9A ; case 0A: goto 9A11; // Update game over curtain
81CD: 37 9E ; case 0B: goto 9E37; // Increment play state
; }


$00orientationID$13

9E2F: LDA #$13
9E31: STA $0042 ; orientationID = UNASSIGNED;

9E33: RTS ; return;


$00

$01

81CF: JSR $89AE ; shift Tetrimino;
81D2: JSR $88AB ; rotate Tetrimino;
81D5: JSR $8914 ; drop Tetrimino;

81D8: RTS ; return;


$02ред рдпрджрд┐ рд▓реЙрдХ рдХреА рд╕реНрдерд┐рддрд┐ рд╕рд╣реА рд╣реИ, рддреЛ рдпрд╣ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рд╕реЗ рдЬреБрдбрд╝реА 4 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдХрдмреНрдЬреЗ рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рд╡рд╣ рдПрдХ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдмрдирд╛рддрд╛ рд╣реИ - рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рдХрд╛ рдЕрд╢реБрдн рдкрд░реНрджрд╛ред

99A2: JSR $948B ; if (new position valid) {
99A5: BEQ $99B8 ; goto updatePlayfield;
; }

99A7: LDA #$02
99A9: STA $06F0 ; play curtain sound effect;

99AC: LDA #$0A
99AE: STA $0048 ; playState = UPDATE_GAME_OVER_CURTAIN;

99B0: LDA #$F0
99B2: STA $0058 ; curtainRow = -16;

99B4: JSR $E003 ; updateAudio();

99B7: RTS ; return;


$0A


рдкрд░реНрджреЗ рдХреЛ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ рдиреАрдЪреЗ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд░ 4 рдлреНрд░реЗрдо рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЙрддрд░рддреА рд╣реИред curtainRow( $0058) ,16 рдХреЗ рдорд╛рди рд╕реЗ рдЖрд░рдВрдн рд╣реЛрддрд╛ рд╣реИ, рдЕрдВрддрд┐рдо рд▓реЙрдХ рдФрд░ рдПрдиреАрдореЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмреАрдЪ 0.27 рд╕реЗрдХрдВрдб рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рджреЗрд░реА рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЛрдб $9A21рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрддреЗ рдкрд░ $0A, рдЧреБрдгрди рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЧрд▓рддреА рд╕реЗ рд╕реНрддрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдХреЗрд▓ curtainRowрджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрддреЗ рдкрд░ рдХреЛрдб $9A51рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдиреАрдореЗрд╢рди рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рд╕реНрдХреЛрд░ 30,000 рдЕрдВрдХреЛрдВ рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИ; рдЕрдиреНрдпрдерд╛, рдпрд╣ рдкреНрд░рд╛рд░рдВрдн рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рдЦреЗрд▓ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВрдбрд▓рд░ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЦреЗрд▓ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред

9A11: LDA $0058 ; if (curtainRow == 20) {
9A13: CMP #$14 ; goto endGame;
9A15: BEQ $9A47 ; }

9A17: LDA $00B1 ; if (frameCounter not divisible by 4) {
9A19: AND #$03 ; return;
9A1B: BNE $9A46 ; }

9A1D: LDX $0058 ; if (curtainRow < 0) {
9A1F: BMI $9A3E ; goto incrementCurtainRow;
; }

9A21: LDA $96D6,X
9A24: TAY ; rowIndex = 10 * curtainRow;

9A25: LDA #$00
9A27: STA $00AA ; i = 0;

9A29: LDA #$13
9A2B: STA $0042 ; orientationID = NONE;

drawCurtainRow:

9A2D: LDA #$4F
9A2F: STA ($B8),Y ; playfield[rowIndex + i] = CURTAIN_TILE;
9A31: INY
9A32: INC $00AA ; i++;
9A34: LDA $00AA
9A36: CMP #$0A ; if (i != 10) {
9A38: BNE $9A2D ; goto drawCurtainRow;
; }

9A3A: LDA $0058
9A3C: STA $0049 ; vramRow = curtainRow;

incrementCurtainRow:

9A3E: INC $0058 ; curtainRow++;

9A40: LDA $0058 ; if (curtainRow != 20) {
9A42: CMP #$14 ; return;
9A44: BNE $9A46 ; }

9A46: RTS ; return;

endGame:

9A47: LDA $00BE
9A49: CMP #$02
9A4B: BEQ $9A64 ; if (numberOfPlayers == 1) {

9A4D: LDA $0075
9A4F: CMP #$03
9A51: BCC $9A5E ; if (score[2] >= $03) {

9A53: LDA #$80
9A55: JSR $A459
9A58: JSR $9E3A
9A5B: JMP $9A64 ; select ending;
; }

9A5E: LDA $00F5 ; if (not just pressed Start) {
9A60: CMP #$10 ; return;
9A62: BNE $9A6A ; }
; }

9A64: LDA #$00
9A66: STA $0048 ; playState = INITIALIZE_ORIENTATION_ID;
9A68: STA $00F5 ; clear newly pressed buttons;

9A6A: RTS ; return;


$00

рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рд░реЗрдЦрд╛рдПрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реАрдЖрд░рдПрдПрдо рдореЗрдВ рдЖрдХрд╕реНрдорд┐рдХ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХреА рдЬрд╛рддреА рд╣реИрдВред рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд░реНрддрдорд╛рди рдкрдВрдХреНрддрд┐ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ vramRow( $0049) рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИ ред рдПрдХ $9A3C vramRowрдорд╛рди рдкрддреЗ рдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ curtainRow, рдЬреЛ рдЕрдВрддрддрдГ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╕рдордп рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рд╡реАрдЖрд░рдПрдПрдо рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдПрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд░рд┐рдХреНрдд рдЕрдВрддрд░рд╛рд▓ рдХреЗ рджреМрд░рд╛рди рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ "рдХрд╛рдиреВрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдХреНрд░реАрди" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИред рдпрд╣ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рд╕рдмрд░реВрдЯрд┐рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ render())ред рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЛрдб рдЧреЗрдо рдореЛрдб рдХреЗ рд╕рдорд╛рди рд╣реИред рдЗрд╕реЗ рдкрддреЗ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдорд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

804B: LDA $00BD
804D: JSR $AC82 ; switch(renderMode) {
8050: B1 82 ; case 0: goto 82B1; // Legal and title screens
8052: DA 85 ; case 1: goto 85DA; // Menu screens
8054: 44 A3 ; case 2: goto A344; // Congratulations screen
8056: EE 94 ; case 3: goto 94EE; // Play and demo
8058: 95 9F ; case 4: goto 9F95; // Ending animation
; }


$00BD

рдореВрд▓реНрдпрд╡рд┐рд╡рд░рдг
00рдХрд╛рдиреВрдиреА рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрди рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рд╕реНрдХреНрд░реАрди рд╕реЗрд╡рд░
01рдореЗрдиреВ рд╕реНрдХреНрд░реАрди
02рдмрдзрд╛рдИ рд╣реЛ рд╕реНрдХреНрд░реАрди
03рдЦреЗрд▓ рдФрд░ рдбреЗрдореЛ
04рдЕрдВрдд рдПрдиреАрдореЗрд╢рди

рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ $03рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╡реАрдЖрд░рдПрдПрдо рдореЗрдВ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ ред рдпрджрд┐ 20 рд╕реЗ рдЕрдзрд┐рдХ, рд╕рдмрд░реВрдЯреАрди рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддрд╛рд▓рд┐рдХрд╛ ( ) рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ 6 рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЧрдП рдЦреЗрд▓ рдлрд╝реАрд▓реНрдб рдХреА рдкреНрд░рджрд░реНрд╢рд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдФрд░ (2 рдФрд░ 12 рдЕрдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░ 2 рдЦрд┐рд▓рд╛рдбрд╝реА рдмрдирд╛рдо рдореЗрдВ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдЕрдиреБрд░реВрдк рд╡реАрдЖрд░рдПрдПрдо рдкрддреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдмрд╛рдЗрдЯреНрд╕ рдЙрди рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ 29 рдХреЗ рд╕реНрддрд░ рдХреЗ рдмрд╛рдж рдЧрд╝рд▓рддреА рд╕реЗ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкрддреЗ рдХреЗ рдЖрд╕рдиреНрди рдирд┐рдЪрд▓реЗ рдФрд░ рдКрдкрд░реА рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ 16-рдмрд┐рдЯ рдкрддреЗ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЪрдХреНрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд░реВрдЯреАрди рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЛ рдЕрдВрдЬрд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

952A: JSR $9725 ; copyPlayfieldRowToVRAM();
952D: JSR $9725 ; copyPlayfieldRowToVRAM();
9530: JSR $9725 ; copyPlayfieldRowToVRAM();
9533: JSR $9725 ; copyPlayfieldRowToVRAM();


copyPlayfieldRowToVRAM()vramRowvramRow

9725: LDX $0049 ; if (vramRow > 20) {
9727: CPX #$15 ; return;
9729: BPL $977E ; }

972B: LDA $96D6,X
972E: TAY ; playfieldAddress = 10 * vramRow;

972F: TXA
9730: ASL
9731: TAX
9732: INX ; high = vramPlayfieldRows[vramRow * 2 + 1];
9733: LDA $96EA,X
9736: STA $2006
9739: DEX

973A: LDA $00BE
973C: CMP #$01
973E: BEQ $975E ; if (numberOfPlayers == 2) {

9740: LDA $00B9
9742: CMP #$05
9744: BEQ $9752 ; if (leftPlayfield) {

9746: LDA $96EA,X
9749: SEC
974A: SBC #$02
974C: STA $2006 ; low = vramPlayfieldRows[vramRow * 2] - 2;

974F: JMP $9767 ; } else {

9752: LDA $96EA,X
9755: CLC
9756: ADC #$0C
9758: STA $2006 ; low = vramPlayfieldRows[vramRow * 2] + 12;

975B: JMP $9767 ; } else {

975E: LDA $96EA,X
9761: CLC
9762: ADC #$06 ; low = vramPlayfieldRows[vramRow * 2] + 6;
9764: STA $2006 ; }

; vramAddress = (high << 8) | low;

9767: LDX #$0A
9769: LDA ($B8),Y
976B: STA $2007
976E: INY ; for(i = 0; i < 10; i++) {
976F: DEX ; vram[vramAddress + i] = playfield[playfieldAddress + i];
9770: BNE $9769 ; }

9772: INC $0049 ; vramRow++;
9774: LDA $0049 ; if (vramRow < 20) {
9776: CMP #$14 ; return;
9778: BMI $977E ; }

977A: LDA #$20
977C: STA $0049 ; vramRow = 32;

977E: RTS ; return;


vramPlayfieldRows$96EA

vramRowред рдпрджрд┐ рдорд╛рди 20 рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ 32 рдХрд╛ рдорд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рддрд┐ рдлреНрд░реЗрдо рдХреЗрд╡рд▓ 4 рд▓рд╛рдЗрдиреЗрдВ рдХреЙрдкреА рдХреА рдЬрд╛рддреА рд╣реИрдВред

рд░рд╛рдЬреНрдп рд╣реИрдВрдбрд▓рд░ $03рдХреЛ рдкреВрд░реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди, рд╡рд╣ [тИТ2, 1]рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдкрд╛рд╕ рд▓рд╛рдЗрди рдСрдлрд╝рд╕реЗрдЯреНрд╕ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ (рдЯреЗрдЯреНрд░реАрдорд┐рдиреЛ рдХреЗ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рджреЛрдиреЛрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЗрд╕ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рд╣реИрдВ)ред рдкреВрд░реНрдг рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $004A- $004D; рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рд╕реВрдЪрдХрд╛рдВрдХ 0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд╛рд╕ рдореЗрдВ рдХреЛрдИ рдкреВрд░реНрдг рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдирд╣реАрдВ рдорд┐рд▓реАрдВред рд╣реИрдВрдбрд▓рд░ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЪреЗрдХ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╡реАрдЖрд░рдПрдПрдо (рд░рд╛рдЬреНрдп рд╣реИрдВрдбрд▓рд░) рдХреЛ рдЦреЗрд▓ рдореИрджрд╛рди рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ

9A6B: LDA $0049
9A6D: CMP #$20 ; if (vramRow < 32) {
9A6F: BPL $9A74 ; return;
9A71: JMP $9B02 ; }

9A74: LDA $0041 ; rowY = tetriminoY - 2;
9A76: SEC
9A77: SBC #$02 ; if (rowY < 0) {
9A79: BPL $9A7D ; rowY = 0;
9A7B: LDA #$00 ; }

9A7D: CLC
9A7E: ADC $0057
9A80: STA $00A9 ; rowY += lineIndex;

9A82: ASL
9A83: STA $00A8
9A85: ASL
9A86: ASL
9A87: CLC
9A88: ADC $00A8
9A8A: STA $00A8 ; rowIndex = 10 * rowY;

9A8C: TAY
9A8D: LDX #$0A
9A8F: LDA ($B8),Y
9A91: CMP #$EF ; for(i = 0; i < 10; i++) {
9A93: BEQ $9ACC ; if (playfield[rowIndex + i] == EMPTY_TILE) {
9A95: INY ; goto rowNotComplete;
9A96: DEX ; }
9A97: BNE $9A8F ; }

9A99: LDA #$0A
9A9B: STA $06F1 ; play row completed sound effect;

9A9E: INC $0056 ; completedLines++;

9AA0: LDX $0057
9AA2: LDA $00A9
9AA4: STA $4A,X ; lines[lineIndex] = rowY;

9AA6: LDY $00A8
9AA8: DEY
9AA9: LDA ($B8),Y
9AAB: LDX #$0A
9AAD: STX $00B8
9AAF: STA ($B8),Y
9AB1: LDA #$00
9AB3: STA $00B8
9AB5: DEY ; for(i = rowIndex - 1; i >= 0; i--) {
9AB6: CPY #$FF ; playfield[i + 10] = playfield[i];
9AB8: BNE $9AA9 ; }

9ABA: LDA #$EF
9ABC: LDY #$00
9ABE: STA ($B8),Y
9AC0: INY ; for(i = 0; i < 10; i++) {
9AC1: CPY #$0A ; playfield[i] = EMPTY_TILE;
9AC3: BNE $9ABE ; }

9AC5: LDA #$13
9AC7: STA $0042 ; orientationID = UNASSIGNED;

9AC9: JMP $9AD2 ; goto incrementLineIndex;

rowNotComplete:

9ACC: LDX $0057
9ACE: LDA #$00
9AD0: STA $4A,X ; lines[lineIndex] = 0;

incrementLineIndex:

9AD2: INC $0057 ; lineIndex++;

9AD4: LDA $0057 ; if (lineIndex < 4) {
9AD6: CMP #$04 ; return;
9AD8: BMI $9B02 ; }

9ADA: LDY $0056
9ADC: LDA $9B53,Y
9ADF: CLC
9AE0: ADC $00BC
9AE2: STA $00BC ; totalGarbage += garbageLines[completedLines];

9AE4: LDA #$00
9AE6: STA $0049 ; vramRow = 0;
9AE8: STA $0052 ; clearColumnIndex = 0;

9AEA: LDA $0056
9AEC: CMP #$04
9AEE: BNE $9AF5 ; if (completedLines == 4) {
9AF0: LDA #$04 ; play Tetris sound effect;
9AF2: STA $06F1 ; }

9AF5: INC $0048 ; if (completedLines > 0) {
9AF7: LDA $0056 ; playState = DISPLAY_LINE_CLEARING_ANIMATION;
9AF9: BNE $9B02 ; return;
; }

9AFB: INC $0048 ; playState = UPDATE_LINES_AND_STATISTICS;

9AFD: LDA #$07
9AFF: STA $06F1 ; play piece locked sound effect;

9B02: RTS ; return;


vramRow$03рд╣рд░ рдлреНрд░реЗрдо рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрджрд┐ рднрд░реА рд╣реБрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ vramRow0 рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкреВрд░реНрдг рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред

lineIndex( $00A9) рдХреЛ 0 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрддрдирд╡реГрджреНрдзрд┐ рдореЗрдВ рдЗрд╕рдХреА рд╡реГрджреНрдзрд┐ рдХреА рдЬрд╛рддреА рд╣реИред

рдЧреЗрдо рд╕реНрдЯреЗрдЯ $0AрдФрд░ рдЧреЗрдо рдлреАрд▓реНрдб рдХреЙрдкреА рд░реБрдЯреАрди рдХреЗ рд╡рд┐рдкрд░реАрдд , рдЬреЛ рдПрдбреНрд░реЗрд╕ рдЧреБрдгрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ $96D6, рдПрдХ рдмреНрд▓реЙрдХ рдЬреЛ рдХрд┐ рд╢рд┐рдлреНрдЯ рдФрд░ рдкрд░рд┐рд╡рд░реНрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 10 рд╕реЗ $9A82рдЧреБрдгрд╛ rowYрдХрд░рдХреЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ :

rowIndex = (rowY << 1) + (rowY << 3); // rowIndex = 2 * rowY + 8 * rowY;

рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ rowYрдЕрдВрддрд░рд╛рд▓ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИ [0, 20], рдФрд░ рдЧреБрдгрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗрд╡рд▓ рдХрд╡рд░ рдХрд░рддреА рд╣реИ [0, 19]ред рдкрдВрдХреНрддрд┐ рд╕реНрдХреИрдирд┐рдВрдЧ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдЕрдВрдд рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдЦреЗрд▓ рдПрдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ $0400-$04FF$EF(рдЦрд╛рд▓реА рдЯрд╛рдЗрд▓), рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЗ рдлрд░реНрд╢ рдХреЗ рдиреАрдЪреЗ 5 рд╕реЗ рдЕрдзрд┐рдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЦрд╛рд▓реА рдЫрд┐рдкреА рд▓рд╛рдЗрдиреЗрдВ рдмрдирд╛рдирд╛ред

рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдмреНрд▓реЙрдХ $9ADA2 рдкреНрд▓реЗрдпрд░ рд╡рд░реНрд╕рд╕ рдХреЗ рдЕрдзреВрд░реЗ рдореЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреЗ рдЦреЗрд▓ рдореИрджрд╛рди рдореЗрдВ рдорд▓рдмреЗ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдХрдЪрд░рд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрддреЗ рдкрд░ рддрд╛рд▓рд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ $9B53: рдкрддреЗ рдкрд░ рдЪрдХреНрд░ рднрд░рд╛ рд╣реБрдЖ рдкрдВрдХреНрддрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдиреАрдЪреЗ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдЗрд╕ рддрдереНрдп рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░рдВрддрд░ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ 10 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛ рд▓реВрдк рд╢реАрд░реНрд╖ рд░реЗрдЦрд╛ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИред рдЧреЗрдо рд╕реНрдЯреЗрдЯ рдХреЗ рджреМрд░рд╛рди рдкрдВрдХреНрддрд┐ рд╕реНрдкрд╖реНрдЯ рдПрдиреАрдореЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдЧреЗрдо рд╕реНрдЯреЗрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рд╣реИред

9B53: 00 ; no cleared lines
9B54: 00 ; Single
9B55: 01 ; Double
9B56: 02 ; Triple
9B57: 04 ; Tetris


$9AA6

$04

9E39: RTS ; return;

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЦреЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рджреМрд░рд╛рди $04, рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЛрдб рдХрд╛ рдЕрдЧрд▓рд╛ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $03ред рдФрд░ рдЕрдзреВрд░реЗ рдореЛрдб 2 рдкреНрд▓реЗрдпрд░ рд╡рд░реНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдорд┐рд░рд░ рдХрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдмрд░реВрдЯреАрди рдХреЛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдЗрд╕реЗ рд╣рд░ рдлреНрд░реЗрдо рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╣рд░ рдЪреМрдереЗ рдлреНрд░реЗрдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд╕ рдореЗрдВ, рдпрд╣ рдкреВрд░реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрдХреНрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ 2 рд╕реНрддрдВрднреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ, рдХреЗрдВрджреНрд░реАрдп рд╕реНрддрдВрдн рд╕реЗ рдмрд╛рд╣рд░ рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВред рдПрдХ 16-рдмрд┐рдЯ VRAM рдкрддреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдХреЙрдкреА рдлреАрд▓реНрдб рд░реВрдЯреАрди рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреЙрд▓рдо рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдСрдлрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

94EE: LDA $0068
94F0: CMP #$04
94F2: BNE $9522 ; if (playState == DISPLAY_LINE_CLEARING_ANIMATION) {

94F4: LDA #$04
94F6: STA $00B9 ; leftPlayfield = true;

94F8: LDA $0072
94FA: STA $0052
94FC: LDA $006A
94FE: STA $004A
9500: LDA $006B
9502: STA $004B
9504: LDA $006C
9506: STA $004C
9508: LDA $006D
950A: STA $004D
950C: LDA $0068
950E: STA $0048 ; mirror values;

9510: JSR $977F ; updateLineClearingAnimation();

; ...
; }


leftPlayfield

updateLineClearingAnimation()

977F: LDA $00B1 ; if (frameCounter not divisible by 4) {
9781: AND #$03 ; return;
9783: BNE $97FD ; }

9785: LDA #$00 ; for(i = 0; i < 4; i++) {
9787: STA $00AA ; rowY = lines[i];
9789: LDX $00AA ; if (rowY == 0) {
978B: LDA $4A,X ; continue;
978D: BEQ $97EB ; }

978F: ASL
9790: TAY
9791: LDA $96EA,Y
9794: STA $00A8 ; low = vramPlayfieldRows[2 * rowY];

9796: LDA $00BE ; if (numberOfPlayers == 2) {
9798: CMP #$01 ; goto twoPlayers;
979A: BNE $97A6 ; }

979C: LDA $00A8
979E: CLC
979F: ADC #$06
97A1: STA $00A8 ; low += 6;

97A3: JMP $97BD ; goto updateVRAM;

twoPlayers:

97A6: LDA $00B9
97A8: CMP #$04
97AA: BNE $97B6 ; if (leftPlayfield) {

97AC: LDA $00A8
97AE: SEC
97AF: SBC #$02
97B1: STA $00A8 ; low -= 2;

97B3: JMP $97BD ; } else {

97B6: LDA $00A8
97B8: CLC
97B9: ADC #$0C ; low += 12;
97BB: STA $00A8 ; }

updateVRAM:

97BD: INY
97BE: LDA $96EA,Y
97C1: STA $00A9
97C3: STA $2006
97C6: LDX $0052 ; high = vramPlayfieldRows[2 * rowY + 1];
97C8: LDA $97FE,X
97CB: CLC ; rowAddress = (high << 8) | low;
97CC: ADC $00A8
97CE: STA $2006 ; vramAddress = rowAddress + leftColumns[clearColumnIndex];
97D1: LDA #$FF
97D3: STA $2007 ; vram[vramAddress] = 255;

97D6: LDA $00A9
97D8: STA $2006
97DB: LDX $0052 ; high = vramPlayfieldRows[2 * rowY + 1];
97DD: LDA $9803,X
97E0: CLC ; rowAddress = (high << 8) | low;
97E1: ADC $00A8
97E3: STA $2006 ; vramAddress = rowAddress + rightColumns[clearColumnIndex];
97E6: LDA #$FF
97E8: STA $2007 ; vram[vramAddress] = 255;

97EB: INC $00AA
97ED: LDA $00AA
97EF: CMP #$04
97F1: BNE $9789 ; }

97F3: INC $0052 ; clearColumnIndex++;
97F5: LDA $0052 ; if (clearColumnIndex < 5) {
97F7: CMP #$05 ; return;
97F9: BMI $97FD ; }

97FB: INC $0048 ; playState = UPDATE_LINES_AND_STATISTICS;

97FD: RTS ; return;




97FE: 04 03 02 01 00 ; left columns
9803: 05 06 07 08 09 ; right columns


рд╕рдлрд╛рдИ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП, 5 рдкрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдлрд┐рд░ рдХреЛрдб рдЕрдЧрд▓реЗ рдЧреЗрдо рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред

рдЦреЗрд▓ рд░рд╛рдЬреНрдп рд╣реИрдВрдбрд▓рд░ $05рдореЗрдВ "рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдФрд░ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА" рдЦрдВрдб рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреЛрдб рд╣реЛрддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рд░ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ: рдЦреЗрд▓ рд░рд╛рдЬреНрдп рдХреЗ рдЕрдВрдд рддрдХ рдЪрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрд▓ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрдХреЛрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдХреНрд░рдо рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрдЧ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдбреЗрдореЛ рдореЛрдб рдореЗрдВ, рдЖрдкрдХреЛ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЦреЗрд▓ рдкреВрд░реА рдкрдВрдХреНрддрд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рди рдХрд░ рд▓реЗ, рдФрд░ рдлрд┐рд░ рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░реЗрд╕ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреАрдореЗрд╢рди рд╕рдорд╛рдкреНрдд рди рд╣реЛ рдЬрд╛рдПред рдЦреЗрд▓ рд╕реНрдХреНрд░реАрди рд╕реЗрд╡рд░ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╕рд╣реА рд╕рдордп рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ рдореВрд▓реНрдп рдмрдЪрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред рдЕрдм рдЖрдк рдЧреЗрдо рдХреЛ рдП-рдЯрд╛рдЗрдк рдореЛрдб рдореЗрдВ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рдкрд╣рд▓реА рдЖрдХреГрддрд┐ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЧреЗрдо рд╕реНрдЯреЗрдЯ рд╣реИрдВрдбрд▓рд░

9C9E: LDA #$00
9CA0: STA $0056 ; completedLines = 0;

9CA2: INC $0048 ; playState = B_TYPE_GOAL_CHECK;

9CA4: RTS ; return;


completedLines$05completedLines$03рдкреВрд░реНрдг рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдЙрдиреНрд╣реЗрдВ completedLinesрдирд╣реАрдВ рдвреВрдВрдвреЗрдЧрд╛ , рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджреЗрдЧрд╛ ред рдЕрдВрдд рдореЗрдВ, рдЬрдм рдЦреЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдкреВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ $05рдХреБрд▓ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрдХреЛрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреА, рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреЛрд░ рдХрд┐рдпрд╛ рдерд╛ред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд░рд╛рд╢рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, рдбреЗрдореЛ рдХреЛ рдЯреЗрдЯреНрд░рд┐рд╕ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ (рдбреЗрдореЛ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ 2 рд╣реЛрдВрдЧреЗ)ред рдЬреИрд╕реЗ рд╣реА рдЖрдк рд╕реНрдХреНрд░реАрди рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕реНрдЯрд╛рд░реНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред


рдПрдХ рдирдпрд╛ рдЧреЗрдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░реАрди рдЭрд┐рд▓рдорд┐рд▓рд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред рдпрд╣ рд╕рдм рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдП рдЧрдП рдХреЛрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдкрд╣рд▓рд╛ рдЖрдВрдХрдбрд╝рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреА рдордВрдЬрд┐рд▓ рддрдХ рдЬрд╛рдиреЗ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдХреЛрд░ рдФрд░ рднреА рдЕрдзрд┐рдХ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ ( ) рдбреЗрдореЛ рд╕реЗ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рднреА рдмрдЪрд╛рдПрдЧрд╛ред рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╣реА рд╣реИ рдЬрдм рдбреЗрдореЛ рдиреЗ рдПрдХ рднреА рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рднрд░реА рдереАред рдпрд╣ рддрдм рддрдХ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ "рдбрд╛рдЙрди" рдмрдЯрди рджрдмрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдЯреЗрдЯреНрд░рд┐рд╕ рд╕рдВрдпреЛрдЬрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдбреЗрдореЛ рдореЛрдб рдореЗрдВ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕реНрдЯрд╛рд░реНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдбреЗрдореЛ рдХреЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рди рдХреЗрд╡рд▓ рдЯреЗрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдЕрдВрдХ рдбреЗрдореЛ рдореЗрдВ рдЧрд┐рдиреЗ рдЬрд╛рдПрдВрдЧреЗ, рдмрд▓реНрдХрд┐ рдкреВрд░реЗ рд╕рдордп рдХреЛ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдирддреАрдЬрддрди, рдбреЗрдореЛ рдЧреЗрдо рдЦреЛ рджреЗрдЧрд╛ред рдЧреЗрдо рдХреЗ рдЕрдВрдд рдкрд░ рдкрд░реНрджрд╛ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реНрдЯрд╛рд░реНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╕реНрдХреНрд░реАрди рд╕реЗрд╡рд░ рдореЗрдВ рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВред

9673: LDA #$3F
9675: STA $2006
9678: LDA #$0E
967A: STA $2006 ; prepare to modify background tile color;

967D: LDX #$00 ; color = DARK_GRAY;

967F: LDA $0056
9681: CMP #$04
9683: BNE $9698 ; if (completedLines == 4) {

9685: LDA $00B1
9687: AND #$03
9689: BNE $9698 ; if (frameCounter divisible by 4) {

968B: LDX #$30 ; color = WHITE;

968D: LDA $00B1
968F: AND #$07
9691: BNE $9698 ; if (frameCounter divisible by 8) {

9693: LDA #$09
9695: STA $06F1 ; play clear sound effect;

; }
; }
; }

9698: STX $2007 ; update background tile color;


holdDownPoints$004FholdDownPoints



рдЦреЗрд▓ рд░рд╛рдЬреНрдп $06рдмреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдХреНрд╖реНрдп рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдП-рдЯрд╛рдЗрдк рдореЛрдб рдореЗрдВ, рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдЕрдкреНрд░рдпреБрдХреНрдд рдлреНрд░реЗрдо рд╣реИред

рдЦреЗрд▓ рд░рд╛рдЬреНрдп $07рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдкреВрд░реНрдг 2 рдкреНрд▓реЗрдпрд░ рд╡рд░реНрд╕рд╕ рд▓реЙрдЬрд┐рдХ рд╣реИред рдПрдХрд▓ рдЦрд┐рд▓рд╛рдбрд╝реА рдореЛрдб рдореЗрдВ, рдпрд╣ рдЕрдкреНрд░рдпреБрдХреНрдд рдлреНрд░реЗрдо рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЦреЗрд▓ рд░рд╛рдЬреНрдп рдХреА $08рдЪрд░реНрдЪрд╛ "рдмрдирд╛рдирд╛ Tetrimino" рдФрд░ "Tetrimino рдХрд╛ рдЪрдпрди" рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред

рдЦреЗрд▓ рд░рд╛рдЬреНрдп рдХрд╛ $09рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред $0BрдЦреЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкреНрд░рдпреБрдХреНрдд рднреА рджрд┐рдЦрддрд╛ рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЦреЗрд▓ рдХрд╛ рдореБрдЦреНрдп рдЪрдХреНрд░:

; while(true) {

8138: JSR $8161 ; branchOnGameMode();

813B: CMP $00A7 ; if (vertical blanking interval wait requested) {
813D: BNE $8142 ; waitForVerticalBlankingInterval();
813F: JSR $AA2F ; }

8142: LDA $00C0
8144: CMP #$05
8146: BNE $815A ; if (gameMode == DEMO) {

8148: LDA $00D2
814A: CMP #$DF
814C: BNE $815A ; if (reached end of demo table) {

814E: LDA #$DD
8150: STA $00D2 ; reset demo table index;

8152: LDA #$00
8154: STA $00B2 ; clear upper byte of frame counter;

8156: LDA #$01
8158: STA $00C0 ; gameMode = TITLE_SCREEN;
; }
; }
815A: JMP $8138 ; }

Source: https://habr.com/ru/post/hi420725/


All Articles