; Copyright 1997 Acorn Computers Ltd ; ; Licensed under the Apache License, Version 2.0 (the "License"); ; you may not use this file except in compliance with the License. ; You may obtain a copy of the License at ; ; http://www.apache.org/licenses/LICENSE-2.0 ; ; Unless required by applicable law or agreed to in writing, software ; distributed under the License is distributed on an "AS IS" BASIS, ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ; See the License for the specific language governing permissions and ; limitations under the License. ; ; > s.copyFilter ;;---------------------------------------------------------------- ;; copy_filter_handler ;; ;; This is called by the Wimp when copying a rectangle ;; ;; Entry: ;; ;; R2-R5 - Destination bounding box. ;; R6-R9 - Source bounding box. ;; R10 - Window handle - 1 ;; ;; Exit: ;; ;; All other registers preserved. (Except R12!) ;; ;; All interested filters called. ;; ;; copy_filter_handler Push "r0-r2,r10,r11,LR" Rel r0,r10 LDR r1,copy_filters copy_filter_exit CMP r1,#0 [ No26bitCode Pull "r0-r2,r10,r11,PC",EQ ; End of list | Pull "r0-r2,r10,r11,PC",EQ,^ ; End of list ] LDR r14,[r1,#next_ptr] Push "r14" LDR r12,[r1,#f_R12] ; Set R12. MOV LR,PC LDR PC, [r1,#f_address] NOP Pull "r1" B copy_filter_exit LNK s.PostFilter