;STRETCH¢;BY LLOYD BURCHILL¢;(c) 1986, ANTIC PUBLISHING¢¢Module¢¢byte key=764,IR ¢card scr=88,dlist=560¢¢define dlspace="14592"¢define dlsend= "14592 +575"¢ ;a 580 byte long space is needed¢ ;that includes no addresses on¢ ;a 1K boundary¢ ;(excepting first byte)¢¢card array memline(192)¢¢Proc Stretch(card lines,card vstart)¢¢;Parameters:¢;'lines' is number of scan lines the image should occupy on the screen¢;'vstart' is scan line of original image that will appear at top of screen¢¢Byte pointer p¢card pointer q¢card bigline,addr,inc,temp¢¢inc=24576/lines¢¢bigline=(inc rsh 1)+(vstart lsh 7)¢¢p=dlspace+3¢q=dlspace+4¢¢do¢¢ temp=bigline rsh 7¢ addr=memline(temp)¢¢ p^=IR+64¢ p==+3¢¢ q^=addr¢ q==+3¢¢ bigline==+inc¢ if bigline>24576 or p>dlsend then exit fi¢¢od¢¢p^=65¢¢Return¢¢¢Proc Sinit() ;initialize¢card a¢¢setblock(dlspace,3,112)¢¢for a=0 to 191 do¢memline(a)=scr+a*40 od¢;change to 'a*20' to use mode 14¢¢stretch(192,0)¢dlist =dlspace¢¢Return¢¢¢Proc Load() ;load disk picture¢byte pointer p¢¢Close(5)¢Open(5,"D1:PICTURE",4,0)¢¢for p=scr to scr+7679¢do¢ p^=GetD(5)¢od¢¢ p=712¢ p^=GetD(5)¢¢for p=708 to 710¢do¢ p^=GetD(5)¢od¢¢Close(5)¢¢Return¢¢ ¢Proc Drawing() ;example picture¢byte t,u,v,w,x,y,z¢¢for w=0 to 30¢do¢ color=rand(16)¢ x=rand(76)¢ y=rand(180)¢ for z=0 to 3¢ do¢ Plot(x+z,y) Drawto(x+z,y+12)¢ od¢od¢¢for x=0 to 14¢do¢ color=x+1¢ Plot(0,x) Drawto(79-x,95) Drawto(0,191-x)¢ Plot(0,29-x) Drawto(52+x,95) Drawto(0,163+x)¢od¢¢for w=0 to 15¢do¢ z=10+ rand(70)¢ y=rand(192-z)¢ u=rand(20)¢ v=rand(50-u)+15¢ t=10+rand(21)¢¢ for x=0 to 14¢ do¢ color=(15-x)*t/30¢ Plot(v-x,y+z)¢ Drawto(v-10+u,y)¢ Drawto(v+x,y+z)¢ od¢od¢¢Return¢¢¢Proc Rubber_Band() ;main procedure¢byte pad1=624,pad2=625,mode¢card h¢¢do¢ IR=15¢ ;use 15 for modes 8,9,10,11¢ ;use 14 for mode 15, "graphics 7 1/2"¢ ;use 12 for mode 14 (160 x 192 x 2 colors)¢¢ Graphics(0)¢ Poke (752,1)¢ PrintE ("כoad your own picture")¢ PrintE ("גemo mode") ¢¢ do¢ until key=0 OR key=58¢ od¢ mode=key¢ Poke(764,255)¢ ¢ if mode=58 then¢ Graphics(9) Poke(712,128)¢ Drawing()¢¢ elseif mode=0 then¢ Graphics(8) Poke(712,128)¢ IR=14¢ Load()¢ fi¢ ¢ ;Use either Load() or Drawing()¢ ;and adjust graphics call¢ ;according to preference¢ ¢ Sinit()¢ do¢¢ h=pad1¢¢ if pad2<192 then¢ Stretch(h lsh 1 ,pad2)¢ fi¢ ¢ until key<>255¢ od ¢¢until 0=1¢od¢¢Return¢¢¢¢