Files
open-roms/src/basic/,basic_aliases.s
T

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