PIC_GET_PAL optimized and documented

This commit is contained in:
Anatoliy Belyanskiy 2023-09-10 00:21:44 +10:00
parent 32b684103d
commit bc3397d204
5 changed files with 87 additions and 187 deletions

@ -1 +1 @@
Subproject commit 9a65a386bfb6aaccc7fb476a3e159a684af65743
Subproject commit 90f4b54edb1effbd0b57b0ee64771d27e84023ff

View File

@ -183,101 +183,98 @@ PIC_FN3_NO:
RET
;**************************************************************************
;PIC_FN4:
; ¢å®¤: HL - ¤ ­­ë¥ ¯ «¨âàë RGB, E - ­ ç «ì­ë© 梥â
; D - ç¨á«® 梥⮢, B - PAL-mask, A - page PAL
;PIC_FN4:
PIC_SET_PAL:
PUSH IX
PUSH IX
EX AF,AF'
IN A,(RGADR)
PUSH AF ; á®åà ­¨âì ¯®«®¦¥­¨¥ RGADR
LD A,E
OUT (RGADR),A ; ­ ç «ì­ë© 梥⠢ ¯®àâ
LD A,D ; á®åà ­¨âì ç¨á«® 梥⮢
EX AF,AF' ; ¢¥à­ãâì áâà ­¨æã PAL
EX AF,AF'
IN A,(RGADR)
PUSH AF ; á®åà ­¨âì ¯®«®¦¥­¨¥ RGADR
LD A,E
OUT (RGADR),A ; ­ ç «ì­ë© 梥⠢ ¯®àâ
LD A,D ; á®åà ­¨âì ç¨á«® 梥⮢
EX AF,AF' ; ¢¥à­ãâì áâà ­¨æã PAL
BIT 7,H ; ¯à®¢¥à¨âì  ¤à¥á ¤ ­­ëå
LD C,SLOT3 ; ¥á«¨ ­¨¦¥ 8000h
LD D,0C3H ; â® £à ä.íªà ­ ­  áâà ­¨æ¥ 3
JR Z,PIC_FN4_NO_PAGE1
LD D,043H ; ¨­ ç¥
LD C,SLOT1 ; ­  áâà ­¨æ¥ 1
PIC_FN4_NO_PAGE1:
BIT 7,H ; ¯à®¢¥à¨âì  ¤à¥á ¤ ­­ëå
LD C,SLOT3 ; ¥á«¨ ­¨¦¥ 8000h
LD D,#C3 ; â® £à ä.íªà ­ ­  áâà ­¨æ¥ 3
JR Z,.NO_PAGE1
LD D,#43 ; ¨­ ç¥
LD C,SLOT1 ; ­  áâà ­¨æ¥ 1
.NO_PAGE1:
ADD A,A
PUSH AF
ADD A,A
JR C,PIC_PAL_READ
ADD A,A
AND #1C
XOR #E0 ; ¬« ¤è¨© ¡ ©â  ¤à¥á  PAL
LD E,A ; DE -  ¤à¥á ¢ ¢¨¤¥®-އ“
PUSH DE
POP IX ;  ¤à¥á ¯ «¨âàë
ADD A,A
AND 1CH
XOR 0E0H ; ¬« ¤è¨© ¡ ©â  ¤à¥á  PAL
LD E,A ; DE -  ¤à¥á ¢ ¢¨¤¥®-އ“
PUSH DE
POP IX ;  ¤à¥á ¯ «¨âàë
LD D,B ; ¬ áª  PAL
EX AF,AF' ; ¢¥à­ãâì ç¨á«® 梥⮢
LD B,A ; ç¨á«® 梥⮢
LD D,B ; ¬ áª  PAL
EX AF,AF' ; ¢¥à­ãâì ç¨á«® 梥⮢
LD B,A ; ç¨á«® 梥⮢
IN E,(C) ; á®åà ­¨âì áâà ­¨æã 3
LD A,#50 ; áâà ­¨æ  £à ä¨ç¥áª®£® RAM
OUT (C),A
IN E,(C) ; á®åà ­¨âì áâà ­¨æã 3
LD A,#50 ; áâà ­¨æ  £à ä¨ç¥áª®£® RAM
OUT (C),A
POP AF
JR C,PIC_GET_PAL
; 横« ãáâ ­®¢ª¨ 梥⮢ ¯ «¨âàë
.loopPal:
LD A,(HL) ; B
AND D
LD (IX+2),A
INC HL
PIC_FN4_L1: ; 横« ãáâ ­®¢ª¨ 梥⮢ ¯ «¨âàë
LD A,(HL) ; G
AND D
LD (IX+1),A
INC HL
LD A,(HL) ; B
AND D
LD (IX+2),A
INC HL
LD A,(HL) ; R
AND D
LD (IX+0),A
INC HL
LD A,(HL) ; G
AND D
LD (IX+1),A
INC HL
LD A,(HL) ; Y
AND D
LD (IX+3),A
INC HL
LD A,(HL) ; R
AND D
LD (IX+0),A
INC HL
LD A,(HL) ; Y
AND D
LD (IX+3),A
INC HL
IN A,(RGADR)
INC A
OUT (RGADR),A
DJNZ PIC_FN4_L1 ; ¢ë¯®«­ïâì, ¯®ª  ­¥ 0
OUT (C),E ; ¢®ááâ ­®¢¨âì áâà ­¨æã 3
IN A,(RGADR)
INC A
OUT (RGADR),A
DJNZ .loopPal ; ¢ë¯®«­ïâì, ¯®ª  ­¥ 0
.exit: OUT (C),E ; ¢®ááâ ­®¢¨âì áâà ­¨æã 3
POP AF
OUT (RGADR),A ; ¢®ááâ ­®¢¨âì Y_PORT
POP IX
AND A
RET
PIC_PAL_READ:
PIC_GET_PAL:
; ADD A,A
; AND #1C
; XOR #E0 ; ¬« ¤è¨© ¡ ©â  ¤à¥á  PAL
; LD E,A ; DE -  ¤à¥á ¢ ¢¨¤¥®-އ“
; PUSH DE
; POP IX ;  ¤à¥á ¯ «¨âàë
ADD A,A
AND 1CH
XOR 0E0H ; ¬« ¤è¨© ¡ ©â  ¤à¥á  PAL
LD E,A ; DE -  ¤à¥á ¢ ¢¨¤¥®-އ“
PUSH DE
POP IX ;  ¤à¥á ¯ «¨âàë
LD D,B ; ¬ áª  PAL
EX AF,AF' ; ¢¥à­ãâì ç¨á«® 梥⮢
LD B,A ; ç¨á«® 梥⮢
IN E,(C) ; á®åà ­¨âì áâà ­¨æã 3
LD A,#50 ; áâà ­¨æ  £à ä¨ç¥áª®£® RAM
OUT (C),A
PIC_FN4_L2: ; 横« ãáâ ­®¢ª¨ 梥⮢ ¯ «¨âàë
; LD D,B ; ¬ áª  PAL
; EX AF,AF' ; ¢¥à­ãâì ç¨á«® 梥⮢
; LD B,A ; ç¨á«® 梥⮢
; IN E,(C) ; á®åà ­¨âì áâà ­¨æã 3
; LD A,#50 ; áâà ­¨æ  £à ä¨ç¥áª®£® RAM
; OUT (C),A
; 横« ç⥭¨ï 梥⮢ ¯ «¨âàë
.loopPal:
LD A,(IX+2)
LD (HL),A ; B
INC HL
@ -297,16 +294,15 @@ PIC_FN4_L2: ; 横
IN A,(RGADR)
INC A
OUT (RGADR),A
DJNZ .loopPal ; ¢ë¯®«­ïâì, ¯®ª  ­¥ 0
DJNZ PIC_FN4_L2 ; ¢ë¯®«­ïâì, ¯®ª  ­¥ 0
OUT (C),E ; ¢®ááâ ­®¢¨âì áâà ­¨æã 3
POP AF
OUT (RGADR),A ; ¢®ááâ ­®¢¨âì Y_PORT
POP IX
AND A
RET
JR PIC_SET_PAL.exit
; OUT (C),E ; ¢®ááâ ­®¢¨âì áâà ­¨æã 3
; POP AF
; OUT (RGADR),A ; ¢®ááâ ­®¢¨âì Y_PORT
; POP IX
; AND A
; RET
;********************************************************************
@ -339,9 +335,9 @@ PIC_FN6:
; AND 3
; ADD A,A
; ADD A,A
; ADD A,0E0H
; ADD A,#E0
; LD L,A
; LD H,43H
; LD H,#43
; IN A,(SLOT1)
; PUSH AF
;

View File

@ -330,10 +330,10 @@ LOGOX: LD IX,win_descriptor.tab320x256
LD HL,memBUFFER.Shared
; A = 0
LD D,A ; SET DESKTOP PALETTE & CURSOR COLORS
LD E,A
LD B,def_pal_mask
CALL PIC_SET_PAL
LD D,A ; SET DESKTOP PALETTE & CURSOR COLORS
LD E,A
LD B,def_pal_mask
CALL PIC_SET_PAL
SAFE_PORTY
@ -594,101 +594,5 @@ DCR01:
LDIR
RET
MODULE COLORS
CGA:
; B G R _
.PALETTE: DB #00,#00,#00,#00 ; 0 BLACK
DB #A8,#00,#00,#00 ; 1 BLUE
DB #00,#A8,#00,#00 ; 2 GREEN
DB #A8,#A8,#00,#00 ; 3 CYAN
DB #00,#00,#A8,#00 ; 4 RED
DB #A8,#00,#A8,#00 ; 5 MAGENTA
DB #00,#54,#A8,#00 ; 6 BROWN
DB #A8,#A8,#A8,#00 ; 7 WHITE
DB #54,#54,#54,#00 ; 8 GRAY
DB #FC,#54,#54,#00 ; 9 BRIGHT BLUE
DB #54,#FC,#54,#00 ; 10 BRIGHT GREEN
DB #FC,#FC,#54,#00 ; 11 BRIGHT CYAN
DB #54,#54,#FC,#00 ; 12 BRIGHT RED
DB #FC,#54,#FC,#00 ; 13 BRIGHT MAGENTA
DB #54,#FC,#FC,#00 ; 14 YELLOW
DB #FC,#FC,#FC,#00 ; 15 WHITE
;
;
INC:
.BLACK EQU #00
.BLUE EQU #01
.GREEN EQU #02
.CYAN EQU #03
.RED EQU #04
.MAGENTA EQU #05
.BROWN EQU #06
.LGRAY EQU #07
.DGRAY EQU #08
.LBLUE EQU #09
.LGREEN EQU #0A
.LCYAN EQU #0B
.LRED EQU #0C
.LMAGENT EQU #0D
.YELLOW EQU #0E
.WHITE EQU #0F
PAPER:
.BLACK EQU 16*INC.BLACK
.BLUE EQU 16*INC.BLUE
.GREEN EQU 16*INC.GREEN
.CYAN EQU 16*INC.CYAN
.RED EQU 16*INC.RED
.MAGENTA EQU 16*INC.MAGENTA
.BROWN EQU 16*INC.BROWN
.LGRAY EQU 16*INC.LGRAY
.DGRAY EQU 16*INC.DGRAY
.LBLUE EQU 16*INC.LBLUE
.LGREEN EQU 16*INC.LGREEN
.LCYAN EQU 16*INC.LCYAN
.LRED EQU 16*INC.LRED
.LMAGENT EQU 16*INC.LMAGENT
.YELLOW EQU 16*INC.YELLOW
.WHITE EQU 16*INC.WHITE
FLASH EQU #80
/*
INC_COLOR:
.BLACK EQU #00
.BLUE EQU #01
.GREEN EQU #02
.CYAN EQU #03
.RED EQU #04
.MAGENTA EQU #05
.BROWN EQU #06
.LGRAY EQU #07
.DGRAY EQU #08
.LBLUE EQU #09
.LGREEN EQU #0A
.LCYAN EQU #0B
.LRED EQU #0C
.LMAGENT EQU #0D
.YELLOW EQU #0E
.WHITE EQU #0F
.FLASH EQU #80
PAPER_COLOR:
.BLACK EQU 16*COLORS.INC.BLACK
.BLUE EQU 16*COLORS.INC.BLUE
.GREEN EQU 16*COLORS.INC.GREEN
.CYAN EQU 16*COLORS.INC.CYAN
.RED EQU 16*COLORS.INC.RED
.MAGENTA EQU 16*COLORS.INC.MAGENTA
.BROWN EQU 16*COLORS.INC.BROWN
.LGRAY EQU 16*COLORS.INC.LGRAY
.DGRAY EQU 16*COLORS.INC.DGRAY
.LBLUE EQU 16*COLORS.INC.LBLUE
.LGREEN EQU 16*COLORS.INC.LGREEN
.LCYAN EQU 16*COLORS.INC.LCYAN
.LRED EQU 16*COLORS.INC.LRED
.LMAGENT EQU 16*COLORS.INC.LMAGENT
.YELLOW EQU 16*COLORS.INC.YELLOW
.WHITE EQU 16*COLORS.INC.WHITE
.FLASH EQU #80
*/
ENDMODULE
include 'shared_includes/constants/standart_colors.inc'
;

View File

@ -7,7 +7,7 @@
DEFINE NeedSafePort_Y 1 ; !!!!! ¥á«¨ 0, â® ¢ ०¨¬¥ sp-ᯥªâà㬠 ­¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà ­
DEFINE Pashalki 0 ;
DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp'
DEFINE StandartCGApallete 1 ; <20>®¤ª«îç âì ¯ «¨âàã ¨§ standart_colors.inc
; ‡ ¤¥à¦ª  ¢ ª ¤à å ¯®á«¥ ®âà¨á®¢ª¨ «®£®â¨¯  (0 = 256)

Binary file not shown.