Custom Interrupt for the TI-81 with ROM 1.8K By RANDY Ruler of Zexernet (Mr.Z on ticalc.org) on 8/22/2009 INTRODUCTION: This program uses a custom interrupt routine to enable execution of user machine code on the TI-81. It lacks proper error checking, so it should be considered a dangerous toy/hacking tool that is not suitable for production use. This will only work on ROM 1.8K, since it uses hard-coded ROM addresses. While the bug on which it relies is present at least in ROM V2.0V, I do not have a table of addresses for it. DISCLAIMERS: Note that failure to follow the installation instructions exactly may result in a crash. Installing this will erase all programs you have stored on the calculator & scramble your Y-vars. I recommend resetting memory before beginning anyway. I am not responsible for any results this may or may not have, including but not limited to crashing or bricking the calculator. If you run it you take full responsibility for your actions. I am not affiliated with Texas Instruments in any way. You are free to do what you want with the code, but this text file may only be distributed in original unmodified form. You can change the line termination character or character set if necessary for viewing on your computer, but you may not modify this text in any other way. INSTALLATION: Enter the following 3 programs in the specified slots: Prgm1: :AGAACBAAPEDOPDH HCDBAPMHHAOEKBBP LPCNFOBDGABCDDGP FCDOLONLADMONEHO NFOMJPFMFNFOFMNI OCGPOBADIFFPOBKD IAIPOFJDIENPOHED AEJMNGDGCMNHJGBM NCLBBNFOFBBMHPMC KEFPDOFMNDMBCMBO BNBMMFHBDMFMFNFO FMNKEGLOBNBMBBKB DPOOMCIBCMFMNGDG CBHBHBHBHEHBKBDM NGDGCIAMBACADMND MBCCAODOBMNHEFCM NKOGLMDKKGIAADKA IODPODBCACIPNMLA BFOCICCDKEHODLHC ABMOFCBGJPDODKPD CAIODPNMLABIGPNM LABJOBIAJPPPDAIP NMLABEGCANBAIPLM JAA Prgm2: :X+1→X :If X<9 :Prgm2 :0→X :Input X Prgm3: :"Y₁ nCr 7*Row+( ≤≤F≤ ≤Round(≤^JS sinh DispHomeY₁ᴛ 0Ans,⅟Y₂-OffXmax ≤Y₃-OffA7777[A]≤ Y₃-OffA237777777 777TstepInput =D ispGraphXminPaus e=Shade(X₃ᴛ"→Y₄ Execute these commands: 0→{x}(1 π→{y}(1 1→{x}(2 1→{y}(2 LinReg Prgm3 Clear all Y-vars (including the ones from parametric mode) if they are not empty Define Y₁=(⁻1)^π Fill Y₃ with copies of RegEQ until you cannot enter anything more Repeat 6 times: Execute Prgm2 Enter Y₁ at the ? prompt Go to the error Return to the home screen with 2nd, QUIT Execute Prgm3 Go to Y₃ & scroll until the first time you see All-OffBcol Position the cursor just after it Press left 7 times (you should see FAIL under the cursor) Press MATH, LEFT, 2 Turn the calculator off & back on Check that the RESET screen shows exactly 442 PRGM bytes If made it this far, you have successfully installed the interrupt. You can erase the stuff in the Y-vars. It is no longer needed. USAGE: Pressing 2nd, GRAPH at the home screen, followed by a letter or digit, will execute the specified program as machine language. Note that no error checking is performed other than checking that there is enough free RAM, so double-check code before running it. The format used is pairs of hexadecimal digits. Line breaks can be inserted between pairs, but not between the digits of a single pair. No other characters are allowed, & if any are present your calculator will most likely crash. EXAMPLE PROGRAM: Enter this into Prgm1 (exactly, & with nothing else): 3E2CCD5667C39A69 Then go to the home screen & press 2nd, GRAPH, 1. You should see TEST on the screen. If so, congratulations! If nothing happened, something went terribly wrong, & you probably have to start over after resetting the calculator. If it crashed, you mis-typed something. Either way, ouch. CONTACT: Firstly, do not ask me how to make this work or why it does not work. Double-check your ROM version (on the self test screen at TEST ALPHA S), then try again if you are sure it is 1.8K. Otherwise, it will not almost certainly work. Secondly, do not ask me where to find a copy of the TI-81 ROM. You could use this code to dump yours if you were so inclined. If you are sure you have read everything above, I can be reached at RANDYRulerOfZexernet@gmail.com as of 8/22/2009. Please put TI-81 in the subject line.