load contents
load contents.text * contents

comm the heading macro. usage !hd(n,'text string','optional contents string')
comm the user change areas are u.hd.1 ... u.hd.4.
define hd
! !null(3,'!u.hd.!par.1!(''!par.2!'',''!par.2!'')!','!u.hd.!par.1!(''!par.2!'',''!par.3!'')!')!
 
set u.hd.1 = ' )sm@     !par.1 )m@    !contents.text('' )@ !par.2  )@ '',1)! '
set u.hd.2 = ' )rlw6mfu !par.1 )r     !contents.text('' )f !par.2! )f '',2)! '
set u.hd.3 = ' )rw4lu   !par.1 )r     !contents.text('' )f !par.2! )f '',3)! '
set u.hd.4 = ' )rw4lu   !par.1 )r     !contents.text('' )f !par.2! )f '',4)! '
go

!hd(1,'hi there') )l
!contents.text(init) !contents.text(gene) )l
