After discovering my "broken" Ti 84+ CE was no longer broken, I realized I now have two of them on hand!
Right away, my first idea was to port a distributed Mandelbrot set rendering program to the CE from the 84+ BE.
Luckily, the program(s) this thing uses is all in TI BASIC, so that shouldn't be too hard to port to the CE.
However, there's one key program this uses: ZENTER.
I did some digging on what ZENTER was, and I found out that its an assembly program thats used to "unpause" a linked calculator, as the author puts it. There are no direct claims that ZENTER's source is publicly available, and the only other program I've found to use it is a Battleship program made for the 83+ in 2003. So I really doubt that contacting the original author would yield anything useful.
However, because of the program's very small size and apparent lack of use from the LCD or things like that, I thought that it would be trivial to port this program to the CE. I originally thought all I had to do was change wherever .org $9D93 was, as I think I read somewhere that the asm loading address changed. But as I've found, its not that easy.
Here's the opcodes of ZENTER.8xp pulled from HxD:
Code:
Here's the "running code" (from $47 to C9)
Code:
Here's my attempt at porting this to the CE:
Code:
However, I can't find what _SendAByte is for the CE
Is there an equivalent CALL?
Right away, my first idea was to port a distributed Mandelbrot set rendering program to the CE from the 84+ BE.
Luckily, the program(s) this thing uses is all in TI BASIC, so that shouldn't be too hard to port to the CE.
However, there's one key program this uses: ZENTER.
I did some digging on what ZENTER was, and I found out that its an assembly program thats used to "unpause" a linked calculator, as the author puts it. There are no direct claims that ZENTER's source is publicly available, and the only other program I've found to use it is a Battleship program made for the 83+ in 2003. So I really doubt that contacting the original author would yield anything useful.
However, because of the program's very small size and apparent lack of use from the LCD or things like that, I thought that it would be trivial to port this program to the CE. I originally thought all I had to do was change wherever .org $9D93 was, as I think I read somewhere that the asm loading address changed. But as I've found, its not that easy.
Here's the opcodes of ZENTER.8xp pulled from HxD:
Code:
2A 2A 54 49 38 33 46 2A 1A 0A 00 50 72 6F 74 50 72 6F 67 72 61 6D 20 66 69 6C 65 20 30 38 2F 32 34 2F 30 38 2C 20 32 30 3A 32 38 00 00 00 00 00 00 00 00 00 00 2A 00 0D 00 19 00 06 5A 45 4E 54 45 52 00 00 00 00 19 00 17 00 BB 6D 3E 83 EF E5 4E 3E 87 EF E5 4E 3E 05 EF E5 4E 3E 00 EF E5 4E C9 B4 0E
Here's the "running code" (from $47 to C9)
Code:
ld a,$83
B_CALL(_SendAByte)
ld a,$87
B_CALL(_SendAByte)
ld a,$05
B_CALL(_SendAByte)
ld a,$00
B_CALL(_SendAByte)
ret
Here's my attempt at porting this to the CE:
Code:
#include "..\include\ti84pce.inc"
.assume ADL=1
.db tExtTok,tAsm84CECmp
.org userMem
; Start of program code
ld a,$83
call _SendAByte
ld a,$87
call _SendAByte
ld a,$05
call _SendAByte
ld a,$00
call _SendAByte
ret
However, I can't find what _SendAByte is for the CE
Is there an equivalent CALL?