1 ;
--------------------------------------------------------------------------
4 ; Copyright
(C
) 2011, Maarten Brock
, 2015-2021 Philipp Klaus Krause
6 ; This library is free software; you can redistribute it
and/or modify it
7 ; under the terms of the GNU General Public License as published by the
8 ; Free Software Foundation; either version
2, or (at your option
) any
11 ; This library is distributed in the hope that it will
be useful
,
12 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ; MERCHANTABILITY
or FITNESS FOR
A PARTICULAR PURPOSE. See the
14 ; GNU General Public License for more details.
16 ; You should have received
a copy of the GNU General Public License
17 ; along with this library; see the file COPYING. If
not, write to the
18 ; Free Software Foundation
, 51 Franklin Street
, Fifth Floor
, Boston
,
21 ; As
a special exception
, if you link this library with other files
,
22 ; some of which are compiled with SDCC
, to produce an executable
,
23 ; this library does
not by itself cause the resulting executable to
24 ;
be covered by the GNU General Public License. This exception does
25 ;
not however invalidate any other reasons why the executable file
26 ; might
be covered by the GNU General Public License.
27 ;
--------------------------------------------------------------------------
29 ; This file contains generic trampolines for banked function calls.
30 ; They are
not complete. Programmer must provide set_bank
and get_bank
31 ; routines.
Or rewrite whole code completely.
36 .globl ___sdcc_bcall_abc
37 .globl ___sdcc_bcall_ehl
39 ; trampoline to call banked functions
40 ; used when legacy banking is enabled only
57 ; trampoline to call banked functions with __z88dk_fastcall calling convention
59 ;
ld a, #<function_bank>
61 ; call ___sdcc_bcall_abc
66 call get_bank ;must return
A as current bank number
, other registers expected to
be unchanged
71 call ___sdcc_bjump_abc
77 call set_bank ;set current bank to
A, other registers expected to
be unchanged
81 ; default trampoline to call banked functions
83 ;
ld e
, #<function_bank>
85 ; call ___sdcc_bcall_ehl
91 call ___sdcc_bjump_ehl