mirror of
https://github.com/Tolik-Trek/Crazy-Blaster.git
synced 2026-06-15 01:21:36 +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.
@ -693,7 +693,7 @@ BIN_END_ADDRESS EQU $
|
||||
|
||||
|
||||
DISPLAY "END ADDRESS: ",/H,BIN_END_ADDRESS
|
||||
DISPLAY "Memory leacks when > ",/H, #4000+SUBLOAD_SIZE*512
|
||||
DISPLAY "Memory leacks when > ",/H, #4000+SUBLOAD_SIZE*512
|
||||
ASSERT $ < (#4001+SUBLOAD_SIZE*512),'-> Memory leack!!!';
|
||||
ASSERT DRV_CONTENT.SIZE < #4001,'-> Drivers code size > #4000!!!';
|
||||
;[END]
|
||||
|
||||
@ -1733,7 +1733,7 @@ PICTURE TBitMapFileHeader = $
|
||||
; IF _dIs_Updater
|
||||
Loader_length EQU $-Flasher_Start
|
||||
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'
|
||||
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 'Build/updater.inc'
|
||||
INCLUDE 'Crazy BIOS/shared/CompMacro.asm'
|
||||
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_low 1
|
||||
DEFINE SYS_FN_PAGE 1
|
||||
;DEFINE ACEX_ROM_COPY_PAGE 0
|
||||
DEFINE bufer_adr #C000
|
||||
DEFINE sys_fn_in_sectors #4000 / #200
|
||||
DEFINE bios_size_in_sectors 512
|
||||
@ -34,24 +29,3 @@ END_FIRST_SECTION EQU $
|
||||
DISPLAY "ROM size = ",/A,END_FIRST_SECTION - BEGIN_CB
|
||||
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