flat assembler
Message board for the users of flat assembler.

Index > DOS > Some game with insight into origins of flat assembler

Author
Thread Post new topic Reply to topic
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8357
Location: Kraków, Poland
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. Wink However both ASM32 and my extender (called HDOS) got lost and perhaps will never come back... Sad 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.


Description: Binaries and source of the "Glumpy" game, only for the private use of the registered
users of flat assembler message board.

DO NOT REDISTRIBUTE!

Download
Filename: glumpy.zip
Filesize: 327.33 KB
Downloaded: 1182 Time(s)



Last edited by Tomasz Grysztar on 21 Aug 2006, 12:48; edited 1 time in total
Post 08 Mar 2006, 23:10
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 08 Mar 2006, 23:30
nice...

heptagram? Laughing

how do i switch thingies shown on lower-left screen? (default is drill)
i liked polish comments :-]

thanks, very nice.

PS: runs on XP w/o dosbox
Post 08 Mar 2006, 23:30
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8357
Location: Kraków, Poland
Tomasz Grysztar 08 Mar 2006, 23:39
I suggest reading the README.TXT file. Wink
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. Wink


Last edited by Tomasz Grysztar on 08 Mar 2006, 23:42; edited 1 time in total
Post 08 Mar 2006, 23:39
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 08 Mar 2006, 23:42
and heptagram? you and two friends?
Post 08 Mar 2006, 23:42
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8357
Location: Kraków, Poland
Tomasz Grysztar 08 Mar 2006, 23:43
Yes.
Post 08 Mar 2006, 23:43
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 08 Mar 2006, 23:48
gotta add it here: http://en.wikipedia.org/wiki/Heptagram Laughing

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 Smile and there were REALLY nice dos games
Post 08 Mar 2006, 23:48
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4624
Location: Argentina
LocoDelAssembly 09 Mar 2006, 01:32
Nice work Very Happy

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
Post 09 Mar 2006, 01:32
View user's profile Send private message Reply with quote
Reverend



Joined: 24 Aug 2004
Posts: 408
Location: Poland
Reverend 09 Mar 2006, 17:08
The game is really nice, I wish you finished it Wink.
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!
Post 09 Mar 2006, 17:08
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid 09 Mar 2006, 17:17
yes, i noticed that too.
Post 09 Mar 2006, 17:17
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8357
Location: Kraków, Poland
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.
Post 09 Mar 2006, 18:36
View user's profile Send private message Visit poster's website Reply with quote
RedGhost



Joined: 18 May 2005
Posts: 443
Location: BC, Canada
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
Post 29 Mar 2006, 07:53
View user's profile Send private message AIM Address MSN Messenger Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.