Важная информация

User Tag List

Страница 27 из 30 ПерваяПервая ... 2324252627282930 ПоследняяПоследняя
Показано с 261 по 270 из 292

Тема: Компьютер для CP/M. Формулировка ТЗ.

  1. #261
    Guru
    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это же бубль-гум! В MSX (если не ошибаюсь, я еще не дошел) мапперы и строили на таких.

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

    По поводу как конфигурировать на лету, это задача для энтузиастов. И потребует думаю какой-то доли рассыппухи.
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

  2. #262
    Master Аватар для TomaTLAB
    Регистрация
    09.03.2017
    Адрес
    г. Троицк
    Сообщений
    607
    Спасибо Благодарностей отдано 
    124
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от OrionExt Посмотреть сообщение
    В MSX (если не ошибаюсь, я еще не дошел) мапперы и строили на таких.
    Именно! Причем исключительной элегантности красота при своей простоте.
    Цитата Сообщение от Error404 Посмотреть сообщение
    В этом смысле, большое ОЗУ дает функционал приближающийся к CPLD.
    Ну тут нужно как то компромисс найти. Иначе может получится, что регистров маппера будет больше чем ячеек ОЗУ
    А маппер тоже как-то адресовать нужно. ИР26 - это регистровый файл 4х4, другими словами две ИР26 - это четыре 8-ми битных регистра.
    В MSX эта вся ерунда наращивается каскадно: слоты-субслоты-маппер(ы). И "в теле такая приятная гибкость образовалась"
    Последний раз редактировалось TomaTLAB; 03.08.2017 в 01:17.

  3. #263
    Master Аватар для TomaTLAB
    Регистрация
    09.03.2017
    Адрес
    г. Троицк
    Сообщений
    607
    Спасибо Благодарностей отдано 
    124
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Xrust Посмотреть сообщение
    Ну вот, долго ли коротко ли, запилил новый вариант с прерываниями
    Сподобился я тоже, и запилил тестовый стенд из платы принтера СМ6337, там и ВН59 и ВИ53 наличествует.
    Погонял Ваши примеры и убедился, что и без прерываний, и с прерываниями в том виде как у Вас (с поправкой на мое железо), ожидаемо давится и не может прожевать поток символов. Нужен буфер. И основная Ваша ошибка, что долго "сидите" в обработчике прерывания.
    Так нельзя делать, попав в прерывание нужно максимально быстро сделать необходимый минимум и выметаться оттудова.
    В проекте с ВВ51 и клавиатурой, кстати, тоже самое.

    Скрытый текст


    Ахтунг! Для упрощения буфер обязательно должен быть выровнен по границе 256 байт.
    Ну и никаких проверок переполнения и т.п. нет.
    Код:
    include "8085.inc"
    
    ; ПРОГРАММА НАСТРОЙКИ И ПРОВЕРКИ УСАПП ВВ51А 
    ;
    ;_______ВЕКТОРА ПРЕРЫВАНИЙ____________________________
    org 00h ;int0 он же reset
        DI
        jmp INIT
    org 04h
        ret
        nop
        nop
        nop
    org 08h
        ret
        nop
        nop
        nop
    org 0Ch
        ret
        nop
        nop
        nop
    org 10h
        ret
        nop
        nop
        nop
    org 14h
        ret
        nop
        nop
        nop
    org 18h ;вектор int6 UART'a
        jmp RXD_INT
        nop
    org 1Ch
        ret
        nop
        nop
        nop
    org 20h
    INIT:
    ;_______УСТАНОВКА СТЕКА____________________________
        LXI     SP, RAMTOP
    
    ;_______УСТАНОВКА КОНТРОЛЛЕРА ПРЕРЫВАНИЙ____________________________
        MVI    A, 00010110b    ; (СКИ1) ICW1 = addr000xxxxx, edge, x4, single, no ICW4
                    ; таблица векторов пока прибита гвоздями в ПЗУ
        OUT    PICa0
        MVI    A, 00000000b    ; (СКИ2) ICW2 = addr00000000 
        OUT    PICa1
        MVI    A, 10111111b    ; (СКО1) OCW1 = mask 
        OUT    PICa1
    
    ;_______УСТАНОВКА ТАЙМЕРА____________________________
        MVI    A, 00111110b    ; Chanel 0, LSB then MSB, mode 3, Binary
        OUT    TIM2CMD
        MVI    A, 2000000 / 16 / 9600    ; Divider LSB (2Mhz / 16 / 9600)
        OUT    TIM2C0
        MVI    A, 0            ; Divider MSB
        OUT    TIM2C0
    
    ;_______УСТАНОВКА_УСАПП_В_ИСХ._СОСТОЯНИЕ________
        MVI    A, 01H
        OUT    CW51
        OUT    CW51
        MVI    A, IR
        OUT    CW51
    ;_______ЗАПИСЫВАЕМ_ИНСТРУКЦИЮ_РЕЖИМА____________
        MVI    A, 01001110b ;4Eh  = 1stop, no parity, no control, 8 bit, 16x
        OUT    CW51
    ;_______ЗАПИСЫВАЕМ ИНСТРУКЦИЮ КОМАНДЫ___________
        MVI    A, TXEN+DTR+RXE+RTS
        OUT    CW51
    
    ;_______Обнуляем счетчик и указатель приемника___________
        xra    A
        sta    RXCNT
        sta    RXPNT
    
        ei
    
    ;***********************************************************
    ; Основной цикл
    ;***********************************************************
    LOOP:
        CALL    RXD             ;получаем в акк символ из буфера или перенос
        jc    LOOP        ;перенос? - буфер пуст
        CALL    TXD             ;возвращаем символ обратно
        cpi    "@"        ;спецсимвол? 
        jz    LOOP1           
        MVI    A,"#"           ;выводим символ квитанции
        CALL    TXD
        JMP    LOOP
    LOOP1:
        lxi    H, MSG        ;в HL адрес сообщения
        call    TXHL            ;выводим сообщ по HL
        call    PR_MSG          ;выводим сообщение следующее непосредственно за
        db    "QWERTY",0
        jmp    LOOP
    
    
    ;***********************************************************
    ; ПОДПРОГРАММА ПЕРЕДАЧИ БАЙТА ИЗ АККУМУЛЯТОРА
    TXD:
        push    PSW
    ;_______ЖДЕМ_ГОТОВНОСТИ_________________________
    TX1:
        IN    CW51
        ANI    TXRDY+DSR
        CPI    TXRDY+DSR
        JNZ    TX1
    ;_______ПЕРЕДАЕМ_БАЙТ___________________________
            pop    PSW
        OUT    DAT51
        RET
    
    ;***********************************************************
    ; ПОДПРОГРАММА ПРИЕМА БАЙТА В АККУМУЛЯТОР
    ; перенос - признак пустого буфера
    RXD:
        lda    RXCNT        ;загружаем позицию приема        
        push    B
        mov    B, A
        lda    RXPNT        ;загружаем позицию чтения           
        cmp    B               ;сравниваем
        pop    B
        stc
        RZ                      ;совпало - буфер пуст - выходим с переносом
        push    H
        mov    L, A            ;не совпало...
        mvi    H, RXBUF        ;в HL позиция чтения буфера
        inr    A           ;увеличили
        sta    RXPNT       ;обновили
        mov    A, M            ;загружаем из буфера
        cmc
        pop    H
        ret
    
    ;***********************************************************
    ; ОБРАБОТЧИК ПРЕРЫВАНИЯ RXD
    RXD_INT:
        di
        push    PSW
        push    H
        lda    RXCNT        ;загружаем текущую позицию
        mov    L, A
        mvi    H, RXBUF        ;в HL позиция буфера
        inr    A           ;увеличиваем
        sta    RXCNT       ;обновляем
        in    DAT51           ;читаем принятый байт
        mov    M, A        ;заносим в буфер
    
        mvi    A, 00100000b    ; СКО2а обычный конец прерывания
        out    PICa0
        pop    H
        pop    PSW
        ei
        ret
    
    ;***********************************************************
    ; п/п вывода сообщения размещенного сразу после комманды "CALL PR_MSG"
    ; вход: [PC]-адрес начала сообщения
    ; выход: [PC]-адрес начала кода продолжения программы
    PR_MSG:
        pop H
        call TXHL    ; вызов п/п вывода строки по [HL]
        pchl        ; equivalent folowing 2 commands:
        ;PUSH H
        ;RET
    
    ;***********************************************************
    ; ПОДПРОГРАММА ПЕРЕДАЧИ Z-ended строки по [HL]
    TXHL:
        mov     A, M
        inx H            ;увеличиваем HL перед проверкой для корректного возврата из PR_MSG
        ora     A        ;проверка на конец строки
        rz    
        call    TXD
        jmp TXHL
    
    ;***********************************************************
    MSG:
        db "ASDFH",0
    
    ;_____________ВНЕШНИЕ МЕТКИ И КОНСТАНТЫ_______
    RAMTOP    =    77FFH    ; Верхушка стека
    RXCNT    =    6000H    ; Счетчик принятых символов
    RXPNT    =    6001H    ; Указатель буфера
    RXBUF    =    61H    ; MSB адреса буфера приемника
    ;
    
    ;___АДРЕСА_РЕГИСТРОВ_УСАПП______________________
    DAT51    =    48H    ; РЕГИСТР ДАННЫХ
    CW51    =    49H    ; РЕГИСТР КОМАНД
    
    ;___АДРЕСА_РЕГИСТРОВ_ТАЙМЕРОВ______________________
    TIM1C0    =    50H    ; Timer c0
    TIM1C1    =    51H    ; Timer c1
    TIM1C2    =    52H    ; Timer c2
    TIM1CMD    =    53H    ; Timer cmd
    
    TIM2C0    =    58H    ; Timer c0
    TIM2C1    =    59H    ; Timer c1
    TIM2C2    =    5AH    ; Timer c2
    TIM2CMD    =    5BH    ; Timer cmd
    
    ;___АДРЕСА_РЕГИСТРОВ_КОНТРОЛЛЕРА_ПРЕРЫВАНИЙ_____
    PICa0    =    78H    ; 
    PICa1    =    79H    ; 
    
    ;
    ;___КОМАНДЫ ВВ51________________________________
    TXEN    =    01H    ; ПЕРЕДАТЧИК ВКЛЮЧЕН
    DTR    =    02H    ; УСТРОЙСТВО ГОТОВО
    RXE    =    04H    ; ПРИЕМНИК ВКЛЮЧЕН
    SBRK    =    08H    ; ПРЕРЫВАНИЕ ПЕРЕДАЧИ
    ER    =    10H    ; СБРОС ОШИБОК ПРИЕМА
    RTS    =    20H    ; ПЕРЕДАЧА РАЗРЕШЕНА
    IR    =    40H    ; ПРОГР. СБРОС УСАПП
    EH    =    80H    ; РАЗРЕШЕНИЕ ПОИСКА СИНХРОСИМВОЛА
    ;
    ;__РЕГИСТР СОСТОЯНИЯ ВВ51_______________________
    TXRDY    =    01H    ; ПЕРЕДАТЧИК ГОТОВ
    RXRDY    =    02H    ; ПРИЕМНИК ГОТОВ
    TXE    =    04H    ; ПЕРЕДАЧА ЗАКОНЧЕНА
    PE    =    08H    ; ОШИБКА ЧЕТНОСТИ
    OE    =    10H    ; ПЕРЕПОЛНЕНИЕ ПРИЕМНИКА
    FE    =    20H    ; ОШИБКА ФОРМАТА
    SYNDET    =    40H    ; СИНХРОСИМВОЛ НАЙДЕН
    DSR    =    80H    ; ПЕРЕДАТЧИК ДАННЫХ ГОТОВ
    [свернуть]
    Последний раз редактировалось TomaTLAB; 13.08.2017 в 02:35.

  4. #264
    Member
    Регистрация
    18.01.2010
    Адрес
    Крым
    Сообщений
    128
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всё не читал, но видел что была дискуссия по поводу вывода на ВГ75... В 90-х делал как то эмулятор терминала на нём. Там штук 8 мс кажись всего, 80х25, поддерживалось несколько кодировок (КОИ-8, ALT в т.ч.) - переключение на лету, с клавиатуры. Ну а скроллинг был, ПУЛЯ! Не успевал кнопки жать.)) PC отдыхало.))
    Вспоминаю, этот видео-терминал был прикручен к Ленинграду-2 в виде маленкой платки, с FDD контроллером. Что позволяло иметь полноценную CP/M и полноценный Синклер с FDD. И даже что то, кажись, отлаживалось из CP/M в Синклере...
    Эх, молодость!

  5. #265
    Master Аватар для TomaTLAB
    Регистрация
    09.03.2017
    Адрес
    г. Троицк
    Сообщений
    607
    Спасибо Благодарностей отдано 
    124
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Терминалу и видеокарте на ВГшке вот тут кости мыли http://zx-pk.ru/threads/26455-chto-m...suzhdenie.html

  6. #266
    Member
    Регистрация
    18.01.2010
    Адрес
    Крым
    Сообщений
    128
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Считаю что для CP/M подходит как нельзя лучше. Ну может несколько громоздко (кстати, без ВТ57!), зато вписывается в ту эпоху.)) А то как то Z80 и PIC24/32... не совсем, как по мне.))

  7. #267
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от M80 Посмотреть сообщение
    Считаю что для CP/M подходит как нельзя лучше. Ну может несколько громоздко (кстати, без ВТ57!), зато вписывается в ту эпоху.)) А то как то Z80 и PIC24/32... не совсем, как по мне.))
    если сохранилось что-то по вашему терминалу в виде воспроизводимого решения, опубликуйте обязательно если не жалко: нам всё пригодится
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  8. #268
    Guru
    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    С побился поюзать в ВГ75 в 80Г.. Видимо мой детский мозг отверг этот чудный девайс
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

  9. #269
    Member
    Регистрация
    18.01.2010
    Адрес
    Крым
    Сообщений
    128
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    если сохранилось что-то по вашему терминалу в виде воспроизводимого решения, опубликуйте обязательно если не жалко: нам всё пригодится
    Есть исходник, по нему можно понять что-куда. Схема не сохранилась, но могу объяснить на пальцах.) Нужно?
    Хотя смотрю, сейчас люди делают терминал на одной меге328. Совсем просто.)

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

    Коль тема о компьютере для CP/M, поделюсь своей реализацией.
    Одна платка (в корпусе роутера, ~10х15 см), выпилил из устройства)).
    Z80H 8 MHz, 64 RAM (2x 62256), 2x 256 Flash диск (2x AT29c020), RTC (DS12887), 2x RS232 38400 (2x 8251).
    Поставил QP/M (та же CP/M 2.2 + RTC). Простенько, никаких движущихся частей.))

  10. #270
    Master Аватар для TomaTLAB
    Регистрация
    09.03.2017
    Адрес
    г. Троицк
    Сообщений
    607
    Спасибо Благодарностей отдано 
    124
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от M80 Посмотреть сообщение
    ...на одной меге328. Совсем просто.)
    Неспортивно

    ...поделюсь своей реализацией.
    Если не жалко, тоже выкладывайте исходники, интересно будет глянуть.
    И если не схему, то хотя бы карту памяти и описание адресного дешифратора, что куда когда переключается.

Страница 27 из 30 ПерваяПервая ... 2324252627282930 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Посоветуйте компьютер для сборки!
    от Demige в разделе Для начинающих
    Ответов: 16
    Последнее: 17.02.2012, 18:07
  2. Куплю FDD для Atari XL/XE или в комплекте компьютер+дисковод
    от Нrundel в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 22.01.2007, 13:06
  3. Лучший компьютер.
    от Shiru в разделе Зарубежные компьютеры
    Ответов: 12
    Последнее: 22.05.2005, 14:01

Ваши права

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