Keeper, не знаю
допиливание обычно имеет побочным эффектом забаговывание
Keeper, не знаю
допиливание обычно имеет побочным эффектом забаговывание
С уважением,
Jerri / Red Triangle.
esl, это детский лепет
вот это пример
sjasm скукоживается сразуКод:;RAY 1,1,H,L,D,E,y,x MACRO RAY mainplus=\0 ;основное направление положительно secplus=\1 ;побочное направление положительно ;\2=основное направление для hl ;\3=побочное направление для hl ;\4=основное направление для de ;\5=побочное направление для de ;\6=основное направление ;\7=побочное направление ;LD DE,(cur\7\6) cur\0\1\7\6=$+1 LD DE,0 LD A,E ;основное направление ;IFN mainplus ;основное направление положительно ; CPL ;1-основное направление ; LD E,A ;ENDIF LD LX,A ;IX=dist*cos MULPOS IFN secplus ;побочное направление положительно ADD A,D ;побочное направление LD B,A ;LD HL,(curYX) ray\0\1\7\6_YX=$+1 LD HL,0 IFN "\6\6"-"xx" ;LD D,H,E,L ;SET mapdifbit,E ray\0\1\7\6_YX2=$+1 LD DE,0 ELSE LD D,H,E,L ENDIF JNC raynshort\0\1\7\6 INC \5 ;e/d LD A,(DE) RLA JC raysec\0\1\7\6 INC \3 ;l/h raynshort\0\1\7\6 IFN "\6\6"-"yy" SET mapdifbit,L ENDIF ELSE LD L,A LD A,D ;побочное направление SUB L LD B,A ;LD HL,(curYX) ray\0\1\7\6_YX=$+1 LD HL,0 IFN "\6\6"-"xx" ;LD D,H,E,L ;SET mapdifbit,E ray\0\1\7\6_YX2=$+1 LD DE,0 ELSE LD D,H,E,L ENDIF JNC raynshort\0\1\7\6 LD A,(DE) RLA JC raysec\0\1\7\6 DEC \3,\5 ;l/h,e/d raynshort\0\1\7\6 IFN "\6\6"-"yy" SET mapdifbit,L ENDIF ENDIF raynsec\0\1\7\6 INC HX IFN mainplus ;основное направление положительно INC \2 ;h/l ENDIF LD A,(HL) RLA JP C,rayhlq ;b=texx IFN mainplus ;основное направление положительно INC \4 ;d/e ELSE DEC \2,\4 ;h/l,d/e ENDIF LD A,B IFN secplus ;побочное направление положительно ADD A,C ELSE SUB C ENDIF LD B,A JNC raynsec\0\1\7\6 IFN secplus ;побочное направление положительно INC \5 ;e/d ENDIF LD A,(DE) RLA JC raysec\0\1\7\6 IFN secplus ;побочное направление положительно INC \3 ;l/h ELSE ;побочное направление отрицательно DEC \3,\5 ;l/h,e/d ENDIF JP raynsec\0\1\7\6 raysec\0\1\7\6 EXD LD A,B IFN secplus ;побочное направление положительно SUB C DIVPOS ELSE ADD A,C DIVNEG ENDIF IFN mainplus ;основное направление положительно CPL LD B,A ;b=texx ELSE LD B,A ;b=texx CPL ENDIF JP raydeq ENDM
Последний раз редактировалось jerri; 17.09.2012 в 17:45.
С уважением,
Jerri / Red Triangle.
от такого я тоже скукоживаюсь...))
esl, ну следуя логике
я должен получив строчку
"ray\0\1\7\6_YX=$+1"
сначала заменить все \х на данные макроса
и только потом парсить уже готовый набор данных
а не так как сделано сейчас
---------- Post added at 20:33 ---------- Previous post was at 20:32 ----------
esl, ну ты рар не смотрел
вот там реально чорная магия
---------- Post added at 20:35 ---------- Previous post was at 20:33 ----------
Keeper, а что за асм использует савелий?
С уважением,
Jerri / Red Triangle.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
esl, я тут наброски делал на PB и не увидел особых проблем с макросами![]()
С уважением,
Jerri / Red Triangle.
Кошмарный пример, зачем я его на ночь глядел...
Неужели после сборки всех вариантов в один параметризированный макрос объём кода сократился и стал понятнее?
И кстати вот всплывает велосипедистость sjasm+, где в одну кучу кода навалены разные тулзы. А макры... ну m4 и прочие никто не отменял.
NovaStorm, если ты про методы товарища Алоне то это к нему обратись
но прелесть Аласма в том что он это понимает и интерпретирует нормально
С уважением,
Jerri / Red Triangle.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)