home *** CD-ROM | disk | FTP | other *** search
- ROM_CALL2 macro
- move.l ($C8),a4
- add.l #\1*4,a4
- move.l (a4),a4
- endm
-
-
- include "os.h" ; fichier include pr les progs _nostub
- xdef _ti89
- xdef _ti92plus
- xdef _nostub
-
- main:
- move.w #$700,d0
- trap #1 ; ints off
- cmp.w #$102,$30 ; kernel version < 1.02 ? (ie DoorsOS beta 2 or another shell)
- blt \old_un ; -> \old uninstaller
- cmp.w #"DT",$32 ; is it DoorsOS beta2 ?
- bne \old_un ; no -> \old uninstaller
- ; else :
- move.w $48,-(a7) ; $48 : handle of the block where the kernel is stored
- ROM_CALL HeapFree ; free it
- addq.l #2,a7
- ROM_CALL2 EV_hook
- clr.l (a4) ; removes the hook
-
- bra \cont ; go on
- \old_un ; old way of uninstalling the kernel
- ROM_CALL2 $02F ; bidouille, bidouille...
- lea $10E(a4),a4
- move.l #$3fff4,(a4)
-
- \cont
- lea $212088,a0
- cmp.w #$40,$4
- ble \OK
- lea $412088,a0
- \OK ; -> a0 : address of the interrupt table
- lea $40000,a1 ; a1 = 0 mod $40000
- moveq.w #63,d0 ; 64 vectors to recover
- \int move.l (a0)+,(a1)+
- dbra d0,\int
-
- pea OK(pc) ; string
- ROM_CALL ST_helpMsg
- addq.l #4,a7
-
- rts
-
- OK dc.b "Uninstallation successful",0
-
-
- end
-