User Tag List

Показано с 1 по 10 из 190

Тема: Новый старый квазидиск

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,060
    Спасибо Благодарностей отдано 
    578
    Спасибо Благодарностей получено 
    468
    Поблагодарили
    251 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_LG Посмотреть сообщение
    А почему бы D1+D2+D12 и D5+D6+D8 не заменить на РТ4?
    Наверно, по той же причине, почему бы не заменить всю конструкцию на ПЛИС и не получить при этом "Комбодевайс2"... А если серьёзно -- если что-то можно решить на обычной логике достаточно малым числом корпусов МС, то я не вижу особой необходимости делать это на ПЗУ. Так же, собственно, было сделано и в последующей конструкции КД (на РУ7)...

    - - - Добавлено - - -

    И ещё, могу уже похвалиться собранной конструкцией по последней схеме:

    Нажмите на изображение для увеличения. 

Название:	IMG_20181025_222252.jpg 
Просмотров:	404 
Размер:	82.5 Кб 
ID:	66690

    Только вот микросхем памяти пока что ещё нет, т.к. они в доставке с ибея... Но всё остальное, что возможно, протестил -- работает так, как и было задумано.

    Может, кому пригодится, вот мои тесты для контроллера КД:

    Тест 0

    Как написано в документации к оригинальному КД, начальный тест -- это просто включение Вектора с подключённым диском. Если загрузке Вектора собранный КД не мешает, то значит всё в порядке.
    [свернуть]

    Тест 1

    Проверка правильности работы схемы дешифратора адреса порта КД и регистра конфигурации (микросхемы D1, D2:A, D12:A,B,C и D7). Результат тестирования проверяется мультиметром, на соответствующих выводах D7 должны появляться сигналы "1". Запускать с отключённым сигналом "БЛК" (например, без установленной D8), иначе Вектор подвиснет.
    Текст теста на ассемблере для запуска в любом мониторе-отладчике:
    Код:
            .ORG    00100h
    L_0100: LDA     L_DATA
            RLC
            STA     L_DATA
            OUT     010h    ; отправляем в порт
            LDA     L_DT
            INR     A
            STA     L_DT
            LXI  D, L_TEXT
            MVI  C, 009h
            CALL 5          ; вывод сообщения
            MVI C,1
            LXI D,2000h
            CALL 5          ; ожидание нажатия клавиши
            LDA     L_DATA
            CPI     080h    ; проверка
            JNZ     L_0100  ; цикл
            MVI  A, '0'
            STA     L_DT
            RET             ; выход ---->>>>
    L_TEXT: .db 0Dh, 0Ah, "OUT DATA: "
    L_DT:   .db "0$"
    L_DATA: .db 080h
            .END
    [свернуть]

    Тест 2

    Проверка работы в режиме "стек", проверяется формирователь сигнала "БЛК" на МС D8 (и, конечно, дополнительно и то, что проверялось в тесте 1). Этим тестом производится запись данных во все четыре банка КД по адресам, совпадающим с экранной областью монитора-отладчика, и в случае сбоя на экране будут видны "артефакты".
    Код:
            .ORG    00100h
    L_0100: LXI  D, L_DATA
            PUSH D          ; сохраняем в стеке ссылку
    L_MAIN: POP  D          ; считываем ссылку
            LDAX D          ; загружаем A по ссылке
            ORA  A
            RZ              ; выход, если там ноль ---->>>>
            INX  D          ; DE=DE+1
            PUSH D          ; сохраняем в стеке новую ссылку
            DI              ; запрещаем прерывания
            OUT     010h    ; отправляем в порт
            LXI  H, 0000h   ; заполнение памяти
            DAD  SP         ; SP+0 в HL
            SHLD    L_SAVE  ; сохранить указатель на стек
            LXI  D, 55AAh   ; чем заполнять
            LXI  H, 1000h   ; сколько/2
            LXI  SP,0E000h  ; свой указатель на стек
    L_LOOP: PUSH D          ; заполняем через стек...
            DCX  H
            MOV  A, L
            ORA  H
            JNZ     L_LOOP  ; зациклено
            XRA  A          ; обнуляем аккумулятор
            OUT     010h    ; отправляем в порт -- отключаем КД
            LHLD    L_SAVE  ; считать сохранённый указатель на стек в HL
            SPHL            ; восстанавливаем SP
            EI              ; разрешаем прерывания
            LXI  D, L_TEXT
            MVI  C, 009h
            CALL 5          ; вывод сообщения
            MVI  C,1
            LXI  D, 2000h
            CALL 5          ; ожидание нажатия клавиши
            JMP     L_MAIN  ; цикл
    ;
    L_SAVE: .dw 0000h
    L_TEXT: .db 0Dh, 0Ah, "-- DONE --$"
    L_DATA: .db 1Ch         ; 00011100b -- вкл. 0 банк как стек на КД
            .db 18h         ; 00011000b -- вкл. 1 банк как стек на КД
            .db 14h         ; 00010100b -- вкл. 2 банк как стек на КД
            .db 10h         ; 00010000b -- вкл. 3 банк как стек на КД
            .db 00h         ; конец
            .END
    [свернуть]

    Тест 3

    Проверка работы КД в режиме "замена ОЗУ" по стандартной конфигурации. Дополнительно к предыдущим тестам, проверяются правильность работы МС D5 и D6. Ошибка выдаётся в случае совпадения последнего записанного в КД байта и считанного из ОЗУ после отключения КД.
    Код:
            .ORG    00100h
    L_0100: LXI  D, L_DATA
            PUSH D          ; сохраняем в стеке ссылку
    L_MAIN: POP  D          ; считываем ссылку
            LDAX D          ; загружаем A по ссылке
            ORA  A
            RZ              ; выход, если там ноль ---->>>>
            INX  D          ; DE=DE+1
            PUSH D          ; сохраняем в стеке новую ссылку
            OUT     010h    ; отправляем в порт
            LXI  H, 02000h  ; заполнение памяти -- сколько
            LXI  B, 0C000h  ; с какого адреса
    L_LOOP: MVI  A, 055h    ; чем заполнять
            STAX B          ; пишем
            INX  B
            DCX  H
            MOV  A, L
            ORA  H
            JNZ     L_LOOP  ; пока HL не обнулится
            XRA  A          ; обнуляем аккумулятор
            OUT     010h    ; отправляем в порт -- отключаем КД
            DCX  B          ; на шаг назад
            LDAX B          ; считываем последний байт
            CPI     055h    ; сравниваем с тем, что писали
            LXI  D, L_ERRT  ; ссылка на сообщение об ошибке
            JZ      L_DONE  ; если равны -- значит КД работает не правильно
            LXI  D, L_TEXT
    L_DONE: MVI  C, 009h
            CALL 5          ; вывод сообщения
            MVI  C,1
            LXI  D, 2000h
            CALL 5          ; ожидание нажатия клавиши
            JMP     L_MAIN  ; цикл
    ;
    L_SAVE: .dw 0000h
    L_TEXT: .db 0Dh, 0Ah, "-- DONE --$"
    L_ERRT: .db 0Dh, 0Ah, "-- ERROR --$"
    L_DATA: .db 23h         ; 00100011b -- вкл. 0 банк как ОЗУ A000h-DFFFh
            .db 22h         ; 00100010b -- вкл. 1 банк как ОЗУ A000h-DFFFh
            .db 21h         ; 00100001b -- вкл. 2 банк как ОЗУ A000h-DFFFh
            .db 20h         ; 00100000b -- вкл. 3 банк как ОЗУ A000h-DFFFh
            .db 00h         ; конец
            .END
    [свернуть]

    Тест 4

    То же самое, что и в третьем тесте, но только для схемы доработки Баркаря
    Код:
            .ORG    00100h
    L_0100: LXI  D, L_DATA
            PUSH D          ; сохраняем в стеке ссылку
    L_MAIN: POP  D          ; считываем ссылку
            LDAX D          ; загружаем A по ссылке
            ORA  A
            RZ              ; выход, если там ноль ---->>>>
            INX  D          ; DE=DE+1
            PUSH D          ; сохраняем в стеке новую ссылку
            OUT     010h    ; отправляем в порт
            LXI  H, 02000h  ; заполнение памяти -- сколько
            CPI     080h
            LXI  B, 08000h  ; с какого адреса 1
            JC      L_LOOP  ; если A < 080h
            LXI  B, 0E000h  ; с какого адреса 2
    L_LOOP: MVI  A, 055h    ; чем заполнять
            STAX B          ; пишем
            INX  B
            DCX  H
            MOV  A, L
            ORA  H
            JNZ     L_LOOP  ; пока HL не обнулится
            XRA  A          ; обнуляем аккумулятор
            OUT     010h    ; отправляем в порт -- отключаем КД
            DCX  B          ; на шаг назад
            LDAX B          ; считываем последний байт
            CPI     055h    ; сравниваем с тем, что писали
            LXI  D, L_ERRT  ; ссылка на сообщение об ошибке
            JZ      L_DONE  ; если равны -- значит КД работает не правильно
            LXI  D, L_TEXT
    L_DONE: MVI  C, 009h
            CALL 5          ; вывод сообщения
            MVI  C,1
            LXI  D, 2000h
            CALL 5          ; ожидание нажатия клавиши
            JMP     L_MAIN  ; цикл
    ;
    L_SAVE: .dw 0000h
    L_TEXT: .db 0Dh, 0Ah, "-- DONE --$"
    L_ERRT: .db 0Dh, 0Ah, "-- ERROR --$"
    L_DATA: .db 43h         ; 01000011b -- вкл. 1 банк как ОЗУ 8000h-9FFFh
            .db 42h         ; 01000010b -- вкл. 2 банк как ОЗУ 8000h-9FFFh
            .db 41h         ; 01000001b -- вкл. 3 банк как ОЗУ 8000h-9FFFh
            .db 40h         ; 01000000b -- вкл. 4 банк как ОЗУ 8000h-9FFFh
            .db 83h         ; 10000011b -- вкл. 1 банк как ОЗУ E000h-FFFFh
            .db 82h         ; 10000010b -- вкл. 2 банк как ОЗУ E000h-FFFFh
            .db 81h         ; 10000001b -- вкл. 3 банк как ОЗУ E000h-FFFFh
            .db 80h         ; 10000000b -- вкл. 4 банк как ОЗУ E000h-FFFFh
            .db 00h         ; конец
            .END
    [свернуть]

    А дальше, я думаю, надо ставить память и тестировать стандартными программами, типа "дождь" и т.д.

    Все тесты откомпилированные для монитора-отладчика в одном архиве: MyTestKD.7z
    Запускать можно под любым монитором-отладчиком, режим распределения памяти МО рекомендую выбирать <2>.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ПК8000 - Софт: Старый и Новый
    от ivagor в разделе ПК8000
    Ответов: 344
    Последнее: 08.11.2025, 06:55
  2. Старый-Новый Язык Noahsoft PL65
    от ezswift в разделе Atari
    Ответов: 25
    Последнее: 19.04.2023, 09:32
  3. Новый старый ZX-Next: сборка, тестирование, производство.
    от ZXFanat в разделе Несортированное железо
    Ответов: 51
    Последнее: 01.10.2011, 08:41
  4. про новый-старый спектрум
    от xailar в разделе ZX Концепции
    Ответов: 3
    Последнее: 06.12.2010, 10:42
  5. ПК8000 - Квазидиск
    от Mick в разделе ПК8000
    Ответов: 86
    Последнее: 13.10.2008, 19:17

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •