Re: A83: protection


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

Re: A83: protection




Haven't you been reading the list?  I've been attempting to make a
Reverse-protection program for days!  I just suceeded yesterday due to
Joe, Pat, and Linus


On Thu, 20 Aug 1998 21:43:09 -0700 Ian Graf <ian_graf@geocities.com>
writes:
>
>god i hate geocities sooooooo much!!! i sent this message 2 days ago 
>but
>it never showed up on the list. and then today i got a message to day
>that said "warning could not send your message for the past 4 hours".
>and on another line it said
>"Will-Retry-Until: Mon, 24 Aug 1998 00:55:15 -0700 (PDT)". so, if this
>or any messages from me get posted again let me say sorry in advance.
>here is the original message:
>
>------------------------------------------------------------------------
>
>ok before anything else, lets get one thing straight. i thought you 
>all
>would be able to figure this one out by yourselves, but i guess not. i
>got the stuff you need. the first one protects a program. the second 
>one
>unprotects a program. the third is a combo, if the prog is protected 
>it
>unprotects is and visa-versa. the first two i wrote BY MYSELF about 2
>months ago, so don't try to pass it off as your work just give me due
>credit. the last one i just made now (i did not test it) so who knows 
>if
>it actually works. but it should.
>
>------------------------------------------------------------------------
>zprotect.z80:
>
>.NOLIST
>#define equ .equ
>#define EQU .equ
>#define end .end
>#include "ti83asm.inc"
>#include "tokens.inc"
>.LIST
>
>strngobj .equ 04h
>progobj .equ 05h
>protprogobj .equ 06h
>_errundefined .equ 467Bh
>_errsyntax .equ 466Ch
>_findsym .equ 442Eh
>
>.org 9327h
>
>     call _zerooop1       ; clear op1
>     ld a,tAns            ; load var name Ans into op1
>     ld (op1+1),a         ;
>     call _findsym        ; look up Ans
>     jp c,_errundefined   ; error if not found
>     and 1fh              ; mask off bits 0-4
>     cp strngobj          ; check if data is a string
>     jp nz,_errsyntax     ; if not error
>     ld hl,op1            ; object type program
>     ld (hl),progobj      ; object type into op1
>     inc hl               ; next byte
>     ld a,(de)            ; get size of name
>     ld c,a               ; size to bc
>     ld b,0               ;
>     inc de               ; skip 1st length byte of Ans
>     inc de               ; skip 2nd length byte of Ans
>     ex de,hl             ; exchange de and hl
>     ldir                 ; copy name to op1
>     call _chkfindsym     ; look up program
>     jp c,_errundefined   ; error if not found
>     ld (hl),protprogobj  ; make protected
>     ret
>
>.end
>END
>
>------------------------------------------------------------------------
>
>zunprote.z80:
>
>.NOLIST
>#define equ .equ
>#define EQU .equ
>#define end .end
>#include "ti83asm.inc"
>#include "tokens.inc"
>.LIST
>
>strngobj .equ 04h
>progobj .equ 05h
>_errundefined .equ 467Bh
>_errsyntax .equ 466Ch
>_findsym .equ 442Eh
>
>.org 9327h
>
>     call _zerooop1      ; clear op1
>     ld a,tAns           ; load var name Ans into op1
>     ld (op1+1),a        ;
>     call _findsym       ; look up
>     jp c,_errundefined  ; error if not found
>     and 1fh             ; mask off bits 0-4
>     cp strngobj         ; check if data is a string
>     jp nz,_errsyntax    ; if not error
>     ld hl,op1           ; object type program
>     ld (hl),progobj     ; object type into op1
>     inc hl              ; next byte
>     ld a,(de)           ; get size of name
>     ld c,a              ; size to bc
>     ld b,0              ;
>     inc de              ; skip 1st length byte of Ans
>     inc de              ; skip 2nd length byte of Ans
>     ex de,hl            ; exchange de and hl
>     ldir                ; copy name to op1
>     call _chkfindsym    ; look up program
>     jp c,_errundefined  ; error if not found
>     ld (hl),progobj     ; make unprotected
>     ret
>
>.end
>END
>
>------------------------------------------------------------------------
>
>zreverse.z80:
>
>.NOLIST
>#define equ .equ
>#define EQU .equ
>#define end .end
>#include "ti83asm.inc"
>#include "tokens.inc"
>.LIST
>
>strngobj .equ 04h
>progobj .equ 05h
>_errundefined .equ 467Bh
>_errsyntax .equ 466Ch
>_findsym .equ 442Eh
>
>.org 9327h
>
>     call _zerooop1      ; clear op1
>     ld a,tAns           ; load var name Ans into op1
>     ld (op1+1),a        ;
>     call _findsym       ; look up
>     jp c,_errundefined  ; error if not found
>     and 1fh             ; mask off bits 0-4
>     cp strngobj         ; check if data is a string
>     jp nz,_errsyntax    ; if not error
>     ld hl,op1           ; object type program
>     ld (hl),progobj     ; object type into op1
>     inc hl              ; next byte
>     ld a,(de)           ; get size of name
>     ld c,a              ; size to bc
>     ld b,0              ;
>     inc de              ; skip 1st length byte of Ans
>     inc de              ; skip 2nd length byte of Ans
>     ex de,hl            ; exchange de and hl
>     ldir                ; copy name to op1
>     call _chkfindsym    ; look up program
>     jp c,_errundefined  ; error if not found
>     ld a,(hl)           ; get type
>
>protect:
>
>     cp 5                ; is it unprotected? (5 = unprotected)
>     jr nz,unprotect     ; no then unprotect it
>     inc (hl)            ; yes then protect it
>     ret                 ; to protect change 5 to 6
>                         ; by incrementing (hl) you add 1 to 5
>                         ; making it 6, or protected
>
>unprotect:
>
>     dec (hl)            ; it isn't unprotected, so unprotect it
>     ret                 ; to unprotect change 6 to 5
>                         ; by decrementing (hl) you sub 1 from 6
>                         ; making it 5, or protected
>
>.end
>END
>

_____________________________________________________________________
You don't need to buy Internet access to use free Internet e-mail.
Get completely free e-mail from Juno at http://www.juno.com
Or call Juno at (800) 654-JUNO [654-5866]


References: