Обновил фирмваре до 1.0.4. Засунул новую флешку 1Gb с дисками из AZwINI.zip
Теперь горит зеленая лампочка на контроллере.
**** Доступное ОЗУ - 1М *
@ 001000
@
Набираю команду 177226G, выскакивает зацикленная строчка: @G000002
Набираю 17777220/
17777220/000200
17777222/000000
17777224/000777
17777226/014700
17777230/BUS ERROR
Блин, чудеса! А что говорит SPEED.SAV ?
Может быть 177224G поможет?
Как вариант, вынуть MY, вынуть КЖД и воткнуть AZ в верхнее левое гнездо. Когда заведется, будем думать дальше.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
У меня на HDD не оказалось SPEED.SAV
Вытащил, вставил в верхнее левое гнездо. Горит зеленая лампочка. Набираю команду 177224G, выскакивает зацикленная строчка: @G000002 (как и в случае 177226G)
А что находится с адреса 10000 ? После неудачного запуска загрузки остановить машинку кнопкой ОСТ и подать команду 10000/ а затем с десяток ПС.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Скрытый текст
[свернуть]
Последний раз редактировалось tc002; 28.08.2019 в 05:58.
Так. Во-первых, возьми картинку под спойлер.
Во-вторых, я никак не мог понять, что значит "выскакивает зацикленная строчка: @G000002", оказывается, машинка просто вылетает в останов по нулевому адресу (там действительно ноль, если его рассматривать, как команду, то это команда HALT), а ты зачем-то пытаешься еще раз нажать G (то есть 0G), то есть запустить машинку с нулевого адреса.
Но начало программы загрузчика вошло правильно. Под спойлером полный текст загрузчика, сравни его весь, дальше будем делать выводы. Апострофом после содержимого ячейки MACRO помечает те ячейки, содержимое которых линкер изменит (в данном случае добавит 10000). К строке 32 dskbot=.+2 это не относится - это не содержимое ячейки, а значение, присвоенное метке dskbot, т.е. 106 (10106, в эту ячейку загрузчик должен положить номер привода AZ, с которого надо грузиться и это последний код, присылаемый с контроллера).
Если код влетел полностью, открой R6 и глянь, что лежит в ячейке с этим адресом (команда R6/ и затем клавиша @), там должен быть алрес, где прервалась программа загрузчика. Если же загрузчик вошел не полностью, глянь R0, в нем должен быть адрес первой ячейки, которая не получена от AZ.Скрытый текст
Код:1 000006 R6 = %6 2 000007 R7 = %7 3 .ENABL LC 4 .DSABL GBL 5 6 7 000000 000240 START: nop 8 000002 106427 mtps #340 000340 9 000006 012706 mov #START,R6 000000' 10 000012 012704 MOV #177220,R4 177220 11 000016 005024 CLR (R4)+ 12 000020 010405 MOV R4,R5 13 000022 016700 mov dskbot,r0 000060 14 000026 032700 bit #177770,r0 177770 15 000032 001401 beq 4$ 16 000034 000000 0 17 000036 4$: 18 000036 010015 mov r0,@R5 19 000040 012744 MOV #1,-(R4) 000001 20 000044 005015 CLR @R5 21 000046 012714 MOV #2,@R4 000002 22 000052 012714 MOV #5,@R4 000005 23 000056 005002 clr R2 24 000060 012701 MOV #400,R1 000400 25 000064 105714 1$: tstb @R4 26 000066 100376 BPL 1$ 27 000070 012714 mov #15,@R4 000015 28 000074 011522 2$: MOV @R5,(R2)+ 29 000076 077102 SOB R1,2$ 30 000100 000240 nop 31 000102 005007 CLR R7 32 000106' dskbot = .+2 33 000000' .end START[свернуть]
R6 и R7 вместо SP и PC я использую по привычке, оставшейся с перфоленточной ОС - тамошний Перемещающий Ассемблер не имел предопределений регистров, приходилось каждую программу начинать с их определения, т.е. R0=%0 ... R5=%5, оставшиеся два регистра я с разгона пометил, как R6 и R7 (ИМХО, я и сокращений тогда этих не знал - SP и PC), и привык к этому - даже сейчас, нужно обратиться к PC, руки сами пишут R7.![]()
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Не-не, я не нажимаю G. Она сама очень быстро буквально на каждой новой строчке рисует @G000002
Скрытый текст
[свернуть]
Но, когда я нажимаю Стоп Кадр на клавиатуре, то видно что там оказывается чередуется 000002 и G (которая вероятно сливается в @G000002, если без стоп кадра)
@000002
@G
@000002
@G
Я предлагаю в личке договорится на Скайп конференс звонок, и вместе debug step by step.
hobot(06.09.2019)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)