Asma and ease of development

ZXNet echo conference «code.zx»

From Alexey Kravchenko To All 20 April 2006

Hello, moroz1999 mor> thanks everyone! mor> mor> in general, for me the ideal of convenience would be: mor> 1. I edit on PC in a custom editor mor> 2. I compile in a cross-assembler into a snapshot file, which is automatically mor> runs in the emulator. mor> mor> any ideas on how to achieve this? Sjasm+. The syntax is almost alasm, it is possible to work with Specov's file formats (.trd, hobeta), you can take a snapshot from the code, plus everything a nice feature - you can upload labels to disk in a file whose format it understands Unreal, so that it would show them in the built-in debugger. About the editor - I added Sjasm support to MuitiEdit - more than nice. It was possible jump to marks in the text, and position for errors during assembly cursor It turned out to be a full-fledged IDE.

From Alexey Asemov To All 20 April 2006

Hello fk0 > I don’t know what convenience there might be in WRITING. A set of commands, macro functions, “short” recordings. I use SJAsm+, at the output I get a ready-made SNA for debugging G)

From rasmer To All 20 April 2006

Hello, moroz1999 mor> Somehow it seems to me that this is far from the most convenient method of working, who mor> what can you recommend to facilitate/speed up this process? incbin, include - look in the description for Zxasm? I just don't remember anymore...

From moroz1999 To All 20 April 2006

Hello, rasmer By the way, you can also recommend another ASM :) Queries to the compiler are the simplest, the main thing is the convenience of the interface, external ergonomics and simplicity.

From moroz1999 To All 20 April 2006

Hello, All I have long wanted to ask your advice on the following matter: Everything that I write on ASMA (for myself), I do this way: 1. I run zxasm under Anril. 2. Compile 3. I go to the STS linked to it 4. I save the compiled file, restart, and run the previously made one BASIC loader that loads graphics, tables, compiled code and launches them. Somehow it seems to me that this is far from the most convenient method of working, who will do what Can you advise me to make this process easier/faster?

From moroz1999 To All 20 April 2006

Hello Alex/AT thanks everyone! in general, for me the ideal of convenience would be: 1. I edit on PC in a custom editor 2. I compile in a cross-assembler into a snapshot file, which runs automatically in emulsion. Any ideas on how to achieve this?

From Slavik Tretiak To All 20 April 2006

Hello, moroz1999 So... 1) regarding the convenience of the interface and other things. under win32 I wrote for ZX like this (I just use Linux and my own emulsion now): emulsion - anril. company model - Pentagon 512 asm - alasm (not even the newest one). all incbins and includes are there. everything I launch directly from asya without any bootloaders. ASM itself and STS lie at the top memory, so my program does not affect them debug - well, firstly, you need to write it in such a way that you don’t need to debug it (absolutely without jokes, because it’s easier to write complex things correctly than to debug them). well, what if that's all I still had to - STS. if you need to debug some bootloaders, then Anrilov’s built-in dolbager Some people advise using cross assemblers, but that’s not convenient for me. especially since there is still not a single cross-asma that is easy to write code (precisely for ease of writing, and not for sophistication and other macros) would reach alasma. (in fact, even among the native writing asms, only nasm is possible call it an assembler. )

From Kirill Frolov To All 20 April 2006

Hello, moroz1999 mor> I have long wanted to ask your advice on the following matter: mor> Everything that I write in ASMA (for myself), I do this way: mor> 1. I launch zxasm under anril. mor> 2. Compile mor> At this time, something goes wrong, for example, the power supply, and for 10 hours in a row written fucking ruined. This is precisely the reason why you should not use unreal speccy for such tasks. > It seems to me that this is far from the most convenient method of working, who > what can you recommend to facilitate/speed up this process? EMUZ dosovy. Hitech-C and homemade scripts for loading tables characters in emuz.

From Kirill Frolov To All 20 April 2006

Hello Sinus Sin> some advise using cross assemblers, but this is not convenient for me. Sin> especially since there is still not a single cross-asma that is convenient Sin> writing code (precisely for ease of writing, and not for sophistication Sin> and other macros) would reach Alasma. Sin> An assembler is a program that gets *.obj from *.as. What is it maybe it’s the convenience of the WRITINGS, I don’t know. I have it provided editor (Vim). > (in fact, even among native writing systems, only nasm > can be called an assembler. ) And gas, or masm are therefore non-assemblers (that’s right, together).

From moroz1999 To All 20 April 2006

Hello Alex/AT Ale> A set of commands, macro functions, “short” records. Ale> Ale> I use SJAsm+, at the output I get a ready-made SNA for debugging G) oh! I'll try this!

From Kirill Frolov To All 20 April 2006

Hello Sinus Sin> I don’t know what *.as is. maybe #?.asm ? Sin> Hitech has *.as. M$ has *.asm. GNU has *.s. So what's the difference... > ease of writing is NOT an editor. this is the syntax to which I > used to it. > Well, if you’re used to it... Then nothing will help. Although again the presence A sane macro processor makes life a lot easier. > gas has a very specific syntax, unusual for programmers > It is not intended for writing by hand at all... Use NASM. > if the processor developer company comes up with the syntax, then they need to > use. otherwise you get the feeling of a vinaigrette (as if they mixed > 68k syntax with x86) > I agree. > masm - yes, it's a non-assembler. at least you can’t use it. There are no fools in Microsoft.

From Andrey Marinov To All 20 April 2006

Hello Kurles Kur> plus a nice feature - you can upload labels to disk to a file Kur> the format of which is understood by Unreal, so that it would use them in the built-in debugger Kur> showed. Can you explain in more detail how to achieve this, or at least where to read it?

From Slavik Tretiak To All 20 April 2006

Hello fk0 fk0> An assembler is a program that gets *.obj from *.as. fk0> I don’t know what convenience there might be in WRITING. I have it fk0> is provided by the editor (Vim). I don’t know what *.as is. maybe #?.asm ? ease of writing is NOT an editor. This is the syntax I'm used to. > And gas, or masm are therefore non-assemblers (that’s right, together). gas has a very specific syntax, unusual for x86 and z80 programmers. and specifically I don’t like this syntax. if the processor developer company comes up with the syntax, then they need to use. otherwise you get the feeling of a vinaigrette (as if they mixed 68k syntax with x86) masm - yes, it is a non-assembler. at least you can't use it.

From Slavik Tretiak To All 20 April 2006

Hello fk0 fk0> Well, if you're used to it... Then nothing will help. Although again availability fk0> a sane macro processor makes life much easier. that's my share ;) I don't like macros. because if you heavily use macros and other bells and whistles, then you start to forget what the code looks like. > It is not intended for hand writing at all... Use NASM. and I use it :cool; >; There are no fools in Microsoft. no. but masm has an extremely inconvenient syntax. (the operator is especially annoying offset). PS Why is it far from the Spectrum and from the topic? I'm quitting.

From Slavik Tretiak To All 20 April 2006

Hello Rubts0FF Rub> :v2_clapp; Serious; statement :v2_clapp; Well; I think it’s permissible for me, because I wrote a lot on ASMA... no, not a lot, to hell ;) And in the end I came to nasm (if you write it in petse). PS all this is offtopic. I'm quitting.

From Rubts0FF To All 20 April 2006

Hello Sinus Sin> masm - yes, this is a non-assembler. at least you can’t use it. :v2_clapp; Serious; statement :v2_clapp:

From Kirill Frolov To All 20 April 2006

Hello, moroz1999 mor> thanks everyone! mor> mor> in general, for me the ideal of convenience would be: mor> 1. I edit on PC in a custom editor mor> Is someone prohibiting it? > 2. I compile in a cross-assembler into a snapshot file, which is automatically > runs in the emulator. > any ideas on how to achieve this? You need to do it automatically - write the appropriate script. "Snapshot" can do sane linker (most of the underassemblers promoted here are his do not have them at all) by placing the code in the necessary addresses, placing the header "snapshot" in the appropriate place, stack, etc. and by converting all this into *.bin - a ready-made “snapshot”.

From Kirill Frolov To All 20 April 2006

Hello Alex/AT Ale> A set of commands, macro functions, “short” records. Ale> The set of instructions is uniquely determined by the target processor. Any sane MACRO ASSEMBLER can probably do “functions based on macros”. Spectrum's, with the exception of ALASM, do not have this capability. Yes, and ALASM is not particularly... A sane macro processor in my understanding, if anything, this is m4. I don’t know what “short notes” are.

From Kirill Frolov To All 20 April 2006

Hello, Adramelek Adr> You are simply not aware of all the possibilities of US. ;) Has he already learned mmap() and msync() for *.trd instead of read()?

From Demon Adramelek To All 20 April 2006

Hello fk0 fk0> At this time something goes wrong, for example the power supply, and writing for 10 hours in a row fk0> is fucking ruined. This is precisely the reason why you should not fk0> use unreal speccy for such tasks. You are simply not aware of all the possibilities of the US. ;)

From Alexey Asemov To All 20 April 2006

Hello Sinus > The set of instructions is uniquely determined by the target processor. > > Any sane person can probably do “Macro functions” > MACROASSEMBLER. > Spectrum ones, with the exception of ALASM, do not have this capability. > Yes, and ALASM is not very... A sane macro processor in my understanding, > if anything, > this is m4. > > I don’t know what “short entries” are. Let me clarify - a set of directives. Can macro processors do everything STRUCT? Or do we need to look for a preprocessor that would could it? What about saving in SNA, for example? Or do we also need to look for a linker for ZX? A ECHO during compilation, so that you don’t have to read the listing, but immediately see it dimensions/points/etc.? What about MODULE and entries like .

From Rubts0FF To All 21 April 2006

Hello Sinus Sin> Well, I think it’s permissible for me, because I wrote a lot in ASMA... no, Sin> not much, a lot ;) Sin> And in the end I came to nasm (if you write it in Petse). Sin> Sin> PS. all this is offtopic. I'm quitting. This does not give you the right to unfoundedly declare that masm is a non-assembler. To each his own, I like FASM, but I don’t like masm. I'm quitting too.

From Alexey Kravchenko To All 22 April 2006

Hello, nyuk nyu> Can you explain in more detail how to achieve this, or at least where nyu> read? Easy. Actually, at the beginning of sjasm's source code we write labelslist "path_to_unriluser.l" after which we compile the program, launch unril, in its debugger press ctrl-l and we rejoice :)

From Robus To All 22 April 2006

Hello Alex/AT Ale> > Which assemblers have this? > > So far SJAsm Plus only. > Not only in this ASAM... In my ASAM it was like this from the very beginning, also in 2001...

From van Yu Shinn To All 22 April 2006

Hello Alex/AT Ale> MODULE and entries like . This is the most powerful thing! Which assemblers have this?

From Alexey Asemov To All 22 April 2006

Hello, captain cobalt > Which assemblers have this? For now SJAsm Plus only.

From Alexander Bondarenko To Alexey Kravchenko 23 April 2006

*Hello, Alexey!* Catch my ideas about the subject "Asma and ease of development", about which your foot wrap to comrade cracked on April 20, 2006. All. AK> Sjasm+. The syntax is almost alasm, it is possible to work with AK> Spec file formats (.trd, hobeta), can be snapshot from code AK> do, plus a nice feature - you can upload labels to disk in AK> file, the format of which is understood by Unreal, so that it would be in the built-in AK> showed in the debugger. Regarding the editor - I screwed it to MuitiEdit AK> Sjasm's support is more than nice. It was possible by marks in the text AK> jump, and position the cursor on errors during assembly. AK> It turned out to be a full-fledged IDE. May I ask what version of MultiEdit is and where can I download it? /That’s all, Alexey, you can scroll further.../

From Andrey Marinov To All 24 April 2006

Hello Kurles Kur> Easy. Actually, at the beginning of sjasm's source code we write Kur> labelslist "path_to_unriluser.l" Kur> after which we compile the program, launch the unril, click in its debugger Kur> ctrl-l and rejoice Thank you. I really figured it out myself :) But thanks and respect anyway. An extremely useful thing!

From Kirill Frolov To All 24 April 2006

Hello Alex/AT Ale> To clarify - a set of directives. Ale> Ale> Can macroprocessors do everything STRUCT? Or you need to look for a preprocessor Ale> which one would it be Ale> This macro processor is called C. If you need namespaces, templates, etc. perversions - C++. And to these two macroprocessors they also screw more powerful ones, if necessary, like scheme. > could? How about saving in SNA, for example? > How about saving in $Z? And in $X? And in $N? What about *.fjh? And in the text of the program read into a wav file in Russian in iso-8859-5 encoding? > Or should we also look for a linker for ZX? > For ZX - no need. Not even necessary for the Z80. Enough for the chosen one compiler. > And ECHO during compilation, so that you don’t have to read the listing, but see it right away > dimensions/points/etc.? > I don't even know how. But the fact is that in a decent program there is nothing fits in 24 lines of a standard terminal - I'm sure. Listing is needed in any case and it is more convenient. Needed in the process: cat | tail |grep | awk | less... > And MODULE and records like . > This is called namespace and is supported by the C++ macro processor. > AND INSERT (INCBIN)? > No big deal. > And the “short entry” is something like PUSH HL,DE,BC,AF... Extremely useful > feature :) > This is implemented by a recursive macro.

From Alexey Asemov To All 25 April 2006

Hello, All C++, C++. Comrade, you are delusional. We are talking about ASMS, not about C++.

From Dmitry Vasilievich Terentyev To All 26 April 2006

Hello Alex/AT By the way, is anyone interested in a convenient development environment for sjasm and asm80win (from Mednonogova)?

From Stanislav Lomakin To All 26 April 2006

Hello demon_zx dem> By the way, is anyone interested in a convenient development environment for sjasm and dem> asm80win (from Mednonogov)? and what is its difference from the combination of text editor + asm + emulsion with debugger?

From Witch Doctor To All 26 April 2006

Hello, boo_boo And if you need everything, why not use zEmu asm Kladova? There are struct and define and interesting macros, and many, many things... And a debugger editor at once...

From jim To All 27 May 2006

Hello demon_zx dem> By the way, is anyone interested in a convenient development environment for sjasm and dem> asm80win (from Mednonogov)? I'm interested..

From Dmitry Sachok To All 2 September 2006

Hello jim Gentlemen - help the lamer with advice - I can’t load GENS4 under EmuZWin 2.5v, I load it as described in the book "How to write a game in assembly language for ZX Spectrum". Instead of loading once, it loads all the time, like would be in a cycle.

From Roman Fhyedorov To All 2 September 2006

Hello, Bally give up this gens. take alasm. If you don’t understand something, ask.

From elfh To All 3 September 2006

Hello, moroz1999 mor> personally, my advice is sjasm + a normal notepad like scite. my mor> productivity increased by 5 times compared to zasm. I was thinking about switching from Alasma to here, but I don’t like that I have to every time wait until the emulator loads to see how the program works. how are you are you coping with this shortcoming?

From moroz1999 To All 3 September 2006

Hello bugsy My personal advice is sjasm + a normal notepad like scite. mine productivity increased by 5 times compared to zasm.

From Dmitry Malychev To All 5 September 2006

Hello bugsy IMHO cross-assemblers are good, but nevertheless all these are half measures. All this "uploading to SNA" for debugging is unnecessary steps. We need a complete environment development, the main tool of which is the assembler-INTERPRETER (as if wildly it didn’t sound), that is, the ability to emulate the execution of TEXT right away the program being debugged. Moreover, at the development stage it is not yet necessary tied to the hardware, that is, the labels are names, not addresses (if the encoder did not explicitly indicate the binding to physical addresses), and the amount of code/data could be anyone. A running process can be stopped at any time, change values in "registers", edit several lines or even insert a new include and continue execution from the same (or any another) place. And when everything more or less works without logical bugs, you can build the "real" version. The main difficulty here is storing addresses in registers, when all sorts of things are possible. adding addresses with offsets (table sizes), etc. Yes, and to the marks There may be additional alignment type requirements. And by the way, to simplify digging in branded toys (for example), the same capabilities should also be attached to debugging snapshots, that is, again you can interrupt the execution of SNA and give a command like "execute from this address such and such text and come back" - or vice versa, in the text being debuggedinsert "include such and such addresses of such and such SNA". That is, so that it is possible execute also any mixture of text and already compiled code.

From moroz1999 To All 5 September 2006

Hello Lethargeek is it necessary? who will master this and write it? everyone who wants to do something, They do what they have and are unlikely to change their usual tools. everything the rest are just talking. or am I wrong?

From poisoned cyberjack To All 5 September 2006

Hello, moroz1999 you're right, explained it well! I myself would not refuse to debug the program in ASMA itself - but for now it’s like this the program will be written before it leaves the debugging stage - I'm afraid there won't be time no...

From Dmitry Malychev To All 6 September 2006

Hello, moroz1999 mor> is it necessary? who will master this and write it? everyone who wants something mor> do, they do with what they have, and are unlikely to change the usual mor> tools. Then what is the whole topic? Even if you don’t feel like “mastering” it... mor> everyone else is just talking. or am I wrong? Well, maybe someone is itching to write the very best development environment... :) And life is not enough to do everything you want on your own.

From moroz1999 To All 6 September 2006

Hello Lethargeek Let> Then what is the whole topic for? Even if you don’t want to “master”... Let> I've already successfully gotten rid of zxasm, I couldn't be happier :)

From Chunin Roman To All 6 September 2006

Hello Lethargeek Let> Well, maybe someone is itching to write the very best development environment... Let> :) Look how it’s done in Unreal, this tool can easily be developed, but who will do this :)