TI-83 +計算機(Z80プロセッサ)用のアプリケーションをアセンブルするたびに、CALLで実行が停止します。次に例を示します( "Hello")—正常に実行を開始しますが、電卓はCALL命令でフリーズします。CALLの前に置いたものはすべて正常に機能し、後に置いたものはすべて実行されません。これは、ラベルではなく住所を表示するためのコードの逆アセンブルです。読みやすくするために、それらが含まれるDB行を表示するために「修正」しました。
アセンブリ「プログラム」(RAMにロードされる)を作成するときにこの問題が発生したことはありません。「アプリケーション」(フラッシュROMに保持されている)の実行に関して私が知っている唯一の問題は、それらが自己変更できないことと、ページングが必要なため、別のページのデータにアクセスできないことです。これは自己変更ではなく、1ページしかありません...私は何を間違えましたか?
0080 218900 LD HL, 0089h
0083 cd9900 CALL 0099h ; --- App stops here
0086 c38f00 JP 008fh
0089 48656c6c6f00 DB "Hello", 0
008f fd360500 LD (IY+05h), 0
0093 ef RST 28h ; B_CALL (
0094 364c DB 4C36h ; _ReloadAppEntryVecs)
0096 ef RST 28h ; B_CALL (
0097 2740 DB 4027h ; _JForceCmdNoChar) --- App should end here
0099 7e LD A, (HL) ; --- Call goes to here
009a ef RST 28h ; B_CALL (
009b 0445 DB 4504h ; _PutC)
009d fe00 CP 0
009f c8 RET Z
00a0 23 INC HL
00a1 18f6 JR 0099h