'***
'*** Graph.AMOS
'***
   STORE$="RAM:Graphs/"
'***
'***
'***
   Screen Open 0,640,256,2,Hires
   Curs Off : Hide
   Paper 0 : Pen 1 : Ink 1 : Cls
   Palette $FFF,$0
'***
'*** Get the data.
'***
   If Not Exist(STORE$)
      Mkdir Left$(STORE$,Len(STORE$)-1)
   End If
      Dim DAT(12,4)
   Locate 0,2
   Input "Completed graphs? ";FILE
Do
   Locate 0,3
   Input "Starting Year: ";YEAR
   Input "Title: ";TITLE$
   If TITLE$=""
      TITLE$="Test.Graph"
   End If
   For A=0 To 3
      Print "-----------------------------";A+YEAR
      For B=0 To 11
         If TITLE$="Test.Graph"
            Randomize Timer : DAT(B,A)=Rnd(10000)
         Else
            Print "Data for month ";B+1;" of ";YEAR+A;": "; : Input "";DAT(B,A)
         End If
      Next
   Next
   Cls
'***
'*** Set up the screen.
'***
   Screen Open 1,320,200,2,Lowres
   Print : Print : Print
   Palette $0,$FFF : Curs Off : Cls
   Centre "Please Wait. Calculating Graph."
   Screen 0
   Screen Hide
   Curs Off
   Ink 1,0
'
   Polyline 20,0 To 20,200 To 614,200
   For A=0 To 20 Step 2
      Draw 10,200-(A*10) To 20,200-(A*10)
      Text 0,204-(A*10),(Str$(A*0.5)-" ")
   Next
'
   Text 25,208,"Jan"
   Text 75,208,"Feb"
   Text 125,208,"Mar"
   Text 175,208,"Apr"
   Text 225,208,"May"
   Text 275,208,"Jun"
   Text 325,208,"Jul"
   Text 375,208,"Aug"
   Text 425,208,"Sep"
   Text 475,208,"Oct"
   Text 525,208,"Nov"
   Text 575,208,"Dec"
'
   Box 20,212 To 30,222
   Box 20,223 To 30,233
   Box 20,234 To 30,244
   Box 20,245 To 30,255
   Set Pattern 0 : Paint 25,217
   Set Pattern 2 : Paint 25,229
   Set Pattern 5 : Paint 25,240
   Set Pattern 7 : Paint 25,251
'
   Text 33,221,Str$(YEAR)
   Text 33,232,Str$(YEAR+1)
   Text 33,243,Str$(YEAR+2)
   Text 33,254,Str$(YEAR+3)
'
   Text 330-((Text Length(TITLE$))/2),250,TITLE$
'***
'*** Draw our bars!
'***
   For A=0 To 11
      D=100
      H=200/(10000/D)
      X=A*50
'
      Box 20+X,200-(DAT(A,0)/D*H) To 30+X,200
      If(DAT(A,0)/D*H)=>3
         Set Pattern 0 : Paint 25+X,199
      End If
'
      Box 30+X,200-(DAT(A,1)/D*H) To 40+X,200
      If(DAT(A,1)/D*H)=>3
         Set Pattern 2 : Paint 35+X,199
      End If
'
      Box 40+X,200-(DAT(A,2)/D*H) To 50+X,200
      If(DAT(A,2)/D*H)=>3
         Set Pattern 5 : Paint 45+X,199
      End If
'
      Box 50+X,200-(DAT(A,3)/D*H) To 60+X,200
      If(DAT(A,3)/D*H)=>3
         Set Pattern 7 : Paint 55+X,199
      End If
   Next
'***
'*** PHEW!
'***
   Screen Close 1
   Screen Show 0
   Clear Key
   Wait Key
   Clear Key
   Inc FILE
   Save Iff STORE$+Str$(YEAR)-" "+"."+(Str$(FILE)-" ")
   Cls
Loop
