mirror of
https://github.com/Tolik-Trek/LDConf.git
synced 2026-06-15 09:21:36 +03:00
for new bios
This commit is contained in:
parent
fbcbd35a6b
commit
63aa9fdb09
@ -57,7 +57,7 @@ Reload_String: DB ACEX.RELOAD_STRING ; 䫠
|
||||
VMod: db 0 ; <EFBFBD>¥¦¨¬ íªà
|
||||
VModPage: db 0 ; ‘âà ¨æ íªà
|
||||
ram_blk_id: DB 0 ; ˆ¤¥â¨ä¨ª â®à ¡«®ª ¯ ¬ïâ¨
|
||||
SP_Save: DB 0,0 ; ’ãâ åà ¨¬ á⥪ ¤«ï ¯¥à¥§ £à㧪¨
|
||||
;SP_Save: DB 0,0 ; ’ãâ åà ¨¬ á⥪ ¤«ï ¯¥à¥§ £à㧪¨
|
||||
dss_line: DB 0,0 ; 㪠§ ⥫ì DOS áâப㠧 ¯ã᪠LDConf
|
||||
NextParameter: dw 0000 ; ‘«¥¤ãî騩 ¯ à ¬¥âà ¤«ï .GetParam
|
||||
;
|
||||
@ -65,7 +65,7 @@ NextParameter: dw 0000 ;
|
||||
; <EFBFBD> §ë¥ ¡ãää¥à (.)(.)
|
||||
BufferEXE: DB 0,0,0,0
|
||||
ram_pages: DB 0,0,0,0,0 ; ‚뤥«¥ë¥ BIOS'®¬ ¡«®ª¨ ¯ ¬ï⨠(¯®á«¥¤¨© #FF)
|
||||
page0_save: DB 0 ; ’ãâ åà ¨¬ ⥪ãéãî áâà ¨æã PAGE0 (¤®«¦ ¨¤â¨ ¯®á«¥ ram_pages)
|
||||
;page0_save: DB 0 ; ’ãâ åà ¨¬ ⥪ãéãî áâà ¨æã PAGE0 (¤®«¦ ¨¤â¨ ¯®á«¥ ram_pages)
|
||||
page1_save: DB 0 ; ’ãâ åà ¨¬ ⥪ãéãî áâà ¨æã PAGE1
|
||||
page2_save: DB 0 ; ’ãâ åà ¨¬ ⥪ãéãî áâà ¨æã PAGE2 (¤®«¦ ¨¤â¨ ¯®á«¥ ram_pages)
|
||||
page3_save: DB 0 ; ’ãâ åà ¨¬ ⥪ãéãî áâà ¨æã PAGE3
|
||||
|
||||
222
LDCONF.ASM
222
LDCONF.ASM
@ -12,7 +12,7 @@
|
||||
; |_| |_|
|
||||
;----------------------------------------------------------------------;
|
||||
; ‚¥àá¨ï ¯à®£¨ ¨ ¨ä® ¤«ï ¯®â®¢:
|
||||
DEFINE Ver_ID "0.3 alpha"
|
||||
DEFINE Ver_ID "0.4 alpha"
|
||||
DEFINE e_mail "Tolik.Trek@gmail.com"
|
||||
|
||||
; <09>®¤£à㧪 ä ©« á ª®áâ â ¬¨ BIOS ¨ DSS:
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
; Œ ªà®áë
|
||||
MACRO _PrintStr
|
||||
LD C,#5C
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
ENDM
|
||||
|
||||
@ -34,13 +34,12 @@
|
||||
;-----------------;
|
||||
ENDM
|
||||
;----------------------------------------------------------------------;
|
||||
ST_Point EQU #BFFE ; ¤à¥á á⥪
|
||||
stack_point EQU #BFFE ; ¤à¥á á⥪
|
||||
SP_Win EQU 64 ; ¬¨¬ë© ª®âà®«ì ¯¥à¥á¥ç¥¨ï á⥪ á ª®¤®¬
|
||||
ORG_Addr EQU #8100 ; ¤à¥á ª®¬¯¨«ï樨. DSS ¢áâ ¢«ï¥â áâபã
|
||||
; á ¯ à ¬¥âà ¬¨ § ¯ã饮£® EXE ¯¥à¥¤
|
||||
; ¤à¥á®¬ § £à㧪¨ START, ¯®í⮬ã
|
||||
; £à㧨¬áï ¥ á ç « áâà ¨æë.
|
||||
|
||||
org_addr EQU #8000 + CLP_Buffer ; ¤à¥á ª®¬¯¨«ï樨.
|
||||
program_start EQU START
|
||||
code_addr EQU START
|
||||
Loader_length EQU 0
|
||||
; _______ _______ ____ __ _
|
||||
; | ____\ \/ / ____| | _ \ _ __ ___ / _(_)_ __
|
||||
; | _| \ /| _| | |_) | '__/ _ \ |_| \ \/ /
|
||||
@ -48,24 +47,9 @@ ORG_Addr EQU #8100 ;
|
||||
; |_____/_/\_\_____| |_| |_| \___|_| |_/_/\_\
|
||||
|
||||
;-----------------;
|
||||
ORG ORG_Addr-22
|
||||
; ‘ ç « ¢ EXE ä ©«¥ ¨¤ñâ § £®«®¢®ª
|
||||
; ¤«¨®© ¢ 1 ᥪâ®à (512 ¡ ©â)
|
||||
INCLUDE 'Shared_Includes/constants/EXE_Header.z80'
|
||||
ORG org_addr
|
||||
;-----------------;
|
||||
DB 'EX' ; EXE ‘¨£ âãà
|
||||
DB 'E' ; Reserved (EXE type)
|
||||
DB 0 ; Version of EXE file
|
||||
DW #0200 ; ‘ ª ª®£® á¬¥é¥¨ï ¢ ä ©«¥ ¡ã¤¥â £à㧨âìáï ª®¤ ¢
|
||||
DW #0000 ; ¯ ¬ïâì ¯® ¤à¥áã (START) Low - 0200h, High - 0000.
|
||||
DW #0000 ; <20> §¬¥à ¯¥à¢¨ç®£® § £àã§ç¨ª ¨«¨ 0
|
||||
DW #0000 ; Reserved
|
||||
DW #0000 ; Reserved
|
||||
DW #0000 ; Reserved
|
||||
DW START ; €¤à¥á à ᯮ«®¦¥¨ï ª®¤ ¢ ¯ ¬ïâ¨
|
||||
DW START ; €¤à¥á ¢ ¯ ¬ïâ¨ á ª®â®à®£® § ¯ãáâ¨âáï ª®¤ (Reg. PC)
|
||||
DW ST_Point ; €¤à¥á á⥪ (Reg. SP)
|
||||
;*******************************************************
|
||||
|
||||
; __ __ _
|
||||
; | \/ | __ _(_)_ __
|
||||
; | |\/| |/ _` | | '_ \
|
||||
@ -73,9 +57,6 @@ ORG_Addr EQU #8100 ;
|
||||
; |_| |_|\__,_|_|_| |_|
|
||||
|
||||
START:
|
||||
;
|
||||
|
||||
;
|
||||
;-----------------; —¨á⨬ ¡ãä¥à ªá¥«¥¬
|
||||
DI
|
||||
LD HL,Buffer
|
||||
@ -87,8 +68,8 @@ START:
|
||||
LD B,B ; ‚몫îç ¥¬ ªá¥«ì
|
||||
EI
|
||||
;-----------------; ‘®åà 塞 ⥪ã騥 áâà ¨æë
|
||||
IN A,(SLOT0)
|
||||
LD (page0_save),A
|
||||
; IN A,(SLOT0)
|
||||
; LD (page0_save),A
|
||||
IN A,(SLOT1)
|
||||
LD (page1_save),A
|
||||
IN A,(SLOT2)
|
||||
@ -177,31 +158,38 @@ START:
|
||||
;-----------------; ¥á«¨ ®à¬. § ¢¥à襨¥ Load_conf
|
||||
1:
|
||||
;
|
||||
LD DE,ReloadRET ; €¤à¥á ‚އ‚<E280A1>€’€ ¯®á«¥ ¯¥à¥§ £à㧪¨
|
||||
LD (SP_Save),SP ; á®åà 塞 á⥪
|
||||
CALL Set_Ret ; ãáâ ®¢ª ¤ ëå ¤«ï ¢®§¢à â
|
||||
;LD DE,ReloadRET ; €¤à¥á ‚އ‚<E280A1>€’€ ¯®á«¥ ¯¥à¥§ £à㧪¨
|
||||
;LD (SP_Save),SP ; á®åà 塞 á⥪
|
||||
;CALL Set_Ret ; ãáâ ®¢ª ¤ ëå ¤«ï ¢®§¢à â
|
||||
;
|
||||
CALL Set_Acex_Data ; ¯¥à¥£à㧪 ¤ ëå ACEX ¢ FAST-RAM
|
||||
;CALL Set_Acex_Data ; ¯¥à¥£à㧪 ¤ ëå ACEX ¢ FAST-RAM
|
||||
; <20>®á«¥ í⮩ ¯à®æ¥¤ãàë å¨âன ^^^^^^ ç¨ îâáï £«îª¨
|
||||
; á ¢ë§®¢®¬ ¯à®æ¥¤ãà DSS. —ñâ ® â ¬ ¬ã¤à¨â á ¯®àâ ¬¨
|
||||
; ¨«¨ á ¯ ¬ïâìî, ¥ à §®¡à «áï. <20>®í⮬㠯®á«¥ ¥ñ «ãçè¥
|
||||
; áà §ã ¢ à¥á¥â á £®«®¢®© ¨ ¥ ¯ à¨âìáï...
|
||||
|
||||
LD A,(ram_blk_id)
|
||||
LD B,A
|
||||
LD A,#FE
|
||||
LD C,BIOS.RST_CONF.CUSTOM
|
||||
RST ToBIOS
|
||||
JP ReloadRET
|
||||
;-----------------;
|
||||
|
||||
|
||||
;-----------------; 7 ¡¥¤ - 1 à¥á¥â
|
||||
RESET: DI
|
||||
LD A,DCP_PAGE
|
||||
OUT (SLOT1),A ; set DCP page
|
||||
LD A,ACEX.RESET
|
||||
LD (#4400),A ; open for WR
|
||||
LD (#4600),A ; open for RD
|
||||
;
|
||||
.LOOP: LD BC,#100
|
||||
OUT (C),C
|
||||
LD B,0
|
||||
OUT (C),C
|
||||
JR .LOOP ; ¯®«®áâìî § 横«¨âì!
|
||||
; RESET: DI
|
||||
; LD A,DCP_PAGE
|
||||
; OUT (SLOT1),A ; set DCP page
|
||||
; LD A,ACEX.RESET
|
||||
; LD (#4400),A ; open for WR
|
||||
; LD (#4600),A ; open for RD
|
||||
; ;
|
||||
; .LOOP: LD BC,#100
|
||||
; OUT (C),C
|
||||
; LD B,0
|
||||
; OUT (C),C
|
||||
; JR .LOOP ; ¯®«®áâìî § 横«¨âì!
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
||||
|
||||
@ -216,15 +204,14 @@ RESET: DI
|
||||
; ¯¥à¥§ £à㧪¨ ®¢®© ¯à®è¨¢ª¨
|
||||
|
||||
;-----------------;
|
||||
ReloadRET:
|
||||
DI
|
||||
LD SP,(SP_Save)
|
||||
ReloadRET: DI
|
||||
;LD SP,(SP_Save)
|
||||
LD A,CNF_PORT.CNF_0 ; ª®ä¨£ãà æ¨ï ¨ ®âª«î票¥ <20>‡“
|
||||
OUT (SYS_PORT.OFF),A
|
||||
LD A,(page0_save) ; SET PAGE DOS
|
||||
OUT (SLOT0),A
|
||||
LD A,(page3_save) ; ¢®§¢à â áâ ன áâà ¨æë PAGE3
|
||||
OUT (SLOT3),A
|
||||
; LD A,(page0_save) ; SET PAGE DOS
|
||||
; OUT (SLOT0),A
|
||||
; LD A,(page3_save) ; ¢®§¢à â áâ ன áâà ¨æë PAGE3
|
||||
; OUT (SLOT3),A
|
||||
;-----------------;
|
||||
|
||||
;-----------------; <20> ¡®â ¯à®£à ¬¬ë á ®¢®© ¯à®è¨¢ª®©
|
||||
@ -237,42 +224,17 @@ ReloadRET:
|
||||
;-----------------;
|
||||
|
||||
;-----------------;
|
||||
1:
|
||||
DI
|
||||
1: DI
|
||||
|
||||
LD A,(a_key) ; ‚ë室 ¡¥§ ¢®ááâ ®¢«¥¨ï ¤¥ä®«â®© ª®äë?
|
||||
AND A
|
||||
|
||||
JP NZ,1F
|
||||
; jp nz,NormExit
|
||||
; jp nz,NextReloadRET
|
||||
|
||||
LD DE,NextReloadRET ;
|
||||
LD (SP_Save),SP ; á®åà 塞 á⥪
|
||||
CALL Set_Ret ; ãáâ ®¢ª ¤ ëå ¤«ï ¢®§¢à â
|
||||
JP RESET
|
||||
|
||||
1:
|
||||
; ld a,(l_key)
|
||||
; and a
|
||||
; jr nz, NextReloadRET
|
||||
|
||||
DI
|
||||
IN A,(FastRAM.ON) ; ‚ª«î票¥ ªíè
|
||||
|
||||
LD A,3
|
||||
OUT (FastRAM.SLOT0),A ; ‘âà ¨æ Š<>˜ = 3
|
||||
|
||||
LD A,#FF
|
||||
LD (#3EF0),A ; § â¨à ¨¥ ACEX_K30_LOADING
|
||||
LD (#3EE0),A ; § â¨à ¨¥ "IM" ä« £
|
||||
|
||||
XOR A ; Žâª«î票¥ ªíè
|
||||
OUT (FastRAM.SLOT0),A ; ¯¨è¥¬ ¢ FastRAM.SLOT0 ®«ì, ¨ ç¥ ¢
|
||||
IN A,(FastRAM.OFF) ; ã«¥¢®¥ ®ª® ¡¨®á ¨«¨ „‘‘ ¥ ¢®âªãâáï
|
||||
|
||||
JP NZ,NextReloadRET
|
||||
LD B,0
|
||||
LD A,#FE
|
||||
LD C,BIOS.RST_CONF.CUSTOM
|
||||
RST ToBIOS
|
||||
JP NextReloadRET
|
||||
|
||||
;*******************************************************
|
||||
|
||||
; _ _ _
|
||||
@ -292,20 +254,20 @@ NextReloadRET:
|
||||
DI
|
||||
;
|
||||
;-----------------; ‡ â¨à ¥¬ á«¥¤ë ¥á⮪®¢®© ª®äë
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A ; ®âªàëâì ᯥæ-áâà ¨æã
|
||||
; LD A,Spec_Page
|
||||
; OUT (SLOT3),A ; ®âªàëâì ᯥæ-áâà ¨æã
|
||||
|
||||
LD H,#FF
|
||||
LD L,H
|
||||
LD SP,HL
|
||||
PUSH HL
|
||||
PUSH HL
|
||||
PUSH HL
|
||||
PUSH HL
|
||||
PUSH HL
|
||||
PUSH HL
|
||||
PUSH HL
|
||||
PUSH HL
|
||||
; LD H,#FF
|
||||
; LD L,H
|
||||
; LD SP,HL
|
||||
; PUSH HL
|
||||
; PUSH HL
|
||||
; PUSH HL
|
||||
; PUSH HL
|
||||
; PUSH HL
|
||||
; PUSH HL
|
||||
; PUSH HL
|
||||
; PUSH HL
|
||||
|
||||
; LD (0FFF3h),A ; á®åà 塞 áâà ¨æë
|
||||
; ld A,(page0_save)
|
||||
@ -336,8 +298,8 @@ NextReloadRET:
|
||||
|
||||
;-----------------;
|
||||
;
|
||||
LD SP,(SP_Save)
|
||||
LD A,CNF_PORT.CNF_0 ; ª®ä¨£ãà æ¨ï ¨ ®âª«î票¥ <20>‡“
|
||||
;LD SP,(SP_Save)
|
||||
LD A,CNF_PORT.CNF_0 ; ª®ä¨£ãà æ¨ï ¨ ®âª«î票¥ <20>‡“
|
||||
OUT (SYS_PORT.OFF),A
|
||||
|
||||
LD A,(page0_save) ; SET PAGE DOS
|
||||
@ -728,21 +690,18 @@ TakeMem:
|
||||
; ¯à¥¤ë¤ã饣® á®áâ®ï¨ï.
|
||||
|
||||
;-----------------;
|
||||
Load_conf:
|
||||
LD DE,#3000
|
||||
LD HL,ram_pages
|
||||
Load_conf: LD HL,ram_pages
|
||||
LD B,4
|
||||
1:
|
||||
LD A,(HL)
|
||||
.loop: LD A,(HL)
|
||||
OUT (SLOT3),A
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
; CALL .loopRead
|
||||
; ; <20> à ¬¥âàë: DE - ᪮«ìª® áç¨â âì ¢ áâà ¨æã
|
||||
LD A,(ConfHandler) ; ªã¤ £à㧨âì - à ááç¨âë¢ ¥âáï (#0000 - DE)
|
||||
LD HL,#0000
|
||||
SBC HL,DE ; ’ã⠡㤥⠢ HL ¤à¥á ªã¤ , ¢ DE ᪮«ìª® § £à㦠âì
|
||||
LD C,13h
|
||||
LD HL,#C000
|
||||
LD DE,#4000
|
||||
LD C,Dss.Read
|
||||
RST ToDSS
|
||||
|
||||
POP BC
|
||||
@ -752,8 +711,7 @@ Load_conf:
|
||||
RET NZ ; ¥á«¨ A<>0, â® ¤ . ‚ë室
|
||||
|
||||
INC HL
|
||||
LD DE,#4000
|
||||
DJNZ 1B
|
||||
DJNZ .loop
|
||||
RET
|
||||
;*******************************************************
|
||||
|
||||
@ -829,8 +787,8 @@ Set_Acex_Data:
|
||||
OUT (SLOT1),A
|
||||
|
||||
XOR A ; Žâª«î票¥ ªíè
|
||||
OUT (FastRAM.SLOT0),A ; ¯¨è¥¬ ¢ FastRAM.SLOT0 ®«ì, ¨ ç¥ ¢
|
||||
IN A,(FastRAM.OFF) ; ã«¥¢®¥ ®ª® ¡¨®á ¨«¨ „‘‘ ¥ ¢®âªãâáï
|
||||
OUT (FastRAM.SLOT0),A ; ¯¨è¥¬ ¢ FastRAM.SLOT0 ®«ì, ¨ ç¥ ¢
|
||||
IN A,(FastRAM.OFF) ; ã«¥¢®¥ ®ª® ¡¨®á ¨«¨ „‘‘ ¥ ¢®âªãâáï
|
||||
|
||||
RET
|
||||
;*******************************************************
|
||||
@ -847,29 +805,29 @@ Set_Acex_Data:
|
||||
; €¤à¥á ¯à®£à ¬¬ë ¤«ï ¢®§¢à â ¢ ॣ¨áâॠDE
|
||||
|
||||
;-----------------;
|
||||
Set_Ret:
|
||||
DI
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A ; ®âªàëâì ᯥæ-áâà ¨æã
|
||||
; Set_Ret:
|
||||
; DI
|
||||
; LD A,Spec_Page
|
||||
; OUT (SLOT3),A ; ®âªàëâì ᯥæ-áâà ¨æã
|
||||
|
||||
LD (#FFF3),A ; á®åà 塞 ¢ ᯥæáâà ¨æã ®¬¥à Spec_Page
|
||||
LD (#FFF4),DE ; ¤à¥á ¯à®£à ¬¬ë ¯¥à¥§ ¯ãáª
|
||||
; LD (#FFF3),A ; á®åà 塞 ¢ ᯥæáâà ¨æã ®¬¥à Spec_Page
|
||||
; LD (#FFF4),DE ; ¤à¥á ¯à®£à ¬¬ë ¯¥à¥§ ¯ãáª
|
||||
|
||||
LD DE,#FFF0 ; á®åà 塞 áâà ¨æë 0-2 ¢ ᯥæáâà ¨æ¥
|
||||
LD HL,page0_save
|
||||
LDI
|
||||
LDI
|
||||
LDI
|
||||
; LD DE,#FFF0 ; á®åà 塞 áâà ¨æë 0-2 ¢ ᯥæáâà ¨æ¥
|
||||
; LD HL,page0_save
|
||||
; LDI
|
||||
; LDI
|
||||
; LDI
|
||||
|
||||
LD A,'Z' ; ä« £¨ ¯¥à¥§ ¯ãáª
|
||||
LD (#FFFE),A
|
||||
LD A,'X'
|
||||
LD (#FFFF),A
|
||||
; LD A,'Z' ; ä« £¨ ¯¥à¥§ ¯ãáª
|
||||
; LD (#FFFE),A
|
||||
; LD A,'X'
|
||||
; LD (#FFFF),A
|
||||
|
||||
LD A,(page3_save) ; ‚®ááâ ¢«¨¢ ¥¬ ç «ìãî áâà ¨æã 3
|
||||
OUT (SLOT3),A
|
||||
EI
|
||||
RET
|
||||
; LD A,(page3_save) ; ‚®ááâ ¢«¨¢ ¥¬ ç «ìãî áâà ¨æã 3
|
||||
; OUT (SLOT3),A
|
||||
; EI
|
||||
; RET
|
||||
;*******************************************************
|
||||
|
||||
|
||||
@ -879,9 +837,9 @@ Set_Ret:
|
||||
;
|
||||
the_end EQU $
|
||||
;
|
||||
IF (the_end>(ST_Point-SP_Win))
|
||||
IF (the_end>(stack_point-SP_Win))
|
||||
DISPLAY "the_end = ",/H,the_end
|
||||
DISPLAY "ST_Point-SP_Win = ",/H,(ST_Point-SP_Win)
|
||||
DISPLAY "ST_Point-SP_Win = ",/H,(stack_point-SP_Win)
|
||||
ASSERT 0, "Code + Stack = Love!!! ((((("
|
||||
ENDIF
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit a6dee8e17ae12b251f306290793a56a6b0dd5ae3
|
||||
Subproject commit 653e504a06665ec95a8ef2a4257d9cfb18f6d6f0
|
||||
Loading…
Reference in New Issue
Block a user