mirror of
https://github.com/Tolik-Trek/Crazy-Blaster.git
synced 2026-06-15 09:31:37 +03:00
...
This commit is contained in:
parent
5c6e91aa48
commit
898fa6b08d
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +0,0 @@
|
|||||||
[submodule "Shared_Includes"]
|
|
||||||
path = Shared_Includes
|
|
||||||
url = https://github.com/Tolik-Trek/Shared_Includes.git
|
|
||||||
BIN
BIN/CB_IMAGE.IMG
BIN
BIN/CB_IMAGE.IMG
Binary file not shown.
Binary file not shown.
@ -1733,7 +1733,7 @@ PICTURE TBitMapFileHeader = $
|
|||||||
; IF _dIs_Updater
|
; IF _dIs_Updater
|
||||||
Loader_length EQU $-Flasher_Start
|
Loader_length EQU $-Flasher_Start
|
||||||
DISPLAY "Loader_length: ",/A,Loader_length
|
DISPLAY "Loader_length: ",/A,Loader_length
|
||||||
DISPLAY PICTURE_FILE,' ',/A,MAIN_PICTURE.PIC_OFFSET+MAIN_PICTURE.CHIP_NAME_OFFSET
|
DISPLAY PICTURE_FILE,"\r\t\t\t ",/A,MAIN_PICTURE.PIC_OFFSET+MAIN_PICTURE.CHIP_NAME_OFFSET
|
||||||
|
|
||||||
OUTPUT '../SP_Core/Build/updater_picture.bin'
|
OUTPUT '../SP_Core/Build/updater_picture.bin'
|
||||||
PICTURE_2: INCBIN PICTURE_FILE,MAIN_PICTURE.PIC_OFFSET + MAIN_PICTURE.CHIP_NAME_OFFSET;+MAIN_PICTURE.PIC_WIDTH ; ;!!!!!
|
PICTURE_2: INCBIN PICTURE_FILE,MAIN_PICTURE.PIC_OFFSET + MAIN_PICTURE.CHIP_NAME_OFFSET;+MAIN_PICTURE.PIC_WIDTH ; ;!!!!!
|
||||||
|
|||||||
@ -1,783 +0,0 @@
|
|||||||
LD HL,RESERVED_PAGES
|
|
||||||
LD DE,#4000 + RESERVED_PAGES_COPY
|
|
||||||
LD BC,RESERVED_PAGES.Size
|
|
||||||
LDIR
|
|
||||||
LD SP,#4000
|
|
||||||
LD A,SYS_FN_PAGE
|
|
||||||
OUT (SLOT0),A
|
|
||||||
JP INIT_SCREEN - #4000
|
|
||||||
;
|
|
||||||
.start_code EQU $
|
|
||||||
|
|
||||||
;ÛÛÛÛÛÛÛ ¨¨æ¨ «¨§ æ¨ï íªà ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
|
||||||
INIT_SCREEN: CALL FN_SYNC
|
|
||||||
;
|
|
||||||
LD IX,VideoModes.graf_mode320x256
|
|
||||||
LD E,%00010001
|
|
||||||
CALL WIN_OPEN
|
|
||||||
;ÛÛÛÛÛÛÛ ¨¨æ¨ «¨§ æ¨ï ¯ «¨âàë ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
|
||||||
INIT_PALETTE: ;IN A,(SLOT1)
|
|
||||||
;PUSH AF
|
|
||||||
LD B,#FF
|
|
||||||
LD HL,PICTURE.bdPallete ;#8FBC ;!HARDCODE PICTURE.bdPallete
|
|
||||||
LD DE,0
|
|
||||||
LD A,1
|
|
||||||
CALL SET_PALETTE
|
|
||||||
CALL SET_PICTURE
|
|
||||||
CALL SET_BOARD_NUMBER
|
|
||||||
; Ž¯à¥¤¥«¥¨¥ 稯 <20>‡“
|
|
||||||
CALL DETECT_ROM
|
|
||||||
;
|
|
||||||
|
|
||||||
; ãáâ ®¢ª ॣ¨áâ஢
|
|
||||||
|
|
||||||
; ¯à릮ª â®çªã ¢å®¤ ¢® ä«¥è¥à¥
|
|
||||||
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
SET_BOARD_NUMBER:
|
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,#18 ;!HARDCODE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
;
|
|
||||||
LD HL,(BOARD_ID_DATA.Start)
|
|
||||||
LD (BoardNumOffsets.Start),HL
|
|
||||||
LD HL,(BOARD_ID_DATA.Number)
|
|
||||||
LD (BoardNumOffsets.Number),HL
|
|
||||||
LD HL,(BOARD_ID_DATA.End)
|
|
||||||
LD (BoardNumOffsets.End),HL
|
|
||||||
LD A,(BOARD_ID_DATA.Type)
|
|
||||||
LD (BoardNumOffsets.Type),A
|
|
||||||
;
|
|
||||||
LD A,#10 ;!HARDCODE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD A,(FOR_ACEX)
|
|
||||||
LD (#C000 + expBIOS_Vars.msgStrings.str_ACEX_MODEL),A
|
|
||||||
LD (#C000 + expBIOS_Vars.msgRusStrings.str_ACEX_MODEL),A
|
|
||||||
;
|
|
||||||
EX AF,AF'
|
|
||||||
OUT (SLOT3),A
|
|
||||||
RET
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
DISP_WINDOW EQU $
|
|
||||||
DISP #4000 + DISP_WINDOW
|
|
||||||
DETECT_ROM: LD HL,0
|
|
||||||
ADD HL,SP
|
|
||||||
LD SP,#4000
|
|
||||||
LD (.sp_save),HL
|
|
||||||
;
|
|
||||||
CALL TEST_ROM_CHIP ;!HARDCODE TEST_ROM_CHIP #8E59
|
|
||||||
LD (TST_R.jp),BC ;!HARDCODE TST_R.jp #81D5
|
|
||||||
;
|
|
||||||
.sp_save+1: LD SP,0000
|
|
||||||
XOR A
|
|
||||||
OUT (SYS_PORT.RAM),A
|
|
||||||
RET
|
|
||||||
ENT
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
SET_PICTURE: LD A,#FF - MAIN_PICTURE.PIC_Y
|
|
||||||
.loop_pic: PUSH AF
|
|
||||||
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT1),A
|
|
||||||
|
|
||||||
POP AF
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
|
|
||||||
LD HL,.pic_buffer
|
|
||||||
LD DE,#4000 + Screen_Offset + MAIN_PICTURE.PIC_X
|
|
||||||
;
|
|
||||||
LD BC,MAIN_PICTURE.PIC_WIDTH
|
|
||||||
LDIR
|
|
||||||
;
|
|
||||||
LD H,A
|
|
||||||
POP AF
|
|
||||||
OUT (SLOT1),A
|
|
||||||
PUSH AF
|
|
||||||
|
|
||||||
LD A,H
|
|
||||||
DEC A
|
|
||||||
CP MAIN_PICTURE.PIC_Y-1
|
|
||||||
JR NZ,.loop_pic
|
|
||||||
|
|
||||||
POP AF
|
|
||||||
OUT (SLOT1),A
|
|
||||||
IM 1
|
|
||||||
EI
|
|
||||||
RET
|
|
||||||
.pic_buffer: BLOCK MAIN_PICTURE.PIC_WIDTH,0
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
; “áâ ®¢ª ०¨¬ «¨¨¨
|
|
||||||
LP_MODE_LINE: BIT 0,(IX+Window_Variables.USER.MODE_S)
|
|
||||||
JP NZ,LP_MODE_LINE2 ; ¨¤â¨ ᯥªâàã¬
|
|
||||||
BIT 4,A
|
|
||||||
JP Z,LP_MODE_LINE3 ; ¨¤â¨ £à 䨪ã!
|
|
||||||
DEC D
|
|
||||||
; ⥪áâ®¢ë© à¥¦¨¬.
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD A,L ; ¢¥à⨪ «ì®¥ ¯®«®¦¥¨¥
|
|
||||||
CP #80
|
|
||||||
JR NC,LP_EXIT_MODE
|
|
||||||
;
|
|
||||||
LP_MODE_RECURSE:
|
|
||||||
LD A,D ; £®à¨§®â «ì®¥ ¯®«®¦¥¨¥
|
|
||||||
AND 7FH
|
|
||||||
SUB 80
|
|
||||||
JR C,LP_MODE_LL
|
|
||||||
SUB 48
|
|
||||||
NEG
|
|
||||||
;
|
|
||||||
LD E,A ; § ¯®¬¨âì
|
|
||||||
ADD A,D
|
|
||||||
LD D,A ; ®¢®¥ ¯®«®¦¥¨¥
|
|
||||||
;
|
|
||||||
LD A,E ; ¢®ááâ ®¢¨âì
|
|
||||||
RRA
|
|
||||||
AND 3FH
|
|
||||||
SUB C
|
|
||||||
JR NC,LP_EXIT_MODE
|
|
||||||
NEG
|
|
||||||
LD C,A ; ®¢®¥ § 票¥ C
|
|
||||||
JR LP_MODE_RECURSE
|
|
||||||
;
|
|
||||||
LP_MODE_LL: NEG
|
|
||||||
RRA
|
|
||||||
AND 3FH
|
|
||||||
CP C
|
|
||||||
JR NC,LP_MODE_LR
|
|
||||||
LD C,A
|
|
||||||
LP_MODE_LR: EX AF,AF'
|
|
||||||
INC D
|
|
||||||
LP_MD_LL1: EX AF,AF'
|
|
||||||
LD A,D
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (HL),A ; ०¨¬
|
|
||||||
INC D
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,D
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (HL),A ; ०¨¬
|
|
||||||
INC D
|
|
||||||
DEC C
|
|
||||||
JR NZ,LP_MD_LL1
|
|
||||||
EX AF,AF'
|
|
||||||
LP_EXIT_MODE: LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
EX AF,AF'
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
|
|
||||||
; “áâ ®¢ª ०¨¬ «¨¨¨
|
|
||||||
; Spectrum mode
|
|
||||||
LP_MODE_LINE2: LD A,(IX+Window_Variables.WORK_2)
|
|
||||||
LD B,(IX+Window_Variables.WORK_1)
|
|
||||||
;
|
|
||||||
DEC D
|
|
||||||
;
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD A,L ; ¢¥à⨪ «ì®¥ ¯®«®¦¥¨¥
|
|
||||||
CP #80
|
|
||||||
JR NC,LP_EXIT_MODE2
|
|
||||||
;
|
|
||||||
LP_MODE_RECURSE2:
|
|
||||||
LD A,D ; £®à¨§®â «ì®¥ ¯®«®¦¥¨¥
|
|
||||||
AND #7F
|
|
||||||
SUB 80
|
|
||||||
JR C,LP_MODE_LL2
|
|
||||||
SUB 48
|
|
||||||
NEG
|
|
||||||
;
|
|
||||||
LD E,A ; § ¯®¬¨âì
|
|
||||||
ADD A,D
|
|
||||||
LD D,A ; ®¢®¥ ¯®«®¦¥¨¥
|
|
||||||
;
|
|
||||||
LD A,E ; ¢®ááâ ®¢¨âì
|
|
||||||
RRA
|
|
||||||
AND #3F
|
|
||||||
SUB C
|
|
||||||
JR NC,LP_EXIT_MODE2
|
|
||||||
NEG
|
|
||||||
LD C,A ; ®¢®¥ § 票¥ C
|
|
||||||
JR LP_MODE_RECURSE2
|
|
||||||
;
|
|
||||||
LP_MODE_LL2: NEG
|
|
||||||
RRA
|
|
||||||
AND #3F
|
|
||||||
CP C
|
|
||||||
JR NC,LP_MODE_LR2
|
|
||||||
LD C,A
|
|
||||||
LP_MODE_LR2: EX AF,AF'
|
|
||||||
INC D
|
|
||||||
LP_MD_LL2: EX AF,AF'
|
|
||||||
LD A,D
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (HL),A ; ०¨¬
|
|
||||||
INC L
|
|
||||||
LD (HL),B
|
|
||||||
INC L
|
|
||||||
LD (HL),B
|
|
||||||
DEC L
|
|
||||||
DEC L
|
|
||||||
INC D
|
|
||||||
BIT 4,A
|
|
||||||
JR NZ,lp_md_ll3x
|
|
||||||
INC B
|
|
||||||
lp_md_ll3x: EX AF,AF'
|
|
||||||
LD A,D
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (HL),A ; ०¨¬
|
|
||||||
INC L
|
|
||||||
LD (HL),B
|
|
||||||
INC L
|
|
||||||
LD (HL),B
|
|
||||||
DEC L
|
|
||||||
DEC L
|
|
||||||
INC D
|
|
||||||
INC B
|
|
||||||
JR NZ,LP_NO_ADD_40
|
|
||||||
ADD A,#40
|
|
||||||
LP_NO_ADD_40: DEC C
|
|
||||||
JR NZ,LP_MD_LL2
|
|
||||||
EX AF,AF'
|
|
||||||
LP_EXIT_MODE2: LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (IX+Window_Variables.WORK_1),B
|
|
||||||
LD (IX+Window_Variables.WORK_2),A
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
; “áâ ®¢ª ०¨¬ «¨¨¨
|
|
||||||
LP_MODE_LINE3: ; Grafic Mode
|
|
||||||
LD A,(IX+Window_Variables.WORK_1)
|
|
||||||
LD B,(IX+Window_Variables.WORK_2)
|
|
||||||
DEC D
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD A,L ; ¢¥à⨪ «ì®¥ ¯®«®¦¥¨¥
|
|
||||||
CP #80
|
|
||||||
JR NC,LP_EXIT_MODE3
|
|
||||||
;
|
|
||||||
LP_MODE_RECURSE3:
|
|
||||||
LD A,D ; £®à¨§®â «ì®¥ ¯®«®¦¥¨¥
|
|
||||||
AND #7F
|
|
||||||
SUB 80
|
|
||||||
JR C,LP_MODE_LL3
|
|
||||||
SUB 48
|
|
||||||
NEG
|
|
||||||
LD E,A ; § ¯®¬¨âì
|
|
||||||
ADD A,D
|
|
||||||
LD D,A ; ®¢®¥ ¯®«®¦¥¨¥
|
|
||||||
LD A,E ; ¢®ááâ ®¢¨âì
|
|
||||||
RRA
|
|
||||||
AND #3F
|
|
||||||
SUB C
|
|
||||||
JR NC,LP_EXIT_MODE3
|
|
||||||
NEG
|
|
||||||
LD C,A ; ®¢®¥ § 票¥ C
|
|
||||||
JR LP_MODE_RECURSE3
|
|
||||||
;
|
|
||||||
LP_MODE_LL3: NEG
|
|
||||||
RRA
|
|
||||||
AND #3F
|
|
||||||
CP C
|
|
||||||
JR NC,LP_MODE_LR3
|
|
||||||
LD C,A
|
|
||||||
LP_MODE_LR3: EX AF,AF'
|
|
||||||
INC D
|
|
||||||
BIT 5,B
|
|
||||||
JR Z,LP_GR_640
|
|
||||||
;
|
|
||||||
LP_MD_LL3: EX AF,AF'
|
|
||||||
LD A,D
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (HL),B ; ०¨¬
|
|
||||||
INC L
|
|
||||||
LD (HL),A ; ०¨¬ 2
|
|
||||||
INC L
|
|
||||||
LD (HL),0 ; ०¨¬ 2
|
|
||||||
DEC L
|
|
||||||
DEC L
|
|
||||||
INC D
|
|
||||||
INC D
|
|
||||||
INC A
|
|
||||||
LD E,A
|
|
||||||
AND 7
|
|
||||||
JR NZ,LP_NO_INC_B
|
|
||||||
LD A,E
|
|
||||||
SUB 8
|
|
||||||
LD E,A
|
|
||||||
INC B
|
|
||||||
LP_NO_INC_B: LD A,E
|
|
||||||
DEC C
|
|
||||||
JR NZ,LP_MD_LL3
|
|
||||||
;
|
|
||||||
LP_640_RET: EX AF,AF'
|
|
||||||
LP_EXIT_MODE3: LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,(IX+Window_Variables.WORK_1)
|
|
||||||
ADD A,8
|
|
||||||
LD (IX+Window_Variables.WORK_1),A
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
LP_GR_640: EX AF,AF'
|
|
||||||
LD A,D
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (HL),B ; ०¨¬ 1
|
|
||||||
INC L
|
|
||||||
LD (HL),A ; ०¨¬ 2
|
|
||||||
INC L
|
|
||||||
LD (HL),0 ; ०¨¬ 3
|
|
||||||
INC D
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,D
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (HL),0 ; ०¨¬ 3
|
|
||||||
DEC L
|
|
||||||
LD (HL),A ; ०¨¬ 2
|
|
||||||
DEC L
|
|
||||||
LD (HL),B ; ०¨¬ 1
|
|
||||||
INC D
|
|
||||||
INC A
|
|
||||||
LD E,A
|
|
||||||
AND 7
|
|
||||||
JR NZ,LP_NO_INC_B6
|
|
||||||
LD A,E
|
|
||||||
SUB 8
|
|
||||||
LD E,A
|
|
||||||
INC B
|
|
||||||
LP_NO_INC_B6: LD A,E
|
|
||||||
DEC C
|
|
||||||
JR NZ,LP_GR_640
|
|
||||||
JP LP_640_RET
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
; ¢å®¤: HL - ¤ ë¥ ¯ «¨âàë RGB, E - ç «ìë© æ¢¥â
|
|
||||||
; D - ç¨á«® 梥⮢, B - PAL-mask, A - page PAL
|
|
||||||
SET_PALETTE: PUSH IX
|
|
||||||
;
|
|
||||||
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,#C3 ; â® £à ä.íªà áâà ¨æ¥ 3
|
|
||||||
JR Z,.NO_PAGE1
|
|
||||||
LD D,#43 ; ¨ ç¥
|
|
||||||
LD C,SLOT1 ; áâà ¨æ¥ 1
|
|
||||||
.NO_PAGE1: ADD A,A
|
|
||||||
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,(HL) ; B
|
|
||||||
AND D
|
|
||||||
LD (IX+2),A
|
|
||||||
INC HL
|
|
||||||
;
|
|
||||||
LD A,(HL) ; G
|
|
||||||
AND D
|
|
||||||
LD (IX+1),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 .loopPal ; ¢ë¯®«ïâì, ¯®ª ¥ 0
|
|
||||||
;
|
|
||||||
.exit: OUT (C),E ; ¢®ááâ ®¢¨âì áâà ¨æã 3
|
|
||||||
POP AF
|
|
||||||
OUT (RGADR),A ; ¢®ááâ ®¢¨âì Y_PORT
|
|
||||||
POP IX
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
LP_OPEN_PG: IN A,(SLOT3)
|
|
||||||
LD C,A
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
;
|
|
||||||
LD A,C
|
|
||||||
LD (SYS_PAGE.COPY_SLOT3),A
|
|
||||||
IN A,(PORT_Y)
|
|
||||||
LD (SYS_PAGE.COPY_RGADR),A
|
|
||||||
RET
|
|
||||||
LP_CLOSE_PG: LD A,(SYS_PAGE.COPY_RGADR)
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
LD A,(SYS_PAGE.COPY_SLOT3)
|
|
||||||
OUT (SLOT3),A
|
|
||||||
RET
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
WIN_OPEN: CALL LP_OPEN_PG
|
|
||||||
LD (SYS_PAGE.WIN_MAP_SC),IX ; ª àâ ®ª
|
|
||||||
PUSH DE
|
|
||||||
LD HL,(SYS_PAGE.WIN_MAP_SC)
|
|
||||||
LD DE,WIN_ID_0
|
|
||||||
LD BC,Window_UserVars
|
|
||||||
LDIR
|
|
||||||
LD IX,WIN_ID_0
|
|
||||||
POP DE
|
|
||||||
LD L,(IX+Window_Variables.USER.PLACE_H)
|
|
||||||
LD H,(IX+Window_Variables.USER.PLACE_V)
|
|
||||||
LD (IX+Window_Variables.MODE_E),E
|
|
||||||
;
|
|
||||||
LD A,L
|
|
||||||
ADD A,A
|
|
||||||
INC A ; ¢ëç¨á«¥¨¥ PORT_Y
|
|
||||||
BIT 4,E
|
|
||||||
JR NZ,.LP_SET_NO_OR
|
|
||||||
OR #80 ; ¥á«¨ ¢ë¢®¤ ¢â®à®© íªà
|
|
||||||
.LP_SET_NO_OR: LD (IX+Window_Variables.H_BEG),A
|
|
||||||
LD D,A
|
|
||||||
LD A,(IX+Window_Variables.USER.SIZE_H)
|
|
||||||
ADD A,A
|
|
||||||
ADD A,D
|
|
||||||
LD (IX+Window_Variables.H_END),A
|
|
||||||
LD (SYS_PAGE.WIN_MODE_SC),DE ; ¬¥áâ® ¯® £®à¨§®â «¨ ¨ áâà ¨æ ¬®¤ë
|
|
||||||
LD A,H
|
|
||||||
AND #3F
|
|
||||||
ADD A,A
|
|
||||||
ADD A,A
|
|
||||||
LD L,A
|
|
||||||
LD H,#C3
|
|
||||||
LD (SYS_PAGE.WIN_MODE_SH),HL ; ¬¥áâ® ¯® ¢¥à⨪ «¨ á ¤à¥á®¬
|
|
||||||
LD (IX+Window_Variables.V_BEG),A
|
|
||||||
LD A,(IX+Window_Variables.USER.SIZE_V)
|
|
||||||
ADD A,A
|
|
||||||
ADD A,A
|
|
||||||
ADD A,L
|
|
||||||
LD (IX+Window_Variables.V_END),A
|
|
||||||
;
|
|
||||||
LD L,(IX+Window_Variables.V_BEG)
|
|
||||||
LD H,#C3
|
|
||||||
LD B,(IX+Window_Variables.USER.SIZE_V) ; à §¬¥à ¯® ¢¥à⨪ «¨
|
|
||||||
;
|
|
||||||
LD (IX+Window_Variables.WORK_1),0
|
|
||||||
LD A,(IX+Window_Variables.USER.MODE) ; § ª®£¥¥à â®à ¯«îá ०¨¬
|
|
||||||
LD (IX+Window_Variables.WORK_2),A
|
|
||||||
BIT 4,A
|
|
||||||
JR NZ,.LOOP ; ¯¥à¥å®¤, ¥á«¨ ⥪áâ®¢ë© à¥¦¨¬
|
|
||||||
;
|
|
||||||
AND #F0
|
|
||||||
LD C,A
|
|
||||||
LD A,(IX+Window_Variables.USER.GR_X)
|
|
||||||
RRCA
|
|
||||||
RRCA
|
|
||||||
RRCA
|
|
||||||
LD D,A
|
|
||||||
AND #0F
|
|
||||||
OR C
|
|
||||||
LD (IX+Window_Variables.WORK_2),A
|
|
||||||
;
|
|
||||||
LD A,D
|
|
||||||
AND #E0
|
|
||||||
LD C,A
|
|
||||||
LD A,(IX+Window_Variables.USER.GR_Y)
|
|
||||||
AND #1F
|
|
||||||
OR C
|
|
||||||
RLCA
|
|
||||||
RLCA
|
|
||||||
RLCA
|
|
||||||
LD (IX+Window_Variables.WORK_1),A
|
|
||||||
;
|
|
||||||
.LOOP: LD D,(IX+Window_Variables.H_BEG) ; D - ç «® áâப¨ (PORT_Y)
|
|
||||||
LD C,(IX+Window_Variables.USER.SIZE_H) ; à §¬¥à ¯® £®à¨§®â «¨
|
|
||||||
LD A,(IX+Window_Variables.USER.MODE) ; § ª®£¥¥à â®à ¯«îá ०¨¬
|
|
||||||
;
|
|
||||||
PUSH BC
|
|
||||||
CALL LP_MODE_LINE
|
|
||||||
POP BC
|
|
||||||
INC L
|
|
||||||
INC L
|
|
||||||
INC L
|
|
||||||
INC L
|
|
||||||
DJNZ .LOOP
|
|
||||||
;
|
|
||||||
LD A,(IX+Window_Variables.MODE_E)
|
|
||||||
AND 1
|
|
||||||
OUT (RGMOD),A
|
|
||||||
CALL LP_CLOSE_PG
|
|
||||||
CALL LP_INI_P
|
|
||||||
CALL LP_SIZE
|
|
||||||
XOR A
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
LP_INI_P: EX AF,AF'
|
|
||||||
EXX
|
|
||||||
CALL LP_OPEN_PG
|
|
||||||
; ®âªàë⨥ £à ä¨ç¥áª®£® íªà
|
|
||||||
; LP_INI_NO_ZG:
|
|
||||||
LD A,(WIN_ID_0.H_BEG)
|
|
||||||
LD D,A
|
|
||||||
LD A,(WIN_ID_0.V_BEG)
|
|
||||||
LD L,A
|
|
||||||
INC L
|
|
||||||
LD H,#C3
|
|
||||||
|
|
||||||
AND A
|
|
||||||
LD A,(WIN_ID_0.USER.MODE)
|
|
||||||
BIT 5,A
|
|
||||||
LD A,(WIN_ID_0.USER.SIZE_H)
|
|
||||||
JR NZ,LP_INI_40
|
|
||||||
ADD A,A
|
|
||||||
SCF
|
|
||||||
;!TODO çâ®-â® âãâ ¯®¤¢ë¯¨«¥®
|
|
||||||
LP_INI_40: LD B,A
|
|
||||||
LD (WIN_ID_0.SIZE_REL),A
|
|
||||||
EX AF,AF'
|
|
||||||
EXX
|
|
||||||
JP LP_END_P
|
|
||||||
;
|
|
||||||
; WIN_MAP_SC - ª àâ íªà
|
|
||||||
; 0 - hor size
|
|
||||||
; 1 - ver size
|
|
||||||
; 2 - hor place
|
|
||||||
; 3 - ver place
|
|
||||||
LP_SIZE: ; ®¯à¥¤¥«¥¨¥ size
|
|
||||||
CALL LP_OPEN_PG
|
|
||||||
LD DE,(WIN_ID_0.USER.SIZE_H)
|
|
||||||
LD A,(WIN_ID_0.USER.MODE)
|
|
||||||
BIT 5,A
|
|
||||||
CALL LP_CLOSE_PG
|
|
||||||
RET NZ
|
|
||||||
LD A,E
|
|
||||||
ADD A,A
|
|
||||||
LD E,A
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
LP_END_P: LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
.SYS_PAGE: EX AF,AF'
|
|
||||||
EXX
|
|
||||||
RLA
|
|
||||||
LD E,A
|
|
||||||
LD (WIN_ID_0.reg_HL),HL ; ¬¥áâ® ¯¥ç â¨
|
|
||||||
LD (WIN_ID_0.reg_DE),DE
|
|
||||||
LD (WIN_ID_0.reg_BC),BC
|
|
||||||
CALL LP_CLOSE_PG
|
|
||||||
EXX
|
|
||||||
EX AF,AF'
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
.short: EX AF,AF'
|
|
||||||
EXX
|
|
||||||
CALL LP_CLOSE_PG
|
|
||||||
EXX
|
|
||||||
EX AF,AF'
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
FN_SYNC: LD A,Port_VSYNC.SET_320L
|
|
||||||
OUT (Port_VSYNC),A
|
|
||||||
LD C,SLOT3
|
|
||||||
IN B,(C)
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (C),A
|
|
||||||
LD A,(SYS_PAGE.VSyncAndWaits)
|
|
||||||
OR 1
|
|
||||||
LD (SYS_PAGE.VSyncAndWaits),A
|
|
||||||
;
|
|
||||||
.INT_DEF: LD DE,(SYS_PAGE.CONFIG_ALL)
|
|
||||||
OUT (C),B
|
|
||||||
LD IX,SCREEN_TABLES.PENTAGON
|
|
||||||
IN A,(SLOT3)
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD (SYS_PAGE.COPY_SLOT3),A
|
|
||||||
IN A,(PORT_Y)
|
|
||||||
LD (SYS_PAGE.COPY_RGADR),A
|
|
||||||
LD (SYS_PAGE.CONFIG_ALL),IX
|
|
||||||
XOR A
|
|
||||||
;----[START]-----------------------[? 1]
|
|
||||||
.loop_1: OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD HL,#C300
|
|
||||||
;----[START]------------------[v 2]-----
|
|
||||||
.loop_2: LD C,(IX)
|
|
||||||
;----[START]-------------[v 3]----------
|
|
||||||
.loop_3: ; ¢§ïâì ¤à¥á ¤ ëå ¤«ï § ¯¨á¨ ¢ á«ã¦¥¡ãî ®¡« áâì íªà
|
|
||||||
LD E,(IX+1) ; take adress of line X
|
|
||||||
LD D,(IX+2)
|
|
||||||
;----[START]--------[v 4]---------------
|
|
||||||
.loop_4:
|
|
||||||
LD A,(DE) ; take counter in table 1, line X, column Y
|
|
||||||
INC DE
|
|
||||||
AND A
|
|
||||||
JR Z,.loop_4_exit ; exit if zero-counter
|
|
||||||
LD B,A
|
|
||||||
LD A,(DE)
|
|
||||||
INC DE
|
|
||||||
;----[START]---[v 5]--------------------
|
|
||||||
.loop_5:
|
|
||||||
LD (HL),A
|
|
||||||
INC L
|
|
||||||
LD (HL),0
|
|
||||||
INC L
|
|
||||||
LD (HL),0
|
|
||||||
;
|
|
||||||
EX AF,AF'
|
|
||||||
INC A
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
;
|
|
||||||
LD (HL),0
|
|
||||||
DEC L
|
|
||||||
LD (HL),0
|
|
||||||
DEC L
|
|
||||||
LD (HL),A
|
|
||||||
;
|
|
||||||
EX AF,AF'
|
|
||||||
INC A
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
EX AF,AF'
|
|
||||||
DJNZ .loop_5
|
|
||||||
;--------------[^ 5]--------------------
|
|
||||||
JR .loop_4
|
|
||||||
;-------------------[^ 4]---------------
|
|
||||||
.loop_4_exit: INC HL ; next line
|
|
||||||
INC HL
|
|
||||||
INC HL
|
|
||||||
INC HL
|
|
||||||
IN A,(PORT_Y)
|
|
||||||
AND #80
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
DEC C
|
|
||||||
JR NZ,.loop_3
|
|
||||||
;------------------------[^ 3]----------
|
|
||||||
INC IX ; next counter
|
|
||||||
INC IX
|
|
||||||
INC IX
|
|
||||||
LD A,(IX)
|
|
||||||
AND A
|
|
||||||
JR NZ,.loop_2
|
|
||||||
;-----------------------------[^ 2]-----
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD IX,(SYS_PAGE.CONFIG_ALL)
|
|
||||||
|
|
||||||
EX AF,AF'
|
|
||||||
ADD A,#80
|
|
||||||
JR NC,.loop_1
|
|
||||||
;----------------------------------[^ 1]
|
|
||||||
; Exit
|
|
||||||
LD A,(SYS_PAGE.COPY_RGADR)
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
LD A,(SYS_PAGE.COPY_SLOT3)
|
|
||||||
OUT (SLOT3),A
|
|
||||||
.exit: OR A
|
|
||||||
RET
|
|
||||||
;--- Screen data table 1: counter1, data1 .. counterX, dataX
|
|
||||||
SCREEN_TABLES:; | ç¨á«® | § 票ï |
|
|
||||||
; | áâப | ¢ |
|
|
||||||
; | /2 | áâப å |
|
|
||||||
.SCR: DB 41 , #F8
|
|
||||||
DB 3 , #FC
|
|
||||||
DB 4 , #FC
|
|
||||||
DB 7 , #FC
|
|
||||||
DB 9 , #F8
|
|
||||||
DB 0
|
|
||||||
.INT: DB 40,#FC, 2,#FD, 6,#FC, 7,#FC, 9,#FC, 0
|
|
||||||
.BLN: DB 41,#FC, 3,#FC, 4,#FC, 7,#FC, 9,#FC, 0
|
|
||||||
.SNC: DB 41,#FC, 3,#FC, 4,#FC, 7,#FC, 9,#FC, 0
|
|
||||||
.RES: DB 41,#F8, 3,#FE, 4,#FE, 7,#FE, 9,#F8, 0
|
|
||||||
;--- Screen data tables 2: counter1, data address1 .. counterX, data addressX
|
|
||||||
;
|
|
||||||
; | ª®«-¢® | § 票ï |
|
|
||||||
; | áâப | ¢ |
|
|
||||||
; | | áâப¥ |
|
|
||||||
.PENTAGON: DB 33 : DW .SCR
|
|
||||||
DB 1 : DW .INT ; DW .BLN
|
|
||||||
DB 3 : DW .SNC
|
|
||||||
DB 1 : DW .BLN
|
|
||||||
DB 1 : DW .SCR
|
|
||||||
DB 1 : DW .RES
|
|
||||||
DB 0 ; end
|
|
||||||
|
|
||||||
;---
|
|
||||||
VideoModes:
|
|
||||||
.text_mode80x32:
|
|
||||||
DB 40
|
|
||||||
DB 32
|
|
||||||
DB 0
|
|
||||||
DB 0
|
|
||||||
DB %00011011
|
|
||||||
DB 0
|
|
||||||
DB 0
|
|
||||||
DB 0
|
|
||||||
.graf_mode320x256:
|
|
||||||
DB 80
|
|
||||||
DB 32
|
|
||||||
DB 0
|
|
||||||
DB 0
|
|
||||||
DB %01100000
|
|
||||||
DB 0
|
|
||||||
DB 0
|
|
||||||
DB 0
|
|
||||||
;---------------------------------------------------------------------;
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
RESERVED_PAGES_COPY: BLOCK RESERVED_PAGES.Size,#FF
|
|
||||||
.SYS_FN EQU RESERVED_PAGES.SYS_FN - RESERVED_PAGES
|
|
||||||
.BIOS EQU RESERVED_PAGES.BIOS - RESERVED_PAGES
|
|
||||||
.PICTURE EQU RESERVED_PAGES.PICTURE - RESERVED_PAGES
|
|
||||||
.FLASHER_RAM EQU RESERVED_PAGES.FLASHER_RAM - RESERVED_PAGES
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
|
||||||
;-----------------------------------------------------------------------;
|
|
||||||
BYTE "ACEX 1K"
|
|
||||||
FOR_ACEX: DB "0" + TYPE_OF_ACEX
|
|
||||||
BYTE "0"
|
|
||||||
|
|
||||||
BYTE "FULL BOARD ID:"
|
|
||||||
BOARD_ID_DATA:
|
|
||||||
.Start: DW #5283
|
|
||||||
.Number: DW 0 ; ¢ë¢®¤¨âáï ª ª 5 ¤¥áïâ¨çëå æ¨äà: 0..99999 ¨«¨ #0000..#270F
|
|
||||||
.End: DW #47E8
|
|
||||||
.Type: DB 0
|
|
||||||
BYTE "--<=END=>--"
|
|
||||||
;-----------------------------------------------------------------------;
|
|
||||||
@ -1,15 +1,10 @@
|
|||||||
INCLUDE 'Shared_Includes/constants/SP2000.inc'
|
INCLUDE 'Shared_Includes/constants/SP2000.inc'
|
||||||
;INCLUDE 'Build/updater.inc'
|
|
||||||
INCLUDE 'Crazy BIOS/shared/CompMacro.asm'
|
INCLUDE 'Crazy BIOS/shared/CompMacro.asm'
|
||||||
INCLUDE 'Crazy BIOS/shared/DEFINES.INC'
|
INCLUDE 'Crazy BIOS/shared/DEFINES.INC'
|
||||||
;INCLUDE 'Shared_Includes/structures/FileSystem.inc'
|
|
||||||
;INCLUDE 'Shared_Includes/macroses/macros.z80'
|
|
||||||
;INCLUDE 'Shared_Includes/constants/BIOS_EQU.inc'
|
|
||||||
|
|
||||||
DEFINE sec_high 0
|
DEFINE sec_high 0
|
||||||
DEFINE sec_low 1
|
DEFINE sec_low 1
|
||||||
DEFINE SYS_FN_PAGE 1
|
DEFINE SYS_FN_PAGE 1
|
||||||
;DEFINE ACEX_ROM_COPY_PAGE 0
|
|
||||||
DEFINE bufer_adr #C000
|
DEFINE bufer_adr #C000
|
||||||
DEFINE sys_fn_in_sectors #4000 / #200
|
DEFINE sys_fn_in_sectors #4000 / #200
|
||||||
DEFINE bios_size_in_sectors 512
|
DEFINE bios_size_in_sectors 512
|
||||||
@ -34,24 +29,3 @@ END_FIRST_SECTION EQU $
|
|||||||
DISPLAY "ROM size = ",/A,END_FIRST_SECTION - BEGIN_CB
|
DISPLAY "ROM size = ",/A,END_FIRST_SECTION - BEGIN_CB
|
||||||
OUTEND
|
OUTEND
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ[ SECOND SECTION - IMAGE ON DRIVE ]ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
|
||||||
;OUTPUT './Build/CrazyBlasterIMG.raw'
|
|
||||||
OUTPUT './Build/CB_BIOS_IMG.IMG'
|
|
||||||
ORG #0000
|
|
||||||
SET_IMG_LABEL
|
|
||||||
BLOCK 512 - $,#FF
|
|
||||||
;
|
|
||||||
;BEGIN_CB_IMG: INCLUDE 'Crazy/IMG_PART.ASM'
|
|
||||||
BEGIN_CB_IMG: INCBIN 'Build/CB_BIOS.RAW'
|
|
||||||
|
|
||||||
END_SECOND_SECTION EQU $
|
|
||||||
;
|
|
||||||
DISPLAY "IMG size = ",/A,END_SECOND_SECTION - BEGIN_CB_IMG
|
|
||||||
OUTEND
|
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
|
||||||
*/
|
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 8ec0d06b7705a94175d558c35b1f91f9b2a628a0
|
Subproject commit e73e9f8d4f4e72de4f6b54abaec159684fdcebe1
|
||||||
Loading…
Reference in New Issue
Block a user