На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 59,
участников - 4 [ Greenland, Simon, razluka, Барабашка_Азимут_]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Главный раздел —› РПУ "Бригантина" 
Новая линейка радиостанций Hytera в нашем магазине


Hytera TC-320
руб.

Hytera TC-508
руб.

Hytera TC-580
руб.

Hytera PD-355
руб.

Hytera X1E
руб.
 Страница:  ««  1  2  3  4  5  ...  12  13  14  15  16  »»Поиск в теме
Автор Сообщение
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2998

Дата: 16 Ноя 2013 16:42:50 · Поправил: hs_19 (16 Ноя 2013 16:43:41) #  

darkstar
Может получится отключить штатный ЦП и память, а рулить ардуиной.

А смысл?
Чем штатный плох? Жрет конечно, как не в себя, но с задачей, на мой взгляд, справляется.
Им тоже управлять от компа несложно, - набор команд известен.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 16 Ноя 2013 22:21:06 · Поправил: darkstar (17 Ноя 2013 07:22:36) #  

Анализатор запустил, но что-то не так.
Видимо не хватает быстродействия.
Не могу получить стабильный результат считывания.
Писал на ардуине, это не ассемблер - видимо много лишних шагов.
Вот распиновка:
http://www.radioscanner.ru/uploader/2013/b10-37_pins.zip
А вот программа:
http://www.radioscanner.ru/uploader/2013/b01.zip
Реклама
Google
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 18 Ноя 2013 13:17:55 · Поправил: darkstar (18 Ноя 2013 13:18:08) #  

Может быть это потому, что я не сбрасывал Б10-37 перед чтением..?
Попробую вот так:
http://www.radioscanner.ru/uploader/2013/b01_2.zip
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 22 Ноя 2013 18:33:29 · Поправил: darkstar (22 Ноя 2013 19:41:13) #  

Ну вот, процессор сбрасывается, вроде как результат в большинстве случаев повторяется.
Но быстродействия не хватает. Иногда захват происходит уже при смене состояния на шине...
http://www.radioscanner.ru/uploader/2013/b02.zip

Теперь есть три варианта:
- написать то же самое на ассемблере, чтобы было побыстрее,
- взять пошустрее чип, лучше сразу 16-разрядный или выше, а то Атмеловские 8 бит на 16 мегагерцах не успевают.
- затормозить тактовую частоту проца на Б10-37.
Ну или же купить нормальный анализатор :)

P.S.
Нашёл у себя в закромах отладочную плату K-LM4F120XL с 32-разрядным ядром Cortex M4.
Работает на 80 МГц. Должно хватить :)
Программу напишу в Energia http://energia.nu/
Это тоже самое, что и Arduino http://arduino.cc/ , но работает с K-LM4F120XL.
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2998

Дата: 27 Ноя 2013 16:48:23 #  

Подниму. Подзаглохла тема.

darkstar некогда?
AVIAAMATOR
Участник
Offline3.9
с авг 2006
Сообщений: 962

Дата: 27 Ноя 2013 20:25:25 #  

Подзаглохла тема. darkstar некогда?
hs_19
Разбираться с ассемблером КМ1801ВМ1 ("Электроника-60") почти через 30 лет после выпуска изделия, да еще на уровне прошивок ПЗУ - "удовольствие" еще то :) Не торопите автора. Респект ему просто за то, что взялся за это все.
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2998

Дата: 27 Ноя 2013 21:14:52 · Поправил: hs_19 (27 Ноя 2013 21:19:33) #  

AVIAAMATOR
Разбираться с ассемблером КМ1801ВМ1 ("Электроника-60") почти через 30 лет после выпуска изделия, да еще на уровне прошивок ПЗУ - "удовольствие" еще то :)
Дык, я отлично это понимаю)
Я пытался своих знакомцев предпенсионного возраста, имеющих опыт работы еще с PDP_11, расшевелить на эту тему,-получил четкий, быстрый и однозначный отказ, равнозначный посылу в известные места.
Цели торопить не было, просто интересно, есть ли новости.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 29 Ноя 2013 06:23:12 · Поправил: darkstar (29 Ноя 2013 06:23:52) #  

Спасибо всем за интерес к этой теме :)
Хобби оно на то и хобби, что на него выделяется только свободное время.
В связи с рождением сына (25.11) и командировкой (26.11-28.11) тема немного подзастопорилась, но это не навсегда.
Код портируется с ардуины на энергию без проблем, это тот же Processing, надо только заново распаять жгут проводов...
В крайнем случае, даже если я не смогу продолжить эту работу, то приведённые выше материалы сильно облегчат жизнь следующему.
Всё будет, но не сразу :)
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2998

Дата: 29 Ноя 2013 10:39:36 #  

В связи с рождением сына (25.11)
Это намного важнее, Поздравляю!
nikifor_r
Участник
Offline1.8
с июл 2008
Москва
Сообщений: 324

Дата: 02 Дек 2013 01:08:32 · Поправил: nikifor_r (02 Дек 2013 01:09:09) #  

darkstar

Поздравляю!
Конкурс
Участник
Offline3.2
с июн 2008
Санкт-Петербург
Сообщений: 358

Дата: 03 Дек 2013 01:01:25 · Поправил: Конкурс (03 Дек 2013 01:03:13) #  

Наконец-то удалось составить окончательную картину формата передачи данных между РПУ и ПДУ. Подробности на этой странице:
http://www.brigantina-rpu.ru/page5.html
Далее дело за малым: наладить конвертер и сделать программу для ПК.
Конкурс
Участник
Offline3.2
с июн 2008
Санкт-Петербург
Сообщений: 358

Дата: 03 Дек 2013 01:03:58 #  

В связи с рождением сына (25.11)
Поздравляю!
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 10 Дек 2013 11:15:26 · Поправил: darkstar (10 Дек 2013 11:16:50) #  

Спасибо всем!
Принялся опять за LM4F120, а он оказывается на 16 МГц работает... Блин!
Мало того, там полноценных портов как таковых-то и нет - всего один восьми-битый, а остальные огрызки по 5...6 бит на порт. Дольше цифру собирать. Нафик!

Буду писать в ASM-е под Мегу. Хорошо, что не распаял :)
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 19 Дек 2013 11:45:10 · Поправил: darkstar (19 Дек 2013 11:52:46) #  

Что-то не движится работа с анализатором, поковыряю код...

Так, разобрал работу диспетчера.
Алгоритм прилагаю.

При вызовах TRAP 0... TRAP 10 получим указание на адрес в таблице 004 646, т.е. переход на 037 366. при этом в стеке будет лежать число 200.
команда - адрес в таблице -> адрес перехода - SP
TRAP 11 - 004 650 -> 011 264 - 201
TRAP 12 - 004 652 -> 011 100 - 202
TRAP 13 - 004 654 -> 016 620 - 203

TRAP 20 - 004 666 -> 005 064 - 210
TRAP 22 - 004 672 -> 004 352 - 212
TRAP 23 - 004 674 -> 004 362 - 213
TRAP 25 - 004 700 -> 011 112 - 215
TRAP 27 - 004 704 -> 007 576 - 217

TRAP 32 - 004 712 -> 005 016 - 222
TRAP 33 - 004 714 -> 005 026 - 223
TRAP 36 - 004 722 -> 004 002 - 226

TRAP 44 - 004 736 -> 004 404 - 234

TRAP 50 - 004 746 -> 005 110 - 240
TRAP 53 - 004 754 -> 031 514 - 243
TRAP 55 - 004 760 -> 002 610 - 245
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 19 Дек 2013 12:26:46 · Поправил: darkstar (20 Дек 2013 05:31:33) #  

Вот у нас случился вызов функции TRAP 044:
034 432: TRAP 044
Трап-диспетчер отработал и отправил нас на адрес 004 404 со значением 234 в стеке (следующим числом там лежит агрумет TRAP, а именно 044, ещё дальше - сохранённое содержимое R4 и R3).
Естественно, самое ближее содержимое стека - это 004 562 - адрес возврата из подпрограммы.

Странно - сразу же следующая функция...
004 404: TRAP 033
Ладно, переходим на 005 026.

005 026: MOV #000 001,@#060 200 ; пишем число 000 001 по адресу 060 200.
Тем самым загружаем в регистр управления блочной магистралью "1".
То есть, команда TRAP 033 подключает системную магистраль к блочной.
005 034: RTS PC ; возврат из подпрограммы

Возвращаемся:
004 406: MOV #000 000,@#060 023 ; пишем число 000 000 по адресу 060 023.
Это адрес платы управления блоком Б2-114 (плата 5931).
004 414 MOV #000 000,@#072 400 ; пишем число 000 000 по адресу 072 400.
Похоже, это один из адресов блока Б10-58, связан с управлением или контролем блока защиты Э10-28.1
levnov2906
Участник
Offline1.3
с дек 2008
Новосибирск
Сообщений: 119

Дата: 19 Дек 2013 12:42:09 #  

Станислав доброго, подскажи .

кишки бригантин видеть не доводилось, так только что в нете.

на каждом модуле стоит 580вв55? вот что интересно

с уважением Лев
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 19 Дек 2013 12:47:26 · Поправил: darkstar (19 Дек 2013 12:59:10) #  

Похоже, 580вв55 в Бригантине не содержится :)
Это же микросхема программируемого контроллера параллельного ввода-вывода.
Там такого нет. Есть последовательный ввод-вывод и там стоит 1002ХЛ1.

В каждом модуле стоят микросборки И160-035. А что там внутри - загадка :)
levnov2906
Участник
Offline1.3
с дек 2008
Новосибирск
Сообщений: 119

Дата: 19 Дек 2013 13:02:42 #  

понял / отталкиваюсь просто от 309го /пасиб за разъяснения
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 20 Дек 2013 06:07:12 · Поправил: darkstar (20 Дек 2013 06:20:42) #  

004 422: MOV #000 000,@#060 027 ; пишем число 000 000 по адресу 060 027.
Это обращение к блоку Б4-35 (демодулятор телефонных видов работ).
004 430: MOV #000 000,@#060 030 ; пишем число 000 000 по адресу 060 030.
Это обращение к блоку Б5-96 (демодулятор телеграфных видов работ).
004 436: MOV #000 000,@#060 031 ; пишем число 000 000 по адресу 060 031.
Это обращение к блоку Б1-29 (местная несущая и тональный гетеродин).
004 444: MOV #000 000,@#060 021 ; пишем число 000 000 по адресу 060 021.
Это обращение к блоку Б1-25 (мелкая сетка первого гетеродина).
004 452: MOV #000 000,@#074 000 ; пишем число 000 000 по адресу 074 000.
Это обращение к блоку Б1-28 (второй гетеродин и опорная частота).
004 460: MOV #000 000,@#060 022 ; пишем число 000 000 по адресу 060 022.
Это обращение к блоку Б1-24 (первый гетеродин).
004 466: MOV #000 000,@#060 026 ; пишем число 000 000 по адресу 060 026.
Это обращение к блоку Б2-59.2 (блок основной избирательности и усиления).

Похоже, функция TRAP 044 обнуляет все регистры в блоках. Что-то вроде инициализации.

004 474: TRAP 032; переходим на 005 016.

005 016: MOV #000 000,@#060 200 ; пишем число 000 000 по адресу 060 200.
Тем самым загружаем в регистр управления блочной магистралью "0".
То есть, команда TRAP 032 отключает системную магистраль от блочной.
005 024: RTS PC ; возврат на 004 476.

004 476: TRAP 022; переходим на 004 352.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 20 Дек 2013 06:29:20 · Поправил: darkstar (20 Дек 2013 07:29:23) #  

Функция TRAP 022:

004 352: MOV (R4),R4; прочитать число (адрес в регистре R4) и положить его в регистр R4
004 354: BIS R4,@#110 436; установить в "1" биты регистра R4. Маску взять по адресу 110 436
(единицы в маске указывают на изменяемый бит)
004 360: BR 004 370; переход на 004 370
004 362: MOV (R4),R4; прочитать число (адрес в регистре R4) и положить его в регистр R4
004 364: BIC R4,@#110 436; установить в "0" биты регистра R4. Маску взять по адресу 110 436
004 370: MOV @#110 436,R4 ; прочитать число по адресу 110 436 и положить его в регистр R4
004 374: COM R4; произвести инверсию битов регистра R4
004 376: MOV R4,@#060 240 ; записали число из регистра R4 в регистр 060 240 (управление панелью индикации)
Тут видимо прошла какая-то подготовка индикаторной панели, видимо зажглись или погасли лампочки "ГОТОВ", и прочее. Может инфа о том, какие именно лампы зажигать, хранится по адресу 110 436?
004 402: RTS PC ; возврат на 004 500.

004 500: BPT ; командное прерывание для отладки?...
очень странная команда.
Точно не знаю, но похоже она вызывает переход по вектору 000 014:
000 016 -> в РСП (регистр состояния процессора)
000 014 -> в СК (счётчик команд)
У нас в ПЗУ по этому адресу - нули...
Возможно тут есть какая-то хитрость, программная или аппаратная.
Оставим пока...

004 502: RTS PC ; возврат на 034 434.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 20 Дек 2013 07:21:45 · Поправил: darkstar (20 Дек 2013 07:30:36) #  

034 434: TRAP 023 ; переходим на 004 362.
То же, что и TRAP 022, но биты не устанавливаются, а обнуляются. См. сообщение выше.
034 436: RTS R3; вернуться из подпрограммы по адресу, хранящемуся в регистре R3
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 20 Дек 2013 08:01:40 · Поправил: darkstar (20 Дек 2013 12:16:33) #  

Так.
Существуют как минимум два варианта прошивок РПУ "Бригантина" :)
Один вариант выкладывал hs_19:
http://www.radioscanner.ru/uploader/2013/mlcth_19.zip
Другой вариант читал Конкурс:
http://www.radioscanner.ru/uploader/2013/d2930konkurs.zip

Похоже, что они оба верные, но различаются адресами таблицы векторов прерываний.
Сами подпрограммы - те же, но находятся на других адресах.
Возможно, со временем завод изменил схему и прошивку.
Или же исправил какие-то ошибки и недочёты...

Тут я разбирал прошивку от Конкурса.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 20 Дек 2013 08:09:36 · Поправил: darkstar (20 Дек 2013 11:46:53) #  

Посмотрим в прошивке от hs_19, куда приведёт прерывание по адресу 100:
000 100: 034 414
000 102: 000 200

034 414: TRAP 012
034 416: MOV #000 000,@#060 340

Так. Видимо я неправильно расшифровал машинный код и забыл, что по адресу 034 414 и в прошивке Конкурса есть команда TRAP 012.
Так что сначала выполним функцию TRAP 012 по адресу 011 100.

Функция TRAP 012:

011 100: JSR PC,@#002 672 ; перейти к подпрограмме на 002 672
011 104: .WORD 000 260 ; видимо, это агрумент для подпрограммы
011 106: ROR (SP) ; ячейку памяти, по адресу из SP, сдвинуть вправо через С (С->15-ый бит, 0-ой бит->С)
011 110: RTS PC ; возврат
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2998

Дата: 20 Дек 2013 08:46:55 #  

darkstar
Да, я думаю изменений и оптимизаций было много. Прошивки будут отличаться.
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 20 Дек 2013 12:01:38 · Поправил: darkstar (20 Дек 2013 12:17:01) #  

Подпрограмма 002 672:

002 672: MOV R0,-(SP) ; сохраняем регистры R0, R1, R2, R3, R5 в стеке
002 674: MOV R1,-(SP)
002 676: MOV R2,-(SP)
002 700: MOV R3,-(SP)
002 702: MOV R5,-(SP)
002 704: MOV @#110 344,-(SP) ; сохраняем число, находящееся по адресу 110 344, в стек
002 710: MOV 000 014(SP),R1 ; кладём в R1 адрес возврата из подпрограммы
002 714: MOV (R1)+,R0 ; кладём в R0 аргумент вызова подпрограммы
(число, идущее вслед за командой вызова) в нашем случае = 000 260
002 716: MOV R0,R5
002 720: MOV R0,R3
002 722: BIC #177 740,R3
002 726: BIT #020 000,R0
002 732: BEQ 002 754
002 734: CMP @#110 440,R3
002 740: BEQ 003 126
002 742: MOV #000 060,R0
002 746: SUB @#110 440,R3
002 752: BR 003 042
002 754: BIT #040 000,R0
002 760: BEQ 002 776
002 762: MOV 110 304,R2
002 766: ADD #000 002,000 014(SP)
002 774: BR 003 006
002 776: MOV (R1),R2
003 000: ADD #000 004,000 014(SP)
003 006: MOV R0,@#110 344
003 012: BIC #170 377,@#110 344
003 020: BIT #000 100,R0
003 024: BEQ 003 034
003 026: MOV #000 001,@#111 166
003 034: MOVB (R2)+,R0
003 036: BIC #177 400,R0
003 042: TRAP 055; вызов функции TRAP 055
003 044: DEC R3
003 046: BEQ 003 070
003 050: BIT #000 200,R5
003 054: BNE 003 042
003 056: BIT #010 000,R5
003 062: BEQ 003 034
003 064: INC R2
003 066: BR 003 034
003 070: BIT #000 040,R5
003 074: BEQ 003 126
003 076: BIT #100 000,R5
003 102: BEQ 003 112
003 104: MOV #140 000,R3
003 110: BR 003 116
003 112: MOV #100 000,R3; R3 = 100 000
003 116: MOV R3,@#060 100 ; отправить R3 на индикаторы
003 122: MOV R3,@#111 160 ; отправить R3 в ячейку с адресом 111 160
003 126: MOV (SP)+,@#110 344 ; восстановить из стека число по адресу 110 344
003 132: MOV (SP)+,R5 ; восстанавливаем регистры R5 R3, R2, R1, R0 из стека
003 134: MOV (SP)+,R3
003 136: MOV (SP)+,R2
003 140: MOV (SP)+,R1
003 142: MOV (SP)+,R0

003 144: RTS PC ; возврат

Выглядит прям как фирмварь третьего терминатора :)
hs_19
Участник
Offline5.7
с мая 2004
СПб
Сообщений: 2998

Дата: 20 Дек 2013 15:15:04 #  

darkstar
Выглядит прям как фирмварь третьего терминатора :)
После перезагрузки?)
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 23 Дек 2013 07:12:43 · Поправил: darkstar (23 Дек 2013 11:04:35) #  

Функция TRAP 055:

002 610: MOV R0,-(SP) ; сохраняем регистр R0 в стеке
002 612: CMP @#110 344,#004 400 ; сравниваем число в ячейке памяти 110 344 с числом 004 400
002 620: BMI 002 626 ; если число по адресу 110 344 меньше чем 004 400, то перейти на 002 626
002 622: CLR @#111 012 ; очистить ячейку по адресу 111 012
002 626: CMP #000 011,R0 ; сравнить R0 с числом 000 011
002 632: BMI 002 640 ; если R0 больше чем 000 011, то перейти на 002 640
002 634: ADD #000 060,R0 ; R0 = R0 + 000 060
002 640: BIS @#110 344,R0 ; установить в единицу биты R0 по маске из ячейки 110 344
002 644: MOV R0,@#060 100 ; положить содержимое R0 в регистр индикации по адресу 060 100
Эта информация будет отображаться на индикаторах
002 650: ADD #000 400,@#110 344 ; прибавить 000 400 к содержимому ячейки по адресу 110 344
002 656: MOV (SP)+,R0 ; восстановить значение R0 из стека
002 660: JSR PC,@#016 374 ; см. выше
002 664: .WORD 000 077
002 666: WAIT ; ожидаем прерывание
002 670: RTS PC ; возврат

Интересно, что же за число такое хранится в ячейке 110 344 ?
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 23 Дек 2013 07:33:34 · Поправил: darkstar (23 Дек 2013 12:26:18) #  

Может попробовать с другого конца?
Например, мы повернули валкодер и ...

Блок Б10-38 формирует сигнал "VIRQ кпн", который получает блок Б10-82, и сам формирует запрос на прерывание для ЦП (сигнал "VIRQ").
Если прерывание разрешено, то ЦП отвечает сигналами "IAKO" и "DIN".
При поступлении этих сигналов, блок Б10-82 выставляет адрес прерывания 000 340.

Итак, прерывание 000 340.
000 340: 001 142
000 342: 000 200

Переходим на обработчик прерывания 340 по адресу 001 142:

001 142: MOV @#060 040,R0 ; читаем регистр 060 040 в R0 (чтение столбцов при сканировании клавиатуры)
001 146: BIT #100 200,R0 ; проверка последних битов младшего и старшего байтов слова (т.е. маска 1000 0000 1000 0000) это линии KDA7 и KDA15, при повороте валкодера изменяются именно они.
001 152: BEQ 001 234 ; если ни один из этих битов не установлен, то перейти на 001 234
001 154: BIC #077 577,R0 ; если же какой-то из битов (или оба) установлены, то сбросить все остальные биты, кроме 7 и 15 (маска 0111 1111 0111 1111)
001 160: CMP R0,#100 200 ; сравнить результат с 1000 0000 1000 0000
001 164: BEQ 001 230 ; если установлены оба бита, то перейти на 001 230
Если установлен только один из битов, то:
001 166: TST @#110 766 ; проверить, что за число лежит в ячейке 110 766
001 172: BNE 001 230 ; если это число не равно нулю, то перейти на 001 230
001 174: TST @#110 674 ; проверить, что за число лежит в ячейке 110 764
001 200: BNE 001 230 ; если это число не равно нулю, то перейти на 001 230
001 202: TST @#110 710 ; проверить, что за число лежит в ячейке 110 710
001 206: BNE 001 230 ; если это число не равно нулю, то перейти на 001 230
Если же все эти числа не равны нулю, то:
001 210: MOV @#110 570,R4 ; положить число из ячейки 110 570 в регистр R4
001 214: CMP #000 004,R4 ; сравнить это число с числом 000 004
001 220: BMI 001 230 ; если R4 больше 004, то перейти на 001 230
001 222: ASL R4 ; если же R4 меньше или равно 004, то сдвинуть влево через С (умножить на 2)
001 224: JSR PC,@011 340(R4) ; перейти к подпрограмме по адресу 011 340, адрес возврата (001 230) сохранить в регистре R4, а PSW - в стеке

001 230: JMP @#001 010 ; переход на 001 010

Процедура выхода из прерывания клавиатура/валкодер:
001 010: MOV #000 377,@#060 040 ; вписать в регистр клавиатуры 060 040 число 000 377 (0000 0000 1111 1111)
001 016: RTI ; выход из прерывания
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 23 Дек 2013 08:21:12 · Поправил: darkstar (23 Дек 2013 11:52:23) #  

011 340: MOV -(R1),@(SP)+ ; R1=R1-2, число из ячейки с адресом R1 скопировать ячейку по адресу, который указан в ячейке с адресом из стека, SP=SP+2
011 342: MOV @-(R3),013 300(R4) ; R3=R3-2, число из ячейки, адрес которой указан в ячейке с адресом R3 скопировать в ячейку по адресу 013 300+R4
011 346: MOV @(R0)+,(SP) ; число из ячейки, адрес которой указан в ячейке с адресом R0 скопировать ячейку по адресу из стека, R0=R0+2
011 350: MOV (R3),@020 037(SP) ; число из ячейки по адресу R3 скопировать в ячейку по адресу 020 037+(SP)
011 354: MOVB -(R3),(R4)+ ; R3=R3-2, число из ячейки по адресу R3 скопировать в ячейку по адресу R4, для приёмника все биты старшего байта устанавливаются равными старшему биту младшего байта, R4=R4+2
011 356: BEQ 011 370 ; если Z=1, то перейти на 011 370
011 360: MOV R0,@#114 324 ; положить содержимое регистра R0 в ячейку по адресу 114 324
011 364: CLR @#110 574 ; очистить ячейку по адресу 110 574
011 370: INC @#110 574 ; число в ячейке по адресу 110 574 увеличить на 1
011 374: RTS PC; возврат из подпрограммы
darkstar
Участник
Offline2.8
с янв 2007
Сибирь
Сообщений: 446

Дата: 23 Дек 2013 08:37:43 · Поправил: darkstar (23 Дек 2013 12:41:15) #  

001 234: JSR PC,@#001 612 ; перейти к подпрограмме по адресу 001 612
001 240: TST R5 ; проверить R5
001 242: BNE 001 520 ; если R5 не равен нулю, то перейти на 001 520
001 244: MOV #000 377,@#060 040 ; записать в регистр 060 040 число 000 377 (0000 0000 1111 1111)
001 252: TST @#117 262 ; проверить ячейку по адресу 117 262
001 256: BEQ 001 270 ; если это число равно нулю, то перейти на 001 270
001 260: JSR PC,@#010 644; вызов подпрограммы по адресу 010 644
001 264: JMP 000 764; переход на 000 764 ?
001 270: TST @#110 766 ; проверить ячейку по адресу 110 766
001 274: BNE 001 520 ; если это число не равен нулю, то перейти на 001 520
001 276: TST @#110 674 ; проверить ячейку по адресу 110 674
001 302: BEQ 001 326 ; если это число равно нулю, то перейти на 001 326
001 304: CMP R0,#000 117 ; сравнить R0 и число 000 117
001 310: BNE 001 520 ; если R0 не равен 000 117, то перейти на 001 520
001 312: TRAP 050 ; вызов функции TRAP 050
001 314: CLR @#110 674 ; очистить ячейку по адресу 110 674
001 320: TRAP 023 ; вызов функции TRAP 023
001 322: BGE 001 324 ; если результат сравнения ? больше или равно, перейти на 001 324
001 324: BR 001 520 ; переход на 001 520
001 326: TST @#110 710 ; проверить ячейку по адресу 110 710
001 332: BEQ 001 344 ; если это число равно нулю, то перейти на 001 344
001 334: CMP R0,#000 132 ; сравнить R0 и число 000 132
001 340: BNE 001 520 ; если R0 не равен 000 132, то перейти на 001 520
001 342: BEQ 001 440 ; если R0 = 000 132, то перейти на 001 440
001 344: TST @#114 330 ; проверить ячейку по адресу 114 330
001 350: BEQ 001 440 ; если это число равно нулю, то перейти на 001 440
001 352: CMP R0,#000 106 ; сравнить R0 и число 000 106
001 356: BEQ 001 440 ; если R0 = 000 106, то перейти на 001 440
001 360: CMP R0,#000 127 ; сравнить R0 и число 000 127
001 364: BEQ 001 440 ; если R0 = 000 127, то перейти на 001 440
001 366: CMP R0,#000 130 ; сравнить R0 и число 000 130
001 372: BEQ 001 440 ; если R0 = 000 130, то перейти на 001 440
001 374: CMP R0,#000 072 ; сравнить R0 и число 000 072
001 400: BMI 001 440 ; если R0 меньше 000 072, то перейти на 001 440
001 402: TST @#114 322 ; проверить ячейку по адресу 114 322
001 406: BEQ 001 520 ; если это число равно нулю, то перейти на 001 520
001 410: CMP R0,#000 107 ; сравнить R0 и число 000 107
001 414: BEQ 001 440 ; если R0 = 000 107, то перейти на 001 440
001 416: CMP R0,#000 113 ; сравнить R0 и число 000 113
001 422: BEQ 001 440 ; если R0 = 000 113, то перейти на 001 440
001 424: CMP R0,#000 114 ; сравнить R0 и число 000 114
001 430: BEQ 001 440 ; если R0 = 000 114, то перейти на 001 440
001 432: CMP R0,#000 125 ; сравнить R0 и число 000 115
001 436: BNE 001 520 ; если R0 не равен 000 125, то перейти на 001 520
001 440: CMP R0,#000 060 ; сравнить R0 и число 000 060
001 444: BMI 001 520 ; если R0 меньше 000 060, то перейти на 001 520
001 446: CMP #000 071,R0 ; сравнить R0 и число 000 071
001 452: BMI 001 466 ; если R0 больше 000 071, то перейти на 001 466
001 454: SUB #000 060,R0 ; R0 = R0 - 000 060
001 460: JSR PC,@#005 176 ; вызов подпрограммы по адресу 005 176
001 464: BR 001 520 ; перейти на 001 520
001 466: CMP #000 132,R0 ; сравнить R0 и число 000 132
001 472: BMI 001 520 ; если R0 больше 000 132, то перейти на 001 520
001 474: JSR PC,@#030 132 ; вызов подпрограммы по адресу 030 132
001 500: JSR PC,@#030 162 ; вызов подпрограммы по адресу 030 162
001 504: MOV R0,R4 ; R4 = R0
001 506: SUB #000 100,R4 ; R4 = R4 - 000 100
001 512: ASL R4 ; сдвинуть R4 влево через С (R4 = R4 * 2)
001 514: JSR PC,@001 524(R4) ; вызов подпрограммы по адресу 001 524, адрес возврата хранится в R4
001 520: JMP @#001 010 ; перейти на 001 010
Реклама
Google
 Страница:  ««  1  2  3  4  5  ...  12  13  14  15  16  »» 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.057; miniBB ®