と、ここでちょっと「変数」の解説。

name    = "ファミリーコンピュータ"

の「name」が変数。
パソコン上での記憶というのはメモリに全て格納される訳ですが、
メモリは0x04000000とかいう訳の分からない数字の羅列で記憶する場所を指定します。
(メモリにはExcelのように番地が割り当てられているのです。)
でもこれ数字覚えるの大変じゃん・・・・・・
(主はGBAのメモリマップの主要部分のアドレスを覚えちゃってますが。)
・・・そうだ!
0x04000000に人間に分かりやすい名前(例えば主人公の体力=「HP」という名前)を付けてしまえばいいんだ。
という訳で生まれたのが変数な訳です。
という事で「name」という場所に「"ファミリーコンピュータ"」という値を記憶させてるのがこの処理です。
この場合「数学の=」とは違うのでご注意・・・
「""」は文字列を表しますが、
数字の1983(「hatubai = 1983」の1983)と文字としての「"1983"」は同じようで全く別物なのでご注意下さい。

1983+7
は「1990」ですが、
"1983"+ "7"
は「"19837"」になります。

※以下一文理解しなくて構いません。プログラマ向け技術的解説です。
Variant型であるため自動型変換により、"1983" + 7 はちゃんと1990となります。

hatubai = 1983
hatubai = hatubai + 7

で、問題はこの2文。
まず

hatubai = 1983


で「hatubai」は「1983」となります。
次に

hatubai = hatubai + 7

ですが、この時、「hatubai」は「1983」なので・・・

1983 = 1983 + 7

と、置き換えたくなりますが、
この場合の「=」は
=の左辺(左側の変数)に右辺(右側で計算した値)を記憶させる意味を持つので・・・

まず=の右側を置き換えます。
「hatubai」は1983なので、

hatubai=1983+7

1983+7は1990

よって「hatubai」に1990が記憶されるのです。
次に

hatubai & "年発売。"

これ。これは文字列同士の連結を表します。

・・・でもちょっと待った。
hatubaiって数字じゃね・・・。


ごもっとも。
この様な場合「数字は文字として扱われる」のです。
どういう事か・・・?

hatubai =1983
msgbox(hatubai & "年発売。")

で「hatubai」は「1983」です。
が、「&」で結合されているので・・・
文字列である「"1983"」として扱われます。
文字列同士の結合は前の文字列に後ろの文字列をくっつける(連結する)ので
「"1983年発売。"」という文字列になります。

これを視覚的に分かりやすく書くと・・・
msgbox(cstr(hatubai) & "年発売。")

cstr(変数)とは変数を文字列化(""でくくる)する関数です。
ChangeString(日本語訳:「文字列変換」)なのでcstrとなってます。

ここで豆知識として気をつけて置きたい事は、
「+」にも文字列を結合する意味合いがありますが
結合する値が「数値」か「文字」かなどで結果が変わってくる
(普通に足し算されたり文字列として結合されたり)ので注意が必要です。

※「&」の場合結合対象を文字列として認識しましたが、
「+」の場合結合対象を可能な限り数字として認識しようとし、
双方が数字である場合「足し算」が行われます。