本節ではゴールド銀行に関係のあるデータ構造および処理手順について述べる。
はなすオブジェクトがゴールド銀行であるならば、その振る舞いは基本的に次のようになる:
CA/B6FF: 228366CD JSR $CD6683 ; ゴールド銀行 CA/B703: 6B RTL
サブルーチン $CD6683
は結局 $C1F7D1
を呼び出すことしかしないので、
本書では後者のほうをゴールド銀行共通処理と位置付ける。
このコードは対話的な処理を含むので、比較的長いものとなっている。
要点を以下に列挙する:
初回訪問時には専用の台詞を表示する。
$7E3D2C
の #$0002
をフラグとして用いる。
この台詞を表示した直後にフラグを立てる。
サービス内容は「あずける」または「ひきだす」のどちらか。
預金額はアドレス $7E3EA5
に 1,000 ゴールド単位で表現されている。
預金単位で 10,001 以上になるようなゴールドを預けようとすると、銀行員から断られる。
所持金以上のゴールドを預けようとすると、銀行員から断られる。
預金ゼロの状態で任意の金額を引き出そうとすると、銀行員から冗談を言うなと起こられる。
預金額を超えるゴールドを引き出そうとすると、銀行員から断られる。
引き出すと所持金が 1,000,000 ゴールド以上になるようだと、銀行員から断られる。
利用状況の如何を問わず、最後に預金残高を台詞の形で知らせる。