システムコールの処理を読んで5章は一旦終わりです。

システムコールを実行した結果エラーが発生したかどうかを、PSWを引数としてもらった値のビット0をset/resetすることで表現している箇所があるのですが、このビットは元々キャリービットです。それを勝手にいじっていいのか不思議です。

それともPSWの他のビットは後々必要だがビット0は不要なのでソフト的なフラグとして使っているだけということなのか。別に記憶領域をとってもよかったのだがちょっとけちっただけなのか。

もやもやしますね。
5.4 クロック割り込みハンドラ を読み直しました。ここも処理自体は追えても意図不明な箇所があちこちにあるのですっきりしません。

コードを見る限りtime[1]が現在時刻の下位桁、time[0]が上位桁のようですが不思議な順番です。

PSWでの現モードも前モードもユーザーモードならば、という判定をしている箇所があるのですが、どのような場合にそんなことになるのかが分かりません。ユーザーモードとカーネルモードが切り替わるからこのビットがあるのかと思っていたので。

なぜ4秒毎の処理をlightning bolt(稲妻)と命名したかもちょっぴり気になりますね。分かったところで何の役にも立たないですけど。
5章を読み直しています。

アセンブラプログラムの動きによって割り込み発生時にカーネルスタックがどのように変化していくかは追いかけられるようになってきましたが、そもそもなんでそういうデータをスタックに積んでいるのかは相変わらず分かりません。

せっかく積んだのに読み飛ばす場合もありますし、特にPSWは3回も積んでいるのはなぜなのか疑問です。

やはりここ辺は難しいですね。少しでも理解が進んだことで良しとするしかなさそうです。そうしないと勉強を続けられなくなるので。