Все, положил в тему. Исправил Адвенчуру в 3й кассете.
Вид для печати
Все, положил в тему. Исправил Адвенчуру в 3й кассете.
Следующие 2 кассеты насыщены работой. Первая это самый практичный бэйсик для "Специалиста" бэйсик "Практик" и уроки для него.
http://savepic.net/4823710m.jpg
А вторая - текучая работа кружка 93/94 годов. Работы на бэйсике, тексты и коды.
http://savepic.net/4824734m.jpg
Если на первой всего пара моих работ, то вторая просто кишит моими работами и работами на пару с кентом. Слушаю свой голос 20ти летней давности в объявлениях и плачу... Да и на вкладыше мой почерк все еще узнаваем...
Присутствуют записи из РАМФОСа. Логический формат я нашел, а вот по физике пока нифига не понял из ПДФки. Кто-нить может дать внятное описание? Понятно что разные биты разным периодом, но попонятнее и точнее бы.
В общем, решил расчехлить свой МХ2 и попробовать на железе.
Дизассемблировал выгрузку байта РАМФОСа. Физика оказалась простой. Если не брать в расчет тот момент, что есть компенсация задержки на выполненные команды (чего нет в обычном и я об этом говорил), то физика следующая.
1. Длинный период означает лог.0, а короткий - лог.1.
2. Раккорд это серия коротких периодов.
3. Каждый байт начинается со стартового бита, длинный период (лог.0?).
4. Затем идут 8 бит данных, причем "ногами вперед" (младший бит первый).
5. Следующим идет бит четности (по логике АЛУ ВМ80), причем если она лог.0, то просто выдается 1 длинный период, а если лог.1 то 2 коротких периода.
6. Завершает его стоповый бит, короткий период (лог.1?).
7. Каждый блок кодов начинается с раккорда, затем 2 байта длины (младший вперед) и потом сам код.
При этом никаких контрольных сумм не вычисляется, т.к. каждый байт содержит четность. В случае ошибки, сам рамфос прерывает чтение, а мы можем попробовать продолжить анализировать входящий поток, уменьшая потери вплоть до 1 байта. Это все крайне не очевидно в дизассемблировании от Винксру. Надо теперь написать анализатор.
Вот руками раскидал заголовок и все сошлось:
Код:0 1 1 1 1 0 0 0 0 1 1 1 X 0F 15
0 0 0 0 0 0 0 0 0 1 1 1 X 00 0
0 1 1 0 0 1 0 1 1 0 1 1 D3 .
0 1 1 0 0 1 0 1 1 0 1 2 D3 .
0 1 1 0 0 1 0 1 1 0 1 3 D3 .
0 0 0 1 1 0 0 1 0 0 1 4 4C L
0 1 1 1 1 0 1 1 0 1 1 1 5 6F o
0 1 0 0 0 0 1 1 0 0 1 6 61 а
0 0 0 1 0 0 1 1 0 0 1 7 64 d
0 0 0 1 0 0 0 1 0 1 1 1 8 46 F
0 1 1 0 0 1 1 1 0 0 1 9 73 s
0 1 1 0 1 0 1 1 0 0 1 A 6B k
0 0 1 1 0 1 1 0 0 1 1 1 B 36 6
0 0 0 0 0 0 1 0 0 0 1 C 20
0 1 0 1 0 0 0 1 0 0 1 D 45 E
0 0 0 0 1 1 0 1 0 0 1 E 58 X
0 1 0 1 0 0 0 1 0 0 1 F 45 E
Так, успешно распознан первый файл (вместе с проверкой четности байтов!). Едем дальше.
В общем, формат RAMFOSа побежден и кассета №5 распознана полностью. Формат оказался настолько примитивен, что программка взлетела с полпинка. Так же, в виду того, что тут работа с целыми периодами, я применил свои старые наработки, которые использовал лет 13 назад для записей Спектрума. Например, работает автоматическое определение константы. В этой кассете присутствуют записи из RAMFOS. Т.к. формат отличается, я вместо RKS решил обозвать RFS. Внутри так же, как и у RKS побайтная копия ленты. Приступаю к 6й.
Добавлена 6ая кассета. Программа считывания эволюционирует. И кассета №6 уже была распознана из сырца без какой-либо обработки в звуковом редакторе. Несмотря на "выпадания" блоков в одном канале, программы нормально считывались в другом (там даже на слух были "потертости" в одном из каналов). Так что все файлы данной кассеты распознаны за один проход! Качаем, наслаждаемся.
Очередные три кассеты на подходе.
Рабочая 4: Много прикладных программ
http://savepic.net/4881509m.jpg
Кассета Бейсик №5: Снова бейсик, но есть вкрапления софта для Ориона
http://savepic.net/4868197m.jpg
Кассета Long Save 6: игрушки с автозапуском и заставкой (по сбросу)! И прикладной софт.
http://savepic.net/4873317m.jpg
Вообще, я помню мы на занятиях частенько набирали какие-то коды, тексты и потом сохраняли на ленту. Лично я помню что набирал такие вещи как "Монитор открывает окна" и "Penx". Всякие описания в редакторе текстов "Практик" страницами. Занятие длилось 3-4 часа, если заданием было набрать некий отрезок кодов или текста, то чем быстрее его наберешь, тем больше времени останется поиграть. Денег за посещение кружка не брали. Вскоре, мы с другом приловчились набирать коды в паре так быстро, что у нас уходило не более 40 минут. Остальное время - свободное. По началу, конечно, резались в Lode Runner, Down To Earth, Алмаз (аналог Boulder Dash), КОРТ (аналог Арканоида) и пр. Потом надоело и начался процесс созидания. Препод это запалил и в какой-то момент освободил нас от набора. Так что под конец, мы просто приходили и занимались любимым делом. И результатами этих занятий были разные полезные программы, например программа-лупа, которая увеличивала картинку на целое число непосредственно перед печатью на принтер и не занимала много памяти. Или расчет трансформаторного блока питания на бейсике (было в предыдущих кассетах), который много раз меня выручал, так как рассчитан на намотку "внавал". Надеюсь, я все это найду на этих кассетах.
HardWareMan, можешь заново выложить архив кассет?
В частности образцы файлов *.rfs интересуют...
Pyk, для этого есть профильная тема.