const llsize=2, lldata=0, llnext=1; function allocate(size) { local ptr; ptr=freespace; freespace=(freespace+size); return ptr } function add(list, val) { local n; n = allocate(llsize); *(n+lldata)=val; *(n+llnext)=list; return n } function print(list) { while (list!=0) do { print *(list+lldata); list = *(list+llnext) } } main { freespace=((&freespace)+1); local list, num, i, ptr; list=0; i=1; num=1; while (i<10) do { list=add(list, num); num=(num*i); i=(i+1) }; ptr=list; while (ptr!=0) do { print(*(ptr+lldata)); ptr=*(ptr+llnext) }; print(999) } global freespace; end