In C gibt es abgekürzte Schreibweise wie x += a . dies steht für x = x + a . So ähnlich auch für &= für die und Verknüpfung - hier zum Löschen von Bits genutzt und |= für die oder Verknüpfung zum setzen von Bits.
Als Beispiel löscht der Teil "Adcsra &= 255 -(1 << Adie)" gerade ein Bit. In Bascom wäre das dann etwa (so genau kenne ich Bascom nicht)
adcsra.adie = 0 oder ggf. auch ein Befehl zum ausschalten des ADC interrupts.


Der Teil mit "Overport" ist als Anzeige für einen Überlauf - den Teil kann man weglassen oder später implementieren.

ADCW steht für das Ergebnis der AD Wandlung, als 16 Bit Wert. Ich weiss jetzt nicht ob Bascom das untrestützt und wie es da heißt, ggf. einfach nur ADC.
Der Teil mit ISR(ADC) ist die Interrupt routine für den ADC. Der ADC läuft auch nicht als Single sondern mit Autotrigger. Wenn man es ohne ISR machen will, dann müsste da noch eine Schleife rum. Also etwa als FOR-Schleife (z.B. 5000 mal) drum - dann könnte man den ADC auch per getadc() auslesen statt über adcw.
Die "Schleife" (bzw. ISR) zum einlesen der Werte Summiert einmal die ADC werte auf (Variable Sumad) und dazu die Quadrate in der variable sumadsq.