Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

праистория

Въй ΠΊΠ°Ρ‚ΠΎ съм Π»ΡŽΠ±ΠΈΡ‚Π΅Π» Π½Π° Ρ€Π΅Ρ‚Ρ€ΠΎ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π°, вСднъТ Π·Π°ΠΊΡƒΠΏΠΈΡ… ZX Spectrum+ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‡ Π² ΠžΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΎΡ‚ΠΎ кралство. Π’ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ със самия ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ… няколко Π°ΡƒΠ΄ΠΈΠΎ касСти с ΠΈΠ³Ρ€ΠΈ (Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° с инструкции), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ записани Π½Π° касСти Π±Π΅Π· спСциални ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π˜Π·Π½Π΅Π½Π°Π΄Π²Π°Ρ‰ΠΎ, Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ 40-годишни касСти сС чСтят Π΄ΠΎΠ±Ρ€Π΅ ΠΈ успях Π΄Π° изтСгля ΠΏΠΎΡ‡Ρ‚ΠΈ всички ΠΈΠ³Ρ€ΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΎΡ‚ тях.

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

На някои касСти ΠΎΠ±Π°Ρ‡Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… записи, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ са Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° ZX Spectrum. Π’Π΅ Π·Π²ΡƒΡ‡Π°Ρ…Π° съвсСм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ ΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ записитС ΠΎΡ‚ спомСнатия ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ Π½Π΅ стартираха с ΠΊΡ€Π°Ρ‚ΡŠΠΊ BASIC Π±ΡƒΡƒΡ‚Π»ΠΎΡƒΠ΄ΡŠΡ€, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Π² записитС Π½Π° всички ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΈ ΠΈΠ³Ρ€ΠΈ.

Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Ρ‚ΠΎΠ²Π° ΠΌΠ΅ ΠΏΡ€Π΅ΡΠ»Π΅Π΄Π²Π°ΡˆΠ΅ - ΠΌΠ½ΠΎΠ³ΠΎ исках Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π° ΠΊΠ°ΠΊΠ²ΠΎ сС ΠΊΡ€ΠΈΠ΅ Π² тях. Ако ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ аудиосигнала ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΡ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Π·Π½Π°Ρ†ΠΈ ΠΈΠ»ΠΈ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡ€ΠΎΠΈΠ·Ρ…ΠΎΠ΄Π° Π½Π° сигнала. Π•Π΄ΠΈΠ½ Π²ΠΈΠ΄ рСтроархСология.

Π‘Π΅Π³Π°, слСд ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€Π²ΡΡ… цСлия ΠΏΡŠΡ‚ ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π°Ρ… Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π½Π° самитС касСти, сС усмихвам, Π·Π°Ρ‰ΠΎΡ‚ΠΎ

ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ бСшС Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ ΠΎΡ‡ΠΈΡ‚Π΅ ΠΌΠΈ ΠΏΡ€Π΅Π· цялото Π²Ρ€Π΅ΠΌΠ΅
На Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° Π½Π° лявата касСта Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° TRS-80 ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° производитСля: β€žΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΎΡ‚ Radio Shack Π² Π‘ΠΠ©β€œ

(Ако искатС Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Ρ€ΠΈΠ³Π°Ρ‚Π° Π΄ΠΎ края, Π½Π΅ ΠΌΠΈΠ½Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ спойлСра)

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΡƒΠ΄ΠΈΠΎ сигнали

ΠŸΡŠΡ€Π²ΠΎ, Π½Π΅ΠΊΠ° Π΄ΠΈΠ³ΠΈΡ‚Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ аудиозаписитС. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ‡ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π·Π²ΡƒΡ‡ΠΈ:


И ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π·Π²ΡƒΡ‡ΠΈ Π·Π°ΠΏΠΈΡΡŠΡ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° ZX Spectrum:


И Π² Π΄Π²Π°Ρ‚Π° случая Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° записа ΠΈΠΌΠ° Ρ‚.Π½Π°Ρ€ ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½ - Π·Π²ΡƒΠΊ със ΡΡŠΡ‰Π°Ρ‚Π° чСстота (Π² ΠΏΡŠΡ€Π²ΠΈΡ запис Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΡ€Π°Ρ‚ΡŠΠΊ <1 сСкунда, Π½ΠΎ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°). ΠŸΠΈΠ»ΠΎΡ‚Π½ΠΈΡΡ‚ Ρ‚ΠΎΠ½ сигнализира Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° Π΄Π° сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. По ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ всСки ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π° само своя β€žΡΠΎΠ±ΡΡ‚Π²Π΅Π½β€œ ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° сигнала ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° чСстота.

НСобходимо Π΅ Π΄Π° сС ΠΊΠ°ΠΆΠ΅ Π½Π΅Ρ‰ΠΎ Π·Π° самата Ρ„ΠΎΡ€ΠΌΠ° Π½Π° сигнала. НапримСр Π½Π° ZX Spectrum Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΌΡƒ Π΅ ΠΏΡ€Π°Π²ΠΎΡŠΠ³ΡŠΠ»Π½Π°:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

ΠšΠΎΠ³Π°Ρ‚ΠΎ бъдС ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½, ZX Spectrum ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ€Π΅Π΄ΡƒΠ²Π°Ρ‰ΠΈ сС Ρ‡Π΅Ρ€Π²Π΅Π½ΠΈ ΠΈ сини Π»Π΅Π½Ρ‚ΠΈ Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ‚Π° Π½Π° Π΅ΠΊΡ€Π°Π½Π°, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ ΡΠΈΠ³Π½Π°Π»ΡŠΡ‚ Π΅ Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Ρ‚. ΠŸΠΈΠ»ΠΎΡ‚Π½ΠΈΡΡ‚ Ρ‚ΠΎΠ½ ΡΠ²ΡŠΡ€ΡˆΠ²Π° синхронСн импулс, ΠΊΠΎΠ΅Ρ‚ΠΎ сигнализира Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° Π΄Π°Π½Π½ΠΈ. Π₯Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΈΡ€Π° сС с ΠΏΠΎ-ΠΊΡ€Π°Ρ‚ΠΊΠ° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚ (Π² сравнСниС с пилотния Ρ‚ΠΎΠ½ ΠΈ послСдващитС Π΄Π°Π½Π½ΠΈ) (Π²ΠΈΠΆ Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚Π°)

Π‘Π»Π΅Π΄ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° синхронизиращия импулс ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ записва всяко нарастванС/спаданС Π½Π° сигнала, ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°ΠΉΠΊΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚. Ако ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, Π±ΠΈΡ‚ 1 сС записва Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай 0. Π‘ΠΈΡ‚ΠΎΠ²Π΅Ρ‚Π΅ сС ΡΡŠΠ±ΠΈΡ€Π°Ρ‚ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ сС повтаря, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ сС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ N Π±Π°ΠΉΡ‚Π°. Числото N ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС Π²Π·Π΅ΠΌΠ° ΠΎΡ‚ Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Π½Π° изтСглСния Ρ„Π°ΠΉΠ». ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π΅ слСдната:

  1. ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½
  2. Π·Π°Π³Π»Π°Π²ΠΊΠ° (фиксирана дълТина), ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ (N), ΠΈΠΌΠ΅Ρ‚ΠΎ ΠΈ Ρ‚ΠΈΠΏΠ° Π½Π° Ρ„Π°ΠΉΠ»Π°
  3. ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½
  4. самитС Π΄Π°Π½Π½ΠΈ

Π—Π° Π΄Π° Π΅ сигурСн, Ρ‡Π΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ са Π·Π°Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, ZX Spectrum Ρ‡Π΅Ρ‚Π΅ Ρ‚.Π½Π°Ρ€ ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚Π΅Π½ Π±Π°ΠΉΡ‚ (ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚Π΅Π½ Π±Π°ΠΉΡ‚), ΠΊΠΎΠΉΡ‚ΠΎ сС изчислява ΠΏΡ€ΠΈ запис Π½Π° Ρ„Π°ΠΉΠ» Ρ‡Ρ€Π΅Π· XOR Π½Π° всички Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ ΠΎΡ‚ записанитС Π΄Π°Π½Π½ΠΈ. ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ‡Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ», ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ изчислява паритСтния Π±Π°ΠΉΡ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΈ Π°ΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ записания, ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° β€žR Tape loading errorβ€œ. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π°Ρ‚ΠΎ, ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π΄Π°Π΄Π΅ Ρ‚ΠΎΠ²Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ-Ρ€Π°Π½ΠΎ, Π°ΠΊΠΎ ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π΅ импулс (пропуснат ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° ΠΌΡƒ Π½Π΅ отговаря Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π³Ρ€Π°Π½ΠΈΡ†ΠΈ)

И Ρ‚Π°ΠΊΠ°, Π½Π΅ΠΊΠ° сСга Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° нСизвСстСн сигнал:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

Π’ΠΎΠ²Π° Π΅ пилотният Ρ‚ΠΎΠ½. Π€ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° сигнала Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Π°, Π½ΠΎ Π΅ ясно, Ρ‡Π΅ ΡΠΈΠ³Π½Π°Π»ΡŠΡ‚ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ повтарящи сС ΠΊΡ€Π°Ρ‚ΠΊΠΈ импулси с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° чСстота. ΠŸΡ€ΠΈ чСстота Π½Π° сСмплиранС ΠΎΡ‚ 44100 Hz, разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ "ΠΏΠΈΠΊΠΎΠ²Π΅Ρ‚Π΅" Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ 48 сСмплиранС (ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° чСстота ΠΎΡ‚ ~918 Hz) НСка Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ Ρ‚Π°Π·ΠΈ Ρ†ΠΈΡ„Ρ€Π°.

НСка сСга Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

Ако ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΠΌ разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ импулси, сС ΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ β€žΠ΄ΡŠΠ»Π³ΠΈΡ‚Π΅β€œ импулси всС ΠΎΡ‰Π΅ Π΅ ~48 ΠΏΡ€ΠΎΠ±ΠΈ, Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΡŠΡΠΈΡ‚Π΅ - ~24. Π“Π»Π΅Π΄Π°ΠΉΠΊΠΈ ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΠΏΡ€Π΅Π΄, Ρ‰Π΅ ΠΊΠ°ΠΆΠ°, Ρ‡Π΅ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка сС ΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ β€žΡ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅β€œ импулси с чСстота 918 Hz слСдват Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ, ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π΄ΠΎ края Π½Π° Ρ„Π°ΠΉΠ»Π°. МоТС Π΄Π° сС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈ, Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π°ΠΊΠΎ сС срСщнС Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ импулс ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅ импулси, Π½ΠΈΠ΅ Π³ΠΎ считамС Π·Π° Π±ΠΈΡ‚ 1, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай 0.

Какво Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π·Π° синхронизиращия импулс? НСка ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

ΠŸΠΈΠ»ΠΎΡ‚Π½ΠΈΡΡ‚ Ρ‚ΠΎΠ½ ΡΠ²ΡŠΡ€ΡˆΠ²Π° ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π²Π΅Π΄Π½Π°Π³Π°. Малко ΠΏΠΎ-късно, слСд ΠΊΠ°Ρ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ няколко Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ аудиозаписа, успяхмС Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌ, Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ (10100101b, A5h). ΠšΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° Ρ‡Π΅Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ, слСд ΠΊΠ°Ρ‚ΠΎ Π³ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° ΠΎΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° измСстванСто Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π΅Π½ импулс нСпосрСдствСно слСд послСдния 1-Π²ΠΈ Π² синхронизиращия Π±Π°ΠΉΡ‚. ΠžΡ‚ΠΊΡ€ΠΈΡ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-късно Π² процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Ρ‡Π΅Ρ‚Π°Ρ‚ стабилно.

Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° опишСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ Π°ΡƒΠ΄ΠΈΠΎ Ρ„Π°ΠΉΠ» ΠΈ Ρ‰Π΅ Π·Π°Ρ€Π΅Π΄ΠΈ Π΄Π°Π½Π½ΠΈ.

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ

ΠŸΡŠΡ€Π²ΠΎ, Π½Π΅ΠΊΠ° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ няколко допускания, Π·Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° прост:

  1. Π©Π΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ само Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ WAV;
  2. Аудио Ρ„Π°ΠΉΠ»ΡŠΡ‚ трябва Π΄Π° Π·Π°ΠΏΠΎΡ‡Π²Π° с ΠΏΠΈΠ»ΠΎΡ‚Π΅Π½ Ρ‚ΠΎΠ½ ΠΈ Π½Π΅ трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ‚ΠΈΡˆΠΈΠ½Π° Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ
  3. Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡΡ‚ Ρ„Π°ΠΉΠ» трябва Π΄Π° ΠΈΠΌΠ° чСстота Π½Π° дискрСтизация 44100 Hz. Π’ Ρ‚ΠΎΠ·ΠΈ случай разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅ импулси Π½Π° 48 ΠΏΡ€ΠΎΠ±ΠΈ Π²Π΅Ρ‡Π΅ Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π³ΠΎ изчислявамС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎ;
  4. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΈΡΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ (8/16 Π±ΠΈΡ‚Π°/ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая) - Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°ΠΌΠ΅ Π² ТСлания;
  5. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅, Ρ‡Π΅ изходният Ρ„Π°ΠΉΠ» Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΠΎ Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° стабилизира Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°;

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Ρ‰Π΅ бъдС ΠΊΠ°ΠΊΡ‚ΠΎ слСдва:

  1. ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ примСрния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² 8 Π±ΠΈΡ‚Π°;
  2. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Ρ‚Π΅ позицията Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ импулс Π² Π°ΡƒΠ΄ΠΈΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°, трябва Π΄Π° изчислитС броя Π½Π° ΠΏΡ€ΠΎΠ±Π°Ρ‚Π° с максимална Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π°. Π—Π° простота Ρ‰Π΅ Π³ΠΎ изчислим вСднъТ Ρ€ΡŠΡ‡Π½ΠΎ. НСка Π³ΠΎ Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π² ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° prev_pos;
  3. Π”ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ 48 към позицията Π½Π° послСдния импулс (pos := prev_pos + 48)
  4. Въй ΠΊΠ°Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° позицията с 48 Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Ρ‰Π΅ стигнСм Π΄ΠΎ позицията Π½Π° слСдващия Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π΅Π½ импулс (Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΈ Π½Π° Π»Π΅Π½Ρ‚Π°Ρ‚Π°, нСстабилна Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π½Π° Π»Π΅Π½Ρ‚ΠΎΠ²ΠΎΡ‚ΠΎ устройство ΠΈ Ρ‚.Π½.), трябва Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°ΠΌΠ΅ позицията Π½Π° позиционния импулс. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°, Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΠΌΠ°Π»ΠΊΠ° част ΠΎΡ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅ (ΠΏΠΎΠ·-8;ΠΏΠΎΠ·+8) ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Ρ‚Π΅ стойността Π½Π° максималната Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π° Π²ΡŠΡ€Ρ…Ρƒ тях. ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΡ‚Π°, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰Π° Π½Π° максимума, Ρ‰Π΅ бъдС Π·Π°ΠΏΠ°ΠΌΠ΅Ρ‚Π΅Π½Π° Π² ΠΏΠΎΠ·. Π’ΡƒΠΊ 8 = 48/6 Π΅ СкспСримСнтално ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° константа, която Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Ρ‰Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ правилния максимум ΠΈ няма Π΄Π° повлияСм Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ импулси, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° са Π½Π°Π±Π»ΠΈΠ·ΠΎ. Π’ ΠΌΠ½ΠΎΠ³ΠΎ лоши случаи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ импулситС Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ ΠΏΠΎ-голямо ΠΎΡ‚ 48, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° импулс, Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° статията няма Π΄Π° описвам Ρ‚ΠΎΠ²Π° Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ°;
  5. Π’ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° ΡΡ‚ΡŠΠΏΠΊΠ° ΡΡŠΡ‰ΠΎ Ρ‰Π΅ бъдС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ Π΄Π°Π»ΠΈ рСфСрСнтният импулс ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½. ВоСст, Π°ΠΊΠΎ просто Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ максимума, Ρ‚ΠΎΠ²Π° Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ ΠΈΠΌΠΏΡƒΠ»ΡΡŠΡ‚ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Π² Ρ‚ΠΎΠ·ΠΈ сСгмСнт. Π’ послСдното си изпълнСниС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ провСрявам Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ максималнитС ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡ‚Π΅ стойности Π½Π° Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π°Ρ‚Π° Π½Π° сСгмСнт ΠΈ Π°ΠΊΠΎ надвишава ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π°, ΠΎΡ‚Ρ‡ΠΈΡ‚Π°ΠΌ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° импулс. Π’ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ, Π°ΠΊΠΎ рСфСрСнтният импулс Π½Π΅ бъдС ΠΎΡ‚ΠΊΡ€ΠΈΡ‚. Има 2 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°: ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅ са ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΈ слСдва ΠΌΡŠΠ»Ρ‡Π°Π½ΠΈΠ΅, ΠΈΠ»ΠΈ Ρ‚ΠΎΠ²Π° трябва Π΄Π° сС счита Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅. НиС ΠΎΠ±Π°Ρ‡Π΅ Ρ‰Π΅ пропуснСм Ρ‚ΠΎΠ²Π°, Π·Π° Π΄Π° опростим Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ°;
  6. На слСдващата ΡΡ‚ΡŠΠΏΠΊΠ° трябва Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° импулс Π·Π° Π΄Π°Π½Π½ΠΈ (Π±ΠΈΡ‚ 0 ΠΈΠ»ΠΈ 1), Π·Π° Ρ‚ΠΎΠ²Π° Π²Π·Π΅ΠΌΠ°ΠΌΠ΅ срСдата Π½Π° сСгмСнта (prev_pos;pos) middle_pos Ρ€Π°Π²Π½Π° Π½Π° middle_pos := (prev_pos+pos)/2 ΠΈ Π² някакъв ΠΊΠ²Π°Ρ€Ρ‚Π°Π» Π½Π° middle_pos Π½Π° сСгмСнта (middle_pos-8;middle_pos +8) Π½Π΅ΠΊΠ° изчислим максималната ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π°. Ако Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ тях Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 10, записвамС Π±ΠΈΡ‚ 1 Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай 0. 10 Π΅ константа, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° СкспСримСнтално;
  7. Π—Π°ΠΏΠ°Π·Π΅Ρ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° позиция Π² prev_pos (prev_pos := pos)
  8. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Ρ‚Π΅, ΠΊΠ°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ ΠΎΡ‚ ΡΡ‚ΡŠΠΏΠΊΠ° 3, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅ΠΌ цСлия Ρ„Π°ΠΉΠ»;
  9. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡΡ‚ Π±ΠΈΡ‚ΠΎΠ² масив трябва Π΄Π° бъдС записан ΠΊΠ°Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅. Въй ΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π²Π·Π΅Ρ…ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ синхронизиращия Π±Π°ΠΉΡ‚ ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅, броят Π½Π° Π±ΠΈΡ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ ΠΊΡ€Π°Ρ‚Π΅Π½ Π½Π° 8 ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ Π±ΠΈΡ‚ΠΎΠ²ΠΎ отмСстванС ΡΡŠΡ‰ΠΎ Π΅ нСизвСстно. ΠŸΡ€ΠΈ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ изпълнСниС Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Π½Π΅ Π·Π½Π°Π΅Ρ… Π·Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° синхронизиращия Π±Π°ΠΉΡ‚ ΠΈ Π·Π°Ρ‚ΠΎΠ²Π° просто Π·Π°ΠΏΠ°Π·ΠΈΡ… 8 Ρ„Π°ΠΉΠ»Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π±Ρ€ΠΎΠΉ отмСстСни Π±ΠΈΡ‚ΠΎΠ²Π΅. Π•Π΄ΠΈΠ½ ΠΎΡ‚ тях ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ Π²Π΅Ρ€Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Π’ крайния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ просто ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌ всички Π±ΠΈΡ‚ΠΎΠ²Π΅ Π΄ΠΎ A5h, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΈ позволява Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π° правилния ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ Ρ„Π°ΠΉΠ»

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π² Ruby, Π·Π° интСрСсуващитС сС
Π˜Π·Π±Ρ€Π°Ρ… Ruby ΠΊΠ°Ρ‚ΠΎ Π΅Π·ΠΈΠΊ Π·Π° писанС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ... ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΠΌ Π½Π° Π½Π΅Π³ΠΎ ΠΏΡ€Π΅Π· ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅. ΠžΠΏΡ†ΠΈΡΡ‚Π° Π½Π΅ Π΅ с висока производитСлност, Π½ΠΎ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ скоростта Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ възмоТно Π½Π°ΠΉ-Π±ΡŠΡ€Π·Π° Π½Π΅ си заслуТава.

# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ gem 'wavefile'
require 'wavefile'

reader = WaveFile::Reader.new('input.wav')
samples = []
format = WaveFile::Format.new(:mono, :pcm_8, 44100)

# Π§ΠΈΡ‚Π°Π΅ΠΌ WAV Ρ„Π°ΠΉΠ», ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Mono, 8 bit 
# Массив samples Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π±Π°ΠΉΡ‚ со значСниями 0-255
reader.each_buffer(10000) do |buffer|
  samples += buffer.convert(format).samples
end

# ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° (вмСсто 0)
prev_pos = 0
# РасстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°ΠΌΠΈ
distance = 48
# Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ расстояния для окрСстности поиска локального максимума
delta = (distance / 6).floor
# Π‘ΠΈΡ‚Ρ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ строки ΠΈΠ· "0" ΠΈ "1"
bits = ""

loop do
  # РассчитываСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°
  pos = prev_pos + distance
  
  # Π’Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ 
  break if pos + delta >= samples.size

  # ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ pos ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ максимума Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ [pos - delta;pos + delta]
  (pos - delta..pos + delta).each { |p| pos = p if samples[p] > samples[pos] }

  # Находим сСрСдину ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [prev_pos;pos]
  middle_pos = ((prev_pos + pos) / 2).floor

  # Π‘Π΅Ρ€Π΅ΠΌ ΠΎΠΊΡ€Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π² сСрСдинС 
  sample = samples[middle_pos - delta..middle_pos + delta]

  # ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Π±ΠΈΡ‚ ΠΊΠ°ΠΊ "1" Ссли Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 10
  bit = sample.max - sample.min > 10
  bits += bit ? "1" : "0"
end

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ синхро-Π±Π°ΠΉΡ‚ ΠΈ замСняСм всС ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ Π½Π° 256 Π±ΠΈΡ‚ Π½ΡƒΠ»Π΅ΠΉ (согласно спСцификации Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°) 
bits.gsub! /^[01]*?10100101/, ("0" * 256) + "10100101"

# БохраняСм Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ», упаковывая Π±ΠΈΡ‚Ρ‹ Π² Π±Π°ΠΉΡ‚Ρ‹
File.write "output.cas", [bits].pack("B*")

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΎΠΏΠΈΡ‚Π°Ρ… няколко Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° ΠΈ константитС, ΠΈΠΌΠ°Ρ… ΠΊΡŠΡΠΌΠ΅Ρ‚Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π° Π½Π΅Ρ‰ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ интСрСсно:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

И Ρ‚Π°ΠΊΠ°, съдСйки ΠΏΠΎ символнитС Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΠΈΠ·Ρ‡Π΅Ρ€Ρ‚Π°Π²Π°Π½Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Π’ тСкста Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΎΠ±Π°Ρ‡Π΅ няма ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ. Всички ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ са ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ (всяка стойност > 80h). Π‘Π΅Π³Π° трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΎΡ‚ 80-Ρ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° записва ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π² Ρ‚ΠΎΠ·ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.

Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ тя Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° BASIC ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°. ΠšΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ ZX Spectrum ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π² ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ ΡΡŠΡ‰ΠΈΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ Π³ΠΈ записва Π½Π° Π»Π΅Π½Ρ‚Π°. Π—Π° всСки случай свСрих ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΡƒΠΌΠΈ маса. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΠ±Π°Ρ‡Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ бСшС ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π΅Π½.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ… ΠΈ BASIC ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΡƒΠΌΠΈ Π½Π° популярнитС Atari, Commodore 64 ΠΈ няколко Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° ΠΎΡ‚ ΠΎΠ½ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ успях Π΄Π° намСря докумСнтация, Π½ΠΎ Π±Π΅Π·ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ - познанията ΠΌΠΈ Π·Π° Π²ΠΈΠ΄ΠΎΠ²Π΅Ρ‚Π΅ Ρ€Π΅Ρ‚Ρ€ΠΎ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ сС ΠΎΠΊΠ°Π·Π°Ρ…Π° Π½Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΡˆΠΈΡ€ΠΎΠΊΠΈ.

Π’ΠΎΠ³Π°Π²Π° Ρ€Π΅ΡˆΠΈΡ… Π΄Π° ΠΎΡ‚ΠΈΠ΄Π° Π‘ΠΏΠΈΡΡŠΠΊΡŠΡ‚, ΠΈ Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΠΎΠ³Π»Π΅Π΄ΡŠΡ‚ ΠΌΠΈ ΠΏΠΎΠΏΠ°Π΄Π½Π° Π½Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° производитСля Radio Shack ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° TRS-80. Π’ΠΎΠ²Π° са ΠΈΠΌΠ΅Π½Π°Ρ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ бяха написани Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π½Π° касСтитС, ΠΊΠΎΠΈΡ‚ΠΎ Π»Π΅ΠΆΠ°Ρ…Π° Π½Π° масата ΠΌΠΈ! НС Π·Π½Π°Π΅Ρ… Ρ‚Π΅Π·ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΏΡ€Π΅Π΄ΠΈ ΠΈ Π½Π΅ бях Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ с ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° TRS-80, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΌΠΈ сС стори, Ρ‡Π΅ Radio Shack Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π» Π½Π° аудиокасСти ΠΊΠ°Ρ‚ΠΎ BASF, Sony ΠΈΠ»ΠΈ TDK, Π° TRS-80 Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅. Π—Π°Ρ‰ΠΎ Π½Π΅?

ΠšΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ Tandy/Radio Shack TRS-80

Много Π΅ вСроятно Π²ΡŠΠΏΡ€ΠΎΡΠ½ΠΈΡΡ‚ аудиозапис, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π°Π΄ΠΎΡ… Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° статията, Π΄Π° Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ:

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

Оказа сС, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ разновидности (МодСл I/МодСл III/МодСл IV ΠΈ Ρ‚.Π½.) са Π±ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ популярни ΠΏΠΎ Π΅Π΄Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ (Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π½Π΅ Π² Русия). ΠŸΡ€Π°Π²ΠΈ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…Π°, ΡΡŠΡ‰ΠΎ бСшС Z80. Π—Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ информация. ΠŸΡ€Π΅Π· 80-Ρ‚Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½Π°Ρ‚Π° информация сС разпространява Π² списания. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ° няколко Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ.

Π˜Π·Ρ‚Π΅Π³Π»ΠΈΡ… Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° trs80gp ΠΈ Π·Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚ успях Π΄Π° видя ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€. Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ Ρ†Π²Π΅Ρ‚Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄; Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° способност Π½Π° Π΅ΠΊΡ€Π°Π½Π° бСшС само 128x48 пиксСла, Π½ΠΎ имашС ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ…Π° Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° способност Π½Π° Π΅ΠΊΡ€Π°Π½Π°. ИмашС ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° внСдряванС Π½Π° Π΅Π·ΠΈΠΊΠ° BASIC (ΠΊΠΎΠΉΡ‚ΠΎ, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ ZX Spectrum, ΠΏΡ€ΠΈ някои ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΡ€ΠΈ Π½Π΅ бСшС β€žΡ„Π»Π°ΡˆΠ½Π°Ρ‚β€œ Π² ROM ΠΈ всяка опция моТСшС Π΄Π° бъдС Π·Π°Ρ€Π΅Π΄Π΅Π½Π° ΠΎΡ‚ Ρ„Π»ΠΎΠΏΠΈ диск, Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ самата ОБ)

Аз ΡΡŠΡ‰ΠΎ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… полСзност Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π°ΡƒΠ΄ΠΈΠΎ записи във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ CAS, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ, Π½ΠΎ ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ бСшС възмоТно Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π° записи ΠΎΡ‚ ΠΌΠΎΠΈΡ‚Π΅ касСти с тях.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π±Ρ€Π°Ρ… файловия Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ CAS (ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΎΠΊΠ°Π·Π° просто ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ Π±ΠΈΡ‚ΠΎΠ²ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ Π»Π΅Π½Ρ‚Π°Ρ‚Π°, която Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°Ρ… ΠΏΠΎΠ΄ Ρ€ΡŠΠΊΠ°, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° с Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° синхронизиращ Π±Π°ΠΉΡ‚), Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… няколко ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² моята ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈ успях Π΄Π° ΠΈΠ·Π²Π΅Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ CAS Ρ„Π°ΠΉΠ», ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ Π² Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° (TRS-80 Model III):

Как Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ… Π΄Π°Π½Π½ΠΈ Π² нСизвСстСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚ ΠΌΠ°Π³Π½ΠΈΡ‚Π½Π° Π»Π΅Π½Ρ‚Π°

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Ρ… Π½Π°ΠΉ-Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ с Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ опрСдСлянС Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ импулс ΠΈ разстояниСто ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅ импулси ΠΊΠ°Ρ‚ΠΎ GEM ΠΏΠ°ΠΊΠ΅Ρ‚, изходният ΠΊΠΎΠ΄ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π½Π° Github.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡŠΡ‚ΡΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅, сС ΠΎΠΊΠ°Π·Π° ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»Π½ΠΎ ΠΏΡŠΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ Π² ΠΌΠΈΠ½Π°Π»ΠΎΡ‚ΠΎ ΠΈ сС Ρ€Π°Π΄Π²Π°ΠΌ, Ρ‡Π΅ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π°. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ Π°Π·:

  • Π Π°Π·Π±Ρ€Π°Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ZX Spectrum ΠΈ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΡ… Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΡ‚Π΅ ROM ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΈ Π·Π° запис/Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π°ΡƒΠ΄ΠΈΠΎ касСти
  • Π—Π°ΠΏΠΎΠ·Π½Π°Ρ… сС с ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° TRS-80 ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ разновидности, ΠΏΡ€ΠΎΡƒΡ‡ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΈ Π΄ΠΎΡ€ΠΈ ΠΈΠΌΠ°Ρ… Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° правя отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² машинни ΠΊΠΎΠ΄ΠΎΠ²Π΅ (Π² края Π½Π° ΠΊΡ€Π°ΠΈΡ‰Π°Ρ‚Π° всички ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ Π½Π° Z80 са ΠΌΠΈ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ)
  • Написа ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π°ΡƒΠ΄ΠΈΠΎ записи във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ CAS, която ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ‡Π΅Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ ΠΎΡ‚ β€žΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π°β€œ ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€