User Tag List

Страница 11 из 14 ПерваяПервая ... 7891011121314 ПоследняяПоследняя
Показано с 101 по 110 из 138

Тема: Agon Light для начинающих

  1. #101

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,452
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    в эмуляторе, которым я пользуюсь, к сожалению, отладчика нет. Судя по всему это команда MOS?
    для Fab Agon и для старого нерабочего запуск с ключом -d. Долбагер не подарок, конечно.

  2. #102

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

  3. #103

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Замутил некую базовую поддержку строк в TinyContext. Пока не очень нравится как сделал. У Андрея Хохлова используется тип char[], у меня пока word.

    Скрытый текст

    Твой вариант можно чуть-чуть улучшить в плане компактности:
    Код:
        if eFlag=0 then
            if Buff[0]='"' then
              Emi1(0xCD);        // CALL   ?
              word pCode:=nCode;
              nCode:=nCode+2;
    
              while Look()!='"' do
                if Look()=char(0) then
                  Stop();
                end
                Emi1(Read());
              end
    
              Emi1(0);
              Read();
    
              Emi3(pCode, nCode);
              Emi1(0xD1);        // POP   DE
    
              eFlag:=1;
            end
        end
    По поводу указателей. Можно их пока не делать, а вместо них разрешить такие конструкции: char[addr] и word[addr]. Как раз следом за вышеприведённым кодом идёт обработка type(expr), её можно расширить:
    Код:
      if   eFlag =0 then
        word   I:=Find(0);
        if Cls[I]=1 then
          Push(I);
          Scan();              // (
          Push(Buff[0]);
          Scan();
          Expr();
          word J:=Pop();
          I:=Pop();
          if J='[' then
            Emi1(0xEB);        // XCHG
            Emi1(0x5E);        // MOV E,M
            if Size[I]=1 then
              Emi1(0x16);        // MVI D,0
              Emi1(0);
            end
            if Size[I]=2 then
              Emi1(0x23);        // INX H
              Emi1(0x56);        // MOV D,M
            end
          end
        end
    Тогда вот такая программа:
    Код:
    char putc(char C) is
      inline 0x0E, 0x02;       // mvi  C, 2
      inline 0xCD, 0x05, 0x00; // call 5
    end
    
    word puts(word s) is
        while char[s]!=0 do
            putc(char[s]);
            s:=s+1;
        end
    end
    
    begin
      puts("Hello, world!");
    end
    будет скомпилирована так:
    Код:
        ORG 100h
    
    L0005 EQU 5
    
        JMP L014E
    L0103:
        MVI C,2
        CALL L0005
        RET
    L0109:
        LXI H,4101h
        MOV E,M
        INX H
        MOV D,M
        XCHG
        MOV E,M
        MVI D,0
        PUSH D
        LXI D,0
        POP H
        MOV A,L
        SUB E
        JNZ L0122
        MOV A,H
        SUB D
        JZ L014D
    L0122:
        LXI H,4101h
        MOV E,M
        INX H
        MOV D,M
        XCHG
        MOV E,M
        MVI D,0
        LXI H,4100h
        MOV M,E
        CALL L0103
        LXI H,4101h
        MOV E,M
        INX H
        MOV D,M
        PUSH D
        LXI D,1
        POP H
        MOV A,L
        ADD E
        MOV E,A
        MOV A,H
        ADC D
        MOV D,A
        LXI H,4101h
        MOV M,E
        INX H
        MOV M,D
        JMP L0109
    L014D:
        RET
    L014E:
        CALL L015F
        DB 'Hello, world!',0
    L015F:
        POP D
        LXI H,4101h
        MOV M,E
        INX H
        MOV M,D
        CALL L0109
        RET
    [свернуть]
    Последний раз редактировалось b2m; 02.05.2024 в 20:20. Причина: убрал под спойлер, чтобы не раздражать Shiny

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

    andrews(02.05.2024), Oleg N. Cher(03.05.2024)

  4. #104

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,452
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ребзя, мы обсуждаем Agon.

  5. #105

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я ж не виноват, что он в этой теме про поддержку строк писал. Можно было бы в теме про TinyContext ответить, но заниматься кросс-постингом не в моих правилах.

  6. #106

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,452
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Я ж не виноват, что он в этой теме про поддержку строк писал. Можно было бы в теме про TinyContext ответить, но заниматься кросс-постингом не в моих правилах.
    Кажется, тут был трэд обсуждения твоего эмулятора? Начни там.

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

    В общем, решил написать бестолковую программу и резко встал на грабли ADL
    Теперь программа выводит номер режима и разрешение экрана.

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

    в том самом старом примере plot.asm ввел код
    Код:
        ; FOR A LINE
    
        .db 18, 0, bright_magenta           ; set graphics colour: mode (0), colour
    
        .db 25, 69                          ; PLOT: mode (69 is a point in current colour),
        .dw 0, 0                         ; X; Y;
    
        .db 25, 13                          ; PLOT: mode (13 is a line),
        .dw 320,240                         ; X; Y;
    и эмуль просто вылетел.
    Вложения Вложения

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

  8. #107

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    522
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiny Посмотреть сообщение
    был трэд обсуждения твоего эмулятора?
    было бы неплохо, если бы b2m заинтересовался поддержкой Agon Light! Было бы кому задавать вопросы по эмулятору.
    Общаться с буржуинами удовольствие еще то. Они русского не знают, мы в массе своей английского на приличном уровне.

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

    Цитата Сообщение от Shiny Посмотреть сообщение
    резко встал на грабли ADL
    а для чего пока ADL нужен? Наверняка там траблов больше, чем в эмуляции z80. Нужны тесты выполнения инструкций и памяти. Что-то мне они не попадались. А еще системы прерывания и I2C и второго COM-порта ( завороток хотя бы). Хотя к большинству эмуляторов пользовательские внешние девайсы редко можно подключать.
    Последний раз редактировалось andrews; 02.05.2024 в 19:55.

  9. #108

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,452
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    было бы неплохо, если бы b2m заинтересовался поддержкой Agon Light! Было бы кому задавать вопросы по эмулятору.

    ну не Tiny Context'ом же!

    Цитата Сообщение от andrews Посмотреть сообщение
    а для чего пока ADL нужен? Наверняка там траблов больше, чем в эмуляции z80. Нужны тесты выполнения инструкций и памяти. Что-то мне они не попадались. А еще системы прерывания и I2C и второго COM-порта ( завороток хотя бы). Хотя к большинству эмуляторов пользовательские внешние девайсы редко можно подключать.
    проц работает в этом режиме - 512МБ памяти и все такое. Вангую, что траблы возникнут, но при коде.

  10. #109

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

    По умолчанию

    512 Кб. Не Мб

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

    Цитата Сообщение от b2m Посмотреть сообщение
    Я ж не виноват, что он в этой теме про поддержку строк писал.
    Увы, но тему про TinyContext превратили в срач и перенесли во флейм, где её не видно половине форумчан.

    С CALL для обхода строки получилось отлично. Про char[addr] и word[addr] ещё думаю.

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

    Просто у Андрея Хохлова, автора TinyContext, в TinyContext v1.18 для DOS сделано по-другому - через char[]. И тогда можно адресовать строку просто как массив char.

  11. #110

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос: а у этой штуки какое-то расширение памяти имеется? или 512кб хватит всем?
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

Страница 11 из 14 ПерваяПервая ... 7891011121314 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Для начинающих
    от Viktor2312 в разделе Ириша
    Ответов: 73
    Последнее: 21.11.2025, 16:10
  2. Ответов: 21
    Последнее: 07.05.2024, 02:37
  3. Микроконтроллеры AVR для начинающих
    от Ewgeny7 в разделе Для начинающих
    Ответов: 138
    Последнее: 23.07.2017, 20:54
  4. КМБ для начинающих
    от yur в разделе Программирование
    Ответов: 0
    Последнее: 16.10.2012, 14:06

Ваши права

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