CCNA is a small-c for pcDos v.4+ with its PCDOSLIB which uses the handle file functions of Int 21h. Based on C86NC5C.C and a quick derivative of CCN8, except doinclude() has been improved to work properly by adding fname_array[] for proper string termination.

Note: many of the new constructs in CCNA.C are commented out awaiting further integration, and testing. The main thrust was the development of PCDOSLIB, whose short list of functions follow the corresponding functions in C5LIB to allow small-c to be self-compiled in a pcdos enviornment with its Int 21h handle functions.


The main compiler program source CCNA.C.

The PCDOSLIB.C I/O Library to be %included.

The additional source files required: INCLUDE.H, strcmp.c, itoa.c, RELAT.C .


A development note, and a compile session.


NASM makefile for this project, ccna.mak outputs CCNA.BIN Rename to CCNA.EXE

The self-compiled output, CCNA.NSM ready to assemble with NASM, the netwide assembler.

NASM leading bookend code, PROLOG.NSM to CCNA.NSM, NASM will %include it.

NASM trailing bookend code, EPILOG.NSM to CCNA.NSM, NASM will %include it.


A trivial application program example tstmain.c which creates the file TMPFILE.TXT, an empty file, then closes it, then waits for a keypress to exit. Its makefile for nasm is here. And its output should be this.

Note that if Nasm can't open an %include file, it will hang waiting. The 'NASM version 0.98.38 compiled on Sep 12 2003' was used for these projects. The dos version was used under Win XP's CMD.EXE, see 'workspace enviornment' for how CMD.EXE was utilized. Be aware that most 32-bit instructions are available in the CMD.EXE VM. Enjoy!


11:44 PM 6/20/2011