Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Другие архитектуры » Формат загрузочной перфоленты? |
<<Назад Вперед>> | Страницы: 1 2 | Печать |
arif-ru
Advanced Member
Откуда: Москва. Всего сообщений: 1757 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 окт. 2007 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 16 февраля 2011 12:17 Сообщение отредактировано: 16 февраля 2011 12:19
Я тут продолжаю копаться в Плюримате (предыдущая тема, ещё одна). Найти софт или починить телетайп пока не получилось, зато я разобрался в системе комманд и написал ассемблер для его процессора. К сожалению, оказалось, что я не могу запустить даже "Hello, world!", потому что не знаю, как сделать из кода программы код загрузочной перфоленты. Возможно, кто-нибудь из собравшихся здесь серьёзных специалистов сможет помочь чайнику, подсказав, как обычно устроенны загрузочные перфоленты? На данный момент уже примерно понятно, как нужно запускать готовую перфоленту; по её форматированию же нашлось только это: http://www.arif-ru.narod.ru/tm..._Jul69.pdf |
Дениска
Advanced Member
Откуда: Хабаровск Всего сообщений: 1561 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 авг. 2009 |
arif-ru К сожелению на данном форуме найти таких спецов будет крайне сложно , тут наверное надо Америкосов трести , вроде-же ихние изделие. |
arif-ru
Advanced Member
Откуда: Москва. Всего сообщений: 1757 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 окт. 2007 |
Увы, знатоков этой конкретной фирмы в Америке и Европе примерно столько же, сколько и в России... Я сейчас больше надеюсь на то, что кто-нибудь из людей, запускавших с перфоленты другие компьютеры, посмотрит PDF и объяснит, как загружать Плюримат по аналогии с известной ему машиной. |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
arif-ru С трудом вспоминаю как генерил перфоленты на RT-11 под LINK11..... Не факт что формат совпадет, но по крайней мере доки по RT-11 можно еще найти. |
Mihail-1
Advanced Member
звание пока не придумал Откуда: Подмосковье Всего сообщений: 3839 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 авг. 2009 |
У меня есть перфоленты от М-6000 в родных пластиковых коробочках, каждая и приклееной биркой с названием. P.S. Про чистые рулоны не забыл, все времени нет съездить. |
DUKER |
NEW! Сообщение отправлено: 17 февраля 2011 16:13 Сообщение отредактировано: 17 февраля 2011 16:20
В доке вроде всё описано... По сути формат не сильно отличаеться от формата лент Э-60, только битов тут 6 а не 8, получаеться по две строки на байт, а не по одной как на 8-битной ленте.... там дан пример для программы длинной в 3Байта, запись состоит из двух кадров иещё "Начала - Leader" и "Конца - Trailer" Два кадра: 76543.210----->Номера битов, 7 - "метки конца -начала трека" 65 - вроде не используеться, 4- Пока не понял :-) 0-3 данные 0****.***-----> Начало "Leader" Как я понимаю что-то вроде начальной инициализации 0****.*** 0****.*** 0****.*** 0****.*** 0****.*** 0****.*** 0****.***----->"Leader" 00000.000- 00000.000 |---->Начало кадра "Separator" - "разделитель" 00000.000- *****.***-----> "Record Mark" - "метка записи" - тоже часть начальной посылки *****.***------> Длинна блока данных старшие 4 бита Получаеться ******00 — 00000011 - или 3 Байта *****.*00------> Длинна блока данных младшие 4 бита *****.***- .....0 *****.**0 | ....1 ***0*.00* | ....6-----> Два байта адреса 016А ***00.*0*- .....А ***00.*0*--- А ***00.*00--- B Байт АВ ***00.0**--- C ***00.0*0--- D Байт CD ***00.00*--- E ***00.000--- F Байт EF ***00.0*0-| D Старшая част контрольной суммы ***0*.0*0-| 5 Младшая часть контрольной суммы Сумма D5=Syze+Adress_H+Adress_L+Data_1+Data2+Data3 (ваще это 2D5 но если складыват байтами, то выдет D5) 00000.000- 00000.000 |---->Начало нового кадра снова "Separator" - "разделитель" 00000.000- *****.***----->"Record Mark" - "метка записи" - тоже часть начальной посылки *****.***Длинна блока тут она 0- это признак конечного кадра на ленте... *****.*** *****.***-.....0 Два байта адреса 016А *****.**0 |....1 В последнем кадре, это сатровый адрес программы... ***0*.00* |....6 ***00.*0*-.....А ***0*.00*-6 ***00.0**-С Кнотрольная сумма, тут 6С 0**0*.00*- вот этого не понял, мож комманда на запуск?? это "данные вне записи" 0****.*** 0****.*** 0****.***И трейлер пошёл... 0****.*** 0****.*** 0****.*** 0****.*** 0****.*** 4-й бит формируеться если число записанное первыми 4-мя битами больше 4, "to control print supression" - наверно чтоб лента не рвалась??? А для составления ленты нужно будет вашу программу перегнать в бинарный вид, представить себе как она должна быть расположена в памяти, разделить на небольшие блоки, и представить в этом формате.... У компьютера ПУЛЬТ есть?? вручную нельзя прописывать значения регистров? |
Сейчас на форуме |
DUKER |
NEW! Сообщение отправлено: 17 февраля 2011 16:34
Если у вас есть готовая программа, и вы знаете где в памяти, по каким адресам она должна лежать, то можно можно сделать ленту, у вас есть какой-то перфоратор и пустая лента? |
Сейчас на форуме |
arif-ru
Advanced Member
Откуда: Москва. Всего сообщений: 1757 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 окт. 2007 |
alecv Не слишком оптимистичная идея, но подумаю, спасибо. Mihail-1 Спасибо, но М-6000, насколько я понимаю, мне не поможет. Ага, чистые ленты всё ещё жду, но не спеша, потому что пробивать на них всё равно пока нечего. |
arif-ru
Advanced Member
Откуда: Москва. Всего сообщений: 1757 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 окт. 2007 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 17 февраля 2011 22:24 Сообщение отредактировано: 17 февраля 2011 22:28
DUKER Я это описание прочитал, но не был уверен, что понял правильно - уж очень мало я знаю о перфоленте и уж слишком отличается этот текст от всего, что я знаю о носителях информации... В общем, сегодня весь день перечитывал описание и пытался написать перекодировщик, получилось очень похоже на то, что объяснили Вы - что очень радует. Спасибо! 76543.210----->Номера битов, 7 - "метки конца -начала трека" 65 - вроде не используеться, 4- запрет печати 0-3 данные 0****.***-----> Начало "Leader". Он любой длинны? То есть идёт любое количество 0x8000, потом Leader? 0****.*** 0****.*** 0****.*** 0****.*** 0****.*** 0****.*** 0****.***----->"Leader" 00000.000- 00000.000 |---->Начало кадра "Separator" - "разделитель" 00000.000- *****.***-----> "Record Mark" - "метка записи" - тоже часть начальной посылки *****.***------> Длинна блока данных старшие 4 бита Получаеться ******00 — 00000011 - или 3 Байта *****.*00------> Длинна блока данных младшие 4 бита *****.***- .....0 *****.**0 | ....1 ***0*.00* | ....6-----> Два байта адреса 016А ***00.*0*- .....А ***00.*0*--- А ***00.*00--- B Байт АВ ***00.0**--- C ***00.0*0--- D Байт CD ***00.00*--- E ***00.000--- F Байт EF ***00.0*0-| D Старшая част контрольной суммы ***0*.0*0-| 5 Младшая часть контрольной суммы Сумма D5=Syze+Adress_H+Adress_L+Data_1+Data2+Data3 (ваще это 2D5 но если складыват байтами, то выдет D5) 00000.000- Вроде, по описанию, складывать нужно, добавляя overflow к младшему биту - тогда должно D7 получиться. Опечатка? 00000.000 |---->Начало нового кадра снова "Separator" - "разделитель" 00000.000- *****.***----->"Record Mark" - "метка записи" - тоже часть начальной посылки *****.***Длинна блока тут она 0- это признак конечного кадра на ленте... *****.*** *****.***-.....0 Два байта адреса 016А *****.**0 |....1 В последнем кадре, это сатровый адрес программы... ***0*.00* |....6 ***00.*0*-.....А ***0*.00*-6 ***00.0**-С Кнотрольная сумма, тут 6С 0**0*.00*- вот этого не понял, мож комманда на запуск?? это "данные вне записи" Тот же вопрос... 0****.*** 0****.*** 0****.***И трейлер пошёл... 0****.*** 0****.*** 0****.*** 0****.*** 0****.*** "to control print supression" - в смысле, чтобы телетайп (через который эта лента может пробиваться и загружаться) не изводил бумагу зря, :-). Больше всего меня смущала идея, что, судя по отдельным фразам описания, лента считывается, потом из этих тетрад собираются нормальные байты и они записываются в ОЗУ - а если программа длиннее 128 байт, то она просто разбивается на несколько блоков и записывается по очереди. Спасибо, что подтвердили утверждение. Из описания возникает ощущение, что загруженная с ленты программа немедленно запускается. Но я не понял - что, запускается только первый блок? Если нет - как загрузчик узнаёт, что пора прекращать считывать программу и надо её запускать? По пустому блоку с адресом старта? Но, вроде, сказано, что он вообще не обязателен... И, ещё, "The binary paper tape, genetated by assembler" - я ведь правильно понял, что это машинный код, перекодированный в формат перфоленты? >У компьютера ПУЛЬТ есть?? вручную нельзя прописывать значения регистров? Пульт есть, но то ли он барахлит, то ли (что более вероятно) я снова не понял чего-то очевидного для любого, работавшего с машинами такого уровня - но заставить компьютер выполнять набранные на консоли комманды я не могу. У меня, к сожалению, нет ничего кроме самого компьютера и кипы книжек. Но перфосчитыватель телетайпа, насколько я понимаю, легко эмулируется с любого PC с COM портом, так что это проблемой быть не должно. По поводу самой программы - для начала хотелось бы запустить что-нибудь уровня "Hello, world!" - простейший его вариант занимает 5 байт, но их как-то надо загрузить в машину. P.S. Кстати, с январской отчётностью там, наконец, разобрались, так что в самое ближайшее время в лабораторию можно будет спокойно попасть. |
Mihail-1
Advanced Member
звание пока не придумал Откуда: Подмосковье Всего сообщений: 3839 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 авг. 2009 |
arif-ru arif-ru написал: А что молчите?Нужно устройство для набивания дыр? alecv Обращайтесь |
arif-ru
Advanced Member
Откуда: Москва. Всего сообщений: 1757 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 окт. 2007 |
Mihail-1 В основном, нужны программы, котрое нужно набивать, :-/. |
DUKER |
NEW! Сообщение отправлено: 18 февраля 2011 0:40
Ориентируясь на то как это сделано в Э60, я понимаю что блоки данных длинной до 128 байт, их может былть несколько. В зависимости от стартового адреса в начале блока и длинны загрузчик (или аппаратура, как у вас ХЗ) раскладывает это всё по ячейкам ОЗУ, а последний блок, с нулевой длинной запускает уже сам процессор со стартового адреса, так в Э60... тоже блоки, тоже длинна и адрес, тоже последний кадр -запускающий систему... комманду на запуск я бы просто сделал как тут, если у вас есть микро программа на 5 байт, просто скажите их мне, я сформирую образ ленты, и могу попробоват пробить на своём перфораторе, такая короткая лента может и из А3 получиться :-) А 0x80 в начале и конце , как я понимаю могут быть любой длинны....просто пустые поля, для удобства или синхронизации... Вопрос есть ли для вашего процессора "Абсолютный загрузчик" потому-что в Э60 разбором такого формата занимаеться предварительно загруженная программка... |
Сейчас на форуме |
DUKER |
NEW! Сообщение отправлено: 18 февраля 2011 0:43
У меня нет ленты, да и перфосчитыватель не подключен, программы пытаюсь забивать через пультовой терминал, вроде работает, но для больших программ это трудоёмко (но тоже решаеться, пытаюсь забивать данные взятые из образа ленты через терминал специальной программкой :-)) |
Сейчас на форуме |
Кай
Гость
Divine Assassin Откуда: извне (from beyond) Всего сообщений: 13709 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2010 |
...прошу прощения за оффтоп. На стойках ЧПУ основанных на "Э-60" первоначально загружалось из ПЗУ некое подобие "монитора". Для вызова считывания абсолютного загрузчика с перфоленты вводился адрес где находится программа обращения к ФСУ и однобуквенная команда. >8000 >G (или L). А абсолютный загрузчик делался на абсолютно дефицитной пластиковой ленте. |
DUKER |
NEW! Сообщение отправлено: 18 февраля 2011 1:02
Монитор вшит в процессорную плату (слава богу) "пультовой терминал" - вывод или в последовательный порт или через В1 на консул-260, как у меня. G и L это комманды встроенные в пультовой терминал на ПЗУ или программа со встроенным загрузчиком или ещё как-то это уже от реализации зависит У меня есть плата ПЗУ, на ней сервисная часть содержет абсолютный загрузчик. И пластиковой ленты чуток есть Ж-) |
Сейчас на форуме |
arif-ru
Advanced Member
Откуда: Москва. Всего сообщений: 1757 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 окт. 2007 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 февраля 2011 7:12 Сообщение отредактировано: 18 февраля 2011 12:08
Компьютер умеет грузиться как минимум с жёсткого диска и двух перфосчитывателей. Так что, думаю, при таком ассортименте абсолютный загрузчик должен быть. Программу, переводящую исполняемый код в код перфоленты я уже написал. Правда, hypertrm в моих умелых руках работать отказался, но, думаю, к понедельнику я найду другой эмулятор телетайпа и попробую запустить программу, следуя Вашим советам. |
<<Назад Вперед>> | Страницы: 1 2 | Печать |
Полигон-2 » Другие архитектуры » Формат загрузочной перфоленты? |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |