36 lines
546 B
NASM
36 lines
546 B
NASM
;;rotasciiencrypt
|
|
;;Encrypts a string in rot-x (uses $00 to $EF)
|
|
;;Inputs:
|
|
;; HL: string pointer
|
|
;; A: x
|
|
;;Notes:
|
|
;; Changes string in place.
|
|
rotasciiencrypt:
|
|
push hl
|
|
push bc
|
|
ld c, 0
|
|
ld c, a
|
|
rotasciiencryptLoop:
|
|
ld a, (hl)
|
|
cp 0
|
|
jr z, rotasciiencryptEnd
|
|
add a, c
|
|
cp 0
|
|
jr nz, rotasciiencryptLd
|
|
inc a
|
|
rotasciiencryptLd:
|
|
ld (hl), a
|
|
inc hl
|
|
cp a, $EF
|
|
jr c, rotasciiencryptLoop
|
|
dec hl
|
|
sub a, $0F
|
|
ld (hl), a
|
|
inc hl
|
|
jr rotasciiencryptLoop
|
|
rotasciiencryptEnd:
|
|
ld (hl), $00
|
|
pop bc
|
|
pop hl
|
|
ret
|
|
|