instruction sequence | 説明 |
GSAVE OUT STSPSH SAVE A ON THE STACK |
IOに接続したスタックに保存する。 |
LAI 0 |
* c=0 , z=1 , s=0 , p=1 $00flagの値に応じた数字をAregにつくる。 |
GSAV3 OUT STSPSH SAVE MAGIC NUMBER ON STACK |
flagを保管する。 |
instruction sequence | 説明 |
INP STPOP RESTORE MAGIC NUMBER FROM STACK |
flagを復帰する。 ADAで復帰できるような値でsaveしている。 |
INP STPOP RESTORE L |
各レジスタを復帰する。 |
instruction sequence | 説明 |
out Asave |
外部 I/Oエリアに保存する。 保存した値は同じアドレスから 入力命令で読み込めるものとする。 |
mvi B,0 |
* c=0 , z=1 , s=0 , p=1 $00flagの値に応じた数字をAregにつくる。 |
out Fsave |
flagを保管する。 |
instruction sequence | 説明 |
inp Fsavead |
flagを復帰する。 ADD Aで復帰できるような値でsaveしている。 |
inp Lsavead |
各レジスタを復帰する。 |
instruction sequence | 説明 |
SAVE LHI AREGI^ / HIGHER ADDRESS OF SAVE AREA |
メモリに保存する。 H&Lレジスタは保存できない。 carryフラグを取りだしメモリに保存する。 |
LAI 0 SAVE1 JFP SAVE2 / TEST PARITY F/F |
* z=1 , s=0 , p=1 $00flagの値に応じた数字をAregにつくる。 作った数値を保存する。 |
instruction sequence | 説明 |
RSTOR LHI BREGI^ |
Aとflag以外を復帰する。 H&Lは復帰できない。 |
INL / RESTORE FF'S EXCEPT CARRY F/F |
ADI 0でCarry以外のFFを復帰する。 |
LLI CARRY / RESTORE CARRY F/F |
RALでCarryを復帰する。 |
LLI AREGI / RESTOE <A> |
Aを復帰する。 |
instruction sequence | 説明 |
PUSH OUT STACK AC WAS SAVED |
外部 I/Oエリアに設けたSTACKに保存する。 FLAG値はINPUT命令で外部ラッチに一旦ラッチし、STACKに保存する。 |
instruction sequence | 説明 |
POP I/O STACK FLAG INPUT |
各レジスタを復帰する。 |