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

User Tag List

Страница 18 из 23 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя
Показано с 171 по 180 из 225

Тема: Специалист. Ваши мысли?

  1. #171
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от OrionExt
    Хотя. Долго репу чухал. Где интересно. Закинул удочку на ОРИОН. Все - молчком. Даже котик в угол забился. Выбрал MSX. Тут непаханая земля.
    О чём это вы? Бессвязная реплика непонятно о чём. Если есть вопрос, напишите мне в личку. Или лучше откройте тему, задайте чёткий вопрос.

    По поводу ухода c ОРИОНА на MSX.

    Переходите лучше на СПЕЦИАЛИСТ, он приятнее, т.к там нет ORDOS. Я в 1991 из платы ЭКСПРЕСС сделал ОРИОН (только 16-ти цветный режим, без 4-х цветного, т.к видимо предвидел, что его никто использовать не будет). Фото этой, правда уже распотрошённой, платы где-то было.

    А Вы сделайте наоборот. Превратите ОРИОН в СПЕЦИАЛИСТ с дополнительными банками ОЗУ. Это делается очень просто, думаю часа хватит. Достаточно перекинуть пару проводков в видеогенераторе, чтобы экран переместился на 9000, добавить дешифратор ИД7 на область C000...FFFF (для получения чип-селектов РФ2-рых и В/У), и напаять РФ2 с загрузчиком и монитором в 2 этажа (это из-за того, что в ОРИОНЕ всего одна панелька под ПЗУ).

    И даже, если напаять две РФ2 одна на другую станет проблемой, то можно обойтись и одним ПЗУ на самой плате. Если сами не хотите кодировать, то попросите меня и я странслирую Вам загрузчик, который будет работать по идеологии ОРИОНА. А именно, он будет по сбросу читать из ROM-диска 2 кб и грузить его на C800...CFFF.

    Кстати, OrionExt, поставил Вам "спасибо" за наводку. Вы подсказали отличную идею. Мне тоже удобно сделать эту переделку, т.к на плате ОРИОНА всё нужное уже есть, даже системный разъём.

    Тем более, что у меня есть безхозный дохлый ОРИОН, где на месте излишнего 3-го ППА стоит ВИ53. А удобно мне это тем, что там уже стоит слот для РК-КНГМД, турбированный Z80, есть готовый ROM-диск и тем, что такой СПЕЦИАЛИСТ становится инструментальным благодаря наличию второго ППА. Так что, каждому кто соберётся это делать, смогу дать подетальную инструкцию по переделке ОРИОНА в СПЕЦИАЛИСТ.
    Последний раз редактировалось barsik; 11.12.2017 в 09:16.

  2. #172
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,403
    Спасибо Благодарностей отдано 
    314
    Спасибо Благодарностей получено 
    595
    Поблагодарили
    441 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    А Вы сделайте наоборот. Превратите ОРИОН в СПЕЦИАЛИСТ с дополнительными банками ОЗУ. Это делается очень просто, думаю часа хватит. Достаточно перекинуть пару проводков в видеогенераторе, чтобы экран переместился на 9000, добавить дешифратор ИД7 на область C000...FFFF (для получения чип-селектов РФ2-рых и В/У), и напаять РФ2 с загрузчиком и монитором в 2 этажа (это из-за того, что в ОРИОНЕ всего одна панелька под ПЗУ).
    Не получится. Если бы ты сравнивал схемы Спеца и Ориона, ты бы заметил несколько фактов: Специалист использует логику ИЛИ, поэтому гашение и синхра идут до экрана (отсюда и странная адресация 9000, т.к. синхра идет при сканировании 8000-8FFF), а Орион использует логику И, и синхра получается после экрана (попадает на F000-FFFF). Влоб переделать без ухищрений никак (это, например, экран переключить с 8000 и добавить сумматор ИМ3, как это сделано в ЮТ88).

  3. #173
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan
    Не получится
    Как говорил пан начальник тюрьмы в ВА-БАНК-2 - "Не вижу препятствий".

    Кого волнует при каких весах счётчиков схема формирует сигнал BORDER. Всё отличие схем лишь в том при каких весах счётчиков экран гасится, а при каких идёт растр. Это и определяет положение экрана в сегменте размером в 16 кб.

    В базовом СПЕЦИАЛИСТЕ коэффициент деления счётчика по строкам - 64. Сигнал BORDER формируется при весах счётчиков 0...15 (тогда видеочасть адресует 8000...8FFF), а изображение идёт при весах счётчика 16...63. ССИ формируется при весах счётчика от 4 до 7. VIDEO идёт в течение 48 весов, гашение 16 весов. Полный период строчной развёртки 64 МКСЕК, из них растр выводится 48 МКСЕК, 16 МКСЕК на обратный ход луча. Потому экран СПЕЦИАЛИСТА с трудом влезает или немного не влезает в экран телевизора (но на видео мониторе отлично).

    В базовом ОРИОНЕ коэффициент деления счётчика по строкам - 80. Изображение формируется при весах от 0 до 47, гашение при весах от 48 до 79. При каких весах идёт ССИ не знаю, не разбирался, но где-то посередине гашения. Растр выводится в течение всего 38 МКСЕК из 64 МКСЕК строчного периода. Из-за чего экран неудачный, плющенный по горизонтали.

    Чтобы СПЕЦИАЛИСТ переделать в ОРИОН с тактом 2 МГЦ, достаточно поменять логику формирования гашения по строкам. Так, чтобы изображение читалось из памяти при весах счётчика от 0 до 47, гашение было при весах от 48 до 63, а ССИ формировался при весах 48+4...48+7. И всё. Визуально растр не меняется, но картика идёт уже из ОЗУ 8000...AFFF. Остаётся только открыть ОЗУ до F400 и поменять 0 на 1 на входе мультиплексора, чтобы переместить экран на C000. Если нужен такт 2.5, нужно поменять и общий кофф-т деления с 64 до 80. Всё это делается за 30 минут с закрытыми глазами.

    Чтобы из ОРИОНА сделать СПЕЦИАЛИСТ достаточно сделать всё наоборот. Перекидываем один провод (46 цепь) чтобы вернуть растр в "лоно церкви", т.е вернуть коэфф-т деления до 64, что отплющивает экран (кварц 8 МГЦ). Гашение по строкам делаем из весов H16 и H32 объединив их на 'ИЛИ'. ССИ формируем логикой, или как приятнее - на ИД7 (т.к центровка растра юстируется). Выкусываем ТМ7 задающую один из 4-х экранов и подаём вместо сигналов с неё на мультиплексоры 0 и 1, чтобы экран был там где надо. Вот и всё. Это делается одной левой рукой с завязанными глазами.

    PS. Кстати ход мысли у автора ОРИОНА был совершенно правильный, у него архитектура размещения экрана намного грамотнее, чем в СПЕЦИАЛИСТЕ, а если А.Волкову так уж требовался именно килограмм ПЗУ, то можно было сделать отключение ПЗУ.

    У меня был СПЕЦИАЛИСТ в котором 4 кб ПЗУ стояло с адреса 0. При старте эти 4 кб копировались на C000 и ПЗУ отключалось. На 1 корпус больше, а возможности на порядок выше, 100% совместимость, но режим FULL RAM 62 кб. Это легко делается на плате ЭКСПРЕСС и позволяет оперативно менять ROM-BIOS, но главное даёт максимум ОЗУ.

    У меня даже сохранился ROM-BIOS этого компьютера в варианте, когда код ПЗУ СПЕЦИАЛИСТА грузится на C000 не из ПЗУ а с МГ ленты. Это - своеобразный вариант для бедных (а я бы сказал, что это вариант для умных), здесь только одно ПЗУ РФ2 стоящее с адреса 0.

    Это ПЗУ называется SHADOWY-ROM и является одновременно и самой простой и самым грамотной доработкой архитектуры СПЕЦИАЛИСТА (даёт FULL RAM и гибкость при 100% совместимости).

    Ниже представленный исходник прошивается в РФ2, добавив на адрес 500H код фонта взятый из ленинградского ПЗУ D000 СПЕЦИАЛИСТА (с отступом тоже в 500H, что в ОЗУ оказывается на адресе D500).

    По нажатию на сброс запускается программа автонастройки на скорость с поиском пилотона (так что можно нажимать на сброс до начала пилотона) и затем с ленты грузится блок подпрограммой МГ-ввода с использованием прозрачной загрузки, разработанной В.Ивинских в 1988. На экране в правом верхнем углу бежит большими буквами счётчик, показывающий куда вводится текущий байт. После ввода блока, если КС совпала, то происходит запуск программы на начало введённого блока и ПЗУ отключается, включая тем самым FULL RAM с загруженным куда угодно ROM-BIOS любого размера.

    Теневое ПЗУ не обязано быть 2 кб, а может быть до 32 кб, т.к сигналом MEMDI по сбросу блокируется ОЗУ в адресах 0...7FFF. Таким образом расходом в пару корпусов получается СПЕЦИАЛИСТ с ПЗУ 32 кб и ОЗУ 62 кб. Польза от ПЗУ не в его объёме, а в том, что из ПЗУ ниже 8000 можно работать с экраном, т.е иметь мощный ROM-BIOS с поддержкой оконности и, при желании, даже Windows-интерфейс с мышью.

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


    Код:
    ; ЗАГРУЗЧИК ДЛЯ ТЕНЕВОЙ ROM
    
    ; Для ЭВМ где нет основного ПЗУ.
    ; ROM-BIOS загружается с ленты этим загрузчиком.
    
    ; Знакогенератор 8*8 (не 6*8) пришивается с адреса 500H
    
    RUSPPA	EQU	0FF03H
    PORTB	EQU	0FF01H
    PORTC	EQU	0FF02H
    
    HISCRN	EQU	0C000H		; байт сразу за концом экрана
    COUNTR	EQU	0A660H		; экр.адрес куда выв-ся счётчик
    STACK	EQU	0BFFAH
    CLD	EQU	0BFFFH		; константа ввода
    ASTART	EQU	0BFFDH		; адрес загрузки и старта
    
    YBFFB	EQU	0BFFBH
    YBFFC	EQU	0BFFCH
    
    	ORG	0       	; В ТЕНЕВОМ ПЗУ
    
    L09:JMP START
    
    START:
        MVI  A,82H
        STA  RUSPPA
        CALL PILIK
        LXI  SP,HISCRN
        LXI  B,0300H
    ;    LXI  H,0
        MOV  H,C
        MOV  L,C
    CLS:PUSH H
        PUSH H
        PUSH H
        PUSH H
        PUSH H
        PUSH H
        PUSH H
        PUSH H
        DCX  B
        MOV  A,B
        ORA  C
        JNZ  CLS
        LXI  SP,STACK
        CALL CONST
        CALL PILIK
        JMP  LOAD
    
    BYTE8: MVI  A,8
        
    L16:PUSH B
        PUSH D
        MOV  D,A
        LDA  CLD
        MOV  B,A
        MVI  C,0
    L15:LDA  PORTB
        ORI  0FEH		; 1111 1110
        CMA
        ORI  0CH		; 0000 1100
        MOV  E,A
    L11:LDA  PORTB
        ORI  0FEH
        CMA
        ORI  0CH
        CMP  E
        STA  RUSPPA
        JZ   L11
        RRC
        MOV  A,C
        RAL
        MOV  C,A
        CALL L12
        XRA  A
        ORA  D
        JP   L13
        MOV  A,C
        XRI  0E6H
        STA  YBFFB
        INR  A
        CPI  02H
        JNC  L15
        MVI  D,09H
    L13:DCR  D
        JNZ  L15
        LDA  YBFFB
        XRA  C
        POP  D
        POP  B
        RET
    
    LOAD:MVI  A,0FFH
        CALL L16
        MOV  L,A
        CALL BYTE8
        MOV  H,A
        SHLD ASTART
        CALL BYTE8
        MOV  E,A
        CALL BYTE8
        MOV  D,A
    L19:
        CALL BYTE8
        MOV  M,A
        CALL L18
        INX  H
        JNZ  L19
        CALL BYTE8
        MOV  L,A
        CALL BYTE8
        MOV  H,A
        XRA  A
        STA  PORTC
        PUSH H
        LHLD ASTART
        CALL L1B
        POP  H
        MOV  D,B
        MOV  E,C
        CALL L18
        CNZ  L48
        CALL PILIK
        LHLD ASTART
        PCHL
        
    L18:MOV  A,H
        CMP  D
        RNZ
        MOV  A,L
        CMP  E
        RET
    
    L12:PUSH B
        PUSH D
        PUSH H
        LXI  D,YBFFC
        LDAX D
        INR  A
        STAX D
        ANI  03H
        MOV  D,A
        RAR
        RAR
        JC   L1E
        MOV  E,H
        JMP  L1F
    
    L1E:MOV  E,L
        DAD  H
    L1F:RLC
        MOV  A,E
        JNC  L20
        DAD  H
        JMP  L21
    
    L1B:LXI  B,L09
    L23:MOV  A,M
        ADD  C
        MOV  C,A
        PUSH PSW
        CALL L18
        JZ   L22
        POP  PSW
        MOV  A,B
        ADC  M
        MOV  B,A
        INX  H
        JMP  L23
    
    L22:POP  PSW
        RET
    
    L20:RRC
        RRC
        RRC
        RRC
        NOP
    L21:ANI  0FH
        ADI  10H
        CPI  1AH
        JC   L24
        ADI  07H
        JMP  L25
    
    L24:CMP  M
        DAD  H
    L25:LXI  H,00A0H
        ADD  L
        MOV  L,A
        DAD  H
        DAD  H
        DAD  H
        MOV  A,D
        XCHG
        LXI  H,COUNTR
        ADD  H
        MOV  H,A
        MVI  C,03H
    L28:LDAX D
        MOV  M,A
        INX  H
        INX  D
        LDAX D
        MOV  M,A
        INX  H
        INX  D
        DCR  C
        JNZ  L28
        LDAX D
        MOV  M,A
        POP  H
        POP  D
        MVI  A,0DCH
        ADD  B
    L29:DCR  A
        JNZ  L29
        POP  B
        RET
        
    CONST:PUSH H
        PUSH D
        PUSH B
    CNST:MVI  D,150		; КРИТЕРИЙ ЗАХВАТА - 150
    CNS2:MOV  B,C           ; ОТМЕТОК ПОДРЯД        
        CALL L2A
        JZ   CNST
        MOV  A,C
        SUB  B
        JNC  CNS3
        CMA
        INR  A
    CNS3:CPI  07H		; КРИТЕРИЙ ПРОПУСКА ОТМЕТКИ
        JNC  CNST
        DCR  D
        JNZ  CNS2
    CNS4:LXI  H,L09
        MOV  B,L
        MVI  D,178		; ДЛИНА УЧАСТКА ПОДСЧЕТА     
    CNS5:CALL L2A
        JZ   CNS4
        DAD  B
        DCR  D
        JNZ  CNS5
        DAD  H
        MOV  A,H
        SUI  03H
        MOV  L,A
        ORA  A
        RAR
        ADD  L
        STA  CLD
        POP  B
        POP  D
        POP  H
        RET
    
    L2A:LDA  PORTB
        RRC
        JC   L2A
        MVI  E,00H
        MVI  C,00H
        CALL L30
    L30:INR  C
        RZ
        LDA  PORTB
        RRC
        XRA  E
        JP   L30
        MOV  A,E
        CMA
        MOV  E,A
        RET
    
    PILIK:PUSH H
        PUSH D
        LXI  H,4060H
        CALL SND
        LXI  H,8030H
        CALL SND
        POP  D
        POP  H
        RET
    
    SND:MOV  E,L
        MVI  A,0E0H
        STA  PORTC
    L34:DCR  E
        JNZ  L34
        MOV  E,L
        XRA  A
        STA  PORTC
    L35:DCR  E
        JNZ  L35
        DCR  H
        JNZ  SND
        RET
    
    L48:MVI  C,06H
    L36:CALL PILIK
        DCR  C
        JNZ  L36
        RET
        
        END
    [свернуть]
    Последний раз редактировалось barsik; 28.03.2018 в 03:17.

  4. #174
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,403
    Спасибо Благодарностей отдано 
    314
    Спасибо Благодарностей получено 
    595
    Поблагодарили
    441 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я все это и без тебя знал. И то, что ты предлагаешь - это заменить применяемую логику на противоположную (И на ИЛИ и наоборот), что не вяжется с "малой кровью". "Малой кровью" это в Орионе зафиксировать экран на 8000H (как ты сказал выкусыванием ТМ7 и закорачиванием сигналов) + установку сумматора для сдвига старшего сканирующего ниббла на 1 (8->9, 9->A, A->B). Остальное не трогаем и в этом вся соль. Минимум переделок.

  5. #175
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Я все это и без тебя знал
    Не сомневался в твоей компетентности. Но в данном случае ты заблуждаешься.

    Ты же сам правильно написал, что сигнал "гашение" при адресации видеочасти в область С000...СFFF (8000...8FFF) в ходе пробега счётчиков от 0 до 63, проще всего получить на вентиле 'ИЛИ'. Применить один вентиль из ЛЕ1 - намного проще чем ставить сумматор ИМ6. Малая кровь получается именно так, как я описал. Число доп.корпусов будет минимальным, а в монохроме возможно вообще ни одного.

    Если найдешь ненужную платку ОРИОНА и согласишься сделать вместе со мной эту переделку, то уже сегодня дам полное описание переделки. ОРИОН в качестве СПЕЦИАЛИСТА хорош тем, что не только даёт необходимые для жизни банки памяти, но и сразу даёт доп.ППА, буферизованную шину, место куда ставить ВИ53 (вместо 3-го излишнего порта), готовые защёлки ИР82 и ИР13 для схемы цвета СПЕЦИАЛИСТА, место, где поставить доп.микросхему для схемы цвета (ЛИ1 или РЕ3 или КП11), а также системный разъём, куда к тому же подходит готовый КНГМД от ОРИОНА.

    Как видишь, плюсов просто множество. Чтобы получить то же самое на плате ЭКСПРЕСС, надо винтами крепить вокруг основной платы кучу дополнительных планок.
    Последний раз редактировалось barsik; 12.12.2017 в 13:46.

  6. #176
    zx_
    Гость

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    У меня был СПЕЦИАЛИСТ на Z80 в котором 4 кб ПЗУ стояло с адреса 0. При старте эти 4 кб копировались на C000 и ПЗУ отключалось. На 1 корпус больше, а возможности на порядок выше, 100% совместимость, но режим FULL RAM 62 кб. Это легко делается на плате ЭКСПРЕСС и позволяет оперативно менять ROM-BIOS, но главное даёт максимум ОЗУ.

    схему хочу
    нарисованную

  7. #177
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,403
    Спасибо Благодарностей отдано 
    314
    Спасибо Благодарностей получено 
    595
    Поблагодарили
    441 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    zx_, посмотри на МХ2, там этот же трюк применен.

  8. #178
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zx_
    Цитата Сообщение от barsik
    У меня был СПЕЦИАЛИСТ на Z80 в котором 4 кб ПЗУ стояло с адреса 0. При старте эти 4 кб копировались на C000 и ПЗУ отключалось. На 1 корпус больше, а возможности на порядок выше, 100% совместимость, но режим FULL RAM 62 кб. Это легко делается на плате ЭКСПРЕСС и позволяет оперативно менять ROM-BIOS, но главное даёт максимум ОЗУ.
    схему хочу, нарисованную
    Схемы нет, но она очевидна. Позже, скорее всего, сделаю себе такой же вариант, потому что при этом удобно тестировать код ROM-BIOS при его модификациях, - не требуется УФ-очистка и прошивка ПЗУ.

    Схема состоит из "открытого ОЗУ" на месте ПЗУ С000...F7FF и ПЗУ 2764 включённого с 0. В качестве сигнала для отключения ПЗУ использовался сигнал НП (начальный пуск). Этот сигнал НП, управляющий теперь теневым ПЗУ, убирается сам когда начинает работать код загрузчика на С000 и ПЗУ само отключается. Но в связи с занятием этого бита ППА на цвет, при КР580 удобно использовать INTE (в Z80 выход INTE отсутствовует).

    155 ИД4 выдающий чип-селекты ПЗУ перепаивается так, чтобы он давал чип-селекты 0...7FF и 800...FFF, а чип-селект для ППА FE00 получается из 555 ЛА2.

    При Z80 и когда для КР580 жалко на это тратить INTE, для отключения ПЗУ ставится RS-триггер из двух вентилей из ЛА3. На один его вход - /RESET на другой /CS от дешифратора ИД4 на адрес 3800. Тогда закончив копирование из ПЗУ в ОЗУ процессором делаем обращение на 3800 и RS-триггер опрокидывается отключив ПЗУ, отчего получается FULL RAM 0...F7FF.
    Последний раз редактировалось barsik; 11.12.2017 в 21:22.

  9. #179
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию многостраничный ROM-диск от ОРИОНА

    Не знаю как в миру принято расширять ROM-диск ОРИОНА, но предлагаю вариант для ленивых. Это актуально также и для СПЕЦИАЛИСТА. В ОРИОНЕ ROM-диск занимает адреса F500...F5FF, а в СПЕЦИАЛИСТЕ FE00...FEFF.

    Удивлены, что у СПЕЦИАЛИСТА возможен ROM-диск? Хотя ROM-диск конкретно для СПЕЦИАЛИСТА и не опубликовали в журнале, но после публикации ОРИОНА всем стало ясно, что ROM-диск полезен. Я и ранее подключал внешний ROM к СПЕЦИАЛИСТУ, т.к ПЗУ 27256 стояло наряду с РУ7-ми на плате эл.диска (предназначено для хранения нортона для эл.диска). Но ROM-диск от ОРИОНА проще, т.к не требует доп.деталей. ПЗУ в адресном прострнастве СПЕЦИАЛИСТА предназначено вовсе не для хранения резидентных прикладных программ, а для ROM-BIOS (и подкачки оттуда CP/M BDOS, что важно чтобы поднять TPA).

    Поэтому в начале 90-тых, имея три ROM-диска ОРИОНА, было удобно иметь такой же ROM-диск и на СПЕЦИАЛИСТЕ. В качестве программы для использования ROM-диска, использовалась, естественно не ORDOS, а ROM Service размером в 300 байт. Её преимущество в том, что ROM-диск можно оперативно компоновать под конкретную задачу. Файлы не обязаны располагаться впритык другу к другу. Начала файлов находятся сканированием с шагом в 10H. Для этого в начале файла стоит заголовок опознаватель FD FD... в общем, кажется 5 байтов. Затем имя, адрес загрузки, адрес старта и размер файла. Потому было удобно набирать ROM-диск из 2764 или РФ2. А все оперативно нужные программы хранить в отдельных ПЗУ. Это придумал не я, это концепция ROM-дисков в западных ЭВМ.

    Даже без калькулятора ясно, что на порт ВВ55 и в СПЕЦИАЛИСТЕ и в ОРИОНЕ отведено целых 256 адресов, тогда как ППА нуждается всего в 4-х адресах. Это и позволяет иметь банковость ROM-диска без доп.железа. Используем идею сэра Клайва Синклера (точнее инженеров, что разработали ему ZX-Spectrum) применённую для сканирования клавиатуры. Идея в том, чтобы в качестве чип-селектов (или адресов A16...A19) использовать адреса в самих командах для доступа к железу. Из 8 адресов A0...A7 четыре адреса A4, A5, A6, A7 удобно использовать для обращения к конкретным ПЗУ.

    Обычно достаточно двух банок ROM-диска. Тогда при A4=0 выбирается страница 0, а при A4=1 читается страница 1. Если это две ПЗУ 27512, то выборка делается подачей 0 на /CS. А если это огромное ПЗУ объёмом в 128 кбайт, то A4 с шины просто подаётся на A16 ПЗУ. Для ОРИОНА сохраняется совместимость с банкой 0 ПЗУ. А вторая банка предназначена вовсе не для ORDOS и лазить туда программам ORDOS незачем.

    ROM-диск от ОРИОНА устроен так. Из порта A читается содержимое ПЗУ. Адрес в ПЗУ записывается в PB и PC. При чтении из адреса F500/FE00 читается нулевая банка ПЗУ, а при чтении из F510/FE10 читается вторая банка ПЗУ. И никаких дополнительных расходов деталей. Если разъём ROM-диска как в ОРИОНЕ - СНП-30, то в нем остаются свободными 2 контакта. Через один удобно подавать +12В для УФ-прошивателя, а через второй как раз я пропускал адрес A4 с шины. Двухстраничный ROM-диск удобен, если внешнее устройство медленное, например магнитофон или медленный обмен с PC по проводной линии. Тогда, чтобы не загружать всякий раз при включении RAM-диск, удобно все часто нужные программы прошить в 128 кб. Этого объёма обычно хватает.

    Для CP/M невыгодно подкачивать BDOS+CCP с дискеты, как это было в антикварных CP/M. Это неудобно тем, что по каждому ^C DOS долго перезагружается, но главное, тогда все дискеты должны быть системными, что сокращает полезный объём. BDOS+CCP выгоднее подкачивать из ОЗУ (других банок, если они есть) или, в крайнем случае, из ПЗУ или ROM-диска. Это позволяет увеличить TPA на 6 кб. Но главное при этом то, что тогда дискеты становятся всеядными, т.е пригодными для версий CP/M с любой вершиной TPA. Т.е не надо иметь отдельно дискеты для CP/M с TPA в 28 кб, отдельно дискеты для TPA 35 кб и отдельно для TPA в 54 кб. Это немаловажное преимущество.

    В плате ЭКСПРЕСС, если есть верхнее ОЗУ в адресах E000...F7FF (туда загружаются DOS), то ПЗУ остаётся всего 8 кб (как раз на 4 панельки для РФ2). Причём из 8 кб 6 кб уже занято ROM-BIOS. И не остаётся ни 6 кб ПЗУ, чтобы оттуда подкачивать BDOS+CCP, а тем более нет и 10 кб, чтобы хранить там всю CP/M или другую DOS. Потому и пришлось использовать ROM-диск, тем более, что и доп.ППА и ROM-диск уже есть в наличии.

    Однако ROM-диск даёт ещё одно преимущество. Можно использовать загрузку системы по сбросу из ROM-диска (это принцип ОРИОНА). Тогда, на плате оставляют только одно ПЗУ РФ2 (с адреса 0) с стартовой программой. Она по сбросу грузит 4 кб из ROM-диска на C000 и делает JMP C000. После чего сигнал НП автоматически выключает ПЗУ. Выгодно сделать загрузку разных ROM-BIOS. Тогда если при нажатии на кнопку СБРОС удерживать клавишу <НР>, то из ROM-диска загрузится альтернатиный ROM-BIOS или же программа меню позволяющая выбрать систему.

    Для СПЕЦИАЛИСТА ROM-диск полезен, если нет много ПЗУ на самой основной плате, а надуманные принципы не позволяют это ПЗУ странично расширить за счёт применения 27256 или 27512. Но, в принципе, если есть большое ПЗУ на основной плате, а готовых ненужных ROM-дисков под рукой нет, то ROM-диск и не нужен, в ограниченных пределах его может заменить большое ПЗУ на основной плате СПЕЦИАЛИСТА, если иметь страничную коммутацию ПЗУ.

    Без страничного ПЗУ в 8 кб ничего особо полезного туда не прошить, а отказываться от верхнего ОЗУ в пользу ПЗУ просто глупо, т.к ОЗУ намного полезнее. А вот в страничное ПЗУ можно прошить систему, будь то какая-то странная система для МГ-версии на базе microSD или DOS с поддержкой винчестера и РК-КНГМД.

    Но вот, когда объёма ПЗУ 27256 не хватает для размещения всех желаемых программ, тогда наступает время для ROM-диска размером в 128 или даже 512 кб.
    Последний раз редактировалось barsik; 15.12.2017 в 12:29.

  10. #180
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fifan
    Есть ли у кого предложения по добавлению программ, которые будут находится в системном ПЗУ?
    Как говорил Андрей Миронов в каком-то кинофильме "Такие вопросы, господин посол, с кондачка не решаются. Нам надо посоветоваться с товарищами, зайдите на недельке."

    А если серъёзно, то действительно, в данном вопросе ни в коем случае спешить не стоит. Мы уже многократно свидетели, что плохой ROM-BIOS в бытовом компьютере наносит много вреда. Вообще я (а также и разработчики всех остальных ЭВМ в мире) считаю, что прикладным программам, типа текстовых редакторов, ассемблеров и т.п. вовсе не место в адресном пространстве процессора. Оно слишком дорого, т.к может использоваться с гораздо большей пользой.

    В ПЗУ стоящее в адресном пространстве разумно прошивать ROM-BIOS, т.е набор драйверов для обслуживания железа. А для хранения прикладных программ следует использовать внешние носители, такие как дисковод, винчестер, их эмуляторы, 'microSD' с прямым доступом (с которым по SPI напрямую работает основной CPU), устройства на базе 'microSD' с контроллером и DOS поддерживающей FAT32 прошитой в микроконтроллер (от vinxru) и если этого нет, то резидентные программы хранят в ROM-диске объём которого не ограничен.

    'MicroSD' с контроллером кому-то удобен, но мне несимпатичен, т.к консервирует магнитофонный вариант ЭВМ. Уж лучше купить на Али дешёвый китайский эмулятор дисковода который стОит всего 1000 рублей, хранит данные во флэшке, которую легко вытащить и переставить в другой такой же эмулятор стоящий на другой ЭВМ. Это даёт 1000 и более дискет 720/1440 кб и самый удобный способ хранить и переносить программы из IBM PC в рэтро компьютеры. Это и лампово, т.к вместо эмулятора можно поставить настоящий дисковод с настоящими раритетными дискетами.

    На сегодняшний день базовый СПЕЦИАЛИСТ остаётся единственным бытовым компьютером, который не имеет ни дисковода, ни винчестера, ни RAM-диска или даже ROM-диска. Он "умер" до того, как эти устройства стали приемлемыми по цене и доступными широким массам любителей. Это несправедливо и нуждается в исправлении. СПЕЦИАЛИСТ - лучший компьютер СССР и должен иметь то же, что имеют все другие бытовые компьютеры той эпохи..

    Естественно, если ПЗУ в СПЕЦИАЛИСТЕ достаточно большое, то там хватит места и для ROM-BIOS и для десятка прикладных программ. Но как показала практика и в этом случае разумно хранить в ПЗУ только те программы, что используются чаще всего. А это в первую очередь программы типа Нортон, служащие для управления файлами на внешних носителях. Это м.быть Нортон конкретной DOS, которую предпочитает пользователь или коммандер обеспечивающий интерфейс с 'microSD' с контроллером от vinxru.

    Я уже писал, что практически единственный вариант получить большое ПЗУ, это страничное ПЗУ с окном максимально доступного размера. Из-за присутствия В/У в области F800, единственным кратным размером является 8 кб, а единственным окном, где эти 8 кб можно коммутировать, является окно C000...DFFF, т.к только в этом случае возможно прямое подключение управляющих битов к адресным входам ПЗУ. Если это окно поставить, например в область D000...EFFF, то понадобится дополнительный кодопреобразователь адреса (например 556 РТ4 или ИМ6).

    Для страничного переключения нужны биты и взять их можно только напаяв 555 ТМ9 вторым этажом на какую-то стоящую на плате микросхему. Адрес этого регистра несущественен. Если кто-то принципиально не хочет иметь дешифратор ИД7 на область F800, то в качестве строба записи в регистр можно использовать чип-селект F000...F7FF.

    Если же этого не делать и оставить ПЗУ нестраничным, то даже, если включить 27256 на весь участок, то свободно будет всего 6 кб, т.к на D000 стандартно ставится драйвер КОИ-8 или шрифта 8*8, драйвера других МГ-форматом (ZX, MSX, ОРИОН), драйвер принтера и уФ-прошиватель. Нет смысла обсуждать, что можно зашить в 6 кб. Это каждый может выбрать сам. В 6 кб не влезет даже бейсик, если не считать TINY-бейсики, которые имеют размер всего в 2 кб.

    Теоретически для случая большого ПЗУ или ROM-диска удобно иметь стартовую программу меню, как это было сделано в ИРИШЕ, ещё в 1984 году. По сбросу выводится меню, где пользователь перемещая балку подсветки выбирает пункт и нажимает <ВК>. Это крошечная программка позволяет пользователям по определённым правилам оформлять свои резидентные программы, прошивая их в внешний ROM-диск или в ПЗУ на основной плате.

    Для систем без внешнего носителя прошиваются тесты, основной RAM-монитор, бейсик, редактор, ассемблер и дизассемблер. А для систем с внешним носителем - загрузчик DOS и, уже невидимо из меню, Нортон для этой DOS. Наличие Нортона в ПЗУ освобождает от необходимости хранить его на всех дисках. Тогда по выходу из программы, нортон будет быстро перезагружаться из ПЗУ, а не писать на экране поставьте дискету с нортоном.

    Я считаю, что в ПЗУ стОит прошить цветные драйверы VT52 D6, D7 и D8, драйвер мыши, драйвер аппаратной клавиатуры, подпрограммы чтения/записи сектора для дисковода, винчестера, RAM-диска и 'microSD' с доступом процессора. В идеале было бы иметь в ПЗУ GUI интерфейс такой же как в Apple MAC-128.

    Это вполне реально. Заметим, что первоначально в Макинтош собирались ставить 8-ми разрядный процессор и иметь моно-экран с размерами точно как у СПЕЦИАЛИСТА 384*256. Т.е инженеры не сомневались, что скоростей 8-ми разрядки хватит для такого графического интерфейса.

    Кроме того, в ПЗУ надо иметь загрузчики разных DOS и загрузчик программы обслуживания 'microSD' от vinxru. В качестве DOS, в связи с нехваткой памяти разумно использовать самые минимальные по объёму DOS, а я знаю только 2 подходящие по этому критерию системы, это DOS А.Мамонтова для "Львова" и DOS Е.Седова для РК86. Любая DOS может работать с любым носителем, для смены носителя достаточно поменять две подпрограммы.

    Аксиомой при всех доработках ПЗУ должна остаться совместимость с загрузчиком А.Волкова и с монитором Орлова, причём не только по стандартным точкам, но и по внутренним. Дополнительные устройства должны подключаться на вектора, как это сделано в ленинградском мониторе СПЕЦИАЛИСТА и в ОРИОНЕ. Благодаря векторам резидентные в ПЗУ подпрограммы подменяются другими подпрограммами, находящимися в ОЗУ или ПЗУ. Так в упомянутом мониторе, чтобы включить другой шрифт достаточно нажать НР+F2, а чтобы изменить МГ-формат на MSX достаточно нажать НР+F3, чтобы отформатировать VDISK - НР+F5, а старт коммандера НР+F6.

    Вышеприведённым хочу сказать, что ROM-BIOS СПЕЦИАЛИСТА для более удобного программирования для него программ с более красивым интерфейсом должен быть изменён. Это не может быть решено с кондачка и сделано за 1 день. ROM-BIOS дорабатывают годами, тем более, когда стоит условие совместимости с точками не сгруппированными как принято в начале кода, а раскиданными по всему ПЗУ.

    Просто вставить в ПЗУ драйверы, слегка переделав само ПЗУ, чтобы ввести вектора и добавить п/п-ммы чтения/записи доп.банок ОЗУ можно быстро, но пока только для Z80, т.к код драйверов нуждается в очистке от команд Z80 и переделке под другой алгоритм цвета. Но что-то рабочее сделаю до Нового Года. Тогда можно будет посмотреть в эмуляторе CP/M и RK-DOS с встроенным VDISK-ом. Сейчас я занят конверсией RK-DOS и её утилит на другие адреса и адаптацией CP/M для обоих типов КНГМД (программный РК-КНГМД и аппаратный c БИС ВГ93).

    Буквально сегодня я получил конфиг для EMU80 для эмуляции СПЕЦИАЛИСТА в котором не только есть выбор Z80/КР580, ROM-диск от ОРИОНА, верхнее ОЗУ, 4 доп.банки ОЗУ, 4-х страничное ПЗУ, два дисковода РК-КНГМД и на ВГ93, но и есть возможность отключать ПЗУ, давая сплошные 62 кб ОЗУ. Это позволяет удобно отлаживать и использовать любые ROM-BIOS.

    Заметим, что глупые возражения, о том что это уже не СПЕЦИАЛИСТ неверны. Для программы без разницы работает она в ПЗУ или в ОЗУ, а доп.банки ОЗУ ничуть не хуже чем любой другой носитель, т.к служат только для RAM-диска. А т.к остальное железо и его адреса не меняются, то о чем тут говорить? Из существенных доработок - только доп.банки ОЗУ. Но это только для меня и тех кто ценит удобство. Раз прикладное ПО о этих банках не знает и, соответственно, не использует, то это никому не мешает, также как контроллер 'microSD' от vinxru.
    Последний раз редактировалось barsik; 28.03.2018 в 03:25.

Страница 18 из 23 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Мысли о памяти
    от SfS в разделе Память
    Ответов: 28
    Последнее: 16.12.2006, 10:49
  2. мысли по написанию модуля эмуляции z80 на С
    от boo_boo в разделе Эмуляторы
    Ответов: 9
    Последнее: 24.01.2006, 19:28
  3. Странные мысли
    от acidrain в разделе Несортированное железо
    Ответов: 162
    Последнее: 18.08.2005, 09:21

Ваши права

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