Home     Software    Freeware    Award     Contact Us


NGASM 8086/8088 Assembler V1.4 Beta 2 - One and only Indian Assembler


 RECOVER Floppy Pro v1.0

 Recover Fixed/Floppy Disk FAT32/16/12 v3.0

 Recover Fixed/Floppy Disk v2.2


 ANALYZER for RECOVER Fixed/Floppy Disk v0.3 FREEWARE


 NGASM 8086/8088 Assembler

 Delete Special

 Search Zip Rar

 NGASM Manual

 RECOVER Floppy Pro v1.0 - Tech Support

 RECOVER Fixed/Floppy Disk - Tech Support

 Dealing with Multiple Disk Errors - Recommended by Microsoft personnel

 100% Data Recovery - How-to

 RECOVER Fixed/Floppy Disk v2.2 - Command Line Help

 Floppy Disk Recovery

 RECOVER Fixed/Floppy Disk v2.2 - A Guide to Superpower in Recovering Data

 Recover Fixed/Floppy Disk v1.4 - FAQ

 Download ANALYZER for RECOVER Floppy Pro v0.3 FREEWARE

 Download ANALYZER for RECOVER Fixed/Floppy Disk v0.3 FREEWARE

 Download RECOVER Fixed/Floppy Disk v1.4 FREEWARE

 Download NGASM 8086/8088 Assembler v1.4 Beta 2

 Download DELSPECial v1.4

 Download SeaRCHZIPRar V1.5




One and only Indian Editor's Choice Award winning 8086/8088 Assembler

This page is for Indians only. However, if you want to know what recruiters do in India, read on.

NGASM 8086/8088 Assembler is the first and the only Indian Assembler - to be precise, the first Indian 8086/8088 Assembler.

RedSofts.com Editor's Choice Award
NGASM 8086/8088 Assembler v1.3 got
Editor's Choice Award from RedSofts.com

NGASM 8086/8088 Assembler is authored by G.Gurupandian and G.Namasivayam.

The first version of NGASM 8086/8088 Assembler had been developed by G.Gurupandian and G.Namasivayam within 2 years of starting to selflearn Assembly Language (this is a big achievement). Assembly Language was learnt only after buying a 386 installed in September 1994. There was no design for our Assembler. When talking about the design aspect after the Assembler was developed, we used to exchange views that there was a design without a design. Before Systech Software was born, in 1996 the first version was ready but not before our dad passed away in the same year which caused the PC to be put away for 3 months. Even with a design on hand, developing an Assembler within 2 years of starting to learn Assembly Language is a nightmare proposition. If it is easier to code an Assembler within 2 years, many Engineering Colleges must have come up with some examples of proof because learning the Instruction Set, BIOS Interrupt services, DOS Interrupt services, and to top it all, Design of a Single pass and a 2-pass Assemblers all are included in their Syllabus for at least one course. This is learning A, B, C, D, ... What next?. If you want a new Syllabus ask for it, but you will have to pay for it. Technology doesn't come cheap.

NGASM 8086/8088 Assembler was developed just for our use, not for holding India's pride high. But a search on the Internet revealed that there was no other Indian Assembler till date.

G.Gurupandian is the Machine Code man. Because Machine Code was not available anywhere, he had to figure out all of that. Assembling (putting together) the machine code was the toughest part. He sort of broke the 8086 code. He took just one and one half month for it. Then he did the Code Generation Engine (that is, changing source code line for line into machine code) - The term Code Generation Engine here is not intended to ward off other people from entering this department. If you too find a Machine Code man, and a brother at that, you too will become an Assembler author (or co-author, to be precise?). Our brain needs to anchor at some very strong fact (is it support?, backup?, home PC?, library including .LIB library?, good professors?, peers?, the Internet?), to get all the strength to do something wonderful.

Aged people can extend their lifetime, simply by anchoring on the strengths of their grand children. Usually they (aged people) get weaker by anchoring on the wrong doings and weaknesses of all around them and, most important, on whatever they failed to do.

Coming back to the Assembler, G.Namasivayam coded the Lexical Analysis and Parsing part. LEX and YACC were not used. About LEX and YACC, LEX creates yylex() - the pattern matching stuff, YACC creates yyparse() - the compiler compiler, then main() calls yyparse() which calls yylex() which returns tokens. yyparse() can be called the assembler compiler if what you are trying to create is an Assembler. yyparse() sets up the 'actions' for the token(s) returned by yylex(). The code for the 'actions' is what you have to code yourself and provide in an appropriate file. This code is used by YACC to set up the 'actions' for the token(s). This code includes code for handling the Symbol Table too. You cannot make LEX or YACC or both to somehow manage the Symbol Table and / or Code Generation stuff without you writing the code for the 'actions', in fact, all the 'actions' including the most dreaded code generation. After all, LEX is for tokens and YACC is for interpreting the tokens and setting up the code for the 'actions'. If you can identify the tokens and put them together and get the meaning, you can code the 'actions'. Coding the 'actions' is what you have to do even if you use LEX and YACC. Because, as the name suggests, YACC (Yet Another Compiler Compiler) just creates the final Compiler as a source code file. For me, for writing an Assembler, the LEX-YACC method is a circumlocutional way I would like to avoid.

In short, Lexical Analysis and Parsing means, processing the human-readable source code in a .ASM or .C or .CPP file. The term Lexical Analysis and Parsing here is not intended to ward off other people from entering this department. A manufactured-from-the-source-code-in-a-compiler-book LEX.EXE, tuned for processing Assembly Language code, was used at a later time to understand what LEX.EXE can do; this got as far as identifying, isolating, and printing out all symbols - only symbols - from NGASM source code!!!. A symbol is a label which is an identifier for a Variable, an Equate, a Routine or a Location in Code.

Though this assembler was developed in 1996,
just two years into having a home PC, only a later version of it had been distributed as FREEWARE on the Internet just from April 2000.

The A86 Assembler was used for developing some versions up until v1.0.5 which were not released. But NGASM v1.0.5 was used to create the first-released NGASM 8086/8088 Assembler v1.1).

When G.Namasivayam tried to use NGASM 8086/8088 Assembler itself to develop Version 1.1, there was not enough DOS memory in control of the Assembler to avoid "Symbol Table Overflow" problem. G.Namasivayam made all symbols unique within the first few characters so as to avoid "Symbol Table Overflow". With switches -L (to reduce the number of significant characters in Labels) and -B (to reduce buffer size for source code being read and processed) assisting, this made possible creating NGASM 8086/8088 Assembler v1.1 using NGASM 8086/8088 Assembler v1.0.5.

After a long time (many years), one fine day it struck to G.Namasivayam that by a simple manipulation of the Segment Registers in the code for Symbol Table work, NGASM 8086/8088 Assembler can be made to use all the memory allocatable by DOS for Symbol Table. It took just 3 days to code Memory Chain Management and some more days to code Segment Registers Manipulation, a neat simple trick. Totally it took 10 days to do all that. The "Symbol Table Overflow" problem was done away with once for all.

All versions of NGASM 8086/8088 Assembler, from the very first version to the current version, NGASM 8086/8088 Assembler v1.4 Beta 2, had been entirely hand-coded. No library code whatsoever has ever been called or used. This is a big achievement considering the fact that many programmers always use somebody else's library code (.LIB files) and continue to think that they made a lifetime achievement using (somebody else's) library files. It is appreciable, anyway, if total amount of computer time they had was not appreciable. May be using .LIB files all the time was and is a real shame in the DOS world.

We suspect that in many countries they ask students, as part of their syllabus, to figure out and redo, in assembly language code, the implementation of many C functions in the High School level itself. It is never done in India even at the highest level of education.

Even professors think that using library code is the fastest and shortest way to develop what students want to develop. Time constraint is a good excuse. Using library code (particularly somebody else's, even if it comes with, for example, the C, C++ compilers) becomes a habit and permanently switches off one's coding ability once for all when it comes to coding what the library CANNOT do. The student finds himself severely incapacitated, if no library could be found to implement something that could be as simple as number / string processing, reading input from a file for byte-level processing, etc. Students realize this, after they complete their education and get out of college and are left to fend for themselves with no peers or professors to be found to guide them. The use of libraries severely impairs their decision making power even at the subroutine level. One day if they are challenged to make a design decision on a Symbol Table for an Assembler, they will know how much their education has enabled them. Throwing away the Symbol Table will not end one's problems.

Can such freshers think about writing an Assembler in Assembler (that is, by using the Assembly Language)?

Can they hand-code everything even with a Master's Degree in IT on hand?

Leaving the education system to itself, and coming back to the Assembler, NGASM 8086/8088 Assembler v1.4 Beta 2 is developed by using NGASM 8086/8088 Assembler v1.4 Beta. This is another big achievement because few people in the entire world can claim they develop their utilities or, much less, their own development tool by using their own development tool. I, G.Namasivayam, feel that by developing NGASM and giving it free, I paid back mother Earth for all the nutrients she gave me through her grains of sand. I know how much other Assembler authors will be proud of their Assemblers. There are many real godfathers out there.

Even now most universities and colleges don't have links on their Websites to stuff that can really inspire a student. The Indian condition is much worse, excepting Engineering Colleges, many of our other colleges are yet to have their own Websites. Engineering Colleges have a lot of computers (usually 100+), but an Intranet is nowhere on the horizon. Can we talk about inspiring links or inspiring local content on a college's Intranet under Indian conditions?. All that a very good college's very good website has is educating .PDF and other files - Who needs these basic education stuff?. No inspiring content.

No real student is shaken by these statements. If you are shaken you are not fit to be a student to learn anything really worthwhile. Because most case studies involve mind-boggling problems and solutions. They are not meant to destabilize the students.

NGASM 8086/8088 Assembler v1.3 has been used to create our Editor's Choice Award and other Award winning disk utilities,
  1. RECOVER Floppy Pro v1.0
  2. RECOVER Fixed/Floppy Disk FAT32/16/12 v3.0 Release 3
  3. the FREEWARE floppy disk analyzer, ANALYZER for RECOVER Fixed/Floppy Disk v0.3 and
  4. the FREEWARE floppy disk quick analyzer, ANALYZER for RECOVER Floppy Pro v0.3
We used to state some of these mind-boggling facts in our resume when we were looking for a job once upon a time, that was before Version 1.1, but employers / recruiters couldn't believe it. They are incapable of downloading our NGASM 8086/8088 Assembler and comparing it with other Assemblers available on planet Earth to ascertain the very fact that the former has been developed by us. We are happy but we failed to understand whom these recruiters operating in India were recruiting for the IT Industry.

Any one with knowledge of any other Indian Assembler, or an Indian Compiler (excluding 8051 C Compilers from the Pune based co.) or an Operating System  - including its developer(s) -  may please e-mail us a download link to that Assembler, Compiler, or the Operating System.

We will always be happy whether or not that developer was ahead of us.

One youngster - Indian - has written us about his DOS-like Operating System he's been developing and a scripting language he developed for a company. That was the one and only reply to this Web page until now from this country, India.

Save our country's name by developing an Assembler or a Compiler without any professor or lecturer guiding you in the project, by becoming a WINDOWS expert, or by participating in the LINUX Kernel development. This is the era of the specialists.

By the way, do not create a big team to develop an Assembler or a Compiler because big companies already have one big team per project (they will not disclose the number of members in a team!). And never develop an Assembler or a Compiler for yourself because your recruiter will have a tough time figuring out if you really authored one. If you author one, be sure to get a certificate from your college or a sponsor. That's what the recruiter is capable of handling easily - just paper work!!!.

But India was very proud of these facts (as of 2005):

Even the 200th person is not an Internet subscriber in India.

But every 35th person is using Internet in India.

One (1) person (1.34 actually) - out of one hundred (100) persons - owns a computer.

India Report, Wednesday, December 22, 2004

Information technology researcher Gartner Inc. said India's computer market grew 35 percent during the July-September quarter, 2004, compared with the same period a year ago. One in every 10 computers sold in Asia-Pacific region, excluding Japan, is now in India, the report said, adding India is among the fastest growing markets for computers in Asia.

India, a country with more than a billion people, has been a laggard in adopting technology due to high levels of poverty and illiteracy, but faster economic growth in recent years has led to a surge in demand. As of March 2004, India had 12 million computers and 4.5 million Internet connections. That is, one (1) person (1.2 actually) - out of one hundred (100) persons - owns a computer.

Manufacturers and traders expect to sell about 4.2 million computers in the fiscal year ending in March, 2005.

India Report, 2009

After all these years of reliance on the education system, even now in 2009, many are still refusing to respect computers, having failed to understand what they can use a personal computer for, despite the fact that India is number 4 (with 81-million Internet users) in the list of