Формат загрузочной перфоленты?

ЭВМ и ПЭВМ, производившиеся в СССР и странах СЭВ
Аватара пользователя
arif-ru
Advanced Member
Сообщения: 1779
Зарегистрирован: 08.10.2007,17:35
Откуда: Москва, me[a]alpe.net
Контактная информация:

Конкурсы

Вклад в сообщество

Формат загрузочной перфоленты?

Сообщение arif-ru » 16.02.2011,11:17

Я тут продолжаю копаться в Плюримате (предыдущая тема, ещё одна). Найти софт или починить телетайп пока не получилось, зато я разобрался в системе комманд и написал ассемблер для его процессора.

К сожалению, оказалось, что я не могу запустить даже "Hello, world!", потому что не знаю, как сделать из кода программы код загрузочной перфоленты.
Возможно, кто-нибудь из собравшихся здесь серьёзных специалистов сможет помочь чайнику, подсказав, как обычно устроенны загрузочные перфоленты?

На данный момент уже примерно понятно, как нужно запускать готовую перфоленту;
по её форматированию же нашлось только это: http://www.arif-ru.narod.ru/tmp/69-1-08 ... _Jul69.pdf

Аватара пользователя
Дениска
Advanced Member
Сообщения: 1802
Зарегистрирован: 06.08.2009,15:13
Откуда: Хабаровск
Контактная информация:

Вклад в сообщество

Сообщение Дениска » 16.02.2011,12:36

arif-ru К сожелению на данном форуме найти таких спецов будет крайне сложно , тут наверное надо Америкосов трести , вроде-же ихние изделие.
http://xkm.su/ Хабаровский Компьютерный Музей

Аватара пользователя
arif-ru
Advanced Member
Сообщения: 1779
Зарегистрирован: 08.10.2007,17:35
Откуда: Москва, me[a]alpe.net
Контактная информация:

Конкурсы

Вклад в сообщество

Сообщение arif-ru » 16.02.2011,12:46

Увы, знатоков этой конкретной фирмы в Америке и Европе примерно столько же, сколько и в России...

Я сейчас больше надеюсь на то, что кто-нибудь из людей, запускавших с перфоленты другие компьютеры, посмотрит PDF и объяснит, как загружать Плюримат по аналогии с известной ему машиной.

Аватара пользователя
alecv
Advanced Member
Сообщения: 6993
Зарегистрирован: 05.10.2004,11:13
Откуда: Санкт-Петербург
Контактная информация:

Вклад в сообщество

Сообщение alecv » 16.02.2011,13:39

arif-ru С трудом вспоминаю как генерил перфоленты на RT-11 под LINK11.....

Не факт что формат совпадет, но по крайней мере доки по RT-11 можно еще найти.

Mihail-1
Advanced Member
Сообщения: 5218
Зарегистрирован: 17.08.2009,19:21
Откуда: Подмосковье

Вклад в сообщество

Сообщение Mihail-1 » 16.02.2011,21:37

У меня есть перфоленты от М-6000 в родных пластиковых коробочках, каждая и приклееной биркой с названием.
P.S. Про чистые рулоны не забыл, все времени нет съездить.
1.старая менялка с моими интересами http://www.phantom.sannata.ru/forum/index.php?t=5186&&st=0 2.свежий пополняемый обменник http://www.phantom.sannata.ru/forum/index.php?t=16788&a=stdforum_view&o=&st=0

Гость

Сообщение Гость » 17.02.2011,15:13

В доке вроде всё описано...
По сути формат не сильно отличаеться от формата лент Э-60, только битов тут 6 а не 8, получаеться по две строки на байт, а не по одной как на 8-битной ленте....
там дан пример для программы длинной в 3Байта, запись состоит из двух кадров иещё "Начала - Leader" и "Конца - Trailer"
Два кадра:
[font=Courier]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****.***[/font]
4-й бит формируеться если число записанное первыми 4-мя битами больше 4, "to control print supression" - наверно чтоб лента не рвалась???
А для составления ленты нужно будет вашу программу перегнать в бинарный вид, представить себе как она должна быть расположена в памяти, разделить на небольшие блоки, и представить в этом формате....
У компьютера ПУЛЬТ есть?? вручную нельзя прописывать значения регистров?

Гость

Сообщение Гость » 17.02.2011,15:34

Если у вас есть готовая программа, и вы знаете где в памяти, по каким адресам она должна лежать, то можно можно сделать ленту, у вас есть какой-то перфоратор и пустая лента?

Аватара пользователя
arif-ru
Advanced Member
Сообщения: 1779
Зарегистрирован: 08.10.2007,17:35
Откуда: Москва, me[a]alpe.net
Контактная информация:

Конкурсы

Вклад в сообщество

Сообщение arif-ru » 17.02.2011,20:55

alecv
Не слишком оптимистичная идея, но подумаю, спасибо.

Mihail-1
Спасибо, но М-6000, насколько я понимаю, мне не поможет.
Ага, чистые ленты всё ещё жду, но не спеша, потому что пробивать на них всё равно пока нечего.

Аватара пользователя
arif-ru
Advanced Member
Сообщения: 1779
Зарегистрирован: 08.10.2007,17:35
Откуда: Москва, me[a]alpe.net
Контактная информация:

Конкурсы

Вклад в сообщество

Сообщение arif-ru » 17.02.2011,21:24

DUKER
Я это описание прочитал, но не был уверен, что понял правильно - уж очень мало я знаю о перфоленте и уж слишком отличается этот текст от всего, что я знаю о носителях информации...
В общем, сегодня весь день перечитывал описание и пытался написать перекодировщик, получилось очень похоже на то, что объяснили Вы - что очень радует. Спасибо!

[font=Courier]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****.***[/font]

"to control print supression" - в смысле, чтобы телетайп (через который эта лента может пробиваться и загружаться) не изводил бумагу зря, :-).

Больше всего меня смущала идея, что, судя по отдельным фразам описания, лента считывается, потом из этих тетрад собираются нормальные байты и они записываются в ОЗУ - а если программа длиннее 128 байт, то она просто разбивается на несколько блоков и записывается по очереди. Спасибо, что подтвердили утверждение.
Из описания возникает ощущение, что загруженная с ленты программа немедленно запускается. Но я не понял - что, запускается только первый блок? Если нет - как загрузчик узнаёт, что пора прекращать считывать программу и надо её запускать? По пустому блоку с адресом старта? Но, вроде, сказано, что он вообще не обязателен...
И, ещё, "The binary paper tape, genetated by assembler" - я ведь правильно понял, что это машинный код, перекодированный в формат перфоленты?

>У компьютера ПУЛЬТ есть?? вручную нельзя прописывать значения регистров?
Пульт есть, но то ли он барахлит, то ли (что более вероятно) я снова не понял чего-то очевидного для любого, работавшего с машинами такого уровня - но заставить компьютер выполнять набранные на консоли комманды я не могу.

У меня, к сожалению, нет ничего кроме самого компьютера и кипы книжек.
Но перфосчитыватель телетайпа, насколько я понимаю, легко эмулируется с любого PC с COM портом, так что это проблемой быть не должно.
По поводу самой программы - для начала хотелось бы запустить что-нибудь уровня "Hello, world!" - простейший его вариант занимает 5 байт, но их как-то надо загрузить в машину.

P.S. Кстати, с январской отчётностью там, наконец, разобрались, так что в самое ближайшее время в лабораторию можно будет спокойно попасть.

Mihail-1
Advanced Member
Сообщения: 5218
Зарегистрирован: 17.08.2009,19:21
Откуда: Подмосковье

Вклад в сообщество

Сообщение Mihail-1 » 17.02.2011,22:10

arif-ru
arif-ru писал(а):alecv

Ага, чистые ленты всё ещё жду, но не спеша, потому что пробивать на них всё равно пока нечего.
А что молчите?Нужно устройство для набивания дыр?
Обращайтесь :biggrin:
1.старая менялка с моими интересами http://www.phantom.sannata.ru/forum/index.php?t=5186&&st=0 2.свежий пополняемый обменник http://www.phantom.sannata.ru/forum/index.php?t=16788&a=stdforum_view&o=&st=0

Аватара пользователя
arif-ru
Advanced Member
Сообщения: 1779
Зарегистрирован: 08.10.2007,17:35
Откуда: Москва, me[a]alpe.net
Контактная информация:

Конкурсы

Вклад в сообщество

Сообщение arif-ru » 17.02.2011,22:30

Mihail-1
В основном, нужны программы, котрое нужно набивать, :-/.

Ответить