#IF (!0>0) #IFSAME !1 VERTICAL // define a vertical set of windows #DPUSH |CI-1 // vertical flag #DPUSH !2 // push the start window number #DPUSH !3 // and the number of windows #SET ZG$ (!Zg+!3) // how many was that? SUB$IMAGE$DEFINE !4 !5 !6 !7 !8 !9 // one more time #ENDIF #IFSAME !1 HORIZONTAL // horzontal (contiguous) windows #DPUSH |CI-2 // horizontal flag #DPUSH !2 // push the start window number #DPUSH !3 // and the number of windows #SET ZG$ (!Zg+!3) // how many was that? SUB$IMAGE$DEFINE !4 !5 !6 !7 !8 !9 // one more time #ENDIF #IFSAME !1 RECTANGULAR // a rectangular array of windows #DPUSH |CI-3 // the rect. flag #DPUSH !2 // push the start window number #DPUSH !3 // number of windows per row #DPUSH !4 // number of rows #SET ZG$ (!Zg+(!3*!4)) // not bad huh SUB$IMAGE$DEFINE !5 !6 !7 !8 !9 // and again #ENDIF #IFSAME !1 VERTICAL RECTANGULAR HORIZONTAL // May look strange, but reduces #ELSE // use of #if stack levels. #DPUSH !1 // its just a single window def #SET ZG$ !ZG // just add one SUB$IMAGE$DEFINE !2 !3 !4 !5 !6 !7 !8 !9 // recurse #ENDIF #ENDIF