0 Members and 2 Guests are viewing this topic.
This should stay in this subforum, and I'm still unsure of what actually *happens* when you go past $C000
How does the calculator even detect that code is running in the "illegal" area? The only explanation that I can think of is that the last two bits on the address bus (the ones that must be on if code above C000 is being executed) are wired into a trigger that causes the processor to jump to the boot code. In other words, the detection is in the hardware itself.
Quote from: Compynerd255 on March 25, 2011, 07:01:24 pmHow does the calculator even detect that code is running in the "illegal" area? The only explanation that I can think of is that the last two bits on the address bus (the ones that must be on if code above C000 is being executed) are wired into a trigger that causes the processor to jump to the boot code. In other words, the detection is in the hardware itself.Most likely it is. Remember that we are talking about all of this being in the processor. So the processor knows immediately if the pc is C000h or above.
Quote from: graphmastur on March 25, 2011, 08:13:08 pmQuote from: Compynerd255 on March 25, 2011, 07:01:24 pmHow does the calculator even detect that code is running in the "illegal" area? The only explanation that I can think of is that the last two bits on the address bus (the ones that must be on if code above C000 is being executed) are wired into a trigger that causes the processor to jump to the boot code. In other words, the detection is in the hardware itself.Most likely it is. Remember that we are talking about all of this being in the processor. So the processor knows immediately if the pc is C000h or above.Which probably explains why the Z80 processor is actually TI's modified version.
BCALL NewLineLD HL, sStartBCALL PutSDILD A, $C9 ; retLD ($FF80), ALD ($8000), SPLD SP,$8080LD HL,retPointPUSH HLJP $FF80retPoint:LD SP,($8000)LD HL,sEndBCALL PutSEIRETsStart:DB "Start!",0sEnd:DB " ... End!",0