mirror of
https://github.com/Tolik-Trek/Crazy-Blaster.git
synced 2026-06-15 09:31:37 +03:00
BIOS starts, DSS loads
This commit is contained in:
parent
9b9bb846d8
commit
8210691bd8
@ -1,6 +1,7 @@
|
|||||||
INCLUDE 'shared/defines.inc'
|
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
|
MACRO Set_Block text, blk_addr
|
||||||
@ -11,9 +12,13 @@
|
|||||||
;[--------------------------------------------------------------------------]
|
;[--------------------------------------------------------------------------]
|
||||||
ORG 0
|
ORG 0
|
||||||
DISPLAY '[ Building CB_IMG file ]'
|
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
|
;PAGE #46 BIOS
|
||||||
INCBIN 'Build/Bin/EXP.BIN'
|
INCBIN 'Build/Bin/EXP.BIN'
|
||||||
Set_Block 'EXP free space: ', #4000
|
Set_Block 'EXP free space: ', #4000
|
||||||
@ -31,6 +36,11 @@
|
|||||||
;PAGE #4B LOGO
|
;PAGE #4B LOGO
|
||||||
INCBIN 'Build/Bin/LOGO.BIN'
|
INCBIN 'Build/Bin/LOGO.BIN'
|
||||||
Set_Block 'LOGO free space: ', #14000
|
Set_Block 'LOGO free space: ', #14000
|
||||||
|
;DEBUG
|
||||||
|
IF DEBUG
|
||||||
|
INCLUDE './crazy/debug.asm'
|
||||||
|
Set_Block 'LOGO free space: ', #14200
|
||||||
|
ENDIF
|
||||||
;[--------------------------------------------------------------------------]
|
;[--------------------------------------------------------------------------]
|
||||||
OUTEND
|
OUTEND
|
||||||
DISPLAY '[_____________Building CB_IMG file done!_____________]'
|
DISPLAY '[_____________Building CB_IMG file done!_____________]'
|
||||||
|
|||||||
@ -2,11 +2,26 @@
|
|||||||
;
|
;
|
||||||
;*************************************************************
|
;*************************************************************
|
||||||
;
|
;
|
||||||
; EXPANSION VER 3.00 (C) Peters Plus Ltd.
|
; 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 ***********
|
;*********** BEGIN EXPANSION ***********
|
||||||
;***************************************
|
;***************************************
|
||||||
@ -35,7 +50,7 @@ BOARD_INFO:
|
|||||||
EXP_FNS_2_RET:
|
EXP_FNS_2_RET:
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD A,vROM.BIOS
|
LD A,vROM.BIOS
|
||||||
OUT (CNF_PORT.vBIOS),A
|
OUT (CNF_PORT.vZX_ROM),A
|
||||||
POP AF
|
POP AF
|
||||||
JR RST_18_1
|
JR RST_18_1
|
||||||
;=======================================
|
;=======================================
|
||||||
@ -109,21 +124,13 @@ TABLE_X:
|
|||||||
|
|
||||||
;
|
;
|
||||||
;=======================================
|
;=======================================
|
||||||
RESTARTS EQU #FFE0
|
;RESTARTS EQU #FFE0
|
||||||
GLOBAL_RESET:
|
; GLOBAL_RESET:
|
||||||
DI
|
; DI
|
||||||
IM 1
|
; ;
|
||||||
LD HL,RESTARTS
|
; FLASH_LIGHT
|
||||||
LD DE,RESTARTS_PROG
|
; ;
|
||||||
LD B,RESTARTS_PROG.Size
|
; JR NO_RESTART
|
||||||
.compare:
|
|
||||||
LD A,(DE)
|
|
||||||
CP (HL)
|
|
||||||
JR NZ,NO_RESTART
|
|
||||||
INC HL
|
|
||||||
INC DE
|
|
||||||
DJNZ .compare
|
|
||||||
JP RESTARTS
|
|
||||||
;=======================================
|
;=======================================
|
||||||
_mInfoBLOCK #66-$,0
|
_mInfoBLOCK #66-$,0
|
||||||
NMI_Point:
|
NMI_Point:
|
||||||
@ -142,7 +149,6 @@ NMI_Point:
|
|||||||
; IN B,(C)
|
; IN B,(C)
|
||||||
; CALL SET_ROM_PAGES+#C000
|
; CALL SET_ROM_PAGES+#C000
|
||||||
; JP NO_SUMX_EQ
|
; JP NO_SUMX_EQ
|
||||||
|
|
||||||
;**********************************
|
;**********************************
|
||||||
|
|
||||||
;BEEP:
|
;BEEP:
|
||||||
@ -209,7 +215,9 @@ BoardID:
|
|||||||
|
|
||||||
;
|
;
|
||||||
;-----[¯¥à¥å¢ â RESET ¥ á®áâ®ï«áï]-----
|
;-----[¯¥à¥å¢ â RESET ¥ á®áâ®ï«áï]-----
|
||||||
NO_RESTART:
|
GLOBAL_RESET:
|
||||||
|
DI
|
||||||
|
IM 1
|
||||||
; á⥪ ¥éñ ¥ ¨á¯®«ì§ã¥¬!!!
|
; á⥪ ¥éñ ¥ ¨á¯®«ì§ã¥¬!!!
|
||||||
LD SP,IX ; á®åà ¨âì § 票¥ ¯¥à¥¤ ®¥ § £àã§ç¨ª®¬ ª®äë (¥á«¨ áâ àâ ¯®á«¥ à¥á¥â )
|
LD SP,IX ; á®åà ¨âì § 票¥ ¯¥à¥¤ ®¥ § £àã§ç¨ª®¬ ª®äë (¥á«¨ áâ àâ ¯®á«¥ à¥á¥â )
|
||||||
; ¨¨æ¨ «¨§ æ¨ï ¢ãâà¥¨å ¯®à⮢ Z84C15 ¤«ï POST-Tester-
|
; ¨¨æ¨ «¨§ æ¨ï ¢ãâà¥¨å ¯®à⮢ Z84C15 ¤«ï POST-Tester-
|
||||||
@ -534,6 +542,8 @@ POST_5_OK:
|
|||||||
; **********************************
|
; **********************************
|
||||||
ENDMODULE
|
ENDMODULE
|
||||||
|
|
||||||
|
;FLASH_LIGHT
|
||||||
|
|
||||||
MODULE SET_CONFIG_ID
|
MODULE SET_CONFIG_ID
|
||||||
|
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
@ -544,6 +554,7 @@ POST_5_OK:
|
|||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|
||||||
|
|
||||||
;-------------[Save IX:IY]--------------
|
;-------------[Save IX:IY]--------------
|
||||||
; Don't use IY before this point if it`s normal booting!!!
|
; Don't use IY before this point if it`s normal booting!!!
|
||||||
LD IX,0
|
LD IX,0
|
||||||
@ -1001,23 +1012,6 @@ RES128_PROG:
|
|||||||
LEN_RES128 EQU $-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]----------------------------;
|
;----------------------------[Setup Starter]----------------------------;
|
||||||
MODULE Setup_Starter
|
MODULE Setup_Starter
|
||||||
; ¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯® ¤à¥áã #C000
|
; ¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯® ¤à¥áã #C000
|
||||||
@ -1359,11 +1353,11 @@ kbd_loop2:
|
|||||||
_mInfoALIGN 256,#FF
|
_mInfoALIGN 256,#FF
|
||||||
; BLOCK #3F00-$,#FF
|
; BLOCK #3F00-$,#FF
|
||||||
ROM_DISK.Pages.Number:
|
ROM_DISK.Pages.Number:
|
||||||
BYTE ROM_DISK.Pages.Size ; ç¨á«® áâà ¨æ
|
DB ROM_DISK.Pages.Size ; ç¨á«® áâà ¨æ
|
||||||
; ã áâà ¨æ ¢ëáâ ¢«¥ bit4 ¤«ï ª®à४⮩ ¯®¤áâ ®¢ª¨
|
; ã áâà ¨æ ¢ëáâ ¢«¥ bit4 ¤«ï ª®à४⮩ ¯®¤áâ ®¢ª¨
|
||||||
;(¯®¤à®¡¥¥ ¢ sp2000.inc - <20>®àâ ã¯à ¢«¥¨ï áâà ¨æ ¬¨ <20>‡“)
|
;(¯®¤à®¡¥¥ ¢ sp2000.inc - <20>®àâ ã¯à ¢«¥¨ï áâà ¨æ ¬¨ <20>‡“)
|
||||||
ROM_DISK.Pages: ; áâà ¨æë ROM-Disk
|
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
|
.Size EQU $-ROM_DISK.Pages
|
||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
;#######################################################################;
|
;#######################################################################;
|
||||||
|
|||||||
@ -667,12 +667,13 @@ INFO_MESSAGE:
|
|||||||
CALL TSETUP ;!TODO ¬®¦¥â ¯¨åãâì ¥ñ ¯à¥àë¢ ¨ï?
|
CALL TSETUP ;!TODO ¬®¦¥â ¯¨åãâì ¥ñ ¯à¥àë¢ ¨ï?
|
||||||
|
|
||||||
CALL CONFIGURE_IDE_DRIVES.START
|
CALL CONFIGURE_IDE_DRIVES.START
|
||||||
CALL CTRLKEY
|
; CALL CTRLKEY
|
||||||
LD A,B
|
; LD A,B
|
||||||
; [x] 05/07/2024 <CTRL for Recovery>
|
; ; [x] 05/07/2024 <CTRL for Recovery>
|
||||||
BIT X_CTRL,A
|
; BIT X_CTRL,A
|
||||||
LD BC,#FFFF ; ¬ àª¥à ¤«ï PrepareToBOOT, ç⮡ £à㧨« Recovery
|
; LD BC,#FFFF ; ¬ àª¥à ¤«ï PrepareToBOOT, ç⮡ £à㧨« Recovery
|
||||||
JR NZ,RECOVERY_BOOT
|
; JR NZ,RECOVERY_BOOT
|
||||||
|
JR RECOVERY_BOOT
|
||||||
;
|
;
|
||||||
BIT X_ALT,A
|
BIT X_ALT,A
|
||||||
JR NZ,ALT_BOOT
|
JR NZ,ALT_BOOT
|
||||||
@ -689,16 +690,16 @@ RECOVERY_BOOT:
|
|||||||
;
|
;
|
||||||
CALL INT_ON
|
CALL INT_ON
|
||||||
ALT_BOOT:
|
ALT_BOOT:
|
||||||
LD A,msgStrings.bootAltDrv
|
; LD A,msgStrings.bootAltDrv
|
||||||
LD E,COLORS.CGA.INC.LGREEN
|
; LD E,COLORS.CGA.INC.LGREEN
|
||||||
CALL POSTMSC
|
; CALL POSTMSC
|
||||||
|
|
||||||
LD BC,CMOS_CELL.BootDrives.Mask.AltSysDisk ;#7010
|
; LD BC,CMOS_CELL.BootDrives.Mask.AltSysDisk ;#7010
|
||||||
CALL PrepareToBOOT
|
; CALL PrepareToBOOT
|
||||||
LD A,msgStrings.bootFail
|
; LD A,msgStrings.bootFail
|
||||||
LD E,COLORS.CGA.INC.LRED
|
; LD E,COLORS.CGA.INC.LRED
|
||||||
CALL C,POSTMSC
|
; CALL C,POSTMSC
|
||||||
CALL ScreenPOS.CRLF
|
; CALL ScreenPOS.CRLF
|
||||||
|
|
||||||
;NO START DISK - RESTART / SETUP / ZX SPECTRUM mode
|
;NO START DISK - RESTART / SETUP / ZX SPECTRUM mode
|
||||||
LD BC,CMOS_CELL.Options.Mask.RebootMSG ;#021D
|
LD BC,CMOS_CELL.Options.Mask.RebootMSG ;#021D
|
||||||
@ -864,11 +865,6 @@ RESCREEN: ;R06
|
|||||||
RECOVERYstart:
|
RECOVERYstart:
|
||||||
LD A,msgStrings.bootRecovery
|
LD A,msgStrings.bootRecovery
|
||||||
CALL POSTMSG
|
CALL POSTMSG
|
||||||
;
|
|
||||||
|
|
||||||
; ‚ë¡®à à ¬¤¨áª ¤«ï ४ ¢¥à¨
|
|
||||||
_mRECOVERYrdChooseTYPE RECOVERYrdChooseTYPE
|
|
||||||
|
|
||||||
; ¯à¨¡¨¢ ¥¬ ¯®á«¥¤¨© à ¬¤¨áª, ¥á«¨ § ïâ
|
; ¯à¨¡¨¢ ¥¬ ¯®á«¥¤¨© à ¬¤¨áª, ¥á«¨ § ïâ
|
||||||
.killRAMdisk: LD A,SYS_PAGE.RAMD_KEYS.NUM-1
|
.killRAMdisk: LD A,SYS_PAGE.RAMD_KEYS.NUM-1
|
||||||
LD (.RDkey),A
|
LD (.RDkey),A
|
||||||
@ -876,6 +872,7 @@ RECOVERYstart:
|
|||||||
JR NC,.setRAMdisk
|
JR NC,.setRAMdisk
|
||||||
JR Z,.setRAMdisk
|
JR Z,.setRAMdisk
|
||||||
RET ; ¥¯®ïâ ï ®è¨¡ª - ¢ë室¨¬
|
RET ; ¥¯®ïâ ï ®è¨¡ª - ¢ë室¨¬
|
||||||
|
;
|
||||||
.setRAMdisk: LD A,(.RDkey)
|
.setRAMdisk: LD A,(.RDkey)
|
||||||
LD B,ROM_DISK.Pages.Size
|
LD B,ROM_DISK.Pages.Size
|
||||||
CALL EMM.GetMemRMD
|
CALL EMM.GetMemRMD
|
||||||
@ -883,15 +880,69 @@ RECOVERYstart:
|
|||||||
DEC A
|
DEC A
|
||||||
JR Z,.FreeMem ; ®è¨¡ª - ¥¤®áâ â®ç® ¯ ¬ïâ¨, ¢ë§ë¢ ¥¬ ®ç¨áâªã ¯ ¬ïâ¨
|
JR Z,.FreeMem ; ®è¨¡ª - ¥¤®áâ â®ç® ¯ ¬ïâ¨, ¢ë§ë¢ ¥¬ ®ç¨áâªã ¯ ¬ïâ¨
|
||||||
RET ; ¥¯®ïâ ï ®è¨¡ª - ¢ë室¨¬
|
RET ; ¥¯®ïâ ï ®è¨¡ª - ¢ë室¨¬
|
||||||
|
;
|
||||||
.FreeMem: CALL EMM.FullInit
|
.FreeMem: CALL EMM.FullInit
|
||||||
JR .killRAMdisk
|
JR .killRAMdisk
|
||||||
;
|
;
|
||||||
|
|
||||||
; ‚室: A - RAM block ID
|
; ‚室: A - RAM block ID
|
||||||
.IMGread:
|
.IMGread: LD HL,TEMP
|
||||||
; ‚ ਠ⠪®¯¨à®¢ ¨ï ROM -> RAM disk
|
CALL EMM.GetMemBlkPages ; ª¨¤ ¥¬ ¢ ¡ãä¥à ®¬¥à áâà ¨æ RAM disk
|
||||||
_mRECOVERYmountTYPE RECOVERYmountTYPE
|
|
||||||
;
|
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
|
;Exit from "ROM Disk to RAM disk" procedure
|
||||||
.RDkey+*: LD A,0
|
.RDkey+*: LD A,0
|
||||||
OR DRIVE_CODES.SPRINTER.RAM
|
OR DRIVE_CODES.SPRINTER.RAM
|
||||||
@ -908,121 +959,122 @@ PrepareToBOOT: ;CALL INT_ON
|
|||||||
CALL INT_OFF
|
CALL INT_OFF
|
||||||
; âãâ ¥ ¤®«¦® ¡ëâì ¨á¯®à祮 § 票¥ BC
|
; âãâ ¥ ¤®«¦® ¡ëâì ¨á¯®à祮 § 票¥ BC
|
||||||
; [x] 05/07/2024 <CTRL for Recovery>
|
; [x] 05/07/2024 <CTRL for Recovery>
|
||||||
INC BC
|
; INC BC
|
||||||
LD A,B
|
; LD A,B
|
||||||
OR C
|
; OR C
|
||||||
JP Z,RECOVERYstart
|
; JP Z,RECOVERYstart
|
||||||
DEC BC
|
; DEC BC
|
||||||
;
|
;
|
||||||
CALL G_VALUE
|
; CALL G_VALUE
|
||||||
LD B,DRIVE_CODES.SPRINTER.FDD
|
; LD B,DRIVE_CODES.SPRINTER.FDD
|
||||||
; FDD
|
; FDD
|
||||||
OR A
|
; OR A
|
||||||
JR Z,FDSTART ; FDD A:
|
; JR Z,FDSTART ; FDD A:
|
||||||
INC B
|
; INC B
|
||||||
DEC A
|
; DEC A
|
||||||
JR Z,FDSTART ; FDD B:
|
; JR Z,FDSTART ; FDD B:
|
||||||
; IDE
|
; ; IDE
|
||||||
LD B,DRIVE_CODES.SPRINTER.HDD
|
; LD B,DRIVE_CODES.SPRINTER.HDD
|
||||||
DEC A
|
; DEC A
|
||||||
JR Z,HDSTART
|
; JR Z,HDSTART
|
||||||
INC B ;LD B,#81
|
; INC B ;LD B,#81
|
||||||
DEC A
|
; DEC A
|
||||||
JR Z,HDSTART
|
; JR Z,HDSTART
|
||||||
INC B ;LD B,#82
|
; INC B ;LD B,#82
|
||||||
DEC A
|
; DEC A
|
||||||
JR Z,HDSTART
|
; JR Z,HDSTART
|
||||||
INC B ;LD B,#83
|
; INC B ;LD B,#83
|
||||||
DEC A
|
; DEC A
|
||||||
JR Z,HDSTART
|
; JR Z,HDSTART
|
||||||
; RAM
|
; ; RAM
|
||||||
DEC A
|
; DEC A
|
||||||
JR Z,RDSTART
|
; JR Z,RDSTART
|
||||||
; ROM
|
; ; ROM
|
||||||
DEC A
|
; DEC A
|
||||||
JP Z,RECOVERYstart
|
; JP Z,RECOVERYstart
|
||||||
; Error
|
; ; Error
|
||||||
SCF
|
; SCF
|
||||||
RET
|
; RET
|
||||||
|
JP RECOVERYstart
|
||||||
|
|
||||||
FDSTART:
|
; FDSTART:
|
||||||
PUSH BC
|
; PUSH BC
|
||||||
PUSH BC
|
; PUSH BC
|
||||||
LD A,msgStrings.bootFdd
|
; LD A,msgStrings.bootFdd
|
||||||
CALL POSTMSG
|
; CALL POSTMSG
|
||||||
POP AF
|
; POP AF
|
||||||
CALL FDD_5x_RESET
|
; CALL FDD_5x_RESET
|
||||||
POP BC
|
; POP BC
|
||||||
RET C
|
; RET C
|
||||||
JP OS_LOAD
|
; JP OS_LOAD
|
||||||
;!TODO
|
; ;!TODO
|
||||||
CDSTART:
|
; CDSTART:
|
||||||
PUSH BC
|
; PUSH BC
|
||||||
LD A,msgStrings.bootCd
|
; LD A,msgStrings.bootCd
|
||||||
CALL POSTMSG
|
; CALL POSTMSG
|
||||||
POP AF
|
; POP AF
|
||||||
PUSH AF
|
; PUSH AF
|
||||||
CALL PRINT_CHANEL
|
; CALL PRINT_CHANEL
|
||||||
;
|
; ;
|
||||||
POP BC
|
; POP BC
|
||||||
SET 6,B
|
; SET 6,B
|
||||||
SCF
|
; SCF
|
||||||
RET
|
; RET
|
||||||
|
|
||||||
RDSTART:
|
; RDSTART:
|
||||||
LD A,msgStrings.bootRamDrv
|
; LD A,msgStrings.bootRamDrv
|
||||||
CALL POSTMSG
|
; CALL POSTMSG
|
||||||
LD B,DRIVE_CODES.SPRINTER.RAM ; 6 - ⨯ ¤à ©¢ RAM-DRV, 0 - ®¬¥à ¤à ©¢
|
; LD B,DRIVE_CODES.SPRINTER.RAM ; 6 - ⨯ ¤à ©¢ RAM-DRV, 0 - ®¬¥à ¤à ©¢
|
||||||
.loop: PUSH BC
|
; .loop: PUSH BC
|
||||||
CALL OS_LOAD
|
; CALL OS_LOAD
|
||||||
POP BC
|
; POP BC
|
||||||
INC B
|
; INC B
|
||||||
LD A,DRIVE_CODES.SPRINTER.RAM + SYS_PAGE.RAMD_KEYS.NUM-1 ; ¬ ªá¨¬ «ìë© ®¬¥à à ¬¤¨áª
|
; LD A,DRIVE_CODES.SPRINTER.RAM + SYS_PAGE.RAMD_KEYS.NUM-1 ; ¬ ªá¨¬ «ìë© ®¬¥à à ¬¤¨áª
|
||||||
SUB B
|
; SUB B
|
||||||
JR NC,.loop
|
; JR NC,.loop
|
||||||
RET
|
; RET
|
||||||
|
|
||||||
|
|
||||||
HDSTART:
|
; HDSTART:
|
||||||
IN A,(SLOT3)
|
; IN A,(SLOT3)
|
||||||
EX AF,AF'
|
; EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
; LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
; OUT (SLOT3),A
|
||||||
LD A,B
|
; LD A,B
|
||||||
;
|
; ;
|
||||||
AND #03 ;R02 %00000011
|
; AND #03 ;R02 %00000011
|
||||||
LD IY,IDE.INIT_TBL_IDE0
|
; LD IY,IDE.INIT_TBL_IDE0
|
||||||
JR Z,.next
|
; JR Z,.next
|
||||||
;
|
; ;
|
||||||
LD IY,IDE.INIT_TBL_IDE1
|
; LD IY,IDE.INIT_TBL_IDE1
|
||||||
CP 1 ;R02
|
; CP 1 ;R02
|
||||||
JR Z,.next
|
; JR Z,.next
|
||||||
;
|
; ;
|
||||||
LD IY,IDE.INIT_TBL_IDE2 ;R02
|
; LD IY,IDE.INIT_TBL_IDE2 ;R02
|
||||||
CP 2 ;R02
|
; CP 2 ;R02
|
||||||
JR Z,.next
|
; JR Z,.next
|
||||||
;
|
; ;
|
||||||
LD IY,IDE.INIT_TBL_IDE3 ;R02
|
; LD IY,IDE.INIT_TBL_IDE3 ;R02
|
||||||
;
|
; ;
|
||||||
.next: LD A,(IY+IDE.HDD_INIT_TABLE.DriveType)
|
; .next: LD A,(IY+IDE.HDD_INIT_TABLE.DriveType)
|
||||||
EX AF,AF'
|
; EX AF,AF'
|
||||||
OUT (SLOT3),A
|
; OUT (SLOT3),A
|
||||||
EX AF,AF'
|
; EX AF,AF'
|
||||||
CP IDE.Device.CDROM
|
; CP IDE.Device.CDROM
|
||||||
JP Z,CDSTART
|
; JP Z,CDSTART
|
||||||
PUSH AF
|
; PUSH AF
|
||||||
PUSH BC
|
; PUSH BC
|
||||||
LD A,msgStrings.bootHdd
|
; LD A,msgStrings.bootHdd
|
||||||
CALL POSTMSG
|
; CALL POSTMSG
|
||||||
POP AF
|
; POP AF
|
||||||
PUSH AF
|
; PUSH AF
|
||||||
CALL PRINT_CHANEL
|
; CALL PRINT_CHANEL
|
||||||
|
|
||||||
POP BC
|
; POP BC
|
||||||
POP AF
|
; POP AF
|
||||||
CP #FF
|
; CP #FF
|
||||||
SCF
|
; SCF
|
||||||
RET Z
|
; RET Z
|
||||||
OS_LOAD:
|
OS_LOAD:
|
||||||
LD HL,#0000
|
LD HL,#0000
|
||||||
LD IX,#0001
|
LD IX,#0001
|
||||||
|
|||||||
@ -1,26 +1,29 @@
|
|||||||
;
|
;
|
||||||
MACRO ShowInfo text, in_disp
|
MACRO ShowInfo text, in_disp
|
||||||
/*
|
; DISPLAY ' '
|
||||||
DISPLAY ' '
|
; DISPLAY '[*] ', text
|
||||||
DISPLAY '[*] ', text
|
; IF in_disp
|
||||||
IF in_disp
|
; DISPLAY 'ROM:'
|
||||||
DISPLAY 'ROM:'
|
; DISPLAY ' ORG: ',/H, $$$
|
||||||
DISPLAY ' ORG: ',/H, $$$
|
; DISPLAY ' PAGE: ',/H, $$$$
|
||||||
DISPLAY ' PAGE: ',/H, $$$$
|
; DISPLAY 'MEM:'
|
||||||
DISPLAY 'MEM:'
|
; DISPLAY ' DISP: ',/H, $
|
||||||
DISPLAY ' DISP: ',/H, $
|
; DISPLAY ' PAGE: ',/H, $$
|
||||||
DISPLAY ' PAGE: ',/H, $$
|
; ELSE
|
||||||
ELSE
|
; DISPLAY 'ROM:'
|
||||||
DISPLAY 'ROM:'
|
; DISPLAY ' ORG: ',/H, $
|
||||||
DISPLAY ' ORG: ',/H, $
|
; DISPLAY ' PAGE: ',/H, $$
|
||||||
DISPLAY ' PAGE: ',/H, $$
|
; ENDIF
|
||||||
ENDIF
|
; DISPLAY '[X]'
|
||||||
DISPLAY '[X]'
|
; DISPLAY ' '
|
||||||
DISPLAY ' '
|
|
||||||
*/
|
|
||||||
ENDM
|
ENDM
|
||||||
;
|
;
|
||||||
|
|
||||||
|
MACRO SET_IMG_LABEL
|
||||||
|
.Crazy_IMG_Label: DB "Crazy Blaster Image"
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
; ‚室: è¨à¨ á¯à ©â , ¢ëá®â , ª®®à¤¨ â X, ª®®à¤¨ â Y, ¤à¥á á¯à ©â ¢ ¯ ¬ïâ¨
|
; ‚室: è¨à¨ á¯à ©â , ¢ëá®â , ª®®à¤¨ â X, ª®®à¤¨ â Y, ¤à¥á á¯à ©â ¢ ¯ ¬ïâ¨
|
||||||
MACRO EasterTable width, height, Xcoord, Ycoord, addr
|
MACRO EasterTable width, height, Xcoord, Ycoord, addr
|
||||||
@ -32,123 +35,6 @@
|
|||||||
ENDM
|
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
|
MACRO RST_to_BIOS
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
;=======================[All shared EQUs]=======================;
|
;=======================[All shared EQUs]=======================;
|
||||||
BETA_BUILD EQU 6 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
BETA_BUILD EQU 6 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
||||||
;======================[All shared defines]=====================;
|
;======================[All shared defines]=====================;
|
||||||
|
DEFINE DEBUG 0 ;
|
||||||
DEFINE SP2000_Loader_Flag #0107 ;
|
DEFINE SP2000_Loader_Flag #0107 ;
|
||||||
DEFINE IDE_Optimization 1 ; á«¥£ª ®¯â¨¬¨§¨àã¥â ¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
|
DEFINE IDE_Optimization 1 ; á«¥£ª ®¯â¨¬¨§¨àã¥â ¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
|
||||||
DEFINE NeedSafePort_Y 1 ; ¥á«¨ 0, â® ¢ ०¨¬¥ ¡¥§ ªá¥«ï ¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà
|
DEFINE NeedSafePort_Y 1 ; ¥á«¨ 0, â® ¢ ०¨¬¥ ¡¥§ ªá¥«ï ¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà
|
||||||
@ -15,7 +16,6 @@ BETA_BUILD EQU 6 ;
|
|||||||
;----------------------------[ TEST ]---------------------------;
|
;----------------------------[ TEST ]---------------------------;
|
||||||
DEFINE HDDwriteProtect 0 ; áâ à ï ä¨èª ¤«ï äãªæ¨© 5x
|
DEFINE HDDwriteProtect 0 ; áâ à ï ä¨èª ¤«ï äãªæ¨© 5x
|
||||||
DEFINE RECOVERYmountTYPE 1 ; 1 - ¡ëáâàë© ¥¬®£® § å प®¦¥ë© ¢ ਠâ. 2 - ¡®«¥¥ "¯à ¢¨«ìë©"
|
DEFINE RECOVERYmountTYPE 1 ; 1 - ¡ëáâàë© ¥¬®£® § å प®¦¥ë© ¢ ਠâ. 2 - ¡®«¥¥ "¯à ¢¨«ìë©"
|
||||||
DEFINE RECOVERYrdChooseTYPE 1 ; 1 - RECOVERY £à㧨âáï ¢ ¤¨áª 15, 2 - ¨é¥âáï ᢮¡®¤ë© à ¬¤¨áª, ¥á«¨ ¥â, â® ¢ 15-ë©
|
|
||||||
DEFINE FDD_NormalCount 0 ; !TODO
|
DEFINE FDD_NormalCount 0 ; !TODO
|
||||||
DEFINE UnusedSettingsFeatures 0 ;
|
DEFINE UnusedSettingsFeatures 0 ;
|
||||||
;===============================================================;
|
;===============================================================;
|
||||||
BIN
Crazy BIOS/shared/cb_boot.IMG
Executable file
BIN
Crazy BIOS/shared/cb_boot.IMG
Executable file
Binary file not shown.
@ -80,7 +80,7 @@ FAIL: CALL MESSAGE
|
|||||||
;
|
;
|
||||||
MESSAGE: ;R01 Start
|
MESSAGE: ;R01 Start
|
||||||
XOR A
|
XOR A
|
||||||
OUT (SYS_PORT.ON),A
|
OUT (CNF_PORT.vBIOS),A
|
||||||
.loop: LD A,(HL) ;R01
|
.loop: LD A,(HL) ;R01
|
||||||
INC HL
|
INC HL
|
||||||
OR A
|
OR A
|
||||||
@ -211,7 +211,7 @@ CONTINUE: LD HL,0
|
|||||||
.no_big_core: ;
|
.no_big_core: ;
|
||||||
RUN_CORE: DI
|
RUN_CORE: DI
|
||||||
XOR A
|
XOR A
|
||||||
OUT (SYS_PORT.OFF),A
|
OUT (CNF_PORT.vZX_ROM),A
|
||||||
;
|
;
|
||||||
LD A,#10
|
LD A,#10
|
||||||
LD BC,#7FFD
|
LD BC,#7FFD
|
||||||
@ -236,7 +236,7 @@ RUN_CORE: DI
|
|||||||
CALL MESSAGE
|
CALL MESSAGE
|
||||||
;
|
;
|
||||||
XOR A
|
XOR A
|
||||||
OUT (SYS_PORT.OFF),A
|
OUT (CNF_PORT.vZX_ROM),A
|
||||||
;
|
;
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
LD BC,Dss.BootDSK.Set
|
LD BC,Dss.BootDSK.Set
|
||||||
|
|||||||
@ -43,8 +43,8 @@ RST_00:
|
|||||||
; <[BIOS API]>
|
; <[BIOS API]>
|
||||||
BLOCK 8-$,#C7 ; #C7 - "RST 0" opcode
|
BLOCK 8-$,#C7 ; #C7 - "RST 0" opcode
|
||||||
A0008: PUSH AF
|
A0008: PUSH AF
|
||||||
LD A,SYS_PORT.PAGE8
|
LD A,CNF_PORT.BIOS
|
||||||
OUT (SYS_PORT.ON),A
|
OUT (CNF_PORT.vBIOS),A
|
||||||
POP AF
|
POP AF
|
||||||
RET
|
RET
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
@ -232,11 +232,11 @@ INITDVC_RET_DRIVE:
|
|||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
INCLUDE 'dss/Drivers/media/shared-drv.asm'
|
INCLUDE 'crazy estex dss/dss/Drivers/media/shared-drv.asm'
|
||||||
INCLUDE 'dss/Drivers/media/ide-drv.asm'
|
INCLUDE 'crazy estex dss/dss/Drivers/media/ide-drv.asm'
|
||||||
INCLUDE 'dss/Drivers/media/fdd-drv.asm'
|
INCLUDE 'crazy estex dss/dss/Drivers/media/fdd-drv.asm'
|
||||||
INCLUDE 'dss/Drivers/media/ram_disk-drv.asm'
|
INCLUDE 'crazy estex dss/dss/Drivers/media/ram_disk-drv.asm'
|
||||||
INCLUDE "dss/Drivers/input/MOUSE.ASM"
|
INCLUDE "crazy estex dss/dss/Drivers/input/MOUSE.ASM"
|
||||||
/////////////////////////// [ DRIVE TABLES ] \\\\\\\\\\\\\\\\\\\\\\\\\\\;
|
/////////////////////////// [ DRIVE TABLES ] \\\\\\\\\\\\\\\\\\\\\\\\\\\;
|
||||||
;
|
;
|
||||||
;------------------------[shared-drv.asm table]------------------------;
|
;------------------------[shared-drv.asm table]------------------------;
|
||||||
|
|||||||
@ -72,8 +72,8 @@ RST_0x00: JP RETFAR ; ;EXECUTE.ASM R12
|
|||||||
; <[BIOS API]> ;
|
; <[BIOS API]> ;
|
||||||
_mInfoBLOCK 8-$,#FF ;
|
_mInfoBLOCK 8-$,#FF ;
|
||||||
RST_0x08: PUSH AF ;
|
RST_0x08: PUSH AF ;
|
||||||
LD A,SYS_PORT.PAGE8;
|
LD A,CNF_PORT.BIOS ;
|
||||||
OUT (SYS_PORT.ON),A ;
|
OUT (CNF_PORT.vBIOS),A ;
|
||||||
POP AF ;
|
POP AF ;
|
||||||
RET ;
|
RET ;
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
if sj.get_define("INCREASE_BUILD") > "0" then
|
if sj.get_define("INCREASE_BUILD") > "0" then
|
||||||
dss_build = increase_build("./DSS/build.txt")
|
dss_build = increase_build("./DSS/build.txt")
|
||||||
else
|
else
|
||||||
dss_build = get_build("./DSS/build.txt")
|
dss_build = get_build("./crazy estex dss/DSS/build.txt")
|
||||||
end
|
end
|
||||||
|
|
||||||
if dss_build > 999 then
|
if dss_build > 999 then
|
||||||
|
|||||||
@ -8,6 +8,6 @@ EXP_ID.VER: EQU 0x00000003
|
|||||||
EXP_ID.MOD: EQU 0x00000006
|
EXP_ID.MOD: EQU 0x00000006
|
||||||
CNF_ID.VER: EQU 0x00000000
|
CNF_ID.VER: EQU 0x00000000
|
||||||
CNF_ID.MOD: EQU 0x00000000
|
CNF_ID.MOD: EQU 0x00000000
|
||||||
msgStrings.str_ACEX_MODEL: EQU 0x0000244B
|
msgStrings.str_ACEX_MODEL: EQU 0x0000234B
|
||||||
msgRusStrings.str_ACEX_MODEL: EQU 0x00002E5B
|
msgRusStrings.str_ACEX_MODEL: EQU 0x00002D5B
|
||||||
BETA_BUILD: EQU 0x00000006
|
BETA_BUILD: EQU 0x00000006
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
;ÛÛÛÛÛÛÛ ¨¨æ¨ «¨§ æ¨ï á¨á⥬ëå ¯®à⮢ Z84C15 ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛ ¨¨æ¨ «¨§ æ¨ï á¨á⥬ëå ¯®à⮢ Z84C15 ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
DI
|
DI
|
||||||
|
IM 1
|
||||||
LD BC,#FF*256 + Z84.SYS.Control
|
LD BC,#FF*256 + Z84.SYS.Control
|
||||||
XOR A ; Z84.REG.WaitState_Ctrl
|
XOR A ; Z84.REG.WaitState_Ctrl
|
||||||
OUT (C),A ; Z84.SYS.Control
|
OUT (C),A ; Z84.SYS.Control
|
||||||
@ -14,7 +15,8 @@
|
|||||||
LD A,1 ; enable CS0, disable CS1
|
LD A,1 ; enable CS0, disable CS1
|
||||||
OUT (C),A ; Z84.SYS.Data
|
OUT (C),A ; Z84.SYS.Data
|
||||||
;ÛÛÛÛÛÛÛ ¨¨æ¨ «¨§ æ¨ï DCP ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛ ¨¨æ¨ «¨§ æ¨ï DCP ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
LD HL,ADD_PORTS.Code
|
;LD HL,ADD_PORTS.Code
|
||||||
|
LD HL,INIT_PORTS
|
||||||
DCP_INIT: LD C,XL
|
DCP_INIT: LD C,XL
|
||||||
LD B,XH
|
LD B,XH
|
||||||
LD E,YL
|
LD E,YL
|
||||||
@ -111,15 +113,22 @@ ADD_PORTS: ;
|
|||||||
DB #E4 ; ¢¥è¨© #4004
|
DB #E4 ; ¢¥è¨© #4004
|
||||||
.Data.Size EQU $ - .Data
|
.Data.Size EQU $ - .Data
|
||||||
;
|
;
|
||||||
.Code: LD HL,ADD_PORTS.Data
|
.Code: ;LD DE,#C480
|
||||||
LD DE,#C480
|
; LD HL,ADD_PORTS.Data
|
||||||
LD BC,ADD_PORTS.Data.Size
|
; LD BC,ADD_PORTS.Data.Size
|
||||||
LDIR
|
; 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
|
INIT_SLOTS: LD BC,#1FFD
|
||||||
LD A,1
|
LD A,1
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
LD B,#7F
|
LD B,#7F
|
||||||
|
; LD A,#11
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
;
|
;
|
||||||
XOR A
|
XOR A
|
||||||
@ -127,11 +136,8 @@ INIT_SLOTS: LD BC,#1FFD
|
|||||||
OUT (SLOT1),A
|
OUT (SLOT1),A
|
||||||
LD A,2
|
LD A,2
|
||||||
OUT (SLOT2),A
|
OUT (SLOT2),A
|
||||||
LD A,SYS_PAGE
|
LD A,DCP_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;ÛÛÛÛÛÛÛ ˆ¨æ¨ «¨§ æ¨ï ¯®à⮢ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
|
||||||
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
|
|
||||||
OUT (SYS_PORT.ROM),A
|
|
||||||
;ÛÛÛÛÛÛÛ ˆ¨æ¨ «¨§ æ¨ï á⥪ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛ ˆ¨æ¨ «¨§ æ¨ï á⥪ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
LD SP,#4000
|
LD SP,#4000
|
||||||
;ÛÛÛÛÛÛÛ <20>¥à¥¡à®á ®á⠢襣®áï ª®¤ ¢ RAM ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛ <20>¥à¥¡à®á ®á⠢襣®áï ª®¤ ¢ RAM ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
@ -149,18 +155,41 @@ INIT_SLOTS: LD BC,#1FFD
|
|||||||
; ’“’ Œ› “†… ‚ އ“ ‚ ’ŽŒ †… ŠŽ„… ˆ €„<E282AC>…‘…
|
; ’“’ Œ› “†… ‚ އ“ ‚ ’ŽŒ †… ŠŽ„… ˆ €„<E282AC>…‘…
|
||||||
; áâà ¨æë 0,1,2,#FE
|
; áâà ¨æë 0,1,2,#FE
|
||||||
;ÛÛÛÛÛÛÛ ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ vROM ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛ ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ vROM ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
vROM_MAP: LD BC,#4000
|
LD HL,#C900 ; Opcodes RET : NOP
|
||||||
LD HL,RESERVED_PAGES.BIOS
|
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
|
LD A,RESERVED_PAGES.Size
|
||||||
.loop: LD E,(HL)
|
.loop: EX AF,AF'
|
||||||
OUT (C),E
|
LD A,(HL)
|
||||||
INC C
|
LD B,A
|
||||||
|
LD A,(DE)
|
||||||
|
CALL SET_PORTS
|
||||||
INC HL
|
INC HL
|
||||||
|
INC DE
|
||||||
|
EX AF,AF'
|
||||||
DEC A
|
DEC A
|
||||||
JR NZ,.loop
|
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> ¡®ç¨© ª®¤ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛ <20> ¡®ç¨© ª®¤ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
; ¤à¥á ¯à®æ¥¤ãàë ®è¨¡ª¨
|
; ¤à¥á ¯à®æ¥¤ãàë ®è¨¡ª¨
|
||||||
LD HL,ERROR
|
LD HL,ERROR
|
||||||
PUSH HL
|
PUSH HL
|
||||||
@ -170,16 +199,15 @@ vROM_MAP: LD BC,#4000
|
|||||||
;ÛÛÛÛÛÛ “áâ ®¢ª áâà ¨æ ¤«ï § £à㧪¨ ¤ ëå ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛ “áâ ®¢ª áâà ¨æ ¤«ï § £à㧪¨ ¤ ëå ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
CALL Init_Mem
|
CALL Init_Mem
|
||||||
;ÛÛÛÛÛÛ ‡ £à㧪 ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛ ‡ £à㧪 ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
; ¤®¯®«¨â¥«ìë¥ äãªæ¨¨
|
; ¯à®¢¥àª ID ¤¨áª á BIOS (¤®¯®«¨â¥«ìë¥ äãªæ¨¨)
|
||||||
CHECK_IMG: ;LD A,(RESERVED_PAGES.SYS_FN) ; áâà ¨æ ¡ãä¥à , ¥á«¨ ¤à¥á ¢ ®ª¥ #C000 (BLOCK_ID)
|
CHECK_IMG: LD B,1 ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
|
||||||
LD B,1 ; ç¨á«® ç¨â ¥¬ëå ᥪâ®à®¢
|
|
||||||
LD HL,#8000 ; ¤à¥á ¡ãä¥à ¤ ëå
|
LD HL,#8000 ; ¤à¥á ¡ãä¥à ¤ ëå
|
||||||
LD IX,0 ; ¡á®«îâë© ®¬¥à ᥪâ®à áâ àè ï ç áâì
|
LD IX,0 ; ¡á®«îâë© ®¬¥à ᥪâ®à áâ àè ï ç áâì
|
||||||
LD DE,0 ; ¡á®«îâë© ®¬¥à ᥪâ®à ¬« ¤è ï ç áâì
|
LD DE,0 ; ¡á®«îâë© ®¬¥à ᥪâ®à ¬« ¤è ï ç áâì
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL FN_HDD_READ
|
CALL FN_HDD_READ
|
||||||
POP HL
|
POP HL
|
||||||
;ÛÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
; áà ¢¥¨¥ ¬¥âª¨
|
||||||
LD DE,CHECKING_LABEL
|
LD DE,CHECKING_LABEL
|
||||||
LD B,CHECKING_LABEL.Size
|
LD B,CHECKING_LABEL.Size
|
||||||
.loop: LD A,(DE)
|
.loop: LD A,(DE)
|
||||||
@ -194,6 +222,17 @@ LOAD_DATA: LD A,(RESERVED_PAGES.BIOS)
|
|||||||
LD B,RESERVED_PAGES.Size * #4000 / 512
|
LD B,RESERVED_PAGES.Size * #4000 / 512
|
||||||
LD DE,1
|
LD DE,1
|
||||||
CALL FN_HDD_READ_NEXT
|
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
|
XOR A
|
||||||
OUT (SLOT1),A
|
OUT (SLOT1),A
|
||||||
JP .IN_RAM + #4000
|
JP .IN_RAM + #4000
|
||||||
@ -202,11 +241,13 @@ LOAD_DATA: LD A,(RESERVED_PAGES.BIOS)
|
|||||||
XOR A
|
XOR A
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
;
|
;
|
||||||
XOR A ;CNF_PORT.BIOS
|
; A = CNF_PORT.BIOS
|
||||||
OUT (CNF_PORT.vBIOS),A
|
OUT (CNF_PORT.vBIOS),A
|
||||||
LD A,#40
|
LD A,DCP_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;
|
;
|
||||||
|
LD IX,ACEX.Config_ID.Sp2000
|
||||||
|
LD IY,SP2000_Loader_Flag
|
||||||
RST 0
|
RST 0
|
||||||
;JP BEGIN_CB_IMG
|
;JP BEGIN_CB_IMG
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
@ -499,14 +540,46 @@ TEST_HDD_DRV: ;LD HL,#01FE
|
|||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
ERROR: ;°°°°°°° Œ¨£ ¨¥ « ¬¯®çª®© âãà¡ë °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
ERROR: ;°°°°°°° Œ¨£ ¨¥ « ¬¯®çª®© âãà¡ë °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
.loop: CALL FLASH_LIGHT
|
||||||
|
JR .loop
|
||||||
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
FLASH_LIGHT: PUSH AF
|
||||||
|
PUSH DE
|
||||||
|
PUSH BC
|
||||||
|
LD E,6
|
||||||
LD A,SYS_PORT.TURBO.OFF
|
LD A,SYS_PORT.TURBO.OFF
|
||||||
.big_loop: LD BC,0
|
.big_loop: LD BC,0
|
||||||
OUT (SYS_PORT.ROM),A
|
OUT (SYS_PORT.RAM),A
|
||||||
.loop: DEC BC
|
.loop: DEC BC
|
||||||
INC B
|
INC B
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
XOR 1
|
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 #49 ; Recovery_2 Acex port: #E7
|
||||||
DB #4B ; LOGO Acex port: #E4
|
DB #4B ; LOGO Acex port: #E4
|
||||||
.Size EQU $-RESERVED_PAGES.BIOS
|
.Size EQU $-RESERVED_PAGES.BIOS
|
||||||
|
IF DEBUG
|
||||||
|
DB #41
|
||||||
|
ENDIF
|
||||||
DB #FF ; End of the block
|
DB #FF ; End of the block
|
||||||
.Blocks EQU 1
|
.Blocks EQU 1
|
||||||
|
|
||||||
@ -534,135 +610,56 @@ END_CB EQU $
|
|||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
;ÛÛÛÛÛÛÛ ’ ¡«¨æ DCP ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛ ’ ¡«¨æ DCP ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
DCP_DATA: DW %00'000'0'0100'0000
|
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
|
DW %11'000'0'0110'1111
|
||||||
DB ACEX.IDE_DATA_1F0
|
DB ACEX.IDE_DATA_1F0
|
||||||
;
|
;
|
||||||
DW %00'000'0'0100'0001
|
DW %00'000'0'0100'0001
|
||||||
DW %00'010'1'1110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.IDE_ERROR_1F1
|
DB ACEX.IDE_ERROR_1F1
|
||||||
;
|
;
|
||||||
DW %00'000'0'0100'0010
|
DW %00'000'0'0100'0010
|
||||||
DW %00'010'1'1110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.IDE_COUNTER_1F2
|
DB ACEX.IDE_COUNTER_1F2
|
||||||
;
|
;
|
||||||
DW %00'000'0'0100'0011
|
DW %00'000'0'0100'0011
|
||||||
DW %00'010'1'1110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.IDE_SECTOR_1F3
|
DB ACEX.IDE_SECTOR_1F3
|
||||||
;
|
;
|
||||||
DW %00'000'0'0100'0100
|
DW %00'000'0'0100'0100
|
||||||
DW %00'010'1'1110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.IDE_CYLINDER_L_1F4
|
DB ACEX.IDE_CYLINDER_L_1F4
|
||||||
;
|
;
|
||||||
DW %00'000'0'0100'0101
|
DW %00'000'0'0100'0101
|
||||||
DW %00'010'1'1110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.IDE_CYLINDER_H_1F5
|
DB ACEX.IDE_CYLINDER_H_1F5
|
||||||
;
|
;
|
||||||
DW %00'000'0'1100'0010
|
DW %00'000'0'1100'0010
|
||||||
DW %00'010'1'1110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.IDE_DEVICE_HEAD_1F6
|
DB ACEX.IDE_DEVICE_HEAD_1F6
|
||||||
;
|
;
|
||||||
DW %00'000'0'1100'0011
|
DW %00'000'0'1100'0011
|
||||||
DW %00'010'1'1110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.IDE_STATUS_CMD_1F7
|
DB ACEX.IDE_STATUS_CMD_1F7
|
||||||
;
|
;
|
||||||
DW %00'000'0'1100'0100
|
DW %00'000'0'1100'0100
|
||||||
DW %00'010'1'1110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.IDE_CONTROL_3F6
|
DB ACEX.IDE_CONTROL_3F6
|
||||||
;
|
;
|
||||||
DW %00'000'0'1100'0101
|
DW %00'000'0'1100'0101
|
||||||
DW %00'010'1'1110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.IDE_STATUS_3F7
|
DB ACEX.IDE_STATUS_3F7
|
||||||
;
|
;
|
||||||
DW %00'000'0'0010'1100
|
DW %00'000'0'0010'1100
|
||||||
DW %11'001'1'1111'1111
|
DW %11'001'1'1111'1111
|
||||||
DB ACEX.IDE_CHANEL_1
|
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 %00'000'0'0011'1100
|
||||||
DW %11'001'1'1111'1111
|
DW %11'001'1'1111'1111
|
||||||
DB ACEX.IDE_CHANEL_2
|
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 %00'000'0'0110'1101
|
||||||
DW %10'000'1'1111'1111
|
DW %10'000'1'1111'1111
|
||||||
DB ACEX.Scorp_1FFD
|
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'000'0'1110'1101
|
||||||
DW %00'100'1'1110'1111
|
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 %00'100'0'1110'1101
|
||||||
DW %11'110'1'1110'1111
|
DW %11'110'1'1110'1111
|
||||||
DB ACEX.Pent_7FFD
|
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 %00'000'0'0101'0110
|
||||||
DW %11'001'1'1111'1111
|
DW %11'001'1'1111'1111
|
||||||
DB ACEX.ALL_MODE
|
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'0100
|
||||||
DW %00'000'0'0010'1111
|
DW %00'000'0'0010'1111
|
||||||
DB ACEX.CNF_PORT
|
DB ACEX.CNF_PORT
|
||||||
;
|
;
|
||||||
DW %00'000'0'0000'1010
|
DW %00'000'0'0000'1010
|
||||||
DW %00'010'0'0110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.SLOT0
|
DB ACEX.SLOT0
|
||||||
;
|
;
|
||||||
DW %00'000'0'0010'1010
|
DW %00'000'0'0010'1010
|
||||||
DW %00'010'0'0110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.SLOT1
|
DB ACEX.SLOT1
|
||||||
;
|
;
|
||||||
DW %00'000'0'0100'1010
|
DW %00'000'0'0100'1010
|
||||||
DW %00'010'0'0110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.SLOT2
|
DB ACEX.SLOT2
|
||||||
;
|
;
|
||||||
DW %00'000'0'0110'1010
|
DW %00'000'0'0110'1010
|
||||||
DW %00'010'0'0110'1111
|
DW %00'000'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
|
|
||||||
DB ACEX.SLOT3
|
DB ACEX.SLOT3
|
||||||
; DCP END MARKER
|
; DCP END MARKER
|
||||||
DW 0,0,0
|
DW 0,0,0
|
||||||
|
|||||||
18
Crazy/debug.asm
Normal file
18
Crazy/debug.asm
Normal 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
|
||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
INCLUDE 'Shared_Includes/constants/SP2000.inc'
|
INCLUDE 'Shared_Includes/constants/SP2000.inc'
|
||||||
INCLUDE 'Build/updater.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/structures/FileSystem.inc'
|
||||||
;INCLUDE 'Shared_Includes/macroses/macros.z80'
|
;INCLUDE 'Shared_Includes/macroses/macros.z80'
|
||||||
;INCLUDE 'Shared_Includes/constants/BIOS_EQU.inc'
|
;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 image_size_in_sectors flasher_size_in_sectors + bios_size_in_sectros
|
||||||
DEFINE TYPE_OF_ACEX 3 ; 3 - 1K30, 5 - 1K50
|
DEFINE TYPE_OF_ACEX 3 ; 3 - 1K30, 5 - 1K50
|
||||||
|
|
||||||
MACRO SET_IMG_LABEL
|
DOS_OFF EQU #4000
|
||||||
.Crazy_IMG_Label: DB "Crazy Blaster Image"
|
DOS_ON EQU #3D13
|
||||||
ENDM
|
|
||||||
|
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ[ FIRST SECTION - CONF ROM ]ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ[ FIRST SECTION - CONF ROM ]ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
@ -34,7 +33,7 @@ END_FIRST_SECTION EQU $
|
|||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ[ SECOND SECTION - IMAGE ON DRIVE ]ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ[ SECOND SECTION - IMAGE ON DRIVE ]ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
@ -52,3 +51,4 @@ END_SECOND_SECTION EQU $
|
|||||||
DISPLAY "IMG size = ",/A,END_SECOND_SECTION - BEGIN_CB_IMG
|
DISPLAY "IMG size = ",/A,END_SECOND_SECTION - BEGIN_CB_IMG
|
||||||
OUTEND
|
OUTEND
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
|
*/
|
||||||
Loading…
Reference in New Issue
Block a user