BIOS starts, DSS loads

This commit is contained in:
Tolik 2024-08-02 02:52:29 +10:00
parent 9b9bb846d8
commit 8210691bd8
15 changed files with 404 additions and 480 deletions

View File

@ -1,6 +1,7 @@
INCLUDE 'shared/defines.inc'
INCLUDE 'Crazy BIOS/shared/CompMacro.asm'
DEFINE IMG_RECOVERY 'crazy bios/shared/cb_sys.img'
DEFINE IMG_RECOVERY 'crazy bios/shared/cb_boot.img'
;
;[--------------------------------------------------------------------------]
MACRO Set_Block text, blk_addr
@ -11,9 +12,13 @@
;[--------------------------------------------------------------------------]
ORG 0
DISPLAY '[ Building CB_IMG file ]'
OUTPUT 'Build/CB_BIOS.RAW'
OUTPUT 'Build/CB_BIOS.IMG'
;[--------------------------------------------------------------------------]
; Zero Sector
SET_IMG_LABEL
BLOCK 512 - $,#FF
;
ORG 0
;PAGE #46 BIOS
INCBIN 'Build/Bin/EXP.BIN'
Set_Block 'EXP free space: ', #4000
@ -31,6 +36,11 @@
;PAGE #4B LOGO
INCBIN 'Build/Bin/LOGO.BIN'
Set_Block 'LOGO free space: ', #14000
;DEBUG
IF DEBUG
INCLUDE './crazy/debug.asm'
Set_Block 'LOGO free space: ', #14200
ENDIF
;[--------------------------------------------------------------------------]
OUTEND
DISPLAY '[_____________Building CB_IMG file done!_____________]'

View File

@ -3,10 +3,25 @@
;*************************************************************
;
; EXPANSION VER 3.00 (C) Peters Plus Ltd.
; EXPANSION VER 3.1 (C) Sprinter Team
; EXPANSION VER > 3.04 (C) Sprinter Team
;
;*************************************************************
; DEBUG
MACRO FLASH_LIGHT
LD E,8
LD A,SYS_PORT.TURBO.OFF
.big_loop: LD BC,0
OUT (CNF_PORT.vBIOS),A
.loop: DEC BC
INC B
DJNZ .loop
XOR 1
DEC E
JR NZ,.big_loop
ENDM
;***************************************
;*********** BEGIN EXPANSION ***********
;***************************************
@ -35,7 +50,7 @@ BOARD_INFO:
EXP_FNS_2_RET:
PUSH AF
LD A,vROM.BIOS
OUT (CNF_PORT.vBIOS),A
OUT (CNF_PORT.vZX_ROM),A
POP AF
JR RST_18_1
;=======================================
@ -109,21 +124,13 @@ TABLE_X:
;
;=======================================
RESTARTS EQU #FFE0
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
;RESTARTS EQU #FFE0
; GLOBAL_RESET:
; DI
; ;
; FLASH_LIGHT
; ;
; JR NO_RESTART
;=======================================
_mInfoBLOCK #66-$,0
NMI_Point:
@ -142,7 +149,6 @@ NMI_Point:
; IN B,(C)
; CALL SET_ROM_PAGES+#C000
; JP NO_SUMX_EQ
;**********************************
;BEEP:
@ -209,7 +215,9 @@ BoardID:
;
;-----[¯¥à¥å¢ â RESET ­¥ á®áâ®ï«áï]-----
NO_RESTART:
GLOBAL_RESET:
DI
IM 1
; á⥪ ¥éñ ­¥ ¨á¯®«ì§ã¥¬!!!
LD SP,IX ; á®åà ­¨âì §­ ç¥­¨¥ ¯¥à¥¤ ­­®¥ § £àã§ç¨ª®¬ ª®­äë (¥á«¨ áâ àâ ¯®á«¥ à¥á¥â )
; ¨­¨æ¨ «¨§ æ¨ï ¢­ãâ७­¨å ¯®à⮢ Z84C15 ¤«ï POST-Tester- 
@ -534,6 +542,8 @@ POST_5_OK:
; **********************************
ENDMODULE
;FLASH_LIGHT
MODULE SET_CONFIG_ID
IN A,(SLOT3)
@ -544,6 +554,7 @@ POST_5_OK:
LD A,SYS_PAGE
OUT (SLOT3),A
;-------------[Save IX:IY]--------------
; Don't use IY before this point if it`s normal booting!!!
LD IX,0
@ -1001,23 +1012,6 @@ RES128_PROG:
LEN_RES128 EQU $-RES128_PROG
;-----------------------------------------------------------------------;
;-------------------------------[ #FFE0 ]-------------------------------;
; ¯à®£à ¬¬ , ª®â®à ï ¡ã¤ãç¨ à §¬¥é¥­­®© ¢ #40 áâà ­¨æ¥,
; á  ¤à¥á  RESTARTS, ¯¥à¥å¢ â뢠¥â RESET
RESTARTS_PROG: ; !TODO LDConf ¯¥à¥å¢ â à¥á¥â  ­  «î¡®© ª®­ä¥ ¯®á«¥ hardreset
LD HL,RESTARTS
LD B,16
.loop:
LD (HL),0
INC HL
DJNZ .loop
NOP
NOP
.Size EQU $-RESTARTS_PROG
; LD A,1
; OUT (SLOT3),A
;-----------------------------------------------------------------------;
;----------------------------[Setup Starter]----------------------------;
MODULE Setup_Starter
; ¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯®  ¤à¥áã #C000
@ -1359,11 +1353,11 @@ kbd_loop2:
_mInfoALIGN 256,#FF
; BLOCK #3F00-$,#FF
ROM_DISK.Pages.Number:
BYTE ROM_DISK.Pages.Size ; ç¨á«® áâà ­¨æ
DB ROM_DISK.Pages.Size ; ç¨á«® áâà ­¨æ
; ã áâà ­¨æ ¢ëáâ ¢«¥­ bit4 ¤«ï ª®à४⭮© ¯®¤áâ ­®¢ª¨
;(¯®¤à®¡­¥¥ ¢ sp2000.inc - <20>®àâ ã¯à ¢«¥­¨ï áâà ­¨æ ¬¨ <20>‡“)
ROM_DISK.Pages: ; áâà ­¨æë ROM-Disk
ABYTE #10 #05,#06,#07,#09,#0A,#0B ; 98304 bytes
DB 0,#10 ; §­ ç¥­¨ï ¤«ï 7FFD ᮮ⢥âáâ¢ãîâ áâà ­¨æ ¬ #48,#49 out (#24),1 : 1ffd = 0.
.Size EQU $-ROM_DISK.Pages
;-----------------------------------------------------------------------;
;#######################################################################;

View File

@ -667,12 +667,13 @@ INFO_MESSAGE:
CALL TSETUP ;!TODO ¬®¦¥â ¯¨å­ãâì ¥ñ ­  ¯à¥à뢠­¨ï?
CALL CONFIGURE_IDE_DRIVES.START
CALL CTRLKEY
LD A,B
; [x] 05/07/2024 <CTRL for Recovery>
BIT X_CTRL,A
LD BC,#FFFF ; ¬ àª¥à ¤«ï PrepareToBOOT, ç⮡ £à㧨« Recovery
JR NZ,RECOVERY_BOOT
; CALL CTRLKEY
; LD A,B
; ; [x] 05/07/2024 <CTRL for Recovery>
; BIT X_CTRL,A
; LD BC,#FFFF ; ¬ àª¥à ¤«ï PrepareToBOOT, ç⮡ £à㧨« Recovery
; JR NZ,RECOVERY_BOOT
JR RECOVERY_BOOT
;
BIT X_ALT,A
JR NZ,ALT_BOOT
@ -689,16 +690,16 @@ RECOVERY_BOOT:
;
CALL INT_ON
ALT_BOOT:
LD A,msgStrings.bootAltDrv
LD E,COLORS.CGA.INC.LGREEN
CALL POSTMSC
; LD A,msgStrings.bootAltDrv
; LD E,COLORS.CGA.INC.LGREEN
; CALL POSTMSC
LD BC,CMOS_CELL.BootDrives.Mask.AltSysDisk ;#7010
CALL PrepareToBOOT
LD A,msgStrings.bootFail
LD E,COLORS.CGA.INC.LRED
CALL C,POSTMSC
CALL ScreenPOS.CRLF
; LD BC,CMOS_CELL.BootDrives.Mask.AltSysDisk ;#7010
; CALL PrepareToBOOT
; LD A,msgStrings.bootFail
; LD E,COLORS.CGA.INC.LRED
; CALL C,POSTMSC
; CALL ScreenPOS.CRLF
;NO START DISK - RESTART / SETUP / ZX SPECTRUM mode
LD BC,CMOS_CELL.Options.Mask.RebootMSG ;#021D
@ -864,11 +865,6 @@ RESCREEN: ;R06
RECOVERYstart:
LD A,msgStrings.bootRecovery
CALL POSTMSG
;
; ‚ë¡®à à ¬¤¨áª  ¤«ï ४ ¢¥à¨
_mRECOVERYrdChooseTYPE RECOVERYrdChooseTYPE
; ¯à¨¡¨¢ ¥¬ ¯®á«¥¤­¨© à ¬¤¨áª, ¥á«¨ § ­ïâ
.killRAMdisk: LD A,SYS_PAGE.RAMD_KEYS.NUM-1
LD (.RDkey),A
@ -876,6 +872,7 @@ RECOVERYstart:
JR NC,.setRAMdisk
JR Z,.setRAMdisk
RET ; ­¥¯®­ïâ­ ï ®è¨¡ª  - ¢ë室¨¬
;
.setRAMdisk: LD A,(.RDkey)
LD B,ROM_DISK.Pages.Size
CALL EMM.GetMemRMD
@ -883,15 +880,69 @@ RECOVERYstart:
DEC A
JR Z,.FreeMem ; ®è¨¡ª  - ­¥¤®áâ â®ç­® ¯ ¬ïâ¨, ¢ë§ë¢ ¥¬ ®ç¨áâªã ¯ ¬ïâ¨
RET ; ­¥¯®­ïâ­ ï ®è¨¡ª  - ¢ë室¨¬
;
.FreeMem: CALL EMM.FullInit
JR .killRAMdisk
;
; ‚室: A - RAM block ID
.IMGread:
; ‚ à¨ ­â ª®¯¨à®¢ ­¨ï ROM -> RAM disk
_mRECOVERYmountTYPE RECOVERYmountTYPE
;
.IMGread: LD HL,TEMP
CALL EMM.GetMemBlkPages ; ª¨¤ ¥¬ ¢ ¡ãä¥à ­®¬¥à  áâà ­¨æ RAM disk
IN A,(SLOT3)
LD (.slot3save),A
;
LD HL,ROM_DISK.Pages.Number
LD B,0
LD C,(HL)
INC C
LD DE,TEMP+ROM_DISK.Pages.Size
LDIR ; ª¨¤ ¥¬ ¤ «ìè¥ ¢ ¡ãä¥à ­®¬¥à  áâà ­¨æ ROM disk
;
LD A,CNF_PORT.EXTENSION
OUT (CNF_PORT.vZX_ROM),A
LD BC,#1FFD
DEC A
OUT (C),A
;
LD IY,TEMP+ROM_DISK.Pages.Size ; ROM_DISK.Pages.Number
LD IX,TEMP
LD B,(IY+0)
LD A,R
PUSH AF
DI
;
.loopIMGtoRAM: PUSH BC
INC IY
LD A,(IY+0)
LD BC,#7FFD
OUT (C),A
LD A,(IX+0)
OUT (SLOT3),A
INC IX
LD HL,0
LD DE,#C000
LD BC,#4000
LDIR
POP BC
DJNZ .loopIMGtoRAM
;
XOR A
LD BC,#7FFD
OUT (C),A
OUT (CNF_PORT.vBIOS),A
LD B,#1F
LD A,2
OUT (C),A
.slot3save+*: LD A,0
OUT (SLOT3),A
POP AF
JP PO,.noInterrupts
EI
.noInterrupts: ;
;Exit from "ROM Disk to RAM disk" procedure
.RDkey+*: LD A,0
OR DRIVE_CODES.SPRINTER.RAM
@ -908,121 +959,122 @@ PrepareToBOOT: ;CALL INT_ON
CALL INT_OFF
; âãâ ­¥ ¤®«¦­® ¡ëâì ¨á¯®à祭® §­ ç¥­¨¥ BC
; [x] 05/07/2024 <CTRL for Recovery>
INC BC
LD A,B
OR C
JP Z,RECOVERYstart
DEC BC
; INC BC
; LD A,B
; OR C
; JP Z,RECOVERYstart
; DEC BC
;
CALL G_VALUE
LD B,DRIVE_CODES.SPRINTER.FDD
; CALL G_VALUE
; LD B,DRIVE_CODES.SPRINTER.FDD
; FDD
OR A
JR Z,FDSTART ; FDD A:
INC B
DEC A
JR Z,FDSTART ; FDD B:
; IDE
LD B,DRIVE_CODES.SPRINTER.HDD
DEC A
JR Z,HDSTART
INC B ;LD B,#81
DEC A
JR Z,HDSTART
INC B ;LD B,#82
DEC A
JR Z,HDSTART
INC B ;LD B,#83
DEC A
JR Z,HDSTART
; RAM
DEC A
JR Z,RDSTART
; ROM
DEC A
JP Z,RECOVERYstart
; Error
SCF
RET
; OR A
; JR Z,FDSTART ; FDD A:
; INC B
; DEC A
; JR Z,FDSTART ; FDD B:
; ; IDE
; LD B,DRIVE_CODES.SPRINTER.HDD
; DEC A
; JR Z,HDSTART
; INC B ;LD B,#81
; DEC A
; JR Z,HDSTART
; INC B ;LD B,#82
; DEC A
; JR Z,HDSTART
; INC B ;LD B,#83
; DEC A
; JR Z,HDSTART
; ; RAM
; DEC A
; JR Z,RDSTART
; ; ROM
; DEC A
; JP Z,RECOVERYstart
; ; Error
; SCF
; RET
JP RECOVERYstart
FDSTART:
PUSH BC
PUSH BC
LD A,msgStrings.bootFdd
CALL POSTMSG
POP AF
CALL FDD_5x_RESET
POP BC
RET C
JP OS_LOAD
;!TODO
CDSTART:
PUSH BC
LD A,msgStrings.bootCd
CALL POSTMSG
POP AF
PUSH AF
CALL PRINT_CHANEL
;
POP BC
SET 6,B
SCF
RET
; FDSTART:
; PUSH BC
; PUSH BC
; LD A,msgStrings.bootFdd
; CALL POSTMSG
; POP AF
; CALL FDD_5x_RESET
; POP BC
; RET C
; JP OS_LOAD
; ;!TODO
; CDSTART:
; PUSH BC
; LD A,msgStrings.bootCd
; CALL POSTMSG
; POP AF
; PUSH AF
; CALL PRINT_CHANEL
; ;
; POP BC
; SET 6,B
; SCF
; RET
RDSTART:
LD A,msgStrings.bootRamDrv
CALL POSTMSG
LD B,DRIVE_CODES.SPRINTER.RAM ; 6 - ⨯ ¤à ©¢  RAM-DRV, 0 - ­®¬¥à ¤à ©¢ 
.loop: PUSH BC
CALL OS_LOAD
POP BC
INC B
LD A,DRIVE_CODES.SPRINTER.RAM + SYS_PAGE.RAMD_KEYS.NUM-1 ; ¬ ªá¨¬ «ì­ë© ­®¬¥à à ¬¤¨áª 
SUB B
JR NC,.loop
RET
; RDSTART:
; LD A,msgStrings.bootRamDrv
; CALL POSTMSG
; LD B,DRIVE_CODES.SPRINTER.RAM ; 6 - ⨯ ¤à ©¢  RAM-DRV, 0 - ­®¬¥à ¤à ©¢ 
; .loop: PUSH BC
; CALL OS_LOAD
; POP BC
; INC B
; LD A,DRIVE_CODES.SPRINTER.RAM + SYS_PAGE.RAMD_KEYS.NUM-1 ; ¬ ªá¨¬ «ì­ë© ­®¬¥à à ¬¤¨áª 
; SUB B
; JR NC,.loop
; RET
HDSTART:
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,B
;
AND #03 ;R02 %00000011
LD IY,IDE.INIT_TBL_IDE0
JR Z,.next
;
LD IY,IDE.INIT_TBL_IDE1
CP 1 ;R02
JR Z,.next
;
LD IY,IDE.INIT_TBL_IDE2 ;R02
CP 2 ;R02
JR Z,.next
;
LD IY,IDE.INIT_TBL_IDE3 ;R02
;
.next: LD A,(IY+IDE.HDD_INIT_TABLE.DriveType)
EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
CP IDE.Device.CDROM
JP Z,CDSTART
PUSH AF
PUSH BC
LD A,msgStrings.bootHdd
CALL POSTMSG
POP AF
PUSH AF
CALL PRINT_CHANEL
; HDSTART:
; IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
; LD A,B
; ;
; AND #03 ;R02 %00000011
; LD IY,IDE.INIT_TBL_IDE0
; JR Z,.next
; ;
; LD IY,IDE.INIT_TBL_IDE1
; CP 1 ;R02
; JR Z,.next
; ;
; LD IY,IDE.INIT_TBL_IDE2 ;R02
; CP 2 ;R02
; JR Z,.next
; ;
; LD IY,IDE.INIT_TBL_IDE3 ;R02
; ;
; .next: LD A,(IY+IDE.HDD_INIT_TABLE.DriveType)
; EX AF,AF'
; OUT (SLOT3),A
; EX AF,AF'
; CP IDE.Device.CDROM
; JP Z,CDSTART
; PUSH AF
; PUSH BC
; LD A,msgStrings.bootHdd
; CALL POSTMSG
; POP AF
; PUSH AF
; CALL PRINT_CHANEL
POP BC
POP AF
CP #FF
SCF
RET Z
; POP BC
; POP AF
; CP #FF
; SCF
; RET Z
OS_LOAD:
LD HL,#0000
LD IX,#0001

View File

@ -1,26 +1,29 @@
;
MACRO ShowInfo text, in_disp
/*
DISPLAY ' '
DISPLAY '[*] ', text
IF in_disp
DISPLAY 'ROM:'
DISPLAY ' ORG: ',/H, $$$
DISPLAY ' PAGE: ',/H, $$$$
DISPLAY 'MEM:'
DISPLAY ' DISP: ',/H, $
DISPLAY ' PAGE: ',/H, $$
ELSE
DISPLAY 'ROM:'
DISPLAY ' ORG: ',/H, $
DISPLAY ' PAGE: ',/H, $$
ENDIF
DISPLAY '[X]'
DISPLAY ' '
*/
; DISPLAY ' '
; DISPLAY '[*] ', text
; IF in_disp
; DISPLAY 'ROM:'
; DISPLAY ' ORG: ',/H, $$$
; DISPLAY ' PAGE: ',/H, $$$$
; DISPLAY 'MEM:'
; DISPLAY ' DISP: ',/H, $
; DISPLAY ' PAGE: ',/H, $$
; ELSE
; DISPLAY 'ROM:'
; DISPLAY ' ORG: ',/H, $
; DISPLAY ' PAGE: ',/H, $$
; ENDIF
; DISPLAY '[X]'
; DISPLAY ' '
ENDM
;
MACRO SET_IMG_LABEL
.Crazy_IMG_Label: DB "Crazy Blaster Image"
ENDM
;
; ‚室: è¨à¨­  á¯à ©â , ¢ëá®â , ª®®à¤¨­ â  X, ª®®à¤¨­ â  Y,  ¤à¥á á¯à ©â  ¢ ¯ ¬ïâ¨
MACRO EasterTable width, height, Xcoord, Ycoord, addr
@ -32,123 +35,6 @@
ENDM
;
;
MACRO _mRECOVERYrdChooseTYPE vers
IF vers = 1
; ¥á«¨ RECOVERY ­¥ ¯®¤à §ã¬¥¢ ¥â 90% ¡¥§®¯ á­®áâì ¯®«ì§®¢ â¥«ì᪨å à ¬¤¨áª®¢
; â® ¢ë¡¨à ¥¬ íâ®â ¢ à¨ ­â, ®­ èãáâ॥, ¯®¤ RECOVERY ¢á¥£¤  ¢ë¡¨à ¥âáï RAM Disk 15
;
ELSEIF vers = 2
; ˆé¥¬ ᢮¡®¤­ë© à ¬¤¨áª
LD B,SYS_PAGE.RAMD_KEYS.NUM
.getRDidLoop: LD A,B
DEC A
LD (RECOVERYstart.RDkey),A
PUSH BC
LD B,ROM_DISK.Pages.Size
CALL EMM.GetMemRMD
POP BC
JR NC,RECOVERYstart.IMGread ; ᢮¡®¤­ë© à ¬¤¨áª ­ ©¤¥­, ¢ë室¨¬ ¨§ 横« 
DEC A
JR Z,RECOVERYstart.FreeMem ; ®è¨¡ª  - ­¥¤®áâ â®ç­® ¯ ¬ïâ¨, ¢ë§ë¢ ¥¬ ®ç¨áâªã ¯ ¬ïâ¨
DJNZ .getRDidLoop
;
ELSE
ASSERT 0, Invalid 'RECOVERYrdChooseTYPE' variant - RECOVERYrdChooseTYPE
ENDIF
ENDM
;
MACRO _mRECOVERYmountTYPE vers
IF vers = 1 ; <20>®«¥¥ ¡ëáâàë©, ­® § å à¤ª®¦¥­­ë© ¢ à¨ ­â
LD HL,TEMP
CALL EMM.GetMemBlkPages ; ª¨¤ ¥¬ ¢ ¡ãä¥à ­®¬¥à  áâà ­¨æ RAM disk
IN A,(SLOT3)
LD (.slot3save),A
LD HL,ROM_DISK.Pages.Number
LD B,0
LD C,(HL)
INC C
LD DE,TEMP+ROM_DISK.Pages.Size
LDIR ; ª¨¤ ¥¬ ¤ «ìè¥ ¢ ¡ãä¥à ­®¬¥à  áâà ­¨æ ROM disk
LD IY,TEMP+ROM_DISK.Pages.Size ; ROM_DISK.Pages.Number
LD IX,TEMP
LD B,(IY+0)
LD A,R
PUSH AF
DI
.loopIMGtoRAM: PUSH BC
INC IY
LD A,(IY+0)
OUT (ROM.SLOT0),A
LD A,(IX+0)
OUT (SLOT3),A
INC IX
LD HL,0
LD DE,#C000
LD BC,#4000
LDIR
POP BC
DJNZ .loopIMGtoRAM
.slot3save+*: LD A,0
OUT (SLOT3),A
XOR A
OUT (ROM.SLOT0),A
OUT (CNF_PORT.vBIOS),A
POP AF
JP PO,.noInterrupts
EI
.noInterrupts:
;
ELSEIF vers = 2 ; ¬¥­¥¥ ¡ëáâàë©, ­® ¡®«¥¥ ¯à ¢¨«ì­ë© ¢ à¨ ­â ç¥à¥§ ä㭪樨 ¡¨®á 
LD (.ramdskID),A
LD DE,0 ; ­®¬¥à ᥪâ®à 
LD B,(ROM_DISK.Pages.Size * #4000)/512 ; áçñâ稪 - ª®«-¢  ᥪâ®à®¢ ¯® 512 ª¡
.loop:
;read rom disk
PUSH BC
LD A,1 ;à §¬¥à ᥪâ®à  256
EX AF,AF'
LD A,#46 ;ç⥭¨¥ ¨§ ROM-Disk
EX AF,AF'
LD HL,TEMP ; ¤à¥á ¡ãä¥à  ¤ ­­ëå
LD B,2 ;ç¨á«® ᥪâ®à®¢
CALL BLK_RD_WR
;write to ram disk
PUSH DE ;­®¬¥à ᥪâ®à 
DEC DE
DEC DE
.ramdskID+*: LD A,0 ;¨¤¥­â¨ä¨ª â®à ¡«®ª 
EX AF,AF'
LD A,#FF ;§ ¯¨áì ¢ RAM-Disk
EX AF,AF'
LD HL,TEMP ; ¤à¥á ¡ãä¥à  ¤ ­­ëå
LD B,2 ;ç¨á«® ᥪâ®à®¢
CALL BLK_RD_WR
POP DE ;­®¬¥à ᥪâ®à 
POP BC
DJNZ .loop
;
ELSE
ASSERT 0, Invalid 'RECOVERYmountTYPE' variant - RECOVERYmountTYPE
ENDIF
ENDM
;
;
MACRO RST_to_BIOS

View File

@ -1,6 +1,7 @@
;=======================[All shared EQUs]=======================;
BETA_BUILD EQU 6 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥
;======================[All shared defines]=====================;
DEFINE DEBUG 0 ;
DEFINE SP2000_Loader_Flag #0107 ;
DEFINE IDE_Optimization 1 ; á«¥£ª  ®¯â¨¬¨§¨àã¥â ­¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
DEFINE NeedSafePort_Y 1 ; ¥á«¨ 0, â® ¢ ०¨¬¥ ¡¥§  ªá¥«ï ­¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà ­
@ -15,7 +16,6 @@ BETA_BUILD EQU 6 ;
;----------------------------[ TEST ]---------------------------;
DEFINE HDDwriteProtect 0 ; áâ à ï ä¨èª  ¤«ï ä㭪権 5x
DEFINE RECOVERYmountTYPE 1 ; 1 - ¡ëáâàë© ­¥¬­®£® § å à¤ª®¦¥­ë© ¢ à¨ ­â. 2 - ¡®«¥¥ "¯à ¢¨«ì­ë©"
DEFINE RECOVERYrdChooseTYPE 1 ; 1 - RECOVERY £à㧨âáï ¢ ¤¨áª 15, 2 - ¨é¥âáï ᢮¡®¤­ë© à ¬¤¨áª, ¥á«¨ ­¥â, â® ¢ 15-ë©
DEFINE FDD_NormalCount 0 ; !TODO
DEFINE UnusedSettingsFeatures 0 ;
;===============================================================;

BIN
Crazy BIOS/shared/cb_boot.IMG Executable file

Binary file not shown.

View File

@ -80,7 +80,7 @@ FAIL: CALL MESSAGE
;
MESSAGE: ;R01 Start
XOR A
OUT (SYS_PORT.ON),A
OUT (CNF_PORT.vBIOS),A
.loop: LD A,(HL) ;R01
INC HL
OR A
@ -211,7 +211,7 @@ CONTINUE: LD HL,0
.no_big_core: ;
RUN_CORE: DI
XOR A
OUT (SYS_PORT.OFF),A
OUT (CNF_PORT.vZX_ROM),A
;
LD A,#10
LD BC,#7FFD
@ -236,7 +236,7 @@ RUN_CORE: DI
CALL MESSAGE
;
XOR A
OUT (SYS_PORT.OFF),A
OUT (CNF_PORT.vZX_ROM),A
;
LD A,(DRIVE)
LD BC,Dss.BootDSK.Set

View File

@ -43,8 +43,8 @@ RST_00:
; <[BIOS API]>
BLOCK 8-$,#C7 ; #C7 - "RST 0" opcode
A0008: PUSH AF
LD A,SYS_PORT.PAGE8
OUT (SYS_PORT.ON),A
LD A,CNF_PORT.BIOS
OUT (CNF_PORT.vBIOS),A
POP AF
RET
////////////////////////////////////////////////////////////////////////
@ -232,11 +232,11 @@ INITDVC_RET_DRIVE:
AND A
RET
INCLUDE 'dss/Drivers/media/shared-drv.asm'
INCLUDE 'dss/Drivers/media/ide-drv.asm'
INCLUDE 'dss/Drivers/media/fdd-drv.asm'
INCLUDE 'dss/Drivers/media/ram_disk-drv.asm'
INCLUDE "dss/Drivers/input/MOUSE.ASM"
INCLUDE 'crazy estex dss/dss/Drivers/media/shared-drv.asm'
INCLUDE 'crazy estex dss/dss/Drivers/media/ide-drv.asm'
INCLUDE 'crazy estex dss/dss/Drivers/media/fdd-drv.asm'
INCLUDE 'crazy estex dss/dss/Drivers/media/ram_disk-drv.asm'
INCLUDE "crazy estex dss/dss/Drivers/input/MOUSE.ASM"
/////////////////////////// [ DRIVE TABLES ] \\\\\\\\\\\\\\\\\\\\\\\\\\\;
;
;------------------------[shared-drv.asm table]------------------------;

View File

@ -72,8 +72,8 @@ RST_0x00: JP RETFAR ; ;EXECUTE.ASM R12
; <[BIOS API]> ;
_mInfoBLOCK 8-$,#FF ;
RST_0x08: PUSH AF ;
LD A,SYS_PORT.PAGE8;
OUT (SYS_PORT.ON),A ;
LD A,CNF_PORT.BIOS ;
OUT (CNF_PORT.vBIOS),A ;
POP AF ;
RET ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';

View File

@ -10,7 +10,7 @@
if sj.get_define("INCREASE_BUILD") > "0" then
dss_build = increase_build("./DSS/build.txt")
else
dss_build = get_build("./DSS/build.txt")
dss_build = get_build("./crazy estex dss/DSS/build.txt")
end
if dss_build > 999 then

View File

@ -8,6 +8,6 @@ EXP_ID.VER: EQU 0x00000003
EXP_ID.MOD: EQU 0x00000006
CNF_ID.VER: EQU 0x00000000
CNF_ID.MOD: EQU 0x00000000
msgStrings.str_ACEX_MODEL: EQU 0x0000244B
msgRusStrings.str_ACEX_MODEL: EQU 0x00002E5B
msgStrings.str_ACEX_MODEL: EQU 0x0000234B
msgRusStrings.str_ACEX_MODEL: EQU 0x00002D5B
BETA_BUILD: EQU 0x00000006

View File

@ -1,5 +1,6 @@
;ÛÛÛÛÛÛÛ ¨­¨æ¨ «¨§ æ¨ï á¨á⥬­ëå ¯®à⮢ Z84C15 ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
DI
IM 1
LD BC,#FF*256 + Z84.SYS.Control
XOR A ; Z84.REG.WaitState_Ctrl
OUT (C),A ; Z84.SYS.Control
@ -14,7 +15,8 @@
LD A,1 ; enable CS0, disable CS1
OUT (C),A ; Z84.SYS.Data
;ÛÛÛÛÛÛÛ ¨­¨æ¨ «¨§ æ¨ï DCP ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
LD HL,ADD_PORTS.Code
;LD HL,ADD_PORTS.Code
LD HL,INIT_PORTS
DCP_INIT: LD C,XL
LD B,XH
LD E,YL
@ -111,15 +113,22 @@ ADD_PORTS: ;
DB #E4 ; ¢­¥è­¨© #4004
.Data.Size EQU $ - .Data
;
.Code: LD HL,ADD_PORTS.Data
LD DE,#C480
LD BC,ADD_PORTS.Data.Size
LDIR
.Code: ;LD DE,#C480
; LD HL,ADD_PORTS.Data
; LD BC,ADD_PORTS.Data.Size
; LDIR
;
;ÛÛÛÛÛÛÛ ˆ­¨æ¨ «¨§ æ¨ï ¯®à⮢ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON + CNF_PORT.PENT_RESET + CNF_PORT.SCORP_RESET + CNF_PORT.CNF_512
;OUT (SYS_PORT.ROM),A
INIT_PORTS: LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (SYS_PORT.ROM),A
;ÛÛÛÛÛÛÛ ˆ­¨æ¨ «¨§ æ¨ï áâà ­¨æ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
INIT_SLOTS: LD BC,#1FFD
LD A,1
OUT (C),A
LD B,#7F
; LD A,#11
OUT (C),A
;
XOR A
@ -127,11 +136,8 @@ INIT_SLOTS: LD BC,#1FFD
OUT (SLOT1),A
LD A,2
OUT (SLOT2),A
LD A,SYS_PAGE
LD A,DCP_PAGE
OUT (SLOT3),A
;ÛÛÛÛÛÛÛ ˆ­¨æ¨ «¨§ æ¨ï ¯®à⮢ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (SYS_PORT.ROM),A
;ÛÛÛÛÛÛÛ ˆ­¨æ¨ «¨§ æ¨ï á⥪  ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
LD SP,#4000
;ÛÛÛÛÛÛÛ <20>¥à¥¡à®á ®á⠢襣®áï ª®¤  ¢ RAM ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -149,18 +155,41 @@ INIT_SLOTS: LD BC,#1FFD
; ’“’ Œ› “†… އ“ ’ŽŒ †… ŠŽ„… ˆ €„<E282AC>
; áâà ­¨æë 0,1,2,#FE
;ÛÛÛÛÛÛÛ ˆ­¨æ¨ «¨§ æ¨ï áâà ­¨æ vROM ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
vROM_MAP: LD BC,#4000
LD HL,RESERVED_PAGES.BIOS
LD HL,#C900 ; Opcodes RET : NOP
LD A,H
LD (DOS_OFF),A
LD (DOS_ON),HL
vROM_MAP: LD HL,RESERVED_PAGES.BIOS
LD DE,ADD_PORTS.Data
LD A,RESERVED_PAGES.Size
.loop: LD E,(HL)
OUT (C),E
INC C
.loop: EX AF,AF'
LD A,(HL)
LD B,A
LD A,(DE)
CALL SET_PORTS
INC HL
INC DE
EX AF,AF'
DEC A
JR NZ,.loop
;
LD A,SYS_PAGE
OUT (SLOT3),A
; ;ÛÛÛÛÛÛÛ ˆ­¨æ¨ «¨§ æ¨ï áâà ­¨æ 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> ¡®ç¨© ª®¤ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
LD A,SYS_PAGE
OUT (SLOT3),A
;  ¤à¥á ¯à®æ¥¤ãàë ®è¨¡ª¨
LD HL,ERROR
PUSH HL
@ -170,16 +199,15 @@ vROM_MAP: LD BC,#4000
;ÛÛÛÛÛÛ “áâ ­®¢ª  áâà ­¨æ ¤«ï § £à㧪¨ ¤ ­­ëå ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
CALL Init_Mem
;ÛÛÛÛÛÛ ‡ £à㧪  ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
; ¤®¯®«­¨â¥«ì­ë¥ ä㭪樨
CHECK_IMG: ;LD A,(RESERVED_PAGES.SYS_FN) ; áâà ­¨æ  ¡ãä¥à , ¥á«¨  ¤à¥á ¢ ®ª­¥ #C000 (BLOCK_ID)
LD B,1 ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
; ¯à®¢¥àª  ID ¤¨áª  á BIOS (¤®¯®«­¨â¥«ì­ë¥ ä㭪樨)
CHECK_IMG: LD B,1 ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
LD HL,#8000 ;  ¤à¥á ¡ãä¥à  ¤ ­­ëå
LD IX,0 ;  ¡á®«îâ­ë© ­®¬¥à ᥪâ®à  áâ àè ï ç áâì
LD DE,0 ;  ¡á®«îâ­ë© ­®¬¥à ᥪâ®à  ¬« ¤è ï ç áâì
PUSH HL
CALL FN_HDD_READ
POP HL
;ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
; áà ¢­¥­¨¥ ¬¥âª¨
LD DE,CHECKING_LABEL
LD B,CHECKING_LABEL.Size
.loop: LD A,(DE)
@ -194,6 +222,17 @@ LOAD_DATA: LD A,(RESERVED_PAGES.BIOS)
LD B,RESERVED_PAGES.Size * #4000 / 512
LD DE,1
CALL FN_HDD_READ_NEXT
RET C
;
IF DEBUG
LD A,#41
LD HL,#C000
LD B,1
LD D,L
LD E,B
CALL FN_HDD_READ_NEXT
RET C
ENDIF
XOR A
OUT (SLOT1),A
JP .IN_RAM + #4000
@ -202,11 +241,13 @@ LOAD_DATA: LD A,(RESERVED_PAGES.BIOS)
XOR A
OUT (C),A
;
XOR A ;CNF_PORT.BIOS
; A = CNF_PORT.BIOS
OUT (CNF_PORT.vBIOS),A
LD A,#40
LD A,DCP_PAGE
OUT (SLOT3),A
;
LD IX,ACEX.Config_ID.Sp2000
LD IY,SP2000_Loader_Flag
RST 0
;JP BEGIN_CB_IMG
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -499,14 +540,46 @@ TEST_HDD_DRV: ;LD HL,#01FE
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
ERROR: ;°°°°°°° Œ¨£ ­¨¥ « ¬¯®çª®© âãà¡ë °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
.loop: CALL FLASH_LIGHT
JR .loop
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
FLASH_LIGHT: PUSH AF
PUSH DE
PUSH BC
LD E,6
LD A,SYS_PORT.TURBO.OFF
.big_loop: LD BC,0
OUT (SYS_PORT.ROM),A
OUT (SYS_PORT.RAM),A
.loop: DEC BC
INC B
DJNZ .loop
XOR 1
JR .big_loop
DEC E
JR NZ,.big_loop
;
POP AF
POP DE
POP BC
RET
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
; in: A - ¢­ãâ७­¨© ¯®àâ, B - §­ ç¥­¨¥ ¤«ï § ¯¨á¨ ¢® ¢­ãâ७­¨© ¯®àâ
; out: B - áâ à®¥ §­ ç¥­¨¥ ¢­ãâ७­¥£® ¯®àâ ; <20>¥à¥¤ ¢ë室®¬ ¢®ááâ ­ ¢«¨¢ ¥âáï ª®­ä  ¯à®¯¨á ­­ ï ¢ CONFIG_DE.
SET_PORTS:
CALL DOS_ON
;
LD (#C400),A ; ãáâ ­®¢¨âì ¢­ãâ७­¨© ¯®àâ
LD A,B
LD BC,0
; ‡ ¯¨áì ¯®àâ 
OUT (C),A ; ãáâ ­®¢¨âì ­®¢®¥ §­ ç¥­¨¥ ¯®àâ 
;
.End: XOR A
LD (#C400),A ; ¢¥à­ãâì ¯®àâ
JP DOS_OFF
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
@ -518,6 +591,9 @@ RESERVED_PAGES: ;
DB #49 ; Recovery_2 Acex port: #E7
DB #4B ; LOGO Acex port: #E4
.Size EQU $-RESERVED_PAGES.BIOS
IF DEBUG
DB #41
ENDIF
DB #FF ; End of the block
.Blocks EQU 1
@ -534,135 +610,56 @@ END_CB EQU $
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛ ’ ¡«¨æ  DCP ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
DCP_DATA: DW %00'000'0'0100'0000
DW %11'000'0'0110'1111
DB ACEX.IDE_DATA_1F0
DW %01'000'0'0100'0000
DW %11'010'0'0110'1111
DB ACEX.IDE_DATA_1F0
DW %10'000'0'0100'0000
DW %11'010'0'0110'1111
DB ACEX.IDE_DATA_1F0
DW %11'000'0'0100'0000
DW %11'000'0'0110'1111
DB ACEX.IDE_DATA_1F0
;
DW %00'000'0'0100'0001
DW %00'010'1'1110'1111
DB ACEX.IDE_ERROR_1F1
DW %00'010'0'0100'0001
DW %11'010'1'1110'1111
DB ACEX.IDE_ERROR_1F1
DW %11'010'0'0100'0001
DW %11'010'1'1110'1111
DW %00'000'1'1110'1111
DB ACEX.IDE_ERROR_1F1
;
DW %00'000'0'0100'0010
DW %00'010'1'1110'1111
DB ACEX.IDE_COUNTER_1F2
DW %00'010'0'0100'0010
DW %11'010'1'1110'1111
DB ACEX.IDE_COUNTER_1F2
DW %11'010'0'0100'0010
DW %11'010'1'1110'1111
DW %00'000'1'1110'1111
DB ACEX.IDE_COUNTER_1F2
;
DW %00'000'0'0100'0011
DW %00'010'1'1110'1111
DB ACEX.IDE_SECTOR_1F3
DW %00'010'0'0100'0011
DW %11'010'1'1110'1111
DB ACEX.IDE_SECTOR_1F3
DW %11'010'0'0100'0011
DW %11'010'1'1110'1111
DW %00'000'1'1110'1111
DB ACEX.IDE_SECTOR_1F3
;
DW %00'000'0'0100'0100
DW %00'010'1'1110'1111
DB ACEX.IDE_CYLINDER_L_1F4
DW %00'010'0'0100'0100
DW %11'010'1'1110'1111
DB ACEX.IDE_CYLINDER_L_1F4
DW %11'010'0'0100'0100
DW %11'010'1'1110'1111
DW %00'000'1'1110'1111
DB ACEX.IDE_CYLINDER_L_1F4
;
DW %00'000'0'0100'0101
DW %00'010'1'1110'1111
DB ACEX.IDE_CYLINDER_H_1F5
DW %00'010'0'0100'0101
DW %11'010'1'1110'1111
DB ACEX.IDE_CYLINDER_H_1F5
DW %11'010'0'0100'0101
DW %11'010'1'1110'1111
DW %00'000'1'1110'1111
DB ACEX.IDE_CYLINDER_H_1F5
;
DW %00'000'0'1100'0010
DW %00'010'1'1110'1111
DB ACEX.IDE_DEVICE_HEAD_1F6
DW %00'010'0'1100'0010
DW %11'010'1'1110'1111
DB ACEX.IDE_DEVICE_HEAD_1F6
DW %11'010'0'1100'0010
DW %11'010'1'1110'1111
DW %00'000'1'1110'1111
DB ACEX.IDE_DEVICE_HEAD_1F6
;
DW %00'000'0'1100'0011
DW %00'010'1'1110'1111
DB ACEX.IDE_STATUS_CMD_1F7
DW %00'010'0'1100'0011
DW %11'010'1'1110'1111
DB ACEX.IDE_STATUS_CMD_1F7
DW %11'010'0'1100'0011
DW %11'010'1'1110'1111
DW %00'000'1'1110'1111
DB ACEX.IDE_STATUS_CMD_1F7
;
DW %00'000'0'1100'0100
DW %00'010'1'1110'1111
DB ACEX.IDE_CONTROL_3F6
DW %00'010'0'1100'0100
DW %11'010'1'1110'1111
DB ACEX.IDE_CONTROL_3F6
DW %11'010'0'1100'0100
DW %11'010'1'1110'1111
DW %00'000'1'1110'1111
DB ACEX.IDE_CONTROL_3F6
;
DW %00'000'0'1100'0101
DW %00'010'1'1110'1111
DB ACEX.IDE_STATUS_3F7
DW %00'010'0'1100'0101
DW %11'010'1'1110'1111
DB ACEX.IDE_STATUS_3F7
DW %11'010'0'1100'0101
DW %11'010'1'1110'1111
DW %00'000'1'1110'1111
DB ACEX.IDE_STATUS_3F7
;
DW %00'000'0'0010'1100
DW %11'001'1'1111'1111
DB ACEX.IDE_CHANEL_1
DW %11'000'0'0010'1100
DW %11'001'1'1111'1111
DB ACEX.IDE_CHANEL_1
;
DW %00'000'0'0011'1100
DW %11'001'1'1111'1111
DB ACEX.IDE_CHANEL_2
DW %11'000'0'0011'1100
DW %11'001'1'1111'1111
DB ACEX.IDE_CHANEL_2
;
DW %00'000'0'1010'1100
DW %11'001'1'1111'1111
DB ACEX.RESET
DW %11'000'0'1010'1100
DW %11'001'1'1111'1111
DB ACEX.RESET
;
DW %00'000'0'0110'1101
DW %10'000'1'1111'1111
DB ACEX.Scorp_1FFD
DW %11'000'0'0110'1101
DW %11'000'1'1111'1111
DB ACEX.Scorp_1FFD
;
DW %00'000'0'1110'1101
DW %00'100'1'1110'1111
@ -670,62 +667,29 @@ DCP_DATA: DW %00'000'0'0100'0000
DW %00'100'0'1110'1101
DW %11'110'1'1110'1111
DB ACEX.Pent_7FFD
DW %11'100'0'1110'1101
DW %11'100'1'1110'1111
DB ACEX.Pent_7FFD
DW %10'000'0'0110'1101
DW %11'100'1'1110'1111
DB ACEX.Pent_7FFD
;
DW %00'000'0'0101'0110
DW %11'001'1'1111'1111
DB ACEX.ALL_MODE
DW %11'000'0'0101'0110
DW %11'001'1'1111'1111
DB ACEX.ALL_MODE
;
DW %00'000'0'0010'0100
DW %00'000'0'0010'1111
DB ACEX.CNF_PORT
;
DW %00'000'0'0000'1010
DW %00'010'0'0110'1111
DB ACEX.SLOT0
DW %00'010'0'0000'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT0
DW %11'010'0'0000'1010
DW %11'010'0'0110'1111
DW %00'000'0'0110'1111
DB ACEX.SLOT0
;
DW %00'000'0'0010'1010
DW %00'010'0'0110'1111
DB ACEX.SLOT1
DW %00'010'0'0010'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT1
DW %11'010'0'0010'1010
DW %11'010'0'0110'1111
DW %00'000'0'0110'1111
DB ACEX.SLOT1
;
DW %00'000'0'0100'1010
DW %00'010'0'0110'1111
DB ACEX.SLOT2
DW %00'010'0'0100'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT2
DW %11'010'0'0100'1010
DW %11'010'0'0110'1111
DW %00'000'0'0110'1111
DB ACEX.SLOT2
;
DW %00'000'0'0110'1010
DW %00'010'0'0110'1111
DB ACEX.SLOT3
DW %00'010'0'0110'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT3
DW %11'010'0'0110'1010
DW %11'010'0'0110'1111
DW %00'000'0'0110'1111
DB ACEX.SLOT3
; DCP END MARKER
DW 0,0,0

18
Crazy/debug.asm Normal file
View File

@ -0,0 +1,18 @@
INCLUDE 'Shared_Includes/constants/SP2000.inc'
ORG 0
.start: LD E,8
LD A,SYS_PORT.TURBO.OFF
.big_loop: LD BC,0
OUT (CNF_PORT.vZX_ROM),A
.loop: DEC BC
INC B
DJNZ .loop
XOR 1
DEC E
JR NZ,.big_loop
;
LD BC,0
.loop2: DEC BC
INC B
DJNZ .loop2
JR .start

View File

@ -1,7 +1,7 @@
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'
@ -17,9 +17,8 @@
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
DOS_OFF EQU #4000
DOS_ON EQU #3D13
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ[ FIRST SECTION - CONF ROM ]ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -34,7 +33,7 @@ END_FIRST_SECTION EQU $
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
/*
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ[ SECOND SECTION - IMAGE ON DRIVE ]ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
@ -52,3 +51,4 @@ END_SECOND_SECTION EQU $
DISPLAY "IMG size = ",/A,END_SECOND_SECTION - BEGIN_CB_IMG
OUTEND
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
*/