From 2590cbc1ea89c40a1a8f10f80c94ef8b7d83b4a5 Mon Sep 17 00:00:00 2001 From: uniabis Date: Thu, 7 Apr 2022 12:51:12 +0900 Subject: [PATCH 1/4] EXB_RAM restore secondary slot(#75) --- source/kernel/bank1/mapinit.mac | 61 +++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/source/kernel/bank1/mapinit.mac b/source/kernel/bank1/mapinit.mac index 4df88569..5d03ff11 100644 --- a/source/kernel/bank1/mapinit.mac +++ b/source/kernel/bank1/mapinit.mac @@ -754,10 +754,23 @@ EXB_NEX: ; exx ex af,af' + ld hl,EXB_RAM ld de,($SECBUF##) ld bc,EXB_RAM_END-EXB_RAM ldir + + ld hl, +(EXB_SLOT_RESTORE+1)-EXB_RAM_END + add hl, de + ld c, l + ld b, h + + ld de, +(EXB_SLOT_BACKUP+1)-(EXB_SLOT_RESTORE+1) + add hl, de + ld (hl), c + inc hl + ld (hl), b + ex af,af' exx ld ix,($SECBUF##) @@ -787,8 +800,34 @@ EXB_LOOP: push bc push de push hl + + ld a, (ix) + add a, a + jr nc, EXB_SKIP_BACKUP + + rrca + and 3 + ld e, a + + ld hl, SLTTBL + ld d, 0 + add hl, de + ld a, (hl) + and 0Ch + or e + or 80h + jr EXB_SLOT_BACKUP + +EXB_SKIP_BACKUP: + xor a + +EXB_SLOT_BACKUP: + ld (EXB_SLOT_RESTORE + 1), a + + ld a,(ix) and 10001111b + ld h,40h call ENASLT ld hl,DV_EXTBIO## @@ -802,6 +841,28 @@ EXB_LOOP: pop af call CALDRV## + push af + +EXB_SLOT_RESTORE: + ld a, 00h + or a + jr z, EXB_SKIP_RESTORE + + push bc + push de + push hl + + ld h, 40h + call ENASLT + + pop hl + pop de + pop bc + +EXB_SKIP_RESTORE: + + pop af + pop iy pop ix exx From d8539516dd2889dbdffc743667b91515a847cf9c Mon Sep 17 00:00:00 2001 From: uniabis Date: Mon, 16 May 2022 09:56:36 +0900 Subject: [PATCH 2/4] Delete duplicated image. --- docs/img/gsg/Partitions2And4Active.PNG | Bin 5264 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/img/gsg/Partitions2And4Active.PNG diff --git a/docs/img/gsg/Partitions2And4Active.PNG b/docs/img/gsg/Partitions2And4Active.PNG deleted file mode 100644 index 7d0cb2ff8d0b11b2c53c161ee6626282fc2433a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5264 zcmbW5c{r5c-^WSF)|e(+VvMntVkEL<8-@%L60%K}WJ^g#jO;VABw>(UgF=>xvM;x7 zX1*xdE3%9&#h|{UDbMt~e$W5U_55+pxz73HT-W`%&inm&y>G&0Ym^ZG34RU^4j~J3 zJnY#gxK)6?aNfOwGUliqKDox;9QHM`GUDK+cp>bY+Tzc_W#N1kM*|vS=C)~$R4&&Yj!C4LsdN9wM<^Wn; z?id2XLqO8vjby>+JRkqRkHilnK-zLtkj|iue{39Rm?3Ye0B$nsxZEH8N(I{+S%RLr z-K)|$A6xp-T9=7k_lOf}V6k=-NB9ETLNa_?H~W`$zw4cP@EKbc>G69{U|JzR#ml5u z2G1OXJK^S{aLy3D-OJg&({j?`9(r?eAZyCM-?N@u=YRk6OVPWhw$+E(c_6wxtUozo z$J_e#$#V38KGxdfd;253iUQ5EE8T`ijSlutQ-4nT+CxDC4N*U(h7uF8iu6)br$19S zK0$Vhq8nHv1_L4A+spLG0(>y>fhU%PNZVVi55shiO>aI_S|_}KNWRS}aNYaQ{2sdBKK^NnE9o+2ok zAEZOs`FPg}_a(sz_s+DherXBzJ!HU}8GYc*+#ayWj`}gJa=`R0BBG?SmZ{kyUZo!+ zHmvAX0^l70f|``AZV$_LzvqxWcX#9s>&I*(Ykva;T(6g<+FXE9K?Zu%PA2J16OwjB zhOSt29BwxWkm1jgKn5yi=ek0O!<9Y%%-%>JB7-g}4Nt@AxxPNk0jSudDCv9xzRFMc za2cyCJ&h`JN*!!B)>^=TAfy7wwunz3!(6hXw@sfBm�RmD)l<-axtZj5qR2KSx@| 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 U^8F Date: Tue, 24 May 2022 15:47:01 +0900 Subject: [PATCH 3/4] Small optimization. --- source/kernel/bank1/mapinit.mac | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/source/kernel/bank1/mapinit.mac b/source/kernel/bank1/mapinit.mac index 5d03ff11..0938a231 100644 --- a/source/kernel/bank1/mapinit.mac +++ b/source/kernel/bank1/mapinit.mac @@ -755,26 +755,27 @@ EXB_NEX: exx ex af,af' - ld hl,EXB_RAM ld de,($SECBUF##) + push de + + ld hl,EXB_RAM ld bc,EXB_RAM_END-EXB_RAM ldir ld hl, +(EXB_SLOT_RESTORE+1)-EXB_RAM_END add hl, de - ld c, l - ld b, h + ex de, hl - ld de, +(EXB_SLOT_BACKUP+1)-(EXB_SLOT_RESTORE+1) + ld hl, +(EXB_SLOT_BACKUP+1)-(EXB_SLOT_RESTORE+1) add hl, de - ld (hl), c + ld (hl), e inc hl - ld (hl), b + ld (hl), d ex af,af' exx - ld ix,($SECBUF##) - jp (ix) + + ret ;--- From here is copied to RAM EXB_RAM: From 7989db468ae52041b94d2b03fb3c5bf1498cb060 Mon Sep 17 00:00:00 2001 From: uniabis Date: Mon, 20 Jun 2022 10:17:36 +0900 Subject: [PATCH 4/4] More optimization. --- source/kernel/bank1/mapinit.mac | 36 ++++++++++++++------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/source/kernel/bank1/mapinit.mac b/source/kernel/bank1/mapinit.mac index 0938a231..22d68ca2 100644 --- a/source/kernel/bank1/mapinit.mac +++ b/source/kernel/bank1/mapinit.mac @@ -802,31 +802,25 @@ EXB_LOOP: push de push hl - ld a, (ix) - add a, a - jr nc, EXB_SKIP_BACKUP + ld a,(ix) + ld d,a + and 80h + jr z,EXB_SLOT_BACKUP - rrca + ld a,d and 3 - ld e, a - - ld hl, SLTTBL - ld d, 0 - add hl, de - ld a, (hl) + ld e,a + ld hl,SLTTBL + add a,l + ld l,a + ld a,(hl) and 0Ch or e or 80h - jr EXB_SLOT_BACKUP - -EXB_SKIP_BACKUP: - xor a EXB_SLOT_BACKUP: - ld (EXB_SLOT_RESTORE + 1), a - - - ld a,(ix) + ld (EXB_SLOT_RESTORE+1),a + ld a,d and 10001111b ld h,40h @@ -845,15 +839,15 @@ EXB_SLOT_BACKUP: push af EXB_SLOT_RESTORE: - ld a, 00h + ld a,00h or a - jr z, EXB_SKIP_RESTORE + jr z,EXB_SKIP_RESTORE push bc push de push hl - ld h, 40h + ld h,40h call ENASLT pop hl