nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 08:29



Reply to topic  [ 270 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15 ... 18  Next
Отладочный модуль на К1801ВМ1 
Author Message
Banned
User avatar

Joined: 02 Feb 2014 08:29
Posts: 102
Location: Павловский Посад
Reply with quote
Очень интересная платка !
А никак нельзя фотку залить на :
http://itmages.ru/
А то Радикал для сотовых модемов платный - 20 руб в сутки...

_________________
Коллекционирование радиодеталей : http://collectingrd.kxk.ru/


17 Jul 2015 11:05
Profile WWW
Senior

Joined: 07 Dec 2010 02:51
Posts: 157
Location: РФ г.КЕМЕРОВО
Reply with quote
Ой,я по привычке :oops:
Вот залил:
ImageImage

Фотки мне прислали,плата попозже приедет

_________________
В байте 8 бит,а в каждом четвёртом 9 ! ! ! Потомушта он высокосный ! ! !


17 Jul 2015 11:54
Profile
Senior

Joined: 07 Dec 2010 02:51
Posts: 157
Location: РФ г.КЕМЕРОВО
Reply with quote
Вот дампы с платы на ВМ1
ПЗУ с надписью 00100-http://rghost.ru/7hfqMVmlx,
ПЗУ с надписью 00101-http://rghost.ru/894SZqcf5.
Может кто сможет их объединить и просмотреть?

_________________
В байте 8 бит,а в каждом четвёртом 9 ! ! ! Потомушта он высокосный ! ! !


14 Nov 2015 03:01
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Коллега SAA косвенным образом подтолкнул вспомнить, что мы тут пытались сконструировать...
Я полистал топики, посвященные 1801ВМхх, и обнаружил, что многие схемы по внешним ссылкам завяли. :osad:

Здесь были сообщения, что в исходной схеме есть ошибки/опечатки, в частности в шине отсутствует
вывод 18. Я не знаю, насколько критично его отсутствие, но я тут позанимался исходной схемой и
нашел, как мне кажется, ошибку/опечатку более серьёзную:
Attachment:
MPSS_86_2_34_.gif
MPSS_86_2_34_.gif [ 98.81 KiB | Viewed 8163 times ]

Регистры вывода D15, D16 сбрасываются сигналом SEL2 (19), но этот же сигнал SEL2 участвует
в формировании фронта записи в эти регистры.
Поскольку SEL2 задает адрес обращения к регистрам ВВ, то они всегда будут сброшены в 0.
Мне кажется, на вход сброса этих регистров надо подать сигнал INIT (17) - сбросить их в 0 один раз
при старте процессора. Тем более, что вывод INIT уходит в шину под номером (17), и больше нигде
не выходит, либо я не нашел.

Также прикинул я карту памяти этого устройства со всей его неполной дешифрацией:
Attachment:
MPSS_86_2_34M.gif
MPSS_86_2_34M.gif [ 12.4 KiB | Viewed 8163 times ]

Ну и для этого пришлось подробно прочитать как работает ИС К588ВГ2, кто не читал, - весьма-таки интересно! 8)
 Контроллер ЗУ К588ВГ2
Attachment:
588VG2.gif
588VG2.gif [ 50.53 KiB | Viewed 8163 times ]


В общем лично у меня план следующий: адаптировать данную схему аппаратно к 1801ВМ2, но программный
Монитор использовать из этого журнала (MPSS_86_2_с.37).
Меня привлекает, что он разработан как раз для исследования ЦПУ 1801ВМхх, и не привязан ни к каким
конкретным компьютерам, типа БК, ДВК, УКНЦ и т.п.
Тем более, как я прочитал, Монитор написан авторами, как перемещаемая программа, т.е. его можно
запускать с любых адресов в пространстве памяти ЦПУ, практически не правя код.

_________________
iLavr


31 Dec 2017 12:01
Profile
Senior

Joined: 12 Jul 2016 21:30
Posts: 136
Reply with quote
Lavr wrote:
Коллега SAA косвенным образом подтолкнул вспомнить, что мы тут пытались сконструировать...

В общем лично у меня план следующий: адаптировать данную схему аппаратно к 1801ВМ2, но программный
Монитор использовать из этого журнала (MPSS_86_2_с.37).


У меня похожие планы, Lavr, вот только доведу до завершения макет с Вашим Z84C0020 :) и перейду к 1806. С одним различием что я обвязку засунул в CPLD.

Намедни вместе с одним человеком прикидывал узлы выработки RPLY и записи байт-слово. У 1806 только один вывод SEL!

В дешифраторе делал 32Кслов но это не принципиально можно защелкивать на JK-триггере отдельно и тогда будет 64Кслов.
 
Attachment:
Дешифратор адреса.jpg
Дешифратор адреса.jpg [ 58.5 KiB | Viewed 8097 times ]



А этот узелок, подсмотрел в Вашей схеме, в принципе лаконичней некуда.
 
Attachment:
Формирование RPLY.jpg
Формирование RPLY.jpg [ 45.74 KiB | Viewed 8097 times ]



Насчет AR надо подумать.


09 Jan 2018 22:57
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
...но программный Монитор использовать из этого журнала (MPSS_86_2_с.37).

Я сейчас как раз планирую погонять этот Монитор под отладчиком в эмуляторе БК-0010.
Поэтому и озадачился документацией на БК-шку...
Судя по карте памяти БК-0010, это должно получиться, коли Монитор перемещаемый.

Всё же оцифровывали код Монитор-а мы с очень грязных сканов, и хотя проверяли тут втроем,
ошибки вполне могут быть. :-?

Ну и заодно поучусь ассемблеру 1801ВМх... :wink:

_________________
iLavr


09 Jan 2018 23:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
..выкладываю бинарники, чтобы было чего "диз..." 8)

Монитор - старший-младший: MONITOR_H-L.BIN

Монитор - младший-старший: MONITOR_L-H.BIN
(мне кажется, этот порядок нужен для эмулятора)

Да, порядок нужен Low-High (если кто знал, не кидайтесь камнями: все промолчали, а я - не знал... :wink: )
Проверил на эмуляторе БК-0010:
Attachment:
LowHi.gif
LowHi.gif [ 8.83 KiB | Viewed 8081 times ]

Загружаемая программа в WINHEX (первые 4 байта - адреса посадки, кстати &o1000 = 200h = 00 02)
Далее - Дамп памяти из эмулятора БК-0010 и первые 3 слова программы - в конвертере.

_________________
iLavr


10 Jan 2018 08:12
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Декомпилировал заново программу-Монитор дизассемблером от эмулятора БК-0010.

 MONITOR_1986_02_P37
Code:
0010000          MOV        13772, R0; Адрес ОЗУ монитора
0010004          MOV        R0, SP
0010006          MOV        #4, R5
0010012          MOV        PC, (R5)
0010014          ADD        #2454, (R5)+
0010020          CLR        (R5)+
0010022          MOV        PC, (R5)
0010024          ADD        #2462, (R5)+
0010030          CLR        (R5)+
0010032          MOV        PC, (R5)
0010034          ADD        #1564, (R5)+
0010040          CLR        (R5)
0010042          MOV        #34, R5
0010046          MOV        PC, (R5)
0010050          ADD        #1754, (R5)+
0010054          CLR        (R5)
0010056          CMP        26(R0), #123456
0010064          BEQ        10110

0010066          MOV       #123456, 26(R0)
0010074          MOV       #10, 30(R0)
0010102          MOV       #32, R1
0010106          BR         10114

0010110          MOV       #100, R1

0010114          JSR        PC, 13070; адрес пульта
0010120          MOVB      #77, 135(R0)
0010126          MOV       #175100, R4
0010132          BR         10262
0010134          TST        R4
0010136          BMI        10156
0010140          BIT       #20000, R4
0010144          BNE        10202
0010146          CMP       #7, R5
0010152          BGE        10174
0010154          BR         10162
0010156          CLR        116(R0)
0010162          JSR        PC, 13064
0010166          MOV       #126, R1
0010172          BR         10200
0010174          MOV       #135, R1

0010200          CLR        R3

0010202          CMP       #7, R5
0010206          BLT        10266
0010210          TST        116(R0)
0010214          BPL        10240
0010216          CMP        R1, #135
0010222          BEQ        10240
0010224          TST        R3

0010226          BEQ        10240
0010230          MOV        #5, R5
0010234          JMP        12514

0010240          MOV        #60210, R4; %%%
0010244          ASL         R3
0010246          ASL         R3
0010250          ASL         R3
0010252          BIS         R5, R3
0010254          MOV         R3, R5

0010256          JSR         PC, 13120
0010262          JMP         13372

0010266          BIT         #10, R4
0010272          BEQ         10300
0010274          JMP         11016
0010300          MOV        #100000, 116(R0); %%%
0010306          MOV        #60200, R4; %%%
0010312          BR          10256
0010314          JSR         PC, 12740
0010320          BMI         10330
0010322          MOV        #120, R1
0010326          BR          10114

0010330          MOV        #160000, R4; %%%
0010334          MOVB       #117, 127(R0)
0010342          TST         116(R0)
0010346          BPL         10352
0010350          BR          10412

0010352          MOV         R2, R5
0010354          BR          10374
0010356          JSR         PC, 12634
0010362          BMI         10464
0010364          BEQ         10466
0010366          MOV         R2, R5

0010370          MOV        #40000, R4; %%%
0010374          MOV        #126, R1
0010400          JSR         PC, 13120
0010404          TST         116(R0)
0010410          BPL         10416
0010412          MOV         R2, R5;

0010414          BR          10454

0010416          JSR         PC, 12536
0010422          BEQ         10430
0010424          MOV         R1, R5
0010426          BR          10432

0010430          MOV         R2, R5

0010432          TST         100(R0)
0010436          BEQ         10450
0010440          MOVB       (R5), R5
0010442          BIC        #177400, R5; %%%
0010446          BR          10456

0010450          JSR         PC, 13034

0010454          MOV        (R5), R5

0010456          MOV        #135, R1
0010462          BR          10256

0010464          CLR         R3
0010466          ADD         R3, 116(R0)
0010472          MOV         116(R0), R5
0010476          BIC        #177760, R5
0010502          MOV         R5, R2
0010504          ASL         R2
0010506          ADD        #4, R2

0010512          ADD         R0, R2;
0010514          BR          10370
0010516          MOV        #2, R5

0010522          JSR         PC, 12740

0010526          BEQ         10560
0010530          MOV         R3, R2
0010532          TST         116(R0)
0010536          BPL         10560
0010540          BIC        #177760, R2; %%%
0010544          ADD         R2, 116(R0)
0010550          ASL         R2

0010552          ADD        #4, R2
0010556          ADD         R0, R2

0010560          TST         116(R0)
0010564          BMI         10604
0010566          TST         100(R0)
0010572          BEQ         10576
0010574          ASR         R5

0010576          ADD         R5, R2
0010600          MOV         R2, R5
0010602          BR          10370

0010604          ADD         R5, R2
0010606          SUB         R0, R2
0010610          CMP        #2, R2
0010614          BLO         10632

0010616          MOV        #24, R2;

0010622          MOV        #100010, 116(R0); %%%
0010630          BR          10662

0010632          CMP         R2, #26
0010636          BLO         10654

0010640          MOV        #4, R2
0010644          MOV        #100000, 116(R0); %%%
0010652          BR          10662

0010654          ASR         R5
0010656          ADD         R5, 116(R0)

0010662          ADD         R0, R2
0010664          MOV         116(R0), R5
0010670          BIC        #177760, R5; %%%
0010674          BR          10370

0010676          MOV        #177776, R5; %%%
0010702          BR          10522

0010704          TST         100(R0)
0010710          BEQ         10720
0010712          MOV        #3, R5
0010716          BR          11022

0010720          BIT        #10000, R4; %%%
0010724          BNE         11016
0010726          JSR         PC, 12740

0010732          BEQ         10744
0010734          TST         116(R0)
0010740          BMI         11016
0010742          MOV         R3, R2
0010744          CLR         116(R0)
0010750          BIT        #4, R4
0010754          BEQ         10762
0010756          ADD        (R2)+, R2

0010760          BR          10366

0010762          MOV        (R2), R2
0010764          BR          10760

0010766          TST         116(R0)
0010772          BPL         11002

0010774          MOV        #4, R5
0011000          BR          11022

0011002          BIS        #4, R4
0011006          BR          10704
0011010          BIT        #200, R4
0011014          BNE         11026

0011016          MOV        #2, R5



0011026          ASR         R3
0011030          ASR         R3
0011032          ASR         R3
0011034          BIC        #16000000, R3; %%%
0011040          JMP         10254

0011044          BIT        #2000, R4
0011050          BNE         11254
0011052          BIT        #4000, R4
0011056          BNE         11016
0011060          BIS        #40, R4
0011064          JSR         PC, 12634

0011070          BEQ         10774
0011072          BVS         11116
0011074          BLO         11262
0011076          JSR         PC, 13034
0011102          JSR         PC, 12536
0011106          BEQ         11122
0011110          MOV        #11, R5
0011114          BR          11022

0011116          JMP         11564

0011122          TST         30(R0)
0011126          BNE         11136
0011130          MOV        #10, R5
0011134          BR          11022

0011136          MOV         32(R0), R3
0011142          JSR         PC, 13016
0011146          MOV         R2, (R5)+
0011150          MOV        (R2), (R5)+
0011152          MOV         #104400,(R2);

0011156          DEC         30(R0)

0011162          INC         32(R0)
0011166          TST        (R5)+
0011170          BEQ         11204
0011172          TST        (R5)+
0011174          CMP         32(R0), #7
0011202          BLO         11162

0011204          MOVB       #177, 127(R0)
0011212          MOV        #174000, R4
0011216          MOV         R3, R5
0011220          MOV        #135, R1
0011224          JSR         PC, 13120

0011230          ADD         R0, R1
0011232          MOVB       #271, -(R1)
0011236          MOVB       #77, -(R1)
0011242          MOV        #126, R1
0011246          MOV         R2, R5
0011250          JMP         10256

0011254          INC         R3

0011256          BIC        #177770, R3; %%%
0011262          CMP        #10, 30(R0)
0011270          BNE         11300

0011272          MOV        #7, R5;
0011272          BR          11022
0011300          MOV        #172000, R4; %%%
0011304          MOVB       #67, 127(R0)
0011312          JSR         PC, 13016

0011316          MOV        (R5), R2
0011320          BR          11216
0011322          MOVB       #71, 127(R0)
0011330          BIT        #100, R4
0011334          BNE         11016

0011336          CMP        #10, 30(R0)
0011344          BEQ         11272
0011346          BIS        #40, R4
0011352          JSR         PC, 12634

0011356          BEQ         11070
0011360          BLO         11544
0011362          BVS         11452
0011364          TST         R2
0011366          BEQ         11376
0011370          JSR         PC, 12536
0011374          BNE         11404

0011376          MOV        #13, R5
0011402          BR          11022

0011404          MOV         102(R0), R3
0011410          MOV        #170000, R4; %%%

0011414          MOV         (R1),(R2);

0011416          CLR         (R1)
0011420          CLR        -(R1)
0011422          INC          30(R0)
0011426          CMP          30(R0), #10
0011434          BEQ          11456

0011436          CMP          32(R0), R3
0011442          BLT          11216
0011444          MOV          R3, 32(R0)
0011450          BR           11216
0011452          MOV         #170000, R4; %%%

0011456          MOV         #34, R5
0011462          ADD          R0, R5
0011464          MOV         #10, R1

0011470          TST         (R5)+
0011472          BEQ          11502

0011474          MOV         (R5), @-(R5)
0011476          BIS         @-(R0), (R5)+
0011500          CLR         (R5)

0011502          TST         (R5)+
0011504          SOB          R1, 11470
0011506          MOV         #10, 30(R0)
0011514          CLR          32(R0)

0011520          JSR          PC,13056
0011524          MOVB       #71,127(R0);
0011532          MOV        #134477, 134(R0); %%%
0011540          JMP         13372

0011544          JSR         PC, 13016
0011550          MOV         R5, R1
0011552          TST        (R1)+
0011554          BEQ         11564

0011556          MOV         177776(R1), R2; %%%
0011562          BR          11410

0011564          MOV        #12, R5
0011570          BR          11402
0011572          BIS        #20, 24(R0)
0011600          BIS        #400, R4
0011604          BIT        #200, R4
0011610          BNE         11660
0011612          MOV         76(R0), R2
0011616          BR          11666
0011620          MOV         SP, @13772
0011624          MOV         13772, SP
0011630          MOV        #170400, -(SP)
0011634          BR          12040

0011636          BIT        #1000, R4
0011642          BEQ         11660
0011644          MOV        #2, R5
0011650          BIC        #20,24(R0);
0011656          BR          11402

0011660          JSR         PC, 12634
0011664          BEQ         11770

0011666          JSR         PC, 13034
0011672          BIT        #1, 20(R0)
0011700          CMP         20(R0), #402
0011706          BHIS        11716
0011710          MOV        #14, R5
0011714          BR          11650

0011716          MOV         20(R0), SP
0011722          BIT        #400, R4
0011726          BEQ         11776

0011730          MOV         24(R0), -(SP)
0011734          BIT        #20, 24(R0)
0011742          BEQ         11752
0011744          JSR         PC, 12536
0011750          BNE         11760

0011752          CLR         2(R0)
0011756          BR          12000
0011760          MOV        (R1), (R2)
0011762          MOV         R2, 2(R0)
0011766          BR          12000

0011770          MOV        #4, R5
0011774          BR          11650

0011776          CLR       -(SP)

0012000          MOV         R2, -(SP)
0012002          ADD        #20, R0
0012006          MOV       -(R0), R5
0012010          MOV       -(R0), R4
0012012          MOV       -(R0), R3
0012014          MOV       -(R0), R2
0012016          MOV       -(R0), R1
0012020          MOV       -(R0), R0
0012022          RTT
0012024          MOV         SP, @13772
0012030          MOV         13772, SP
0012034          MOV        #174000, -(SP); %%%
0012040          MOV         R1, -(SP)
0012042          MOV         R0, -(SP)
0012044          MOV         13772, R0
0012050          MOV        #4, R1
0012054          ADD         R0, R1
0012056          MOV        (SP)+, (R1)+
0012060          MOV        (SP)+, (R1)+
0012062          MOV         R2, (R1)+
0012064          MOV         R3, (R1)+
0012066          MOV         R4, (R1)+
0012070          MOV        (SP)+, R4
0012072          MOV         R5, (R1)+
0012074          MOV        (SP), (R1)
0012076          ADD        #4, (R1)+
0012102          MOV        (SP), R3
0012104          MOV        (R3), R2
0012106          MOV        (R3)+, (R1)+
0012110          MOV        (R3), (R1)
0012112          CLR         116(R0)
0012116          BIT        #400, R4
0012122          BNE         12174

0012124          TST        -(R2)
0012126          MOV          R2, 76(R0)
0012132          MOVB        #77, 127(R0)
0012140          MOV         #34, R5
0012144          ADD          R0, R5
0012146          CLR          R3
0012150          CMP          R2, (R5)+
0012152          BNE          12160
0012154          JMP          11216

0012160          TST         (R5)+
0012162          INC          R3
0012164          CMP          R4, #10
0012172          BR           12250

0012174          BIC         #20, 24(R0)
0012202          TST          2(R0)
0012206          BEQ          12216
0012210          MOV         #104400, @2(R0); %%%
0012216          MOV          R2, 76(R0)
0012222          MOVB        #76, 127(R0)
0012230          MOV          R2, R5
0012232          JMP          10374

0012236          BIT         #100, R4
0012242          BEQ          12264
0012244          MOV          74(R0), R2
0012250          CLR          116(R0)
0012254          MOVB        #67, 127(R0)
0012262          BR           12310

0012264          JSR          PC, 12634

0012270          BEQ          11770
0012272          JSR          PC, 13034

0012276          MOV          R2, 74(R0)
0012302          MOVB        #177, 127(R0)

0012310          MOV         #175000, R4; %%%
0012314          JSR          PC, 13064

0012320          MOV         #73566, 134(R0); %%%
0012326          JMP          11242

0012322          JSR          PC, 12634;
0012336          BEQ          12270

0012340          JSR          PC, 13034
0012344          MOV          74(R0), R3
0012350          CLR          R4
0012352          MOV          R2, R5
0012354          MOV          R3, R2
0012356          JSR          PC, 12536
0012362          BEQ          12372

0012364          ADD         (R1), R4
0012366          TST         (R3)+
0012370          BR           12374

0012372          ADD         (R3)+, R4
0012374          CMP          R3, R5
0012376          BLOS         12354
0012400          MOV          R5, R2
0012402          CLR          R5
0012404          MOV         #126, R1
0012410          JSR          PC, 13120
0012414          ADD          R0, R1
0012416          MOVB        #156, (R1)
0012422          MOVB        #71, -(R1)
0012426          MOV          R4, R5
0012430          MOV         #175000, R4; %%%
0012434          JMP          10456

0012440          ADD         #100000, 100(R0); %%%
0012446          CMPB         100(R0), #175
0012454          BEQ          12464
0012456          MOVB         106(R0), 127(R0)

0012464          JMP          13372

0012470          CLR          R5

0012472          MOV          13772, R0
0012476          MOV          SP, 20(R0)
0012502          MOV          R0, SP
0012504          BR           12514
0012506          MOV         #1, R5
0012512          BR           12472

0012514          JSR          PC, 13056
0012520          MOV         #175100, R4; %%%
0012524          MOVB        #323, 127(R0)
0012532          JMP          10256

;ADDR;
0012536          MOV        R4, -(SP)
0012540          CMP        30(R0), #10
0012546          BEQ        12620
0012550          MOV       #34, R1
0012554          ADD        R0, R1
0012556          CLR        102(R0)
0012562          MOV        R2, R4
0012564          SUB       (R1)+, R4
0012566          BEQ        12626
0012570          CMP        R4, #1
0012574          BNE        12602
0012576          INC        R1
0012600          BR         12626

0012602          TST       (R1)+
0012604          INC        102(R0)
0012610          CMP        102(R0), #10
0012616          BLO        12562
0012620          MOV       (SP)+, R4
0012622          SEZ
0012624          BR         12632

0012626          MOV       (SP)+, R4
0012630          CLZ

0012632          RTS        PC
;ADDR;
0012634          BIT       #200, R4
0012640          BNE       12654
0012642          TST       116(R0)
0012646          BPL       12714
0012650          SCC
0012652          BR        12736
0012654          TST       116(R0)
0012660          BPL       12674
0012662          CMP       R1, #126
0012666          BEQ       12736
0012670          CLR       116(R0)
0012674          BIT      #40, R4
0012700          BEQ       12712
0012702          CMP       R3, #10
0012706          BLT       12726
0012710          BEQ       12732

0012712          MOV       R3, R2

0012714          CLV

0012716          SWAB    -(R1)
0012720          CLZ
0012722          CLN
0012724          BR        12736

0012726          SEC
0012730          BR        12720

0012732          SEV
0012734          BR        12716
0012736          SWAB      PC

;ADDR;
0012740          BIT      #200, R4
0012744          BEQ       13014
0012746          CMP      #135, R1
0012752          BNE       13014
0012754          MOV       R2, R1
0012756          TST       116(R0)
0012762          BMI       13006
0012764          JSR       PC, 12536
0012770          BNE       12774
0012772          MOV       R2, R1

0012774          TST       100(R0)
0013000          BEQ       13006
0013002          MOVB      R3, (R1)
0013004          BR        13010
;ADDR;
0013006          MOV       R3, (R1)

0013010          SEZ
0013012          SEN
0013014          RTS       PC

0013016          MOV       R3, R5
0013020          ASL       R5
0013022          ASL       R5
0013024          ADD      #34, R5
0013030          ADD       R0, R5
0013032          RTS       PC

0013034          BIT      #1, R2
0013040          BEQ       13054
0013042          MOV      #6, R5
0013046          MOV       PC, (SP)
0013050          ADD      #176600, (SP); %%%

0013054          RTS       PC

0013056          MOV      #120, R1
0013062          BR        13070

0013064          MOV      #130, R1

0013070          ADD       R0, R1
0013072          CLRB     (R1)+
0013074          SUB       R0, R1
0013076          CMP       R1, #135
0013102          BLOS      13070

0013104          DEC       R1
0013106          RTS       PC

0013110          BGT       13310
0013112          BIC      @66546(R5), @(R3)+ ; %%%
0013116          BLE       13512

; SUB
0013120          MOV        R2, -(SP)
0013122          MOV        R1, -(SP)
0013124          ADD        R0, R1
0013126          MOV        R1, R2
0013130          SUB        #5, R2
0013134          CLRB      (R2)+
0013136          CMP        R2, R1
0013140          BLO        13134
0013142          TST        116(R0)
0013146          BMI        13212

0013150          CLRB      (R1)+

0013152          MOV        R5, R2
0013154          BIC        #177770, R2; %%%
0013160          ADD        PC, R2
0013162          ADD        #177726, R2; %%%
0013166          MOVB      (R2), -(R1)
0013170          ROR        R5
0013172          ROR        R5
0013174          ROR        R5
0013176          BIC       #160000, R5; %%%
0013202          BNE        13152

0013204          MOV       (SP)+, R1
0013206          MOV       (SP)+, R2
0013210          RTS        PC

0013212          CMP       #126, (SP)
0013216          BLO        13150
0013220          CMP        R5, #10
0013224          BLT        13272
0013226          CMPB      #163, (R1)
0013232          BEQ        13244
0013234          CMP       #100010, 116(R0); %%%
0013242          BNE        13264
0013244          MOV       #10, R3
0013250          MOVB      #163,177777(R1); %%%
0013256          MOVB      #71,(R1)
0013262          BR         13204

0013264          MOVB      #163, (R1)
0013270          BR         13204

0013272          MOVB      #163, 177777(R1); %%%
0013300          BR         13150
0013302          HALT

0013304          IOT
0013306          BEQ        13104
0013310          BGE        13422
0013312          WAIT
0013314          RESET

0013316          BNE        13254
0013320          BGE        13166
0013322          RTI
0013324          RTT
0013326          BEQ        13564
0013330          BLT        13026
0013332          BPT
0013334          WORD       7
0013336          BEQ        13150
0013340          BLT        13726
0013342          JSR        R4, (R2)+
0013344          JSR        R4, (R2)+
0013346          JSR        R4, (R2)+
0013350          JSR        R4, (R2)+
0013352          WORD       10
0013354          BGE        13376
0013356          BEQ        13334
0013360          BGT        13056
0013362          JSR        R4, (R2)+
0013364          BLE        13466
0013366          BNE        13220
0013370          BGT        13256

;ADDR JMP;
0013372          MOV        R3, -(SP)
0013374          MOV        R1, -(SP)
0013376          MOV        R2, -(SP)
0013400          TST        100(R0)
0013404          BEQ        13422
0013406          TSTB       127(R0)
0013412          BNE        13422
0013414          MOVB      #175, 127(R0)

0013422          JSR        PC, 13676
0013426          BIC       #20, R4
0013432          MOV       #400, R3
0013436          CLR        R5
0013440          MOV       #4, R2

0013444          MOV        R3, @13770
0013450          MOV       @13770, R1

0013454          ROR        R1
0013456          BLO        13462
0013460          BR         13534

0013462          CMP         R5, #33
0013466          BEQ         13506

0013470          INC         R5
0013472          CMP         R5, R2
0013474          BLT         13454

0013476          CMP        (R2)+, (R2)+
0013500          ADD        #400, R3
0013504          BR          13444

0013506          BIT        #20, R4

0013512          BNE         13520
0013514          CLR         104(R0)

0013520          BIC        #40000, R4; %%%
0013524          MOV        #177777, 110(R0); %%%
0013532          BR          13422
0013534          TST         104(R0)
0013540          BMI         13560
0013542          BIT        #40000, R4; %%%
0013546          BEQ         13616
0013550          ADD        #700, 104(R0)
0013556          BR          13422

0013560          BIS        #20, R4
0013564          CMP         R5, 110(R0)
0013570          BLE         13462
0013572          MOV        #3, 106(R0)

0013600          JSR         PC, 13676

0013604          DEC         106(R0)
0013610          BPL         13600
0013612          MOV         R5, 110(R0)

0013616          BIS        #40000, R4; %%%
0013622          MOV        (SP)+, R2
0013624          MOV        (SP)+, R1
0013626          MOV        (SP)+, R3
0013630          MOVB        127(R0), 106(R0)
0013636          CLRB        127(R0)
0013642          ASL         R5
0013644          ADD         PC, R5
0013646          ADD        #177434, R5
0013652          MOV        (R5), R5
0013654          CMP        #10, R5
0013660          BLT         13666
0013662          JMP         10134

0013666          ADD         PC, R5
0013670          SUB        #4670, R5
0013674          JMP        (R5)

;ADDR;
0013676          MOV        #135, R1
0013702          ADD         R0, R1
0013704          CLR         114(R0)

0013710          MOVB       (R1), 114(R0)
0013714          MOV         114(R0), @13770
0013722          MOV        #64, R2
0013726          SOB         R2, 13726

0013730          DEC         R1
0013732          INCB        115(R0)
0013736          CMPB       #6, 115(R0)
0013744          BNE         13756
0013746          ADD        #6000, 112(R0); %%%
0013754          BPL         13730

0013756          CMPB        115(R0), #15
0013764          BLT         13710
0013766          RTS         PC
0013770          HALT

0013772          HALT

0013774          HALT
0013776          HALT

0014000          WORD   177WORD       777
0014002          WORD   177777

С предыдущим вариантом, когда я использовал декомпилятор от УКНЦ, построчно совпало.
Но теперь у меня есть реальные адреса, чего ранее не было.

По всем переходам и вызовам Монитор управления не теряет - все адреса в теле программы.
Это уже радует...

А вот что не радует, пишет Монитор в ряде мест в области памяти, которые не соответствуют
этой карте памяти:

Image

Хотя с исходной таблицей кодов вроде как четко совпадает... :-?
Я пометил такие места в программе, как ; %%% .
Может быть, я не совсем точно определил неполную дешифрацию, и там больше "зеркал" ОЗУ.
А может это просто "грязные трючки" под 1801ВМ1, чтобы затруднить декомпиляцию...

Также не нашел массивов текстовых сообщений в 7-сегментном коде.

_________________
iLavr


10 Jan 2018 18:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Здесь были сообщения, что в исходной схеме есть ошибки/опечатки, в частности в шине отсутствует
вывод 18. Я не знаю, насколько критично его отсутствие...

Нашел я упомнание о выводе 18.
Случайность wrote:
позавчера сверял схему окончательную, с журнальной и заметил что провод 18 в шине отсутствует, Резистор к нему есть , ноги п роцессоре пронумерованы в шине как 16- 17- -19 так что должно быть номером 18?

Мне кажется, это некритично. Я лично криминала в этом вроде как не увидел...


P.S. Сканы и прочие "бумажные" материалы здесь, ссылки рабочие.

_________________
iLavr


10 Jan 2018 18:47
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
что не радует, пишет Монитор в ряде мест в области памяти, которые не соответствуют
карте памяти: ...

Внимательно почитал эти сомнительные места. В большинстве случаев, как мне показалось, это
не адреса, а различные константы, просто в силу 16-разрядности процессора они напоминают
характерные адреса пространства памяти БК.

Решился на грязный трюк: посадить Монитор на адрес о30000 (он вобще - с о80000, но пишут, что переносимый).
В ячейку о33772 (по смещению о3772 от адреса загрузки) указал адрес доступного ОЗУ = о10000,
чтобы не портить служебное ОЗУ БК.

Порт ввода-вывода у Монитора единственный: o177714, дешифруется через SEL2. У БК - это 16-битный
параллельный порт, в эмуляторе считается что на o177714 подключен COVOX.

Проверил COVOX в эмуляторе БК:
Code:
10 POKE &O177714,255
20 POKE &O177714,0
30 GOTO 10

COVOX жужукает, эмулятор не падает... :wink:

Значит по идее, Монитор по порту o177714 сканирует 7-сегментный индикатор, и если все хорошо,
то должен зажужукать ковоксом.
Плохо, что Монитор и читает через порт o177714 матрицу клавиатуры, не знаю, как к этому относится
эмулятор БК-0010. :wink:

В общем - запустил Монитор как есть с адреса о30000, результат вот такой:
Attachment:
MonEmu1.gif
MonEmu1.gif [ 6.62 KiB | Viewed 8050 times ]

Либо эмулятору что-то не понравилось, либо в коде еще остались баги...

_________________
iLavr


11 Jan 2018 10:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Чтобы отмести неполадки из-за эмуляции COVOXa, решил эксперимент немного изменить:
вместо порта o177714 обращаться из Монитора в ячейку экранного ОЗУ - должно быть видно,
как Монитор перебирает позиции индикатора, или хотя бы что-то пишет в ОЗУ.
Ну а то что он будет читать эту ячейку, как матрицу клавиатуры - так ведь ОЗУ: что записал,
то сам и прочитает! :o

Видео-ОЗУ у БК-0010 находится по адресам о40000 – о77777 (4000...7FFFh).
Для определенности решил использовать ячейку о40000.

Проверил, как оно... будет ли видно?
Code:
10 POKE &O40000,170 ' ---0AAH
20 POKE &O40000,85  ' --- 55H
30 GOTO 10

Оно вполне себе хорошо в нижнем углу экрана видно!

А вот с запуском Монитора, пропатченного для вывода на экран, результат такой-же,
как в предыдущем посте... :osad:

Видимо, всё же баги в коде... хотя странно, что такие жесткие! :roll:
По идее - ну потерял Монитор управление, вывалился в БК, код о0000 = HALT, в памяти его полно!
Но почему-то эмулятор БК вешается жестко! :o Придется, видимо, дебужить код отладчиком... :-?

_________________
iLavr


11 Jan 2018 10:52
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Решился на грязный трюк: посадить Монитор на адрес о30000 (он вобще - с о80000, но пишут, что переносимый).
В ячейку о33772 (по смещению о3772 от адреса загрузки) указал адрес доступного ОЗУ = о10000,
чтобы не портить служебное ОЗУ БК.

Порт ввода-вывода у Монитора единственный: o177714, дешифруется через SEL2. У БК - это 16-битный
параллельный порт, в эмуляторе считается что на o177714 подключен COVOX.

Значит по идее, Монитор по порту o177714 сканирует 7-сегментный индикатор, и если все хорошо,
то должен зажужукать ковоксом.

Ааааааа! :lol: И он зажужукал ковоксом!!! :kruto:
Attachment:
MonEmu2.gif
MonEmu2.gif [ 4.67 KiB | Viewed 8041 times ]

Значит есть где-то 90%-ная уверенность, что код Монитора не содержит серьёзных ошибок...

Проблема была с загрузкой файла в эмулятор. Почему-то недогружались примерно 4 слова.
А здесь это как раз ячейки, где хранятся адреса порта и ОЗУ.
Первые же 2 шага в отладке показали, что что-то в конце файла не так, сделал его длинее
на 4 байта и всё пошло! :wink:

Выкладываю файл Монитора, под эмулятор БК-0010:
Attachment:
MONITOR_LH.zip [1.65 KiB]
Downloaded 272 times

Первые 4 байта - начальный адрес и длина файла.

Если необходимо сделать файл для ПЗУ, то надо отрезать 4 байта вначале файла и обрезать
по длине до 800Н (2048).

Для адаптации Монитора к другим конструкцям:
По смещению о3770 (7F8Н) записан адрес порта ввода-вывода;
По смещению о3772 (7FАН) записан адрес используемого ОЗУ;
Quote:
Для работы монитора необходимо ОЗУ объемом 128 байт, причем предусмотрена
возможность работы монитора с ОЗУ, расположенным в любой области адресного
пространства.
Адрес выбранной для ОЗУ Mонитора области памяти (AM) записывается в ячейку
с адресом (АЗ + 3772o [7FAH or 2042]), при этом в мониторе используется зона
памяти от (AM + 40o [20H or 32]) до (AM + 140o [60H or 96]).

_________________
iLavr


11 Jan 2018 13:57
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
А мы где-то уже обсуждали почему БК-шники оперируют восьмиричными значениями? Ведь чертовски неудобно :evil:

_________________
:dj: https://mastodon.social/@Shaos


11 Jan 2018 17:43
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
А мы где-то уже обсуждали почему БК-шники оперируют восьмиричными значениями? Ведь чертовски неудобно :evil:

Правда, неудобно. :osad: Кроме того, что я не знаю их ассемблер, с 8-ричными числами
просто мучаюсь... :-? Хотя начинаю привыкать. :wink:
Очень вовремя я написал Total Converter, хотя он и был для других задач.

Восьмиричными значениями в PDP-XX и совместимыx оперируют потому как у них
всё разбито на тройки битов. Я с этим еще в EDUC-8 столкнулся... :lol:
Attachment:
image138.gif
image138.gif [ 14.62 KiB | Viewed 8031 times ]

Поэтому команды очень легко запоминаются или просто конструируются в голове.
При некотором навыке можно писать в кодах без ассемблера (очень давно я сам это
делал с помощью справочника Шахнова
).

Ну и апологеты PDP-XX и восьмеричной системы считают, что она короче, проще,
в ней нет чуждых ABCDEF, а значит и клавиатура пульта проще. И мы где-то смотрели
на форуме такие пульты ввода и для отладочных плат с i8080, но не прижилось.

Кстати, некоторые кратные числа очень неплохо коррелируют:
о10000 = 1000Н,
о20000 = 2000Н,
о30000 = 3000Н
... и т.д.

_________________
iLavr


11 Jan 2018 18:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Lavr wrote:
Значит по идее, Монитор по порту o177714 сканирует 7-сегментный индикатор, и если все хорошо,
то должен зажужукать ковоксом.

Ааааааа! :lol: И он зажужукал ковоксом!!! :kruto:

Если бы как-то перехватить обработку эмулятором БК-0010 обращения к адресу o177714,
то можно было бы эмулировать 7-сегментный индикатор и клавиатуру.

Но, к сожалению, у меня эмулятор БК-0010 версии 2.6, а исходники для этого эмулятора
Юрий Калмыков выложил только начиная с версии 3.0.
Посмотрел код - нашел места, где обрабатывают адрес FFCC, кстати не так, как я ожидал.
Я ожидал сравнения на число FFCC, а в коде делается так:
Code:
004120C5: 8B8ED0000000                 mov       ecx,[esi][0000000D0]
004120CB: 68CCFF0000                   push      00000FFCC ;"  _¦"
004120D0: E82B23FFFF                   call     .000404400   -------- (3)

или
Code:
.00412116: 50                           push      eax
.00412117: 68CCFF0000                   push      00000FFCC ;"  _¦"
.0041211C: E80F23FFFF                   call     .000404430   -------- (4)

или
Code:
.00412189: 8B8ED0000000                 mov       ecx,[esi][0000000D0]
.0041218F: 68CCFF0000                   push      00000FFCC ;"  _¦"
.00412194: E86722FFFF                   call     .000404400   -------- (2)

то есть FFCC всегда сначала push .

Пожалуй, прицепиться извне к такому коду под Windows проблематично... :-?

_________________
iLavr


12 Jan 2018 09:46
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 270 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15 ... 18  Next

Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.