mirror of
https://github.com/Tolik-Trek/Sprinter-BIOS.git
synced 2026-06-15 09:21:46 +03:00
656 lines
11 KiB
NASM
656 lines
11 KiB
NASM
|
||
def_pal_mask EQU #FF
|
||
PIC_SET_PAL_FF EQU def_pal_mask*256+BIOS.PIC_SET_PAL
|
||
|
||
;;
|
||
ScreenPOS:
|
||
.SUBNAME:
|
||
CALL LP_GET_PLACE
|
||
LD E,.SUBNAME.POS ;!HARDCODE autodetected hdd/cdrom info
|
||
JP LP_SET_PLACE
|
||
.SUBNAME.POS EQU 37
|
||
;
|
||
.CRLF: CALL LP_GET_PLACE
|
||
INC D
|
||
LD E,#00
|
||
JP LP_SET_PLACE
|
||
;;
|
||
|
||
|
||
|
||
IF BIG_ENDIAN_STR_PRINT = 2
|
||
PRINT_STR_BIG_ENDIAN:
|
||
LD A,(HL)
|
||
CP ' '
|
||
JR NZ,.PRINTDW
|
||
INC HL
|
||
LD A,(HL)
|
||
DEC HL
|
||
CP ' '
|
||
JR NZ,.PRINTDW
|
||
INC HL
|
||
INC HL
|
||
.no_space: DJNZ DWPRINT
|
||
RET
|
||
;
|
||
.PRINTDW: PUSH BC
|
||
LD E,(HL)
|
||
INC HL
|
||
LD A,(HL)
|
||
INC HL
|
||
CALL PRINT_CHAR
|
||
LD A,E
|
||
CALL PRINT_CHAR
|
||
POP BC
|
||
LD A,' '
|
||
CP E
|
||
JR Z,.no_space
|
||
DJNZ .PRINTDW
|
||
RET
|
||
|
||
ELSEIF BIG_ENDIAN_STR_PRINT = 0
|
||
PRINT_STR_BIG_ENDIAN:
|
||
PUSH HL
|
||
PUSH BC
|
||
LD D,H
|
||
LD E,L
|
||
INC HL
|
||
;
|
||
.loop_ch: LD A,(DE)
|
||
LDI
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
DJNZ .loop_ch
|
||
;
|
||
POP BC
|
||
POP HL
|
||
LD A,B
|
||
ADD A,B
|
||
LD B,A
|
||
;
|
||
.print_loop: CALL .no_space
|
||
RET Z
|
||
LD D,H
|
||
LD E,L
|
||
PUSH DE
|
||
PUSH BC
|
||
LD D,' '
|
||
CALL LP_PRINT_LINE6
|
||
POP BC
|
||
POP DE
|
||
PUSH HL
|
||
AND A
|
||
SBC HL,DE
|
||
LD A,B
|
||
SUB L
|
||
LD B,A
|
||
JR Z,.exit
|
||
LD A,' '
|
||
INC B
|
||
PUSH BC
|
||
CALL PRINT_CHAR
|
||
POP BC
|
||
POP HL
|
||
DJNZ .print_loop
|
||
RET
|
||
;
|
||
.no_space: LD A,(HL)
|
||
CP ' '
|
||
RET NZ
|
||
INC HL
|
||
DJNZ .no_space
|
||
RET
|
||
;
|
||
.exit: POP HL
|
||
RET
|
||
|
||
ELSEIF BIG_ENDIAN_STR_PRINT = 1
|
||
PRINT_STR_BIG_ENDIAN:
|
||
PUSH HL
|
||
PUSH BC
|
||
LD D,H
|
||
LD E,L
|
||
INC HL
|
||
;
|
||
.loop_ch: LD A,(DE)
|
||
LDI
|
||
LD (DE),A
|
||
INC HL
|
||
INC DE
|
||
DJNZ .loop_ch
|
||
;
|
||
POP BC
|
||
POP HL
|
||
LD A,B
|
||
ADD A,B
|
||
LD B,A
|
||
JP LP_PRINT_LINE2
|
||
ENDIF
|
||
|
||
|
||
|
||
PRINTA: LD E,A
|
||
JP LP_PRINT_ATR
|
||
;
|
||
PRINT_CHAR: LD B,1
|
||
JP LP_PRINT_SYM
|
||
;
|
||
|
||
;TPRINTZ: CALL LP_SET_PLACE
|
||
PRINTZ: LD B,0
|
||
LD D,B
|
||
JP LP_PRINT_LINE6
|
||
;
|
||
|
||
; HPRINTZ: LD B,0
|
||
; LD D,B
|
||
; LD E,COLORS.CGA.INK.WHITE
|
||
; JP LP_PRINT_LINE5
|
||
|
||
CPRINTZ: LD B,0
|
||
LD D,B
|
||
LD E,A
|
||
JP LP_PRINT_LINE5
|
||
;
|
||
|
||
IPRINT: LD D,0
|
||
.I: LD BC,10000
|
||
CALL PRINTDG
|
||
LD BC,1000
|
||
CALL PRINTDG
|
||
LD BC,100
|
||
CALL PRINTDG
|
||
LD BC,10
|
||
CALL PRINTDG
|
||
LD A,L
|
||
ADD A,#30
|
||
JP PRINT_CHAR
|
||
;HL - NUMBER
|
||
.Z: LD D,1
|
||
JR .I
|
||
|
||
PRINTDG:
|
||
LD A,#2F
|
||
PDG1: INC A
|
||
SBC HL,BC
|
||
JR NC,PDG1
|
||
ADD HL,BC
|
||
BIT 0,D
|
||
JR NZ,PDG2
|
||
CP #30
|
||
RET Z
|
||
SET 0,D
|
||
PDG2: PUSH BC
|
||
CALL PRINT_CHAR
|
||
POP BC
|
||
RET
|
||
|
||
; D - Y
|
||
; E - X
|
||
; H - CY
|
||
TLINEV:
|
||
;CALL ScreenPOS.LOCAT
|
||
CALL LP_SET_PLACE
|
||
LD A,(ElementsBuffer.UpCenter)
|
||
CALL PRSYM
|
||
DEC H
|
||
DEC H
|
||
|
||
.loop: INC D
|
||
;CALL ScreenPOS.LOCAT
|
||
CALL LP_SET_PLACE
|
||
LD A,(ElementsBuffer.VerticalLine)
|
||
CALL PRSYM
|
||
DEC H
|
||
JR NZ,.loop
|
||
|
||
INC D
|
||
;CALL ScreenPOS.LOCAT
|
||
CALL LP_SET_PLACE
|
||
LD A,(ElementsBuffer.DownCenter)
|
||
JP PRSYM
|
||
|
||
; D - Y
|
||
; E - X
|
||
; L - CX
|
||
TLINEH:
|
||
;CALL ScreenPOS.LOCAT
|
||
CALL LP_SET_PLACE
|
||
LD A,(ElementsBuffer.LeftCenter)
|
||
CALL PRSYM
|
||
DEC L
|
||
DEC L
|
||
LD A,(ElementsBuffer.HorizontalLine)
|
||
LD B,L
|
||
|
||
;CALL PRSYMB
|
||
CALL LP_PRINT_SYM
|
||
|
||
|
||
LD A,(ElementsBuffer.RightCenter)
|
||
JP PRSYM
|
||
|
||
; D - Y
|
||
; E - X
|
||
; B - CY
|
||
; C - CX
|
||
PBORDER: PUSH BC
|
||
LD A,C
|
||
DEC A
|
||
LD (.BSHI),A
|
||
DEC A
|
||
LD (.BHOR),A
|
||
LD (.BHOR2),A
|
||
CALL LP_SET_PLACE
|
||
LD A,(ElementsBuffer.UpLeft)
|
||
LD H,E
|
||
CALL PRSYM
|
||
LD A,(ElementsBuffer.HorizontalLine)
|
||
.BHOR+1: LD B,1
|
||
CALL LP_PRINT_SYM
|
||
|
||
LD A,(ElementsBuffer.UpRight)
|
||
CALL PRSYM
|
||
POP BC
|
||
DEC B
|
||
DEC B
|
||
INC D
|
||
LD E,H
|
||
|
||
.loop: PUSH BC
|
||
CALL LP_SET_PLACE
|
||
LD A,(ElementsBuffer.VerticalLine)
|
||
CALL PRSYM
|
||
LD A,H
|
||
.BSHI+1: ADD A,#00
|
||
LD E,A
|
||
CALL LP_SET_PLACE
|
||
LD A,(ElementsBuffer.VerticalLine)
|
||
CALL PRSYM
|
||
POP BC
|
||
LD E,H
|
||
INC D
|
||
DJNZ .loop
|
||
|
||
CALL LP_SET_PLACE
|
||
LD A,(ElementsBuffer.DownLeft)
|
||
CALL PRSYM
|
||
LD A,(ElementsBuffer.HorizontalLine)
|
||
.BHOR2+1: LD B,1
|
||
CALL LP_PRINT_SYM
|
||
LD A,(ElementsBuffer.DownRight)
|
||
CALL PRSYM
|
||
RET
|
||
|
||
PRSYM: LD B,1
|
||
JP LP_PRINT_SYM
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
//////////////////// LOGO \\\\\\\\\\\\\\\\\\\\
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
LOGOTYPE: CALL SHOW_LOGO
|
||
;
|
||
IF STARTUP_SND
|
||
.playSnd+1: LD A,#80
|
||
RLA
|
||
JR NC,.noSound
|
||
;
|
||
LD BC,CMOS_CELL.BootUpParams.Mask.BootSound
|
||
CALL GET_CMOS_VALUE
|
||
OR A
|
||
JR Z,.noSound
|
||
LD A,#37 ; opcode SCF, play sound on
|
||
LD (INT_HANDLER.sndSwitch),A
|
||
.noSound: ;
|
||
ENDIF
|
||
;
|
||
LD BC,CMOS_CELL.BootUpParams.Mask.StartDelay
|
||
CALL GET_CMOS_VALUE
|
||
OR A
|
||
JR Z,.MinDelay
|
||
DEC A
|
||
JR Z,.AverageDelay
|
||
; Delay enabled
|
||
LD B,LOGO_DELAY_NORM
|
||
.loop EI
|
||
push bc
|
||
HALT
|
||
CALL go_setup
|
||
pop bc
|
||
DJNZ .loop
|
||
; Delay average
|
||
.AverageDelay: LD B,LOGO_DELAY_MAX
|
||
.MMA: PUSH BC
|
||
EI
|
||
HALT
|
||
DI
|
||
CALL FADE
|
||
POP BC
|
||
DJNZ .MMA
|
||
; ;
|
||
.ERASE_LOGO: LD IX,win_descriptor.tab80x32
|
||
;LD HL,#0000
|
||
;LD E,1
|
||
;
|
||
EI
|
||
HALT
|
||
DI
|
||
CALL WIN_OPEN.SCR1
|
||
;
|
||
IF STARTUP_SND
|
||
LD A,#3F ; opcode CCF, play sound off
|
||
LD (INT_HANDLER.sndSwitch),A
|
||
CALL STARTUP_SOUND.mute
|
||
ENDIF
|
||
;
|
||
LD DE,0
|
||
LD HL,#0920 ;!HARDCODE LOGOTYPE SIZE
|
||
LD B,7
|
||
JP LP_CLS_WIN
|
||
; Delay disabled
|
||
.MinDelay: LD B,LOGO_DELAY_MIN
|
||
.loop2: EI
|
||
HALT
|
||
DJNZ .loop2
|
||
DI
|
||
JR .ERASE_LOGO
|
||
; ; ;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
SHOW_LOGO: LD IX,win_descriptor.tab320x256
|
||
CALL WIN_OPEN.SCR1
|
||
|
||
SAFE_PORTY
|
||
|
||
DI
|
||
LD A,SYS_PORT.PAGE0
|
||
OUT (SYS_PORT.ON),A
|
||
OUT (ROM.SLOT0),A
|
||
|
||
LD HL,MAIN_LOGO.Pallete
|
||
LD DE,memBUFFER.Shared
|
||
LD BC,MAIN_LOGO.Pallete.length
|
||
LDIR
|
||
|
||
XOR A
|
||
OUT (ROM.SLOT0),A
|
||
OUT (SYS_PORT.ON),A
|
||
EI
|
||
|
||
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
|
||
|
||
SAFE_PORTY
|
||
|
||
DI
|
||
LD A,SYS_PORT.PAGE0
|
||
OUT (SYS_PORT.ON),A
|
||
OUT (ROM.SLOT0),A
|
||
LD HL,MAIN_LOGO.Raster ; <20><>砫<EFBFBD> <20><><EFBFBD>⨭<EFBFBD><E2A8AD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||
; CALL DECODE
|
||
CALL LOGO_TO_SCREEN
|
||
XOR A
|
||
OUT (SYS_PORT.ON),A
|
||
OUT (ROM.SLOT0),A
|
||
EI
|
||
RET
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
win_descriptor:
|
||
.tab80x32 Window_UserVars{
|
||
40, ; <20><>ਧ<EFBFBD><E0A8A7>⠫<EFBFBD><E2A0AB><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
32, ; <20><><EFBFBD>⨪<EFBFBD><E2A8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
0, ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><>ਧ<EFBFBD><E0A8A7>⠫<EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||
0, ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>⨪<EFBFBD><E2A8AA><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||
%0001'1011, ; ०<><E0A5A6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
0, ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD><E2A5AB><EFBFBD><EFBFBD> ०<><E0A5A6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
0, ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> X <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>䨪<EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠬)
|
||
0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Y <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>䨪<EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠬)
|
||
}
|
||
.tab320x256 Window_UserVars{
|
||
16, ; <20><>ਧ<EFBFBD><E0A8A7>⠫<EFBFBD><E2A0AB><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
9, ; <20><><EFBFBD>⨪<EFBFBD><E2A8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
0, ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><>ਧ<EFBFBD><E0A8A7>⠫<EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||
0, ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>⨪<EFBFBD><E2A8AA><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||
%0010'0000, ; ०<><E0A5A6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
0, ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD><E2A5AB><EFBFBD><EFBFBD> ०<><E0A5A6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
8, ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> X <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>䨪<EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠬)
|
||
0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Y <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>䨪<EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠬)
|
||
}
|
||
;
|
||
|
||
MACRO _mFADE
|
||
LD HL,memBUFFER.Shared
|
||
; A = 0
|
||
LD B,A
|
||
.loop: DUP 3
|
||
CP (HL)
|
||
JR Z,1F
|
||
DEC (HL)
|
||
1: INC HL
|
||
EDUP
|
||
INC HL
|
||
DJNZ .loop
|
||
ENDM
|
||
|
||
|
||
FADE: XOR A
|
||
_mFADE
|
||
_mFADE
|
||
; A = 0
|
||
LD HL,memBUFFER.Shared
|
||
; LD DE,#0000
|
||
LD D,A
|
||
LD E,A
|
||
;
|
||
LD B,def_pal_mask
|
||
CALL PIC_SET_PAL
|
||
|
||
SAFE_PORTY
|
||
|
||
go_setup: ; !FIXIT <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> TSETUP
|
||
CALL SCANKEY
|
||
RET Z
|
||
|
||
CP #1B
|
||
JP Z,.to_EXIT_SETUP
|
||
|
||
LD HL,#4F00
|
||
AND A
|
||
SBC HL,DE
|
||
jr nz,go_setup
|
||
|
||
LD IX,win_descriptor.tab80x32
|
||
CALL WIN_OPEN.SCR1
|
||
JP ENTER_SETUP
|
||
|
||
.to_EXIT_SETUP:
|
||
LD HL,(RET_TO_EXP_ADDR)
|
||
PUSH HL
|
||
JP EXIT_SETUP
|
||
|
||
;DECODE:
|
||
LOGO_TO_SCREEN:
|
||
PUSH HL
|
||
IN A,(SLOT1)
|
||
LD H,A
|
||
IN A,(PORT_Y)
|
||
LD L,A
|
||
EX (SP),HL
|
||
|
||
LD A,#50
|
||
OUT (SLOT1),A
|
||
LD A,72 ; !HARDCODE <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD>⨭<EFBFBD><E2A8AD> <20><> Y + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⨭<EFBFBD><E2A8AD>
|
||
.loop:
|
||
DEC A
|
||
OUT (PORT_Y),A
|
||
LD DE,#4040 ; !HARDCODE <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD>⨭<EFBFBD><E2A8AD> <20><> <20>
|
||
LD BC,128 ; !HARDCODE <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ਧ<EFBFBD><E0A8A7>⠫쭮<E2A0AB> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⨭<EFBFBD><E2A8AD>
|
||
LDIR
|
||
OR A
|
||
JP NZ,.loop
|
||
|
||
POP BC
|
||
LD A,B
|
||
OUT (SLOT1),A
|
||
LD A,C
|
||
OUT (PORT_Y),A
|
||
XOR A
|
||
RET
|
||
|
||
; IF !ROM_LOGO_TEST
|
||
; LOGPAL: ; palitre for logotype
|
||
; IF TEST_Build
|
||
; INCBIN './test/test2_pal.bin'
|
||
; ELSE
|
||
; INCBIN './original/logo_pal.bin'
|
||
; ENDIF
|
||
;
|
||
; IF ($-LOGPAL) < 1024
|
||
; BLOCK +(1024-($-LOGPAL)),0
|
||
; ENDIF
|
||
; ENDIF
|
||
|
||
; Original hardcoded pallete for Peters logotype
|
||
; B G R
|
||
; DB #FF,#FF,#FF,#00
|
||
; DB #8C,#A5,#A5,#00
|
||
; DB #42,#EF,#EF,#00
|
||
; DB #DE,#CE,#C6,#00
|
||
; DB #84,#39,#39,#00
|
||
; DB #CE,#8C,#84,#00
|
||
; DB #A5,#39,#31,#00
|
||
; DB #84,#7B,#7B,#00
|
||
; DB #63,#5A,#5A,#00
|
||
; DB #BD,#39,#39,#00
|
||
; DB #84,#08,#08,#00
|
||
; DB #AD,#08,#08,#00
|
||
; DB #18,#00,#00,#00
|
||
; DB #63,#08,#10,#00
|
||
; DB #94,#08,#18,#00
|
||
; DB #00,#00,#00,#00
|
||
|
||
; PALCOL:
|
||
; ; B G R
|
||
; DB #FF,#FF,#FF,#00
|
||
; DB #8C,#BD,#BD,#80
|
||
; DB #BD,#CE,#BD,#00
|
||
; DB #EF,#CE,#BD,#00
|
||
; DB #BC,#73,#73,#00
|
||
; DB #9C,#63,#63,#00
|
||
; DB #DE,#8C,#8C,#00
|
||
; DB #8C,#52,#52,#00
|
||
; DB #BD,#63,#63,#00
|
||
; DB #52,#10,#10,#00
|
||
; DB #21,#00,#00,#00
|
||
; DB #8C,#00,#00,#00
|
||
; DB #AD,#00,#00,#00
|
||
; DB #AD,#10,#21,#00
|
||
; DB #8C,#00,#10,#00
|
||
; DB #00,#00,#00,#00
|
||
|
||
|
||
|
||
SET_CGA:
|
||
; LD A,4
|
||
; LD B,3
|
||
; CALL SET_PAL_INIT
|
||
; LD A,5
|
||
; LD B,3
|
||
; CALL SET_PAL_INIT
|
||
; LD A,6
|
||
; LD B,3
|
||
; CALL SET_PAL_INIT
|
||
; LD A,7
|
||
; LD B,3
|
||
; CALL SET_PAL_INIT
|
||
; RET
|
||
|
||
CALL SETPAL4
|
||
LD A,4 ; page_pal
|
||
LD HL,memBUFFER.Shared
|
||
LD DE,#0000 ; D - ELEMENTS,E - COLOR
|
||
LD B,def_pal_mask
|
||
CALL PIC_SET_PAL
|
||
|
||
LD A,6 ; page_pal
|
||
LD HL,memBUFFER.Shared
|
||
LD DE,#0000 ;D - ELEMENTS,E - COLOR
|
||
LD B,def_pal_mask
|
||
CALL PIC_SET_PAL
|
||
|
||
LD A,7 ; page_pal
|
||
LD HL,#80*4+memBUFFER.Shared
|
||
LD DE,#8080 ;D - ELEMENTS,E - COLOR
|
||
LD B,def_pal_mask
|
||
CALL PIC_SET_PAL
|
||
;
|
||
|
||
CALL SETPAL5
|
||
LD A,5 ; page_pal
|
||
LD HL,memBUFFER.Shared
|
||
LD DE,#0000 ;D - ELEMENTS,E - COLOR
|
||
LD B,def_pal_mask
|
||
CALL PIC_SET_PAL
|
||
|
||
LD A,7 ; page_pal
|
||
LD HL,memBUFFER.Shared
|
||
LD DE,#8000 ;D - ELEMENTS,E - COLOR
|
||
LD B,def_pal_mask
|
||
CALL PIC_SET_PAL
|
||
;
|
||
|
||
SETPAL4:
|
||
LD HL,COLORS.CGA.PALETTE
|
||
LD DE,memBUFFER.Shared
|
||
LD C,#08
|
||
|
||
.DCR0: LD B,COLORS.CGA.PALETTE.ColNum
|
||
PUSH HL
|
||
;
|
||
.DCR1: POP HL
|
||
PUSH HL
|
||
PUSH BC
|
||
LDI
|
||
LDI
|
||
LDI
|
||
LDI
|
||
POP BC
|
||
DJNZ .DCR1
|
||
;
|
||
INC SP
|
||
INC SP
|
||
DEC C
|
||
JR NZ,.DCR0
|
||
|
||
LD HL,memBUFFER.Shared
|
||
LD BC,512
|
||
LDIR
|
||
RET
|
||
|
||
SETPAL5:
|
||
LD HL,COLORS.CGA.PALETTE
|
||
LD DE,memBUFFER.Shared
|
||
LD B,#08
|
||
.DCR01:
|
||
PUSH BC
|
||
PUSH HL
|
||
LD BC,16*4
|
||
LDIR
|
||
POP HL
|
||
POP BC
|
||
DJNZ .DCR01
|
||
LD HL,memBUFFER.Shared
|
||
LD BC,512
|
||
LDIR
|
||
RET
|
||
|
||
include 'shared_includes/constants/standart_colors.inc'
|
||
; |