Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.98 KB | None | 0 0
  1. #include "ti83plus.inc"
  2. #include "axe.inc"
  3.  
  4.  
  5. .dw $C0DE
  6.  
  7.  
  8. .dw GotoProgram - Check_If_Normal_Or_15Mhz
  9. .db %11101110
  10. .db $7E, $08
  11. .db %00000000
  12. .db 0
  13.  
  14. ; Crabcake_START
  15.  
  16.  
  17.  
  18. .org 0000
  19.  
  20.  
  21. Check_If_Normal_Or_15Mhz:
  22.  
  23. di
  24.  
  25. in a, ($02)
  26. rla
  27.  
  28. jp c, Is15MhzCalculator
  29.  
  30. jp Is6MhzCalculator
  31.  
  32.  
  33.  
  34.  
  35.  
  36. Is6MhzCalculator:
  37.  
  38.  
  39. call sub_Axiom2
  40.  
  41. ;Save the page where code is running.
  42.  
  43. in a, ($06)
  44. push af
  45.  
  46.  
  47. call sub_Axiom3
  48.  
  49. ld a, a
  50. ld de, AfterExploit
  51. push de
  52.  
  53. jp (hl)
  54.  
  55.  
  56.  
  57.  
  58. AfterExploit:
  59.  
  60. B_CALL $4F3C
  61. pop af
  62. out ($06), a
  63.  
  64. jp EndOne
  65.  
  66.  
  67.  
  68. Is15MhzCalculator:
  69.  
  70. in a, ($06)
  71.  
  72. push af
  73.  
  74.  
  75.  
  76. ld a, $83
  77. out ($06), a
  78.  
  79.  
  80. SwapBytes:
  81.  
  82.  
  83. ld hl,$4000
  84. ld de,$C000
  85. ld b,h
  86. ld c,l
  87.  
  88. SwapBytesLoop:
  89.  
  90. ld a,(de)
  91. ldi
  92. dec hl
  93. ld (hl),a
  94. inc hl
  95. jp pe,SwapBytesLoop
  96.  
  97.  
  98. ;Put page $83 into the slot where page $80 normally is
  99.  
  100. ld a, $03 ;Port 5 CANNOT accept values in the 80s :)
  101.  
  102. out ($05), a
  103.  
  104. pop af
  105. out ($06), a
  106.  
  107.  
  108. EndOne:
  109. ei
  110.  
  111. GotoProgram:
  112.  
  113.  
  114.  
  115. .dw BaBBBBBBB - AbAAAAAAA
  116. .db %11101110
  117. .db $00,00
  118. .db %00000001
  119. .db 0
  120. .org 0000
  121.  
  122. AbAAAAAAA:
  123.  
  124.  
  125.  
  126. in a,(6)
  127. push af
  128. ld a,$1B
  129. out (6),a
  130. ld hl,5092h
  131. ld e,(hl)
  132. inc hl
  133. ld d,(hl)
  134. inc hl
  135. ld a,(hl)
  136. sub $60
  137. out (6),a
  138. ex de,hl
  139. ld a,0CCh
  140. ld bc,0FFFFh
  141. cpir
  142. ld e,(hl)
  143. inc hl
  144. ld d,(hl)
  145. push de
  146. pop ix
  147. ld hl,9898h
  148. ld (hl),0C3h
  149. inc hl
  150. ld (hl),returnPoint & 11111111b
  151. inc hl
  152. ld (hl),returnPoint >> 8
  153. ld hl,pagedBuf
  154. ld (hl),98h
  155. ld de,pagedBuf+1
  156. ld bc,49
  157. ldir
  158. ld (iMathPtr5),sp
  159. ld hl,(iMathPtr5)
  160. ld de,9A00h
  161. ld bc,50
  162. ldir
  163. ld de,(iMathPtr5)
  164. ld hl,-12
  165. add hl,de
  166. ld (iMathPtr5),hl
  167. ld iy,0056h-25h
  168. ld a,50
  169. ld (pagedCount),a
  170. ld a,8
  171. ld (arcInfo),a
  172. jp (ix)
  173.  
  174.  
  175. returnPoint:
  176. ld iy,flags
  177. ld hl,(iMathPtr5)
  178. ld de,12
  179. add hl,de
  180. ld sp,hl
  181. ex de,hl
  182. ld hl,9A00h
  183. ld bc,50
  184. ldir
  185.  
  186. pop af
  187. out ($06), a
  188.  
  189.  
  190.  
  191. ld a, %00000111
  192. out ($05), a
  193.  
  194. ret
  195.  
  196. BaBBBBBBB:
  197.  
  198. .dw DcDDDDDDD - CdCCCCCCC
  199. .db %11101110
  200. .db $00,00
  201. .db %00000001
  202. .db 0
  203. .org 0000
  204. CdCCCCCCC:
  205.  
  206. FindRoutine:
  207.  
  208. ld a, $1F
  209. out ($06), a
  210.  
  211.  
  212.  
  213. ld hl, $4000
  214. _
  215.  
  216.  
  217. ld a, $ed
  218. cpir
  219.  
  220. ld a, $56
  221. cpi
  222. jr nz, -_
  223. ld a, $f3
  224. cpi
  225. jr nz, -_
  226. ld a, $d3
  227. cpi
  228. jr nz, -_
  229. ld a, $16
  230. cpi
  231. jr nz, -_
  232. ld a, $f3
  233. cpi
  234. jr nz, -_
  235. ld a, $c9
  236. cpi
  237. jr nz, -_
  238. ld de, -7
  239. add hl, de
  240. ret
  241.  
  242. DcDDDDDDD:
  243.  
  244. .dw Wrap_It_Up_Code_End - End_Program
  245. .db %11101110
  246. .db $7E, $09
  247. .db %00000000
  248. .db 0
  249.  
  250.  
  251.  
  252. .org 0000
  253.  
  254. End_Program:
  255.  
  256.  
  257. Wrap_It_Up:
  258.  
  259. di
  260. in a, ($02)
  261. rla
  262.  
  263.  
  264.  
  265. jp c, End_Is15MhzCalculator
  266.  
  267.  
  268. End_Is6MhzCalculator:
  269.  
  270. call sub_Axiom2
  271. add a, a
  272. ld hl, SixMhzCleanUp
  273. ld de, tempswaparea
  274. add a, a
  275. ld bc, SixMhzCleanUpEnd - SixMhzCleanUp
  276. ldir
  277. jp tempswaparea
  278.  
  279.  
  280.  
  281. SixMhzCleanup:
  282.  
  283.  
  284. in a, ($06)
  285. push af
  286.  
  287.  
  288.  
  289. call sub_Axiom3
  290.  
  291. ;Lock RAM page 0.
  292.  
  293. ld a, 1
  294. ld a, a
  295. ld de, $ + 5
  296. push de
  297.  
  298. jp (hl)
  299.  
  300.  
  301. End_AfterExploit:
  302.  
  303. B_CALL $4F3C
  304.  
  305. pop af
  306. out ($06), a
  307.  
  308. ei
  309. ret
  310.  
  311.  
  312.  
  313. SixMhzCleanUpEnd:
  314.  
  315.  
  316. End_Is15MhzCalculator:
  317.  
  318.  
  319.  
  320. in a, ($06)
  321.  
  322.  
  323. push af
  324.  
  325. ld a, $80
  326. out ($06), a
  327.  
  328.  
  329. ld a, a
  330. ld hl, Wrap_It_Up_Up
  331. ld a, a
  332. ld de, tempswaparea
  333. ld a, a
  334. ld bc, Wrap_It_Up_Code_End - Wrap_It_Up_Code
  335. ldir
  336.  
  337. jp tempswaparea
  338.  
  339. Wrap_It_Up_Up:
  340.  
  341. Wrap_It_Up_Code:
  342.  
  343. SwapBytes2:
  344.  
  345.  
  346. ld hl,$4000
  347. ld de,$C000
  348. ld b,h
  349. ld c,l
  350.  
  351. SwapBytesLoop2:
  352.  
  353. ld a,(de)
  354. ldi
  355. dec hl
  356. ld (hl),a
  357. inc hl
  358. jp pe,SwapBytesLoop
  359. xor a
  360.  
  361. out ($05), a
  362.  
  363. pop af
  364. out ($06), a
  365.  
  366. EndTwo:
  367. ei
  368. ret ;If the user did everything correctly, this
  369. ;will completely end the ASM program.
  370.  
  371. Wrap_It_Up_Code_End
  372.  
  373.  
  374. .dw 0000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement