Hello everyone. I have lot of extra time. So, I thought why don't I do some pure assembly language programming. So, basically, first I want to target 80x86 architecture processor. And get solid idea and understanding on programming through pure Assembly language. I don't want to learn assembly language in a way which will make me use pre-defined functions later. I mean, I want to write all of the code in pure assembly language, as if I am creating a new Operating System. I have learned somewhere that no Operating system gives any random user a privilege to interact with the HDD and other critical components of a computer and if random user wants to access any of those critical components, he/she is suppose to take help of pre-defined functions described by the Operating system. I believe, by taking use of these predefined functions, the user will be confined to do the usual things that Operating System will allow you to do. If someone needs extra control over the system, he/she must reverse engineer the entire targeted Operating System and figure out everything and then exploit the flaws and gain access to the critical components. I don't want to go into doing exploitation business. I want to learn genuinely and just for fun. I don't have any big goals. But I want to learn pure assembly language seriously. Objectives: 1. Just for instance: If I want to draw a curve on my display console I must be able to this through pure assembly language. I don't want to take help of any pre-defined functions. I mean I want to interact with the three color guns (Red,Blue,Green) of CRT monitor directly and be able to draw my desired curves. 2. I want to learn the assembly language such that if someone gives me any processor of any architecture and whether it is 8 bit, 16 bit, 32 bit, 64 bit, 128 bit ... or any custom built multi-core microprocessor with 17 bits or 19 bits and an added extra register segment and additional control unit segment inside this custom built microprocessor with other components and peripherals as well, I must be able to look at the manual and must be able to implement my logic. Logic which even includes writing the entire Operating System and/or Graphical User interface through pure assembly language. I know, this is going to be very very very hard for me who just knows the basics of a particular processor and about it's architecture. And I am certainly not a master at it. But, as I said earlier, I don't have any big goals just looking to pass my immense amount of free time by doing some pure assembly language programming. Please help. So, I require: 1. A good assembler which, should I say, meets my requirement (please read further to know more about the requirement and will help you get an idea). I know there are assemblers like FASM, MASM, NASM, TASM. I think, I used NASM earlier. I don't know if it supports any predefined functions. But I don't want to use any predefine functions as I described my intentions earlier. So, help me in selecting the best assembler that could be nice for me and which don't support any predefined functions and will enable me to write pure assembly language code. Also, I want to do my pure assembly programming without interacting with installed Operating System as if I am in 1960s - 1980s and where all I have is DOS. And I am trying to develop a revolutionary Operating System from scratch. So, that after I develop this Operating System, which even includes support(device drivers) for monitor and other peripherals, I want to burn this code into another machine's HDD(generally create .ISO image file, I guess) and get the machine work using my developed Operating System. Tell me if that is possible today. 2. Editor window. I don't remember what editor window I used earlier. So, I need your help here also. I also want to say that, I am serious in learning pure assembly language as much as I could. Maybe, if I find it not very very complex I might go ahead and think about developing device drivers or an Operating System or Graphical User Interface through pure assembly language, in a way where I don't have to use any predefined functions. I think, I have already stressed a lot on learning pure assembly language. In addition to all the above that I have said, which is the main objectives and goals and aims. I also want to say the following, so that it gives you some idea, I want to get the ground knowledge of using pure assembly language and experience the era when there was only DOS and how people felt happy when they first created games using pure assembly language and when sounds devices were included with the computers, those people learned to put sounds in their games through pure assembly language. I think this paragraph will give you an idea about what I am looking for. I don't care how efficient or fast or execution or assembling of pure assembly language will be, unless we had different versions of same type of assemblers in those days. I don't want to talk more details on this. But I think you certainly have an idea by now about my requirements. I only want to learn pure assembly language. All the above may look very lofty ambitions but this is just for fun and I am serious in learning pure assembly language. Thanks.