Компьютер "ZXM-Phoenix" - Обсуждение

Все вопросы, связанные с ресурсом micklab.ru

Moderator: Mick

Postby Mick » Wed, 13.06.2018 18:46:33

Требуется помощь знающих.

Чтобы было понимания процесса.
В общем пользователь eljero с барахолки купил у меня Феню, но фигня состоит в том что у меня он работал и включался сразу, а у него он никак не хочет включаться. Тоесть мозаика из квадратов и все. Хорошо, спрашиваю какой блок питания используешь. Он сказал типа вот этого ATX PSU 12 В 120 Вт.
Попросил меня разобраться, вот я решил прикупить вот такой - https://ru.aliexpress.com/item/Reala...811468131.html
Когда пришел, то приятно разочаровал, ему оказывается надо толстоамперный 12В источник. Который у меня был 2,5А он даже не почувствовал.
Пришлось прикупить еще вот этот - https://ru.aliexpress.com/item/12V-1...728306566.html

Когда все это собралось, то он один фиг работает. Но при первом старте - он как раз в мозаике. Помогает только выключение, но затем хоть обвыключайся - комп стартует сразу.
И чтобы поймать ситуацию надо чтобы комп простоял обесточенным не менее часа 2. И вот потыкал осцилом в момент мозаики - он в ПЗУ крутится похоже в районе 0135h адреса.

Вот по сути кусок начального кода

Сначала обычная задержка (Пауза)
Code: Select all
seg000:0000          di      
seg000:0001          ld       bc,   692Bh
seg000:0004
seg000:0004 loc_0_4:                ; CODE XREF: seg000:0007j
seg000:0004          dec       bc
seg000:0005          ld       a, b
seg000:0006          or       c
seg000:0007          jr       nz,   loc_0_4
seg000:0009          jp       loc_0_C7


А вот тут идет тест, где видим, что он берет и проверяет все 8 страниц, записывая сначала FF, затем 00
Code: Select all
seg000:00C7 loc_0_C7:                ; CODE XREF: seg000:0009j
seg000:00C7          ld       b, 8
seg000:00C9
seg000:00C9 loc_0_C9:                ; CODE XREF: seg000:00E8j
seg000:00C9          ld       a, b
seg000:00CA          exx      
seg000:00CB          dec       a
seg000:00CC          ld       bc,   7FFDh
seg000:00CF          out       (c), a
seg000:00D1          ld       hl,   0C000h
seg000:00D4          ld       de,   0C001h
seg000:00D7          ld       bc,   3FFFh
seg000:00DA          ld       a, 0FFh
seg000:00DC          ld       (hl), a
seg000:00DD          cp       (hl)
seg000:00DE          jr       nz,   loc_0_131
seg000:00E0          xor       a
seg000:00E1          ld       (hl), a
seg000:00E2          cp       (hl)
seg000:00E3          jr       nz,   loc_0_131
seg000:00E5          ldir   
seg000:00E7          exx      
seg000:00E8          djnz    loc_0_C9

seg000:00EA          ld       (5B88h), a
seg000:00ED          ld       c, 0FDh ; '¤'
seg000:00EF          ld       d, 0FFh
seg000:00F1          ld       e, 0BFh ; '┐'
seg000:00F3          ld       b, d
seg000:00F4          ld       a, 0Eh
seg000:00F6          out       (c), a
seg000:00F8          ld       b, e
seg000:00F9          ld       a, 0FFh
seg000:00FB          out       (c), a
seg000:00FD          jr       loc_0_137


И если ему плохо то висняк тут
Code: Select all
seg000:0131 loc_0_131:                ; CODE XREF: seg000:00DEj
seg000:0131                   ; seg000:00E3j
seg000:0131          exx      
seg000:0132          ld       a, b
seg000:0133          out       (0FEh), a
seg000:0135
seg000:0135 loc_0_135:                ; CODE XREF: seg000:0135j
seg000:0135          jr       loc_0_135


Память сама по себе рабочая. Вот только не пойму что ей надо в первоначальный момент запуска (когда комп был выключен из розетки)
Планки памяти менял - результат тот же.
User avatar
Mick
 
Posts: 941
Joined: Thu, 19.06.2014 11:25:00

Postby TS-Labs » Thu, 14.06.2018 04:14:41

Очевидно: не работает штатная прошивка. Причины (выбрать желаемое): глючит память, глючит проц, глючит логика.
Очевидно: зашить в ПЗУ по очереди разные тесты и выяснить, что именно из подчеркнутого имеет место глючить.

Тесты навскидку:
- проц пишет в бордер с задержкой (либо без таковой) значения с инкрементом - проверяем способен ли проц вообще думать и срать в бордюр,
- проц пишет в память по 16кБ нули, читает потом эти 16кБ, если не совпало срет в бордер цветом, значение 0 инкрементится и так по кругу. Для начала тест на любые 16кБ в любом окне (4000 например), потом всю память с С000 страницами - проверяем память,
- дальше - по обстоятельствам.

Поскольку я параноид, чужим тестам не верю, тесты бы писал сразу свои, по 3 минуты на каждый тест. Это быстрее, чем хуй знает где разыскивать чужие тесты, которые непонятно что тестируют.
User avatar
TS-Labs
 
Posts: 4985
Joined: Thu, 26.07.2012 01:29:56

Postby Mick » Thu, 14.06.2018 06:01:21

TS-Labs wrote:Очевидно: не работает штатная прошивка. Причины (выбрать желаемое): глючит память, глючит проц, глючит логика.
Очевидно: зашить в ПЗУ по очереди разные тесты и выяснить, что именно из подчеркнутого имеет место глючить.



Проц и память рабочие. Ставил другие, один фиг - первый запуск - квадратики и висняк в 135h адресе.. Тут фигня в том что при повторном включении компа - он начинает работать уже пока совсем не обесточишь. Другой вопрос, с обычным старым моим ATX (такой металлический ящик с вентилятором) он прекрасно запускается сразу.

Я делал еще другой финт ушами. Пропатчил BASIC 128 на предмет бесконечного цикла, тоесть он не зависал на 135h а уходил в 0000h адрес. Думал что не хватает памяти времени на раскачку с этим блоком питания. Но нет, из цикла не выходит.
User avatar
Mick
 
Posts: 941
Joined: Thu, 19.06.2014 11:25:00

Postby TS-Labs » Thu, 14.06.2018 15:41:30

Mick wrote:Проц и память рабочие.

Я не сказал, что они нерабочие. Я что сказал?
Ты или делай, чо тебе советуют люди, немного разбирающиесяв вопросе, или не спрашивай совета.
User avatar
TS-Labs
 
Posts: 4985
Joined: Thu, 26.07.2012 01:29:56

Postby MVV » Thu, 14.06.2018 16:17:25

Тут делов-то на пару минут ) Проверить питание в норме или нет под нагрузкой, проверить съемные компоненты на исправной плате, отправить исправную. Неисправную в стенд и тыкать щупом одновременно по двум платах по тестовым точкам по пунктам в тесте.
MVV
 
Posts: 464
Joined: Sun, 01.12.2013 22:48:17

Postby TS-Labs » Thu, 14.06.2018 16:28:43

MVV, тут дело не в компонентах, а в говнодизайне схемы (и возможно, платы). Когда сигналы ходят вразнобой. В результате, из-за +-0,1В глючит логика.
User avatar
TS-Labs
 
Posts: 4985
Joined: Thu, 26.07.2012 01:29:56

Postby Mick » Thu, 14.06.2018 18:45:23

Еще вброс пищи на вентилятор

Померил я напряжение в момент первого включения - когда мозайка. На входе 5.04В, на памяти 4.88В
При нормальном включении на входе 5.04В, на памяти 4.88В
А вот Частота на осциле - при мозайке - 50-70КГц, а при нормальном 300 - 382КГц
Хотя вроде пульсаций видимых нет.
Правда у меня простенький осцил OWON

Подключил свой ATX (нормальный) Напряжение на воде - 4.96В, на памяти - 4.96В
Частота - 520 КГц Стартует сразу.
User avatar
Mick
 
Posts: 941
Joined: Thu, 19.06.2014 11:25:00

Postby TS-Labs » Thu, 14.06.2018 19:24:04

Mick, я рискую нарваться на грубость, но я ДОЛЖЕН тебе это сказать.
Ты занимаешься фигней. Фигней в том смысле, что вместо правильного последовательного тестирования ты гадаешь на кишках овцы.
Постарайся меня услышать.
1. Программными тестами определяешь подсистему, которая не работает.
2. Осциллографом смотришь проблемные места.
Если тебе что-либо непонятно или есть затык с написанием тестов, я постараюсь помочь.
User avatar
TS-Labs
 
Posts: 4985
Joined: Thu, 26.07.2012 01:29:56

Postby Mick » Tue, 19.06.2018 15:51:22

TS-Labs wrote:Тесты навскидку:
- проц пишет в бордер с задержкой (либо без таковой) значения с инкрементом - проверяем способен ли проц вообще думать и срать в бордюр,


Типа так что ли?

Code: Select all
      DEVICE ZXSPECTRUM128

Test_entry_point_00:
            di     
      xor   a
      out   (0FEh),a
            ld       bc,692Bh

Test_entry_point_01:
      dec      bc
      ld       a,b
      or       c
      jr       nz,Test_entry_point_01

      ld   bc,0

Test_entry_point_02:
      ld   a,c
      and   07h
      out   (0FEh),a                        

      xor   a
Test_entry_point_03:
                dec   a
      jr   nz, Test_entry_point_03
         
      inc   c
      dec   b
      jr   nz, Test_entry_point_02

      jr   Test_entry_point_00   
      
Test_entry_end:

      .savebin "test.bin",Test_entry_point_00, Test_entry_end - Test_entry_point_00




P.S. Попробовал сие творение. При первом включении в бордер пишет. Ну и при повторных тоже. Тоесть процессор живой и работает.
User avatar
Mick
 
Posts: 941
Joined: Thu, 19.06.2014 11:25:00

Previous

Return to Mick Laboratory

Who is online

Users browsing this forum: No registered users and 1 guest

x