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

View File

@ -594,101 +594,5 @@ DCR01:
LDIR LDIR
RET RET
MODULE COLORS include 'shared_includes/constants/standart_colors.inc'
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
; ;

View File

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

Binary file not shown.