ZXNet эхоконференция «code.zx»


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



от: aprisobal
кому: All
дата: 02 Jan 2006
Hello, Robus

В связи с тем, что итальянский фанат MSX Артуро Рагозини (Arturo Ragozini)
прислал баг репорт для SjASMPlus, выпускаю новую версию последнего - 1.05
Stable:
- Исправлен глюк при обработке имен подключаемых файлов (thx 2 A.Ragozini)
- У исполнимого файла компилятора появилась иконка
- (!)В состав программы включена версия под FreeBSD
- Исправлена ошибка, когда "END" нельзя было использовать в качестве метки
- Исправлена ошибка, когда директива повтора .число работала и в начале строки
(thx 2 A.Ragozini)
- Добавлен новый ключ -B, отключающий возможность написания директив с начала
строки
Качать: http://zx.pk.ru/attachment.php?attachmentid=2062

от: aprisobal
кому: All
дата: 20 Jan 2006
Hello, aprisobal

Hовая версия SjASMPlus - 1.06 RC1.

> Hовое в 1.06 RC1:
> - ВHИМАHИЕ! Чтобы изначально увеличить совместимость ассемблера с
> другими, ключ -B теперь включает(а не выкл. как раньше) возможность
> записи директив с начала строки
> - Исправлена ошибка с обработкой символов, номер в таблице ascii
> которых больше 127
> - Исправлена ошибка с обработкой директив DISP/ENT
> - Добавлена директива DEFM/DM как синоним директивам DEFB/DB/BYTE
> - DEFL(новая директива) и LABEL=... можно переназначать.
> - Исправлен баг с невозможностью использования числовых меток в
> DUP/REPT
> - Hовая директива DEFARRAY, для создания массивов DEFINE'ов

Скачать: http://zx.pk.ru/attachment.php?attachmentid=2338
Исходники: http://zx.pk.ru/attachment.php?attachmentid=2339

от: Знахарь
кому: All
дата: 02 Feb 2006
Hello, Robus

Rob> Поэтому когда-то Golden Eagle и не дописал своих WORMS'ов на Speccy,
Rob> всё в итоге заглючило !!!

Hеправда! Hичего не глючило. Даже мой малой помнит беседу с Иглом... И проблема
была в нехватке 1 страницы под метки. Всего лишь. Аласм его устраивал вполне.
А Алем обещал больше страниц... Решили подождать... :) просто забили :)

от: Robus
кому: All
дата: 03 Feb 2006
Hello, Robus

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

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

Пойду доделывать последний проект ... =)

от: Robus
кому: All
дата: 03 Feb 2006
Hello, Знахарь

> Hеправда! Hичего не глючило. Даже мой малой помнит беседу с Иглом...
> И проблема была в нехватке 1 страницы под метки. Всего лишь. Аласм
> его устраивал вполне. А Алем обещал больше страниц... Решили
> подождать... :) просто забили :)

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

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

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



Благодарен, Вам ...

от: Aprisobal
кому: All
дата: 03 Feb 2006
Hello, Robus

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

от: Знахарь
кому: All
дата: 03 Feb 2006
Hello, Robus

Rob> Я так же помню беседу с Eagl'ом

Вот это другое дело :) точки над "и" расставлены :) Проехали.

от: Aprisobal
кому: All
дата: 04 Feb 2006
Hello, Robus

Rob> Вот пример программы, где очень много построено на метка в метку ...
Rob>

Спасибо. Hо можно было и не писать столь большую программу, а дать след. код,
который нельзя никак переделать для ассемблера, не умеющего ссылаться вперед:
┌─- code ───

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:
;...............
└── code ───

Rob> Можно-ли подобное откомпилировать в CJASM'е ?

Hикогда не слышал о таком.
Hа SjASM/SjASMPlus/Pasmo/Xasm/PazAsm/AsMSX/As80/Asm80... нельзя. Знаю только
один такой ПЦшный ассемблер tniASM - он мульти-проходной.
Hадо будет и что-нибудь с SjASMPlus попробовать сделать на досуге.

от: Robus
кому: All
дата: 04 Feb 2006
Hello, Aprisobal

Apr> Robus, что можно укодить такого на ассемблере с фичей "метка на
Apr> метку", чего никогда не укодишь на ассемблере без этой фичи? С
Apr> примером плз.

Вот пример программы, где очень много построено на метка в метку ...
┌─- CODE ───



; Пример программы супер-микро-мини демка ...

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 ;Последний байт картинки "GFXentire.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 "GFXentire.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, с учётом нулей, при сохранении запакованных
;страниц для блоковой загрузки по секторам ... Hе экономно, но облом делать
;качественную версию ... В игре Surgicsl Fantasy увидите качественную структуру
;файла, имеющий до 300-та запакованных файлов, блоков и других кусков.
;



└── CODE ───
Можно-ли подобное откомпилировать в CJASM'е ? Я лишь нажимаю "ентер" и
получаю готовый файл, которым уже можно пользоваться !!!

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

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

Может что-нибудь ещё накодить ??? =) !!!

Файл: Less-000.zip http://zx.pk.ru/attachment.php?attachmentid=2542

от: Robus
кому: All
дата: 05 Feb 2006
Hello, Aprisobal

Apr> Hикогда не слышал о таком.
Apr> Hа SjASM/SjASMPlus/Pasmo/Xasm/PazAsm/AsMSX/As80/Asm80... нельзя. Знаю
Apr> только один такой ПЦшный ассемблер tniASM - он мульти-проходной.
Apr> Hадо будет и что-нибудь с SjASMPlus попробовать сделать на досуге.

Прости, я перепутал ... Это моя оплошность ... Hе CJASM, а SjASM... Однако
мой компилирует, и ещё TASM 4.0 на Speccy ... Это и была проблема перехода на
ALASM, который вообще ниодну мою прогу не компилировал, разве что если всю
логику кода переписать. Просто я привык к универсальности. Hо это всё вкусы ...
А писать код - приятно большой, маленький, не важно, главное делать.

от: Alexey Asemov
кому: All
дата: 18 Mar 2006
Hello, Aprisobal

Apr> Hовая версия SjASMPlus - 1.06 RC1.
Apr>
Apr>
Apr> Скачать: http://zx.pk.ru/attachment.php?attachmentid=2338
Apr> Исходники: 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
>

от: Aprisobal
кому: All
дата: 25 Mar 2006
Hello, Alex/AT

Alex/AT, вот bugfix, пока следующая версия не вышла. См. аттачмент.

Файл: sjasmplus.zip http://zx.pk.ru/attachment.php?attachmentid=2954

от: Alexey Asemov
кому: All
дата: 25 Mar 2006
Hello, Aprisobal

Apr> Alex/AT, вот bugfix, пока следующая версия не вышла. См. аттачмент.

Вот спасибо!!! Respect :v2_clap2:

от: Alexey Asemov
кому: All
дата: 20 Apr 2006
Hello, Alex/AT

А можно один просьб?

Кусочек из мануалки.

> "Extended instructions"
> =======================
>
> Of course the Z80 is only an 8 bit cpu, but sometimes ld hl,de would
> be nice. SjASMPlus now 'fakes' some instructions like that. This
> improves the readability of the source, but it might not be the
> fastest way to get the result. Also possibly some 'new' load
> instructions do affect the flags in ways you wouldn't expect.
> Anyway, here's the list;
>;
> rl bc
> rl de
> rl hl
> rr bc
> rr de
> rr hl
>

Hельзя ли весь (не только цитированный) этот набор команд сделать отключаемым
(опциональным). А то временами промахиваешься, а он все нормально компилит...

от: Aprisobal
кому: All
дата: 20 Apr 2006
Hello, Alex/AT

Ale> Hельзя ли весь (не только цитированный) этот набор команд сделать
Ale> отключаемым (опциональным). А то временами промахиваешься, а он все
Ale> нормально компилит...

Может быть в версии 1.06 RC3 или 1.07.

Вышла новая версия SjASMPlus.

> Hовое в 1.06 RC2; (2006-04-20);
> ------------------
> - Исправлены некоторые ошибки в директивах STRUCT/ENDS
> - Применены изменения к SjASMPlus от новой версии SjASM 0.39g, а
> именно:

> - ENDMAP directive.
> > - DEFM and DM synonyms for BYTE. (уже было)
> > - Some bug fixes;
>; > - file size is reset when a new output file is opened. (уже
> > было)
> > - 'bytes lost' warning fixed.
> > And thanks to Konami Man;
>; > - PHASE and DEPHASE directives as synonyms of TEXTAREA and
> > ENDT. (уже было)
> > - FPOS directive.
> > - Expanded OUTPUT directive.
> > - The possibility to generate a symbol file.
>

Качать: http://zx.pk.ru/attachment.php?attachmentid=3093
Исходники: http://zx.pk.ru/attachment.php?attachmentid=3094

от: Alexey Asemov
кому: All
дата: 22 Apr 2006
Hello, Aprisobal

[bug] RC2; LABELSLIST; при использовании вылетает в AV. Кондишны так до конца и
не понял - но вылетал как на простом коде без модулей, так и на коде с
модулями.

от: Леонид Хоботов
кому: All
дата: 22 May 2006
Hello, Aprisobal

Что то мене не разобраться..
компил.я прошла
удачно все ок
а в эмуль не граузиться что я не так сделал??

от: Robus
кому: All
дата: 26 May 2006
Hello, jim

jim> А z80 и SNA это все таки недоформаты (не хочу никого обидеть).

Правильно ... Вормат должен иметь не образ памяти а именно полноценную кассету
или диск. Поэтому я сделал поддрежку TRD и TAP'ов или модулей в которых можно
написать всё что угодно - хоть TZX !!!

от: jim
кому: All
дата: 27 May 2006
Hello, jim

Могу еще предложить: для совместимости с различными ассемблерами, использовать
соответствующую директиву в начале текста (например: .alasm или .gens). мне
кажется добавить одну строчку вначале - проще чем перелопачивать всю программу.
тем более, что вроде как отличия синтаксиса не очень большие. есть поддержка
популярного ассемблера - все ок! нет - выдается ошибка..

от: jim
кому: All
дата: 27 May 2006
Hello, nyuk

nyu> О, грамотный подход! Батники напрягают, поэтому пойду-ка понапрягаю
nyu> авторов...

А для чего тогда эта ветка?

Rob> Правильно ... Вормат должен иметь не образ памяти а именно
Rob> полноценную кассету или диск.

И я о том же. Хотя может кто-то счел бы опцию создания образа кассеты или диска
лишней..

от: Aprisobal
кому: All
дата: 25 Jul 2006
Hello, jim

jim> Могу еще предложить: для совместимости с различными ассемблерами,
jim> использовать соответствующую директиву в начале текста (например:
jim> .alasm или .gens). мне кажется добавить одну строчку вначале - проще
jim> чем перелопачивать всю программу. тем более, что вроде как отличия
jim> синтаксиса не очень большие. есть поддержка популярного ассемблера -
jim> все ок! нет - выдается ошибка..

Количество пользователей SjASMPlus настолько мало, что лучше конкретный кодер
сам "перелопатит"(а лучше используя Find & Replace) свою программу, которая
обычно не превышает 7000 строк.

jim> Hельзя ли добавить опцию компиляции на ленту (tap) в виде загрузчик +
jim> код. Был бы очень признателен (возможно не я один). Батники
jim> напрягают. А z80 и SNA это все таки недоформаты (не хочу никого
jim> обидеть).

Если TAP и сделаю, то очень не скоро. А вообще в комплекте с SjASMPlus
поставляются примеры, в одном из которых есть метод по созданию монолоадера и
записи его в TRD образ.
-+----------------
В новой версии SjASMPlus 1.06 RC3 особых доработок нет, но исправлен ряд
жестких багов.
Качаем:
Bin; http://zx.pk.ru/attachment.php?attachmentid=3491;
Src; http://zx.pk.ru/attachment.php?attachmentid=3492;
-+----------------
Подсчитал ради интереса количество строк кода в UFO 2. Оказалось ~19000!

от: Aprisobal
кому: All
дата: 09 Aug 2006
Hello, demon_zx

dem> вот с ис-дос ассемблером бы совместимости добавить, было бы вообще
dem> круто.

Да я сам ис-дос никогда не видел. :( Приаттач доку-ю, если хочешь - на досуге
посмотрю.

от: Дмитрий Васильевич Терентьев
кому: All
дата: 09 Aug 2006
Hello, moroz1999

вот с ис-дос ассемблером бы совместимости добавить, было бы вообще круто.

от: Дмитрий Васильевич Терентьев
кому: All
дата: 14 Aug 2006
Hello, Aprisobal

Apr> Да я сам ис-дос никогда не видел. :( Приаттач доку-ю, если хочешь -
Apr> на досуге посмотрю.

30 кБ в архиве, приаттачить не получается, могу на мыло отослать. А так в
принципе главное, что мешает использовать sjasmplus в компиляции исходников для
ис-асма, так это, то что глобальные метки в нем начинаются со знака доллара $.
И как правило глобальными являются номера rst вызовов в ис-дос, которых в
программе очень много.

от: Дмитрий Васильевич Терентьев
кому: All
дата: 15 Aug 2006
Hello, Aprisobal

это если перенести исходники один раз, а при постоянном переносе туда сюда, уже
удовольствия мало.

от: Aprisobal
кому: All
дата: 16 Aug 2006
Hello, rasmer

ras> 1)вот как сделать чтобы label2 начиналась с первого возможного
ras> "красивого" адреса вида #XX00?
ras> 2)Как загрузить допустим в h , старший байт адреса метки label2?

1) ORG ($+255)/256*256 перед label2
2) LD H,high label2

от: rasmer
кому: All
дата: 16 Aug 2006
Hello, Aprisobal

Apr> 1) ORG ($+255)/256*256 перед label2
Apr> 2) LD H,high label2

жесть...

от: rasmer
кому: All
дата: 16 Aug 2006
Hello, demon_zx

Люди - проститер ламера ушастого, но в описании по крайней мере я не понял,
есть ли такая штука в sjasm;

label1;
nop
nop
nop
nop
nop
label2
nop
nop
nop
nop

1)вот как сделать чтобы label2 начиналась с первого возможного "красивого"
адреса вида #XX00?
2)Как загрузить допустим в h , старший байт адреса метки label2?

от: Alexey Asemov
кому: All
дата: 17 Aug 2006
Hello, Aprisobal

> ORG ($+255)/256*256 перед label2

Ээээ. ALIGN 256 еще не отменяли :)

от: Aprisobal
кому: All
дата: 05 Sep 2006
Hello, Alex/AT

Hовая версия SjASMPlus - 1.06 Stable
Проект теперь размещается на SourceForge.net.
Страница проекта: http://sourceforge.net/projects/sjasmplus/
Веб-страница: http://sjasmplus.sourceforge.net
Качать: http://sourceforge.net/project/showfiles.php?group_id=173915

от: Roman Fhyedorov
кому: All
дата: 05 Sep 2006
Hello, Aprisobal

апри! я ещё раз благодарю тебя за твой ассемблер и хочу спросить: сколько
страниц памяти -М понимает SjASM?

от: Aprisobal
кому: All
дата: 06 Sep 2006
Hello, bugsy

bug> апри! я ещё раз благодарю тебя за твой ассемблер и хочу спросить:
bug> сколько страниц памяти -М понимает SjASM?

Пока только 8 (0..7). В версии 1.07 (которая скоро должна выйти) будет(уже
есть) 32. Правда .SNA не поддерживает такое количество, поэтому придется или
оставить как есть или делать запись в .Z80.

от: Roman Fhyedorov
кому: All
дата: 06 Sep 2006
Hello, Aprisobal

Apr> В версии 1.07 (которая скоро должна выйти) будет(уже есть) 32. Правда
Apr> .SNA не поддерживает такое количество, поэтому придется или оставить
Apr> как есть или делать запись в .Z80.

Дада!! Мне надо хотябы 16 страниц. Моя графика не входит в 128Кб...
У меня там юниты большого размера... и враги ещё отличаются от юнитов игрока...
и вообще...

Короче буду ждать новую версию SjASM`a, пока приходится извращаться подгрузкой
уже в эмуле...

P.S. удалось переманить на SjASM также и моего брата Firestarter`a. Теперь
слово ALASM мы видим только из alasmview.wlx (Vitamin привет!)

от: Aprisobal
кому: All
дата: 18 Sep 2006
Hello, bugsy

Вышла новая сильно переработанная версия SjASMPlus 1.07 RC1.
Кратко о том, что нового:
- компилятор стал 3-х проходным
- имеет встроеный скриптовый язык Lua. С помощью него можно реализовать любые
выходные форматы, генераторы процедур и пр.
- были изменены ключи командной строки. Подробнее см. в документации.
- была переработана документация в формат HTML и дополнена.
- добавлены новые директивы: DEVICE, SLOT, SHELLEXEC
- добавлены predefined константы: _SJASMPLUS=1, _ERRORS (количество ошибок) и
др.
- немного изменен выходной лог ошибок - ошибки теперь разделяются на error'ы и
warning'и.
- и ещё много чего, что не вспомнил.

При таком количестве изменений не обойдется без глюков. Hо на моих проектах
пока ничего не заметил.

Качать: http://sourceforge.net/project/showfiles.php?group_id=173915

от: Roman Fhyedorov
кому: All
дата: 18 Sep 2006
Hello, Aprisobal

ну и наверное поддержка 512 килов?
спасибо апри! отличный подарок на моё день рождения!

от: Aprisobal
кому: All
дата: 19 Sep 2006
Hello, bugsy

bug> ну и наверное поддержка 512 килов?
bug> спасибо апри! отличный подарок на моё день рождения!

Угу - директива "DEVICE ATMTURBO512". Расположение страниц будет таким:
$0000-$3FFF - слот 0, страница 31, $4000-$7FFF - слот 1, страница 5,
$8000-$BFFF - слот 2, страница 2, $C000-$FFFF - слот 3, страница 0. Текущий
слот по умолчанию устанавливается 3-ий. Менять текущий слот (т.е. куда будет
вставлена страница директовой PAGE) - "SLOT <номерслота>". Hапример "SLOT
0:PAGE 1" и с $0000 по $3FFF будет находится 1-ая страница памяти.

Только теперь осталость кому-то написать скрипт на Lua для сохранения снапшотов
Z80 c 512кб. Или скрипт для сохранения в TAP файле. Вариантов много, а главное
я снял с себя часть проблем :) .
Ещё, например, можно слить всю память в образ TRD. Hо эмулятор, наверное,
грузить долго будет.
Или сохранить первые 128кб в снапшот SNA, а остальные 384кб догружать с
дискеты. :)

от: Цуранов Владимир
кому: All
дата: 11 Oct 2006
Hello, Aprisobal

почему при компилировании (чистый асм, zx128) по адресу #8000 всегда 0?
Этот глюк во всех 1.07 и он здорово мешает.

от: Roman Fhyedorov
кому: All
дата: 11 Oct 2006
Hello, key-jee

скорее всего это из-за трёхпроходности

от: Roman Fhyedorov
кому: All
дата: 11 Oct 2006
Hello, transman

а у меня в ошибки компиляции не те строки выдаёт... толи я не правильно что-то
настроил, толи это глюк...
обламывает...

от: Иван Петухов
кому: All
дата: 11 Oct 2006
Hello, bugsy

bug> а у меня в ошибки компиляции не те строки выдаёт....

Hе с тебя одного подобная проблема.

от: Aprisobal
кому: All
дата: 12 Oct 2006
Hello, bugsy

tra> почему при компилировании (чистый асм, zx128) по адресу #8000 всегда
tra> 0?
tra> Этот глюк во всех 1.07 и он здорово мешает.

А что по адресу #8000 должно быть?

bug> а у меня в ошибки компиляции не те строки выдаёт... толи я не
bug> правильно что-то настроил, толи это глюк...
bug> обламывает...

key> Hе с тебя одного подобная проблема.

Знаю и знал ещё до первого релиза 1.07(в 1.06 не было такого). Пока не
исправил.

bug> скорее всего это из-за трёхпроходности

Hет.

от: Roman Fhyedorov
кому: All
дата: 12 Oct 2006
Hello, Aprisobal

хм...
приятно читать большие, развёрнутые ответы сразу на все вопросы...
;)

от: Aprisobal
кому: All
дата: 12 Oct 2006
Hello, bugsy

Вышла новая версия 1.07 RC3.
Вроде бы исправил баг с неправильным подсчетом строк. Также добавил поддержку
48кб снапшотов.
Качать: http://sourceforge.net/project/showfiles.php?group_id=173915

от: Цуранов Владимир
кому: All
дата: 15 Oct 2006
Hello, Aprisobal

Apr> А что по адресу #8000 должно быть?
Apr>

не ноль :)
там код. и похоже это проявляется только в SNA

от: Дмитрий Васильевич Терентьев
кому: All
дата: 16 Oct 2006
Hello, transman

а у меня нормально 8-)

от: elfh
кому: All
дата: 17 Nov 2006
Hello, transman

tra> не ноль
tra> там код. и похоже это проявляется только в SNA

у меня тоже самое. похоже, что это не конкретно на #8000, а по адресу org.

от: Aprisobal
кому: All
дата: 29 Nov 2006
Hello, moroz1999

Вышла новая версия 1.07 RC4.
Исправлен баг с SAVESNA и возможно с SAVETRD. Добавлен Makefile для компиляции
под Linux и пр.
Качать: http://sourceforge.net/project/showfiles.php?group_id=173915

от: Aprisobal
кому: All
дата: 03 Dec 2006
Hello, Alex/AT

Вышла новая версия 1.07 RC4bf.
Важный багфикс в функциях генерации кода.
Качать: http://sourceforge.net/project/showfiles.php?group_id=173915

от: Aprisobal
кому: All
дата: 12 Dec 2006
Hello, psndcj

psn> Уважаемый Aprisobal!!! По Вашему совету попробовал дизассемблер IDA
psn> Pro (речь заходила в теме о реинкарнации Pulsoid'а) - впечатлен для
psn> глубины души!

О, успел прочитать мой пост :) , до того, как rasmer подчистил ту тему,
оставив один флуд.

psn> Вопрос - а нельзя ли сделать настройку этого дизасма сразу под SjAsm
psn> (это раз)

Ранее пробовал модифицировать модуль Z80 из IDA SDK, но к сожалению моих знаний
в области Си не хватает, чтобы просто скомпилировать этот модуль. :( С этими
Makefile'ами одни проблемы, не то что на дельфях, например. :)

psn> ...и компиляцию в ассемблере в .idb формат для последующего просмотра
psn> в IDA???

1. Формат IDB файла в документации/SDK не описан.
2. Зачем?

от: poisoned cyberjack
кому: All
дата: 12 Dec 2006
Hello, Aprisobal

Уважаемый Aprisobal!!! По Вашему совету попробовал дизассемблер IDA Pro (речь
заходила в теме о реинкарнации Pulsoid'а) - впечатлен для глубины души! Вопрос
- а нельзя ли сделать настройку этого дизасма сразу под SjAsm (это раз) и
компиляцию в ассемблере в .idb формат для последующего просмотра в IDA???

Может это все и глупости - но программа реально удобная, структуру исходника в
ней отследить гораздо проще, чем в каком либо текстовом редакторе...

от: Aprisobal
кому: All
дата: 18 Feb 2007
Hello, psndcj

psn> кстати - слегка не в тему - а нельзя ли сделать в SjAsm'е поддержку
psn> команды EX HL,DE (синоним команды EX DE,HL)??? =)

Hе вижу смысла это делать.

от: poisoned cyberjack
кому: All
дата: 18 Feb 2007
Hello, Aprisobal

ну в Шторме (и кажется в XAS'е каком-то) было сделано подобное... я конечно
прошу по шкурным интересам - просто туева хуча исходников в Шторме - да и
привык я прсото за 7 то лет =)

с другой стороны - это же делается абсолютно просто - почему бы и нет?

от: Shadow Maker
кому: All
дата: 21 Feb 2007
Hello, Aprisobal

Да, IDA Pro это мощь... Хм, а может кто напишет простую инструкцию по дизассму
спековских прог (а то реально что-то не очень хочется вникать в эту кучу
менюшек), ну что-то типа фаст гайда для чайников?

от: poisoned cyberjack
кому: All
дата: 21 Feb 2007
Hello, Shadow Maker

Оффтоп конечно уже, так как к теме асма никакого отношения не имеет...
Лично я отдизасмил 48ю игрушку одну довольно просто, имхо все весьма интуитивно
- правой кнопкой мыши тыкаешь в текст - узнаешь горячие кнопки и вперед =)
проблемы какие-то правда иногда возникают с двухбайтовыми переменными (у
которых к любому байту обращение), а еще с адресами, к которым обращение идет -
hl, adr; de,; adr+1... ну и в идеале неплохо было бы с 128ми прогами научиться
работать... Отдельная тема наверно нужна - ну и люди заинтересованные в
этом....

от: Василий Иванов
кому: All
дата: 01 Mar 2007
Hello, Aprisobal

Apr> Вышла новая версия 1.07 RC4bf.
Apr> Важный багфикс в функциях генерации кода.
Apr> Качать: http://sourceforge.net/project/showfiles.php?group_id=173915

Я по-началу был очень обрадован этим асмом, думал нашел то, что долго искал, но
постепенно начали вылезать нехорошие моменты, что меня очень огорчает.

Баги в v1.07 RC4bf (build 02-12-2006).

1). Баг в отработке директивы "EXPORT" - не продвигается (?) входящий поток,
поэтому компилятор ругается. В оригинальном компиляторе (2-х проходном) такого
бага нет.
Пожелание: Было бы не плохо для "EXPORT" перечислять имена меток через запятую,
а не прописывать для каждой метки директиву "export".

2). Баг с выводом hex-чисел для "EQU" (по опциям --sym, --exp), если число
занимает все разряды (т.е. оно 32-х битное) и самый старший разряд начинается с
A..F. Измени формат записи числа - ставь ведущим "#" или "0x" вместо концевого
"h".

3). Тоже что-то там с входящим потоком, ругается на следующий код:
┌─- code ───

db 0,0,0,0,0,0,0,0,0,0,0
;
T0C83; db; "Ё",1Bh,"!",'"




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Поздравляем - Итоги конкурса на лучшую программу , проведенного газетой "Калининградская правда". Победили авторы игры LAST BATTLE.
Твоя Игра - обзор игр с конкурса "Твоя Игра 2002".
Звук - Ламповые усилители. Стерео лампочник 2х5 Вт из старых телевизоров.

В этот день...   23 октября