starting vBIOS

This commit is contained in:
Tolik 2024-07-31 03:29:05 +10:00
parent 9f19a04da6
commit 9b9bb846d8
45 changed files with 327 additions and 2146 deletions

View File

@ -16,7 +16,7 @@
;---------------------------------------;
;-----------[Shared Includes]-----------
INCLUDE 'src/bios/shared/includes.inc' ; Includes
INCLUDE 'crazy bios/shared/includes.inc' ; Includes
;---------------------------------------
@ -30,50 +30,6 @@
ENDLUA
IF PACKED_MAIN
;------------[MAIN prebuild]------------;
LUA PASS1
-- ­ áâà ¨¢ ¥¬ ¯ãâì ¤® 㯠ª®¢é¨ª 
detected_os = Detect_os()
print ("OS detected:", detected_os)
print ()
if detected_os == "Windows" then
pack_prog = "src\\bin\\hrust.exe Build\\Bin\\temp\\MAIN.PAK Build\\Bin\\temp\\MAIN.BIN"
elseif detected_os == "MacOS" then
pack_prog = "src/bin/mhmt -hst -zxh Build/Bin/temp/MAIN.BIN Build/Bin/temp/MAIN.PAK"
elseif detected_os == "Linux" then
pack_prog = "src/bin/mhmt -hst -zxh Build/Bin/temp/MAIN.BIN Build/Bin/temp/MAIN.PAK"
end
-- ª®¬¯¨«ïæ¨ï ¤«ï ¯®«ã祭¨ï ᦠ⮣® ä ©«  MAIN ¨ 宫®á⮩ ¯à®å®¤ Set_Pictures.asm
if (os.execute("sjasmplus -DPREBUILD=1 -Wall --msg=war --nologo --syntax=w --fullpath --lst=Build/Prebuilds.LST SRC/BIOS/ROM/SETUP/MAIN.ASM")) then
print("--[ MAIN.ASM Prebuild DONE ]--")
if (os.execute(pack_prog)) then
print("--[ Hrusting MAIN.BIN DONE ]--")
print(" ")
else
print("--[ Hrusting MAIN.BIN ERROR!!! ]--")
os.exit(1)
end
else
print("--[ MAIN.ASM Prebuild ERROR!!! ]--")
os.exit(1)
end
ENDLUA
;---------------------------------------;
ENDIF
IF PACKED_MAIN
;----------[MAIN's referenses]----------; Š®¬¯¨«ïæ¨ï ¤«ï ¯®«ã祭¨ï  ¤à¥á®¢ ¬¥â®ª ¨ ¯à®æ¥¤ãà
MMU 2 e, 18 ; áâà ­¨æ  18 ¢ ¡ ­ªã 2 ¨ ¯à®¢¥àª  ­  £à ­¨æë.
ORG COMPILE_ADDR.MAIN
INCLUDE 'src/bios/ROM/SETUP/MAIN.asm'
;---------------------------------------
ENDIF
; Building page 8 of Sprinter ROM
;-----------------[EXP]-----------------
MMU 0 e, 8 ; áâà ­¨æ  8 ¢ ¡ ­ªã 0 ¨ ¯à®¢¥àª  ­  £à ­¨æë
@ -81,7 +37,7 @@
DEFINE+ IsInBIOS 1
OUTPUT 'Build/Bin/EXP.BIN'
ShowInfo 'EXP block Start', 0 ; !!!!! test
INCLUDE 'src/bios/EXP/EXP.asm'
INCLUDE 'crazy bios/EXP/EXP.asm'
ShowInfo 'EXP block End', 0 ; !!!!! test
OUTEND
;---------------------------------------
@ -95,7 +51,7 @@
DEFINE+ IsInBIOS 0
OUTPUT 'Build/Bin/ROM.BIN'
ShowInfo 'ROM block Start', 0 ; !!!!! test
INCLUDE 'src/bios/ROM/ROM.asm'
INCLUDE 'crazy bios/ROM/ROM.asm'
ShowInfo 'ROM block End', 0 ; !!!!! test
OUTEND
UNDEFINE IsInBIOS
@ -106,25 +62,25 @@
; Building page 12 of Sprinter ROM
;------[Loader with bitstream K30]------
MMU 0 3, 12 ; áâà ­¨æë 12-15 ¢ ¡ ­ª¨ 0-3.
ORG ROM_MAP.LOADER
OUTPUT 'Build/Bin/LOADER_K30.BIN'
Conf_loader K30
BLOCK #10000-$,#FF
OUTEND
; MMU 0 3, 12 ; áâà ­¨æë 12-15 ¢ ¡ ­ª¨ 0-3.
; ORG ROM_MAP.LOADER
; OUTPUT 'Build/Bin/LOADER_K30.BIN'
; Conf_loader K30
; BLOCK #10000-$,#FF
; OUTEND
;---------------------------------------
; Building page 22 of Sprinter ROM
;------[Loader with bitstream K50]------
MMU 0 3, 22 ; áâà ­¨æë 22-25 ¢ ¡ ­ª¨ 0-3.
ORG ROM_MAP.LOADER
OUTPUT 'Build/Bin/LOADER_K50.BIN'
;!TODO ᤥ« âì 㯠ª®¢é¨ª ¡¨âáâਬ  âãâ ­  LUA
Conf_loader K50
BLOCK #10000-$,#FF
OUTEND
; MMU 0 3, 22 ; áâà ­¨æë 22-25 ¢ ¡ ­ª¨ 0-3.
; ORG ROM_MAP.LOADER
; OUTPUT 'Build/Bin/LOADER_K50.BIN'
; ;!TODO ᤥ« âì 㯠ª®¢é¨ª ¡¨âáâਬ  âãâ ­  LUA
; Conf_loader K50
; BLOCK #10000-$,#FF
; OUTEND
;---------------------------------------
;
@ -133,7 +89,7 @@
MMU 1 e, 1 ; áâà ­¨æ  1 ¢ ¡ ­ªã 1 ¨ ¯à®¢¥àª  ­  £à ­¨æë.
ORG ROM_MAP.LOGO
OUTPUT 'Build/Bin/LOGO.BIN'
INCLUDE 'src/bios/logo/Set_Pictures.asm'
INCLUDE 'crazy bios/logo/Set_Pictures.asm'
OUTEND
;---------------------------------------
;
@ -142,7 +98,7 @@
EXPORT BOARD_INFO.type
EXPORT BoardID.start
EXPORT BoardID.end
EXPORT FN_CRIPT.cnf
;EXPORT FN_CRIPT.cnf
EXPORT ID_SPRINTER.bitstream_ver
EXPORT bitstream_ver_hex
;EXPORT ID_Version

View File

@ -1,28 +1,6 @@
/*
;------------[LUA functions]------------;
includelua 'Shared_Includes/LUA/Functions.lua'
;---------------------------------------;
DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp'
LUA PASS1
-- <20>஢¥à塞 BMP, ¤®áâ ñ¬ ¨§ ­¥£® ¯ à ¬¥âàë, ०¥¬ ­  ªã᪨
bmp_width, bmp_height, bmp_image_size, bmp_image_offset, bmp_colors = Get_bmp8bit_values (sj.get_define("PICTURE_FILE"))
if bmp_width ~= 128 then sj.error("Invalid BMP width", bmp_width) end
if bmp_height ~= 72 then sj.error("Invalid BMP height", bmp_height) end
if bmp_colors ~= 256 then sj.error("Invalid BMP number of colors", bmp_colors) end
if not File_save(sj.get_define("PICTURE_FILE"), "./Build/Bin/LOGO_PAL.BIN", bmp_image_offset-1024, 1024) then sj.error("Palete save error!") end
if not File_save(sj.get_define("PICTURE_FILE"), "./Build/Bin/LOGO_DAT.BIN", bmp_image_offset, bmp_image_size) then sj.error("Image data save error!") end
ENDLUA
*/
INCLUDE 'shared/defines.inc'
DEFINE IMG_RECOVERY 'src/bios/shared/recovery.img'
;DEFINE IMG_RECOVERY 'src/bios/shared/recovery_tst.img'
INCLUDE 'shared/defines.inc'
DEFINE IMG_RECOVERY 'crazy bios/shared/cb_sys.img'
;
;[--------------------------------------------------------------------------]
MACRO Set_Block text, blk_addr
@ -31,81 +9,29 @@
DISPLAY text, /H, $-.tmp
ENDM
;[--------------------------------------------------------------------------]
DEFINE SP_128_BIN INCBIN 'src/ZX_ROMS/NEW/SP_128.BIN'
DEFINE SP__48_BIN INCBIN 'src/ZX_ROMS/NEW/SP__48.BIN'
DEFINE SP_TRDOS_BIN INCBIN 'src/ZX_ROMS/NEW/SP_TRDOS.BIN'
;[--------------------------------------------------------------------------]
MACRO ROM_BUILD bitstream
;PAGE 0
INCBIN 'Build/Bin/ROM.BIN'
Set_Block 'ROM free space: ', #4000
;
;PAGE 1
; INCBIN 'Build/Bin/LOGO_PAL.BIN'
; INCBIN 'Build/Bin/LOGO_DAT.BIN'
INCBIN 'Build/Bin/LOGO.BIN'
Set_Block 'LOGO free space: ', #8000
;
;
;PAGE 2 ZX Page - #42
SP_128_BIN
Set_Block 'SP_128 free space: ', #C000
;
;PAGE 3 ZX Page - #43
SP__48_BIN
Set_Block 'SP_48 free space: ', #10000
;
;PAGE 4 ZX Page - #44
SP_TRDOS_BIN
Set_Block 'SP_TRD free space: ', #14000
;
;PAGE 5 Recovery image part 1
INCBIN IMG_RECOVERY,0,#C000
DISPLAY "ROM Disk recovery part1, pages 5..7: 1x4000..2x0000"
;
;
;PAGE 8
INCBIN 'Build/Bin/EXP.BIN'
;INCBIN 'Build/CrazyBlaster.raw'
Set_Block 'EXP free space: ', #24000
;
;PAGE 9-11 (#09, #0A, #0B) Recovery image part 2
INCBIN IMG_RECOVERY,#C000,#C000
DISPLAY "ROM Disk recovery part2, pages 9..11: 2x4000..3x0000"
Set_Block 'Empty space: ', #30000
;
;PAGE 12-15 (#0C, #0D, #0E, #0F)
INCBIN bitstream
Set_Block 'Loader & Bitstream free space: ', #40000
;
ENDM
;[--------------------------------------------------------------------------]
;[--------------------------------------------------------------------------]
ORG 0
DISPLAY '[ Building ROM for 1K30 ]'
OUTPUT 'Build/_SPRIN.BIN'
ROM_BUILD 'Build/Bin/LOADER_K30.BIN'
OUTEND
DISPLAY '[ Building ROM for 1K30 done ]'
DISPLAY ' '
DISP 0
DISPLAY '[ Building ROM for 1K50 ]'
OUTPUT 'Build/_SPRIN50.BIN'
ROM_BUILD 'Build/Bin/LOADER_K50.BIN'
OUTEND
DISPLAY '[ Building ROM for 1K50 done ]'
ENT
ORG 0
DISPLAY '[ Building CB_IMG file ]'
OUTPUT 'Build/CB_BIOS.RAW'
;[--------------------------------------------------------------------------]
;
;PAGE #46 BIOS
INCBIN 'Build/Bin/EXP.BIN'
Set_Block 'EXP free space: ', #4000
;PAGE #47 EXTENSION
INCBIN 'Build/Bin/ROM.BIN'
Set_Block 'ROM free space: ', #8000
;PAGE #48..#49 Recovery image
INCBIN IMG_RECOVERY,0,#8000
DISPLAY "vROM Disk with Crazy Blaster DSS: 1x4000..2x0000"
Set_Block 'Empty space: ', #10000
;PAGE #4B LOGO
INCBIN 'Build/Bin/LOGO.BIN'
Set_Block 'LOGO free space: ', #14000
;[--------------------------------------------------------------------------]
OUTEND
DISPLAY '[_____________Building CB_IMG file done!_____________]'
;[--------------------------------------------------------------------------]

View File

@ -1,10 +1,14 @@
; § ¬ ¯«¥­ ç¥à¥§ ª àâã ¯®à⮢ ­  #7C/#3C ¨ #74/#24
CNF_PORT:
.ON EQU #74
.ON EQU #74
.OFF EQU #24
.vBIOS EQU .ON
.vZX_ROM EQU .OFF
; Data:
.TURBO.ON EQU 3 ; ¤ ­­ë¥ ¤«ï ¢ª«î祭¨ï TURBO
.BIOS EQU 0
.EXTENSION EQU 1
.TURBO.OFF EQU 2 ; ¤ ­­ë¥ ¤«ï ¢ëª«î祭¨ï TURBO
.TURBO.ON EQU 3 ; ¤ ­­ë¥ ¤«ï ¢ª«î祭¨ï TURBO
.CNF_0 EQU #04 ; ª àâ  ¯®à⮢ 0
.CNF_1 EQU #0C ; ª àâ  ¯®à⮢ 1 (¤«ï ०¨¬  ¯®ç⨠ç¨á⮣® zx spectrum)
.CNF_2 EQU #14 ; ª àâ  ¯®à⮢ 2
@ -34,7 +38,7 @@ SYS_PORT:
.PENT_RESET EQU CNF_PORT.PENT_RESET
.SCORP_RESET EQU CNF_PORT.SCORP_RESET
.CNF_512 EQU CNF_PORT.CNF_512
/*
---------------------------------------------------
CNF_PORT ¢¨á¨â ­  4 ¢­¥è­¨å ¯®àâ å (#7C/#3C ¨ #74/#24) ç¥à¥§ ª àâã ¯®à⮢.
SYS_PORT £¢®§¤ï¬¨ ¢ ª®­ä¥ ­  #7C/#C
@ -67,21 +71,21 @@ ____________________________________________________
|E1 (+dos_on) | 00 | | 0 | ... |
|E2 | 00 | | 0 | 0 |
|E3 | 00 | | 0 | 1 |
|E4 | 01 | | 1 | ... |
|E4 | 01 | | 1 | ... | LOGO #4B
|E5 (+dos_on) | 01 | | 0 | ... |
|E6 | 01 | | 0 | 0 |
|E7 | 01 | | 0 | 1 |
|EB | | 00 | ... | ... | BIOS
|EF | | 01 | ... | ... | EXTENSION
|E6 | 01 | | 0 | 0 | Recovery_1 #48
|E7 | 01 | | 0 | 1 | Recovery_2 #49
|EB | | 00 | ... | ... | BIOS #46
|EF | | 01 | ... | ... | EXTENSION #47
|_____________|____________|_________|______|______|
... - §­ ç¥­¨¥ ஫¨ ­¥ ¨£à ¥â
‘â ­¤ àâ­ë¥ áâà ­¨æë އ“ ¤«ï ®¡à §®¢ <20>‡“ ᯥªâà㬠:
Page Name Int.Port Page Name Int.Port
#42 BASIC 128 #E2 | ??? ??? ??? ??? #E6
#43 BASIC 48 #E3 | ??? ??? ??? ??? #E7
#44 TR-DOS #E1 | ??? ??? ??? ??? #E5
#45 BIOS (ZX_EXP) #E0 | ??? ??? ??? ??? #E4
#42 BASIC 128 #E2 | #48 ??? ??? ??? #E6
#43 BASIC 48 #E3 | #49 ??? ??? ??? #E7
#44 TR-DOS #E1 | #4A ??? ??? ??? #E5
#45 BIOS (ZX_EXP) #E0 | #4B ??? ??? ??? #E4
#46 BIOS (ZX_EXP) #EB
#47 BIOS (ZX_EXP2) #EF
@ -111,5 +115,5 @@ bit7..bit3
’ ª ¦¥ íâ®â ¯®àâ ¤ ñâ ¯àï¬ãî ­ã¬¥à æ¨î áâà ­¨æ ¯à¨ ãáâ ­®¢«¥­­®¬ bit4.
----------------------------------------------------
ROM.SLOT0
;!TODO
 ¯¤¥©â¥à ¤®«¦¥­ á ¬ ¢áâ ¢«ïâì ­®¬¥à ¯« âë ¨ ⨯ ¡¨âáâਬ 

View File

@ -625,7 +625,7 @@ SET_PORTS:
OUT (C),A
LD A,(SYS_PAGE.CONFIG_DE-#4000)
OUT (C),D ; ¢¥à­ãâì áâà ­¨æã
OUT (CNF_PORT.ROM),A
OUT (CNF_PORT.vBIOS),A
;
CALL DOS_OFF
;
@ -648,7 +648,7 @@ SET_PORTS:
CALL DOS_ON
;
LD A,CNF_PORT.CNF_0 + ROM.BIOS
OUT (CNF_PORT.ROM),A
OUT (CNF_PORT.vBIOS),A
;
LD C,SLOT2 ; ¯®«ãç¨âì áâà ­¨æã
IN D,(C)

View File

@ -34,8 +34,8 @@ BOARD_INFO:
;¯à®£à ¬¬  ¤«ï ¢ë§®¢  BIOS ç¥à¥§ RST8 ¨§ RAM0
EXP_FNS_2_RET:
PUSH AF
LD A,ROM.BIOS
OUT (CNF_PORT.ON),A
LD A,vROM.BIOS
OUT (CNF_PORT.vBIOS),A
POP AF
JR RST_18_1
;=======================================
@ -74,44 +74,9 @@ RST_30:
;=======================================
BLOCK #38-$,0
; INTERUPT Point
RST38: IF TEST_INT
;INT:
PUSH BC
PUSH AF
RST38: EI
RETI
LD C,SLOT3
IN B,(C)
LD A,SYS_PAGE
OUT (C),A
LD A,(SYS_PAGE.INT_ID)
CP #AA
JR Z,YESINT
OUT (C),B
JP NOINT
YESINT: PUSH HL
LD HL,(SYS_PAGE.INT_ADRESS)
LD A,H
OR L
LD A,(SYS_PAGE.INT_PAGE)
OUT (C),B
PUSH DE
CALL NZ,EXTINT
POP DE
POP HL
NOINT: POP AF
POP BC
EI
RETI
ELSE
; PUSH AF
; 1: DEC A
; JR NZ,1B
; POP AF
EI
RETI
ENDIF
;RST10:
; CALL_48 10h
; RET
@ -119,7 +84,6 @@ NOINT: POP AF
;=======================================
IFN TEST_INT
_mInfoALIGN #10,0
; any adress < #C0 with mask %xxxx0000
; â ¡«¨æ  ¤«ï Sprinter POST-Tester-a
@ -140,13 +104,11 @@ TABLE_X:
.vD: DB 10110000b ; "D"
.vE: DB 01100010b ; "E"
.vF: DB 01100011b ; "F"
ENDIF
;=======================================
;
;
;=======================================
IFN TEST_INT
RESTARTS EQU #FFE0
GLOBAL_RESET:
DI
@ -162,7 +124,6 @@ GLOBAL_RESET:
INC DE
DJNZ .compare
JP RESTARTS
ENDIF
;=======================================
_mInfoBLOCK #66-$,0
NMI_Point:
@ -244,59 +205,7 @@ BoardID:
.start: WORD BoardID_start ; BoardID_start
.end: WORD BoardID_end ; BoardID_end
; ;=======================================
; BLOCK #100-$,0
;=======================================
IF TEST_INT
_mInfoALIGN #10,0
; any adress < #C0 with mask %xxxx0000
; â ¡«¨æ  ¤«ï Sprinter POST-Tester-a
TABLE_X: ; â ¡«¨æ  ¤«ï Sprinter POST-Tester-a
.v0: DB %00101000 ; "0" a
.v1: DB %10111101 ; "1" ___
.v2: DB %00110010 ; "2" f | g | b
.v3: DB %00110100 ; "3" |___|
.v4: DB %10100101 ; "4" e | | c
.v5: DB %01100100 ; "5" |___|
.v6: DB %01100000 ; "6" d
.v7: DB %00111101 ; "7"
.v8: DB %00100000 ; "8" a - 7
.v9: DB %00100100 ; "9" b - 6
.vA: DB %00100001 ; "A" f - 4
.vB: DB %11100000 ; "B" g - 3
.vC: DB %01101010 ; "C" e - 2
.vD: DB %10110000 ; "D" c - 1
.vE: DB %01100010 ; "E" d - 0
.vF: DB %01100011 ; "F"
ENDIF
;=======================================
;
;
;=======================================
IF TEST_INT
RESTARTS EQU #FFE0
; ¯®«­ë© ¯¥à¥å¢ â à¥á¥â  áà §ã ¯®á«¥ ¯à®«¨¢ª¨ ª®­äë ¨ CAD.
; § ª¨¤ë¢ ¥âáï ¢ ª àâã ¯®à⮢, ¯®í⮬㠨ᯮ«ì§®¢ âì ­ ¤® å¨âà®.
GLOBAL_RESET:
DI
IM 1
LD HL,RESTARTS
LD DE,RESTARTS_PROG
LD B,RESTARTS_PROG.Size
.compare:
LD A,(DE)
CP (HL)
JR NZ,NO_RESTART
INC HL
INC DE
DJNZ .compare
JP RESTARTS
ENDIF
;=======================================
;
;
;-----[¯¥à¥å¢ â RESET ­¥ á®áâ®ï«áï]-----
@ -331,81 +240,6 @@ NO_RESTART:
OUT (C),A ; Z84.SYS.Data
JP POST_TEST.START
;--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==
IF TEST_INT
;----------------[int]------------------
EXTINT: OR A
RET Z
BIT 7,H
JR Z,.L2
LD C,SLOT2
BIT 6,H
JR Z,.L1
LD C,SLOT3
.L1: IN B,(C)
PUSH BC
OUT (C),A
CALL .JPHL
POP BC
OUT (C),B
RET
; ¯à®¢¥àª  ­  ­ã«¥¢®© á«®â
.L2: BIT 6,H
LD C,SLOT1
JR NZ,.L1 ; ¯à®¤®«¦ ¥¬ ¥á«¨ ­¥­ã«¥¢®© á«®â
PUSH HL
LD HL,-.stackDepth - .switchProcedure.size + .patch-2
ADD HL,SP
PUSH HL
LD HL,-.stackDepth - .switchProcedure.size ; memory stack use!
ADD HL,SP ; stack
PUSH HL ;  ¤à¥á ¯à®£à ¬¬ë .readProcedure
LD DE,.switchProcedure ; ¯¥à¥­¥á⨠¯à®£à ¬¬ã ­  á⥪
EX DE,HL
LD BC,.switchProcedure.size
LDIR
RET
; ¯à®æ¥¤ãà , ¯¥à¥­®á¨¬ ï ­  á⥪ ¤«ï ¢ë§®¢  ¯à¥à뢠­¨ï ¯®«ì§®¢ â¥«ï ¨§ SLOT0
; ®áâ®à®¦­¥¥ á PUSH, ¥á«¨ ­ ¤® ¬­®£®, ⮠㢥«¨ç¨¢ © .stackDepth
.switchProcedure:
DEC DE
POP HL
LD (HL),E
INC HL
LD (HL),D
LD C,SLOT0
IN B,(C)
POP HL
PUSH BC
OUT (C),A
XOR A
OUT (SYS_PORT.RAM),A
.patch EQU $+1-.switchProcedure
CALL .JPHL
DI
XOR A
OUT (SYS_PORT.ROM),A
POP BC
OUT (C),B
RET
.JPHL: JP (HL)
.stackDepth EQU 64 ; à ááâ®ï­¨¥ ®â ª®­æ  ¯à®æ¥¤ãàë ¤® ¢¥à設ë á⥪ .
.switchProcedure.size EQU $-.switchProcedure
ENDIF
;--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==
; ==== POST PROCs =================
@ -784,143 +618,8 @@ set_config:
OUT (BorderColor),A
CALL EMM.CheckColdInit ; ¨­¨æ¨ «¨§ æ¨ï ¯ ¬ïâ¨
POP HL ; ª®­ä¨£ãà æ¨ï
JR Reset_Handler.start
; *************************************
; ‘ç¨â ¥¬, çâ® ¢å®¤ ¢ SETUP ¢á¥£¤  !!!
; *************************************
; LD A,H
; CP #FF
; JR NZ,NO_SETUP_1
; LD A,L
; JR NZ,NO_SETUP_2
;JR Reset_Handler.start
;[---------------------------------------------------------------------]
MODULE Reset_Handler
start: DI
IN A,(SLOT3)
PUSH AF
;----[¯¥à¥å¢ â soft reset #EE port]-----
Check_EE_Port: LD A,ACEX.RET_PORT
LD B,0
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
;LD C,BIOS.SET_PORTS
;CALL @ToBIOS_3D13 ; ¯¥à¥ãáâ ­®¢¨âì ¢­ãâà. ¯®àâ #EE
CALL SET_PORTS
;
LD A,B
AND A
JR Z,Check_Spec_Page
;
OUT (SLOT3),A ; Set restart page
.After_Hard_Rst:
LD HL,(Spec_Page.RET_addr) ; prog address
LD A,(Spec_Page.page_0) ; PAGE0
OUT (SLOT0),A
LD A,(Spec_Page.page_1) ; PAGE1
OUT (SLOT1),A
LD A,(Spec_Page.page_2) ; PAGE2
OUT (SLOT2),A
LD A,(Spec_Page.Reload_Version)
CP #FF
JR Z,.JPHL ; olg logic
; new logic
.ver_2: EXX
LD HL,(Spec_Page.Stack_Point)
LD SP,HL
EXX
AND A
LD A,#FF
LD (Spec_Page.Reload_Version),A
LD A,(Spec_Page.page_3) ; PAGE3
OUT (SLOT3),A
JR Z,.JPHL
PUSH HL
JP EXP_FNS_2_RET
.JPHL: JP (HL)
;
;--[¯¥à¥å¢ â soft/hard reset #41 page]--
Check_Spec_Page:
LD A,Spec_Page
OUT (SLOT3),A
; Check for hardreset flag
LD A,(Spec_Page.flag_R)
CP 'R'
JR NZ,No_Reset_handlers
LD A,(Spec_Page.flag_S)
CP 'S'
JR NZ,No_Reset_handlers
LD A,(Spec_Page.flag_T)
CP 'T'
JR NZ,No_Reset_handlers
;
XOR A
LD (Spec_Page.flag_R),A
JR Check_EE_Port.After_Hard_Rst
;
;---------------------------------------
No_Reset_handlers:/*
; Check ZX ROMS Loaded
LD A,(Spec_Page.flag_Z)
CP 'Z'
JR NZ,.Load_ZXROMS
LD A,(Spec_Page.flag_X)
CP 'X'
JR NZ,.Load_ZXROMS
; [x] 31/12/23 ¯®¤áâà å®¢ª  ®â ­¥¤®ãâ¥çª¨ ¯ ¬ïâ¨
LD A,R
AND #80
JR Z,No_Need_To_Load_ZXROMS
.Load_ZXROMS: XOR A
LD R,A
;
; Load ZX ROM's
init_rom_address EQU #8200 ;!HARDCODE
;
LD HL,init_zx_roms
LD DE,init_rom_address
LD BC,init_zx_roms.length
LDIR
;
CALL init_rom_address
;
LD HL,#C000
LD DE,#C001
LD BC,#3FFF
LD (HL),C
LDIR ; § ¡¨âì FF- ¬¨
; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâà㬠
DEC DE ; Spec_Page.flag_X
LD A,'X'
LD (DE),A
DEC DE ; Spec_Page.flag_Z
LD A,'Z'
LD (DE),A
; ‡ £«ã誠 ¤«ï áâà ­¨æë #41 ­  ¢á直© ¯®¦ à­ë©
LD HL,PROG_NO_ROM
LD DE,#C000+Spec_Page.no_zx_rom
LD BC,PROG_NO_ROM.size
LDIR
;
LD HL,RAM_BIOS_PROG
LD DE,#C000+Spec_Page.to_bios
LD BC,RAM_BIOS_PROG.Length
LDIR
*/
;No_Need_To_Load_ZXROMS:
POP AF
OUT (SLOT3),A
;-------------------------------------------------------------------------------------------------------------------;
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ ­âë:
;[ ] 0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨­¨â¨âì áâà ­¨æã #41 ª ª ¢ 3.04
;[ ] 1 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ áâ à⥠¥á«¨ ­¥â ä« £  ZX
;[ ] 2 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á­®)
;[ ] 3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨­¨â¨âì áâà ­¨æã #41 â ª, ç⮡ ª®¤ ¢ ­¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠 ¯à¨ ®¡à é¥­¨¨
;-------------------------------------------------------------------------------------------------------------------;
ENDMODULE
;
;**************************************
;
@ -979,7 +678,7 @@ PrepareToZX: ; Setup HDD drives for ZX Spectrum mode
PORTS_INIT:
; ¢ª«îç¨âì TURBO
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (CNF_PORT.ON),A
OUT (CNF_PORT.vBIOS),A
; ; RESET to ISA
; LD BC,PORT_ISA
; LD A,#FF
@ -1068,9 +767,10 @@ PORTS_INIT:
LD A,#FF
OUT (C),A
; £«ã訬 ª®¢®ªá
XOR A
OUT (CBL.SYS_PORT),A
LD BC,CBL.OUT
;XOR A
;OUT (CBL.SYS_PORT),A
;LD BC,CBL.OUT
LD BC,0
LD A,#80
.CBL_MUTE: OUT (C),A
DJNZ .CBL_MUTE
@ -1081,7 +781,7 @@ PORTS_INIT:
; ‘¡à®á ª®­â஫«¥à  ¤¨áª®¢®¤ 
; ‚ª«îç¨âì ¤®áâ㯠ª ª®­â஫«¥àã ¤¨áª  (âà¥âìï ª®­ä )
LD A,CNF_PORT.CNF_3 + ROM.BIOS
OUT (CNF_PORT.ON),A
OUT (CNF_PORT.vBIOS),A
OUT (FDC_93.DrvCTRL),A
push hl
pop hl
@ -1092,16 +792,16 @@ PORTS_INIT:
XOR A
OUT (FDC_93.Command),A
; ‚몫îç¨âì ¤®áâ㯠ª ª®­â஫«¥àã ¤¨áª 
LD A,CNF_PORT.CNF_0 + ROM.BIOS
OUT (SYS_PORT.ROM),A
LD A,CNF_PORT.CNF_0 + vROM.BIOS
OUT (CNF_PORT.vBIOS),A
; set HDD1/not-HDD2
LD A,IDE.Chanel.Primary
OUT (IDE.Chanel.Set),A
LD BC,#7FFD
LD A,#10
XOR A
OUT (C),A ; BASIC_48 mode
LD B,#1F
LD A,01
LD A,2
OUT (C),A ; RAM-0 mode !!!
; ®ç¨á⪠ ¡ãä¥à®¢ ª« ¢¨ âãàë ¨ ¬ëè¨ ¢ SIO
CALL .clean_kbd_buf
@ -1132,7 +832,7 @@ PORTS_INIT:
INCLUDE 'FUNC_SERVICE.asm'
INCLUDE 'FLEX.asm'
; INCLUDE 'EXP_SCR.ASZ'
; INCLUDE 'EXP_SCR.ASZ'
INCLUDE 'FUNC_PIC.ASM'
INCLUDE 'FUNC_RAM_ROM_DRV.ASM'
INCLUDE 'FUNC_SYS.ASM'
@ -1166,88 +866,6 @@ ZG_ADDRESS: INCLUDE 'FONT.ASM'
;
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
/*
;
;------------------------[copy zx-roms to zx-pages]---------------------;
; SLOT0 - ROM 8, sys_port - on.
; RAM SLOT0 - page 0
; ¤«ï ०¨¬  zx spectrum
; <E2809A>Ž<C5BD>Ÿ…Ÿ ˆ‡ އ“
; !HARDCODE ­®¬¥à  áâà ­¨æ ¤«ï í¬ã«ïâ®à  <20>‡“
init_zx_roms:
DISP Reset_Handler.init_rom_address
IN A,(SLOT3)
EX AF,AF'
DI
LD A,SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A
INC A ;!HARDCODE LD A,2
LD B,3 ; zx-rom number of pages
;
.loop: EXX
;
out (ROM.SLOT0),a
or %0100'0000 ; !HARDCODE ­®¬¥à  áâà ­¨æ ¤«ï í¬ã«ïâ®à  <20>‡“
out (SLOT3),a
and %1011'1111 ; !HARDCODE ­®¬¥à  áâà ­¨æ ¤«ï í¬ã«ïâ®à  <20>‡“
LD HL,0
LD DE,#C000
LD BC,#4000
LDIR
INC A
EXX
DJNZ .loop
xor a
out (ROM.SLOT0),a
OUT (SYS_PORT.ROM),A
EX AF,AF'
out (SLOT3),a
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
LD A,ACEX.vROM.BASIC_128 ; ROM-ID - BASIC 128
LD B,#42 ;!HARDCODE page
CALL SET_PORTS
;
LD A,ACEX.vROM.BASIC_48 ; ROM-ID - BASIC 48
LD B,#43 ;!HARDCODE page
CALL SET_PORTS
;
LD A,ACEX.vROM.TR_DOS ; ROM-ID - TR-DOS
LD B,#44 ;!HARDCODE page
CALL SET_PORTS
;
; í⨠áâà ­¨æë ¯®ª  ­¥ ¨á¯®«ì§ãîâáï
LD A,ACEX.vROM.BIOS ; ROM-ID - BIOS
;LD B,#45 ;!HARDCODE page
LD B,#41
CALL SET_PORTS
;
LD A,ACEX.vROM.BIOS_3 ; ROM-ID - BIOS-1
;LD B,#46 ;!HARDCODE page
LD B,#41
CALL SET_PORTS
;
LD A,ACEX.vROM.BIOS_4 ; ROM-ID - BIOS-2
;LD B,#47 ;!HARDCODE page
LD B,#41
JP SET_PORTS
; ¬®¦­® § ¤¥©á⢮¢ âì ¥éñ 4 áâà ­¨æë ­  ¯®àâë #E4..#E7
ENT
.length EQU $-init_zx_roms
;-----------------------------------------------------------------------;
;*/
;-----------------------------------------------------------------------;
;!TODO § ¤¥©á⢮¢ âì
GOTO_SPEC:
IN A,(SLOT3)
@ -1322,8 +940,8 @@ BASIC_128:
;--------[ <20>ணࠬ¬ , à §¬¥é ¥¬ ï á #5B00 ¤«ï § ¯ã᪠ Spectrum ]--------;
RES128_PROG:
DISP ZX_VARS.PRINTER_BUFFER ;#5B00
LD A,ROM.BIOS
OUT (SYS_PORT.RAM),A ; ‚®§¢à â ¢ 128k ROM
LD A,vROM.BIOS
OUT (CNF_PORT.vZX_ROM),A ; ‚®§¢à â ¢ 128k ROM
LD C,SLOT3
IN B,(C)
LD A,SYS_PAGE
@ -1339,7 +957,7 @@ RES128_PROG:
OUT (C),A ; 128 ¯®àâ
LD A,E ; ãáâ ­®¢ª  ª®­ä¨£ãà æ¨¨ ¨ ०¨¬  TURBO
OUT (SYS_PORT.RAM),A ; CONFIG_SET
OUT (CNF_PORT.vZX_ROM),A ; CONFIG_SET
INC D
DEC D
@ -1402,46 +1020,31 @@ RESTARTS_PROG: ; !TODO LDConf
;----------------------------[Setup Starter]----------------------------;
MODULE Setup_Starter
; ¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯®  ¤à¥áã 0C000h
; ¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯®  ¤à¥áã #C000
; ¤«ï § ¯ã᪠ Setup
Start:
DISP COMPILE_ADDR.SETUP_STARTER
Exec:
LD A,CNF_PORT.CNF_0 + ROM.EXTENSION
OUT (SYS_PORT.ROM),A
LD A,CNF_PORT.CNF_0 + vROM.EXTENSION
OUT (CNF_PORT.vBIOS),A
LD HL,ROM_MAP.SETUP
LD DE,MEM_MAP.SETUP
LD BC,BLOCK_Setup.Length
LDIR
LD A,CNF_PORT.CNF_0 + ROM.BIOS
OUT (SYS_PORT.ROM),A
LD A,CNF_PORT.CNF_0 + vROM.BIOS
OUT (CNF_PORT.vBIOS),A
;-----------[Check SPACE]
LD A,#FE ; !HARDCODE
LD BC,Port_All_Mode ; keyboard int & acc off
OUT (C),A
LD A,high ZXKeys.Line_7
IN A,(ZXKeys)
CPL
AND 1
; ¢ ॣ¨áâॠA ¯¥à¥¤ ñâáï ­ ¦ â  «¨ ª« ¢¨è  SPACE.
; ¯®â®¬ ¯à®¢¥àï¥âáï ¢ main.asm [space_check]
; ¨ ¥á«¨ ­ ¦ â , â® ¯à®¨á室¨â ¨£­®à ¯ à ¬¥âà 
; "<22>ëáâàë© áâ àâ <20>‡“" ¢® ¢à¥¬ï ¯¥à¥§ £à㧪¨
EX AF,AF'
LD A,#FF ; !HARDCODE
LD BC,Port_All_Mode
OUT (C),A ; keyboard int & acc on, zx_screen & original waits off (for conf >= 3.05)
EX AF,AF'
;----------------------[]
DI
POP HL ;  ¤à¥á ¢®§¢à â  ¢ EXP ¨§ SETUP
LD SP,#8000 ;!HARDCODE
PUSH HL
PUSH AF
JP SETUP_MAIN
ENT
Length EQU $-Setup_Starter.Start
@ -1453,8 +1056,8 @@ Length EQU $-Setup_Starter.Start
RAM_BIOS_PROG: ; for CALL BIOS in #41 page
DISP Spec_Page.to_bios
PUSH AF
LD A,ROM.BIOS
OUT (SYS_PORT.ROM),A
LD A,vROM.BIOS
OUT (CNF_PORT.vBIOS),A
POP AF
RET
ENT
@ -1565,8 +1168,8 @@ JP_HL_48: ;!FIXIT assert with ROM
PUSH HL
SW_ROM: ;!FIXIT assert with ROM
PUSH AF
LD A,ROM.BIOS ;!FIXIT ­¥¯à ¢¨«ì­®¥ ­ §¢ ­¨¥ ª®­áâ ­âë
OUT (SYS_PORT.RAM),A
LD A,vROM.BIOS
OUT (CNF_PORT.vZX_ROM),A
POP AF
RET
;***************************************
@ -1772,8 +1375,8 @@ ROM_DISK.Pages: ;
; „«ï ¢ë§®¢  ä㭪権 ¡¨®á  ¨§ áâà ­¨æë 0 <20>‡“ (Extension)
RET_to_EXTENSION:
PUSH AF
LD A,ROM.EXTENSION
OUT (SYS_PORT.ROM),A
LD A,vROM.EXTENSION
OUT (CNF_PORT.vBIOS),A
POP AF
RST ToBIOS_18
JP RET_to_EXTENSION
@ -1800,8 +1403,8 @@ RET_to_EXTENSION:
_mInfoBLOCK #3FE8-$,#FF
EXP_HDD:
PUSH AF
LD A,ROM.EXTENSION
OUT (SYS_PORT.ROM),A
LD A,vROM.EXTENSION
OUT (CNF_PORT.vBIOS),A
POP AF
RET
;---------------------------------------
@ -1822,8 +1425,8 @@ EXP_HDD:
; ’®çª  ¢å®¤ /¢ë室  ¤«ï TR-DOS
EXP_FNS_RET:
PUSH AF
LD A,ROM.BIOS
OUT (SYS_PORT.RAM),A ; ’®çª  ¢å®¤ /¢ë室  ¨§/¢ TR-DOS ¯à¨ ¢ë§®¢¥ ä㭪権 BIOS #80..#FF
LD A,vROM.BIOS
OUT (CNF_PORT.vZX_ROM),A ; ’®çª  ¢å®¤ /¢ë室  ¨§/¢ TR-DOS ¯à¨ ¢ë§®¢¥ ä㭪権 BIOS #80..#FF
JP EXP_FNS
;---------------------------------------
;

View File

@ -594,14 +594,14 @@ WR_SEC: LD D,5 ;RETRY COUNT
SET_DOS_ON:
EX AF,AF'
LD A,CNF_PORT.CNF_3 + ROM.BIOS
OUT (CNF_PORT.ROM),A ; - OPEN
OUT (CNF_PORT.vBIOS),A ; - OPEN
EX AF,AF'
RET
; ‚àã¡ ¥â ­ã«¥¢ãî ª àâã ¯®à⮢
SET_DOS_OFF:
EX AF,AF'
LD A,CNF_PORT.CNF_0 + ROM.BIOS
OUT (CNF_PORT.ROM),A ; - CLOSE
OUT (CNF_PORT.vBIOS),A ; - CLOSE
EX AF,AF'
RET

View File

@ -802,7 +802,7 @@ ROM_DISK:
LD B,A
XOR A
OUT (ROM.SLOT0),A
OUT (CNF_PORT.ON),A
OUT (CNF_PORT.vBIOS),A
LD A,B
JP .readNext
.stackDepth EQU 8 ; à ááâ®ï­¨¥ ®â ª®­æ  ¯à®æ¥¤ãàë ¤® ¢¥à設ë á⥪ .

View File

@ -78,7 +78,7 @@ RST_CONF:
LD C,SLOT3
IN B,(C)
OUT (C),A ; PAGE á ¯à®è¨¢ª®©
LD DE,(#C090) ; PLD-ID
LD DE,(#C090) ; PLD-ID
OUT (C),B ; RET page
;--[] ;JR INT_PLD
.INT_PLD: ; only for old FLEX10K soft compatible
@ -95,7 +95,8 @@ RST_CONF:
JR Z,.YES_CBL
XOR A
.YES_CBL:
LD BC,CBL.SYS_PORT
;LD BC,CBL.SYS_PORT
LD BC,0
OUT (C),A
LD A,E ; config-byte
@ -141,7 +142,7 @@ RST_CONF:
DI
; ãáâ ­ ¢«¨¢ ¥¬ ­ã«¥¢ãî ª àâã ¯®à⮢
LD A,CNF_PORT.CNF_0
OUT (CNF_PORT.ON),A
OUT (CNF_PORT.vBIOS),A
; ¨ â ª ¯®­ïâ­® çâ® ¤¥« ¥â
IN A,(SLOT3) ; á®å࠭塞 ­®¬¥à ¢®âª­ã⮩ áâà ­¨æë
PUSH AF
@ -223,7 +224,7 @@ RST_CONF:
DI
; ãáâ ­ ¢«¨¢ ¥¬ ­ã«¥¢ãî ª àâã ¯®à⮢
LD A,CNF_PORT.CNF_0
OUT (CNF_PORT.ON),A
OUT (CNF_PORT.vBIOS),A
; ¨ â ª ¯®­ïâ­® çâ® ¤¥« ¥â
IN A,(SLOT3) ; á®å࠭塞 ­®¬¥à ¢®âª­ã⮩ áâà ­¨æë
PUSH AF
@ -418,7 +419,7 @@ REINIT: DEC B
LD A,RESET_PAGE
OUT (SLOT3),A
LD A,CNF_PORT.TURBO.OFF
OUT (SYS_PORT.ROM),A
OUT (CNF_PORT.vBIOS),A
.loop2: LD (#C000),A ; Soft RESET !!!
JR .loop2
;

View File

@ -58,7 +58,7 @@ FN_VERSION:
;----------------------------------------------------------------------;
; [x] 28/01/24 ¤®¡ ¢«¥­  ¯®¤äã­ªæ¨ï ¢ë¤ ç¨ ¨­äë ¯à® Acex
FN_CRIPT:
DJNZ .Acex_ver
DJNZ .error
;
; BoardID_start old address #312A
; BoardID_end old address #312D
@ -73,74 +73,6 @@ FN_CRIPT:
.error: LD A,BIOS.Error.InvalidSubFunction
SCF
RET
;
.Acex_ver:
DJNZ .error
PUSH HL
LD A,R
DI
PUSH AF
;
LD HL,-.stackDepth - .readProcedure.size ; memory stack use!
ADD HL,SP
PUSH HL ;  ¤à¥á ¯à®£à ¬¬ë .readProcedure
LD DE,.readProcedure ; ¯¥à¥­¥á⨠¯à®£à ¬¬ã ­  á⥪
EX DE,HL
LD BC,.readProcedure.size
LDIR ; ¯à®£à ¬¬  ­  á⥪¥
LD A,+(12 xor %0000'1000) ; !HARDCODE bitstream page in rom
RET
.return:;
POP AF
JP PO,.no_EI
EI
.no_EI: CALL .choose_chip
POP DE
LD BC,.chip_ID_TXT.RecordSize
LDIR
.cnf+1: LD DE,bitstream_ver_hex
AND A
RET
;
.choose_chip:
XOR A
LD HL, - ACEX.Chip_ID.K30
ADC HL,DE
LD HL,.chip_ID_TXT.K30
RET Z
OR A ; á­ïâì CF
INC A
LD HL, - ACEX.Chip_ID.K50
ADC HL,DE
LD HL,.chip_ID_TXT.K50
RET Z
POP HL ; ¡ « ­á á⥪ 
.error_unknownChip:
SCF
POP HL
LD A,BIOS.Error.UnknownDevice
RET
;
; ¯à®æ¥¤ãà , ¯¥à¥­®á¨¬ ï ­  á⥪ ¤«ï ç⥭¨ï Acex ID
; ®áâ®à®¦­¥¥ á PUSH, ¥á«¨ ­ ¤® ¬­®£®, ⮠㢥«¨ç¨¢ © .stackDepth
.readProcedure:
OUT (ROM.SLOT0),A ; ROM_PAGE
LD DE,(#100 + 3) ; !HARDCODE §¤¥áì ç¨â ¥âáï Acex ID
XOR A
OUT (ROM.SLOT0),A
OUT (SYS_PORT.ROM),A
JP .return
.stackDepth EQU 2 ; à ááâ®ï­¨¥ ®â ª®­æ  ¯à®æ¥¤ãàë ¤® ¢¥à設ë á⥪ .
.readProcedure.size EQU $-.readProcedure
;
.chip_ID_TXT:
.chip_ID_TXT.K30: DZ "K30"
.chip_ID_TXT.RecordSize EQU $-.chip_ID_TXT
.chip_ID_TXT.K50 DZ "K50"
;.chip_ID_TXT.K100 DZ "K100"
.chip_ID_TXT.Size EQU $-.chip_ID_TXT
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
;EMM_FN7
EMM.CheckColdInit:
@ -349,7 +281,7 @@ FN_TURBO:
LD (SYS_PAGE.CONFIG_DE),A
AND 3
;
OUT (CNF_PORT.ROM),A
OUT (CNF_PORT.vBIOS),A
LD A,B
OUT (SLOT3),A
AND A

View File

@ -1,5 +0,0 @@
; Header of bitstream which non packed
DB #FF,#FF,#62,#7B,#39,#00;,#FF,#FF ; 1k30
; Packed:
;DB #FF,#FF,#62,#7B,#3C,#00;,#01,#FF ; 1k50
;

View File

@ -1,169 +0,0 @@
;
;**********************************;
; ACEX Loading program ;
;**********************************;
MACRO Conf_loader altera_chip
.START: DI
LD BC,#FF*256 + Z84.SYS.Control
XOR A ; Z84.REG.WaitState_Ctrl - register - waits
OUT (C),A ; Z84.SYS.Control
INC C ; LD BC,#FFEF
LD A,4 ; Memory waits set to 1
OUT (C),A ; Z84.SYS.Data
DEC C ; Z84.SYS.Control
DEC A ; LD A,3 - 3-nd register - boundaries
OUT (C),A ; Z84.REG.Misc_Ctrl
INC C ; cs0 enable, cs1 enable, 32-Bit CRC disable, reset output enable, Clock Divide-by-two
OUT (C),A ; Z84.SYS.Data
DEC C ; Z84.SYS.Control
DEC A ; LD A,2 - Z84.REG..CS_Boundary 2-nd register - boundaries
OUT (C),A ; Z84.SYS.Data
INC C
LD A,#FE ; boundaries FFFF..F000 - CS1
OUT (C),A ; EFFF..0000 - CS0
JR .LOOP_S1
;**************************************
BLOCK #38-$,#FF
JP 0
;**************************************
.LOOP_S1:
LD HL,#FEF0 ; !HARDCODE
LD DE,.STRING
.LOOP_S:
LD A,(DE)
CP (HL)
JR NZ,.NO_CNF_RAM
INC E
INC L
JR NZ,.LOOP_S ; !!!!! ¯à¨¢ï§ª  ª  ¤à¥áã ¢ HL
; !TODO ã¡à âì ¢¥©âë ¤«ï ªíè ?
LD BC,#FF*256 + Z84.SYS.Control
LD A,Z84.REG.CS_Boundary
OUT (C),A ; 0 register - waits
INC C
LD A,#F0
OUT (C),A ; boundaries FFFF..1000 - CS1
; ; 0FFF..0000 - CS0
LD HL,#1000 ; !!!!! Load bitstream from Fast-RAM
JR .NEW_SHM
;**************************************
BLOCK #66-$,#FF
JP 0
;**************************************
.NO_CNF_RAM:
LD HL,#0100 ; !!!!! Load bitstream from ROM
.NEW_SHM:
;--------------[conf check]-------------
LD A,H ; á®å࠭塞 áâ à訩  ¤à¥á ­ ç «  ª®­äë,
; ­ ç «® ª®­äë ¤®«¦­® ¡ëâì á ¬« ¤è¨¬  ¤à¥á®¬ = 0
EXX
LD L,0
LD H,A
EX AF,AF'
; ¢ HL  ¤à¥á ¯¥à¢®£® ¡ ©â  ª®­äë
LD DE,.Conf_header
LD B,.Conf_header.length
.conf_header_loop:
LD A,(DE)
CP (HL)
JR NZ,.Conf_Packed
INC DE
INC L
DJNZ .conf_header_loop
;XOR A
JR .exit_conf_check
.Conf_Packed:
SCF
.exit_conf_check:
EX AF,AF'
EXX
;---------------------------------------
LD DE,#FE00 ;!HARDCODE ; !!!!! Check flag "don't erase fast-ram bitstream" - "IM"
LD A,(#FEE0)
CP "I"
JR NZ,.ONES_CONFIG
LD A,(#FEE1)
CP "M"
JR NZ,.ONES_CONFIG
DEC D ; multiple config!
.ONES_CONFIG:
LD IY,SP2000_Loader_Flag
;LD IX,#FFFD
LD IX,ACEX.Config_ID.Sp2000
.LOOP1:
LD A,(HL)
ex af,AF'
ld b,1
jr nc,.no_packed_loop
ex af,AF'
LD B,A ; save byte to B to check later if we worked with zero
OR A
JR NZ,.LOOP1A
INC HL
LD C,(HL) ; set counter
jr .LOOP1A
.no_packed_loop:
ex af,AF'
.LOOP1A:
;---[Sending bits to Altera]---[v]
DUP 7
LD (DE),A
RRCA
EDUP
LD (DE),A
;------------------------------[^]
INC E
LD A,B ; was it zero?
OR A
JR NZ,.LOOP1E
; it was zero so we need to decrement counter
DEC C
JR NZ,.LOOP1A
; end of the counter reached
.LOOP1E:
INC HL
JR .LOOP1
.STRING: DB ACEX.RELOAD_STRING
.Conf_header: include 'src/bios/Loader/bitstream_header.inc'
.Conf_header.length EQU $-.Conf_header
;----------------------;
BLOCK #FE-$,#FF
; <20>â®, ᪮॥ ¢á¥£®, à㤨¬¥­â, â®â á ¬ë© ¡ ©â ®¯¨á â¥«ï ª®­äë,
; ª®â®àë© ¨é¥â § £àã§ç¨ª ¤«ï Sp97 ¯® áâ à®¬ã  ¤à¥áã #C090.
; ‚®âª­ã« ¥£® ¢ ª®­æ¥ § £àã§ç¨ª , ¬®¦¥â ¯®â®¬ ¯à¨£®¤¨âáï.
.DEF_SYM: DW ACEX.Config_ID.Sp2000
;------------------------------[Loader end]
DEFINE Altera_Chip altera_chip
LUA
local file_path = 'Build/ACEX/'
local file_ext = '.BIN'
local altera_ver = sj.get_define("Altera_Chip")
sj.insert_define("Altera_File", '"' .. file_path .. altera_ver .. file_ext .. '"')
ENDLUA
UNDEFINE Altera_Chip
INCBIN Altera_File
UNDEFINE Altera_File
ENDM
;

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

View File

@ -51,149 +51,4 @@ Pallete:
Raster:
INCBIN 'Build/Bin/LOGO_DAT.BIN'
.length EQU $-Raster
IF Pashalki
; !TODO ᤥ« âì âãâ â ¡«¨çªã-áá뫪¨ ­  ­ã¦­ãî â ¡«¨æã á¯à ©â®¢ ¨ § ¢ï§ âì íâ® ­  ¤ âë
MACRO _PASHALKI_CODE
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
ld e,(RebootDate.month)
SLA e
xor a
ld
EX AF,AF'
OUT (SLOT3),A
ENDM
months_table:
WORD days_table.January
WORD days_table.February
WORD days_table.March
WORD days_table.April
WORD days_table.May
WORD days_table.June
WORD days_table.July
WORD days_table.August
WORD days_table.September
WORD days_table.October
WORD days_table.November
WORD days_table.December
days_table:
.January: DZ 1,2,3,4,5,6,7
.February EQU 0
.March EQU 0
.April EQU 0
.May EQU 0
.June EQU 0
.July EQU 0
.August EQU 0
.September EQU 0
.October EQU 0
.November EQU 0
.December: DZ 31
NewYear: INCLUDE './src/bios/logo/use/New_Year.inc'
;.March8: INCLUDE './src/bios/logo/use/March_8.inc'
ENDIF
/*
and a
ld b,0
ld hl,months_table
ld de,months_table+1
ld a,month
call FIND_NEXT
ld hl,days_table
adc hl,de
ld ix,hl
ld e,(hl)
inc hl
ld d,(hl)
ex de,hl
ld de,days_table+1
ld a,day
call FIND_NEXT
ld hl,sprites_table
adc hl,de
call Sprites ; ¢ hl  ¤à¥á ¢ â ¡«¨æ¥  ¤à¥á®¢ â ¡«¨æ á¯à ©â®¢ (SP_Table)
FIND_NEXT:
ld c,(hl) ; ¡¥àñ¬ ¤«¨­ã â ¡«¨æë BYTE
inc hl
CPIR
jr nz,.nothing
sbc hl,de
sla l
ex de,hl
ret
days_table:
WORD december_days_table
WORD january_days_table
WORD march_days_table
WORD december_days_table
;----------------[Months table]----------------[v]
months_table:
BYTE months_table.length-1
.months:
BYTE 01 ; Ÿ­¢ àì
BYTE 03 ; Œ àâ
BYTE 12 ; „¥ª ¡àì
.length equ $-months_table
ASSERT months_table.length < 14, ERROR!!! "months_table" should be less than 14 bytes!
;----------------------------------------------[^]
;-------------[December days table]------------[v]
december_days_table:
BYTE december_days_table.length-1
.months:
BYTE 31 ; <20>®¢ë© £®¤
.length equ $-december_days_table
ASSERT december_days_table.length < 33, ERROR!!! "december_days_table" should be less than 33 bytes!
;----------------------------------------------[^]
;-------------[January days table]-------------[v]
january_days_table:
BYTE january_days_table.length-1
.months:
BYTE 01 ; <20>®¢ë© £®¤
BYTE 02 ; <20>®¢ë© £®¤
BYTE 03 ; <20>®¢ë© £®¤
BYTE 04 ; <20>®¢ë© £®¤
BYTE 05 ; <20>®¢ë© £®¤
BYTE 06 ; <20>®¢ë© £®¤
BYTE 07 ; <20>®¦¤¥á⢮
.length equ $-january_days_table
ASSERT january_days_table.length < 33, ERROR!!! "january_days_table" should be less than 33 bytes!
;----------------------------------------------[^]
;-------------[March days table]------------[v]
march_days_table:
BYTE december_days_table.length-1
.months:
BYTE 08 ; Š« à  –¥âª¨­ ¨ <20>®§  ‹îªá¥¬¡ãà£
.length equ $-december_days_table
ASSERT december_days_table.length < 33, ERROR!!! "december_days_table" should be less than 33 bytes!
;----------------------------------------------[^]
*/
ENDMODULE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -1 +0,0 @@
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>נ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>נ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ס<EFBFBD>ננ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ננ<EFBFBD>נ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ס<EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD>ס<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ס<EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>מ<EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה<EFBFBD><EFBFBD>מ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ו<EFBFBD>המ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>מה<EFBFBD>ו<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ¢¢־ה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה־¡¨ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¨ְ¨־nה<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ו\־¨־¨<D6BE><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־־s¨µה<C2B5><D794><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ה§µs™ּ¢־<C2A2><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱֱ÷ns3¡הְ<D794><D6B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶה¨3sd÷ֱ־<D6B1><D6BE><EFBFBD><EFBFBD><EFBFBD>־µ÷3~\Tּ<54>¨<EFBFBD><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¨<EFBFBD>ּTi~3µ»־<C2BB><D6BE><EFBFBD><EFBFBD>®±y±±־׳§<D7B3><C2A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ׳־¡ָy¡¡¢<C2A1><C2A2><EFBFBD>µֶKi¡ndˆ÷׳¢<D7B3><C2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¢׳¨™dd†@ְ»<D6B0>ֱ¨K׀ְ™~n־ּ¢»<C2A2><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־¢ֱּ~ְ׳Ty»ֱ¨־@<40>׀s¢¨ֶ¢¢<C2A2><C2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷™ֶ¢¨~ּ¡n<C2A1>K־µ־7׳yױ†~\ְ¹§־<7F><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ»q~yו~׳µְְֱ~™\\־÷~¢<C2A2><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>™™~÷ֱnTˆˆֱּˆֱ³<D6B1>־Tּ‰sK3־÷\™<E280BA><E280BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¢ˆn¹־3Ks׳ˆ<D6BC><CB86><EFBFBD>¨־ˆ¨ּ™nֹµs™y<79><E28098><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i~®ֱn™ְ÷־¨<D6BE><C2A8><EFBFBD><EFBFBD>־™®@<40>מ־~׳ְy~n™\¨<><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µd‰~y÷׳~ְמ<D6B0>K¢¢־<C2A2><D6BE><EFBFBD><EFBFBD>»ּ\÷K¨µˆ־÷y~y™n\™µֱ־<D6B1><D6BE>־ֱµTK™~‰÷ּˆ¨÷@®¡Tֱֶ<D6B6><D6B1><EFBFBD><EFBFBD>¡ְ7הyµ<79>~־ְss~‘™‘‘‘ˆ‰‘ˆ™‘™™~s÷־~׀µˆה@÷¨<C3B7><C2A8><EFBFBD><EFBFBD>»÷3ּ§ּ<C2A7>™~±ױְ־®nssn\TTTTnnyssµֱֹ¸ױ~~׀׀§ּ3®ֱ<C2AE><D6B1><EFBFBD><EFBFBD>»־\ˆּ¢~3\ysn¢÷־µ®¢idTsnddi¢®µ־÷¨ssy\3~׀K־»<D6BE><C2BB><EFBFBD><EFBFBD><EFBFBD>µְyKּּּ™sn‰÷־÷׳¹ֶ®®ֶ÷׳÷־÷ds†ּ‰ּּTq÷¹<C3B7><C2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְֶ÷T¨<54>®\µ׳~nו¥¡iµ§ֹֹ¨¨q¸ױ†~׳÷\®ה¨T¹ְ־<D6BE><E280BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¨÷ְ3~§<>dsָָdˆ¹ױױֹˆdiֲױn\<5C>§ˆ7÷¨÷¨<E280BA><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ¨yּ7¹ו<C2B9>ns~ֱּ¹׀<C2B9>¹ְ־~yyT<79>ך¹@ְ¢»<C2A2><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¨־T<D6BE>s§™737ˆ<37>@\™™\@<>733~§ˆ<CB86>\־¨<D6BE><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷µ@־ְ‘¢‘ֶֶו›~¹¹T@§ֱ™‘וּּ‘¡‘ְ׳@¨ֱ<C2A8><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־¢ְ¢@¨¨³iּ3§ָמ~sוו§3ּs¡³¨@¢÷¨־<C2A8><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¨ְֱ÷¡ְֲ3Kˆ<CB86><E284A2>ˆd3־±³³ֶ÷¨<E280BA><C2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»¨§־3@׳y77¢÷¨®73y<33>K7־¨¨³<C2A8><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>³־\³׳ְְְְּּ׳÷ˆKּ»<D6BC><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¨־n333־¨¡־373\ְµ<D6B0><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־yױ־¸ױ׳±¸<D6BE><E280BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»»÷־ְְּµ»ֱ<C2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ»ְֱֱ÷»ֱ<C2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»¢¢»<C2A2><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1 +0,0 @@
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>黢觋犄<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>耨耩鼷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>冼褓毗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>禀冼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>霹佴毗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@ -1,16 +0,0 @@
MODULE _mNewYear
LUA PASS1
make_pic_files ("./src/bios/logo/use/NY_Kokoshnik", 0, 1)
make_pic_files ("./src/bios/logo/use/NY_mustache", 0, 1)
print()
ENDLUA
BYTE 2 ; ª®«¨ç¥á⢮ á¯à ©â®¢
EasterTable 48, 42, 13, 2, sprite1
EasterTable 37, 6, 69, 26, sprite2
sprite1: INCBIN './src/bios/logo/use/NY_Kokoshnik_DAT.bin'
sprite2: INCBIN './src/bios/logo/use/NY_mustache_DAT.bin'
ENDMODULE
;

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -11,11 +11,7 @@ ROM_MAP:
.ROM EQU 0
.LOADER EQU 0
.LOGO EQU 0
IF PACKED_MAIN
.SETUP EQU #1000
ELSE
.SETUP EQU BLOCK_Setup
ENDIF
;
;
@ -45,27 +41,3 @@ COMPILE_ADDR:
.SETUP EQU #8000
.DEPACK EQU #D000
.SETUP_STARTER EQU #C000
;
; ÛÛÛÛÛÛ» ÛÛÛÛÛÛÛ»ÛÛÛÛÛÛ» ÛÛÛÛÛ» ÛÛÛÛÛÛ»ÛÛ» ÛÛ»ÛÛÛÛÛÛÛ»ÛÛÛÛÛÛ»
; ÛÛÉÍÍÛÛ»ÛÛÉÍÍÍͼÛÛÉÍÍÛÛ»ÛÛÉÍÍÛÛ»ÛÛÉÍÍÍͼÛÛº ÛÛɼÛÛÉÍÍÍͼÛÛÉÍÍÛÛ»
; ÛÛº ÛÛºÛÛÛÛÛ» ÛÛÛÛÛÛɼÛÛÛÛÛÛÛºÛÛº ÛÛÛÛÛɼ ÛÛÛÛÛ» ÛÛÛÛÛÛɼ
; ÛÛº ÛÛºÛÛÉÍͼ ÛÛÉÍÍͼ ÛÛÉÍÍÛÛºÛÛº ÛÛÉÍÛÛ» ÛÛÉÍͼ ÛÛÉÍÍÛÛ»
; ÛÛÛÛÛÛɼÛÛÛÛÛÛÛ»ÛÛº ÛÛº ÛÛºÈÛÛÛÛÛÛ»ÛÛº ÛÛ»ÛÛÛÛÛÛÛ»ÛÛº ÛÛº
; ÈÍÍÍÍͼ ÈÍÍÍÍÍͼÈͼ Èͼ Èͼ ÈÍÍÍÍͼÈͼ ÈͼÈÍÍÍÍÍͼÈͼ Èͼ
;
IF PACKED_MAIN
IFNDEF PREBUILD ; ­¥¨§¢¥áâ­ë¥ ¬¥âª¨ ¯à¨ ¯à¥ª®¬¯¨«ï樨 MAIN.BIN
DEPACKER:
.Addr EQU SETUP_MAIN.Depacker
.WorkAddr EQU COMPILE_ADDR.DEPACK
.PackedMAIN EQU UnPacker.PackedMAIN
.UnpackAddr EQU COMPILE_ADDR.MAIN
.CodeLength EQU UnPacker.Length
.UnpackedEXECaddr EQU MAIN_START
.Length EQU DEPACK_DATA.length
;Depacker_start EQU #D000
;Depacked_logo_start EQU #D900
ENDIF
ENDIF

View File

@ -15,32 +15,8 @@ Check_Sum:
RET
;---------------------------------------
;!TODO ¯à¨ªàãâ¨âì ª ROM.BIOS
;----------------[int]------------------
BLOCK #38-$,#FF
; INT: PUSH BC
; PUSH AF
; LD C,SLOT3
; IN B,(C)
; LD A,SYS_PAGE
; OUT (C),A
; LD A,(SYS_PAGE.INT_ID)
; CP #AA
; JR Z,YESINT
; OUT (C),B
; JR NOINT
; YESINT: PUSH HL
; LD HL,(SYS_PAGE.INT_ADRESS)
; LD A,H
; OR L
; LD A,(SYS_PAGE.INT_PAGE)
; OUT (C),B
; CALL NZ,EXTINT
; POP HL
; NOINT: POP AF
; POP BC
EI
RETI
;---------------------------------------
@ -50,93 +26,6 @@ Check_Sum:
NMI: RETN
;---------------------------------------
; ;----------------[int]------------------
; EXTINT: OR A
; RET Z
; ;LD C,SLOT1
; BIT 7,H
; JR Z,.L2
; LD C,SLOT2
; BIT 6,H
; JR Z,.L1
; LD C,SLOT3
; .L1: IN B,(C)
; PUSH BC
; OUT (C),A
; CALL .JPHL
; POP BC
; OUT (C),B
; RET
; ; ¯à®¢¥àª  ­  ­ã«¥¢®© á«®â
; .L2: BIT 6,H
; LD C,SLOT1
; JR NZ,.L1 ; ¯à®¤®«¦ ¥¬ ¥á«¨ ­¥­ã«¥¢®© á«®â
; ; ‚Ž’ ’“’ ŒŽ†<C5BD>Ž <E280B9>ˆœ <20><>Ž…„“<E2809E>“ „‹Ÿ <20>Ž„<E28099>ŽŠˆ <E28098><EFBFBD>ˆ SLOT0 ˆ
; ; <20><EFBFBD>…•Ž„ <20>Ž <20><><EFBFBD><E2809A>ˆž Ž<><C5BD><EFBFBD>ŽˆŠ <20>Žœ‡ŽŸ —…<E28094>…‡ ¯à®æ¥¤ãàã ­  áâíª, ­ ¯à¨¬¥à
; IF TEST_INT
; LD HL,-.stackDepth - .switchProcedure.size + .patch+2
; ADD HL,SP
; PUSH HL
; LD HL,-.stackDepth - .switchProcedure.size ; memory stack use!
; ADD HL,SP ; stack
; PUSH HL ;  ¤à¥á ¯à®£à ¬¬ë .readProcedure
; LD DE,.switchProcedure ; ¯¥à¥­¥á⨠¯à®£à ¬¬ã ­  á⥪
; EX DE,HL
; LD BC,.switchProcedure.size
; LDIR
; RET
; ; ¯à®æ¥¤ãà , ¯¥à¥­®á¨¬ ï ­  á⥪ ¤«ï ¢ë§®¢  ¯à¥à뢠­¨ï ¯®«ì§®¢ â¥«ï ¨§ SLOT0
; ; ®áâ®à®¦­¥¥ á PUSH, ¥á«¨ ­ ¤® ¬­®£®, ⮠㢥«¨ç¨¢ © .stackDepth
; .switchProcedure:
; DEC DE
; POP HL
; LD (HL),E
; INC HL
; LD (HL),D
; LD C,SLOT0
; IN B,(C)
; PUSH BC
; OUT (C),A
; XOR A
; OUT (SYS_PORT.RAM),A
; .patch EQU $+1-.switchProcedure
; CALL .JPHL
; DI
; XOR A
; OUT (SYS_PORT.ROM),A
; POP BC
; OUT (C),B
; RET
; .JPHL: JP (HL)
; .stackDepth EQU 32 ; à ááâ®ï­¨¥ ®â ª®­æ  ¯à®æ¥¤ãàë ¤® ¢¥à設ë á⥪ .
; .switchProcedure.size EQU $-.switchProcedure
; ELSE
; SCF
; RET
; .JPHL: JP (HL)
; ENDIF
;---------------------------------------
/*
*/
;
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
@ -160,49 +49,11 @@ NMI: RETN
BLOCK_Setup EQU $
;
IF PACKED_MAIN
BLOCK ROM_MAP.SETUP-$,#FF
DISP COMPILE_ADDR.SETUP
; Depacker version
SETUP_MAIN:
LD HL,DEPACKER.UnpackedEXECaddr; â®çª  ¢å®¤  ¢ à á¯ ª®¢ ­­®¬ ª®¤¥
PUSH HL
LD DE,DEPACKER.WorkAddr ;  ¤à¥á ¯à®æ¥¤ãàë ¤¥¯ ª¥à 
PUSH DE
LD HL,DEPACKER.Addr
LD BC,DEPACKER.Length
LDIR
LD HL,DEPACKER.PackedMAIN ; £¤¥  à娢
LD DE,DEPACKER.UnpackAddr ; ªã¤  à á¯ ª®¢ë¢ âì
RET
.Depacker EQU $
ENT
;-----------------[v]
DEPACK_DATA:
DISP DEPACKER.WorkAddr
MODULE UnPacker
INCLUDE 'src/bios/ROM/SETUP/DEHRUST.asm' ; !TODO ᤥ« âì ­  LUA  ¢â®¢ë¡®à ¤¥ª®¬¯à¥áá®à  ¨ ª®¬¯à¥áá®à 
PackedMAIN: INCBIN 'Build/Bin/temp/MAIN.PAK'
ENDMODULE
ENT
DEPACK_DATA.length EQU $-DEPACK_DATA
;-----------------[^]
ELSE
DISP COMPILE_ADDR.SETUP
ShowInfo 'Setup block DISP start', 1 ; !!!!! test
SETUP_MAIN: INCLUDE 'src/bios/ROM/SETUP/Main.asm'
SETUP_MAIN: INCLUDE 'crazy bios/ROM/SETUP/Main.asm'
ShowInfo 'Setup block DISP end', 1 ; !!!!! test
ENT
ENDIF
ShowInfo 'Setup block of ROM end', 0 ; !!!!! test
BLOCK_Setup.Length EQU $-BLOCK_Setup
@ -210,30 +61,6 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup
;
;
; !FIXIT ᤥ« âì í⨠䨪á¨à®¢ ­­ë¥  ¤à¥á  ®â¤¥«ì­ë¬ ä ©«®¬ ¨ á IF/ELSE ¨ ¯®¤ª«îç âì ¨å ¯®â®¬ ªã¤  ­ ¤®.
;----------------------------------------------------------------------;
; BLOCK #3CC0-$,255
; no-magics!
;MAGIC_1: ; ‡€ƒ‹“˜Š€ „‹Ÿ MAGIC
; PUSH AF
; LD A,ROM.EXT
; OUT (SYS_PORT.OFF),A
; POP AF
; JP MAGIC_1
;MAGIC_3:
; PUSH AF
; LD A,ROM.EXT
; OUT (SYS_PORT.OFF),A
; POP AF
; RETN
;MAGIC_2:
;; CALL MG_BEGIN
; JR MAGIC_3
;*************************
_mInfoBLOCK #3CE0-$,#FF ;!TEST 0
;SW_ROM_1:
@ -263,24 +90,14 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup
PUSH HL
;SW_ROM:
PUSH AF
LD A,ROM.BIOS
OUT (SYS_PORT.RAM),A
LD A,vROM.BIOS
OUT (CNF_PORT.vZX_ROM),A
POP AF
RET
;***************************************
;----------------------------------------------------------------------;
;
;!TODO ᯥªâà㬮¢áª¨¥ ã⨫¨âë
;----------------------------------------------------------------------;
; _mInfoBLOCK #3CFA-$,#FF
; LD A,0 ;!HARDCODE
; OUT (SYS_PORT.OFF),A
; POP AF
;----------------------------------------------------------------------;
;
;
;----------------------------------------------------------------------;
_mInfoBLOCK #3D00-$,#FF
@ -289,12 +106,6 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup
RET
;***************************************
;***************************************
; BLOCK #3D02-$,FF
; !TODO ¬®¦­® ®¯à¨å®¤®¢ âì âãâ 17 ¡ ©â®¢
;
;***************************************
;***************************************
_mInfoBLOCK #3D13-$,#FF
NOP
@ -302,12 +113,6 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup
JP DOS_OFF
;***************************************
;***************************************
; BLOCK #3D17-$,FF
; !TODO ¬®¦­® ®¯à¨å®¤®¢ âì âãâ 233 ¡ ©â 
;
;***************************************
;***************************************
_mInfoBLOCK #3E00-$,#FF
;DOS_OFF:
@ -332,36 +137,12 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup
;***************************************
;***************************************
; BLOCK #3E16-$,FF
; !TODO ¬®¦­® ®¯à¨å®¤®¢ âì âãâ 10 ¡ ©â®¢
;
;***************************************
;
;
;---------------------------------------
; _mInfoBLOCK #3FC6-$,#FF
;!FIXIT ¯¥à¥¤¥« âì <20>‡“ âà¤®á  ¨ ᯥªâà㬮¢ ¯®¤ ¯à ¢¨«ì­ë© ¢ë§®¢ ä㭪権 ¡¨®á  (  ­¥ ¢¬¥áâ® ä㭪権 4x ä㭪樨 0x)
; ¨«¨ ¬®¦­® ¤®¡ ¢¨âì ä㭪樨
; TRDOS_HD_CMD:
; ; LD A,C
; ; OR #40
; ; LD C,A
; POP AF
; SET 6,C
; RST_to_BIOS
; JR RET_TO_TRDOS
;---------------------------------------
;
;--------------[GOTO BIOS]--------------
; call BIOS from EXTENSION
_mInfoBLOCK #3FD0-$,#FF ; ToBIOS_FromEXT
PUSH AF
LD A,ROM.BIOS ; set BIOS to slot0
OUT (SYS_PORT.ROM),A
LD A,vROM.BIOS ; set BIOS to slot0
OUT (CNF_PORT.vBIOS),A
POP AF
RET
;---------------------------------------
@ -378,48 +159,18 @@ TRDOS_HD_CMD:
;---------------------------------------
;!FIXIT ®áâ âª¨ ®â â¥á⮢ ˆ¢ ­  á® §¢ãª®¢®© ª à⮩
;-------------[SND_TEST_RET]-------------
_mInfoBLOCK #3FE0-$,#FF
; SND_TEST_RET:
; LD A,ROM.BIOS
; OUT (SYS_PORT.RAM),A
; ;JP SOUND_TEST
; JP #0000
;---------------------------------------
;------------[HDD_5x portal]------------
; â®çª  ¢å®¤ /¢ë室  ¤«ï ä㭪権 5å ¨§ BIOS
_mInfoBLOCK #3FE8-$,#FF
;RET_TO_EXP:
; PUSH AF
; LD A,ROM.BIOS
; OUT (SYS_PORT.ROM),A
; JP HDD_FN_5x
;---------------------------------------
;!FIXIT Œ®¦­® ¯®¯à ¢¨âì ­®¬¥à  ä㭪権 ¯à¨ ¢ë§®¢ å ¨§ TR-DOS ¨ ¯à룠âì áà §ã ¢ BIOS
;-------[ From TR-DOS to API 4x ]-------
_mInfoBLOCK #3FF0-$,#FF
RET_TO_TRDOS:
PUSH AF
DI
LD A,ROM.BIOS
OUT (SYS_PORT.RAM),A
LD A,vROM.BIOS
OUT (CNF_PORT.vZX_ROM),A
JR TRDOS_HD_CMD ; âãâ ­¥ 墠⨫® ¬¥áâ  ¢ 1 ¡ ©â, ç⮡ áà §ã ᤥ« âì JP
;---------------------------------------
;-----[???????????????????????????]-----
_mInfoBLOCK #3FF8-$,#FF
; PUSH AF
; LD A,ROM.BIOS
; OUT (SYS_PORT.RAM),A
; JP #0000
;---------------------------------------
_mInfoBLOCK #4000-$,#FF
;=======================================

View File

@ -1,242 +0,0 @@
; INCLUDE '../mem_map.inc'
; ORG Depacker_start
; DeHRUSTer v1.2
; HL - ­ ç «®  à娢 
; DE -  ¤à¥á à á¯ ª®¢ª¨
;--------------[DEPACKER]---------------
DEHRUST:
PUSH DE
PUSH HL
INC HL
INC HL
LD C,(HL)
INC HL
LD B,(HL)
INC HL
DEC BC
EX DE,HL
ADD HL,BC
EX DE,HL
LD C,(HL)
INC HL
LD B,(HL)
DEC BC
POP HL
ADD HL,BC
SBC HL,DE
ADD HL,DE
JR C,.LL4019
LD D,H
LD E,L
.LL4019:
LDDR
EX DE,HL
POP DE
LD C,#0C
ADD HL,BC
PUSH HL
POP IX
LD A,#03
.LL4025:
DEC HL
LD B,(HL)
DEC HL
LD C,(HL)
PUSH BC
DEC A
JR NZ,.LL4025
LD B,A
EXX
LD D,#BF
LD C,#10
CALL .LL4115
.LL4036:
LD A,(IX+#00)
INC IX
EXX
.LL403C:
LD (DE),A
INC DE
.LL403E:
EXX
.LL403F:
ADD HL,HL
DJNZ .LL4045
CALL .LL4115
.LL4045:
JR C,.LL4036
LD E,#01
.LL4049:
LD A,#80
.LL404B:
ADD HL,HL
DJNZ .LL4051
CALL .LL4115
.LL4051:
RLA
JR C,.LL404B
CP #03
JR C,.LL405D
ADD A,E
LD E,A
XOR C
JR NZ,.LL4049
.LL405D:
ADD A,E
CP #04
JR Z,.LL40C4
ADC A,#FF
CP #02
EXX
.LL4067:
LD C,A
.LL4068:
EXX
LD A,#BF
JR C,.LL4082
.LL406D:
ADD HL,HL
DJNZ .LL4073
CALL .LL4115
.LL4073:
RLA
JR C,.LL406D
JR Z,.LL407D
INC A
ADD A,D
JR NC,.LL4084
SUB D
.LL407D:
INC A
JR NZ,.LL408D
LD A,#EF
.LL4082:
RRCA
CP A
.LL4084:
ADD HL,HL
DJNZ .LL408A
CALL .LL4115
.LL408A:
RLA
JR C,.LL4084
.LL408D:
EXX
LD H,#FF
JR Z,.LL409B
LD H,A
INC A
LD A,(IX+#00)
INC IX
JR Z,.LL40A6
.LL409B:
LD L,A
ADD HL,DE
LDIR
.LL409F:
JR .LL403E
.LL40A1:
EXX
RRC D
JR .LL403F
.LL40A6:
CP #E0
JR C,.LL409B
RLCA
XOR C
INC A
JR Z,.LL40A1
SUB #10
.LL40B1:
LD L,A
LD C,A
LD H,#FF
ADD HL,DE
LDI
LD A,(IX+#00)
INC IX
LD (DE),A
INC HL
INC DE
LD A,(HL)
JP .LL403C
.LL40C4:
LD A,#80
.LL40C6:
ADD HL,HL
DJNZ .LL40CC
CALL .LL4115
.LL40CC:
ADC A,A
JR NZ,.LL40F3
JR C,.LL40C6
LD A,#FC
JR .LL40F6
.LL40D5:
LD B,A
LD C,(IX+#00)
INC IX
CCF
JR .LL4068
.LL40DE:
CP #0F
JR C,.LL40D5
JR NZ,.LL4067
LD B,#03
EX DE,HL
.LL40E7:
POP DE
LD (HL),E
INC HL
LD (HL),D
INC HL
DJNZ .LL40E7
LD HL,#2758
EXX
RET
.LL40F3:
SBC A,A
LD A,#EF
.LL40F6:
ADD HL,HL
DJNZ .LL40FC
CALL .LL4115
.LL40FC:
RLA
JR C,.LL40F6
EXX
JR NZ,.LL40B1
BIT 7,A
JR Z,.LL40DE
SUB #EA
ADD A,A
LD B,A
.LL410A:
LD A,(IX+#00)
INC IX
LD (DE),A
INC DE
DJNZ .LL410A
JR .LL409F
.LL4115:
LD B,C
LD L,(IX+#00)
INC IX
LD H,(IX+#00)
INC IX
RET
Length EQU $-DEHRUST
in a,(#FF)
;---------------------------------------
;---------------[MAIN.HR]---------------
;Depacker.packcode EQU $$$
;PackedMAIN EQU $
; INCBIN 'Build/Bin/temp/MAIN.HR'
;---------------------------------------
;

View File

@ -48,7 +48,7 @@
; ENCODING "DOS"
DEVICE ZXSPECTRUM4096 ; ¬®¤¥«ì á 4 ¬¥âà ¬¨ ¯ ¬ïâ¨
MMU 2 e, 0 ; áâà ­¨æ  0 ¢ ¡ ­ªã 2 ¨ ¯à®¢¥àª  ­  £à ­¨æë.
INCLUDE 'src/bios/shared/includes.inc'
INCLUDE 'crazy bios/shared/includes.inc'
ORG COMPILE_ADDR.MAIN
OUTPUT 'Build/Bin/temp/MAIN.BIN'
ENDIF
@ -82,13 +82,11 @@ TPOINTD EQU TEMP - SYS_PAGE.RAMD_KEYS.NUM - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11
;=======================================
;SETUP_MAIN:
MAIN_START:
POP AF
POP HL
LD SP,STACK
PUSH HL
LD (RET_TO_EXP_ADDR),hl
JP START
; DB "(C) 2002 PETERS PLUS LTD "
RET_TO_EXP_ADDR: WORD 0000 ; place for save ret address to exp
;
@ -372,8 +370,8 @@ EXIT_SETUP:
; JR Z,XFLEX
; LD A,#EA ;SPECTRUM
;XFLEX:
LD A,ROM.BIOS
OUT (SYS_PORT.ROM),A
LD A,vROM.BIOS
OUT (CNF_PORT.vBIOS),A
POP HL ; ¯¨å ¥âáï ¢ EXP.ASM ¢ ¯à®æ¥¤ãà¥
JP (HL)
; LD (JMPHL),HL
@ -457,7 +455,6 @@ Start_again:
ld sp,STACK-2
START:
DI
PUSH AF
XOR A
LD (ERRSUM),A
LD (ERRSUM.ErrDateTime),A
@ -527,10 +524,6 @@ START:
;R06
LD BC,CMOS_CELL.BootUpParams.Mask.QuickStartROM ;#010E
CALL G_VALUE
POP BC
INC B
DEC B
JR NZ,QIGNORE ; १ã«ìâ â ¯à®¢¥àª¨ Space ¨§ exp.asm [space_check]
PUSH AF
LD C,SLOT3
IN B,(C)
@ -1305,32 +1298,8 @@ ZXCLS: LD HL,#4000
RET
GET_ID: LD HL,memBUFFER.ID
;LD C,BIOS.FN_VERSION
;JP_to_BIOS
JP FN_VERSION
;R01GET_ID
;R01 LD A,#10
;R01 LD BC,#1FFD
;R01 OUT (C),A
;R01 LD C,SLOT3
;R01 IN B,(C)
;R01 PUSH BC
;R01 LD A,#EE
;R01 OUT (C),A
;R01 LD HL,#FFD0
;R01 LD DE,ID_BUFFER
;R01 LD BC,#30
;R01 LDIR
;R01 POP BC
;R01 OUT (C),B
;R01 XOR A
;R01 LD BC,#1FFD
;R01 OUT (C),A
;R01 RET
RCHAIN:
LD E,L
LDI
@ -1584,49 +1553,6 @@ ZXMODE_SETUP: IN A,(SLOT3)
PUSH AF
LD A,Spec_Page
OUT (SLOT3),A
;
LD BC,CMOS_CELL.Options.Mask.LoadZXroms
CALL G_VALUE
;
OR A
JR Z,.init_41h
DEC A
JR Z,.CheckAndLoad
DEC A
JR Z,.Load_ZXROMS
;!TODO
;DEC A
;JR Z,.New_init_41h
;
; Check ZX ROMS Loaded
.CheckAndLoad: LD A,(Spec_Page.flag_Z)
CP 'Z'
JR NZ,.Load_ZXROMS
LD A,(Spec_Page.flag_X)
CP 'X'
JR NZ,.Load_ZXROMS
; [x] 31/12/23 ¯®¤áâà å®¢ª  ®â ­¥¤®ãâ¥çª¨ ¯ ¬ïâ¨
LD A,R
AND #80
JR Z,.No_Need_To_Load_ZXROMS
.Load_ZXROMS: XOR A
LD R,A
;
; Load ZX ROM's
call init_zx_roms
;
LD HL,#C000
LD DE,#C001
LD BC,#3FFF
LD (HL),C
LDIR ; § ¡¨âì FF- ¬¨
; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâà㬠
DEC DE ; Spec_Page.flag_X
LD A,'X'
LD (DE),A
DEC DE ; Spec_Page.flag_Z
LD A,'Z'
LD (DE),A
; ‡ £«ã誠 ¤«ï áâà ­¨æë #41 ­  ¢á直© ¯®¦ à­ë©
.init_41h: LD HL,PROG_NO_ROM
LD DE,#C000 + Spec_Page.no_zx_rom
@ -1642,78 +1568,8 @@ ZXMODE_SETUP: IN A,(SLOT3)
OUT (SLOT3),A
RET
;
;--------------------[copy zx-roms to zx-pages]-----------------;
; SLOT0 - ROM 8, sys_port - on.
; RAM SLOT0 - page 0
; ¤«ï ०¨¬  zx spectrum
; <E2809A>Ž<C5BD>Ÿ…Ÿ ˆ‡ އ“
; !HARDCODE ­®¬¥à  áâà ­¨æ ¤«ï í¬ã«ïâ®à  <20>‡“
init_zx_roms: IN A,(SLOT3)
EX AF,AF'
;
DI
LD A,SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A
INC A ;!HARDCODE LD A,2
LD B,3 ; zx-rom number of pages
;
.loop: EXX
;
out (ROM.SLOT0),a
or %0100'0000 ; !HARDCODE ­®¬¥à  áâà ­¨æ ¤«ï í¬ã«ïâ®à  <20>‡“
out (SLOT3),a
and %1011'1111 ; !HARDCODE ­®¬¥à  áâà ­¨æ ¤«ï í¬ã«ïâ®à  <20>‡“
;
LD HL,0
LD DE,#C000
LD BC,#4000
LDIR
;
INC A
EXX
DJNZ .loop
;
xor a
out (ROM.SLOT0),a
OUT (SYS_PORT.ROM),A
EX AF,AF'
out (SLOT3),a
;
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
LD A,ACEX.vROM.BASIC_128 ; ROM-ID - BASIC 128
LD B,#42 ;!HARDCODE page
CALL SET_PORTS
;
LD A,ACEX.vROM.BASIC_48 ; ROM-ID - BASIC 48
LD B,#43 ;!HARDCODE page
CALL SET_PORTS
;
LD A,ACEX.vROM.TR_DOS ; ROM-ID - TR-DOS
LD B,#44 ;!HARDCODE page
CALL SET_PORTS
;
; í⨠áâà ­¨æë ¯®ª  ­¥ ¨á¯®«ì§ãîâáï
LD A,ACEX.vROM.BIOS ; ROM-ID - BIOS
;LD B,#45 ;!HARDCODE page
LD B,#41
CALL SET_PORTS
;
LD A,ACEX.vROM.BIOS_3 ; ROM-ID - BIOS-1
;LD B,#46 ;!HARDCODE page
LD B,#41
CALL SET_PORTS
;
LD A,ACEX.vROM.BIOS_4 ; ROM-ID - BIOS-2
;LD B,#47 ;!HARDCODE page
LD B,#41
JP SET_PORTS
; ¬®¦­® § ¤¥©á⢮¢ âì ¥éñ 4 áâà ­¨æë ­  ¯®àâë #E4..#E7
;---------------------------------------------------------------------[]
;---------------------------------------
INCLUDE 'src/bios/ROM/SETUP/messages.z80'
INCLUDE 'crazy bios/ROM/SETUP/messages.z80'
;---------------------------------------
;
@ -1741,7 +1597,7 @@ STACK EQU #C000
DISPLAY '-----[Set_Pictures Prebuild start]-----'
MMU 1 e, 0 ; áâà ­¨æ  0 ¢ ¡ ­ªã 0 ¨ ¯à®¢¥àª  ­  £à ­¨æë.
ORG ROM_MAP.LOGO
INCLUDE 'src/bios/logo/Set_Pictures.asm'
INCLUDE 'crazy bios/logo/Set_Pictures.asm'
DISPLAY '-----[Set_Pictures Prebuild done ]-----'
ELSE
DISPLAY '------------------[Main.asm]------------------'

View File

@ -68,20 +68,6 @@ SETTINGS:
CALL POSTMSG
LD BC,SettingsItemsTabsAddrs.max*256
IF NEW_FEATURE
; LD HL,CurrentDateTime
; CALL GETTIME
; LD HL,CurrentDateTime
; LD A,(HL)
; AND #F0
ENDIF
STT1: LD A,C
LD (ITEM),A
PUSH BC
@ -136,15 +122,6 @@ AGAIN: LD HL,AGAIN
JP Z,INCVAL
CP "-"
JP Z,DECVAL
IF NEW_FEATURE
; ENTER
LD HL,#280D
AND A
SBC HL,DE
JP Z,pressedEnter
ENDIF
; F2
LD HL,#3C00
AND A
@ -288,36 +265,6 @@ PTEXT: call Get_Item_Address
JP PITEM
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[v]
IF NEW_FEATURE
; New procedure with IY reg
LocateCursor:
call Get_Item_Address
LD E,(IY+MenusItem.Column)
LD D,(IY+MenusItem.Line)
ld a,(IY+MenusItem.Name)
push iy
call FindStringAddr
LD BC,#0100
XOR A
CPIR
LD A,#FF
SUB C
ADD A,E
LD E,A
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE
pop iy
ld a,(iy+MenusItem.FirstString)
call FindStringAddr
LD BC,#0100
XOR A
CPIR
LD A,#FF
SUB C
LD B,A
ret
ELSE
LocateCursor:
call Get_Item_Address
LD E,(HL)
@ -350,7 +297,6 @@ LocateCursor:
SUB C
LD B,A
ret
ENDIF
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^]
PCURSOR:
@ -393,68 +339,6 @@ WRMCLR: DB COLORS.CGA.PAPER.BLUE + COLORS.CGA.INC.WHITE
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[v]
IF NEW_FEATURE
; New procedure with IY reg
INCVAL: call Get_Item_Address
ld A,(IY+MenusItem.Type)
AND A
RET NZ ; ¯à®¢¥àª  ­  ⨯, ¤ «ìè¥ ¥á«¨ paramLine
LD A,(IY+MenusItem.CMOSreg)
PUSH AF
CALL READCMS
LD C,A
AND (IY+MenusItem.ValueMask)
CP (IY+MenusItem.ValueMax)
LD A,C
JR Z,OVERI
LD B,(IY+MenusItem.ValueMask)
CALL ADDVAL
ADD A,B
JR OVER
OVERI: XOR (IY+MenusItem.ValueMax)
OVER: LD B,A
POP AF
CALL WRITCMS
PUSH IY
PUSH IY
POP HL
CALL PITEM
POP IY
ld l,(IY+MenusItem.Action)
ld h,(IY+MenusItem.Action+1)
jp (hl)
DECVAL: call Get_Item_Address
ld A,(IY+MenusItem.Type)
AND A
RET NZ ; ¯à®¢¥àª  ­  ⨯, ¤ «ìè¥ ¥á«¨ paramLine
LD A,(IY+MenusItem.CMOSreg)
PUSH AF
CALL READCMS
LD C,A
AND (IY+MenusItem.ValueMask)
LD A,C
JR Z,OVERD
LD B,(IY+MenusItem.ValueMask)
CALL ADDVAL
SUB B
JR OVER
OVERD: OR (IY+MenusItem.ValueMax)
JR OVER
pressedEnter:
; !TODO New Feature
ld a,(iy+MenusItem.Type)
and a
ret z
ld l,(iy+MenusItem.Action)
ld h,(iy+MenusItem.Action+1)
jp (HL)
ELSE
INCVAL: call Get_Item_Address
INC HL
INC HL
@ -508,8 +392,6 @@ DECVAL: call Get_Item_Address
OVERD:
OR (HL)
JR OVER
ENDIF
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^]
; B - MASK
@ -524,48 +406,6 @@ ADDV2: RLC B
RET
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[v]
IF NEW_FEATURE
; IY - item's address
; New procedure with IY reg
PITEM: LD E,(IY+MenusItem.Column) ; x-coordinate
LD D,(IY+MenusItem.Line) ; y-coordinate
;CALL ScreenPOS.LOCAT
CALL LP_SET_PLACE ; set position of item
LD A,(IY+MenusItem.Name)
CALL POSTMSG
PUSH IY
LD BC,MenusItem.FirstString
ADD IY,BC
EX (SP),IY
POP HL ; âãâ  ¤à¥á áâப¨ ¯¥à¢®£® ¯ à ¬¥âà 
LD A,(IY+MenusItem.Type)
AND A
JR NZ,.printParameter ; ¥á«¨ íâ® ­¥ áâப  á ¨§¬¥­ï¥¬ë¬ ¯ à ¬¥â஬, â® ¯à®áâ® ¯¥ç âì
LD A,(IY+MenusItem.CMOSreg) ; address of next parametr
CALL READCMS ; read item`s value from cmos
LD B,(IY+MenusItem.ValueMask) ; item's value mask
AND B
.getParameterNum:
RRCA
RRC B
JR NC,.getParameterNum
RLCA
OR A
jr Z,.printParameter ; ¯¥à¢ë© ¯ à ¬¥âà ¢ë¢®¤¨¬?
ld c,a
xor a
ld b,a
add hl,bc ; ­ å®¤¨¬ ­®¬¥à ¯ à ¬¥âà 
.printParameter:
ld a,(hl)
jp POSTMSG
ELSE
; !FIXIT ¢ë§®¢ë ¯à®æ¥¤ãà ¡¨®á  ­ ¤¥îâáï ­  â®, çâ® ­¥ª®â®àë¥ à¥£¨áâàë ­¥ ¯®àâïâáï
; HL - item's address
PITEM: LD E,(HL) ; x-coordinate
@ -600,7 +440,6 @@ PITEM: LD E,(HL) ; x-coordinate
.printParameter:
ld a,(hl)
jp POSTMSG
ENDIF
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^]
; <20>¥ ¯®àâ¨â HL
@ -743,24 +582,6 @@ SETDEF: ;!TODO
RET
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[v]
; New procedure with IY reg
IF NEW_FEATURE
Get_Item_Address:
LD A,(ITEM)
LD L,A
LD H,0
LD DE,SettingsItemsTabsAddrs
ADD HL,HL
ADD HL,DE
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
PUSH HL
POP IY
RET
ELSE
Get_Item_Address:
LD A,(ITEM)
LD L,A
@ -775,7 +596,6 @@ Get_Item_Address:
INC HL
INC HL
RET
ENDIF
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-[^]
;
MODULE OnChangeAction
@ -784,44 +604,6 @@ nothing:
; !TODO New Feature
; !TODO § ¬ãâ¨âì çâ®-⮠⨯  API ¤«ï à¨á®¢ ­¨ï ¢á¯«ë¢ îé¨å ®ª®­
IF NEW_FEATURE
SetTime:
xor a
ld hl,#050E
ld de,#0C20
ld ix,memBUFFER.Shared
CALL WIN_COPY
LD DE,#0C20 ; !HARDCODE
ld b,5
DI
.loop: push bc
push de
CALL LP_SET_PLACE
; ¯¥ç âì  âਡã⮢
LD E,COLORS.CGA.INC.RED
LD B,#0E
CALL LP_PRINT_ATR
pop de
inc d
pop bc
DJNZ .loop
CALL setFRAME.single
LD DE,#0C20 ;yx. y=0..1F, x=0..4F ª®®à¤¨­ âë «¥¢®£® ¢¥àå­¥£® 㣫 
LD BC,#050E ;yx. ¤«¨­  ¨ ¢ëá®â  «¨­¨¨
CALL PBORDER
CALL KEY
xor a
ld hl,#050E
ld de,#0C20
ld ix,memBUFFER.Shared
JP WIN_RESTORE
ENDIF
setXYpos:
JP RESCREEN

View File

@ -259,9 +259,10 @@ SHOW_LOGO: LD IX,win_descriptor.tab320x256
SAFE_PORTY
DI
LD A,1
OUT (SYS_PORT.ON),A
OUT (ROM.SLOT0),A
LD A,CNF_PORT.EXTENSION
OUT (CNF_PORT.vZX_ROM),A
LD BC,#1FFD
LD A,#10 ;!HARDCODE
LD HL,MAIN_LOGO.Pallete
LD DE,memBUFFER.Shared
@ -269,8 +270,7 @@ SHOW_LOGO: LD IX,win_descriptor.tab320x256
LDIR
XOR A
OUT (ROM.SLOT0),A
OUT (SYS_PORT.ON),A
OUT (CNF_PORT.vBIOS),A
EI
LD HL,memBUFFER.Shared
@ -283,24 +283,15 @@ SHOW_LOGO: LD IX,win_descriptor.tab320x256
SAFE_PORTY
DI
LD A,1
OUT (SYS_PORT.ON),A
;LD A,1
OUT (ROM.SLOT0),A
LD A,CNF_PORT.EXTENSION
OUT (CNF_PORT.vZX_ROM),A
LD HL,MAIN_LOGO.Raster ; ­ ç «® ª à⨭ª¨ ¢ ¡ ­ª¥ <20>‡“
; CALL DECODE
CALL LOGO_TO_SCREEN
;
;--------------[<5B> áå «ª ]--------------[]
IF Pashalki
_PASHALKI_CODE
ENDIF
;--------------------------------------[]
;
XOR A
OUT (SYS_PORT.ON),A
OUT (ROM.SLOT0),A
OUT (CNF_PORT.vBIOS),A
EI
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -411,59 +402,6 @@ LOGO_TO_SCREEN:
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:
CALL SETPAL4
LD A,4 ; page_pal

View File

@ -57,8 +57,6 @@
"TrDosB", -- 3
"TrDosC", -- 4
"TrDosD", -- 5
"SetTime", -- 6 DEFINES.INC --> NEW_FEATURE
"HddWrPr", -- 7 DEFINES.INC --> HDDwriteProtect
-- 8
-- 9
-- 10
@ -71,14 +69,10 @@
-- 17
}
}
DeleteValueByDEFINE(SettingsTabsOrder,"NEW_FEATURE","SetTime")
DeleteValueByDEFINE(SettingsTabsOrder,"HDDwriteProtect","HddWrPr")
DeleteValueByDEFINE(SettingsTabsOrder,"UnusedSettingsFeatures","MemTest")
DeleteValueByDEFINE(SettingsTabsOrder,"UnusedSettingsFeatures","UpdBios")
DeleteValueByDEFINE(SettingsTabsOrder,"UnusedSettingsFeatures","TypRate")
DeleteValueByDEFINE(SettingsTabsOrder,"UnusedSettingsFeatures","TypDelay")
-- DeleteValueByDEFINE(SettingsTabsOrder,"UnusedSettingsFeatures","")
-- DeleteValueByDEFINE(SettingsTabsOrder,"UnusedSettingsFeatures","")
ENDLUA
;
@ -130,26 +124,6 @@
;----------------------------[Settings items table]----------------------------[v]
;
IF NEW_FEATURE
; New structure for procedure with IY reg
STRUCT MenusItem
Action WORD
Type BYTE
Column BYTE
Line BYTE
Name BYTE
CMOSreg BYTE
ValueMask BYTE
ValueMax BYTE
FirstString BYTE
ENDS
paramLine EQU 0
folderLine EQU 1
ENDIF
;
firstColumn EQU 03 ; ᬥ饭¨¥ ¯® X ¤«ï ¯¥à¢®£® á⮫¡æ 
secondColumn EQU 43 ; ᬥ饭¨¥ ¯® X ¤«ï ¢â®à®£® á⮫¡æ 
firstLine EQU 07 ; ᬥ饭¨¥ ¯® Y ¤«ï ¯¥à¢®© áâப¨
@ -158,7 +132,6 @@ SettingsItemsTabs:
_mSETitemParams Lang
DW OnChangeAction.setLang ; ¤¥©á⢨¥ ¯à¨ ¨§¬¥­¥­¨¨
IF NEW_FEATURE : DB paramLine : ENDIF ; ⨯ ¯ à ¬¥âà  (áâப  á® §­ ç¥­¨¥¬ ¨«¨ ª â «®£)
DB columnNum,lineNum ; á⮫¡¥æ, áâப 
DB paramName ; <20> §¢ ­¨¥ ¯ à ¬¥âà 
DW CMOS_CELL.BootUpParams.Mask.Language : DB %0000'0100 ; CMOS : MASK
@ -169,7 +142,6 @@ SettingsItemsTabs:
IF UnusedSettingsFeatures ; !TODO
_mSETitemParams MemTest
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.BootUpParams.Mask.MemTest : DB %1000'0000
@ -179,7 +151,6 @@ SettingsItemsTabs:
_mSETitemParams SaveRAMdrvs
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.BootUpParams.Mask.SaveRAMdisks : DB %0100'0000
@ -189,7 +160,7 @@ SettingsItemsTabs:
IF UnusedSettingsFeatures ; !TODO
_mSETitemParams UpdBios
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.BootUpParams.Mask.UpdBios : DB %0010'0000
@ -199,7 +170,6 @@ SettingsItemsTabs:
_mSETitemParams StartDelay
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.BootUpParams.Mask.StartDelay : DB %0001'0000
@ -210,7 +180,7 @@ SettingsItemsTabs:
IF UnusedSettingsFeatures ; !TODO
_mSETitemParams TypRate
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.Typematic.Mask.Rate : DB %0000'0111
@ -227,7 +197,7 @@ SettingsItemsTabs:
IF UnusedSettingsFeatures ; !TODO
_mSETitemParams TypDelay
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.Typematic.Mask.Delay : DB %0110'0000
@ -239,7 +209,6 @@ SettingsItemsTabs:
_mSETitemParams RebootMsg
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.Options.Mask.RebootMSG : DB %0000'0010
@ -248,7 +217,6 @@ SettingsItemsTabs:
_mSETitemParams SysDsk
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.BootDrives.Mask.SysDisk : DB %0000'0111
@ -263,7 +231,6 @@ SettingsItemsTabs:
_mSETitemParams AltSysDsk
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.BootDrives.Mask.AltSysDisk : DB %0111'0000
@ -278,7 +245,6 @@ SettingsItemsTabs:
_mSETitemParams FddFirst
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.DrivesSetup_1.Mask.FirstFDD : DB %0000'0000
@ -289,7 +255,6 @@ SettingsItemsTabs:
_mSETitemParams FddSecond
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.DrivesSetup_1.Mask.SecondFDD : DB %0000'0000
@ -300,7 +265,6 @@ SettingsItemsTabs:
_mSETitemParams PriIdeMA
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.DrivesSetup_1.Mask.PriIDEmaster : DB %0011'0000
@ -311,7 +275,6 @@ SettingsItemsTabs:
_mSETitemParams PriIdeSl
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.DrivesSetup_1.Mask.PriIDEslave : DB %1100'0000
@ -322,7 +285,6 @@ SettingsItemsTabs:
_mSETitemParams SecIdeMA
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.DrivesSetup_2.Mask.SecIDEmaster : DB %0011'0000
@ -333,7 +295,6 @@ SettingsItemsTabs:
_mSETitemParams SecIdeSl
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.DrivesSetup_2.Mask.SecIDEslave : DB %1100'0000
@ -345,7 +306,7 @@ SettingsItemsTabs:
IF HDDwriteProtect
_mSETitemParams HddWrPr
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.Options.Mask.HDDwriteProtect : DB %0000'0001
@ -355,7 +316,6 @@ SettingsItemsTabs:
_mSETitemParams ScreenY
DW OnChangeAction.setXYpos
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.ScreenPosition.Mask.X : DB %1110'0000
@ -377,7 +337,6 @@ SettingsItemsTabs:
_mSETitemParams ScreenX
DW OnChangeAction.setXYpos
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.ScreenPosition.Mask.Y : DB %0000'1110
@ -399,7 +358,6 @@ SettingsItemsTabs:
_mSETitemParams FrameInt
DW OnChangeAction.setInt
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.ScreenSET.Mask.Int : DB %0011'0000
@ -410,7 +368,6 @@ SettingsItemsTabs:
_mSETitemParams VSync
DW OnChangeAction.setVsinc
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.ScreenSET.Mask.Sinc : DB %1000'0000
@ -420,7 +377,6 @@ SettingsItemsTabs:
_mSETitemParams QuickStartROM
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.BootUpParams.Mask.QuickStartROM : DB %0000'0001
@ -429,7 +385,6 @@ SettingsItemsTabs:
_mSETitemParams TrDosA
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.TRDOSmount.Mask.A : DB %0000'0010
@ -439,7 +394,6 @@ SettingsItemsTabs:
_mSETitemParams TrDosB
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.TRDOSmount.Mask.B : DB %0000'1000
@ -449,7 +403,6 @@ SettingsItemsTabs:
_mSETitemParams TrDosC
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.TRDOSmount.Mask.C : DB %0010'0000
@ -459,7 +412,6 @@ SettingsItemsTabs:
_mSETitemParams TrDosD
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.TRDOSmount.Mask.D : DB %1000'0000
@ -469,23 +421,12 @@ SettingsItemsTabs:
_mSETitemParams LoadZXroms
DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum
DB paramName
DW CMOS_CELL.Options.Mask.LoadZXroms : DB %0000'1000
DB msgStrings.valLoadZXromsManually
DB msgStrings.valLoadZXromsFlag
DB msgStrings.valLoadZXromsCAD
IF NEW_FEATURE
_mSETitemParams SetTime
DW OnChangeAction.SetTime
DB folderLine
DB columnNum,lineNum
DB paramName
DB #00,%0000'0000,%0000'0000
DB msgStrings.valFolder
ENDIF
;--------------------[Items Addresses table]--------------------[]
SettingsItemsTabsAddrs:
_mCreateSettingsItemsTabsAddrs
@ -666,10 +607,6 @@ msgStrings:
_mSetStr valLoadZXromsFlag, tmp_Counter : DZ 'By ZX flag'
_mSetStr valLoadZXromsCAD, tmp_Counter : DZ 'On restart'
; _mSetStrRus valLoadZXromsAuto, tmp_Counter : DZ 'On call '
IF NEW_FEATURE
_mSetStr parSetTime, tmp_Counter : DZ 'Date and time setup : '
_mSetStr valFolder, tmp_Counter : DB 16,'ENTER',17,0
ENDIF
IF BETA_BUILD > 0
_mSetStr testBIOSmsg, tmp_Counter : DZ 'Test build! ',BUILD_DATE,', ',__TIME__
ENDIF
@ -824,10 +761,6 @@ msgRusStrings:
_mSetStrRus valLoadZXromsFlag, tmp_Counter : DZ '<EFBFBD>® ä« £ã ZX '
_mSetStrRus valLoadZXromsCAD, tmp_Counter : DZ '<EFBFBD>ਠà¥áâ àâ¥'
; _mSetStrRus valLoadZXromsAuto, tmp_Counter : DZ '<27>ਠ¢ë§®¢¥ '
IF NEW_FEATURE
_mSetStrRus parSetTime, tmp_Counter : DZ ' â  ¨ ¢à¥¬ï : '
_mSetStrRus valFolder, tmp_Counter : DB 16,'Ž',17,0
ENDIF
IF BETA_BUILD > 0
_mSetStrRus testBIOSmsg, tmp_Counter : DZ '¥á⮢ ï ᡮઠ! ',BUILD_DATE,', ',__TIME__
ENDIF

View File

@ -140,7 +140,7 @@ MN_128_S:
;**************************************
MENU_128:
XOR A
OUT (SYS_PORT.RAM),A
OUT (CNF_PORT.vZX_ROM),A
CALL ZX_VARS.PROG.SWAP_ROM
CALL NEW_SP
@ -166,8 +166,8 @@ SH_4: LD HL,MENU_DAT - MENU_128
EX AF,AF'
;LD A,0
;OUT (CNF_PORT),A
LD A,SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A ;!!!!! ¢¥àá¨ï ¤«ï <20>‡“
LD A,vROM.EXTENSION
OUT (CNF_PORT.vBIOS),A ;!!!!! ¢¥àá¨ï ¤«ï <20>‡“
EX AF,AF'
RET
MENU_DAT:
@ -311,7 +311,7 @@ DOS_PROG:
//DOS_PROG:
.Exec: PUSH AF
XOR A
OUT (SYS_PORT.RAM),A
OUT (CNF_PORT.vZX_ROM),A
POP AF
//DOS_PROG_A+1:
.Patch+2: CALL #3D03 ;!HARDCODE
@ -319,8 +319,8 @@ DOS_PROG:
;!FIXIT ᤥ« âì ç¥à¥§ ãá«®¢¨¥ ª®¬¯¨«ï樨 ZX_ROM_BIOS
//LD A,0
//OUT (CNF_PORT),A
LD A,SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A ;!!!!! ¢¥àá¨ï ¤«ï <20>‡“
LD A,vROM.EXTENSION
OUT (CNF_PORT.vBIOS),A ;!!!!! ¢¥àá¨ï ¤«ï <20>‡“
POP AF
RET
//DOS_PROG_LEN
@ -601,7 +601,7 @@ CONFIG_SET:
POP DE
LD A,E
OUT (SYS_PORT.ROM),A
OUT (CNF_PORT.vBIOS),A
IM 1
EI
@ -615,7 +615,7 @@ SPRINTER_reset:
_SET_CNF:
DI
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (SYS_PORT.ROM),A
OUT (CNF_PORT.vBIOS),A
RET
CNF_SC_312:
@ -628,11 +628,6 @@ CNF_PN_320:
OUT (Port_VSYNC),A
RET
; LD A,CNF_0
; OUT (SYS_PORT.ROM),A
; CALL DOS_OFF
; JP 0
;*****************************
; *** MENU UTILITES ***
;*****************************

View File

@ -103,7 +103,7 @@
OUT (SLOT3),A
XOR A
OUT (ROM.SLOT0),A
OUT (SYS_PORT.ROM),A
OUT (CNF_PORT.vBIOS),A
POP AF
JP PO,.noInterrupts
EI

View File

@ -1,12 +1,10 @@
;=======================[All shared EQUs]=======================;
BETA_BUILD EQU 6 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥
;======================[All shared defines]=====================;
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
DEFINE SP2000_Loader_Flag #0107 ;
DEFINE IDE_Optimization 1 ; á«¥£ª  ®¯â¨¬¨§¨àã¥â ­¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
DEFINE NeedSafePort_Y 1 ; ¥á«¨ 0, â® ¢ ०¨¬¥ ¡¥§  ªá¥«ï ­¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà ­
DEFINE Pashalki 0 ;
DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp' ;
DEFINE PICTURE_FILE './crazy bios/logo/use/brick.bmp' ;
DEFINE StandartCGApallete 1 ; <20>®¤ª«îç âì ¯ «¨âàã ¨§ standart_colors.inc
DEFINE BitStream_SizeInPages 4 ;
DEFINE USE_E1_SCANCODE 0 ;
@ -15,8 +13,6 @@ BETA_BUILD EQU 6 ;
DEFINE LOGO_DELAY_NORM 100 ;
DEFINE LOGO_DELAY_MAX 130 ;
;----------------------------[ TEST ]---------------------------;
DEFINE TEST_INT 1 ; ’¥áâ®¢ë© ®¡à ¡®â稪 ¯®«ì§®¢ â¥«ì᪮£® INT
DEFINE NEW_FEATURE 0 ; !TODO ¯ã­ªâë ¢ á¥â ¯
DEFINE HDDwriteProtect 0 ; áâ à ï ä¨èª  ¤«ï ä㭪権 5x
DEFINE RECOVERYmountTYPE 1 ; 1 - ¡ëáâàë© ­¥¬­®£® § å à¤ª®¦¥­ë© ¢ à¨ ­â. 2 - ¡®«¥¥ "¯à ¢¨«ì­ë©"
DEFINE RECOVERYrdChooseTYPE 1 ; 1 - RECOVERY £à㧨âáï ¢ ¤¨áª 15, 2 - ¨é¥âáï ᢮¡®¤­ë© à ¬¤¨áª, ¥á«¨ ­¥â, â® ¢ 15-ë©

View File

@ -8,11 +8,11 @@ BIOS_ver_hex EQU EXP_ID.VER*256+EXP_ID.MOD
DEFINE BIOS_ver_string '0'+EXP_ID.VER, '.', '0'+EXP_ID.MOD/10, '0'+EXP_ID.MOD-(EXP_ID.MOD/10)*10
IF BETA_BUILD > 0
DEFINE BETA_str_ver "BETA ","0"+BETA_BUILD
DEFINE BETA_str_ver "Crazy Beta ","0"+BETA_BUILD
ENDIF
;---------------------------------------
DEFINE BoardID_start #5283
DEFINE BoardID_end #47E8
DEFINE BoardID_start 0 ;#5283
DEFINE BoardID_end 0 ;#47E8
DEFINE MotherBoardID #0000
DEFINE MotherBoardType #00 ; !TODO 0 - Legacy, 1 - DX, 2 - Max
;=======================================
@ -29,8 +29,8 @@ Disk_subsystem_ver_hex EQU ROM_ID.VER*256+ROM_ID.MOD
;============[For CNF part]=============
CNF_ID:
.VER EQU 3 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥­ïâì âãâ!
.MOD EQU 05 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥­ïâì âãâ!
.VER EQU 0 ;3 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥­ïâì âãâ!
.MOD EQU 00 ;05 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥­ïâì âãâ!
bitstream_ver_hex EQU CNF_ID.VER*256+CNF_ID.MOD
DEFINE bitstream_ver_string '0'+CNF_ID.VER, '.', '0'+CNF_ID.MOD/10, '0'+CNF_ID.MOD-(CNF_ID.MOD/10)*10

View File

@ -1,19 +1,15 @@
;
;---------[All shared includes]---------
INCLUDE 'src/bios/shared/DEFINES.INC' ; Shared defines
IF Pashalki
INCLUDE 'Shared_Includes/structures/EasterSprites.inc'
ENDIF
INCLUDE 'crazy bios/shared/DEFINES.INC' ; Shared defines
INCLUDE 'Shared_Includes/structures/FileSystem.inc'
INCLUDE 'src/bios/Loader/Loader.asm' ; Bitstream loader as macros
INCLUDE 'src/bios/shared/CompMacro.asm' ; ¬ ªà®áë
INCLUDE 'crazy bios/shared/CompMacro.asm' ; ¬ ªà®áë
INCLUDE 'Shared_Includes/constants/SP2000.inc' ; ª®­áâ ­âë
INCLUDE 'Shared_Includes/constants/zx_char_codes.inc' ; ª®­áâ ­âë
INCLUDE 'Shared_Includes/constants/zx_vars.inc' ;
INCLUDE 'Shared_Includes/macroses/macros.z80'
INCLUDE 'src/bios/ROM/MEM_MAP.inc' ; ª àâ  ¯ ¬ïâ¨
INCLUDE 'src/bios/shared/VERSION.inc' ; ‚¥àá¨ï EXP ¨ ROM
INCLUDE 'crazy bios/ROM/MEM_MAP.inc' ; ª àâ  ¯ ¬ïâ¨
INCLUDE 'crazy bios/shared/VERSION.inc' ; ‚¥àá¨ï EXP ¨ ROM
INCLUDE 'Shared_Includes/constants/BIOS_EQU.inc'
INCLUDE 'src/bios/ROM/BIOS.inc'
INCLUDE 'crazy bios/ROM/BIOS.inc'
;---------------------------------------
;

View File

@ -107,7 +107,7 @@ program_start EQU Flasher_Start
MODULE expBIOS_Vars
INCLUDE 'constants/BIOS_EXP.INC'
INCLUDE '../Flasher/constants/BIOS_EXP.INC'
ENDMODULE
INCLUDE 'Versions.inc'

View File

@ -1,14 +1,13 @@
BOARD_INFO.number: EQU 0x00000003
BOARD_INFO.type: EQU 0x00000005
BoardID.start: EQU 0x0000008F
BoardID.end: EQU 0x00000091
FN_CRIPT.cnf: EQU 0x000019EA
ID_SPRINTER.bitstream_ver: EQU 0x00000089
bitstream_ver_hex: EQU 0x00000305
BoardID.start: EQU 0x00000095
BoardID.end: EQU 0x00000097
ID_SPRINTER.bitstream_ver: EQU 0x0000008F
bitstream_ver_hex: EQU 0x00000000
EXP_ID.VER: EQU 0x00000003
EXP_ID.MOD: EQU 0x00000006
CNF_ID.VER: EQU 0x00000003
CNF_ID.MOD: EQU 0x00000005
msgStrings.str_ACEX_MODEL: EQU 0x000024DD
msgRusStrings.str_ACEX_MODEL: EQU 0x00002EED
CNF_ID.VER: EQU 0x00000000
CNF_ID.MOD: EQU 0x00000000
msgStrings.str_ACEX_MODEL: EQU 0x0000244B
msgRusStrings.str_ACEX_MODEL: EQU 0x00002E5B
BETA_BUILD: EQU 0x00000006

View File

@ -14,7 +14,7 @@
LD A,1 ; enable CS0, disable CS1
OUT (C),A ; Z84.SYS.Data
;ÛÛÛÛÛÛÛ ¨­¨æ¨ «¨§ æ¨ï DCP ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
LD HL,INIT_SLOTS
LD HL,ADD_PORTS.Code
DCP_INIT: LD C,XL
LD B,XH
LD E,YL
@ -102,11 +102,30 @@ DCP_INIT: LD C,XL
LD H,A ; ¤®¡ ¢¨âì ¨§¬¥­ï¥¬ãî ç áâì
JR .loop_parse
.return: JP (IX)
;ÛÛÛÛÛÛÛ „®¡ ¢«¥­¨¥ ¯®à⮢ #4000..#4004 ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
ADD_PORTS: ; ¢­ãâ७­¨¥ ¯®àâë í¬ã«ïâ®à  <20>‡“ ¬ ¯ïâáï ­  ¢­¥è­¨¥
.Data: DB #EB ; ¢­¥è­¨© #4000
DB #EF ; ¢­¥è­¨© #4001
DB #E6 ; ¢­¥è­¨© #4002
DB #E7 ; ¢­¥è­¨© #4003
DB #E4 ; ¢­¥è­¨© #4004
.Data.Size EQU $ - .Data
;
.Code: LD HL,ADD_PORTS.Data
LD DE,#C480
LD BC,ADD_PORTS.Data.Size
LDIR
;ÛÛÛÛÛÛÛ ˆ­¨æ¨ «¨§ æ¨ï áâà ­¨æ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
INIT_SLOTS: XOR A
INIT_SLOTS: LD BC,#1FFD
LD A,1
OUT (C),A
LD B,#7F
OUT (C),A
;
XOR A
OUT (SLOT0),A
OUT (SLOT1),A
DEC A
LD A,2
OUT (SLOT2),A
LD A,SYS_PAGE
OUT (SLOT3),A
@ -125,9 +144,20 @@ INIT_SLOTS: XOR A
OUT (SYS_PORT.RAM),A
INC A
OUT (SLOT1),A
;
IN A,(FastRAM.OFF)
; ’“’ Œ› “†… އ“ ’ŽŒ †… ŠŽ„… ˆ €„<E282AC>
; áâà ­¨æë 0,1,2,#FE
;ÛÛÛÛÛÛÛ ˆ­¨æ¨ «¨§ æ¨ï áâà ­¨æ vROM ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
vROM_MAP: LD BC,#4000
LD HL,RESERVED_PAGES.BIOS
LD A,RESERVED_PAGES.Size
.loop: LD E,(HL)
OUT (C),E
INC C
INC HL
DEC A
JR NZ,.loop
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛ <20> ¡®ç¨© ª®¤ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -141,35 +171,44 @@ INIT_SLOTS: XOR A
CALL Init_Mem
;ÛÛÛÛÛÛ ‡ £à㧪  ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
; ¤®¯®«­¨â¥«ì­ë¥ ä㭪樨
LOAD_FNs: LD A,(RESERVED_PAGES.SYS_FN) ; áâà ­¨æ  ¡ãä¥à , ¥á«¨  ¤à¥á ¢ ®ª­¥ #C000 (BLOCK_ID)
LD B,sys_fn_in_sectors ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
LD HL,bufer_adr ;  ¤à¥á ¡ãä¥à  ¤ ­­ëå
LD IX,sec_high ;  ¡á®«îâ­ë© ­®¬¥à ᥪâ®à  áâ àè ï ç áâì
LD DE,sec_low ;  ¡á®«îâ­ë© ­®¬¥à ᥪâ®à  ¬« ¤è ï ç áâì
CHECK_IMG: ;LD A,(RESERVED_PAGES.SYS_FN) ; áâà ­¨æ  ¡ãä¥à , ¥á«¨  ¤à¥á ¢ ®ª­¥ #C000 (BLOCK_ID)
LD B,1 ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
LD HL,#8000 ;  ¤à¥á ¡ãä¥à  ¤ ­­ëå
LD IX,0 ;  ¡á®«îâ­ë© ­®¬¥à ᥪâ®à  áâ àè ï ç áâì
LD DE,0 ;  ¡á®«îâ­ë© ­®¬¥à ᥪâ®à  ¬« ¤è ï ç áâì
PUSH HL
CALL FN_HDD_READ
; Ž¡à § BIOS
LOAD_DATA: LD B,4
LD IY,RESERVED_PAGES.BIOS
POP HL
CALL .LOADER
; Š à⨭ª  ¨ €¯¤¥©â¥à
LD B,2
CALL .LOADER
JP BEGIN_CB_IMG
.LOADER: ; § £à㧪  ¯® 128 ᥪâ®à®¢
.loop: PUSH HL
PUSH BC
LD A,(IY)
LD B,128
;ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
LD DE,CHECKING_LABEL
LD B,CHECKING_LABEL.Size
.loop: LD A,(DE)
CP (HL)
RET NZ ; error
INC DE
INC HL
DJNZ .loop
; Ž¡à § BIOS
LOAD_DATA: LD A,(RESERVED_PAGES.BIOS)
LD HL,#C000
LD B,RESERVED_PAGES.Size * #4000 / 512
LD DE,1
CALL FN_HDD_READ_NEXT
LD BC,4
ADD IY,BC
POP BC
POP HL
DJNZ .loop
RET
XOR A
OUT (SLOT1),A
JP .IN_RAM + #4000
; ªã᮪ ¢ 1 á«®â¥
.IN_RAM: LD BC,#1FFD
XOR A
OUT (C),A
;
XOR A ;CNF_PORT.BIOS
OUT (CNF_PORT.vBIOS),A
LD A,#40
OUT (SLOT3),A
;
RST 0
;JP BEGIN_CB_IMG
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -469,6 +508,22 @@ ERROR: ;
XOR 1
JR .big_loop
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
RESERVED_PAGES: ; Ž¡à § <20>ˆŽ  ¤«ï à¥áâ àâ 
.BIOS: DB #46 ; BIOS Acex port: #EB
DB #47 ; EXTENSION Acex port: #EF
DB #48 ; Recovery_1 Acex port: #E6
DB #49 ; Recovery_2 Acex port: #E7
DB #4B ; LOGO Acex port: #E4
.Size EQU $-RESERVED_PAGES.BIOS
DB #FF ; End of the block
.Blocks EQU 1
CHECKING_LABEL: SET_IMG_LABEL
.Size EQU $ - CHECKING_LABEL
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
END_CB EQU $
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -675,19 +730,51 @@ DCP_DATA: DW %00'000'0'0100'0000
; DCP END MARKER
DW 0,0,0
;-----------------------------------------------------------------------;
RESERVED_PAGES:; [x] Block #1 - ¬®¦­® ®á¢®¡®¤¨âì ¯® ID 1
; „®¯®«­¨â¥«ì­ë¥ ¯à®æ¥¤ãàë
.SYS_FN: DB SYS_FN_PAGE
; Ž¡à § <20>ˆŽ  ¤«ï ¯à®è¨¢ª¨
.BIOS: DB #10,#11,#12,#13
DB #14,#15,#16,#17
DB #18,#19,#1A,#1B
DB #1C,#1D,#1E,#1F
; Š à⨭ª 
.PICTURE: DB 2,3,4,5,6
; Ž¡à § ¯ ¬ïâ¨ á ¯à®è¨¢ «ì騪®¬
.FLASHER_RAM: DB 7,8
DB #FF ; End of the block
.Blocks EQU 1
.Size EQU $-RESERVED_PAGES
; RESERVED_PAGES:; [x] Block #1 - ¬®¦­® ®á¢®¡®¤¨âì ¯® ID 1
; ; „®¯®«­¨â¥«ì­ë¥ ¯à®æ¥¤ãàë
; .SYS_FN: DB SYS_FN_PAGE
; ; Ž¡à § <20>ˆŽ  ¤«ï ¯à®è¨¢ª¨
; .BIOS: DB #10,#11,#12,#13
; DB #14,#15,#16,#17
; DB #18,#19,#1A,#1B
; DB #1C,#1D,#1E,#1F
; ; Š à⨭ª 
; .PICTURE: DB 2,3,4,5,6
; ; Ž¡à § ¯ ¬ïâ¨ á ¯à®è¨¢ «ì騪®¬
; .FLASHER_RAM: DB 7,8
; DB #FF ; End of the block
; .Blocks EQU 1
; .Size EQU $-RESERVED_PAGES
;-----------------------------------------------------------------------;
; ;ÛÛÛÛÛÛ ‡ £à㧪  ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
; ; ¤®¯®«­¨â¥«ì­ë¥ ä㭪樨
; LOAD_FNs: LD A,(RESERVED_PAGES.SYS_FN) ; áâà ­¨æ  ¡ãä¥à , ¥á«¨  ¤à¥á ¢ ®ª­¥ #C000 (BLOCK_ID)
; LD B,sys_fn_in_sectors ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
; LD HL,bufer_adr ;  ¤à¥á ¡ãä¥à  ¤ ­­ëå
; LD IX,sec_high ;  ¡á®«îâ­ë© ­®¬¥à ᥪâ®à  áâ àè ï ç áâì
; LD DE,sec_low ;  ¡á®«îâ­ë© ­®¬¥à ᥪâ®à  ¬« ¤è ï ç áâì
; PUSH HL
; CALL FN_HDD_READ
; ; Ž¡à § BIOS
; LOAD_DATA: LD B,4
; LD IY,RESERVED_PAGES.BIOS
; POP HL
; CALL .LOADER
; ; Š à⨭ª  ¨ €¯¤¥©â¥à
; LD B,2
; CALL .LOADER
; JP BEGIN_CB_IMG
; .LOADER: ; § £à㧪  ¯® 128 ᥪâ®à®¢
; .loop: PUSH HL
; PUSH BC
; LD A,(IY)
; LD B,128
; LD DE,1
; CALL FN_HDD_READ_NEXT
; LD BC,4
; ADD IY,BC
; POP BC
; POP HL
; DJNZ .loop
; RET
;-----------------------------------------------------------------------;

25
Crazy/BUILD_BIOS.a80 Normal file
View File

@ -0,0 +1,25 @@
;[--------------------------------------------------------------------------]
MACRO Set_Block text, blk_addr
.tmp equ $
BLOCK blk_addr-.tmp,#FF
DISPLAY text, /H, $-.tmp
ENDM
;[--------------------------------------------------------------------------]
ORG 0
DISPLAY '[ Building ROM for 1K30 ]'
OUTPUT 'Build/_SPRIN.BIN'
;PAGE 0
Set_Block 'ROM free space: ', #20000
;PAGE 8
INCBIN 'Build/CrazyBlaster.raw'
Set_Block 'EXP free space: ', #30000
;PAGE 12-15 (#0C, #0D, #0E, #0F)
INCBIN '../SP_Core/Build/Bin/LOADER_K30.BIN'
Set_Block 'Loader & Bitstream free space: ', #40000
;[--------------------------------------------------------------------------]
DISPLAY '[ Building ROM for 1K30 done ]'
;[--------------------------------------------------------------------------]
;'Build/Bin/LOADER_K30.BIN'

View File

@ -17,6 +17,10 @@
DEFINE image_size_in_sectors flasher_size_in_sectors + bios_size_in_sectros
DEFINE TYPE_OF_ACEX 3 ; 3 - 1K30, 5 - 1K50
MACRO SET_IMG_LABEL
.Crazy_IMG_Label: DB "Crazy Blaster Image"
ENDM
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ[ FIRST SECTION - CONF ROM ]ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -35,10 +39,14 @@ END_FIRST_SECTION EQU $
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ[ SECOND SECTION - IMAGE ON DRIVE ]ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;OUTPUT './Build/CrazyBlasterIMG.raw'
OUTPUT './Build/CB_BIOS_IMG.raw'
ORG #0000
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: 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

@ -1 +1 @@
Subproject commit 4662474034c70f4b2627ff8eca10ccdf4a7d3525
Subproject commit d357c4cc2a8af41e47136c245161e11355612a96