Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
"Cemetech Shall Rule the World!"
Published by KermMartian on October 13, 2006 at 7:39:59 AM CST | Discuss this article (37)

CALCnet2.2


A historic occasion! At 8:31AM EST, on this Friday, October 13th, 2006, CALCnet2.2 successfully sent and acknowledged its first message across a calculator network. In roughly 1/200th of a second, one of four networked emulated calculators sent 5 receiver SID bytes, 5 sender SID bytes, 2 size bytes, and the ascii message, "Cemetech shall rule the world!" to another one. The CALCnet2.2 routines were running as semi-blocking interrupts coexisting with a Doors CS 6 beta running at nearly full speed in the foreground. This heralds a major milestone for Doors CS, CALCnet2, and globalCALCnet: now that sending and receiving between calculators is possible, all of the wide and varied applications of calculator networking are ready to be explored.

For those unfamiliar with CALCnet2.2, it is the third major revision of the CALCnet protocol, and the first to be brought fully to fruition. CALCnet, later appended the designation 1.0 when later CALCnet protocols were developed, was interrupt-based yet built on a highly error-prone system. Since it was one of my first forays into z80 assembly programming, the code was extraordinarily buggy, not to mention uncompilable. CALCnet2 was my second wave of efforts on the project, in which I made great numbers of improvements to the theory behind the protocol. CALCnet2 owed a substantial percentage of its inspiration to a networking paper published by MaxCoderz' Timendus on ticalc.org, yet even this version was never completely written. Finally, in July 2006, I sat down and worked out a version of CALCnet based enough on CALCnet2 not to deserve a new major version number, but encompassing a vast number of improvements. Especially stressed was the amount of error checking; unlike any previous iteration of CALCnet, it was specifically designed to be used as an interrupt. Calculators are now identified not by cascading, dynamic assignation during network connection, but by the 5-byte unique serial number every real (non-emulated) calculator contains from its creation. This eliminates all of the network integrity checks that had been necessary in CALCnet2.2. In addition, all routines are heavily protected against locking up the calculator, and by using a pair of buffers instead of directly sending data between client programs and the interrupt, the CALCnet2.2 interrupt's actions are completely transparent to the client programs running on the calculator.

In the next few days, CALCnet2.2 will continue to be debugged, and I will be working on some fancy-looking demos. The only minor drawback of testing CALCnet2.2 on emulated hardware is that I also have to fake SIDs, since ROM images do not contain SIDs. Oh, and I have successfully tested Cn2 as working across all known TI-83+ ROM images.

Without further ado, here's the proof of this momentous occasion: the contents of the receiving calc's 256-byte receive buffer:
oncalc
Cemetech  shall rule the world!


Permalink
News Archives Index
2003 2003 [View All]

» January (1)
» March (5)
» April (3)
» May (3)
» June (4)
» July (2)
» August (1)
» September (4)
» December (1)
2004 2004 [View All]

» January (3)
» February (4)
» March (4)
» April (3)
» May (5)
» June (9)
» July (5)
» August (2)
» September (7)
» October (5)
» November (2)
» December (3)
2005 2005 [View All]

» January (8)
» February (4)
» March (4)
» April (15)
» May (21)
» June (20)
» July (6)
» August (8)
» September (10)
» October (12)
» November (12)
» December (8)
2006 2006 [View All]

» January (7)
» February (4)
» March (5)
» April (3)
» May (4)
» June (4)
» July (13)
» August (6)
» September (7)
» October (10)
» November (6)
» December (9)
2007 2007 [View All]

» January (5)
» February (6)
» March (6)
» April (5)
» May (2)
» June (8)
» September (5)
» October (1)
» November (1)
2008 2008 [View All]

» January (2)
» March (3)
» April (2)
» May (3)
» June (3)
» July (1)
» September (1)
» November (1)
2009 2009 [View All]

» January (3)
» February (2)
» March (2)
» April (3)
» May (2)
» June (1)
» July (3)
» August (1)
» September (4)
» October (2)
» December (2)
2010 2010 [View All]

» January (6)
» February (2)
» March (1)
» April (4)
» May (6)
» June (7)
» July (6)
» August (8)
» September (6)
» October (3)
» November (4)
» December (3)
2011 2011 [View All]

» January (7)
» February (5)
» March (8)
» April (3)
» May (4)
» June (4)
» July (1)
» August (6)
» September (3)
» October (4)
» November (7)
» December (6)
2012 2012 [View All]

» January (4)
» February (5)
» March (2)
» April (4)
» May (4)
» June (3)
» July (2)
» August (3)
» September (9)
» October (6)
» November (8)
» December (3)
2013 2013 [View All]

» January (8)
» February (8)
» March (14)
» April (6)
» May (4)
» June (7)
» July (6)
» August (9)
» September (5)
» October (6)
» November (7)
» December (7)
2014 2014 [View All]

» January (3)
» February (4)
» March (10)
» April (2)
» May (4)
» June (5)
» July (4)
» August (7)
» September (7)
» October (5)
» November (4)
» December (5)
2015 2015 [View All]

» January (8)
» February (5)
» March (6)
» April (5)
» May (5)
» June (1)
» July (6)
» August (5)
» September (3)
» October (4)
» November (3)
» December (9)
2016 2016 [View All]

» January (9)
» February (10)
» March (7)
» April (4)
» May (4)
» June (4)
» July (4)
» August (8)
» September (3)
» October (2)
» November (2)
» December (5)
2017 2017 [View All]

» January (4)
» March (6)
» April (4)
» May (3)
» June (3)
» July (2)
» August (3)
» September (3)
» October (3)
» December (6)
2018 2018 [View All]

» January (1)
» February (1)
» March (3)
» April (11)
» May (3)
» June (4)
» July (5)
» August (1)
» September (1)
» October (3)
» November (2)
» December (3)
2019 2019 [View All]

» January (2)
» March (5)
» April (2)

Advertisement