mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
211 lines
4.5 KiB
NASM
211 lines
4.5 KiB
NASM
|
|
;[BEGIN]
|
|
;//MODULE: DOS_X
|
|
;//CREATE: 19-05-1998 AUTHOR: Denis Parinov
|
|
;//UPDATE: 24-10-1999 DNS Restore module
|
|
;---------------------------------------------------------------
|
|
;Rev Date Name Description
|
|
;---------------------------------------------------------------
|
|
;R011 17-04-2023 BAO ‚६¥ë© ª®áâë«ì ¤«ï ¥¤®¯ã᪠¨ï ¯¥à¥¯®«¥¨ï ¡ãä¥à ¯ã⨠ª â «®£
|
|
;R010 15-04-2023 BAO FIXED BUG WITH CHANGE DISK WITHOUT CHANGE PATH
|
|
;R009 13-04-2023 BAO FIX BUG WITH PARSING DIRECTORY BUFFER
|
|
;R13 06-04-2023 BAO ”ãªæ¨î SETBOOT ¬®¦® ¢ë§¢ âì ⮫쪮 à § (¥á«¨ § ¢¥àè¨âáï ª®à४â®)
|
|
;R12 03-04-2023 BAO „®¡ ¢«¥ äãªæ¨ï à¥áª ¤à ©¢®¢ LD C,8 : RST #10
|
|
;R008 15-04-2003 DNS SAVE AND RESTORE CUR-PATH MACROS
|
|
;R11 15-04-2003 DNS ROUTINE FOR STORE CURDISK AND CURDIR
|
|
;R10 03-04-2003 DNS IMPROVED FN. VERSION
|
|
;R09 27-03-2003 DNS PASTED SET/GET BOOT FN.
|
|
;R007 06-02-2003 DNS FIX BUG IN MASK ROUTINE, IT ALLOW NAMES WHICH BEGAN FROM "." ".NAM"
|
|
;R006 29-01-2003 DNS FIX BUG WITH SET FILE DATE AND TIME
|
|
;R005 26-11-2002 DNS FIX ERROR IN CHDIR, DON'T ALLOWED "." FOR ROOT
|
|
;R004 19-11-2002 DNS DON'T ALLOW DIR & LABEL ATTR FOR FILES
|
|
;R003 19-11-2002 DNS ADD RESET OF VOLUME LABEL ATTRIBUT
|
|
;R002 19-11-2002 DNS FIX GET/SET ATTRIBUTES
|
|
;R101 07-11-2002 DNS FIX BUG WITH SCROLLUP FN. (A=0)
|
|
;R102 07-11-2002 DNS CORRECT FN. WINCOPY & WINREST, ADD "DI+EI"
|
|
;R001 16-12-1999 DNS Y2K fix
|
|
;R06 21-11-1999 DNS FN. DISKINF SUPPORT ALL DISKS
|
|
;R05 21-11-1999 DNS BUG FIX SIGNATURE #55AA IN BOOT SECTOR
|
|
;R04 08-11-1999 DNS KILL OLD FUNCTIONS
|
|
;R03 23-11-1998 DNS BUG FIX (IX+28) -> (IY+28)
|
|
;R02 21-11-1998 DNS CHANGE FUNCTION "MAKE FAT"
|
|
;R01 20-11-1998 DNS REPAIR FUNCTION "SAVE"
|
|
;
|
|
;---------------------------------------------------------------
|
|
; VIDEO
|
|
include 'API/Clear.asm'
|
|
include 'API/PChars.asm'
|
|
include 'API/PutChar.asm'
|
|
include 'API/Locate.asm'
|
|
include 'API/Cursor.asm'
|
|
include 'API/RdChar.asm'
|
|
include 'API/WrChar.asm'
|
|
include 'API/WinCopy.asm'
|
|
include 'API/WinRest.asm'
|
|
include 'API/Scroll.asm'
|
|
include 'API/SelPage.asm'
|
|
include 'API/GetVMod.asm'
|
|
include 'API/SetVMod.asm'
|
|
;
|
|
include 'API/Version.asm'
|
|
include 'API/bootDsk.asm'
|
|
include 'API/curDisk.asm'
|
|
include 'API/diskINF.asm'
|
|
include 'API/ScanDRV.asm'
|
|
include 'API/Attribute.asm'
|
|
include 'API/Create.asm'
|
|
include 'API/Delete.asm'
|
|
include 'API/Rename.asm'
|
|
include 'API/Open.asm'
|
|
include 'API/Close.asm'
|
|
include 'API/Find.asm'
|
|
include 'API/ChnDisk.asm'
|
|
include 'API/CurrDir.asm'
|
|
include 'API/Time.asm'
|
|
include 'API/GetDateTime.asm'
|
|
include 'API/SetDateTime.asm'
|
|
include 'API/ChDir.asm'
|
|
include 'API/MkDir.asm'
|
|
include 'API/RmDir.asm'
|
|
include 'API/DosName.asm'
|
|
include 'API/Read.asm'
|
|
include 'API/Write.asm'
|
|
include 'API/FreeMem.asm'
|
|
include 'API/GetMem.asm'
|
|
include 'API/RetMem.asm'
|
|
include 'API/SetMem.asm'
|
|
include 'API/SetWin.asm'
|
|
include 'API/AppInfo.asm'
|
|
include 'API/Ex_Path.asm'
|
|
include 'API/GSwitch.asm'
|
|
include 'API/Environ.ASM'
|
|
include 'API/Lib_Sub.asm'
|
|
include "API/EXECUTE.ASM"
|
|
include "API/Print.asm"
|
|
include "API/Move_FP.asm"
|
|
|
|
|
|
|
|
|
|
;R09
|
|
;„ã¡«ì - CHNDISK = OPENDSK
|
|
;CHNDISK:
|
|
; PUSH AF
|
|
; LD C,Dss.DRV.Open
|
|
; RST ToDSS.DRV
|
|
; POP BC
|
|
; JP C,NDISK11
|
|
; LD A,B
|
|
; LD (CORE_BUFFERS.FatBuffer.DRIVE),A
|
|
; CALL RD_BPB
|
|
; RET C
|
|
; LD A,(LDRIVE)
|
|
; AND A
|
|
; RET
|
|
;NDISK11:
|
|
; CP DSS_Error.sys.INVALID_DRIVE
|
|
; SCF
|
|
; RET Z
|
|
; LD A,DSS_Error.sys.NOT_READY
|
|
; RET
|
|
;
|
|
|
|
|
|
;R04
|
|
;SIZE2CL: LD DE,(B_P_C)
|
|
; XOR A
|
|
; SCF
|
|
;S2C01: RR D
|
|
; RR E
|
|
; JR C,S2C02
|
|
; RR H
|
|
; RR L
|
|
; RR B
|
|
; RR C
|
|
; JP NC,S2C01
|
|
; LD A,1
|
|
; JP S2C01
|
|
;S2C02: OR A
|
|
; RET Z
|
|
; INC BC
|
|
; RET
|
|
;L_SEC_X: DW 0
|
|
;H_SEC_X: DW 0
|
|
;
|
|
|
|
|
|
;GOD EQU 1999-1980*512
|
|
|
|
;FHAND DB " "
|
|
; DB " "
|
|
; DB #20
|
|
; DW 0,0,0,0,0
|
|
; DW #0000
|
|
; DW 5*32+19+GOD
|
|
;SAVEC DW #0000
|
|
;SIZEC DW #0000,#0000
|
|
;=============================================
|
|
;//MODULE: DOS_X
|
|
;[END]
|
|
|
|
;R11
|
|
; IF SAVE_PATH_MACRO
|
|
; SAVE_CUR_PATH
|
|
; PUSH IX
|
|
; PUSH IY
|
|
; PUSH HL
|
|
; PUSH DE
|
|
; PUSH BC
|
|
; PUSH AF
|
|
;
|
|
; SET_PAGE_X ENVPAGE
|
|
; PUSH AF
|
|
;
|
|
; CALL CURRDSK
|
|
; ADD A,"A"
|
|
; LD HL,TMP_CURDIR_AUTO
|
|
; LD (HL),A
|
|
; INC HL
|
|
; LD A,":"
|
|
; LD (HL),A
|
|
; INC HL
|
|
; CALL CURRDIR_FN
|
|
;
|
|
; POP AF
|
|
; OUT (SLOT3),A
|
|
;
|
|
; POP AF
|
|
; POP BC
|
|
; POP DE
|
|
; POP HL
|
|
; POP IY
|
|
; POP IX
|
|
; RET
|
|
;
|
|
; BACK_CUR_PATH:
|
|
; RET NC
|
|
; .force: PUSH IY
|
|
; PUSH IX
|
|
; PUSH HL
|
|
; PUSH DE
|
|
; PUSH BC
|
|
; PUSH AF
|
|
;
|
|
; SET_PAGE_X ENVPAGE
|
|
; PUSH AF
|
|
;
|
|
; LD HL,TMP_CURDIR_AUTO
|
|
; CALL CHDIR
|
|
;
|
|
; POP AF
|
|
; OUT (SLOT3),A
|
|
;
|
|
; POP AF
|
|
; POP BC
|
|
; POP DE
|
|
; POP HL
|
|
; POP IX
|
|
; POP IY
|
|
; RET
|
|
; ENDIF
|
|
; |