
;
; Aliases for memory locations for memory block copy routines
;

!addr memmove__src    = INDEX+2
!addr memmove__dst    = RESHO+0
!addr memmove__size   = RESHO+2
!addr memmove__tmp    = RESHO+4



;
; Helper aliases to make the code more readable
; Always use double underscore in label names
; to allow automatic VICE label conflict prevention
;

!addr __tokenise_work1 = $07 ; CHARAC
!addr __tokenise_work2 = $08 ; ENDCHR
!addr __tokenise_work3 = $0B ; COUNT
!addr __tokenise_work4 = $0F ; GARBFL
!addr __tokenise_work5 = $0C ; DIMFLG



;
; Aliases for the tokeniser - reuse the CPU stack
;

!addr tk__offset       = $100               ; offset into string
!addr tk__length       = __tokenise_work1   ; length of the raw string

!addr tk__len_unpacked = $101 ; length of unpacked data; it could replace 'tk__nibble_flag', but at the cost of code size/performance
!addr tk__shorten_bits = $102 ; 2 bytes for quick shortening of packed candidate
!addr tk__nibble_flag  = $104 ; $00 = start from new byte, $FF = start from high nibble
!addr tk__byte_offset  = $105 ; offset of the current byte (to place new data) in tk__packed

!addr tk__packed       = $106 ; packed candidate, 25 bytes is enough for worst case - a 16 byte keyword
