Digital write on Uno ATmega328P doesn't work on all pins

I am new to the Arduino Atmel processors. But I have worked extensively with Power PC and other devices in my 30 years working in electronics. I just received the "Uno" board that I ordered off eBay. It has the Uno name on it, and has the 28 pin DIP 328P device on it. I had already downloaded and written code in the IDE, ready for the board's arrival.

So here is the question/observation. The board arrived, and I wrote a simple "Sketch" to write nearly all of the I/O pins ON and OFF with a modified version of the LED blink code;
void setup()
{
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25, OUTPUT);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
pinMode(28, OUTPUT);
pinMode(14, OUTPUT);
pinMode(15, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
pinMode(18, OUTPUT);
pinMode(19, OUTPUT);
}

void loop()
{
digitalWrite(4, HIGH); //
digitalWrite(5, HIGH); //
digitalWrite(6, HIGH); //
digitalWrite(11, HIGH); //
digitalWrite(12, HIGH); //
digitalWrite(13, HIGH);
digitalWrite(23, HIGH); //
digitalWrite(24, HIGH); //
digitalWrite(25, HIGH); //
digitalWrite(26, HIGH); //
digitalWrite(27, HIGH); //
digitalWrite(28, HIGH);
digitalWrite(14, HIGH); //
digitalWrite(15, HIGH); //
digitalWrite(16, HIGH); //
digitalWrite(17, HIGH); //
digitalWrite(18, HIGH); //
digitalWrite(19, HIGH);
delay(1); // waits
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(23, LOW);
digitalWrite(24, LOW);
digitalWrite(25, LOW);
digitalWrite(26, LOW);
digitalWrite(27, LOW);
digitalWrite(28, LOW);
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
digitalWrite(19, LOW);
delay(1); // waits
}

With my logic analyzer I was able to see output oscillation on only the following "yes" pins.

pinMode(4, OUTPUT); no Dig 2 PD2
pinMode(5, OUTPUT); no Dig 3 PD3 PWM
pinMode(6, OUTPUT); yes Dig 4 PD4
pinMode(11, OUTPUT); yes Dig 5 PD6 PWM
pinMode(12, OUTPUT); yes Dig 6 PD6 PWM
pinMode(13, OUTPUT); no Dig 7 PD7
pinMode(14, OUTPUT); no Dig 8 PB0
pinMode(15, OUTPUT); no Dig 9 PB1 PWM
pinMode(16, OUTPUT); no Dig 10 PB2 PWM
pinMode(17, OUTPUT); yes Dig 11 PB3 PWM
pinMode(18, OUTPUT); yes Dig 12 PB4
pinMode(19, OUTPUT) ;yes Dig 13 PB5

pinMode(23, OUTPUT); yes A0 PC0
pinMode(24, OUTPUT); shorter pulse A1 PC1 Analog
pinMode(25, OUTPUT); shorter pulse A2 PC2 Analog
pinMode(26, OUTPUT); shorter pulse A3 PC3 Analog
pinMode(27, OUTPUT); shorter pulse A4 PC4 Analog
pinMode(28, OUTPUT); shorter pulse A5 PC5 Analog

Can someone who knows about this tell me why the Output only works on some pins not all? Also why the example code uses pin 13 as some LED test, yet that doesn't output a signal oscillation in my test?
Which number do I reference in the "C" code in the IDE, the Dig number or the pin number? Did the example code reference a different processor? Notice the analog pins put out a shorter duration pulse.

When writing code in the IDE, for the UNO, the digital pins (D0 through D13) are referred to as 0 through 13. The analog pins are referred to as A0 through A5. When using the analogRead() function, the analog pins can be referred to as 0 through 5, because the compiler understands that only analog inputs work with that function, but be careful doing that because a digitalRead() or digitalWrite() to an analog pin must use the Ax notation.

Thanks for the reply.

I searched/Googled for an answer to this and perhaps didn’t use the right text to search.
Looked for include or header.h files on my PC to see where the #defines were hiding. Couldn’t find them.
I am using linux Mint to run the IDE.

Apparently whomever wrote the code for the IDE didn’t think using the Ax, Bx, Cx, Dx port names would make sense.
So it isn’t the device’s pin number, since pinouts could change with the device package.
Though since you select what board you are using, the IDE could act accordingly.

The compiler does seem to understand other Mnemonic names (For example);
DDRD - The Port D Data Direction Register - read/write
PORTD - The Port D Data Register - read/write
PIND - The Port D Input Pins Register - read only

I suppose that I could just directly access those if I wanted.

Apparently whomever wrote the code for the IDE didn’t think using the Ax, Bx, Cx, Dx port names would make sense.

…but they could give a Uno or Mega board to someone, who could wire up the same pin numbers and have a pretty good expectation that, at least for a simple circuit, that it would work as expected.

A sort of hardware abstraction layer, for microcontrollers.

Apparently whomever wrote the code for the IDE didn't think using the Ax, Bx, Cx, Dx port names would make sense.

As above explained, it's the pin numbers on the Arduino board. And regardless if you use an Uno or Mega or Leonardo or ..., you can use the same number for general IO or analogRead; you could not always use the same port.