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

User Tag List

Показано с 1 по 2 из 2

Тема: EXTENDED MEMORY DETECTION

  1. #1
    Master Аватар для VELESOFT
    Регистрация
    04.04.2007
    Адрес
    Praha
    Сообщений
    752
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию EXTENDED MEMORY DETECTION

    As I see - all ZX clones with more than 128kB memory use port #7FFD only (Pentagon 256,512,1024) or #7FFD+NEXT PORT.

    For example:
    Scorpion 256/1024 : 7FFD + 1FFD
    Kay 1024 : 7FFD + 1FFD
    ZXM Phoenix : 7FFD + 1FFD
    ZX PROFI 1024 : 7FFD + DFFD

    Programs/games/utilities can use software autodetection of memory paging port. But access to ports #DFFD or x1FFD can on different ZX clones/models write value to other ports. Broblem is uncomplette ports adressation in hardware.

    Example:
    LD BC,#7FFD
    LD A,#40
    OUT (C),A
    LD B,#DF
    LD A,#01
    OUT (C),A
    This code set on ZX PROFI memory bank 8, but on real ZX Spectrum 128/+2A/+3 or Pentagon 128/256/512/1024 write value #01 to AY register port #FFFD.

    Next example:
    LD BC,#7FFD
    LD A,#40
    OUT (C),A
    LD B,#1F
    OUT (C),A
    This code set on Scorpion 256 memory page 0 and on Scorpion 1024 page 16. On real ZX Spectrum 128/+2/Pentagon 128 write value #40 for port #7FFD = set memory page 0 + 128 editor + videoram 0. On Pentagon 256/512 write value #40 to paging port #7FFD = set memory page 8 + 128 editor + videoram 0. On ZX PROFI 1024 write value #40 to port #7FFD and parallel to port #DFFD = memory page 6 in area #8000-#BFFF and page 0 from #C000.

    Result:
    - access to port #1FFD is dangerous for using in ZX PROFI 1024
    - access to port #1FFD change port #7FFD on some ZX models/clones
    - access to port #DFFD set AY register value on some ZX models/clones

    Correct way for memory detection is:
    1) as first can be detected ZX PROFI memory
    2) detect high bits D6 and D7 on port #7FFD (Pentagon 256/512)
    3) if bit D2 of port #EFF7 can disable and enable high memory on port #7FFD then also bit D5(1MB ram) can be tested = Pentagon 1024 detected
    4) test Scorpion port 1FFD (as first bust be set port #1FFD and as second port #7FFD !!!).
    If extra memory is detected, you can't continue in test memory port for other ZX clones !!!

    Any other idea ?

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

  3. #2
    Master Аватар для Keeper
    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от VELESOFT Посмотреть сообщение
    Any other idea ?
    Sure

    1. Setup
    2. Conditional compilation

    Higher memory detection is not the best way, for example, because of probable locks of the port #7FFD...

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

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

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

Похожие темы

  1. RAMDISC in TR-DOS and ZX128 page detection
    от VELESOFT в разделе Оси
    Ответов: 1
    Последнее: 22.12.2009, 01:23
  2. Hardware detection of NMI
    от VELESOFT в разделе Зарубежные модели
    Ответов: 1
    Последнее: 07.12.2009, 13:28
  3. Extended memory and SNApshots in emulators
    от VELESOFT в разделе Эмуляторы
    Ответов: 6
    Последнее: 01.09.2009, 22:41
  4. gfx extended :)
    от riskej в разделе Графика
    Ответов: 12
    Последнее: 06.08.2008, 17:58
  5. BASIC + Paged memory
    от valker в разделе Программирование
    Ответов: 5
    Последнее: 15.05.2007, 14:17

Ваши права

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