Heap Shuffle.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Call HeapShuffle and compare addresses
  2. #define USE_TI89 // Compile for TI-89
  3. #define USE_TI92PLUS // Compile for TI-92 Plus
  4. #define USE_V200 // Compile for V200
  5. #define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization
  6. #define MIN_AMS 200 // Compile for AMS 2.00 or higher
  7. #define SAVE_SCREEN // Save/Restore LCD Contents
  8. #include <tigcclib.h> // Include All Header Files
  9. // Main Function
  10. void _main(void)
  11. {
  12. unsigned char *p1, *p2, *p3, *p4, *p5, *p6;
  13. HANDLE h1, h2, h3;
  14. short f = FontGetSys ();
  15. unsigned char b[50];
  16. h1 = HeapAlloc (0x1000);
  17. h2 = HeapAlloc (0x1000);
  18. h3 = HeapAlloc (0x1000);
  19. if (h1 && h2 && h3)
  20. {
  21. ClrScr ();
  22. p1 = HeapDeref (h1);
  23. p3 = HeapDeref (h2);
  24. p5 = HLock (h3);
  25. HeapShuffle ();
  26. p2 = HeapDeref (h1);
  27. p4 = HeapDeref (h2);
  28. p6 = HeapDeref (h3);
  29. FontSetSys (F_4x6);
  30. DrawStr (0, 0, "Before/after shuffle:", A_NORMAL);
  31. sprintf (b, "Block 1 (unlocked): %lp %lp", p1, p2);
  32. DrawStr (0, 10, b, A_NORMAL);
  33. sprintf (b, "Block 2 (unlocked): %lp %lp", p3, p4);
  34. DrawStr (0, 20, b, A_NORMAL);
  35. sprintf (b, "Block 3 (locked): %lp %lp", p5, p6);
  36. DrawStr (0, 30, b, A_NORMAL);
  37. FontSetSys (f); // Restore previous font
  38. GKeyIn (NULL, 0);
  39. }
  40. HeapFree (h3);
  41. HeapFree (h2);
  42. HeapFree (h1);
  43. }