Author Topic: BASM  (Read 8579 times)

Blockland Assembly

I'm thinking of creating a powerful event Add-On which would simulate the x86 (32 bit) Assembly language using the .386 instruction set with Intel syntax. I haven't really programmed in Torque Script that much, but when I look at event mods like Variable and Conditional Events and things of the sort, it really doesn't look too hard at all! At least it will be a good learning experience.

The mod would require you to custom plant certain register bricks (which would be assigned a certain register via the brick name) which would simulate parts of a processor. In Assembly, different registers store and perform different things, so the amount of registers that one would need for their project would vary.

Different actions would be performed on the registers and your event project as a whole by using instructions within the event GUI. I would include the most rudimentary instructions (like mov) in the first release, then would probably build on the current release.

I plan to have different bricks run their pseudo Assembly code as different functions. That is, different bricks would equate to different functions that could be called from other bricks. I will also use this same concept with initialization bricks (for things like initialized, .data and un-initialized, ?data which would be called automatically).

The mod would allow you to do multiple things:
  • Possibly creating a screen of print bricks in which you would be able to print and modify values to.
  • An alternate way of handling variables
  • A way for bricks to efficiently communicate with each other, perform checks, alter command/program flow
  • There are also many other things of the sort that I would like to include that I am not going to list here.

I may include a virtual stack and heap along with sequential 'memory addresses'.

Lastly, I understand that not many people, if any, will understand the concepts of how to use the Add-On, but I would like to create it for my liking. I know that I am being pretty vague on the whole subject, but I don't have much time to type this and don't want a tl;dr thread anyways.

If you didn't understand a thing that I said, then Google 'Assembly'. Suggestions are welcome!
« Last Edit: April 07, 2010, 06:13:25 PM by Radial543 »

This sounds really cool, complex like variable,but cool.

If this is made there will be so many "hao du i maek a compootor with basm?" threads. this is like giving babies power tools.

I wouldn't resist making something just because idiots can't figure it out. Just let those who can use it enjoy it.

but I dont get this :C

Well, I am trying to decide how many registers types there will initially be, I definitely need the basics, but I don't want the mod to be bloated with all the registers that x86 Asm has:
  • EAX
  • EBX
  • ECX
  • EDX
  • ESI
  • EDI
        <-- All just one type of register!!
That's a lot of General Purpose registers! As I stated before, I will include necessary things like the Stack and Base pointer registers.

If you get the name of the Add-On, then kudos to you.
This sounds really cool, complex like variable,but cool.
Well, storing variables would be a small, but powerful, feature of the Add-On. You would move 'mov' that data to different registers and perform different actions to that data.
If this is made there will be so many "hao du i maek a compootor with basm?" threads. this is like giving babies power tools.
Yea, I guess...I don't really plan on too many people getting it. Hence, I will attempt to make a Blockland Assembly tutorial that will be released with the mod. I really plan on this mod to allow others to program extremely low level stuff in-game. I am also considering some form of circuitry mod that would be compatible with this.
I wouldn't resist making something just because idiots can't figure it out. Just let those who can use it enjoy it.

but I dont get this :C
Don't worry, I hope to create some form of a guide in the near future, though Assembly can be very hard. Since it can also be hard to debug, I will create a comment event that will do nothing other than to comment your Assembly 'code'.

Double post, I am thinking of different ways to create blocks of code in the event window. I may have to do things like:

Code: (asm) [Select]
.data
    MOV AH,1337; thus calling the nonexistant sub function '1337'.
.endData

...but I don't know how well that would work. Any suggestions?

My main worry with the mod is that Assembly in Blockland can lead to massive abuse. I will need to have some sort of idiot buffer to resolve this.
« Last Edit: March 15, 2010, 08:47:33 AM by Radial543 »

I get the main idea. Do eet.

Well, I am trying to decide how many registers types there will initially be, I definitely need the basics, but I don't want the mod to be bloated with all the registers that x86 Asm has:
  • EAX
  • EBX
  • ECX
  • EDX
  • ESI
  • EDI
        <-- All just one type of register!!
That's a lot of General Purpose registers! As I stated before, I will include necessary things like the Stack and Base pointer registers.

If you get the name of the Add-On, then kudos to you.Well, storing variables would be a small, but powerful, feature of the Add-On. You would move 'mov' that data to different registers and perform different actions to that data.Yea, I guess...I don't really plan on too many people getting it. Hence, I will attempt to make a Blockland Assembly tutorial that will be released with the mod. I really plan on this mod to allow others to program extremely low level stuff in-game. I am also considering some form of circuitry mod that would be compatible with this.Don't worry, I hope to create some form of a guide in the near future, though Assembly can be very hard. Since it can also be hard to debug, I will create a comment event that will do nothing other than to comment your Assembly 'code'.


This just seems to be a long-winded and complicated way of doing whatever the variable events do. Nobody is going to bother reading an instruction manual to create events in Blockland, they will just ask and bug people.

The only reason you'd have an assembly language would be to interact with the torquescript engine but because that poses such huge security risks and I doubt anybody's abilities to successfully exploit-proof the access it's not feasible.

This looks more like an attempt to flaunt your apparent knowledge of assembly language.

This just seems to be a long-winded and complicated way of doing whatever the variable events do. Nobody is going to bother reading an instruction manual to create events in Blockland, they will just ask and bug people.
This is somewhat true indeed, but there is more of a point involved. I don't play Blockland too much, but when I do I have always gravitated to Variables and Conditional events. I wanted something more substantial and powerful, and I think that for myself, a stripped Assembly language would be really fun! As for the manual, I must be different than other people, then, considering that I always read the documentation of events and other gadgets. If people don't want to learn how to use the Add-on, then I really don't care. The mod would also allow one to create basic circuits among other things, and would allow one to replicate can build actual functioning systems. Just variables is so limited!
The only reason you'd have an assembly language would be to interact with the torquescript engine but because that poses such huge security risks and I doubt anybody's abilities to successfully exploit-proof the access it's not feasible.
Eh, I plan on just emulating aspects of the x86 Assembly language (I can't replicate everything considering that there are thousands of commands). You can do many things with the lexical structure Asm, and I think that it could be well implemented with Blockalnd's events.
This looks more like an attempt to flaunt your apparent knowledge of assembly language.
No, not at all. Anybody can learn programming languages, it shouldn't raise peoples' status.

Aside from this all, I have thought of a new idea: file I/O. The mod should be able to store information that is universal between games, so I think that I will have events that will create text files to record any data that you would like. I have read somewhere that actually deleting files from your hard disk is impossible with Blockland. Is this true? Or is it just a tangent?
« Last Edit: March 15, 2010, 06:15:26 PM by Radial543 »

This is somewhat true indeed, but there is more of a point involved. I don't play Blockland too much, but when I do I have always gravitated to Variables and Conditional events. I wanted something more substantial and powerful, and I think that for myself, a stripped Assembly language would be really fun! As for the manual, I must be different than other people, then, considering that I always read the documentation of events and other gadgets. If people don't want to learn how to use the Add-on, then I really don't care. The mod would also allow one to create basic circuits among other things, and would allow one to replicate can build actual functioning systems. Just variables is so limited!Eh, I plan on just emulating aspects of the x86 Assembly language (I can't replicate everything considering that there are thousands of commands). You can do many things with the lexical structure Asm, and I think that it could be well implemented with Blockalnd's events.No, not at all. Anybody can learn programming languages, it shouldn't raise peoples' status.

Should be interesting then.

Aside from this all, I have thought of a new idea: file I/O. The mod should be able to store information that is universal between games, so I think that I will have events that will create text files to record any data that you would like. I have read somewhere that actually deleting files from your hard disk is impossible with Blockland. Is this true? Or is it just a tangent?

You can delete files within the Blockland folder using fileDelete();

Blockland Assembly

I'm thinking of creating a powerful event Add-On which would simulate the x86 (32 bit)

Different actions would be performed on the registers and your event project as a whole by using instructions within the event GUI. I would include the most rudimentary instructions (like mov) in the first release, then would probably build on the current release.

I plan to have different bricks run their pseudo Assembly code as different functions. That is, different bricks would equate to different functions that could be called from other bricks. I will also use this same concept with initialization bricks (for things like initialized, .data and un-initialized, ?data which would be called automatically).

The mod would allow you to do multiple things:
  • Possibly creating a screen of print bricks in which you would be able to print and modify values to.
  • An alternate way of handling variables
  • A way for bricks to efficiently communicate with each other, perform checks, alter command/program flow
  • There are also many other things of the sort that I would like to include that I am not going to list here.



Man i need to learn this stuff

*edit* and what it means too
« Last Edit: March 15, 2010, 06:32:43 PM by smaug85 »

Man i need to learn this stuff

*edit* and what it means too
http://www.xs4all.nl/~smit/asm01001.htm (Though that is 16 bit Asm, but it doesn't matter too much)
Google is also a helpful friend. If you really are set on learning Assembly there are some good books on the subject.

Since all you're doing is basically making wire mod, skip the assembly part, and just make wire mod with the "Expression chip" feature instead.

You can't say that's not what you're doing.

Since all you're doing is basically making wire mod, skip the assembly part, and just make wire mod with the "Expression chip" feature instead.

You can't say that's not what you're doing.
Truthfully...I do not know what 'wire mod' is ._.