Как известно, в древнерусском языке было устроено всё немного иначе, чем в современном русском. Кроме особенностей морфологии, лексики и синтаксиса были ещё особенности фонетические, из которых чуть ли не главной являлись редуцированные – особые гласные звуки, произносившиеся сверхкратко.
Редуцированных было 2: Ъ (ер) и Ь (ерь). Произносились они близко к О и Е соответственно.
Но в конце концов эти звуки начали произноситься настолько кратко, что стали и вовсе исчезать в слабой позиции, а в сильной, по закону фонетической компенсации (подобно закону сохранения энергии), приблизились к О и Е.
Немного о позициях
Слабая позиция:
1. В абсолютном конце слова, например, столъ (что логично, довольно напряжно произносить гласный в этой позиции).
2. Если редуцированный находился в слоге перед нормальным гласным, например, къто (тут тоже, попробуйте произнести сначала сверхкраткий звук, а потом вдруг звук полного образования: нарушается закон языковой экономии – это что-то вроде лени со стороны языка).
3. Если редуцированный находился в слоге перед редуцированным в сильной позиции, например, шьвьць (то же самое, что и в предыдущем пункте).
Сильная позиция:
1. Редуцированный под ударением, напр., пьсъ – пес (понятно, что звук под ударением вряд ли мог быть слабым или исчезнуть).
2. Перед слогом со слабым редуцированным, напр., Коурьскъ – Курск (тут объяснение, обратное случаям в п. 2, 3 слабой позиции).
Пропускать Ь и Ъ, скорее всего, стали еще до появления памятников письменности, так как уже в "Остромировом евангелие", написанном в 1056-1057 гг. встречаются слова кто (вместо къто), книга (кънига), птица (пътица).
Написание Е и О вместо редуцированных в сильной позиции встречается с 12 века, когда пропуски уже стали обычным явлением.
И с 12 века до первой половины 13 в. процесс падения редуцированных (исчезновения их из языка) завершается, оказав сильное влияние на систему русского языка.
Кроме ера и еря существовали также напряженные редуцированные Ы и И, образованные от Ъ, Ь путем соединения с j. От таких же гласных полного образования их отличала возможность замены типа Мариꙗ - Марьꙗ, имѣниѥ - имѣньѥ (ꙗ и ѥ - йотированные звуки, такие же как современные Я [йа] и Е [йэ]; ѣ (ять) читался как что-то среднее между И и Э [иэ]).