I'am a newbie to PL/1 and I'm now trying to execute some sample programs to understand the concepts of PL/1. I'm trying to do a simple program to understand the pointer concept. My aim is to display the value of a variable and the address location it is stored. Below the code. When i'm executing the below program it abends with SOC4 Protection exception error. I understand this is because of iam trying to display a Hexa variable using PUT list( Var A). Can somebody here guide me on how I can acheive my expected result.
Please excuse me this is a very Noob question.

MAINSUB:PROC OPTIONS(MAIN) REORDER;
DCL A POINTER;
DCL B CHAR(10) BASED(A);
DCL SYSPRINT FILE STREAM OUTPUT PRINT;
B = '500';
PUT SKIP LIST('A =',A);
PUT SKIP LIST('B =',B);
END MAINSUB;
DCL A POINTER;
DCL B CHAR(10) BASED(A);
DCL SYSPRINT FILE STREAM OUTPUT PRINT;
B = '500';
PUT SKIP LIST('A =',A);
PUT SKIP LIST('B =',B);
END MAINSUB;