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

User Tag List

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

Тема: RAMDISC in TR-DOS and ZX128 page detection

  1. #1
    Master Аватар для VELESOFT
    Регистрация
    04.04.2007
    Адрес
    Praha
    Сообщений
    630
    Благодарностей: 374
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию RAMDISC in TR-DOS and ZX128 page detection

    All TR-DOS versions with ramdisc support must use extended memory with TRD data. But before access to extended memory TRDOS must rewrite paging port #7FFD( = rewrite original value) and detect original memory page. It's possible very easy on ZX PROFI 1024 or SCORPION 1024 via one OUT command + LD A,(xxxx). But on Pentagon 1024 is extra paging bits on same port 7FFD and memory page must be detected via software loop (write ramdom values to actual 128 page and find this values in pages 0-7). But all this variants only detect actual memory page on D0-D2 in port 7FFD. State of D3(videoram) is impossible software detect. So all this TRDOS versions set always first videoram. This will work incorrect on software using trdos services with set second videoram.
    Exist two ways:
    1)extended memory for ramdisc must be paged on different port than 7FFD
    (ATM TURBO 2+ support this paging)

    2)use true reading of paging port value (it's impossible on some ZX clones, only SPRINTER 2000 support possibility read all paging ports )

    My K-MOUSE 2008 also support reading value of paging port 7FFD

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

  3. #2
    Master Аватар для VELESOFT
    Регистрация
    04.04.2007
    Адрес
    Praha
    Сообщений
    630
    Благодарностей: 374
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Fast detection of 128kB memory page

    for ZX PROFI:

    1) in memory pages 8-15 write values 0-7 at adress #FFFF
    fill di
    ld bc,#dffd
    ld a,1
    out (c),a
    ld b,#7f
    ld a,7
    loop dec a
    out (c),a
    ld (#ffff),a
    jr nz,loop
    ld a,16
    out (c),a
    ld b,#df
    xor a
    out (c),a
    ei
    ret

    2) Out of trdos must be always port #dffd set to value 0. After jump to trdos (before call system service) must be detected 128kB ram page:
    read di
    ld bc,#dffd
    ld a,1
    out (c),a ;set next 128kB of extended ZX ram
    ld a,(#ffff) ;read true page number
    ld e,a
    xor a
    out (c),a ;set original 128kB ram
    ld b,a
    ld c,e ;after return BC register contain number of 128kB page
    ei
    ret

    Using and testing in ZX basic:
    1 randomize usr FILL
    2 input "page 0-7 : ";x
    3 out 32765,16+x
    4 print "set page ";x;" / detected page ";usr READ
    5 goto 2

    This tester detect 100% true number of memory page without writing to port #7FFD (32765).

    (On Pentagon 1024 is impossible use this true detection)
    Последний раз редактировалось VELESOFT; 22.12.2009 в 01:27.

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

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

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

Похожие темы

  1. Hardware detection of NMI
    от VELESOFT в разделе Зарубежные модели
    Ответов: 1
    Последнее: 07.12.2009, 13:28
  2. RAMDISC on ZX PROFI
    от VELESOFT в разделе Память
    Ответов: 0
    Последнее: 02.12.2009, 18:54
  3. RAMDISC in TRDOS
    от VELESOFT в разделе Оси
    Ответов: 14
    Последнее: 18.11.2009, 11:36
  4. DivIDE interface - new WEB page
    от VELESOFT в разделе Внешние накопители
    Ответов: 6
    Последнее: 15.05.2009, 21:41
  5. Clones and periprelas page
    от caro в разделе RST#38
    Ответов: 0
    Последнее: 09.01.2008, 11:28

Ваши права

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