News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

What sort of projects have been made in MASM32?

Started by Lonewolff, March 16, 2016, 09:45:57 PM

Previous topic - Next topic

raymond

QuoteHas anyone taken on any large scale projects like a game or anything like that?

I've posted a description of my 10-pin bowling game in the DOS forum if you're interested.

Other significant projects of mine included:

(i) A "cash register" program to be used with a laptop at a public market, keeping track of each individual product purchase, total net cash collected, credited amounts to two credit cards and a bank card, and a few other options; I wanted to include the facility to read barcodes but the project did not reach its full potential.

(ii) An electronic ledger (to replace manual bookkeeping) for the small subdivision where I live; that subdivision has not yet been turned over to the municipality and residents are responsible for all maintenance expenses based on a budget approved yearly by the residents. As budget director at the time, I needed (and wanted) to have easy access to past years data for budget preparation.

N.B. Everything I do is 100% in assembly; I don't know any other language.
Whenever you assume something, you risk being wrong half the time.
https://masm32.com/masmcode/rayfil/index.html

khandum

Quote from: Raistlin on March 18, 2016, 04:53:01 PM
Wrote a complete GUI- client, server, maintenance back-ends, reporting platform & xml parser, integrated accounting package interfacing (Pastel)
in assembler for an exchange  company/bank reporting to the South African Reserve Bank a couple of years ago - all of it could
fit on less than a stiffy disk - graphics and all. Could navigate (slide-bar) through 4900 records (typical monthly invoicing load)
in less than a second on a crappy PIII, 256MB RAM. People (programmers and system developers/consultants) thought I was crazy...
but shut up quickly when they saw the performance. Was developed over 6 months - which was typical for the same project using
other programming development platforms.

So large projects can and should be done in assembler - I don't care what the critics say, I know it's do-able for any purpose.
(PS: I am skilled in  11 programming languages (mostly all dead languages now) - the only one that sticks around through all the decades is assembler)

<edit - yes I'am an assembler zeolot>

I have an idea but was worried I can't do it in assembly. Now you gave me hope. Thank you!!!

Raistlin

#17
Glad to inspire khandum !!

For the high-level guys that say ASM projects are time consuming and error-prone/ unreadable / un-debugable
-----------------------------------------------------------------------------------------------------------------------
1) the idea is to construct a library (just like the high level language guys do btw ** It's just that they get handed such on a platter and we don't )
   HINT: use base as supplied (MASM / JWASM packs/ loads more) and add your own over time
--> NOW you HAVE: re-usability of code // readability  // debug-ability  // reduced development time frames

2) stick to templates for code frameworks  (just like the high level language guys do btw)
   HINT: have a look at master coders like: --hutch, vortex, jj2007, Siekmanski, Ray Filiatreault etc...code samples - take the best away from it
   HINT: comment often // use header comments explaining a span of code for a procedure/function etc. // use INVOKE with parameters constructs // use data STRUCTS
--> NOW you HAVE: re-usability of code // readability  // debug-ability  // reduced development time frames

3) use a modular design paradigm - grow your project  (just like the high level language guys do btw)
   HINT: use the Easy Code IDE or RADASM to manage your code // use the features inherent to create multiple backups or code revisions
--> NOW you HAVE: debug-ability  // reduced development time frames // code versioning

4) have a can do attitude - failure is not an option - use your passion - if it doesn't work one way - try another - if that doesn't work
    post a message in the forum - and we'll make it work !

<edit : spelling corrections via jj2007  :greensml: >
Are you pondering what I'm pondering? It's time to take over the world ! - let's use ASSEMBLY...

LordAdef

Quote from: Raistlin on May 05, 2017, 03:44:42 PM
Glad to inspire khandum !!

For the high-level guys that say ASM projects are time consuming and error-prone/ unreadable / un-debugable
-----------------------------------------------------------------------------------------------------------------------
1) the idea is to construct a library (just like the high level language guys do btw ** It's just that they get handed such on a platter and we don't )
   HINT: use base as supplied (MASM / JWASM packs/ loads more) and add your own over time
--> NOW you HAVE: re-usability of code // readability  // debug-ability  // reduced development time frames

2) stick to templates for code frameworks  (just like the high level language guys do btw)
   HINT: have a look at master coders like: --hutch, vortex, jj2007, Siekmanski, Ray Filiatreault etc...code samples - take the best away from it
   HINT: comment often // use header comments explaining a span of code for a procedure/function etc. // use INVOKE with parameters constructs // use data STRUCTS
--> NOW you HAVE: re-usability of code // readability  // debug-ability  // reduced development time frames

3) use a modular design paradigm - grow your project  (just like the high level language guys do btw)
   HINT: use the Easy Code IDE or RADASM to manage your code // use the features inherent to create multiple backups or code revisions
--> NOW you HAVE: debug-ability  // reduced development time frames // code versioning

4) have a can do attitude - failure is not an option - use your passion - if it doesn't work one way - try another - if that doesn't work
    post a message in the forum - and we'll make it work !

<edit : spelling corrections via jj2007  :greensml: >
Hello sir,
this post is actually an inspiration for me too! Hutch should attach this quote in a relevant place.

I'm quite fed up to read Prefaces (at al) saying the same bullxxxt that asm is good only for small routines, optimization of critical loops bla bla. Even guys that do assembly sometimes fall into this prayer.

Same for C++ advocates profiling dodgy examples only to say asm is irrelevant.

This is what pushed many many people like me away from learning asm earlier.

But it's never too late to get it right. I'm sticking to masm for life now, never to come back.

ps: I don't even care to write slow asm. It's a joy even in slow code  :bgrin:

jj2007

My experience with "big" projects (10,000+ lines - still small...) is limited to two languages: GfaBasic (now defunct) and Masm32.

GfaBasic was, at the time I started in the late 80s, a remarkable mix of Pascal and BASIC elements, it was fast and elegant. But it was a 16-bit dialect, and its author was not motivated to port it into 32-bit land.

That's why I started using the Masm32 SDK. My editor is now at almost 20k lines of code, my library exceeds 30k. Total number of source files written in Masm32/MasmBasic (with *.asc ending ;)): 4,956. Note that both RichMasm and MasmBasic consist of one single source file that loads in less than a second; RM builds in less than a second, the whole MB library in three seconds. For comparison: opening the Visual Crap IDE takes several minutes.

Common to Masm32, MasmBasic and Gfa: They work. You throw a little source at the compiler/assembler, and it does its job :t

I do use C/C++. I am not as good as in Gfa or Masm32, of course. But really, I've given these languages more than one chance. And every time it turns out to be just an ugly mess. No single source so far could be built with more than one compiler (I've tried Pelles C, so far the best, VC, Gcc, Tiny CC), and fortunately I have not even tried on 'nix systems. Visual Crap is slow like hell, and it can't recognise its own "projects" if they are older than a handful of years. Every time I touch this crap, I end up spending hours on the web reading the desperate cries for help of fellow victims of these "languages" staring at incomprehensible and unexplainable error messages.

Really, C/C++ is a horrible, painful mess. Plus the ugly syntax that must be a blessing for doctors specialised in {repetitive stress injury}. What I particularly dislike is the arrogant "we are the professionals, you are just hobby coders" attitude of the C/C++ gang. I am confronted with "professional" products all the time, they are called Windows, Office, Acrobat and the like, and they are proof that these languages are not suited for professional programming 8)

Visual Basic? I've considerable experience in VBA for MS Word and Excel, and it's much better than its reputation, but still, Gfa was better, and MasmBasic is much better nowadays.

PowerBasic? Not my cup of tea, but it does look good, and is probably the best commercial BASIC dialect around.

Python looks good, and has remarkably fast built-in functions (sorting, for example), but they messed up completely the transition from version 2 (2.7) to 3 (3.4). If I had to start from scratch, I would give it a try.

Siekmanski

Many years ago I accepted a freelance job to write a program for collecting data from an industrial robot.
Had to translate messages, xyz movements etc. written to files and show the movements of the the robot in a 3D animation on screen.
It was for learning purposes for the operators.

When i send the program (47kB in size) they where very happy with it.
But there was a "securety" problem, the head of the IT department didn't allow crunched/packed executables. I told him the executable wasn't packed or crunched but written in assembly.
The strangest conversation i had with an "IT professional" was that day. It could only be done in C++ blah blah blah, because that was the language professional programmers used, blah blah blah. Assembly was ancient unreadable not maintainable blah blah...
At the end of the conversation i told him i would send him the source code to check and build it himself.
The next week i got an email from a programmer of his department, he liked the way i coded it, the many comments in the code and how nice structured everything was written. Long story but, this same guy programmes now in assembly most of the time.

I don't do freelance coding jobs anymore, too much of a hassle.
Creative coders use backward thinking techniques as a strategy.

felipe

I have done some games in assembly using MASM 5.0 in MS-DOS 7.10 that run in FREEDOS too.  :icon_eek:

anunitu

There was(though I can not remember who was part of it) a full scale game project done in assembler. Other members might remember this.

rsala

EC coder

Raistlin

Sorry, just had to do this:
A)
Which computer language is ALWAYS
the first AND last of any computing platform.
B)
Which computer language is ranked 12th in the world.
C)
Which computer language is the defacto standard
for all compiler (any high level language) ultimate output

Sorry no rewards for 'not guessing' the correct answer
Are you pondering what I'm pondering? It's time to take over the world ! - let's use ASSEMBLY...

TWell

A. assembler and C as with C someone can generate a virtual opcodes to a virtual CPU without assembler ;)

Raistlin

and in what language was the C compiler written?
Are you pondering what I'm pondering? It's time to take over the world ! - let's use ASSEMBLY...

TWell

Perhaps cross compiler is written in C ;)
This is a dilemma. Usual chicken add egg dilemma.
Think about C compiler backends.
Do they need any assemblers for that?

raymond

Quote from: Raistlin on May 06, 2017, 06:38:59 AM
and in what language was the C compiler written?

This would all depend on which version of that C compiler you are looking at.

I can remember when I started with assembly for the Z-80 (on a Tandy Radio Shack TRS-80), all my first programs had to be hand coded. I then decided to write myself an assembler which initially also had to be "hand coded". All future revisions could then be assembled with the latest one. Something similar would probably have been done with revisions of the "C" compilers, only the original version having required assembly.
Whenever you assume something, you risk being wrong half the time.
https://masm32.com/masmcode/rayfil/index.html

anunitu

I am thinking Machine code,though many do not know that machine code and assembler are not the same.

As this:
Assembly language is a more human readable view of machine language. Instead of representing the machine language as numbers, the instructions and registers are given names (typically abbreviated words, or mnemonics, eg ld means "load"). Unlike a high level language, assembler is very close to the machine language.Aug 10, 2009

You could enter your code using direct binary or in some cases Hexadecimal,but it is much easier to use a compiler to generate from assembler instructions. :redface:

http://researchpedia.info/difference-between-assembly-and-machine-language/