The issue is when it starts to read A the cursor is pointing at the comma (column 13) in both cases.
With the DSD option SAS takes this to mean that there is a missing value before that comma. Without the DSD option it will skip over the comma (the same way that normal list input where space is the delimiter would skip over extra spaces in a line) and so the character after the comma is read as the value of A.
You can see the same behaviour by reading a line that starts with the delimiter.
data one ;
infile cards dlm=',' ;
input x $ ;
put x= ;
cards;
,AAA
;;;;;
data two;
infile cards dsd dlm=',';
input x $ ;
put x=;
cards;
,AAA
;;;;
... View more