PIC_GET_PAL optimized and documented
This commit is contained in:
		
							parent
							
								
									32b684103d
								
							
						
					
					
						commit
						bc3397d204
					
				| @ -1 +1 @@ | ||||
| Subproject commit 9a65a386bfb6aaccc7fb476a3e159a684af65743 | ||||
| Subproject commit 90f4b54edb1effbd0b57b0ee64771d27e84023ff | ||||
| @ -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 | ||||
| ; | ||||
|  | ||||
| @ -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' | ||||
| ; | ||||
| @ -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.
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Anatoliy Belyanskiy
						Anatoliy Belyanskiy