>>54 Io
f:=method(w,h,
if(w<2 or h<2,return)
a:=h-1
for(i,0,a,
for(j,0,b,
if(j%a==i%a or j%a==a-i%a,"!","-")print
)
writeln
)
)

Io> f(16,6)
!----!----!----!
-!--!-!--!-!--!-
--!!---!!---!!--
--!!---!!---!!--
-!--!-!--!-!--!-
!----!----!----!