Eine Subroutine oder auch Sub ist ein Unterprogramm. Was will ich mit einem Unterprogramm, ich hab doch normale Programme, könntest du dich fragen. Ein Unterprogramm ist ein immer wieder gebrauchter Codeteil, den man unter dem Namen des Sub aufrufen kann. Ein Sub muss deklariert werden, sonst kannst du es nicht benutzen. Hier ein Beispiel:

declare sub PrintInfo ()

Mit Declare sagst du FreeBasic, dass es ein Unterprogramm gibt, das so heißt. Hier ein Beispiel mit dem Unterprogramm:

declare sub PrintInfo ()

sub PrintInfo()
  print "Autor:      Ich"
  print "Version:    0.1"
  print "Datum:      24.3.2009"
end sub

Nun kannst du im Quelltext PrintInfo() schreiben und das was im Sub steht wird getan. Aber wofür sind die Klammern? Mit ihnen kannst du Parameter übergeben. In unserem Beispiel sähe das so aus:

declare sub PrintInfo (byval autor as string, byval ver as string, byval date as string)

sub PrintInfo(byval autor as string, byval ver as string, byval datum as string)
  print "Autor:      " + autor
  print "Version:    " + ver
  print "Datum:      " + datum
end sub

Der Aufruf würde jetzt zum Beispiel so aussehen: PrintInfo("Ich","0.1","24.3.2009"). Subs benutzt man um viele Befehle zu automatisieren. Etwas besseres als Subs sind Funktionen. Warum eine Funktion so viel besser ist, werden wir im nächsten Kapitel lernen.