CSS Style Choice Dark Text on Light Background
CSS Style Choice Light Text on Dark Background 
Avatar: Old Photo of Gary's Face
[M] Gary
Vollink.com
21 November 2018

I Just Don’t Get It

Armed with a book that was actually about learning C, and a compiler that would run on my old computer, I started digging in.  I would do the examples, and they would work, but any attempt I would make to modify those examples would always break. 

Part of the problem is that I had learned a lot of things from the small C book (mostly quirks specific to that compiler) and I was expecting to find those quirks.  At the time, though, I was beginning to suspect that I just wasn't smart enough. 

I found out, though, that the C compiler had an option to compile into assembly.  Thinking that what I really wanted to know was "what is under the hood", I started trying to learn x86 assembly language.  I was able to create a few short example programs in assembly, but the same problem would come up.  If I tried to modify these on my own, I wouldn't get the results I was expecting. 

Mom to the Rescue

My mother had taken some college courses in the 80s to get a promotion at her job doing electronics assembly at the same place where my father worked.  One of her college books was Digital Fundamentals

Sensing that it might help, she let me borrow it.  I read this book, cover to cover, and probably because of my previous experience playing with electronics, this book totally clicked with me.  Without this book, I would have never learned to program. 

Digital Fundamentals

This book was published by Merrill Publishing, and imprint of Bell & Howell, written by Thomas Floyd, and published in 1982. 

The book starts off simply describing binary numbers.  It then moves into digital logic gates: And, Or, Nand, Nor.  From there, it jumps to Boolean Algebra. 

The next two chapters were key as they discussed Combinational Logic.  This builds all that Boolean Algebra and basic logic gates into interconnected components that actually perform functions.  Ultimately, these are the combinations that make a computer function. 

From this point on, the book goes from fundamental component to fundamental component describing in deep detail how each part of a computer works.  Flip-flops, counters, registers, memory, Bus protocols and mathematical functions. 

The last chapter talks about micro-processors, and gives examples of machine language simple programs on the Motorola 6800 processor.  Even though this isn't the Intel, all of the same components that were being talked about existed within Intel x86 assembly language.  I recognized this, and truly felt that I could grasp what was actually happening.