PMode tutorials in C & Asm

Disclaimer

There is no any warranties and responsibility implied for this free software. The author can not be responsible for any kind of harm caused by this software. You use it at your own risk. You must either accept this agreement or don't use this package at all. You may redistribute this software package AS-IS freely. If you change it, you must point that out in the documentation as well. The author doesn't accept any flames for changes made by other persons.

Introduction

I've started out this series of the PMode tutorials just for making PMode more clear and easier to learn. Complexity level of the tutorials increases from first tutes to last ones. It makes easier to get into PMode. A beginner is supposed to learn PMode step by step.

Why C and Asm?

Since pure assembly implies a lot of source code, starting something completely new (PMode, for example) is very difficult with ASM. So I decided to make the tutorials in C with a little of ASM. Such tutorials are about 2 times shorter than tutorials made in pure ASM. I think it's very handy for a beginner. (s)he won't get lost in tons of the sources.

Why Turbo C 2.01 and NASM 0.98?

Turbo C 2.01 and NASM 0.98 are available for free. Hence, anyone who wants to learn from my tutorials and make his/her own stuff using them, can have them absolutely for free.

Turbo C 2.01 Limitations

Since Turbo C 2.01 is a pretty outdated completely 16-bit compiler, you may notice some problems with 32-bit values... For example, when your program works in PMode, you're unable to use arithmetical shifts for 32-bit (long) integers. That's because these shifts are made as run-time C library subroutines and each such shift implies a far call to a subroutine. And such far calls are not allowed in protected mode because real mode segment values don't work in PMode. Be carful with 32-bit shifts, muls, divs. If you have Borland C/C++ 3.1, it's possible to avoid this problem because this compiler is capable to generate 32-bit instructions for 32-bit arithmetics.

Where do I get Turbo C 2.01 and NASM 0.98 from?

Turbo C 2.01 is available at Inprise web site:
http://community.borland.com/museum/
You must register before the downloading.

NASM (Netwide Assembler) 0.98 is available from:
http://www.cryogen.com/nasm

Where do I get those Tutorials?

Read an on-line text doc on archive content
Download now!

Contact Information

Author name: Alexei A. Frounze
E-mail: alexfru@chat.ru
Homepage: http://alexfru.chat.ru
Mirror: http://members.xoom.com/alexfru