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

View File

@ -259,20 +259,6 @@ PIC_SET_PAL:
RET
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:
LD A,(IX+2)
@ -297,13 +283,6 @@ PIC_GET_PAL:
DJNZ .loopPal ; ¢ë¯®«­ïâì, ¯®ª  ­¥ 0
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
@ -312,6 +291,7 @@ PIC_FN5: ;
OUT (RGMOD),A
RET
;*******************************************************************
; <20>ст ­ЎЂЊ  Ђ­утрЅ­­ЅЉ Џ ЋЈтры
; A - page_pal, E - ­®¬¥à ¯ «¨âàë, B - ⨯ ¯ «¨âàë
PIC_FN6:
LD D,A

View File

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