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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 23

Тема: Программирование на Z80 в ассемблере и машинном коде на 48 Kb машине!

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

    По умолчанию Программирование на Z80 в ассемблере и машинном коде на 48 Kb машине!

    Под руками лежит 48 Kb Ленинград (можно c прошивкой Turbo-91), программы Gens и Mons (в ней Я и сам работать не умею) и распечатаны все выпуски журнала ZX Ревю (возможно в плохом качестве, но вообщем-то это не так важно, хотя влияет на работоспособность программ - если что найдем правильное решение методом подбора)!

    Да между прочим для Меня осталась загадкой возможность программирования в машинном коде в области 128 Kb компьютера Пентагон, так как операторы POKE и PEEK как Я понял работают в области 48 килобайт, хотя Я могу ошибаться, но про программирование в машинных кодах в области 128 килобайт никакой литературы найдено не было...
    Последний раз редактировалось alex8418; 21.01.2023 в 23:33.

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

  3. #2
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,813
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    149
    Спасибо Благодарностей получено 
    1,194
    Поблагодарили
    787 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alex8418 Посмотреть сообщение
    про программирование в машинных кодах в области 128 килобайт никакой литературы найдено не было...
    часть памяти подменяется другой, обычно это называется страницей
    Последний раз редактировалось goodboy; 21.01.2023 в 23:54.

  4. Этот пользователь поблагодарил goodboy за это полезное сообщение:

    Barmaley_m (24.01.2023)

  5. #3
    Guru
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,016
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    110 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    помню-помню такую конфигурацию) мне лет 12 было)

    кстати, GENS так-то норм для супер начального уровня) У него каждая строка, помню, нумеровалась как в бейсике.

  6. #4
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,804
    Спасибо Благодарностей отдано 
    253
    Спасибо Благодарностей получено 
    114
    Поблагодарили
    88 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    для супер начального уровня
    Для супер начального уровня imho лучше ZEUS (удобней)
    А нумерация строк вообще необязательно...

  7. Эти 2 пользователя(ей) поблагодарили Destr за это полезное сообщение:

    Barmaley_m (24.01.2023), breeze (28.01.2023)

  8. #5
    Member
    Регистрация
    15.05.2010
    Адрес
    Москва
    Сообщений
    64
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    часть памяти подменяется другой, обычно это называется страницей
    Доброго времени суток goodboy! Напишите если возможно, конкретный пример с оператором POKE, чтобы всем читателям темы было понятно как работать в области 128 килобайт!

  9. #6
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,813
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    149
    Спасибо Благодарностей получено 
    1,194
    Поблагодарили
    787 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alex8418 Посмотреть сообщение
    как работать в области 128 килобайт!
    диапазон адресов тот-же #0000-#FFFF, но 16к #C000-#FFFF можно подменять другим куском памяти.
    сами страницы переключаются через порт (командой OUT)

  10. #7
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,495
    Спасибо Благодарностей отдано 
    227
    Спасибо Благодарностей получено 
    150
    Поблагодарили
    116 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alex8418 Посмотреть сообщение
    чтобы всем читателям темы было понятно как работать в области 128 килобайт!
    Можно посмотреть бейсик-загрузчики игр для 128К.
    Там будут примеры, как подменять память.
    Ну, или можно нагуглить например, https://zxpress.ru/article.php?id=9971
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  11. #8
    Member
    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    100
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А я так вообще не могу понять, при чём здесь PEEK и POKE, когда речь идёт о программировании на ассемблере в машинных кодах (хоть и это звучит несколько дико).

  12. #9
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    224
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чтобы через POKE и PEEK был доступ к 128К памяти, нужно:

    1) Сделать CLEAR 49151, чтобы переместить машинный стек ниже области страниц (49152-65535). В противном случае бейсик сразу подвиснет при попытке переключить страницу
    2) Командами OUT 32765, 16+n, где n - номер страницы от 0 до 7, можно подключать по адресам 49152-65535 нужные страницы памяти по 16Кб каждая. Всего таким образом и получается 128Кб
    3) Командами POKE и PEEK по адресам 49152-65535 можно, соответственно, просматривать и изменять эту память
    4) Содержимое страницы 2 отображается на адреса памяти 32768-49151
    5) Содержимое страницы 5 отображается на адреса памяти 16384-32767
    Как-то так.

  13. #10
    Member
    Регистрация
    15.05.2010
    Адрес
    Москва
    Сообщений
    64
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Чтобы через POKE и PEEK был доступ к 128К памяти, нужно:

    1) Сделать CLEAR 49151, чтобы переместить машинный стек ниже области страниц (49152-65535). В противном случае бейсик сразу подвиснет при попытке переключить страницу
    2) Командами OUT 32765, 16+n, где n - номер страницы от 0 до 7, можно подключать по адресам 49152-65535 нужные страницы памяти по 16Кб каждая. Всего таким образом и получается 128Кб
    3) Командами POKE и PEEK по адресам 49152-65535 можно, соответственно, просматривать и изменять эту память
    4) Содержимое страницы 2 отображается на адреса памяти 32768-49151
    5) Содержимое страницы 5 отображается на адреса памяти 16384-32767
    Как-то так.
    Соболезную по погибшим мирным жителям 14 января 2023 года в городе Днепр, надеюсь на скорейшее установление мира между Нашими государствами! Спасибо Barmaley_m за ответ попробуем реализовать, правда пользователь Bedazzle выложил ссылку в которой оператор OUT 32765 применяется, без цифры 16 после запятой - надо разобраться кто прав! Я так понимаю, что РОКЕ и PEEK в данном случае нужно применять в режиме BASIC 128 ?

    - - - Добавлено - - -

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    А я так вообще не могу понять, при чём здесь PEEK и POKE, когда речь идёт о программировании на ассемблере в машинных кодах (хоть и это звучит несколько дико).
    0xDEAD неправильно перефразировали в ассемблере и машинном коде (будет разбираться программирование и в ассемблере и в машинном коде)! Если Вы программировали в машинном коде, то Ваше возмущение насчёт POKE и PEEK не понятно?

    - - - Добавлено - - -

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Можно посмотреть бейсик-загрузчики игр для 128К.
    Там будут примеры, как подменять память.
    Ну, или можно нагуглить например, https://zxpress.ru/article.php?id=9971
    Спасибо за ответ Bedazzle! Теперь бы разобраться, какой из ответов правильный? Может после всех ответов, у меня наконец появиться время заняться основной работой по теме, а именно написанием примеров программ и по возможности объяснением принципа их работы!

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

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

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

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

Похожие темы

  1. Программирование на ассемблере
    от shuran33 в разделе Вектор
    Ответов: 311
    Последнее: 23.02.2024, 17:00
  2. Программирование на ассемблере
    от tnt23 в разделе Океан-240
    Ответов: 3
    Последнее: 24.01.2019, 00:12
  3. Ответов: 275
    Последнее: 16.12.2018, 23:01
  4. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 01.03.2012, 00:35
  5. Интерфейс эмулятора в коде Z80
    от CityAceE в разделе Эмуляторы
    Ответов: 29
    Последнее: 15.09.2008, 20:23

Ваши права

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