Ok, does this return anything? I assume you actually have a database named 'mydb'.
select db_name(u.dbid) as "dbname",d.name,s.name,
case u.segmap
when 4 then str(lct_admin("logsegment_freepages", db_id('mydb'))
- lct_admin("reserved_for_rollbacks", db_id('mydb')),12)
else str(curunreservedpgs(u.dbid, u.lstart, u.unreservedpgs),12)
end as "free_pgs"
from master..sysdevices d ,master..sysusages u ,mydb..syssegments s
where u.dbid = db_id('mydb')
and u.vstart between d.low and d.high and d.status & 2 = 2
and u.segmap & power(2,s.segment) != 0
order by u.dbid,u.lstart