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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 28

Тема: Порты памяти - Scorpion и др.

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Member Аватар для ASMAN
    Регистрация
    19.02.2005
    Адрес
    Украина, Одесса
    Сообщений
    124
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation Порты памяти - Scorpion и др.

    ЛЮДИ!!! У кого есть побитная раскладка портов памяти Scropion, KAY и др. Мне для игры срочно нужно! Желательно раскладка выше 128к!
    Иначе будет работать торлько на Пнтагонах...

    Вот я например знаю, что у Пентагона:
    Порт - 7FFD: биты
    0-2 - ОЗУ 0-7 страницу (версия 128кб)
    3 - режим видеостраницы (0/1 экран)
    4 - бит 128/48 RAM Basic
    5 - режим совместимости с обычным Спекки 48кб (в версии 1мб - переключение верхних 512кб)
    6,7 - неиспользуются (в версии Пент256,512 - определяют по 8 страниц высшей памяти)
    А как быть с 4мб ? Это мне нужно для БУДУЩЕГО АССЕМЛЕРА который я уже подумываю делать параллельно с ДЮНОЙ! То STORM уже приелся! Ничего толком не сделаешь.. а другие не удобные и в некоторых даже еще хуже!

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

  3. #2
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,258
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    раскладку портов побитово не помню. кидаю драйвера памяти из VS. думаю, разберешься

    Код:
    FSTPAGE
            XOR A
    
    PAGE    PUSH BC     ;переключатель страниц
    PAGES   EQU $+1
            CP 6
            JP NC,ERRORT
            LD (CURPAG),A
            CP 2
            JR C,PP1
            CP 4
            JR C,PP2
            INC A
    PP2     INC A
    PP1
            IFN ?HIMEMDRV+1
            JP PENT128
            ENDIF 
    
    PENT128 AND 7
            OR 16
    OUTR    LD      BC,32765
            OUT     (C),A
    ERRORT_ POP     BC
            RET 
    
            IFN ?HIMEMDRV+1
    SETDRIVER
                            ;HL-ADRESS A-MAX PAGES
            LD (PP1+1),HL
            LD (PAGES),A
            RET 
    
    
    PENT512 LD C,A
            AND 24
            RLA 
            RLA 
            RLA 
            LD B,A
            LD A,C
            AND 7
            OR B
            JR PENT128+2    ;13
    
    SCORP256
            LD (S1+1),A
            AND 8
    S3      RLA 
            LD BC,#1FFD
    S2      OUT (C),A
    S1      LD A,0
            AND 7
            OR 16
            LD B,#7F
            JR OUTR+3       ;21
    
    PROFI
            LD (S1+1),A
            AND 56
            RRCA 
            RRCA 
            RRCA 
            LD BC,#DFFD
            JR S2           ;12
    
    ATM     LD (S1+1),A
            AND 24
            RRCA 
            RRCA 
            RRCA 
            LD BC,#FDFD
            JR S2
    
    SCORP1024
            LD (S1+1),A
            LD C,A
            AND 8
            LD B,A
            LD A,C
            AND 16+32
            RLA 
            OR B
            JR S3
            ENDIF

  4. #3
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
     Вот описание всех получивших распространение стандартов: 
     
    					 ----------------------------
    					 ----- Стандарты памяти -----
    					 ----------------------------
     
    Для переключения памяти в Scorpion, KAY, Profi и ATM1 используется 2
    порта - это #7ffd (0, 1 и 2-ой биты) + биты дополнительного порта.
     
    Для Pentagon и ATM2 используется один порт (только #7ffd).
     
    					 --------- Pentagon ---------
     
    256K - используется 6-ой бит #7FFD
    512K - используются 6 и 7 биты #7FFD
    1024K - используются 5, 6 и 7 биты #7FFD
    4096K - используются 5, 6, 7 биты #7FFD + 0,1 биты #AFF7
     
    Примечание насчет последних двух: 5-ый бит в оригинальном спектруме
    служит для отключения порта #7FFD, посему есть вероятность оказаться в
    48-ом режиме.
     
    				------------ Scorpion/KAY ------------
     
    256К - используется 4-ый бит #1FFD (Scorpion и KAY)
    512K - не бывает
    1024K Scorpion - используются 4, 6 и 7-ой биты #1FFD
    1024K KAY - используются 4 и 6 биты #1FFD + 6-ой бит #7FFD
     
    						 ----- Profi -----
     
    256К-1024К - используются 0, 1 и 2 биты #DFFD
     
    Примечание: На Profi физически присутствует 4 линейки памяти (значения
    0,1 2,3 4,5 и 6,7 в порту #DFFD). Линейки могут быть запаяны как РУ5
    (64Кб), так и РУ7 (256Кб). Если памяти 1Мб, то все просто - стоит 4
    линейки по 256Кб. Но большое количество Profi имеет 256К, 512К, 768К и
    576К(!) памяти. Например, в Profi 576K используется 0,1,2,3 банки и четверть
    7-ой банки памяти.
     
    						 ----- ATM-1 -----
     
    256К - не бывает
    512K - используются 0 и 1 биты #FDFD
    1024К - используются 0, 1 и 2-ой биты #FDFD
     
    Насчет 1024K: на оригинальном ATM-1 всегда было только 512Кб. 2-ой бит
    порта #FDFD использовался при подключении ПЗУ объемом не 64Кб (27512)
    как обычно, а 128Кб (271000). Он выбирал дополнительные 4 странички.
    Но этот наворот практически никогда и нигде не использовался, даже в
    ATM-2 (хотя сейчас разрабатывается новое ПЗУ на все 128Кб для ATM-2,
    но не для ATM-1). Так что этот бит практически являлся неиспользуемым,
    что и позволило народным умельцам его задействовать. То есть стандарт
    неофициальный.
     
    						 ----- ATM-2 -----
     
    256К и 512К - может и были, но я никогда не слышал
    1024K: есть 2 способа адресации страниц: с использованием #7ffd+#fff7 и
    только через #fff7. В #fff7 биты записываются инвертированные!
    Раскладка битов порта #FFF7 такая:
    0-5 - номер страницы (0-63).
    6 - определяет, что это за страница: 0 - ROM, 1 - RAM
    7 - Определяет сочетание #FFF7 и #7FFD. А именно: 0 - определяет
    страницы только порт #FFF7, а 1 - инвертированные D0-D2 порта #FFF7
    заменяются на неинвертированные D0-D2 из порта #7FFD. Биты старше них
    продолжают браться из порта #FFF7.
     
    Сам порт #FFF7 доступен только из TR-DOS ПЗУ. Биты в него записываются
    инвертированные! Пример работы:
     
    	 LD BC,#FFF7
    	 LD A,n
    	 CPL
    	 CALL OUTC
    	 ...
     
    OUTC LD HL,#2A53 ;здесь OUT (C),A:RET
    	 PUSH HL
    	 JP #3D2F

  5. #4
    Member Аватар для ASMAN
    Регистрация
    19.02.2005
    Адрес
    Украина, Одесса
    Сообщений
    124
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking Порты, шморты...

    Цитата Сообщение от Spectre
    Код:
     Вот описание всех получивших распространение стандартов: 
     
    					 ----------------------------
    					 ----- Стандарты памяти -----
    					 ----------------------------
     
    Для переключения памяти в Scorpion, KAY, Profi и ATM1 используется 2
    порта - это #7ffd (0, 1 и 2-ой биты) + биты дополнительного порта.
     
    Для Pentagon и ATM2 используется один порт (только #7ffd).
     
    					 --------- Pentagon ---------
     
    256K - используется 6-ой бит #7FFD
    512K - используются 6 и 7 биты #7FFD
    1024K - используются 5, 6 и 7 биты #7FFD
    4096K - используются 5, 6, 7 биты #7FFD + 0,1 биты #AFF7
     
    Примечание насчет последних двух: 5-ый бит в оригинальном спектруме
    служит для отключения порта #7FFD, посему есть вероятность оказаться в
    48-ом режиме.
     
    				------------ Scorpion/KAY ------------
     
    256К - используется 4-ый бит #1FFD (Scorpion и KAY)
    512K - не бывает
    1024K Scorpion - используются 4, 6 и 7-ой биты #1FFD
    1024K KAY - используются 4 и 6 биты #1FFD + 6-ой бит #7FFD
     
    						 ----- Profi -----
     
    256К-1024К - используются 0, 1 и 2 биты #DFFD
     
    Примечание: На Profi физически присутствует 4 линейки памяти (значения
    0,1 2,3 4,5 и 6,7 в порту #DFFD). Линейки могут быть запаяны как РУ5
    (64Кб), так и РУ7 (256Кб). Если памяти 1Мб, то все просто - стоит 4
    линейки по 256Кб. Но большое количество Profi имеет 256К, 512К, 768К и
    576К(!) памяти. Например, в Profi 576K используется 0,1,2,3 банки и четверть
    7-ой банки памяти.
     
    						 ----- ATM-1 -----
     
    256К - не бывает
    512K - используются 0 и 1 биты #FDFD
    1024К - используются 0, 1 и 2-ой биты #FDFD
     
    Насчет 1024K: на оригинальном ATM-1 всегда было только 512Кб. 2-ой бит
    порта #FDFD использовался при подключении ПЗУ объемом не 64Кб (27512)
    как обычно, а 128Кб (271000). Он выбирал дополнительные 4 странички.
    Но этот наворот практически никогда и нигде не использовался, даже в
    ATM-2 (хотя сейчас разрабатывается новое ПЗУ на все 128Кб для ATM-2,
    но не для ATM-1). Так что этот бит практически являлся неиспользуемым,
    что и позволило народным умельцам его задействовать. То есть стандарт
    неофициальный.
     
    						 ----- ATM-2 -----
     
    256К и 512К - может и были, но я никогда не слышал
    1024K: есть 2 способа адресации страниц: с использованием #7ffd+#fff7 и
    только через #fff7. В #fff7 биты записываются инвертированные!
    Раскладка битов порта #FFF7 такая:
    0-5 - номер страницы (0-63).
    6 - определяет, что это за страница: 0 - ROM, 1 - RAM
    7 - Определяет сочетание #FFF7 и #7FFD. А именно: 0 - определяет
    страницы только порт #FFF7, а 1 - инвертированные D0-D2 порта #FFF7
    заменяются на неинвертированные D0-D2 из порта #7FFD. Биты старше них
    продолжают браться из порта #FFF7.
     
    Сам порт #FFF7 доступен только из TR-DOS ПЗУ. Биты в него записываются
    инвертированные! Пример работы:
     
    	 LD BC,#FFF7
    	 LD A,n
    	 CPL
    	 CALL OUTC
    	 ...
     
    OUTC LD HL,#2A53 ;здесь OUT (C),A:RET
    	 PUSH HL
    	 JP #3D2F
    Спасибо Spectre!!! С меня бутилька!

  6. #5
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию вообще проблемы памяти

    на себя компилятор (АСьМ то есть) должен брать, уж давно пора универсальный memBANKchanger внедрять во все асмы...
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  7. #6
    Veteran Аватар для lvd
    Регистрация
    23.01.2005
    Сообщений
    1,113
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV
    на себя компилятор (АСьМ то есть) должен брать, уж давно пора универсальный memBANKchanger внедрять во все асмы...
    Угу, и главное, ООП не забыть бы внедрить...

  8. #7
    Master
    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Spectre
    Вот описание всех получивших распространение стандартов:
    В дополнение к 4Мб Пентагону.

    ...Теперь при сбросе бита 2 порта #EFF7 в нуль память выше 128
    будет открываться и 48я защелка - блокироваться. А при установке
    его в единицу будет закрыт доступ к памяти выше 128К и 48я за-
    щелкой можно будет пользоваться...

    Взято из "Схема подключения 4Mb 30pin SIMM к компьютерам типа "Пентагон" (C) AXLR'98, (R) CompoWellcome'00
    axor/Perspective
    http://abzac.retropc.ru/

  9. #8
    Master
    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию По драйверу памяти вообще

    А вообще для уменьшения длины драйвера памяти лучше писать не универсальный драйвер, который строит таблицу страниц, а драйвер для конкретного клона. Такой драйвер будет занимать байт 30 (а то и меньше). Т.е., например, как это делается в Аласме.
    axor/Perspective
    http://abzac.retropc.ru/

  10. #9
    Member Аватар для ASMAN
    Регистрация
    19.02.2005
    Адрес
    Украина, Одесса
    Сообщений
    124
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    А вообще для уменьшения длины драйвера памяти лучше писать не универсальный драйвер, который строит таблицу страниц, а драйвер для конкретного клона. Такой драйвер будет занимать байт 30 (а то и меньше). Т.е., например, как это делается в Аласме.
    ТАкой будет в DEB!

  11. #10
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    А вообще для уменьшения длины драйвера памяти лучше писать не универсальный драйвер, который строит таблицу страниц, а драйвер для конкретного клона. Такой драйвер будет занимать байт 30 (а то и меньше). Т.е., например, как это делается в Аласме.
    Это да. Но если тебе нужна в программе поддержка сразу всех стандартов, то такие минидрайверы будут достаточно много места занимать. Например ассемблеру это подходит (пример Alasm), а коммандеру уже нет.

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 6
    Последнее: 10.09.2013, 16:04
  2. Unreal. Breakpoint на чтение памяти.
    от valker в разделе Эмуляторы
    Ответов: 1
    Последнее: 12.02.2005, 12:58

Ваши права

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