mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
117 lines
2.7 KiB
NASM
117 lines
2.7 KiB
NASM
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||
; § âàñâáï ¯®á«¥ ¨¨æ¨ «¨§ 樨
|
||
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||
|
||
|
||
; <20>¥à¢ë© áâ àâ á¨á⥬ë, ¯®á«¥ ¨¨æ¨ «¨§ 樨 ¤à¥á ¢ â ¡«¨æ¥ ¬¥ï¥âáï VERSION
|
||
;-----------------------------------------------------------------------;
|
||
F_START: DI
|
||
; § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||
LD H,A
|
||
LD (.saveDRV),HL ; H - ®¬¥à ãáâனá⢠, L - ®¬¥à à §¤¥« ãáâனá⢥
|
||
;
|
||
LD HL,0 ; ¯¨á âì ¢ ¨ªã¤
|
||
LD C,BIOS.FN_VERSION
|
||
RST ToBIOS
|
||
JR C,.err_oldBIOS
|
||
EX DE,HL
|
||
LD DE,MINIMUM_BIOS_VERSION
|
||
SBC HL,DE
|
||
JR C,.err_oldBIOS
|
||
;
|
||
.good: CALL DEPLOY ;íâ ¯à®æ¥¤ãà § âàñâáï ¯®á«¥ ¨á¯®«¥¨ï
|
||
RET C
|
||
CALL KEYBOARD_INIT
|
||
CALL PRINT_INIT
|
||
LD C,Dss.Mouse.Init
|
||
RST ToDSS.Mouse
|
||
LD A,(VMODE)
|
||
LD C,Dss.Mouse.SetVideoMode
|
||
RST ToDSS.Mouse
|
||
;
|
||
LD C,Dss.DRV.Init
|
||
RST ToDSS.DRV
|
||
LD (LDRIVE),A
|
||
; § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||
.saveDRV+1: LD HL,0 ; H - ®¬¥à ãáâனá⢠, L - ®¬¥à à §¤¥« ãáâனá⢥
|
||
CALL BOOTDSK.SET
|
||
RET C
|
||
;
|
||
EI
|
||
;Set new address fn. VERSION
|
||
LD HL,DSS_API_TABLE
|
||
LD (HL),low VERSION
|
||
INC H
|
||
LD (HL),high VERSION
|
||
JP CLEAR_BUFFER_AND_INIT_PROC
|
||
;
|
||
.err_oldBIOS: IN A,(SLOT0)
|
||
OUT (SLOT3),A
|
||
LD HL,.err_oldBIOS_message + SLOT3.MEM_ADDR
|
||
CALL PCHARS
|
||
SCF
|
||
RET
|
||
.err_oldBIOS_message:
|
||
DB "\r\nWARNING! This version of DSS requires BIOS v"
|
||
DB STR_MINIMUM_BIOS_VERSION
|
||
DZ " or later to boot from IDE."
|
||
;-----------------------------------------------------------------------;
|
||
|
||
|
||
|
||
;-----------------------------------------------------------------------;
|
||
DEPLOY: ;Allocate memory
|
||
LD BC,USING_MEMPAGES*256 + BIOS.GetMem
|
||
RST ToBIOS
|
||
RET C
|
||
LD C,A
|
||
;
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
IN A,(SLOT0)
|
||
LD (DRV_CONTENT + DRIVES_DRIVER.DRV_PAGE.MAIN_PAGE_NUMBER),A
|
||
OUT (SLOT3),A
|
||
;
|
||
LD A,C
|
||
LD HL,BANKTBL + #C000
|
||
LD C,BIOS.GetMemBlkPages
|
||
RST ToBIOS
|
||
; ¤®«¦ ¨¤â¨ ¯®á«¥ GetMemBlkPages, ç⮡ ¢¬¥áâ®
|
||
; § ªàë¢ èª¨ #FF ¯®áâ ¢¨âì áâà ¨æã COREPAGE
|
||
LD HL,COREPAGE + (#FF00 & BANKTBL)
|
||
IN A,(SLOT0)
|
||
LD (HL),A
|
||
; ¤«ï API ¤à ©¢¥à ¬ë誨
|
||
LD (DRIVES_DRIVER.MOUSE_HANDLER.CorePage),A
|
||
LD A,((#FF00 & BANKTBL) + DRVPAGE)
|
||
LD (RST_0x30.drv_page),A
|
||
;
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
SET_PAGE_X DRVPAGE
|
||
PUSH AF
|
||
;
|
||
LD HL,DRV_CONTENT
|
||
LD DE,#C000
|
||
LD BC,DRV_CONTENT.SIZE
|
||
LDIR
|
||
IN A,(SLOT3)
|
||
LD (DRV_PG_NUMBER),A
|
||
; [ ] CDFS prepare
|
||
/*
|
||
SET_PAGE_X FSPAGE
|
||
;
|
||
LD HL,FS_CONTENT
|
||
LD DE,#C000
|
||
LD BC,FS_CONTENT.SIZE
|
||
LDIR
|
||
IN A,(SLOT3)
|
||
LD (FS_PG_NUMBER),A
|
||
*/
|
||
;
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
AND A
|
||
RET
|
||
.Size: EQU DEPLOY
|
||
;-----------------------------------------------------------------------; |