; Copyright 1996 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. ; ; Copyright (C) Acorn Computers Ltd., 1988 ; Note that the module header only needs to know that the ; size of the block has to be stored in its 1st word, with the ; 2 relocation offsets following immediately after. ^ 0 ; Offsets in global workspace blocksize # 4 libRelocation # 4 clientRelocation # 4 fixedwssize # 0 GBLS VBar VBar SETS "|" MACRO Entry $sym, $import, $sym2, $direct, $varargs, $directlocal LCLS temps temps SETS "$VBar":CC:"$sym":CC:"$VBar" EXPORT $temps $temps MOV pc, #0 MEND MACRO Entry2 $sym, $import, $sym2, $direct, $varargs, $directlocal, $alias LCLS temps LCLS temps1 temps SETS "$VBar":CC:"$sym":CC:"$VBar" temps1 SETS "$VBar":CC:"$alias":CC:"$VBar" EXPORT $temps EXPORT $temps1 $temps1 $temps MOV pc, #0 MEND MACRO $Label Variable $Size LCLA Tempa LCLS Temps [ "$Size"="" Tempa SETA 1 | Tempa SETA $Size ] Temps SETS VBar:CC:"_stub_$Label":CC:VBar KEEP $Temps ALIGN $Temps % &$Tempa*4 MEND MACRO $Label Alias $VariableName, $WordOffset LCLS Temps Temps SETS VBar:CC:"$Label":CC:VBar EXPORT $Temps $Temps * $VariableName + 4*$WordOffset MEND MACRO $Label ExportedVariable $Size LCLA Tempa LCLS Temps [ "$Size"="" Tempa SETA 1 | Tempa SETA $Size ] Temps SETS VBar:CC:"$Label":CC:VBar EXPORT $Temps ALIGN $Temps % &$Tempa*4 MEND MACRO $Label ExportedWord $Value LCLS Temps Temps SETS VBar:CC:"$Label":CC:VBar EXPORT $Temps ALIGN $Temps % 4 MEND MACRO $Label VariableByte $Size LCLA Tempa LCLS Temps [ "$Size"="" Tempa SETA 1 | Tempa SETA $Size ] Temps SETS VBar:CC:"_stub_$Label":CC:VBar KEEP $Temps $Temps % &$Tempa MEND MACRO $Label InitByte $Value $Label VariableByte 1 MEND MACRO $Label InitWord $Value $Label % 4 MEND END