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

User Tag List

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

Тема: Как пользоваться памятью 128 к ?

  1. #1
    Member Аватар для женя999
    Регистрация
    02.04.2009
    Адрес
    Москва
    Сообщений
    138
    Благодарностей: 27
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Как пользоваться памятью 128 к ?

    Прошло уже много времени с моего знакомства с компьютером zx spectrum. Писал много всяких программок на бейсике,но до сих пор не знаю и не понимаю как устроена память у spectruma 128 к.

    Первый мой компьютер был 48 кб там я хранил информацию в памяти ну например с 30000 (poke) по 65000 (прибл.) 16384-это экран.
    Потом я купил pentagon 128 и думал что память будет продолжатся дальше,после 65ххх т.е можно было написать 10 poke 75000,255, Но потом понял что такое невозможно.Там вроде переключение происходит.
    Объясните мне подробно как на самом деле?

    я помню мучался но так и не понял .
    А ещё в эмуляторах есть 256 кб и выше это как? тоже как и 128 ?

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

  3. #2
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,234
    Благодарностей: 715
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    128я память организована страничным образом.
    начиная с адреса #c000 (49152) длинною #4000 (16384) находится область, в которую можно включить другую страницу. Этим заведует порт #7ffd, он стандартен для всех 128к машин. какие биты за что отвечают по памяти сказать не могу - скачай какой-нить мануал к фирменной машинке (Кай, Скорпион, ...) там есть пояснения по строению памяти и порядок работы с нею.

  4. #3
    Master Аватар для Andrnow
    Регистрация
    25.06.2005
    Адрес
    Смоленск
    Сообщений
    997
    Благодарностей: 110
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ща расскажу)

    Код:
    Кратко об устройстве SINCLAIR 128
    
            Компьютер SINCLAIR 128 имеет озу объемом 128 К, которое разделено на
           8 банков памяти по 16 килобайт и которые условно нумеруются от 0 до 7.
           В системе имеется регистр конфигурации, который доступен програмистоу
           и имеет адрес 7FFDH. С помощью записи в этот регистр мы  можем менять
           конфигурацию системы  т.е. переключать ПЗУ, банки ОЗУ и т.д.. Регистр
           конфигурации имеет 6 разрядов. Первые три  ( с 0-го по 2-й )  разряда
           определяют один из восьми банков банков, подлюченный в последний сек-
           тор адресного пространства процессора.  3-й  определяет один  из  2-х
           банков, который будет подлючен в первый сектор адресного пространства
           и отображен на экран: 0 - подключен 5-й  банк, 1 - подключен 7-й банк.
           4-й  разряд  определяет  ПЗУ:  0 - подключена прошивка BASIC 128, 1 -
           BASIC 48. 5-й разряд заведует блокировкой записи в регистр конфигура-
           ции:  0 - запись  разрешена,  1 - запись блокированна. Это необходимо
           для работы в режиме SINCLAIR 48.
    
            АДРЕС Z-80         СЕКТОР                             ПЗУ 32К
                          ---------------¬                    --------------¬
            0000-3FFF     ¦     16K      ¦ ___¦0 в разряде 4--+BASIC 128 16K¦
                          ¦  0-й сектор  ¦    ¦1 в разряде 4--+BASIC 48  16K¦
                          +--------------+                    L--------------
            4000-7FFF     ¦     16K      ¦ ___                    ОЗУ 128К
                          ¦  1-й сектор  ¦    ¦1 в разряде 3--+7-й БАНК 16К ¦
                          +--------------+    ¦               ¦6-й БАНК 16К ¦
            8000-BFFF     ¦     16К      ¦    ¦0 в разряде 3--+5-й БАНК 16К ¦
                          ¦  2-й сектор  ¦                    ¦4-й БАНК 16К ¦
                          +--------------+                    ¦3-й БАНК 16К ¦
            C000-FFFF     ¦     16К      ¦--------------------¦2-й БАНК 16К ¦
                          ¦  3-й сектор  ¦     любой из       ¦1-й БАНК 16К ¦
                          L---------------     8-ми           ¦0-й БАНК 16К ¦
                                               БАНКОВ ОЗУ     L--------------
                                    000 в разрядах 2 - 0 - 0-й БАНК
                                    001 ------------------ 1-й БАНК
                                    ...............................
                                    111 ------------------ 7-й БАНК
    Ищу охотников за КМками и медью. Найду – УБЪЮ !!!

  5. #4
    Activist Аватар для DINAMIX
    Регистрация
    02.03.2008
    Адрес
    Ростовская область,город Шахты
    Сообщений
    269
    Благодарностей: 19
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как (на примере) переключать страницы?
    Слава России!

  6. #5
    Guru
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,088
    Благодарностей: 924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В первый сектор ничего не включается. он всегда на своем месте. и он равнозначен банку 5. т.е. если мы включем банк 5 и запишем в #c000 число, то реально оно будет доступно и по #4000. т.е. это одна и та же страница. но вот банк 7 со вторым экраном с областью #4000..#7fff никак не пересекаются.

    Цитата Сообщение от DINAMIX Посмотреть сообщение
    А как (на примере) переключать страницы?
    ld bc,#7ffd ; порт
    ld a,1 ; 1й банк
    or #10 ; пзу 48к
    out (c),a ; переключить!

    после этого в диапазоне #c000..#ffff будет выбранный банк.

    если это юзать из бейсика, то надо зайти сначала в бейсик 128, выполнить там usr 0, сброситься в 48й бейсик, сделать clear XXX (где XXX<49152), и затем уже можно переключать страницы с помощью out 32765,Y+16 (где Y=номеру банка).

    попробуйте сделать out 32765,5+16 и потом что-нить менять в адресах #c000..#daff.

    или out 32765,7+16, потом загрузить картинку по адресу 49152, потом выполнить out 32765,7+16+8.

  7. Эти 3 пользователя(ей) поблагодарили psb за это полезное сообщение:
    DINAMIX (19.08.2009), Evgeny Muchkin (19.08.2009), женя999 (19.08.2009)

  8. #6
    Veteran Аватар для AER
    Регистрация
    18.11.2009
    Адрес
    пгт.Малиновка
    Сообщений
    1,258
    Благодарностей: 804
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я использовал перфикс - ! к командам SAVE, LOAD и сохранял и выводил блоки памяти. Даже писал несколько бейсик программ, которые вызывали друг друга. !SAVE "aaa" - вроде так пишется. (бейсик 128)

  9. #7
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    9,453
    Благодарностей: 3798
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AER Посмотреть сообщение
    !SAVE "aaa" - вроде так пишется
    Немножко наоборот - SAVE! "aaa" и LOAD! "aaa".
    Но все равно прикольно, я не знал о такой фишке в бейсике-128.
    Scorpion ZS 1024 turbo+/ZXMC 2.6/SD-HDD/FDD/AT-Keyb/Mouse/SMUC 2.0/ProfROMse/VGA 3.0/NeoGS
    ZX-Evolution 4096 rev.B

    Сайт с документацией к "Scorpion ZS 256"

  10. #8
    Veteran Аватар для Hacker VBI
    Регистрация
    05.03.2013
    Адрес
    г. Канев, Украина
    Сообщений
    1,552
    Благодарностей: 859
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    подниму тему
    а как из 128 бейсика клацать страницами, кто помнит?
    интересует применительно к бейсик-лоадеру
    по ходу бейсик блокирует переключение
    Последний раз редактировалось Hacker VBI; 16.02.2014 в 21:46.

  11. #9
    Veteran
    Регистрация
    15.07.2009
    Адрес
    Череповец
    Сообщений
    1,251
    Благодарностей: 165
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вначале POKE 23388,Y, потом OUT 32765,Y

  12. Эти 2 пользователя(ей) поблагодарили Gutten за это полезное сообщение:
    Hacker VBI (16.02.2014), Northwood (22.12.2017)

  13. #10
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,555
    Благодарностей: 3215
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    если прога рассчитана только на 128ой бейсик то out можно и не делать,
    там на прерываниях в буфере принтера висит программка которая сама переключает страницы.
    но как показала практика есть компы где нет 128ой прошивки, а порт присутствует.
    ещё в 128ом бейсике можно повесить вызов своей подпрограммы на IM1, тогда не нужна таблица для IM2
    Последний раз редактировалось goodboy; 16.02.2014 в 22:15.

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

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

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

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

Похожие темы

  1. 65xe проблемы с памятью ???
    от goodboy в разделе Atari
    Ответов: 7
    Последнее: 28.02.2009, 23:01
  2. Real Commander как пользоваться ?
    от AAA в разделе Разное
    Ответов: 4
    Последнее: 16.06.2008, 13:12
  3. Ответов: 10
    Последнее: 11.07.2005, 08:05

Ваши права

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