This commit is contained in:
Anatoliy Belyanskiy 2023-09-10 06:01:32 +10:00
parent bc3397d204
commit 8ecbdfa4fe
4 changed files with 112 additions and 159 deletions

@ -1 +1 @@
Subproject commit 90f4b54edb1effbd0b57b0ee64771d27e84023ff Subproject commit 6c92964be4fbbbec546d52ad6e2b51fd596d8a02

View File

@ -162,10 +162,10 @@ CL1 EQU 240
SET_PAL_IBM: SET_PAL_IBM:
LD DE,#8000 LD DE,#8000
JR SET_PAL_ JR SET_PAL_TXT
SET_PAL_ZX: SET_PAL_ZX:
LD DE,0 LD DE,0
SET_PAL_: SET_PAL_TXT:
PUSH IX PUSH IX
IN A,(RGADR) IN A,(RGADR)
PUSH AF PUSH AF
@ -175,22 +175,23 @@ SET_PAL_:
OUT (SLOT3),A OUT (SLOT3),A
LD IX,#C3F0 ; !HARDCODE  ¤à¥á ¯ «¨âàë? LD IX,#C3F0 ; !HARDCODE  ¤à¥á ¯ «¨âàë?
SET_PAL_ZX1: .generate_loop:
CALL GENERATE_PAL1 CALL GENERATE_PAL1
LD A,E LD A,E
OUT (RGADR),A OUT (RGADR),A
LD (IX),L LD (IX),L ; R
LD (IX+1),B LD (IX+1),B ; G
LD (IX+2),C LD (IX+2),C ; B
LD (IX+3),H LD (IX+3),H ; i ?
INC E INC E
JR NZ,SET_PAL_ZX1 JR NZ,.generate_loop
;
LD BC,4 LD BC,4
ADD IX,BC ADD IX,BC
INC D INC D
LD A,D LD A,D
AND 3 AND 3
JR NZ,SET_PAL_ZX1 JR NZ,.generate_loop
EX AF,AF' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
@ -200,155 +201,126 @@ SET_PAL_ZX1:
RET RET
; £¥­¥à æ¨ï ᯥªâà㬮¢áª®© ¯ «¨âàë. ; £¥­¥à æ¨ï ᯥªâà㬮¢áª®© ¯ «¨âàë.
; E -  âਡãâ, D - ­®¬¥à PAL ; ‚室: E -  âਡãâ, D - ­®¬¥à ¯ «¨âàë
; ‚›•Ž„ - C - BLUE, L - RED, B - GREEN, H - INTENSITY ; ‚›•Ž„: L - red, B - green, C - blue, H - intensity
GENERATE_PAL1: GENERATE_PAL1: XOR A
XOR A LD C,A
LD C,A LD B,A
LD B,A LD L,A
LD L,A BIT 7,D
JR NZ,GENERATE_IBM
BIT 7,D BIT 1,D
JR NZ,GENERATE_IBM JR NZ,.FLH
.NOF: BIT 0,D
BIT 1,D JR Z,.PAPER
JR NZ,GEM_PAL_FLH ;!FIXIT ¯®å®¤ã ­¨ª®£¤  ­¥ ¢ë§ë¢ ¥âáï .INK: LD A,CL0
GEM_PAL_NOF: BIT 6,E
BIT 0,D JR Z,.NOI1
JR Z,GEN_PAL_PAP LD A,CL1
.NOI1: BIT 0,E ; BLUE
GEN_PAL_INK: JR Z,.NO1
LD A,CL0 LD C,A
BIT 6,E .NO1: BIT 1,E ; RED
JR Z,GEN_PAL_NOI1 JR Z,.PP_NO2
LD A,CL1 LD L,A
GEN_PAL_NOI1: .PP_NO2: BIT 2,E ; GREEN
BIT 0,E ; BLUE JR Z,.PP_NO3
JR Z,GEN_PP_NO1 LD B,A
LD C,A .PP_NO3: JR .PP_NO6
GEN_PP_NO1:
BIT 1,E ; RED
JR Z,GEN_PP_NO2
LD L,A
GEN_PP_NO2:
BIT 2,E ; GREEN
JR Z,GEN_PP_NO3
LD B,A
GEN_PP_NO3:
JR GEN_PP_NO6
; ;
; .FLH: BIT 7,E
GEM_PAL_FLH: JR Z,.NOF
BIT 7,E BIT 0,D
JR Z,GEM_PAL_NOF JR Z,.INK
BIT 0,D .PAPER: LD A,CL0
JR Z,GEN_PAL_INK BIT 6,E
JR Z,.NOI2
GEN_PAL_PAP: LD A,CL1
LD A,CL0 .NOI2: BIT 3,E ; BLUE
BIT 6,E JR Z,.PP_NO4
JR Z,GEN_PAL_NOI2 LD C,A
LD A,CL1 .PP_NO4: BIT 4,E ; RED
GEN_PAL_NOI2: JR Z,.PP_NO5
BIT 3,E ; BLUE LD L,A
JR Z,GEN_PP_NO4 .PP_NO5: BIT 5,E ; GREEN
LD C,A JR Z,.PP_NO6
GEN_PP_NO4: LD B,A
BIT 4,E ; RED .PP_NO6: LD A,C
JR Z,GEN_PP_NO5 AND A
LD L,A RRA
GEN_PP_NO5: ADD A,L
BIT 5,E ; GREEN RRA
JR Z,GEN_PP_NO6 ADD A,B
LD B,A RRA
GEN_PP_NO6: LD H,A ; B/W mode
RET
LD A,C
AND A
RRA
ADD A,L
RRA
ADD A,B
RRA
LD H,A ; B/W mode
RET
;**************************************** ;****************************************
GENERATE_IBM: GENERATE_IBM:
BIT 7,E BIT 7,E
JR Z,GEN_IBM_NO_FLH JR Z,.NO_FLH
BIT 1,D BIT 1,D
JR Z,GEN_IBM_PAPER JR Z,.PAPER
.NO_FLH:
GEN_IBM_NO_FLH:
BIT 0,D BIT 0,D
JR Z,GEN_IBM_PAPER JR Z,.PAPER
.INK:
GEN_IBM_INK: .NO_INTENS:
LD A,#A8
GEN_NO_INTENS: .INTENS:
LD A,0A8h
GEN_INTENS:
BIT 0,E ; BLUE BIT 0,E ; BLUE
JR Z,GEN_PPI_NO4 JR Z,.PPI_NO4
LD C,A LD C,A
GEN_PPI_NO4: .PPI_NO4:
BIT 2,E ; RED BIT 2,E ; RED
JR Z,GEN_PPI_NO5 JR Z,.PPI_NO5
LD L,A LD L,A
GEN_PPI_NO5: .PPI_NO5:
BIT 1,E ; GREEN BIT 1,E ; GREEN
JR Z,GEN_PPI_NO6 JR Z,.PPI_NO6
LD B,A LD B,A
GEN_PPI_NO6: .PPI_NO6:
LD A,E LD A,E
AND 0Fh AND #0F
CP 6 CP 6
JR NZ,no_correct JR NZ,.no_correct
LD B,54h LD B,#54
no_correct: .no_correct:
BIT 3,E BIT 3,E
JR Z,GEN_PP_NO6 JR Z,GENERATE_PAL1.PP_NO6
LD A,54h LD A,#54
ADD A,C ADD A,C
LD C,A LD C,A
LD A,54h LD A,#54
ADD A,B ADD A,B
LD B,A LD B,A
LD A,54h LD A,#54
ADD A,L ADD A,L
LD L,A LD L,A
JR GENERATE_PAL1.PP_NO6
JR GEN_PP_NO6 .PAPER:
LD A,#A8
GEN_IBM_PAPER:
LD A,0A8h
BIT 4,E ; BLUE BIT 4,E ; BLUE
JR Z,GEN_PPI_NO4X JR Z,.PPI_NO4X
LD C,A LD C,A
GEN_PPI_NO4X: .PPI_NO4X:
BIT 6,E ; RED BIT 6,E ; RED
JR Z,GEN_PPI_NO5X JR Z,.PPI_NO5X
LD L,A LD L,A
GEN_PPI_NO5X: .PPI_NO5X:
BIT 5,E ; GREEN BIT 5,E ; GREEN
JR Z,GEN_PPI_NO6X JR Z,.PPI_NO6X
LD B,A LD B,A
GEN_PPI_NO6X: .PPI_NO6X:
LD A,E LD A,E
AND 070h AND #70
CP 60h CP #60
JR NZ,no_correct2 JR NZ,GENERATE_PAL1.PP_NO6
LD B,54h LD B,#54
no_correct2: JR GENERATE_PAL1.PP_NO6
JR GEN_PP_NO6
;**************************************** ;****************************************
;**************************************** ;****************************************
;**************************************** ;****************************************
@ -364,7 +336,7 @@ SET_PAL_GRAF:
OUT (SLOT3),A OUT (SLOT3),A
LD IX,0C3E0H LD IX,#C3E0
LD A,D LD A,D
AND 3 AND 3
ADD A,A ADD A,A

View File

@ -259,20 +259,6 @@ PIC_SET_PAL:
RET RET
PIC_GET_PAL: PIC_GET_PAL:
; ADD A,A
; AND #1C
; XOR #E0 ; ¬« ¤è¨© ¡ ©â  ¤à¥á  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
; 横« ç⥭¨ï 梥⮢ ¯ «¨âàë ; 横« ç⥭¨ï 梥⮢ ¯ «¨âàë
.loopPal: .loopPal:
LD A,(IX+2) LD A,(IX+2)
@ -297,13 +283,6 @@ PIC_GET_PAL:
DJNZ .loopPal ; ¢ë¯®«­ïâì, ¯®ª  ­¥ 0 DJNZ .loopPal ; ¢ë¯®«­ïâì, ¯®ª  ­¥ 0
JR PIC_SET_PAL.exit JR PIC_SET_PAL.exit
; OUT (C),E ; ¢®ááâ ­®¢¨âì áâà ­¨æã 3
; POP AF
; OUT (RGADR),A ; ¢®ááâ ­®¢¨âì Y_PORT
; POP IX
; AND A
; RET
;******************************************************************** ;********************************************************************
PIC_FN5: ; “<E28099>ŽŠ€ <E28098><EFBFBD>ˆ MODE PIC_FN5: ; “<E28099>ŽŠ€ <E28098><EFBFBD>ˆ MODE
@ -312,6 +291,7 @@ PIC_FN5: ;
OUT (RGMOD),A OUT (RGMOD),A
RET RET
;******************************************************************* ;*******************************************************************
; <20>ст ­ЎЂЊ  Ђ­утрЅ­­ЅЉ Џ ЋЈтры
; A - page_pal, E - ­®¬¥à ¯ «¨âàë, B - ⨯ ¯ «¨âàë ; A - page_pal, E - ­®¬¥à ¯ «¨âàë, B - ⨯ ¯ «¨âàë
PIC_FN6: PIC_FN6:
LD D,A LD D,A

View File

@ -554,24 +554,25 @@ SETPAL4:
LD HL,COLORS.CGA.PALETTE LD HL,COLORS.CGA.PALETTE
LD DE,memBUFFER.Shared LD DE,memBUFFER.Shared
LD C,#08 LD C,#08
DCR0:
LD B,#10 DCR0: LD B,#10 ;!HARDCODE number of colors in CGA pallete
DCR1:
PUSH BC
PUSH HL PUSH HL
;
DCR1: POP HL
PUSH HL
PUSH BC
LDI LDI
LDI LDI
LDI LDI
LDI LDI
POP HL
POP BC POP BC
DJNZ DCR1 DJNZ DCR1
INC HL ;
INC HL INC SP
INC HL INC SP
INC HL
DEC C DEC C
JR NZ,DCR0 JR NZ,DCR0
LD HL,memBUFFER.Shared LD HL,memBUFFER.Shared
LD BC,512 LD BC,512
LDIR LDIR