User Tag List

Страница 83 из 167 ПерваяПервая ... 798081828384858687 ... ПоследняяПоследняя
Показано с 821 по 830 из 1664

Тема: SjASMPlus Z80 кросс ассемблер

  1. #821
    ZEK
    Гость

    По умолчанию

    Поперло что то, парсер смог переварить сырок cpm

    допилил:
    резолвы многих неоднозначностей для LL1
    вычисляемые выражения для констант
    несколько директив org, defb, defw


    Если пруха не попустит, буду допиливать что бы sjasm сырки понимал
    Последний раз редактировалось ZEK; 22.02.2014 в 20:02.

  2. #822

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    попался тут один кроссасм для z80 http://members.shaw.ca/gp2000/zmac.html

    из СОВЕРШЕННО необычного в нем
    Cycle-counting with sett, setocf pseudo-ops and t, tilo, tihi and ocf operators.

    The best description of the T-state counting macros can be found at the end of my cycle counting tutorial. Might also explain why you would want such a feature. setocf and ocf() are newer features not covered there. They're needed when counting clock cycles on the TRS-80 Model 4 when it runs in high speed (4 MHz) mode. While the Z-80 mostly runs twice as fast in that the opcode fetch portion of each instruction is slowed down by 2 wait states. Code on the Model 1 or Model 3 (or Model 4 running in Model 3 mode) can be timed like this:

    code: ld a,(de)
    ld b,(hl)
    add a,b
    time equ t($)-t(code)
    The first two instructions take 7 T-states, the 3rd 4 T-states so zmac will set time equal to 18. But if you need cycle-accurate counts on a Model 4 you'll have to do this:
    code: ld a,(de)
    ld b,(hl)
    add a,b
    time equ t($)-t(code)+2*(ocf($)-ocf(code))
    As before we get a base time of 18 T-states but in this case each instruction also takes an opcode fetch thus the equation will add an additional 6 T-states and zmac will set time to 24.

  3. #823

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    При создании sna-файла sjasm прописывает в нём по адресу #4000 JP START
    Как отучить его портить экран?

  4. #824

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

    По умолчанию

    Destr, не видел
    у меня ругается если чтото лежит в #ff00 - #ffff
    С уважением,
    Jerri / Red Triangle.

  5. #825

    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    При создании sna-файла sjasm прописывает в нём по адресу #4000 JP START
    Как отучить его портить экран?
    Моя версия этого точно не делает. М.б. стоит посмотреть другие сборки?
    "introspec" читается как "интроспек". некоторые читают как "интроспец", но я никакой не спец. я спек.

  6. #826

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вот тут норм версия http://sourceforge.net/projects/sjasmplus/

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

  8. #827

    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    вот тут норм версия http://sourceforge.net/projects/sjasmplus/
    Кстати, я пользуюсь скачанной где-то с форумов сборкой, в которых была добавлена возможность автостарта бейсик-файлов с *.trd. Последняя "официальная" версия, насколько я помню, не поддерживает эту возможность.
    "introspec" читается как "интроспек". некоторые читают как "интроспец", но я никакой не спец. я спек.

  9. #828

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от introspec Посмотреть сообщение
    Последняя "официальная" версия, насколько я помню, не поддерживает эту возможность.
    есть такое...

  10. #829

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    вот тут норм версия http://sourceforge.net/projects/sjasmplus/
    Да, эта версия гуд, благодарю!

  11. #830

    Регистрация
    25.11.2011
    Адрес
    г. Красногорск
    Сообщений
    1,389
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Label not found

    Прошу помощи, может кто смог починить проблему "Label not found" в sjasmplus:
    AER # sh compile.sh
    SjASMPlus Z80 Cross-Assembler v1.07 RC8 (build 06-11-2008)
    Pass 1 complete (0 errors)
    Pass 2 complete (0 errors)
    Code.a80(176): error: Label not found: AER.MainCode.Logo.rnd
    Pass 3 complete
    Errors: 1, warnings: 0, compiled: 859 lines, work time: 0.003 seconds
    Код:
    # grep rnd AER.sym.orig (эталон правильно сгенерированного файла имён)
    Logo.rnd: equ 0x00005D9D
    rnd: equ 0x00000000
    MainCode.Logo.rnd: equ 0x00000000
    
    # grep rnd AER.sym (то, что получается у меня без правок исходников контрольного примера - проект AER)
    AER.boot.Logo.rnd: equ 0x00005D9D
    rnd: equ 0x00000000
    AER.MainCode.Logo.rnd: equ 0x00000000
    Logo.rnd: equ 0x00000000
    Собраться помогает правка исходника AER (но считаю это не дело править работающие ранее исходники):
    Код:
    # cat Code_a80.patch 
    --- Code.a80
    +++ Code.a80
    @@ -89,7 +89,7 @@
             push bc
             ld b,26
     clear_one_line_loop:
    -        call Logo.rnd
    +        call @AER.boot.Logo.rnd
             ld c,a
             ld a,(hl)
     clear_and_operation:
    PS. А фичу с "." в имени hb-файлов удалось вылечить, возможно кому-то будет полезным:
    Код:
    --- sjasm/io_trd.cpp.orig
    +++ sjasm/io_trd.cpp
    @@ -83,6 +83,7 @@
     int TRD_AddFile(char* fname, char* fhobname, int start, int length, int autostart) { //autostart added by boo_boo 19_0ct_2008
            FILE* ff;
            unsigned char hdr[16], trd[31], abin[4];
    +       char* last;
            int i,secs,pos = 0;
            aint res;
            int autostart_add = autostart > 0? 4 : 0; //added by boo_boo 19_0ct_2008
    @@ -165,6 +166,11 @@
                    }
            }
     
    +       last = fhobname + strlen(fhobname) - 1;
    +       while (last > fhobname && *last != '.') {
    +               --last;
    +       }
    +
            //header of file
            for (i = 0; i != 9; hdr[i++] = 0x20) {
                    ;
    @@ -175,7 +181,7 @@
                    if (*(fhobname + i) == 0) {
                            break;
                    }
    -               if (*(fhobname + i) != '.') {
    +               if (*(fhobname + i) != '.' || fhobname + i < last) {
                            hdr[i] = *(fhobname + i); continue;
                    } else if (*(fhobname + i + 1)) {
                            hdr[8] = *(fhobname + i + 1);
    Последний раз редактировалось perestoronin; 19.01.2014 в 20:51.

    Ретрокладовая продажи

    продажи
    [свернуть]

Страница 83 из 167 ПерваяПервая ... 798081828384858687 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Кросс-ассемблеры Z80 для Pc
    от Aprisobal в разделе Программирование
    Ответов: 16
    Последнее: 15.01.2011, 22:46
  2. кросс компилятор С для Z80
    от vitasam в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2007, 18:03
  3. Хороший ПЦшный ассемблер - залог успеха!
    от Aprisobal в разделе Программирование
    Ответов: 35
    Последнее: 08.08.2005, 15:25
  4. ZX ассемблер (и не только?) с библиотеками
    от shade в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2005, 19:43

Ваши права

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