license
.tsk ( --)

Task details. #### This needs a lot of work.

 
    : .TSK ( task --)
    	@  ( address of task table)
    	DUP @ (  task_table_addr status_addr <-)
    	CR
    	DUP ." user_base: " .h
    	DUP [ (S) user_base - ]T LITERAL + @ (  task_table status stack <--)
    	DUP @ ( old I ) ." I: " .h
    	DUP 4 + @ ( return top) DUP ." R: " .h
    	(  task_table status stack ret <--)
    	( print return stack)
    	CR ." return_stack"
    	jump ( status) OVER - 4 / zero ?DO
    		CR DUP I 4* + DUP .h SPACE @ .h
    	LOOP DROP
    	(  jump task_table status stack <--)
    	CR ." system_stack"
    	8 + ( saved R and I )
 \   	jump _#task_table_s0 + 
    	(  jump task_table status stack+8 base )
    	OVER - 4 / zero ?DO
    		CR  DUP I 4* + DUP .h SPACE @ .h
    	LOOP DROP ( stack)
    	(  jump task_table status <--)
    	2DROP
		send
    ;
 
    
		 
.buffers ( --)

Print out the current buffer structure, for what is all means see the file heap_control.html.

 
	: .buffers ( --)
		CR
		BASE @ >R
		HEX
		."     Size      Free      Used" CR   
		_#sys_buffer_list_number CELLS zero DO
			 I _#buffer_sizes + @  8 .R
			 2 SPACES
			 I _sys_buffer_list_free + _number_in_list 8 .R
			 2 SPACES
			 I _sys_buffer_list_used + _number_in_list 8 .R
			 CR
		4 +LOOP
		R> BASE !
		send
	;

	' .buffers (.buffers) t!
	 
.buffers_used

Print out details of the buffers used.

 
	: .buffers_used
	   CR
	   BASE @ >R
	   HEX
	   ."   Address       Size      Task      Word"  CR
	   _#sys_buffer_list_number CELLS zero DO
			I _sys_buffer_list_used + @
			BEGIN
				DUP
			WHILE
				DUP [ _#sys_buffer_user _#sys_buffer_used_link - ]T LITERAL +
				8 .R  2 SPACES
				DUP   [ _#sys_buffer_size_code _#sys_buffer_used_link - ]T LITERAL + @ I <> IF
					." Rubbish"
   					DROP zero
   				ELSE                                                                
   					2 SPACES
   					I _#buffer_sizes + @ 8 .R 2 SPACES
   					DUP   [ _#sys_buffer_task  _#sys_buffer_used_link - ]T LITERAL + @
   					8 .R  ( #### .task when written)
   					2 SPACES
   					DUP   [ _#sys_buffer_ip    _#sys_buffer_used_link - ]T LITERAL + @
   					8 .R  ( #### ?.head when written)
					@
				THEN
				CR
			REPEAT
			DROP
		4 +LOOP
		R> BASE !
		send
	;


    
    ( free memory print) HEX
    : .free ( --)
		CR ." Dictionary : " _'h_task_top @  HERE      - 9 .R
		CR ." Ram        : " _'ram_top    @  ram_here  - 9 .R
		CR ." Fast ram   : " _'fast_top   @  fast_here - 9 .R 
		CR
		send  
	;