; »»»»»»»»»»»»»»»»»»»»»»»»»» Virus Install by Jimmy Conner «««««««««««««««««««««««««««««««« ;__________________________________________________________________________________________ ; This is a simple little program to show you how to create and delete programs. ; It creates two programs called VIRUS and ZVIRUS. In VIRUS it puts Send(9prgmZVIRUS. ; In ZVIRUS it puts a neat little virus I made into it. It then deletes the original ; install programs INSTALL and ZINSTALL. This source should be easily modifiable to ; fit the program you want to install. I hope this helps someone at least a little. ; _________________________________________________________________________________________ ; ; You may use this program however a little gratitude to me would be ; gladly welcomed. Any and all questions should be sent to me. I will try to ; help out as much as possible but I certainly don't know everything. Thanks, ; ; Jimmy Conner ; ; --- TIMagic Software --- ; ; »»» TIMagic@Yahoo.com ««« ; ; http://www.angelfire.com/tx/timagic/ ; .NOLIST #define equ .equ #define EQU .equ #define end .end #include "ti83asm.inc" #include "tokens.inc" .LIST _createprog .equ 448Ah PROGOBJ .equ 05h .org 9327h call _runIndicOff ; Turns Runindicator off call _grbufclr ; Clear graph buffer call _ClrScrnFull ; Clears the Screeen call _HomeUp ; Goto the top set textInverse, (IY+textflags) ; Sets the text inverse ld hl, txtTitle ; Load the Title call _puts ; Put it on the screen res textInverse, (IY+textflags) ; Reset the text inverse ld hl, 0A14h ; Load the penrow/pencol ld (pencol), hl ; Put them ld hl, txtAuthor ; Load the Author text call _vputs ; Put it on the screen ld hl, 201Ch ; Load the penrow/pencol ld (pencol), hl ; Put them ld hl, txtExit ; Load the Exit text call _vputs ; Put it on the screen ld hl, 3018h ; Load the penrow/pencol ld (pencol), hl ; Put them ld hl, txtEnter ; Load the Enter text call _vputs ; Put it on the screen gtkey: ld a, 0ffh ; Reset keyport out (1), a ; Necessary code ld a, 0fdh ; Enable row with clear out (1), a ; Necessary code in a, (1) ; Get # of any key pressed->a cp 191 ; Is it Clear?? jp z, exit ; If so then exit ld a, 0ffh ; Reset keyport out (1), a ; Necessary code ld a, 0bfh ; Enable row with clear out (1), a ; Necessary code in a, (1) ; Get # of any key pressed->a cp 223 ; Is it 2nd??? jp z, install ; If so then start the Install jp gtkey ; If nothing or a wrong key go back install: call _zerooop1 ; Clear Op1 ld hl, progname ; Name of the run program ld de, op1 ; Copy it to Op1 ld bc, 7 ; 6 chars in name + 1 ldir ; Do the copying call _chkfindsym ; Look it up call nc, _delvar ; If it is there delete it (to keep things clean) ld hl, 145 ; Length of program (in bytes) call _createprog ; Create it inc de ; Skip 1st length byte inc de ; Skip 2nd length byte ld hl, prog ; Program data ld bc, 145 ; Program data length ldir ; Copy data installrunprogram: call _zerooop1 ; Clear Op1 ld hl, runprogram ; Name of the asm program to run ld de, op1 ; Copy it to Op1 ld bc, 6 ; 5 chars in name + 1 ldir ; Do the copying call _chkfindsym ; Look it up call nc, _delvar ; If it is there delete it (to keep things clean) ld hl, 9 ; Length of program (in bytes) call _createprog ; Create it inc de ; Skip 1st length byte inc de ; Skip 2nd length byte ld hl, runprog ; Program data ld bc, 9 ; Program data length ldir ; Copy data delinstall: call _zerooop1 ; Clear Op1 ld hl, delprogram ; Name of the install run program ld de, op1 ; Copy it to Op1 ld bc, 8 ; 7 chars in name + 1 ldir ; Do the copying call _chkfindsym ; Look it up call _delvar ; If it is there delete it call _zerooop1 ; Clear Op1 ld hl, delprogram2 ; Name of the ASM install program ld de, op1 ; Copy it to op1 ld bc, 9 ; 8 chars in name + 1 ldir ; Do the copying call _chkfindsym ; Look it up call _delvar ; If it is there delete it call _ClrScrnFull ; Clear the screen call _HomeUp ; Goto the Top ld hl, txtDone ; Load the Done text call _puts ; Put it on the screen ret ; All done! exit: call _grbufclr ; Clear graph buffer call _ClrScrnFull ; Clear the screen ret ; All Done delprogram: .db PROGOBJ,"INSTALL",0 ; object type prog, name, 0 terminator delprogram2: .db PROGOBJ,"ZINSTALL",0 ; object type prog, name, 0 terminator runprogram: .db PROGOBJ,"VIRUS",0 ; object type prog, name, 0 terminator progname: .db PROGOBJ,"ZVIRUS",0 ; object type prog, name, 0 terminator runprog: .db tSENDMBL,"9",tprog,"ZVIRUS" ; Run Program Data Send(9prgmZVIRUS prog: ; Program Data .db "3E5FD310CD5547210000220C80213B9" ; Maximum of 31 per line .db "3CD0D47C9596F752068617665206265" .db "656E202020696E66656374656420776" .db "97468202020746865204A696D6D7920" .db "566972757321" ; End Actual Program Data ; You shouldn't have to delete this next line .db tEnter,tEnd,tColon,"0000",tColon,tEnd ; END:0000:END ;;;;;Messages;;;;; txtTitle .byte " Virus Install ",0 txtAuthor .byte " By Jimmy Conner",0 txtExit .byte "Clear to exit",0 txtEnter .byte "2nd to Continue",0 txtDone .byte "Install Complete",0 .end END ; ; A hint for when modifying this program. Make sure the name that it puts in the ; Run program is the same as the program you want it to run. ;-] ; Have fun!!! ; ; Jimmy Conner ; ; »»» TIMagic@Yahoo.com ««« ; ; TI-82 / TI-83 Page ; ; http://www.angelfire.com/tx/timagic/ ;