I added a few simple capabilities that should get you started on developing any actual embedded code. The C code described in last month's article also provides maximum control and performance by directly accessing the PC's hardware. I installed new interrupts for serial input and directly read and wrote to the hardware. It's a process that can be broken into manageable steps. You write, edit, compile, and run the code.
Input can come from the keyboard or a file, and output can be sent to the screen, file, or printer.
Pretty normal stuff. The C program destined for an embedded system has the same structure as the PC version, except without the operating system. The embedded CPU powers up, runs some dedicated startup code, and then executes the C code. Each C compiler is slightly different in the specifics of this process, but they all must get to the same point. It's the routine called after the operating system transfers control to the program and after all the setup is completed.