We take our deepest look yet at the TI and TI$ "variables" on the Commodore 64 and 128: how they look like variables but are called functions and how they're not really either, how the clock is implemented, how TI works on both the Commodore 64 and 128,, some bugs and quirks in the implementation, dispelling myths about whether a jiffy is a different length on PAL vs. NTSC, and potential patches to fix the admittedly minor bugs. One byte changed in each of the KERNAL and BASIC ROMs!
To support 8-Bit Show And Tell:
Become a patron: https://patreon.com/8BitShowAndTell
One-time donation: https://paypal.me/8BitShowAndTell
2nd channel: https://youtube.com/channel/UCAgWzEh5c8391eJnELDy9OA
Links:
C64 BASIC integers:
https://youtu.be/wo14rDnGUbY
WAITing for BASIC:
https://youtu.be/iQbBlH6tHkI
Pagetable.com disassembly: https://www.pagetable.com/c64ref/c64disasm/#A9E0
Toolkit BASIC 64: https://archive.org/details/COMPUTEs_VIC-20_and_Commodore_64_Tool_Kit_Basic_1984_COMPUTE_Publications/page/n195/mode/2up
Index:
0:00 Another TIME
0:58 Not really variables, not keywords - they're sort of functions!
5:13 TI is derived from the KERNAL jiffy clock
7:17 A Leap Jiffy
11:17 60 jiffies per second - even on PAL machines!
15:08 PAL Commodore 128: Raster driven jiffies!
23:04 Can't assign TI
25:03 Retrieving TI
26:40 Retrieving TI$
30:33 Assigning TI$, bug exploration
33:42 TI$ assignment algorithm in BASIC
40:06 Patching assignment bug
44:50 Thanks!