Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   Кросс Асмы (http://zx-pk.ru/showthread.php?t=17907)

jerri 18th January 2012 23:59

Кросс Асмы
 
Какой из кросс ассемблеров для спеки может понять
вот такое
точнее сказать правильно интерпретировать вот такую запись

Code:

;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


alone 19th January 2012 00:37

jerri хочет ассемблер, в котором были бы явные конструкции, аналогичные этим - макросы с параметрическими метками и вложенная условная компиляция. А ещё чтобы можно было читать скомпилированные данные типа {$-256}.

jerri 19th January 2012 01:10

1 Attachment(s)
да да он много хочет
просто совсем небольшой набор условных конструкций вызвал у cjasma взрыв мозга

вот вам пример

jerri 19th January 2012 01:11

вот этот вот исходник при наличии DUP (смотри вариант 1) ругается на конец файла
если DUP убрать то не ругается

TmK 20th January 2012 01:17

sjasm вложений не терпит... меня это сильно печалит...

jerri 20th January 2012 10:56

TmK, терпит
просто в DUP:EDUP условное ассемблирование несделано
потому и вылетает

TmK 20th January 2012 16:00

именно про это вложение я и имел ввиду)

Aprisobal 20th January 2012 20:44

Предлагаю из ALASM создать чудо монстра - кросс-компилятор путем оборачивания его в эмулятор Unreal Speccy без графической части с 2мб расширенной памяти, постановки хуков на операции ввода-вывода диска и операции вывода на экран результатов компиляции. Это решит все вопросы совместимости, разве что нужно добавить дополнительные директивы, которые любит народ, например сохранение снапшота SNA/Z80.

Vitamin 20th January 2012 21:13

Quote:

Originally Posted by Aprisobal (Post 457444)
Предлагаю из ALASM создать чудо монстра

И мне, и мне отсыпьте!!!! :)

jerri 21st January 2012 10:59

Aprisobal, ты лучше sjasm почини а то при таких ограничениях ничего нормально в нем не напишешь


All times are GMT +4. The time now is 06:13.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.