User Tag List

Страница 11 из 167 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя
Показано с 101 по 110 из 1664

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

  1. #101

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

    По умолчанию

    Цитата Сообщение от Robus
    Поэтому когда-то Golden Eagle и не дописал своих WORMS'ов на Speccy, всё в итоге заглючило !!!
    Неправда! Ничего не глючило. Даже мой малой помнит беседу с Иглом... И проблема была в нехватке 1 страницы под метки. Всего лишь. Аласм его устраивал вполне. А Алем обещал больше страниц... Решили подождать... просто забили

  2. #102

    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Цитата Сообщение от Знахарь
    Неправда! Ничего не глючило. Даже мой малой помнит беседу с Иглом... И проблема была в нехватке 1 страницы под метки. Всего лишь. Аласм его устраивал вполне. А Алем обещал больше страниц... Решили подождать... просто забили
    Я так же помню беседу с Eagl'ом, мы с Jungar'ом и Dreamer'ом тогда сидели у меня, после чего Jungar поехал в Николаев водку пить =) И мне Golden показывал как при не хватке меток глючит "аласм" и как ему очень не хватает возможностей "тасма", где можно казывать метку на метку. А меток и вправду не хватала, поэтому последнюю версию ВОРМСа Еагл переписал под "тасм". После Голден купил себе амигу и уж тогда забил на спекки. Хотя настоящую причину "забития" почти никто не знает, кроме Макса и Еагла, и распространяться об этом не будем, это личное Silicon Brains'ов.

    А в аласме есть только один минус, это меткаи на метки вот и всё, а эта пичина одна из самых главных.

    Эх, какие были времена, когда мы с Еаглом по очереди засыпали над его компом, кодируя. Если честно, то я впервые встречал человека, который мог продолжать писать код с того места, на котором я остановился, как и наоборот ... Хех ... "Были люди в наше время, Не то что нынешнее племя, Богатыри, не Вы" ...

    Благодарен, Вам ...
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

  3. #103

    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Цитата Сообщение от Robus
    ..........еток и вправду не хватала, поэтому последнюю версию ВОРМСа Еагл переписал под "тасм". После Голден купил себе амигу и уж тогда забил на спекки. Хотя настоящую причину "забития" почти никто не знает, кроме Макса и Еагла, и рас....................

    Хотя, чего я на это трачу время ... Куда мне знать ... Аласм - АЗБЕСТ, CJASM - АЗБЕСТ !!!

    Пойду доделывать последний проект ... =)
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

  4. #104

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

    По умолчанию

    Цитата Сообщение от Robus
    Я так же помню беседу с Eagl'ом
    Вот это другое дело точки над "и" расставлены Проехали.
    Последний раз редактировалось Знахарь; 03.02.2006 в 17:06.

  5. #105

    Регистрация
    17.01.2005
    Адрес
    Belarus, Minsk
    Сообщений
    402
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Robus, что можно укодить такого на ассемблере с фичей "метка на метку", чего никогда не укодишь на ассемблере без этой фичи? С примером плз.
    ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
    ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO

  6. #106

    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Цитата Сообщение от Aprisobal
    Robus, что можно укодить такого на ассемблере с фичей "метка на метку", чего никогда не укодишь на ассемблере без этой фичи? С примером плз.
    Вот пример программы, где очень много построено на метка в метку ...

    Код:
    
    ; Пример программы супер-микро-мини демка ...
    
            EQU $ASAM.PASS.ERROR=1          ;Количество пустых компиляций, для
                                            ;устронения вложенных меток в дважды
                                            ;запаковынном блоке или больше.
    
    
    
    
    
    
            INCLUDE "speccy.az8"            ;Маленький набор утилит.
    
            .LoadPack ,_                  ;Загрузка ранее запакованных кусков из
    @.1.P    EQU $PAGE                      ;файлов, в данном случае это нужно
    @.1.S    INCBIN @.0                     ;для LOADER'а, который подгрузит
    @.1.E    EQU $-1                        ;картинку загрузки ... =)
    @.1.L    EQU $ASAM.LOAD.SIZE+2
             DW $ASAM.LOAD.SIZE
            ..
    
            .PackerXP _                    ;Запаковка блока для 128 страниц
             ORG @.0
    @.0.P    EQU $PAGE
             DSQ.Pack @.-@.0
    @.0.E    EQU $-1
    @.0.S    EQU $-@.0
            ..
    
            .RunXP _                       ;Автоматическая распаковка и запуск
             LD A,@.0.P
             LD HL,@.0.E
             LD DE,FREEBLOCK
             CALL DEPACKXP
            ..
    
    
            PAGE 17                         ;Какая-то часть компилится в страницу
            ORG 49152
    EFFx1   PHASE FREEBLOCK                 ;Адрес свободной памяти
    EFFx1_S CALL WaitINCER                  ;Ожидаем окончания секундного интервала
            LD A,1*8+7
            CALL Clearuchik                 ;Стираем экран
            CALL Printik                    ;Печать текста
            DW 20480
            DB "Spectrum Is The Best ..."+128
            RET                             ;Прощай жизнь, конец части =)
            UNPHASE
            PackerXP EFFx1                  ;Запаковываем кусок
    
    B17.S   EQU $-49152                ;Размер страницы #17, который в будущем
                                       ;запакуется в LOADER, я понимаю, что
                                       ;в этой странице уже и так всё запаковано,
                                       ;но это всё просто пример
    
    
            PAGE 19                         ;То же, что и сверху ... =)
            ORG 49152
    
    EFFx2   PHASE FREEBLOCK
    EFFx2_S CALL WaitINCER
            LD A,2*8+6
            CALL Clearuchik
            CALL Printik
            DW 18432
            DB "Hello To Aprisobal ..."+128
            RET
            UNPHASE
            PackerXP EFFx2
    
    
    CLR_P19:                                ;Процедура, стирания экрана, которая
            PUSH AF                         ;распологается сразу после запакованной
            LD A,R                          ;части
            AND 00000111B
            LD B,A
            RLCA
            RLCA
            RLCA
            OR B
            CALL CLR_M0
            POP AF
    
            LD HL,16384
            LD DE,16385
            LD BC,6143
            LD (HL),L
            LDIR
    
    CLR_M0: LD DE,22529
            LD B,A
            RRA
            RRA
            AND A
            RRA
            LD HL,ICLR+1
            LD (HL),A
    CLR_M1  BIT 7,(HL)
            JZ CLR_M1
            LD A,B
            LD HL,22528
            LD (HL),A
            LD BC,767
            LDIR
            RET
    
    
    
    
    
    
    EFFx3   PHASE FREEBLOCK                 ;Ещё один блок части, в котором
    EFFx3_S JMP EFFx3_START                 ;используется метка на метку !
    
            ORG 49152-(EFFx3_END-EFFx3_START) ;Откомпилит дальнейший код с адреса
    EFFx3_START                          ;в самый конец свободной части памяти.
            CALL WaitINCER               ;Последний байт картинки "GFX\entire.scr"
            LD A,3*8+0                   ;будет находиться по адресу 49151
            CALL Clearuchik
            CALL Printik
            DW 16384
            DB "Assembler FOREVER  ..."+128
            CALL WaitINCER
            XOR A
            CALL Clearuchik
            LD HL,ENTIREL
            LD DE,18432
            LD BC,2048
            LDIR
            HALT
            LD DE,22528+256
            INC B
            LDIR
            RET
    ENTIREL IncBIN "GFX\entire.scr"
    EFFx3_END
            UNPHASE
            PackerXP EFFx3
    
    B19.S   EQU $-49152
    
    
    
    
            PAGE 20           ;Для красоты, что бы что-то валялось в странице
            ORG 49152
            DB "CJASM Is The Best ..."+128
    B20.S   EQU $-49152
    
    
            PAGE 22           ;Для красоты, что бы что-то валялось в странице
            ORG 49152
            DB "HAVA NAVA VOCHEZ ??? ..."+128
    B22.S   EQU 16384
    
    
    
            PAGE 23           ;Для красоты, что бы что-то валялось в странице
            ORG 49152
            DB "NAVA NAIN VOCHEZ ??? ..."+128
    B23.S   EQU $-49152
    
    
            PAGE 16           ;Депакер, который будет использоваться как в деме,
            ORG 23296         ;так и в LOADER'е
    DEPACK
            PUSH DE
            INC HL
            LD C,(HL)
            INC HL
            LD B,(HL)
            DEC HL
            DEC HL
            DEC DE
            EX DE,HL
            ADD HL,BC
            PUSH HL
            EX DE,HL
            AND A
            PUSH HL
            SBC HL,DE
            POP HL
            JNC DEPAx1
            LDDR
            JMP DEPAx2
    DEPAx1
            INC HL
            INC DE
            SBC HL,BC
            EX DE,HL
            SBC HL,BC
            EX DE,HL
            LDIR
    DEPAx2
            POP HL
            POP DE
    DEPACKX DSQ.DePacker      ;Распаковщик by IMP
    
    
    
    B23296.S EQU $-23296
    
    
    
    
    
    
    
    
    
    
    ;Programm Block ...
    
    
    
    
    
            ORG 23552
    
    INT:    PUSHA           ;Прерывание
    ICLR    LD A,0          ;Для примера, сюда запихивается цвет бордюра вне INT'а
            PUSH AF         ;да бы можно было понять, что все блоки распаковываются
            AND 7           ;и запускаются автоматически
            OUT (254),A
            POP AF
            OR 10000000B
            LD (ICLR+1),A
    INCER   LD A,1          ;Счёчик по секунде, что бы синхронезироваться после
            DEC A           ;затраченного времени на распаковку и другую фингню.
            JNZ INCERx1
            LD A,50
    INCERx1 LD (INCER+1),A
            POPA
            EI
            RET
    
    Clearuchik:             ;Вызов процедуры очистки экрана, которая лежит в 19-ой
            LD BC,32765     ;странице памяти между двумя запакованными блоками
            EXA
            LD A,19
            OUT (C),A
            EXA
            JP CLR_P19
    
    
    
    
    
            OrgInt INT,INT  ;Утилита из Speccy.az8, устанавливающая в ближайшем
    StackSP EQU INT.VecAddr ;адресе вектор прерывания, стек лепится перед вектором,
                            ;нпдо же его куда-нибудь поместить
    
    
    
    
    WaitINCER:              ;Ждём окончание секунды
            LD HL,INCER+1
            LD A,(HL)
            DEC A
            JNZ WaitINCER
            RET
    
    
    
    
    
    M1                      ;Цикл запуска трёх частей, в одной из которых
            RunXP EFFx1     ;появляется наш логотип
            RunXP EFFx2
            RunXP EFFx3
            JMP M1
    
    
    Printik:                ;Печать текста
            POP HL
            LD E,(HL)
            INC HL
            LD D,(HL)
            INC HL
    PR1     LD A,(HL)
            PUSH AF HL
            RLCA
            RLCA
            RLCA
            LD L,A
            AND 00000011B
            ADD A,60
            LD H,A
            LD A,L
            AND 11111000B
            LD L,A
            LD B,D
            .8              ;Восем раз повторить нужно !!! =)
             LD A,(HL)
             LD (DE),A
             INC L
             INC D
            ..
            ORG $-2         ;Стираем лишние команды, будем экономны !!! =)
            LD D,B
    
    
            POP HL AF
            INC E
            INC HL
            RLCA
            JNC PR1
            PUSH HL
            RET
    
    
    
    
    
    
    DEPACKXP:               ;Распаковка блока и запуск его, так как он депачится
            LD BC,32765     ;сразу послет CALL DEPACKX
            OUT (C),A
            CALL DEPACKX
    FREEBLOCK
    
    ;Start Of Programm
    
    START:                  ;Сюда происходит JMP из LOADER'а, так как этот кусок
            DI              ;запускается только раз, его в будущем сотрут
            LD A,(22528)    ;части ГИГА-демы !!! =)
            RRCA
            RRCA
            RRCA
            LD (ICLR+1),A
            LD SP,StackSP
            LD BC,32765
            LD A,16
            OUT (C),A
            LD A,INT.VEC
            LD I,A
            LD HL,INT
            LD (INT.VecAddr),HL
            IM 2
    
            EI
            JMP M1          ;Интересно, в итоге получился "JP M1" или "JR M1" ?
    
    
    
    
    
            .1
             INCLUDE "loader.az8"   ;Там лоадер всё запакует и сделает готовый для
             ORG @.                 ;использования файл, запихнув его в TRD
            ..
    
    
    
            SaveLabels "wl.txt"     ;Для примера сохраним все мекти, которые были
                                    ;в проекте
    
    
    ;ВСЁ !!! нано-дема отова ... Кстати, вы обратили внимание, на то, что дема
    ;компилится вообще во всю область памяти, и на ВАСИКовские переменные !!! =)
    ;
    ;В итоге всё это ужалось в 4352, с учётом нулей, при сохранении запакованных
    ;страниц для блоковой загрузки по секторам ... Не экономно, но облом делать
    ;качественную версию ... В игре Surgicsl Fantasy увидите качественную структуру
    ;файла, имеющий до 300-та запакованных файлов, блоков и других кусков.
    ;
    Можно-ли подобное откомпилировать в CJASM'е ? Я лишь нажимаю "ентер" и получаю готовый файл, которым уже можно пользоваться !!!

    Внимательно посмотрите кусок с метки EFFx3 ... Хотя не важно, главное, что бы Вы были Счастливы ...

    ССссори за опечатки, всё это делалось за час и я не обращал внимание на грамматику ... =)

    Может что-нибудь ещё накодить ??? =) !!!
    Вложения Вложения
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

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

  8. #107

    Регистрация
    17.01.2005
    Адрес
    Belarus, Minsk
    Сообщений
    402
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Robus
    Вот пример программы, где очень много построено на метка в метку ...
    Спасибо. Но можно было и не писать столь большую программу, а дать след. код, который нельзя никак переделать для ассемблера, не умеющего ссылаться вперед:
    Код:
    EFFx3:   PHASE FREEBLOCK                 ;Ещё один блок части, в котором
    EFFx3_S: JP EFFx3_START                 ;используется метка на метку !
             DB 192
             DB 192
    EFFx3_START:       
            DEPHASE
            
    DEPACKXP:               
            DB 255
            DB 255
    FREEBLOCK:
    ;Start Of Programm
    
    START:                  
            ;...............
    Цитата Сообщение от Robus
    Можно-ли подобное откомпилировать в CJASM'е ?
    Никогда не слышал о таком.
    На SjASM/SjASMPlus/Pasmo/Xasm/PazAsm/AsMSX/As80/Asm80... нельзя. Знаю только один такой ПЦшный ассемблер tniASM - он мульти-проходной.
    Надо будет и что-нибудь с SjASMPlus попробовать сделать на досуге.
    ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
    ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO

  9. #108

    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Цитата Сообщение от Aprisobal
    Никогда не слышал о таком.
    На SjASM/SjASMPlus/Pasmo/Xasm/PazAsm/AsMSX/As80/Asm80... нельзя. Знаю только один такой ПЦшный ассемблер tniASM - он мульти-проходной.
    Надо будет и что-нибудь с SjASMPlus попробовать сделать на досуге.
    Прости, я перепутал ... Это моя оплошность ... Не CJASM, а SjASM... Однако мой компилирует, и ещё TASM 4.0 на Speccy ... Это и была проблема перехода на ALASM, который вообще ниодну мою прогу не компилировал, разве что если всю логику кода переписать. Просто я привык к универсальности. Но это всё вкусы ...
    А писать код - приятно большой, маленький, не важно, главное делать.
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

  10. #109

    Регистрация
    14.03.2005
    Адрес
    Russia, Saint-Petersburg
    Сообщений
    213
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Aprisobal
    Новая версия SjASMPlus - 1.06 RC1.


    Скачать: http://zx.pk.ru/attachment.php?attachmentid=2338
    Исходники: http://zx.pk.ru/attachment.php?attachmentid=2339
    Ех. Использую структуры (STRUCT). При первой же попытке поюзать заданный стракт вылетает с Exception'ом.

    ЗЫ. Банальный тестовый код:
    ; common sprite structure
    STRUCT SPRITE
    NEXT WORD 0 ; 00 02 Next sprite in queue (0 - end)
    PREV WORD 0 ; 02 02 Previous sprite in queue
    NEXTDQ WORD 0 ; 04 02 Next display queue entry (0 - end)
    FLAGS BYTE 3 ; 06 01 Flags
    ; 0: visibility (0 - not visible)
    ; 1: invalidated (1 - coordinates changed or new sprite)
    ; 2: delete flag (1 - delete it)
    ; 3: current visibility (1 - offscreen, preprocessed)
    SPRNO BYTE 0 ; 07 01 Sprite number to display
    X WORD 0 ; 08 02 X coordinate (pixels) on VSCREEN
    Y BYTE 0 ; 0A 01 Y coordinate (pixels) on VSCREEN
    DESC WORD 0 ; 0B 02 Sprite descriptor pointer (preprocessed)
    SADDR WORD 0 ; 0D 02 Screen address (preprocessed)
    HCLIP WORD 0 ; 0F 02 Horizontal clipping routine (preprocessed)
    PENTRY WORD 0 ; 11 02 Putter entry (preprocessed)
    PEND WORD 0 ; 13 02 Putter endpoint (preprocessed)
    LOOKUP BYTE 0 ; 15 01 Lookup high byte (preprocessed)
    ENDS

    ; first queue sprite (0 in visible field)
    CSS_Q_FSPR SPRITE 0,0,0,0,0
    Последний раз редактировалось Alex/AT; 18.03.2006 в 16:43.

  11. #110

    Регистрация
    17.01.2005
    Адрес
    Belarus, Minsk
    Сообщений
    402
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Alex/AT, вот bugfix, пока следующая версия не вышла. См. аттачмент.
    Последний раз редактировалось Aprisobal; 20.04.2006 в 12:31.
    ATW4GS / BIN2SNA / SquareMania <ТИ-3> / Ужасм+
    ATM-Turbo 512 v4.50, Commodore 64G + TAC-2, Retro-Bit Super Retro TRIO

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

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

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

Эту тему просматривают: 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

Ваши права

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