Ok, here's my version of Aura:
$03/D8B0 AD 97 26 LDA $2697 [$7E:2697] ;Load caster's Wisdom into A
$03/D8B3 A2 00 00 LDX #$0000 ;Load 0000 into X
$03/D8B6 C9 50 CMP #$50 ;Compare caster's Wisdom with 50(H), or 80(Dec)
$03/D8B8 90 02 BCC $02 [$D8BC] ;If it is less, skip the next op
$03/D8BA A9 50 LDA #$50 ;If it is 50 or more, load 50 into A
$03/D8BC C9 14 CMP #$14 ;Compare caster's Wisdom with 14(H), or 20(Dec)
$03/D8BE 90 06 BCC $06 [$D8C6] ;If it is less, skip ahead to 03/D8C6
$03/D8C0 E8 INX ;Increase X by 1
$03/D8C1 38 SEC
$03/D8C2 E9 0A SBC #$0A ;Subtract 0A, or 10(Dec), from A
$03/D8C4 80 F6 BRA $F6 [$D8BC] ;Loop back up to 03/D8BC
$03/D8C6 A9 01 LDA #$01 ;load 01 into A
$03/D8C8 E0 00 00 CPX #$0000 ;Compare X with 0000
$03/D8CB F0 05 BEQ $05 [$D8D2] ;if X is 0000 (first time around, this means caster's wisdom is less than 20), then skip ahead to 03/D8D2
$03/D8CD CA DEX ;Decrease X by 1
$03/D8CE 0A ASL A ;Multiply A by 2, or more appropriately here, shift the bits in A one spot to the left
$03/D8CF 1A INC A ;increase A by 1, or more appropriately here, set A's bit 0 to 1
$03/D8D0 80 F6 BRA $F6 [$D8C8] ;Loop back up to 03/D8C8
$03/D8D2 0D 1A 27 ORA $271A [$7E:271A] ;OR A with Target's "strong against" byte
$03/D8D5 8D 1A 27 STA $271A [$7E:271A] ;Store A in target's "strong against" byte
$03/D8D8 60 RTS It's shorter by 14 bytes.
Also, I used an OR to ensure any current "strong against" data won't be wiped out by the spell. That is, if the target character is already strong against machines, and the caster's Wisdom is only 30, the target will end up strong against Undead, Mages, Slimes and Machines.