45 lines
1.3 KiB
ArmAsm
45 lines
1.3 KiB
ArmAsm
|
|
;
|
|
; 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
|
|
|
|
;
|
|
; Helper aliases for DOS Wedge under MONITOR
|
|
;
|
|
|
|
!addr __wedge_mon = $0A ; VERCKB
|
|
!addr __wedge_spstore = $09 ; TRMPOS
|
|
|
|
;
|
|
; 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
|