?8 D\!:\\\Fx>B<<<~ <|~BB  @ <|~B<  |~B @  @<|~B@ (Df8>BFF@(FB@fB88 88x8h88D88 D8@88D8x8(BB@fDDB88x888888888x<8h(B@f88<@8x8888x8888(<@8(@B@f@88D8x8888hBZ@(JJ|JB|ZB 0<D@DTD@D@D<@DD <0DD@D@00DD DT(B|ZD 0Dx>DD@00DD@DD 0Dx|B|ZxD D>(D <0DD DTBB8>D DD<x8D8<DD DTH|@Bx DDDD8DD8Dx* DDB|@BDx x>D DD<x DTDB @bbBbD@B$D D"@DDT@D@D"<D@ DDD@@D@B(<>BDD DDD@DDD< DT~D@B@ xDDDD@D (D DDD@ DT>x>Bx>~<<< ><B~B< 8<< ~B~BD<88 <8D< B~B <  8D @8x8 88Dx8 < : 8D ><B~BD< <D8 <8D< < 8T8888@8@@ <|~B~ ~  <<|~B< |  <<|~B@  @ <|~B < D@@88888 8<x(BB@f8>DD@@888(8D888888D888D88 88BFB@f8x@88(B8x88888 88DBBB@f@88D88 88888888D88x8@8888(BB@f8>8xD8>8xBTx0 xD@@|@ 0@D@D<D@DDD D 0<D@JB|Z@D>< 0BD0DD @DD(@(@DTD Dx88"xDDB|@B8>8< 08D8xDD8<(xD <(< <"x88D8>8D<TD D@"@<DBD@B ((B>BD (D@DDD(@D D(D D"@@bD@Bx>BD (@DD@ @@"@DT@@D@B@D D(D D"@D @DDDTDDD@D (@~D@B x>( x@(D8D <B~Bx>DD< <x <$x8x<< 8x<< 8< < 8<< x@ Dx>x@~ 8@@@<<|~B<   @<<|~B~ @<<|~B  DDB@B@f8>8xB888>8x<@8BBB@f8>8x@@88BFB@fx8D8D8x8888x8D8xD888 888888H>D|B|Z@(@D >D@(@D(> 0Dx<B|Z@(@D|>xD D JB|ZDD(>(D <0DDDDD(D0(DD8Dx8>8DH DD8DDx xR|@BDx>D DD<xDDxDxD"xx8xDH><@BD@B xB>@ x~> D@ @BbD@BD@(>(D DDD@DD@(x(@D"@@@DD~<B~Bx>x@< < x>x@ 8D ~<B~Bx>x@< D< <<<B~BD 1000  ;x < 0 x > 255 y < 0 y > 175  (x,y) Clear variables sp = 0 1left = 0:right = 0:here = 0 K1Beginning of recursive routine 'push' variables sp = sp +1 0,0;sp;" " !Note the assignment to s$(sp,2) 6which stops y becoming negative and confusing CHR$.. 8s$(sp,1) = x:s$(sp,2) = ((y>0)*y) 1s$(sp,3) = left:s$(sp,4) = right s$(sp,5) = here 7If (x,y) is OUT OF SCREEN or is INK, exit the routine Ex < 0 x > 255 y < 0 y > 175 1340< (x,y) 1340< 4Find out the positions of the extreme left & right of the current line of pixels  1500 5Beginning at the left-hand end of the current line, 2check the lines above and below for obstructions 5Note that 'y' has to be loaded from its saved value  -on the stack, since the recursion alters it  here = left 7x = here :y = s$(sp,2) + 1 :1200 7x = here :y = s$(sp,2) - 1 :1200 (here = here + 1 +5Do the above repeatedly until the right-hand end of ,the line is reached -here right 1300 ;5Pop the previous values of the variables, then exit <+x = s$(sp,1) :y = s$(sp,2) F2left = s$(sp,3) :right = s$(sp,4) Phere = s$(sp,5) Zsp = sp - 1 d .Get ready to check the line for obstructions by clearing 'next' next = 0 0Check right then left, load 'right' and 'left' 3with the positions of the last PAPER pixels found 4dir = +1 :2000 :right = next-1 4di r= -1 :2000 :left = next+ 1  >4This routine returns with 'next' as the x-ordinate ?1of the border to fill up to on the current line  next = x next,y next,y 1,0; next,y;" " next = next + dir %next < 0 next > 255 é(next,y) 2020   " 8 8  P! 8 iQM ;T> P P P 88  (@  \\+Q>BB<DHpHDB@@@@@~BfZBBBBbRJFB