PDA

Просмотр полной версии : ZX ASM



SGO
16.05.2017, 11:51
Господа! Просьба сильно не пинайте за кривость и недоделанность, так как писал изначально для себя, но вдруг кому ещё понравится :-)
В общем вот мой новый компилятор для ZX Spectrum: ZX ASM (http://www.sg-software.ru/windows/programs/zx-asm).

Ynicky
16.05.2017, 19:03
Как это понять?
61053

P.S. Не терпит табуляции.

SGO
17.05.2017, 09:01
Как это понять?
61053

P.S. Не терпит табуляции.

Записал в книжечку :-) Чем публичное тестирование и хорошо.

Ynicky
17.05.2017, 13:29
Записал в книжечку :-) Чем публичное тестирование и хорошо.
Ну тогда держите следующие замечания:
Хорошо бы показывать номера строк или статус строку с координатами курсора.
Сделать контекстную замену.
Директива ORG не понимает шестнадцатеричные значения.
В JP, CALL и т.д. по метке надо завершать ее двоеточием, как в самой метке, что на мой взгляд не правильно.
Не распознаются директивы DEFM, DEFW.

Пока хватит.

Black Cat / Era CG
17.05.2017, 14:02
Глубокое имхо:
Думаю, имеет смысл напрячься именно на функционал редактора. То есть подсветка, номера строк, фолдинг, хелп(?) да много всего. А работу компилятора предоставить компилятору (SjASM, Pasmo,...).

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

Панель меток с переходом к метке и быстрым предпросмотром куска кода у метки...

Shiny
17.05.2017, 15:15
А работу компилятора предоставить компилятору (SjASM, Pasmo,...).

вроде как уже изобретено:
http://www.desdes.com/products/oldfiles/zeus.htm

SGO
19.05.2017, 10:44
всё записал) подсветку синтаксиса и прочие радости редактора я и сам планирую сделать, как будет время

jerri
28.05.2017, 19:48
SGO, а компилятор же отдельно можешь сделать?
а в чо собирает? а как параметры задать в чо собирать?



#region Директивы компилятора
if (Str[0] == "org") //ORG
{
if (List.Count > 0) throw new ArgumentException("Директива ORG может использоваться только в начале программы");
ParamTest(Str, "ORG", 2);
Compiler.StartAdress = ReadNum(Str[1]);
CurAdress = Compiler.StartAdress;
return;

вот это ересь.

бывает даже вот такой вот фикус пикус



dup 8
ld a,(hl)
ld (de),a
inc l
inc d
edup
org $-2


и его надо собирать