6 global bnk2log,bnk2phy,hwl2phy
12 ;----------------------------------------------------------------------
15 ; Common CAStart ... 0FFFF
16 ; Bank 0 00000 ... CAStart-1
20 ;----------------------------------------------------------------------
29 ;--------------------------------------------------------------------
30 ; Return the BBR value for the given bank number
37 ret z ; Bank 0 is at physical address 0
43 mlt bc ; bank size * bank number
45 add a,10h ; add bank0 + common
49 ;--------------------------------------------------------------
54 ;out ahl: Phys. (linear) Address
61 ;--------------------------------------------------------------
71 ; OP: ahl = (a<<12) + (h<<8) + l
73 ;out ahl: Phys. (linear) Address
89 ;--------------------------------------------------------------
94 ; OP: ahl = (bankbase<<12) + (d<<8) + e
96 ;out ahl: Phys. (linear) Address
103 or 00fh ; log. addr in common1?
107 in0 a,(cbr) ; yes, cbr is address base
110 ld b,16 ; log. address in baked area?
115 in0 a,(bbr) ; yes, bbr is address base
122 pop bc ; bank part is 0, no translation
126 ;====================================================================
130 ;--------------------------------------------------------------------
131 ; Return the BBR value for the given bank number
147 ld ix,bnktbl ;4 / 12 | 14
148 ld ($+3+2),a ;3 / 15 | 19
149 ld a,(ix+0) ;3 / 14 | 19
151 ret ;1 / 9 | 10 15 / 76|91
154 ld hl,bnktbl ;3 / 9 | 10
162 ret ;1 / 9 | 10 12 / 66|71
165 add a,low bnktbl ;2 / 6 | 7
168 adc a,high bnktbl ;2 / 6 | 7
172 ret ;1 / 9 | 10 11 / 61|67