Мониторы, принтеры, клавиатуры, колонки и другие устройства
-
alecv
- Advanced Member
- Сообщения: 6993
- Зарегистрирован: 05.10.2004,11:13
- Откуда: Санкт-Петербург
-
Контактная информация:
-
Вклад в сообщество
Сообщение
alecv » 10.08.2017,17:30
Код: Выделить всё
sim> g
HALT instruction, PC: 000014 (000016)
sim> e sp
SP: 077470
sim> e 077470
77470: 016656
sim> e -m 016656
16656: 076013
sim>
Причем
Не помогает.
Если поставить машину типа LSI (set CPU 11/03, 11/23) то вылетает по переполнению стека
Буржуйский Бэйсик поновее, запускается на любой машине
Код: Выделить всё
sim> g
PDP-11 BASIC, VERSION 007A
*O Y
DO YOU NEED THE EXTENDED FUNCTIONS?
HIGH-SPEED READER/PUNCH?
SET UP THE EXTERNAL FUNCTION?
MEMORY?
READY
PRINT 2+2
4
alecv
-
Anonymous1
- Advanced Member
- Сообщения: 2727
- Зарегистрирован: 22.11.2011,09:41
- Откуда: Москва(Россия)
-
Вклад в сообщество
Сообщение
Anonymous1 » 10.08.2017,18:42
alecv писал(а):SP: 077470
sim> e 077470
77470: 016656
sim> e -m 016656
16656: 076013
Стек содержит адрес возврата, т.е. адрес инструкции, после той инструкции на которой трапнулось.
Anonymous1
-
alecv
- Advanced Member
- Сообщения: 6993
- Зарегистрирован: 05.10.2004,11:13
- Откуда: Санкт-Петербург
-
Контактная информация:
-
Вклад в сообщество
Сообщение
alecv » 10.08.2017,19:17
Anonymous В том месте, куда указывает возврат из стека - полная фигня.
Код: Выделить всё
sim> e sp
SP: 037470
sim> e 037470
37470: 016656
sim> e 016600/100
16600: 167142
16602: 005067
16604: 167146
16606: 012701
16610: 015014
16612: 005767
16614: 000634
16616: 003416
16620: 005067
16622: 051000
16624: 033756
16626: 050012
16630: 140356
16632: 057025
16634: 100000
16636: 140414
16640: 144025
16642: 141027
16644: 021025
16646: 110436
16650: 140024
16652: 176412
16654: 173406
16656: 076013
16660: 002036
16662: 012767
16664: 016676
16666: 161164
16670: 010167
16672: 175002
16674: 000000
16676: 016701
Она в принципе исполняемая, но смысла не имеет. Трапается по неизвестной команде только.
Может формат нашей перфоленты не такой. Хотя очень похож.
alecv
-
alecv
- Advanced Member
- Сообщения: 6993
- Зарегистрирован: 05.10.2004,11:13
- Откуда: Санкт-Петербург
-
Контактная информация:
-
Вклад в сообщество
Сообщение
alecv » 10.08.2017,20:11
Можно начать с начала.
Вот например код загрузчика, который грузит "абсолютный загрузчик"
Код: Выделить всё
sim> e -m 037744/32
37744: MOV 37776,R1
37750: MOV #352,R2
37754: INC (R1)
37756: TSTB (R1)
37760: BPL 37756
37762: MOVB 2(R1),37400(R2)
37770: INC 37752
37774: BR 37750
sim> e 037776
37776: 177550
Тут две маленькие хитрости. Код само-модифицирующийся, во-первых команда на 37770: INC 37752 - правит константу смещения прямо в команде, во вторых - "абсолютный загрузчик", лента "DEC-11-L2PC-PO.ptap" читаясь, постепенно затирает код. 37400+352=37752. Зачем такие навороты - не знаю.
Upd Вот здесь подробно разжевано как оно работает.
http://decuser.blogspot.ru/2015/12/anal ... -code.html
Если кратко - в результате с адреса 037500 сидит "абсолютный загрузчик"
alecv
-
Anonymous1
- Advanced Member
- Сообщения: 2727
- Зарегистрирован: 22.11.2011,09:41
- Откуда: Москва(Россия)
-
Вклад в сообщество
Сообщение
Anonymous1 » 10.08.2017,21:09
Т.е. у вас половина памяти? Абсолютный загрузчик садится в конец последнего банка, подразумевая, что грузить придётся с начала памяти и насколько её хватит.
Anonymous1
-
MM
- Advanced Member
- Сообщения: 5894
- Зарегистрирован: 02.08.2013,22:13
- Откуда: Павловский Посад Мск.обл.
-
Контактная информация:
-
Вклад в сообщество
Сообщение
MM » 10.08.2017,21:55
Я чет сразу так приметлил некотрый подвох :
форма ".BIN" обычно содержит первые 2 слова херни.
Так вот, по адресу 16656 сидит мусор, а исполняемый текст начинается с адреса 16662.
Разве только это не для полного суперпроца СМ1420 - там вообще много каких расширенных команд используется,
по аналогии с Интел 8080--->Пень.
Коллекционирование радиодеталей : http://collectingrd.kxk.ru/
MM
-
alecv
- Advanced Member
- Сообщения: 6993
- Зарегистрирован: 05.10.2004,11:13
- Откуда: Санкт-Петербург
-
Контактная информация:
-
Вклад в сообщество
Сообщение
alecv » 10.08.2017,22:03
Anonymous Почему половина ? Я же приводил ссылку, там вообше PDP-11/05 c 16KB, а загрузчик грузится 8К. В этом смысле ?
http://decuser.blogspot.ru/2015/12/pdp- ... d-way.html
Там же написано, как перетащить этот "загрузчик загрузчика" на другой объем памяти вместо 8К. А сам "абсолютный загрузчик" сделан в PIC-коде (position independent).
alecv
-
Anonymous1
- Advanced Member
- Сообщения: 2727
- Зарегистрирован: 22.11.2011,09:41
- Откуда: Москва(Россия)
-
Вклад в сообщество
Сообщение
Anonymous1 » 10.08.2017,22:30
MM писал(а):Так вот, по адресу 16656 сидит мусор,
Может, там текст? (Лень вбивать в файл для просмотра, у меня нет сейчас эмуляторов, с апреля 2016го, как накрылась дисковая полка, только живая машина, которую надо включать и грузить. :\
p.s. по 016656 как раз разумная команда, а вот до неё - какое-то расширение системы команд, похожее на fpa, но не уверен, может и для него это запрещённый диапазон кодов.
Anonymous1
-
MM
- Advanced Member
- Сообщения: 5894
- Зарегистрирован: 02.08.2013,22:13
- Откуда: Павловский Посад Мск.обл.
-
Контактная информация:
-
Вклад в сообщество
Сообщение
MM » 10.08.2017,22:36
Anonymous писал(а):
MM написал:
Так вот, по адресу 16656 сидит мусор,
Может, там текст? ...
Счас посмотрел в эмуле - это 100% мусор, даже не Радикс50.
Коллекционирование радиодеталей : http://collectingrd.kxk.ru/
MM