This commit is contained in:
Tolik 2024-08-18 06:54:19 +10:00
parent 5c6e91aa48
commit 898fa6b08d
8 changed files with 3 additions and 815 deletions

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "Shared_Includes"]
path = Shared_Includes
url = https://github.com/Tolik-Trek/Shared_Includes.git

Binary file not shown.

Binary file not shown.

View File

@ -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]

View File

@ -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 ; ;!!!!!

View File

@ -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=>--"
;-----------------------------------------------------------------------;

View File

@ -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