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

User Tag List

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 82

Тема: Хочу писать программы для ретрокомпьютеров

  1. #11
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,996
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    С его кучей способов адресации
    Часто позволяющей одной командой сделать то, на что на других процах (включая Z80) уйдёт несколько...

  2. #12
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,552
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    272
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    181 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Часто позволяющей одной командой сделать то, на что на других процах (включая Z80) уйдёт несколько...
    ...только часто медленнее, чем на спеке выполняются эти несколько, даже если есть практическая польза от той команды
    Прихожу без разрешения, сею смерть и разрушение...

  3. #13
    Member
    Регистрация
    18.01.2021
    Адрес
    п. Новый Ургал
    Сообщений
    145
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    "Опять! Ну, теперь стало быть, пошло, пропал калабуховский дом." (с) Собачье сердце
    Блог проекта "The Goonies для БК11М"
    БК-0011М, БК-0011М-01, SMK-512, AZ

  4. #14
    Master
    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    905
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    205
    Поблагодарили
    153 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    одной командой сделать то, на что на других процах (включая Z80) уйдёт несколько...
    Это да, но после простых и понятных записей асма Z80 команды вида MOV 2000(Rx),@#ADR заставляют поднапрячь мозги =)
    Особенно если до этого никогда таких адресаций не видел. Тут минимум неделю лазишь в справочник, чтоб не запутаться.
    При переходе с высокоуровневого языка оно, конечно, лучше: не нужно расписывать кучу команд для нужного действия.
    Уже упомянутый спорный момент о том, какой код в итоге будет быстрее, для начального освоения асма считаю второстепенным.
    Но именно на ретрокомпьютерах стоит все же учитывать все нюансы, вплоть до объема программы в (кило)байтах и времени исполнения кода.
    Это так, для "широких масс", возможно, читающих данный топик в будущем. Не ленитесь сравнивать и проверять разные варианты кода.

  5. #15
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,996
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    команды вида MOV 2000(Rx),@#ADR заставляют поднапрячь мозги =)
    Мне уже достаточно давно интересно - с каких времен необходимость - поднапрячь мозги - у программистов стала вызывать такое неприятие?

    И что, на этапе освоения
    Цитата Сообщение от reddie Посмотреть сообщение
    минимум неделю лазишь в справочник, чтоб не запутаться
    это прям такой неподъёмный срок?

    И я просто молчу, сколько по времени надо лазить в справочник при освоение x86 даже в варианте 8086/8088.

    А так же вспоминаю, что в своё время пришлось выписать ВСЕ варианты допустимого использования в командах регистров на 8080

    Ну и для разминки мозгов - кусок кода, написанный на языке MACRO-11
    Код:
      ;
      ; R2 R3
      ;
      PROCEDURE CNV
      BEGIN
        LET R0 := #BUF
    
        THRU R4 := #EBUF-BUF
    
          LET (R0)+ :B= #SPACE
    
        END
    
        LET -(SP) := #4
    
        LOOP
    
          LET R4 := #0
          LET R5 := #0
    
          LOOP
    
            IF R2 EQ #0 AND R3 LO R1 LEAVE LOOP
    
            ADD #1, R5
            ADC R4
    
            SUB R1, R3
            SBC R2
    
          END
    
          LET (SP) := (SP) - #1
    
          IF RESULT IS EQ THEN
            LET -(R0) :B= #SPACE
            LET (SP) := #3
          END
    
          LET -(R0) :B= R3
          LET (R0)  :B= (R0) SET.BY #'0
    
          LET R2 := R4
          LET R3 := R5
    
          IF R2 EQ #0 AND R3 EQ #0 LEAVE LOOP
    
        END
    
        POP
    
        RETURN
      END CNV
    Честно говоря - надо бы его переписать - ибо жутко медленный, но пока не парит
    Последний раз редактировалось Hunta; 16.03.2022 в 16:33.

  6. #16
    Master Аватар для Sandro
    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    590
    Спасибо Благодарностей отдано 
    27
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    115 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    Это да, но после простых и понятных записей асма Z80 команды вида MOV 2000(Rx),@#ADR заставляют поднапрячь мозги =)
    Особенно если до этого никогда таких адресаций не видел. Тут минимум неделю лазишь в справочник, чтоб не запутаться.
    Ну не знаю. По мне всё просто и понятно, запутываться просто негде. Особенно, если знаешь, как эти команды кодируются. Это на Z80 надо запоминать, почему нельзя сделать LD IX, HL, и надо перепихивать через стек.

    А вообще, если кто хочет действительно крышесносящего ассемблера, то вот вам PIC:

    Код:
    MOVLW 2H
    MOVWF 3H
    MOVLW 4H
    ADDWF 3H, 0
    Что делает эта программа?

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

  8. #17
    Activist Аватар для ALS
    Регистрация
    14.09.2012
    Адрес
    г.Севастополь
    Сообщений
    427
    Спасибо Благодарностей отдано 
    234
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В регистр W заносится число 6. В регистре STATUS устанавливаются флаги Z и DC.
    Но, наверное, что-то еще происходит, да ?
    Последний раз редактировалось ALS; 16.03.2022 в 18:36.

  9. #18
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,683
    Спасибо Благодарностей отдано 
    422
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну МАКРО это не аргумент! Понятно, что на МАКРО любой начинающий без напряга напишет, особенно имея под рукой примеры.
    А вообще любой язык, язык программирования в том числе, для освоения требует практики. Аргумент против восьмеричной системы это не аргумент! Это ж не 32-ричная и не двоичная системы. И не китайский язык!
    По поводу желания запускать программы на реальном железе это конечно похвально, только требует немалых финансовых затрат.
    Воспроизводить то же PDP-8 на транзисторах с ферритовой памятью в единичном экземпляре тут даже миллиона долларов не хватит. Да и смысл? Разве что в музее где-то сидеть за пишущей машинкой Консул, привлекая внимание публики, любящей острые ощущения. Набивать перфокарты и вводить код с них есть желающие?

  10. #19
    Veteran Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,154
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    23 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Также можно писать для радио-86рк совместимых компьютеров. Они достаточно просто устроены, и ассемблер простой. А потом перейти уже на z80, потому что z80 это расширенная версия 8080.

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

    Denn (18.03.2022)

  12. #20
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,611
    Спасибо Благодарностей отдано 
    2,183
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    106 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kuprin Посмотреть сообщение
    Помогут ли мне эти знания, если я хочу писать игры для ретро компьютеров? Или там требуются знания basic и ассемблера? Может все-таки есть какие-то компьютеры, для которых существуют кросс-компиляторы?
    Даже независимо от юзаемой ретро-платформы я рекомендую использовать именно кросс-компиляторы и писать на Си со встроенным асмом. Какие-то зачатки асма всё равно понадобятся, это будет неплохой старт в асм, а уверенно писать на асме целиком Вы сможете не раньше, чем через год или несколько. И то в случае почти ежедневной практики. Я знаю 8080 и Z80 довольно хорошо, но на PDP-11 до сих пор пишу очень неуверенно.

    Итак. Для PDP-11 есть порт GCC (MINGW). Там, правда, есть некоторые трудности, но уж что поделать, привыкайте, это ретро.
    https://www.1801bm1.com/files/pdp11/cross-compilers/

    Для Z80 лучше всего взять SDCC: http://sdcc.sourceforge.net

    Для 8080 берём z88dk: https://z88dk.org

    По тонкостям всех этих компиляторов есть гуры. Лучше всего иметь такого гуру под боком, чтобы задавать ему тонну глупых вопросов.

    Да, кстати, я освоил все эти компили и использую их в качестве бэк-эндов при написании программ для ретро-платформ на Обероне (через трансляцию в Си).

    Почему я сразу говорю про гур. Потому что кроме компиляторов понадобятся утилиты, библиотеки, подпрограммы на ассемблере, приёмы их стыковки к Си-коду. И да, не слушайте "ассемблерщиков". Это профи, они хотят выжимать из ретро-машинок их максимум. Ваша же задача другая - вообще понять что к чему и сделать хоть что-то. А там дальше талант-упорство-мотивация покажут. Может вообще не понравится, слишком заморочливо.

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 105
    Последнее: 10.02.2020, 18:51
  2. Программы для Apple II
    от sergey2b в разделе Apple
    Ответов: 3
    Последнее: 17.03.2019, 14:51
  3. Для спектрума можно писать на FASM
    от ZX_NOVOSIB в разделе Программирование
    Ответов: 5
    Последнее: 23.07.2017, 21:22
  4. Программы для модемов
    от p@lex в разделе Софт
    Ответов: 21
    Последнее: 11.02.2006, 21:36

Ваши права

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