In fact you can do that with the ScanF() function. You pass the lamda which returns the adress of the subroutine as the first parameter and make somthing like Pxl-On({->r1}... to store the pointer given in HL to r1 and use it further.
By the way I forgot a command in the DelI() function. I will post a update tomorrow (with Get() function to get a pointer to a specified element and Length() to easy access the length of the list.
Edit: Here it is. Hope I didn't make any mistakes yesterday night
I'm going to make an example program soon