пробелы ему перед меткой не нравятся чтож еще
Вид для печати
а не знак =?
Э-э-э А смысл конструкции 'old_main_pc = $' ? Это-ж всё равно что просто метку поставить. Нет, если там на выражение какое должно быть, то ещё смысл есть, а так ?
Ну вообще то как бы 'EQU' и '=' инструкции равнозначные. Нет скорее всего пробел виноват, как krt17 сказал.
in sjasmplus the EQU is like constant, = is like variable (it's a shortcut/alias for DEFL)
Код:; this is possible/valid
var1 DEFL 0 ; var1 == 0
var1 DEFL var1+1 ; var1 == 1
var1 = var1+1 ; var1 == 2
; EQU is different
const1 EQU 10 ; const1 == 10
; this is invalid
const1 = 11 ; will raise error about different value assigned to label
So, in the upcoming v1.18.3 there will be `--syntax=s` switch to disable sub-word substitutions for particular piece of source... should make a bit easier to migrate from other assembler or other version of sjasmplus, if your old source has accidental substitutions in trivial define names.
Check at bottom test asm + lst to get exact idea what it does: https://github.com/z00m128/sjasmplus...2976ee36be3c11
(the default stays as it was, so you must explicitly to disable sub-word substitution by the new option)
Как использовать sjasм для компиляции для GB?
To switch instruction set and syntax for GameBoy, use command line switch.
The precise syntax of the instructions which differ between Z80 and LR35902 can be seen in the test files:Код:sjasmplus --lr35902 file.asm
https://github.com/z00m128/sjasmplus...tax_by_neo.asm
(will produce https://github.com/z00m128/sjasmplus...tax_by_neo.lst )
That's about CPU instructions and their syntax.
How to build valid ROM for GB, with proper header, etc: I don't know, you need to know yourself what should be content of the ROM image, and build that with regular directives like DB/HEX/...
Maybe somebody here will have some helper macros to create ROM headers, or calculate checksum of ROM, if they already are using sjasmplus for GB, but I don't have such stuff for myself, and I never did GB stuff.
Ped7g, Thank you
Это макросы из сорцов GSNEO (от savelij). Компилирует через asw (как я понял). В Sjasm ругается. Толком не пойму что здесь написано, макросы ещё не использовал. Можно это для sjasm привести в читаемый вид? Помогите.Код HTML:DUPL MACRO LEN,FILL
DUPL:
$$N EQU (LEN) / 1024
$$M EQU (LEN) # 1024
REPT $$N
DB 1024 DUP(FILL)
ENDM
IF $$M <> 0
DB $$M DUP(FILL)
ENDIF
ENDM
HIGH FUNCTION X,((X >> 8) & 0XFF)
LOW FUNCTION X,(X & 0XFF)