Z80 (TI-83 +) stops working on CALL

Every time I build an application for the TI-83 + calculator (Z80 processor), it stops working on CALL. Here is an example ("Hello") - it starts normally, but the calculator hangs in the CALL instruction. Everything that I put before CALL works fine, and everything that I put after does not start. This is code parsing to show addresses, not labels. I “touched it” to show the DB lines where they get to make it easier to read.

I have never had this problem writing prefabricated “programs” (which are loaded into RAM). The only problems I know with running "applications" (which are stored in Flash ROM) are that they cannot be self-modifying, and because of the need for swapping, access to data on a separate page is not possible. This is not self-modification and only one page ... What have I done wrong?

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
+5
source share
2 answers

-, 0080h. , 0000h - 3FFFh ROM 0. , , 4000h. , CALL , .

+9

, Ti-83+. $0080, . . , JP CALL. CALL $0099 , . .

ORG .asm, . .

+2

All Articles