A86: DOWN+LEFT patch


[Prev][Next][Index][Thread]

A86: DOWN+LEFT patch



here is a patch, it works, lets you turn calc off, etc. it has been
hibernating on my hard drive, i forgot to post it. ignore the part about
it fixing the battery message, it only does that some if any of the
time. Bryan, post this and the source (both attached). description "DOWN
+ LEFT Patch 1.0", just like that (please)

oh, and this won't work w/ SQRXZ because it uses IM 2. sorry. you can
rewrite it to use a _alt_interrupt_exec instead, it shouldn't be TOO
much slower. get rid of the "ex af,af'" and change all the "jp $0039" to
"ret"

-- 

=====================================
=                                   =
=   Kirk Meyer (mailto:_@ibm.net)   =
= http://www.bigfoot.com/~kirkmeyer =
=                                   =
=   "Set your affection on things   =
=    above, not on things on the    =
=      earth."  Colossians 3:2      =
=                                   =
=====================================
**TI86**
TI-86 asm program store in prgm variable. TDpatchDBŽ(íV!ÔÔ6Óí°!i×ÓÓí°>ÔíGí^É:´Áþ8	þ 0íVÃ9ÛË_Ê9ˇÓÃ9|
;this fixes the DOWN+LEFT (and other key) bug as well as fixing the bug where
;if you hold down ENTER, etc. while turn it on up pops the battery message.
;(that's a terrible sentence that isn't one :) DRAWBACKS:
; * if a game uses IM 2, you will have to reinstall it
; * it uses the _ALT_SLINK and _ALT_ON areas of the RAM. this mean DO NOT
;   install a SLINK or ON hook while you have my bug fixer installed
; * if you go to the memory reset screen it will be disabled, just reinstall
;   it. this is so that the 86 doesn't lock if you reset the calc. in a
;   future version i'll fix it so it uninstalls if you push YES.
;
; version 1.0 by Kirk Meyer             _@ibm.net
; if you find any bugs, e-mail me. this version allows the calc to turn off.
; it should work on 1.1, 1.2, 1.3, ... but if it doesn't say so.

.org $D748      ;_asm_exec_ram

 im 1
 ld hl,$D400
 ld de,$D401
 ld bc,$0100
 ld (hl),$D3
 ldir
 ld hl,int_handler
 ld de,$D3D3
 ld bc,int_end-int_handler
 ldir
 ld a,$D4
 ld i,a
 im 2
 ret

int_handler:
 ex af,af'
 ld a,($C1B4)   ;_CXCURAPP
 cp $1D
 jr c,int_ok
 cp $20
 jr nc,int_ok
 im 1
 jp $0039
int_ok:
 in a,($03)
 bit 3,a
 jp z,$0039
 res 0,a
 out ($03),a
 jp $0039
int_end:

.end

Follow-Ups: