fsh-shell/includes/lib/crypto/rot.asm

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