Macro: SUB$IMAGE$DEFINE

Module location: FMAC line 6753 (view source)

  #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