flat assembler
Message board for the users of flat assembler.
Index
> DOS > Some game with insight into origins of flat assembler |
Author |
|
Tomasz Grysztar 08 Mar 2006, 23:10
As you may not yet know, one of the main reason why I have initially learned assembly language, was to write games (in DOS, of course). While I was in the high school I have done a several skeletons of game engines, the last one of them is the kelvar, which became one of the official examples for flat assembler. It is a very tricky one, however, as it uses the fully 32-bit unreal mode and for this reason you need a plain DOS and really-Intel-compatible processor for it to run (for example the emulators I know fail to execute it properly).
While the most of my early projects written in assembly language got lost during the years due to various rash delete commands combined with a few media failues, the archive containing snapshots of some of the game projects survived. Thus I decided to show another one, which I was quite proud of in the days I made it with my two friends. It was written in 1997, two years before I started the flat assembler project, and thus the main code is written in TASM syntax. But when looking on the sources of some of the program from TOOLS directory, you can notice that some of them are written in a bit different syntax, which looks just like the one of fasm. These were written in my first own assembler (it was called ASM32, as I recall), which assembled only 32-bit code for the DOS32 extender, and which gave me an experience I used later in desiging the flat assembler itself. My ASM32 was later changed to assemble for my own extender, as I wrote one, and thus the first versions of fasm before it was capable of self-assembling were 32-bit executables running on that extender, too. The fact that the syntax of ASM32 was already so similar to the final syntax of fasm, may explain how the trick with self-assembling was achieved. However both ASM32 and my extender (called HDOS) got lost and perhaps will never come back... So the sources of some of the tools here are the only remaining samples of the ASM32 syntax. It is however so similar to the fasm syntax, that perhaps the only noticeable difference is that it used constructions like: Code: SourceFile db 80h(?) for declaring arrays of data. One of those tools written in ASM32 whose sources survived and are available here for your viewing is the MDAT - a tool that I've been using to easily compose the data files with the very simple language. The files in that language had extension .DTS (data scripts), and contained the commands like: Code: byte 17 dword 20 file 1.raw to create the data file. And when I wrote fasm, I included the "file" command in it, so I could not only write programs with it, but also compose the data files with DB/DD/FILE and other such commands. Thus the fasm replaced both the ASM32 and MDAT tools (and still, even the first version, could do so much more). And that's why binary including directive in fasm is called FILE, not INCBIN (which I perhaps didn't know yet, that time). When preparing this package to post here, I had to replace the DOS32 with the newer version, because the old 3.3 one that this game was originally using fails to work under Windows NT/2000/XP (and I realize that many people may be running DOS programs in such environment actually). This new one shows a shiny logo telling that it is shareware (I've heard it has also some RAM limitations, but fortunately this game goes unaffected) and still causes some exception on exit - but, well, at least the game works. The tools that were made with ASM32, however, cannot be re-assembled to work with the new version of DOS32 (as there is no longer any copy of ASM32 in existence), so I kept the old DOS32 in the directory with TOOLS - you can run them in plain DOS or, alternatively, under the DOSBox emulator. And if you would like to re-assemble the game itself, you need the TASM 4.0 for this purpose. The game itself was planned to be a kind of reversed Lemmings idea - you'd have to lead the dwellings into various traps etc. with your player. As it never got even nearly to be finished, there's not much you can do here, but you still can lead the dwellings into falling somewhere or imprison them if you want.
Last edited by Tomasz Grysztar on 21 Aug 2006, 12:48; edited 1 time in total |
|||||||||||
08 Mar 2006, 23:10 |
|
Tomasz Grysztar 08 Mar 2006, 23:39
I suggest reading the README.TXT file.
You switch the thingies with [ and ] keys (you've got only two working, though). PS. Even though it's roughly a demonstration of engine, I find it quite fun to play it. For example: go pick up the flower. Last edited by Tomasz Grysztar on 08 Mar 2006, 23:42; edited 1 time in total |
|||
08 Mar 2006, 23:39 |
|
vid 08 Mar 2006, 23:42
and heptagram? you and two friends?
|
|||
08 Mar 2006, 23:42 |
|
Tomasz Grysztar 08 Mar 2006, 23:43
Yes.
|
|||
08 Mar 2006, 23:43 |
|
vid 08 Mar 2006, 23:48
gotta add it here: http://en.wikipedia.org/wiki/Heptagram
just joking. Nice work, except some sloppy boundaries checking. btw, don't tell me about "rash delete commands", now i got nothing from first 5 years and there were REALLY nice dos games |
|||
08 Mar 2006, 23:48 |
|
LocoDelAssembly 09 Mar 2006, 01:32
Nice work
About loosing data I think that is worst moving **ALL** the data to a new WD SATA HDD because I trusted in it just because it was new and after two months of use (less than 1000 hours of use) suddenly the system entered in sleep mode without the posibility of wake up it again. When I turned on the computer again the disk didn't respond to any I/O anymore :'( Regards, LocoDelAssembly |
|||
09 Mar 2006, 01:32 |
|
Reverend 09 Mar 2006, 17:08
The game is really nice, I wish you finished it .
Noticeable is also the fact that back in 1997 you, Tomasz had this awesome coding style (n which the whole fasm source is built). That's pretty amazing! |
|||
09 Mar 2006, 17:08 |
|
vid 09 Mar 2006, 17:17
yes, i noticed that too.
|
|||
09 Mar 2006, 17:17 |
|
Tomasz Grysztar 09 Mar 2006, 18:36
As for the boundaries checking, there was a "false black color" in some places - I have corrected it now.
|
|||
09 Mar 2006, 18:36 |
|
RedGhost 29 Mar 2006, 07:53
cool, best part was reading on the history of fasm imo, nice to see a glimpse into its origins
|
|||
29 Mar 2006, 07:53 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.