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

User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 27

Тема: Печать двухбайтового числа без знака и со знаком в машкоде

  1. #11

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Пример не помешает.
    В первых версиях Sprite Graber'а имя файла (8 символов) с помощью ROM-editor'а запрашивалось вот так (в буфер по адресу Variables.input_buffer):
    Код:
    @chan_open              equ #1601
    @set_min                equ #16b0
    @editor                 equ #0f2c
    
    @flagx                  equ #5c71
    @k_cur                  equ #5c5b
    @err_sp                 equ #5c2d
    @worksp                 equ #5c61
    
    
    input_line:
            ld hl,flagx
            set 7,(hl)
            set 5,(hl)
            call set_min
    
            ld bc,#0001
            rst #30
            ld (hl),#0d
            ld (k_cur),hl
            ld hl,input_line_exit
            push hl
            ld (err_sp),sp
            call editor
            pop hl
            ld hl,(worksp)
            ld de,Variables.input_buffer
            ld b,#08
    input_line_copy:
            ld a,(hl)
            cp #0d
            jr z,input_line_exit
            ld (de),a
            inc hl
            inc de
            djnz input_line_copy
    input_line_exit:
            ld a,2
            call chan_open
            jp set_min
    - - - Добавлено - - -

    UPD: процедура нещадно портит err_sp, надо сохранять и восстанавилвать, иначе после любого rst #08 в ПЗУ случится вылет в параллельную вселенную.

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

    UPD2: Если случится переполнение буфера или всякое STOP in INPUT, буфер по адресу Variables.input_buffer не изменится. Все подобные спецэффекты можно обрабатывать в процедуре, адрес которой запоминается на стеке перед занесением sp в err_sp. set_min при любом исходе категорически рекомендуется во избежание зажора навсегда памяти в workspace Basic'а. chan_open - по вкусу
    Последний раз редактировалось Alex Rider; 07.01.2017 в 17:14.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  2. #12

    Регистрация
    22.12.2007
    Адрес
    г. Владивосток
    Сообщений
    915
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Немного оффтопа.. А так ли нужна печать средствами ПЗУ? Вот например, меня, как человека кодящего в асме, это отталкивает от изначального использованию ЯВУ на спектруме. Может имеет смысл сделать faq для ассемблерщиков, например начиная с какого адреса стартует прога и как выглядит типовой hellow world в коде. imno, это бы привлекло бы какое-то количество кодеров в ряды ЯВУ-шников. (при всём при этом я без лишних вопросов пишу на PC на delphi и с#, абсолютно не замарачиваясь такими вопросами)
    Последний раз редактировалось SaNchez; 07.01.2017 в 19:01.

  3. #13

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SaNchez Посмотреть сообщение
    А так ли нужна печать средствами ПЗУ?
    Я тоже задавался этим вопросом. Олег ответил. Если в двух словах - это как опция для нешустрых приложений, которым важна компактность библиотек.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  4. #14

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    SaNchez, библиотека Basic появилась в результате работы над портом игры Дурак от Copper Feet, чтобы была возможность легко работать "как на Бейсике". Но кроме неё есть модуль Console, реализующий быстрый ввод-вывод в цветной консоли. Пока в нём только нужные мне возможности, впрок не кодирую, нет смысла. Была надежда, что подтянется пипл, но пока что не видел ни одной библиотечки, сделанной или адаптированной для ZXDev кем-то, кроме меня. Со здешнего форума попытки разрабатывать на ZXDev делали Reobne и AzAtom. Destr видел среду в действии, я ему показывал. Даже что-то вроде хотел делать на ней. Eltaron и Sergey помогли советами. За что всем им спасибо.

    Цитата Сообщение от SaNchez Посмотреть сообщение
    Может имеет смысл сделать faq для ассемблерщиков, например начиная с какого адреса стартует прога и как выглядит типовой hellow world в коде. imno, это бы привлекло бы какое-то количество кодеров в ряды ЯВУ-шников.
    Гм. Я немного не понял. Если это вопросы по ZXDev и Оберону, то отвечу.

    Прога стартует с любого адреса, какой задашь. Хоть из ПЗУ. Адреса кода и данных произвольные.

    Типовой хелловорлд:
    Код:
    MODULE Hello; IMPORT Console;
    BEGIN (*$MAIN*)
    	Console.WriteStr("Hello World");
    END Hello.
    Ассемблерщиков к разработке на ЯВУ так просто не привлечёшь. Они везде видят недостатки данного подхода. Неэффективно. Плохой код. На двадцать тактов и десять байт больше, чем можно на асме. Всё.

  5. #15

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Ассемблерщиков к разработке на ЯВУ так просто не привлечёшь. Они везде видят недостатки данного подхода. Неэффективно. Плохой код. На двадцать тактов и десять байт больше, чем можно на асме. Всё.
    да да и еще не фреймово и вообще тормозно.
    С уважением,
    Jerri / Red Triangle.

  6. #16

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    да да и еще не фреймово и вообще тормозно.
    Ну вот я вроде понимаю зачем изобрели ЯВУ, но проектов, для которых оно надо на Спектруме, для себя не могу придумать. Если сильно постараться, получаются логические игры и системный софт, не особо требовательный к памяти (например, редактор звуков для AY). Можно сделать менюшку к игре если засунуть ее вместе с либами в 128-ю страницу. А, вообще, было бы где развернуться на машинках с турбой и большим объемом памяти типа ZX Evo - написанные на C с SDK игры явно намекают.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

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

  8. #17

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно ещё для привлечения новых людей в разработку, которым трудно сразу врулить в асм. Если будет много библиотек, закодированных на асме старшими товарищами, то "салагам" ;-) будет сильно проще дёргать их из ЯВУ, который в этом случае служит как "клей" между прикладным кодом и низкоуровневым. При этом не нужно думать о регистрах, где какой портится, о стеке и многом другом. А скорости и памяти будет значительно побольше, чем на всяких Мега- и Лазер-Бейсиках и Хайсофт Паскале.

    Кстати, граф. движки типа Nirvana (и даже мой Laser2) можно вполне юзать из ЯВУ, получится очень круто. Логические игры тоже интересно пописать, да. Эстетика какая-то ловится. Меня лично при кодинге на асме тупо ломает, а на Обероне - отдыхаю. ;-)

  9. #18

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Oleg N. Cher, мне казалось что все что можно был обсудить уже обсудили тогда.
    народ пишет для спека на ЯВУ это факт. то что написано на Нирване.
    Да и АГД я думаю тоже конструктор для написания игр.

    НО. правда ли можно поставить знак равенства между
    например REX и Harbinger
    хотя вторая явно сделана с претензией.
    С уважением,
    Jerri / Red Triangle.

  10. #19

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ага. И ещё Чуррера.

    Мир Спекки неисчерпаем, как и темы на этом форуме, иногда всплывают давно уже перетёртые, и опять с упоением обсуждаются ;-)

    Кстати, бывает, появляется новичок, который прям жаждет начать разработку для ZX, ему сразу начинают рассказывать как правильно передавать параметры из Бейсика в машкод. Вместо того, чтобы дать старт в средство простое (я про ZXDev), но качественно превосходящее гибридный Бейсико-машкодовый подход по памяти и по скорости на порядки. Любой "ветеран" сочтёт, что его путь самый путёвый, знач им и надоть всем иттить. ;-)

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

    Сравните. Вызов движка WHAM! для воспроизведения мелодии. Традиционный "ветеранский" способ:

    Код:
    10 POKE 49135,155: POKE 49126,0: RANDOMIZE USR 49100
    Оберон (ZXDev):
    Код:
    Music.Play(Music.TitleMelody, Music.Largo);
    Чувствуете разницу? Мы даже асм сюда приплетать не будем) Именно этому и надо учить новичков-кодеров для ZX. Которых, к сожалению, всё меньше.

  11. #20

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Oleg N. Cher, ты так прям упрямо режешь поперек что я даже удивляюсь
    есть замечательный продукт для новичков - Boriel ZX Basic
    хорошо документированный и удобный для новичка
    даже есть несколько туториалов вот например по созданию пакмана
    С уважением,
    Jerri / Red Triangle.

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

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

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

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

Похожие темы

  1. Вычисление числа Пи на ассемблере
    от perestoronin в разделе Разное
    Ответов: 330
    Последнее: 06.08.2025, 15:04
  2. ABS и SGN в машкоде
    от Oleg N. Cher в разделе Программирование
    Ответов: 19
    Последнее: 10.01.2017, 04:14
  3. Мнемокоманды и числа.
    от ALKO в разделе Программирование
    Ответов: 0
    Последнее: 15.02.2014, 03:49
  4. Определение числа сторон
    от mungo в разделе Внешние накопители
    Ответов: 1
    Последнее: 16.03.2012, 18:06
  5. Дисковод Sankyo - кому знаком?
    от nikor4 в разделе Внешние накопители
    Ответов: 3
    Последнее: 07.10.2011, 06:19

Ваши права

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