mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
драйвер мышки перенесён в страницу драйверов. для FAT32 добавлена работа с BPB_ExtFlags
This commit is contained in:
parent
4083da9fa5
commit
f135083519
@ -20,7 +20,7 @@ CHDIR_FN:
|
|||||||
JP NC,DIR_PATH_CHANGE.FullCurrent
|
JP NC,DIR_PATH_CHANGE.FullCurrent
|
||||||
; 丟咧 郊膉删陋, 漅 ╳坎<E295B3><E59D8E>布摬 睼<> 栽芥<E6A0BD> 能刻咧
|
; 丟咧 郊膉删陋, 漅 ╳坎<E295B3><E59D8E>布摬 睼<> 栽芥<E6A0BD> 能刻咧
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD HL,CurrentDirectory
|
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||||
CALL CHDIR
|
CALL CHDIR
|
||||||
POP AF
|
POP AF
|
||||||
RET
|
RET
|
||||||
|
|||||||
@ -14,7 +14,7 @@ CHNDISK:;[x]
|
|||||||
;
|
;
|
||||||
;R010
|
;R010
|
||||||
RET C
|
RET C
|
||||||
LD HL,WorkDirectory
|
LD HL,CORE_BUFFERS.WorkDirectory
|
||||||
LD (HL),0
|
LD (HL),0
|
||||||
PUSH AF
|
PUSH AF
|
||||||
CALL OPENDIR
|
CALL OPENDIR
|
||||||
|
|||||||
@ -4,10 +4,10 @@
|
|||||||
; ¢å®¤: HL - ¡ãä¥à ¢ ¯ ¬ï⨠256 ¡ ©â
|
; ¢å®¤: HL - ¡ãä¥à ¢ ¯ ¬ï⨠256 ¡ ©â
|
||||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
CURRDIR: LD DE,WorkDirectory
|
CURRDIR: LD DE,CORE_BUFFERS.WorkDirectory
|
||||||
JR CURRDIR_FN.skip
|
JR CURRDIR_FN.skip
|
||||||
CURRDIR_FN:
|
CURRDIR_FN:
|
||||||
LD DE,CurrentDirectory
|
LD DE,CORE_BUFFERS.CurrentDirectory
|
||||||
.skip: EX DE,HL
|
.skip: EX DE,HL
|
||||||
LD BC,DIRECTORY_PATH_LENGTH ;[x] 15/11/2023 ¬®£«® ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à
|
LD BC,DIRECTORY_PATH_LENGTH ;[x] 15/11/2023 ¬®£«® ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à
|
||||||
XOR A
|
XOR A
|
||||||
|
|||||||
@ -416,7 +416,7 @@ _TST_PROC_2: LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
|||||||
PUSH HL
|
PUSH HL
|
||||||
;!TEST Current Dir ;[x] 15/10/23
|
;!TEST Current Dir ;[x] 15/10/23
|
||||||
PUSH IX
|
PUSH IX
|
||||||
LD HL,CurrentPath
|
LD HL,CORE_BUFFERS.CurrentPath
|
||||||
LD A,(CORE_BUFFERS.EXEBUFF.VERSION)
|
LD A,(CORE_BUFFERS.EXEBUFF.VERSION)
|
||||||
OR A
|
OR A
|
||||||
JR NZ,.set_path
|
JR NZ,.set_path
|
||||||
@ -522,7 +522,7 @@ ErrorLevel: DB #00 ;
|
|||||||
EXE_FM: DB #00 ; ¤¥áªà. ä ©«
|
EXE_FM: DB #00 ; ¤¥áªà. ä ©«
|
||||||
EXE_MEM: DB #00 ; ¨¤¥â¨ä¨ª â®à ¡«®ª ¯ ¬ïâ¨
|
EXE_MEM: DB #00 ; ¨¤¥â¨ä¨ª â®à ¡«®ª ¯ ¬ïâ¨
|
||||||
CMDLINE: DW #0000
|
CMDLINE: DW #0000
|
||||||
EXSTACK: DW CORE_BUFFERS.XSTACK ; ¤ŕĽá á⼪
|
EXSTACK: DW CORE_BUFFERS.XSTACK.Spoint ; ¤à¥á á⥪
|
||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
@ -703,7 +703,7 @@ FINDPATH:
|
|||||||
.GOTO_CURDIR:
|
.GOTO_CURDIR:
|
||||||
PUSH AF
|
PUSH AF
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD HL,CurrentDirectory
|
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||||
CALL CHDIR
|
CALL CHDIR
|
||||||
POP HL
|
POP HL
|
||||||
POP AF
|
POP AF
|
||||||
|
|||||||
@ -20,7 +20,7 @@ MKDIR:
|
|||||||
RET C
|
RET C
|
||||||
CALL .START
|
CALL .START
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD HL,CurrentDirectory
|
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||||
CALL CHDIR
|
CALL CHDIR
|
||||||
POP AF
|
POP AF
|
||||||
RET
|
RET
|
||||||
|
|||||||
@ -15,7 +15,7 @@ RMDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
RET C
|
RET C
|
||||||
CALL .START
|
CALL .START
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD HL,CurrentDirectory
|
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||||
CALL CHDIR
|
CALL CHDIR
|
||||||
CALL DIR_PATH_CHANGE.Current
|
CALL DIR_PATH_CHANGE.Current
|
||||||
POP AF
|
POP AF
|
||||||
|
|||||||
@ -35,13 +35,13 @@ SCANDRV:
|
|||||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
; 4. ˘áďŞ¨Š áŤăç Š ŻĽŕĽç¨âë˘ ĽŹ ¤¨ŕ༪âŽŕ¨î
|
; 4. ˘áďŞ¨Š áŤăç Š ŻĽŕĽç¨âë˘ ĽŹ ¤¨ŕ༪âŽŕ¨î
|
||||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
LD A,(CurrentPath)
|
LD A,(CORE_BUFFERS.CurrentPath)
|
||||||
SUB 'A'
|
SUB 'A'
|
||||||
CALL OPENDSK
|
CALL OPENDSK
|
||||||
LD HL,CurrentDirectory
|
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||||
CALL CHDIR
|
CALL CHDIR
|
||||||
JR NC,.exit
|
JR NC,.exit
|
||||||
LD HL,CurrentDirectory
|
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||||
LD (HL),0
|
LD (HL),0
|
||||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
; 5. ˘ë厤
|
; 5. ˘ë厤
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
CURDISK_FN:
|
CURDISK_FN:
|
||||||
LD A,(LDRIVE)
|
LD A,(LDRIVE)
|
||||||
LD C,A
|
LD C,A
|
||||||
LD A,(CurrentPath)
|
LD A,(CORE_BUFFERS.CurrentPath)
|
||||||
SUB 'A'
|
SUB 'A'
|
||||||
RET NC
|
RET NC
|
||||||
LD A,DSS_Error.sys.INVALID_DRIVE
|
LD A,DSS_Error.sys.INVALID_DRIVE
|
||||||
|
|||||||
@ -119,7 +119,7 @@ DISKINF: LD C,B
|
|||||||
CP #FF ; !FIXIT WorkDirectory
|
CP #FF ; !FIXIT WorkDirectory
|
||||||
;!TEST Current Dir
|
;!TEST Current Dir
|
||||||
;JR Z,CURRDS ;R06
|
;JR Z,CURRDS ;R06
|
||||||
.CurrentDisk: LD A,(CurrentPath)
|
.CurrentDisk: LD A,(CORE_BUFFERS.CurrentPath)
|
||||||
SUB 'A'
|
SUB 'A'
|
||||||
LD HL,CORE_BUFFERS.FatBuffer.DRIVE
|
LD HL,CORE_BUFFERS.FatBuffer.DRIVE
|
||||||
CP (HL)
|
CP (HL)
|
||||||
|
|||||||
@ -359,16 +359,16 @@ MASK: LD HL,TMPNAME
|
|||||||
DIR_PATH_CHANGE:
|
DIR_PATH_CHANGE:
|
||||||
.FullCurrent: LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
.FullCurrent: LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||||
ADD 'A'
|
ADD 'A'
|
||||||
LD (CurrentPath),A
|
LD (CORE_BUFFERS.CurrentPath),A
|
||||||
;
|
;
|
||||||
.Current: LD HL,CurrentDirectory
|
.Current: LD HL,CORE_BUFFERS.CurrentDirectory
|
||||||
JP CURRDIR
|
JP CURRDIR
|
||||||
;
|
;
|
||||||
.FullWork: LD A,(CurrentPath)
|
.FullWork: LD A,(CORE_BUFFERS.CurrentPath)
|
||||||
SUB 'A'
|
SUB 'A'
|
||||||
LD (CORE_BUFFERS.FatBuffer.DRIVE),A
|
LD (CORE_BUFFERS.FatBuffer.DRIVE),A
|
||||||
;
|
;
|
||||||
.Work: LD HL,WorkDirectory
|
.Work: LD HL,CORE_BUFFERS.WorkDirectory
|
||||||
JP CURRDIR_FN
|
JP CURRDIR_FN
|
||||||
;
|
;
|
||||||
DIR_PATH_CHECK: LD A,(HL)
|
DIR_PATH_CHECK: LD A,(HL)
|
||||||
@ -377,7 +377,7 @@ DIR_PATH_CHECK: LD A,(HL)
|
|||||||
;
|
;
|
||||||
CALL .checkDrive
|
CALL .checkDrive
|
||||||
RET Z
|
RET Z
|
||||||
LD A,(CurrentPath)
|
LD A,(CORE_BUFFERS.CurrentPath)
|
||||||
SUB 'A'
|
SUB 'A'
|
||||||
JP OPENDSK
|
JP OPENDSK
|
||||||
;
|
;
|
||||||
@ -387,18 +387,18 @@ DIR_PATH_CHECK: LD A,(HL)
|
|||||||
RET Z
|
RET Z
|
||||||
;
|
;
|
||||||
.forceCheck: ;LD HL,CurrentDirectory+1
|
.forceCheck: ;LD HL,CurrentDirectory+1
|
||||||
LD BC,CurrentDirectory.DEPTH-1
|
LD BC,CORE_BUFFERS.CurrentDirectory.DEPTH-1
|
||||||
CALL .checkDrive
|
CALL .checkDrive
|
||||||
JR Z,.checkDir
|
JR Z,.checkDir
|
||||||
;
|
;
|
||||||
LD HL,CurrentPath
|
LD HL,CORE_BUFFERS.CurrentPath
|
||||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||||
ADD 'A'
|
ADD 'A'
|
||||||
CP (HL)
|
CP (HL)
|
||||||
JR NZ,.gotoPath
|
JR NZ,.gotoPath
|
||||||
;
|
;
|
||||||
.checkDir: LD HL,CurrentDirectory+1
|
.checkDir: LD HL,CORE_BUFFERS.CurrentDirectory+1
|
||||||
LD DE,WorkDirectory+1
|
LD DE,CORE_BUFFERS.WorkDirectory+1
|
||||||
; áçñâ稪
|
; áçñâ稪
|
||||||
LD A,B
|
LD A,B
|
||||||
LD B,C
|
LD B,C
|
||||||
@ -424,14 +424,14 @@ DIR_PATH_CHECK: LD A,(HL)
|
|||||||
CALL FINDDIR.CHECK_SLASH
|
CALL FINDDIR.CHECK_SLASH
|
||||||
LD A,DSS_Error.sys.PATH_NOT_FOUND
|
LD A,DSS_Error.sys.PATH_NOT_FOUND
|
||||||
RET C
|
RET C
|
||||||
LD HL,CurrentPath
|
LD HL,CORE_BUFFERS.CurrentPath
|
||||||
JP GETWORD
|
JP GETWORD
|
||||||
;
|
;
|
||||||
.end: CP (HL)
|
.end: CP (HL)
|
||||||
RET Z
|
RET Z
|
||||||
JR .gotoPath
|
JR .gotoPath
|
||||||
;
|
;
|
||||||
.checkDrive: LD HL,CurrentPath
|
.checkDrive: LD HL,CORE_BUFFERS.CurrentPath
|
||||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||||
ADD 'A'
|
ADD 'A'
|
||||||
CP (HL)
|
CP (HL)
|
||||||
|
|||||||
159
DSS/DRV-MAIN.ASM
159
DSS/DRV-MAIN.ASM
@ -26,11 +26,11 @@
|
|||||||
;===============;
|
;===============;
|
||||||
|
|
||||||
;!TODO
|
;!TODO
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[NOT USED]> ;
|
; <[NOT USED]>
|
||||||
A0000: JP RST_00 ;
|
A0000: JP RST_00
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
|
||||||
|
|
||||||
;
|
;
|
||||||
RST_00:
|
RST_00:
|
||||||
@ -39,49 +39,47 @@ RST_00:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
////////////////////////////////////////////////////////////////////////
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
; <[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,SYS_PORT.PAGE8;
|
OUT (SYS_PORT.ON),A
|
||||||
OUT (SYS_PORT.ON),A ;
|
POP AF
|
||||||
POP AF ;
|
RET
|
||||||
RET ;
|
////////////////////////////////////////////////////////////////////////
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
|
||||||
;
|
|
||||||
|
|
||||||
;!FIXIT
|
;!FIXIT
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[DSS API]> ;
|
; <[DSS API]>
|
||||||
BLOCK #10-$,#C7 ; #C7 - "RST 0" opcode
|
BLOCK #10-$,#C7 ; #C7 - "RST 0" opcode
|
||||||
A0010: ;JP DRV_PAGE.RST_10 ;
|
A0010: ;JP DRV_PAGE.RST_10
|
||||||
DI : HALT ;
|
DI : HALT
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[DRIVE API]> ;
|
; <[DRIVE API]>
|
||||||
BLOCK #18-$,#C7 ; #C7 - "RST 0" opcode
|
BLOCK #18-$,#C7 ; #C7 - "RST 0" opcode
|
||||||
;A0018 JP INTDISK ;
|
;A0018 JP INTDISK
|
||||||
A0018: ;PUSH AF ;
|
A0018: ;PUSH AF
|
||||||
;PUSH BC ;
|
;PUSH BC
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
DRV_PAGE.MAIN_PAGE_NUMBER+2: ;
|
DRV_PAGE.MAIN_PAGE_NUMBER+2:
|
||||||
LD BC,0*256 + SLOT0 ; !FIXIT áî¤ ¥ ¤®«¦ë ¢áâ ¢«ïâìáï ®¬¥à ¢ë¤¥«¥ëå áâà ¨æ?
|
LD BC,0*256 + SLOT0 ; !FIXIT áî¤ ¥ ¤®«¦ë ¢áâ ¢«ïâìáï ®¬¥à ¢ë¤¥«¥ëå áâà ¨æ?
|
||||||
;JP PORTAL.outDRV ;
|
;JP PORTAL.outDRV
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
;!TODO
|
;!TODO
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[NOT USED]> ;
|
; <[NOT USED]>
|
||||||
BLOCK #20-$,#C7 ; #C7 - "RST 0" opcode
|
BLOCK #20-$,#C7 ; #C7 - "RST 0" opcode
|
||||||
A0020: JP DRV_PAGE.RST_20 ;
|
A0020: JP DRV_PAGE.RST_20
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
|
||||||
|
|
||||||
;
|
;
|
||||||
DRV_PAGE.RST_20:
|
DRV_PAGE.RST_20:
|
||||||
@ -91,12 +89,12 @@ DRV_PAGE.RST_20:
|
|||||||
;
|
;
|
||||||
|
|
||||||
;!TODO
|
;!TODO
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[NOT USED]> ;
|
; <[NOT USED]>
|
||||||
BLOCK #28-$,#C7 ; #C7 - "RST 0" opcode
|
BLOCK #28-$,#C7 ; #C7 - "RST 0" opcode
|
||||||
A0028: JP DRV_PAGE.RST_28 ;
|
A0028: JP DRV_PAGE.RST_28
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
|
||||||
|
|
||||||
;
|
;
|
||||||
DRV_PAGE.RST_28:
|
DRV_PAGE.RST_28:
|
||||||
@ -105,23 +103,16 @@ DRV_PAGE.RST_28:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
;!TODO
|
////////////////////////////////////////////////////////////////////////
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
BLOCK #30-$,#C7 ; #C7 - "RST 0" opcode
|
||||||
; <[NOT USED]> ;
|
RST_30: JP MOUSE_DRV.API
|
||||||
BLOCK #30-$,#C7 ;
|
.RET: OUT (SLOT0),A
|
||||||
A0030: JP RST_30 ;
|
JP MOUSE_HANDLER
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
|
||||||
|
|
||||||
;
|
|
||||||
RST_30:
|
|
||||||
LD A,DSS_Error.drv.INVALID_COMMAND
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
|
|
||||||
;!FIXIT
|
;!FIXIT
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[MAIN INT]> ;
|
; <[MAIN INT]> ;
|
||||||
BLOCK #38-$,#C7 ;
|
BLOCK #38-$,#C7 ;
|
||||||
A0038: ;
|
A0038: ;
|
||||||
@ -188,21 +179,21 @@ A0038: ;
|
|||||||
ENDIF
|
ENDIF
|
||||||
EI ;
|
EI ;
|
||||||
RETI ;
|
RETI ;
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
|
||||||
|
|
||||||
;
|
;
|
||||||
DRV_PAGE.KEYSCAN: RET ;!FIXIT
|
DRV_PAGE.KEYSCAN: RET ;!FIXIT
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[ NMI ]> ;
|
; <[ NMI ]> ;
|
||||||
DRV_PAGE.NMI: RETN ;
|
DRV_PAGE.NMI: RETN ;
|
||||||
BLOCK #66-$,#C7;
|
BLOCK #66-$,#C7;
|
||||||
A0066: JP DRV_PAGE.NMI ;
|
A0066: JP DRV_PAGE.NMI ;
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
;-------------------------------;
|
;-------------------------------;
|
||||||
@ -220,8 +211,8 @@ A0066: JP DRV_PAGE.NMI ;
|
|||||||
; EX (SP),HL
|
; EX (SP),HL
|
||||||
; RET
|
; RET
|
||||||
|
|
||||||
;
|
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[DRIVE PAGE SWITCH]> ;
|
; <[DRIVE PAGE SWITCH]> ;
|
||||||
BLOCK PORTAL.RSTx18_SWITCH_ADDRESS-$-(PORTAL.out_DRV.switch - PORTAL.out_DRV),#C7
|
BLOCK PORTAL.RSTx18_SWITCH_ADDRESS-$-(PORTAL.out_DRV.switch - PORTAL.out_DRV),#C7
|
||||||
PORTAL.out_DRV: PUSH BC ;
|
PORTAL.out_DRV: PUSH BC ;
|
||||||
@ -234,22 +225,20 @@ PORTAL.out_DRV: PUSH BC ;
|
|||||||
POP AF ;
|
POP AF ;
|
||||||
.ADCALL+1: CALL DISPATCH ; ¯ âç¨âáï INTDISK
|
.ADCALL+1: CALL DISPATCH ; ¯ âç¨âáï INTDISK
|
||||||
JP PORTAL.out_DRV ;
|
JP PORTAL.out_DRV ;
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;!FIXIT çñâ ¥ â® âãâ
|
////////////////////////////////////////////////////////////////////////
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
MOUSE_HANDLER: POP AF
|
||||||
; LD B,#00; ;
|
CALL MOUSE_DRV.API
|
||||||
; OUT (C),A ;
|
PUSH AF
|
||||||
;--- ;
|
.CorePage EQU $$$ + 1
|
||||||
; POP BC ;
|
LD A,#FF
|
||||||
; RET ;
|
JP RST_30.RET
|
||||||
;PORTAL.outDRV: ;
|
////////////////////////////////////////////////////////////////////////
|
||||||
; RET ;
|
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
DRV_PAGE.LDRIVE: DB #00
|
DRV_PAGE.LDRIVE: DB #00
|
||||||
@ -263,11 +252,11 @@ INITDVC_RET_DRIVE:
|
|||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
INCLUDE 'dss/media_drivers/shared-drv.asm'
|
INCLUDE 'dss/Drivers/media/shared-drv.asm'
|
||||||
INCLUDE 'dss/media_drivers/ide-drv.asm'
|
INCLUDE 'dss/Drivers/media/ide-drv.asm'
|
||||||
INCLUDE 'dss/media_drivers/fdd-drv.asm'
|
INCLUDE 'dss/Drivers/media/fdd-drv.asm'
|
||||||
INCLUDE 'dss/media_drivers/ram_disk-drv.asm'
|
INCLUDE 'dss/Drivers/media/ram_disk-drv.asm'
|
||||||
|
INCLUDE "dss/Drivers/input/MOUSE.ASM"
|
||||||
/////////////////////////// [ DRIVE TABLES ] \\\\\\\\\\\\\\\\\\\\\\\\\\\;
|
/////////////////////////// [ DRIVE TABLES ] \\\\\\\\\\\\\\\\\\\\\\\\\\\;
|
||||||
;
|
;
|
||||||
;------------------------[shared-drv.asm table]------------------------;
|
;------------------------[shared-drv.asm table]------------------------;
|
||||||
|
|||||||
@ -128,7 +128,11 @@ RST_0x28: JP RST_28 ;
|
|||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
||||||
; <[MOUSE API]> ;
|
; <[MOUSE API]> ;
|
||||||
_mInfoBLOCK #30-$,#FF ;
|
_mInfoBLOCK #30-$,#FF ;
|
||||||
RST_0x30: JP INTMOUS ;
|
RST_0x30: PUSH AF
|
||||||
|
.drv_page+1: LD A,#FF
|
||||||
|
OUT (SLOT0),A
|
||||||
|
POP AF
|
||||||
|
RET
|
||||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -151,7 +155,9 @@ INT_: PUSH AF
|
|||||||
PUSH IX
|
PUSH IX
|
||||||
PUSH IY
|
PUSH IY
|
||||||
CALL KEYSCAN
|
CALL KEYSCAN
|
||||||
CALL M_INT
|
LD C,Dss.Mouse.GetPackets
|
||||||
|
RST ToDSS.Mouse
|
||||||
|
;CALL M_INT
|
||||||
IFN CLASSIC_CURSOR
|
IFN CLASSIC_CURSOR
|
||||||
CALL cursor_interrupt; ¢¥ªâ®à ®¡á«ã¦. ªãàá®à ;!!!!! VASIL
|
CALL cursor_interrupt; ¢¥ªâ®à ®¡á«ã¦. ªãàá®à ;!!!!! VASIL
|
||||||
ENDIF
|
ENDIF
|
||||||
@ -248,10 +254,10 @@ CLEAR_BUFFER_AND_INIT_PROC:
|
|||||||
LD (HL),A
|
LD (HL),A
|
||||||
LDIR
|
LDIR
|
||||||
LD HL,':'*256 + 'X'
|
LD HL,':'*256 + 'X'
|
||||||
LD (CurrentPath),HL
|
LD (CORE_BUFFERS.CurrentPath),HL
|
||||||
LD A,'\' ;
|
LD A,'\' ;
|
||||||
LD (CurrentDirectory),A
|
LD (CORE_BUFFERS.CurrentDirectory),A
|
||||||
LD (WorkDirectory),A
|
LD (CORE_BUFFERS.WorkDirectory),A
|
||||||
;
|
;
|
||||||
LD A,#FF
|
LD A,#FF
|
||||||
LD (CORE_BUFFERS.FatBuffer.DRIVE),A
|
LD (CORE_BUFFERS.FatBuffer.DRIVE),A
|
||||||
@ -370,8 +376,6 @@ ADRST10: ;DS 512 ;,0
|
|||||||
INCLUDE "FS/FAT/FAT.ASM"
|
INCLUDE "FS/FAT/FAT.ASM"
|
||||||
INCLUDE "FS/FAT/FAT_X.ASM"
|
INCLUDE "FS/FAT/FAT_X.ASM"
|
||||||
INCLUDE "DOS_FM.ASM"
|
INCLUDE "DOS_FM.ASM"
|
||||||
;INCLUDE "EXECUTE.ASM"
|
|
||||||
INCLUDE "INTMOUSE.ASM"
|
|
||||||
INCLUDE "Procedures.asm"
|
INCLUDE "Procedures.asm"
|
||||||
INCLUDE "Kernel_Panic.asm"
|
INCLUDE "Kernel_Panic.asm"
|
||||||
|
|
||||||
@ -414,30 +418,36 @@ WorkDirectory: DB '\'
|
|||||||
CLEAR_ZONE.start EQU $
|
CLEAR_ZONE.start EQU $
|
||||||
|
|
||||||
MODULE CORE_BUFFERS
|
MODULE CORE_BUFFERS
|
||||||
BUFFERSplace _sBuffers=$
|
BUFFERSplace _sBuffers=$
|
||||||
FM_BUF _sFM = BUFFERSplace.FileManipulator
|
FM_BUF _sFM = BUFFERSplace.FileManipulator
|
||||||
.Size EQU _sFM
|
.Size EQU _sFM
|
||||||
.FullSize EQU FMCOUNT*FM_BUF.Size
|
.FullSize EQU FMCOUNT*FM_BUF.Size
|
||||||
;BootSector _sBOOT_SECTOR_PARAMS = BUFFERSplace.BootSector ; [ ] fat32 ;!FIXIT CORE_BUFFERS.BootSector à §®© ¤«¨ë
|
FatBuffer _sFatBuffer = BUFFERSplace.FatBuffer
|
||||||
FatBuffer _sFatBuffer = BUFFERSplace.FatBuffer
|
EXEBUFF _sEXE_HEADER = BUFFERSplace.EXE_Header
|
||||||
EXEBUFF _sEXE_HEADER = BUFFERSplace.EXE_Header
|
XSTACK _sStack = BUFFERSplace.Stack
|
||||||
XSTACK EQU BUFFERSplace.Stack.SPoint
|
.Spoint EQU XSTACK + _sStack
|
||||||
BUFFER EQU BUFFERSplace.Buffer
|
BUFFER EQU BUFFERSplace.Buffer
|
||||||
SECTOR_BUFFER EQU BUFFER ;!TODO ®â¤¥«¨âì SECTOR_BUFFER ®â BUFFER
|
SECTOR_BUFFER EQU BUFFER ;!TODO ®â¤¥«¨âì SECTOR_BUFFER ®â BUFFER
|
||||||
MemoryTable EQU BUFFERSplace.MemoryTable
|
MemoryTable EQU BUFFERSplace.MemoryTable
|
||||||
|
CurrentPath EQU BUFFERSplace.CurrentPath
|
||||||
|
CurrentDirectory EQU BUFFERSplace.CurrentDirectory
|
||||||
|
.DEPTH EQU DIRECTORY_PATH_LENGTH
|
||||||
|
WorkDirectory EQU BUFFERSplace.WorkDirectory
|
||||||
|
.DEPTH EQU DIRECTORY_PATH_LENGTH
|
||||||
ENDMODULE
|
ENDMODULE
|
||||||
;
|
;
|
||||||
CurrentPath EQU CORE_BUFFERS.BUFFERSplace + _sBuffers
|
; CurrentPath EQU CORE_BUFFERS.BUFFERSplace + _sBuffers
|
||||||
CurrentDirectory EQU CurrentPath + 2
|
; CurrentDirectory EQU CurrentPath + 2
|
||||||
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
; .DEPTH: EQU DIRECTORY_PATH_LENGTH
|
||||||
;
|
; ;
|
||||||
WorkDirectory EQU CurrentDirectory + 1 + CurrentDirectory.DEPTH
|
; WorkDirectory EQU CurrentDirectory + 1 + CurrentDirectory.DEPTH
|
||||||
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
; .DEPTH: EQU DIRECTORY_PATH_LENGTH
|
||||||
;
|
;
|
||||||
CLEAR_ZONE.size EQU _sBuffers
|
CLEAR_ZONE.size EQU _sBuffers
|
||||||
|
|
||||||
|
|
||||||
ASSERT (CORE_BUFFERS.BUFFERSplace+_sBuffers)<#4000, "Warning!!! OUT OF SLOT0"
|
ASSERT (CLEAR_ZONE.start + _sBuffers)<#4000, "Warning!!! OUT OF SLOT0"
|
||||||
|
|
||||||
DISPLAY "--- --- --- --- --- --- --- ---"
|
DISPLAY "--- --- --- --- --- --- --- ---"
|
||||||
DISPLAY "CLEAR_ZONE.start ", /H, CLEAR_ZONE.start
|
DISPLAY "CLEAR_ZONE.start ", /H, CLEAR_ZONE.start
|
||||||
DISPLAY "CLEAR_ZONE.Size ", /H, CLEAR_ZONE.size
|
DISPLAY "CLEAR_ZONE.Size ", /H, CLEAR_ZONE.size
|
||||||
@ -599,7 +609,11 @@ DEPLOY: ;Allocate memory
|
|||||||
LD HL,BANKTBL + COREPAGE
|
LD HL,BANKTBL + COREPAGE
|
||||||
IN A,(SLOT0)
|
IN A,(SLOT0)
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
|
; ¤«ï API ¤à ©¢¥à ¬ë誨
|
||||||
|
LD (MOUSE_HANDLER.CorePage),A
|
||||||
|
LD A,(BANKTBL + DRVPAGE)
|
||||||
|
LD (RST_0x30.drv_page),A
|
||||||
|
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|
||||||
|
|||||||
@ -318,17 +318,17 @@ FINDDIR:
|
|||||||
LD A,(IX + FAT_DIRECTORY_RECORD.NAME + 1)
|
LD A,(IX + FAT_DIRECTORY_RECORD.NAME + 1)
|
||||||
CP "."
|
CP "."
|
||||||
JP NZ,.IT_DIR
|
JP NZ,.IT_DIR
|
||||||
LD HL,WorkDirectory
|
LD HL,CORE_BUFFERS.WorkDirectory
|
||||||
LD D,H
|
LD D,H
|
||||||
LD E,L
|
LD E,L
|
||||||
INC HL
|
INC HL
|
||||||
LD BC,WorkDirectory.DEPTH
|
LD BC,CORE_BUFFERS.WorkDirectory.DEPTH
|
||||||
XOR A
|
XOR A
|
||||||
CPIR
|
CPIR
|
||||||
JP PO,.error ;[x] 20/11/23 ¯à®¢¥àª ¢ë室 § £à ¨æë
|
JP PO,.error ;[x] 20/11/23 ¯à®¢¥àª ¢ë室 § £à ¨æë
|
||||||
DEC HL ;R009
|
DEC HL ;R009
|
||||||
DEC HL
|
DEC HL
|
||||||
LD BC,WorkDirectory.DEPTH
|
LD BC,CORE_BUFFERS.WorkDirectory.DEPTH
|
||||||
LD A,'\'
|
LD A,'\'
|
||||||
CPDR
|
CPDR
|
||||||
INC HL
|
INC HL
|
||||||
@ -353,8 +353,8 @@ FINDDIR:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.ADDSPEC:
|
.ADDSPEC:
|
||||||
LD HL,WorkDirectory+1
|
LD HL,CORE_BUFFERS.WorkDirectory+1
|
||||||
LD BC,WorkDirectory.DEPTH-1
|
LD BC,CORE_BUFFERS.WorkDirectory.DEPTH-1
|
||||||
CALL .CHECK_SLASH
|
CALL .CHECK_SLASH
|
||||||
JR C,.error
|
JR C,.error
|
||||||
;R011
|
;R011
|
||||||
@ -458,7 +458,7 @@ OPENDIR: LD IY,CORE_BUFFERS.FM_BUF
|
|||||||
LD (CORE_BUFFERS.FM_BUF.FS_REC.FIRST_CLUSTER_H),DE
|
LD (CORE_BUFFERS.FM_BUF.FS_REC.FIRST_CLUSTER_H),DE
|
||||||
CALL LOADDIR
|
CALL LOADDIR
|
||||||
; CF=0
|
; CF=0
|
||||||
LD HL,WorkDirectory
|
LD HL,CORE_BUFFERS.WorkDirectory
|
||||||
LD (HL),'\'
|
LD (HL),'\'
|
||||||
INC HL
|
INC HL
|
||||||
LD (HL),#00
|
LD (HL),#00
|
||||||
@ -712,7 +712,6 @@ RD_BPB: ; LD C,SLOT3
|
|||||||
LD (CORE_BUFFERS.FatBuffer.SectorsPerCluster),A
|
LD (CORE_BUFFERS.FatBuffer.SectorsPerCluster),A
|
||||||
; calc. first sector FAT
|
; calc. first sector FAT
|
||||||
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RESERVED_SECTORS)
|
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RESERVED_SECTORS)
|
||||||
;!FIXIT ¤«ï fat32 ¢âëª âì áî¤ á¥ªâ®à ªâ¨¢®© â ¡«¨æë
|
|
||||||
LD (CORE_BUFFERS.FatBuffer.FAT1_SEC_L),HL ; low word first sector FAT #1
|
LD (CORE_BUFFERS.FatBuffer.FAT1_SEC_L),HL ; low word first sector FAT #1
|
||||||
LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_L),HL ; low word first sector FAT #2
|
LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_L),HL ; low word first sector FAT #2
|
||||||
;[ ] fat32
|
;[ ] fat32
|
||||||
@ -735,8 +734,8 @@ RD_BPB: ; LD C,SLOT3
|
|||||||
LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_H),A
|
LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_H),A
|
||||||
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.SectorsPerFAT32)
|
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.SectorsPerFAT32)
|
||||||
.skip_high: LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_L),DE
|
.skip_high: LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_L),DE
|
||||||
;!TODO ¢ë¡®à ªâ¨¢®© FAT ¤«ï fat32
|
|
||||||
LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.Number_of_FATs) ; amount FATs
|
LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.Number_of_FATs) ; amount FATs
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.Number_Of_FATs),A
|
||||||
CP 1
|
CP 1
|
||||||
JR Z,.one_FAT
|
JR Z,.one_FAT
|
||||||
DEC A
|
DEC A
|
||||||
@ -951,38 +950,65 @@ RD_BPB: ; LD C,SLOT3
|
|||||||
LD A,FAT_TYPE.x12
|
LD A,FAT_TYPE.x12
|
||||||
JR .set_vars
|
JR .set_vars
|
||||||
;
|
;
|
||||||
.its_FAT32: EXX
|
.its_FAT32: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.MainFATnumber)
|
||||||
LD HL,CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.LABEL
|
CP #80
|
||||||
|
JR C,.mirrored_FATs ;¥á«¨ ¢á¥ ª®¯¨¨ FAT ¨á¯®«ì§ãîâáï
|
||||||
|
; ¨á¯®«ì§ã¥âáï ⮫쪮 ®¤ ª®¯¨ï FAT
|
||||||
|
LD HL,(CORE_BUFFERS.FatBuffer.FAT1_SEC_H)
|
||||||
|
LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_H)
|
||||||
|
LD D,0
|
||||||
EXX
|
EXX
|
||||||
|
LD HL,(CORE_BUFFERS.FatBuffer.FAT1_SEC_L)
|
||||||
|
LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_L)
|
||||||
|
AND #0F
|
||||||
|
JR Z,.first_FAT_active
|
||||||
|
LD B,A
|
||||||
;
|
;
|
||||||
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RootDirStartCluster)
|
.fat_calc_loop: ADD HL,DE
|
||||||
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_L),HL
|
EXX
|
||||||
LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RootDirStartCluster+2)
|
ADC HL,DE
|
||||||
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_H),BC
|
EXX
|
||||||
|
DJNZ .fat_calc_loop
|
||||||
;
|
;
|
||||||
CALL CLUSTER_TO_SECTOR
|
.first_FAT_active:
|
||||||
LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_L),HL
|
LD (CORE_BUFFERS.FatBuffer.FAT1_SEC_L),HL
|
||||||
LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_H),BC
|
LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_L),HL
|
||||||
|
EXX
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.FAT1_SEC_H),HL
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_H),HL
|
||||||
;
|
;
|
||||||
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FSINFO_Sector)
|
.mirrored_FATs: ;
|
||||||
LD (CORE_BUFFERS.FatBuffer.FSINFO_Sector),HL
|
LD HL,CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.LABEL
|
||||||
;
|
;
|
||||||
LD A,FAT_TYPE.x32
|
EXX
|
||||||
LD HL,#0FFF
|
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RootDirStartCluster)
|
||||||
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_H),HL
|
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_L),HL
|
||||||
LD H,L
|
LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RootDirStartCluster+2)
|
||||||
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.SERIAL_NUMBER)
|
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_H),BC
|
||||||
LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.SERIAL_NUMBER+2)
|
;
|
||||||
;
|
CALL CLUSTER_TO_SECTOR
|
||||||
.SET_VARS: LD (CORE_BUFFERS.FatBuffer.FAT_TYPE),A
|
LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_L),HL
|
||||||
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_L),HL
|
LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_H),BC
|
||||||
LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER),DE
|
;
|
||||||
LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER+2),BC
|
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FSINFO_Sector)
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.FSINFO_Sector),HL
|
||||||
|
;
|
||||||
|
LD A,FAT_TYPE.x32
|
||||||
|
LD HL,#0FFF
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_H),HL
|
||||||
|
LD H,L
|
||||||
|
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.SERIAL_NUMBER)
|
||||||
|
LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.SERIAL_NUMBER+2)
|
||||||
|
;
|
||||||
|
.SET_VARS: LD (CORE_BUFFERS.FatBuffer.FAT_TYPE),A
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_L),HL
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER),DE
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER+2),BC
|
||||||
EXX
|
EXX
|
||||||
LD DE,CORE_BUFFERS.FatBuffer.BPB_LABEL
|
LD DE,CORE_BUFFERS.FatBuffer.BPB_LABEL
|
||||||
LD BC,11 ;!HARDCODE
|
LD BC,11 ;!HARDCODE
|
||||||
LDIR
|
LDIR
|
||||||
|
;
|
||||||
SET_PAGE_X FATPAGE
|
SET_PAGE_X FATPAGE
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD DE,0
|
LD DE,0
|
||||||
@ -1006,43 +1032,7 @@ RD_BPB: ; LD C,SLOT3
|
|||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.set_FSinfo: ;
|
.set_FSinfo: CALL READ_FSinfo
|
||||||
IFN USE_FSINFO_FAT32
|
|
||||||
CALL READ_FSinfo
|
|
||||||
; !FIXIT ¯à®¢¥àª ®è¨¡ªã
|
|
||||||
;
|
|
||||||
LD A,#FF
|
|
||||||
; ¯à®¢¥àª ®¤®© ¨§ á®â¨ áà ëå ᨣ âãà
|
|
||||||
LD HL,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.DATA_SIGNATURE)
|
|
||||||
LD DE,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.DATA_SIGNATURE + 2)
|
|
||||||
LD BC,#7272
|
|
||||||
SBC HL,BC
|
|
||||||
JR NZ,.error_sig
|
|
||||||
EX DE,HL
|
|
||||||
LD DE,#6141
|
|
||||||
SBC HL,DE
|
|
||||||
JR NZ,.error_sig
|
|
||||||
;
|
|
||||||
LD HL,CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT
|
|
||||||
LD B,8 ; 2 x DWORD
|
|
||||||
LD A,#FF
|
|
||||||
;
|
|
||||||
.fsinfo_loop: AND (HL)
|
|
||||||
INC HL
|
|
||||||
DJNZ .fsinfo_loop
|
|
||||||
;
|
|
||||||
.error_sig: XOR #FF
|
|
||||||
LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A
|
|
||||||
;
|
|
||||||
XOR A
|
|
||||||
LD H,A
|
|
||||||
LD L,2
|
|
||||||
LD (G_CLUST.low),HL
|
|
||||||
LD L,H
|
|
||||||
LD (G_CLUST.high),HL
|
|
||||||
RET
|
|
||||||
ELSE
|
|
||||||
CALL READ_FSinfo
|
|
||||||
; !FIXIT ¯à®¢¥àª ®è¨¡ªã
|
; !FIXIT ¯à®¢¥àª ®è¨¡ªã
|
||||||
;
|
;
|
||||||
; ¯à®¢¥àª ®¤®© ¨§ á®â¨ áà ëå ᨣ âãà
|
; ¯à®¢¥àª ®¤®© ¨§ á®â¨ áà ëå ᨣ âãà
|
||||||
@ -1101,7 +1091,6 @@ RD_BPB: ; LD C,SLOT3
|
|||||||
LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterHigh)
|
LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterHigh)
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
RET
|
RET
|
||||||
ENDIF
|
|
||||||
;;;;;;;;
|
;;;;;;;;
|
||||||
|
|
||||||
; --> BC:HL - Sector
|
; --> BC:HL - Sector
|
||||||
|
|||||||
@ -647,11 +647,7 @@ WRITE_FAT_TABLE:
|
|||||||
;FAT_BLOCK * Sectors_in_Block = SECTOR_OF_FAT
|
;FAT_BLOCK * Sectors_in_Block = SECTOR_OF_FAT
|
||||||
CALL GET_SECTOR_OF_FAT
|
CALL GET_SECTOR_OF_FAT
|
||||||
; B=0, C:HL - ᬥ饨¥ ¢ ᥪâ®à å ¢ãâਠ⠡«¨æë FAT ç «® ¡«®ª
|
; B=0, C:HL - ᬥ饨¥ ¢ ᥪâ®à å ¢ãâਠ⠡«¨æë FAT ç «® ¡«®ª
|
||||||
; [x] fat32 ;!FIXIT
|
LD (.save_offset_HL),HL
|
||||||
LD (.save_hl),HL
|
|
||||||
;LD B,H
|
|
||||||
;LD C,L
|
|
||||||
;
|
|
||||||
LD DE,FAT_CACHE.Sectors_32
|
LD DE,FAT_CACHE.Sectors_32
|
||||||
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
||||||
CP FAT_TYPE.x32
|
CP FAT_TYPE.x32
|
||||||
@ -675,7 +671,7 @@ WRITE_FAT_TABLE:
|
|||||||
.sub_A+1: SBC A,0
|
.sub_A+1: SBC A,0
|
||||||
JR C,.WALLFAT ; ‘F=1: ¥ ¢ë室¨â
|
JR C,.WALLFAT ; ‘F=1: ¥ ¢ë室¨â
|
||||||
OR A
|
OR A
|
||||||
JR NZ,.ERR
|
JP NZ,.ERR
|
||||||
;
|
;
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
; DE - ᪮«ìª® ᥪâ®à®¢ ª®¥æ ¡«®ª ¢ë室¨â § ¯à¥¤¥«ë â ¡«¨æë.
|
; DE - ᪮«ìª® ᥪâ®à®¢ ª®¥æ ¡«®ª ¢ë室¨â § ¯à¥¤¥«ë â ¡«¨æë.
|
||||||
@ -686,23 +682,17 @@ WRITE_FAT_TABLE:
|
|||||||
JR C,.ERR ;!TODO ¯à®¢¥à¨âì
|
JR C,.ERR ;!TODO ¯à®¢¥à¨âì
|
||||||
LD B,L ; ç¨á«® ᥪâ®à®¢ ¤«ï çâ¥¨ï ¢ ªíè
|
LD B,L ; ç¨á«® ᥪâ®à®¢ ¤«ï çâ¥¨ï ¢ ªíè
|
||||||
.WALLFAT: ;
|
.WALLFAT: ;
|
||||||
.save_hl+1: LD HL,0
|
.pop_offset_HL+1:
|
||||||
;LD H,B
|
LD HL,0
|
||||||
;LD L,C
|
|
||||||
;PUSH HL
|
|
||||||
;
|
|
||||||
; B = ç¨á«® ᥪâ®à®¢
|
; B = ç¨á«® ᥪâ®à®¢
|
||||||
LD IX,(CORE_BUFFERS.FatBuffer.FAT1_SEC_H)
|
LD IX,(CORE_BUFFERS.FatBuffer.FAT1_SEC_H)
|
||||||
LD DE,(CORE_BUFFERS.FatBuffer.FAT1_SEC_L)
|
LD DE,(CORE_BUFFERS.FatBuffer.FAT1_SEC_L)
|
||||||
;LD B,A
|
|
||||||
;LD C,Dss.DRV.Write ; § ¯¨áì ᥪâ®à®¢
|
|
||||||
PUSH BC
|
PUSH BC
|
||||||
;
|
|
||||||
; á®åà 塞 ¯¥à¢ãî ª®¯¨î FAT. ‚室 IX:DE - ç «® â ¡«¨æë FAT
|
; á®åà 塞 ¯¥à¢ãî ª®¯¨î FAT. ‚室 IX:DE - ç «® â ¡«¨æë FAT
|
||||||
; C:HL - ᬥ饨¥ ¢ãâਠ⠡«¨æë
|
; C:HL - ᬥ饨¥ ¢ãâਠ⠡«¨æë
|
||||||
; B - ª®«¨ç¥á⢮ ᥪâ®à®¢
|
; B - ª®«¨ç¥á⢮ ᥪâ®à®¢
|
||||||
CALL .SAVE_FAT_XX
|
CALL .SAVE_FAT_XX
|
||||||
; [x] ¥á«¨ ¢á¥£® ®¤ â ¡«¨æ FAT, â® ¯®¢â®à®© § ¯¨á¨ ¥ ¯à®¨á室¨â 13/03/2024
|
; [x] ¥á«¨ ¢á¥£® ®¤ â ¡«¨æ FAT, â® ¯®¢â®à®© § ¯¨á¨ ¥ ¯à®¨á室¨â 13/03/2024
|
||||||
POP BC ; B = ç¨á«® ᥪâ®à®¢, C = áâ à訩 ¡ ©â á¬¥é¥¨ï ¢ ᥪâ®à å
|
POP BC ; B = ç¨á«® ᥪâ®à®¢, C = áâ à訩 ¡ ©â á¬¥é¥¨ï ¢ ᥪâ®à å
|
||||||
LD HL,(CORE_BUFFERS.FatBuffer.FAT1_SEC_H)
|
LD HL,(CORE_BUFFERS.FatBuffer.FAT1_SEC_H)
|
||||||
LD DE,(CORE_BUFFERS.FatBuffer.FAT2_SEC_H)
|
LD DE,(CORE_BUFFERS.FatBuffer.FAT2_SEC_H)
|
||||||
@ -715,12 +705,51 @@ WRITE_FAT_TABLE:
|
|||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR Z,.only_one_FAT
|
JR Z,.only_one_FAT
|
||||||
;
|
;
|
||||||
; á®åà 塞 ¢â®àãî ª®¯¨î FAT
|
.not_one_FAT: LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
||||||
.not_one_FAT: LD IX,(CORE_BUFFERS.FatBuffer.FAT2_SEC_H)
|
CP FAT_TYPE.x32
|
||||||
|
JR NZ,.fat_num_2
|
||||||
|
;
|
||||||
|
LD A,(CORE_BUFFERS.FatBuffer.Number_Of_FATs)
|
||||||
|
CP 2
|
||||||
|
JR Z,.fat_num_2
|
||||||
|
; á®åà 塞 ¡®«ìè¥ ¤¢ãå ª®¯¨© FAT
|
||||||
|
LD HL,(CORE_BUFFERS.FatBuffer.FAT2_SEC_H)
|
||||||
|
LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_H)
|
||||||
|
LD D,0
|
||||||
|
EXX
|
||||||
|
LD HL,(CORE_BUFFERS.FatBuffer.FAT2_SEC_L)
|
||||||
|
LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_L)
|
||||||
|
DEC A
|
||||||
|
.many_fat_loop: EXX
|
||||||
|
PUSH HL
|
||||||
|
PUSH HL
|
||||||
|
POP IX
|
||||||
|
EXX
|
||||||
|
PUSH HL
|
||||||
|
PUSH BC
|
||||||
|
EX DE,HL
|
||||||
|
LD HL,(.pop_offset_HL)
|
||||||
|
CALL .SAVE_FAT_XX
|
||||||
|
POP BC
|
||||||
|
POP HL
|
||||||
|
;
|
||||||
|
LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_L)
|
||||||
|
ADD HL,DE
|
||||||
|
EXX
|
||||||
|
LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_H)
|
||||||
|
POP HL
|
||||||
|
ADC HL,DE
|
||||||
|
EXX
|
||||||
|
DEC A
|
||||||
|
JR NZ,.many_fat_loop
|
||||||
|
JR .norm_exit
|
||||||
|
;
|
||||||
|
; á®åà 塞 ¢â®àãî ª®¯¨î FAT
|
||||||
|
.fat_num_2: LD IX,(CORE_BUFFERS.FatBuffer.FAT2_SEC_H)
|
||||||
LD DE,(CORE_BUFFERS.FatBuffer.FAT2_SEC_L)
|
LD DE,(CORE_BUFFERS.FatBuffer.FAT2_SEC_L)
|
||||||
LD HL,(.save_hl)
|
LD HL,(.pop_offset_HL)
|
||||||
CALL .SAVE_FAT_XX
|
CALL .SAVE_FAT_XX
|
||||||
AND A ;!TODO ¥â ª®âà®«ï ®è¨¡®ª
|
.norm_exit: AND A ;!TODO ¥â ª®âà®«ï ®è¨¡®ª
|
||||||
.only_one_FAT: ;
|
.only_one_FAT: ;
|
||||||
.ERR: LD A,0
|
.ERR: LD A,0
|
||||||
LD (CORE_BUFFERS.FatBuffer.CacheUpdated),A
|
LD (CORE_BUFFERS.FatBuffer.CacheUpdated),A
|
||||||
@ -729,7 +758,6 @@ WRITE_FAT_TABLE:
|
|||||||
; C:HL - ᬥ饨¥ ¢ â ¡«¨æ¥ ¢ ᥪâ®à å
|
; C:HL - ᬥ饨¥ ¢ â ¡«¨æ¥ ¢ ᥪâ®à å
|
||||||
; B - ª®«¨ç¥á⢮ ᥪâ®à®¢
|
; B - ª®«¨ç¥á⢮ ᥪâ®à®¢
|
||||||
.SAVE_FAT_XX: ADD HL,DE
|
.SAVE_FAT_XX: ADD HL,DE
|
||||||
;EX DE,HL
|
|
||||||
JR NC,.no_inc_C
|
JR NC,.no_inc_C
|
||||||
INC C
|
INC C
|
||||||
; ®¬¥à «®£. ᥪâ®à
|
; ®¬¥à «®£. ᥪâ®à
|
||||||
@ -1539,17 +1567,5 @@ GET_OFFSET_IN_SECTORS:
|
|||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
;!TODO fat32
|
|
||||||
;=======================================================================
|
|
||||||
;BPB
|
|
||||||
;LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_L),HL
|
|
||||||
;LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_L),HL ; first sector DIR
|
|
||||||
;BPB32
|
|
||||||
;LD HL,(CORE_BUFFERS.BootSector+#2C) ;fat32 <20>¥à¢ë© ª« áâ¥à ª®à¥¢®£® ª â «®£ (®¡ëç® 2) 4 ¡ ©â
|
|
||||||
;FAT Max Cluster
|
|
||||||
;LD (CORE_BUFFERS.FatBuffer.MaxClusterLow),HL
|
|
||||||
;=======================================================================
|
|
||||||
|
|
||||||
;//MODULE: FAT_X
|
;//MODULE: FAT_X
|
||||||
;[END]
|
;[END]
|
||||||
@ -1,4 +1,5 @@
|
|||||||
|
|
||||||
|
; MODULE KEYINTER
|
||||||
;[BEGIN]
|
;[BEGIN]
|
||||||
;//MODULE: KEYINTER Keyboard Scan Codes: Set 2
|
;//MODULE: KEYINTER Keyboard Scan Codes: Set 2
|
||||||
;//CREATE: 19-05-1998 AUTHOR: Denis Parinov
|
;//CREATE: 19-05-1998 AUTHOR: Denis Parinov
|
||||||
@ -1270,4 +1271,5 @@ SHF2RUS DB #F1,Esc,"!",#22,"#","$",":",#2C,".",";","?","%","_","+",Bcs
|
|||||||
;================================
|
;================================
|
||||||
|
|
||||||
;//MODULE: KEYINTER
|
;//MODULE: KEYINTER
|
||||||
;[END]
|
;[END]
|
||||||
|
; ENDMODULE
|
||||||
@ -1,7 +1,7 @@
|
|||||||
;
|
;
|
||||||
STRUCT _sStack ; 256 bytes
|
STRUCT _sStack ; 256 bytes
|
||||||
.buffer BLOCK 256,0
|
.buffer BLOCK 256,0
|
||||||
.SPoint BYTE 0
|
;.SPoint BYTE 0
|
||||||
ENDS
|
ENDS
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -76,23 +76,24 @@
|
|||||||
;
|
;
|
||||||
STRUCT _sFatBuffer
|
STRUCT _sFatBuffer
|
||||||
.DRIVE: BYTE #FF
|
.DRIVE: BYTE #FF
|
||||||
.FAT_TYPE: BYTE #00 ; TYPE FAT (12 - 12bit, 16 - 16bit, 32 - 32bit) ; [x] fat32
|
.FAT_TYPE: BYTE #00 ; TYPE FAT (12 - 12bit, 16 - 16bit, 32 - 32bit) ; fat32
|
||||||
.CacheBlock: WORD #0000
|
.CacheBlock: WORD #0000
|
||||||
.CacheUpdated: BYTE #00
|
.CacheUpdated: BYTE #00
|
||||||
;.SectorsPerBank: BYTE #00
|
;.SectorsPerBank: BYTE #00
|
||||||
.RootDirStartCluster_L: WORD #0000
|
.RootDirStartCluster_L: WORD #0000
|
||||||
.RootDirStartCluster_H: WORD #0000 ; [ ] fat32
|
.RootDirStartCluster_H: WORD #0000 ; fat32
|
||||||
.FAT1_SEC_L: WORD #0000 ; MSD_FAT_SEC first sector FAT (FAT_FRM)
|
.FAT1_SEC_L: WORD #0000 ; MSD_FAT_SEC first sector FAT (FAT_FRM)
|
||||||
.FAT1_SEC_H: WORD #0000 ; [ ] fat32
|
.FAT1_SEC_H: WORD #0000 ; fat32
|
||||||
.FAT2_SEC_L: WORD #0000
|
.FAT2_SEC_L: WORD #0000
|
||||||
.FAT2_SEC_H: WORD #0000 ; [ ] fat32
|
.FAT2_SEC_H: WORD #0000 ; fat32
|
||||||
|
.Number_Of_FATs BYTE #02
|
||||||
.SectorsPerFAT_L WORD #0000
|
.SectorsPerFAT_L WORD #0000
|
||||||
.SectorsPerFAT_H BYTE #00
|
.SectorsPerFAT_H BYTE #00
|
||||||
.RootDirFirstSector_L: WORD #0000 ; MSD_CAT_SEC first sector DIR
|
.RootDirFirstSector_L: WORD #0000 ; MSD_CAT_SEC first sector DIR
|
||||||
.RootDirFirstSector_H: WORD #0000 ; MSD_CAT_SEC first sector DIR ; !TODO ®£à ¨ç¥¨¥ ¢ 32 ƒ¨£ ;!FIXIT ¥ ¨á¯®«ì§ã¥âáï
|
.RootDirFirstSector_H: WORD #0000 ; MSD_CAT_SEC first sector DIR
|
||||||
.DirSizeInSectors: BYTE #00 ; DIR_SEC_SIZE
|
.DirSizeInSectors: BYTE #00 ; DIR_SEC_SIZE
|
||||||
.FirstDataSector_L: WORD #0000 ; MSD_DAT_SEC low
|
.FirstDataSector_L: WORD #0000 ; MSD_DAT_SEC low
|
||||||
.FirstDataSector_H: WORD #0000 ; MSD_DAT_SEC high ; [ ] fat32 ¡ë«® ®£à ¨ç¥¨¥ ¢ 32 ƒ¨£
|
.FirstDataSector_H: WORD #0000 ; MSD_DAT_SEC high
|
||||||
.BytesPerCluster: WORD #0000 ; CLUSTER_LEN
|
.BytesPerCluster: WORD #0000 ; CLUSTER_LEN
|
||||||
.END_CHAIN_CLUSTER_L: WORD #FFFF
|
.END_CHAIN_CLUSTER_L: WORD #FFFF
|
||||||
.END_CHAIN_CLUSTER_H: WORD #0FFF ; [ ] fat3
|
.END_CHAIN_CLUSTER_H: WORD #0FFF ; [ ] fat3
|
||||||
@ -123,5 +124,8 @@
|
|||||||
.Stack _sStack ; 256 bytes
|
.Stack _sStack ; 256 bytes
|
||||||
.Buffer BLOCK 512,0 ; FOR BUFFER & SECTOR_BUFFER
|
.Buffer BLOCK 512,0 ; FOR BUFFER & SECTOR_BUFFER
|
||||||
.MemoryTable BLOCK 256,0 ; 256 bytes
|
.MemoryTable BLOCK 256,0 ; 256 bytes
|
||||||
|
.CurrentPath WORD 0
|
||||||
|
.CurrentDirectory BLOCK DIRECTORY_PATH_LENGTH,0
|
||||||
|
.WorkDirectory BLOCK DIRECTORY_PATH_LENGTH,0
|
||||||
ENDS
|
ENDS
|
||||||
;
|
;
|
||||||
@ -1 +1 @@
|
|||||||
982
|
983
|
||||||
@ -27,9 +27,8 @@
|
|||||||
;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥
|
;LD_DSK EQU 16 ; ¬ ªá¨¬ «ì®¥ ª®«¨ç¥á⢮ «®£¨ç¥áª¨å HDD ¤¨áª®¢ ¢ á¨á⥬¥
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
DEFINE USE_FSINFO_FAT32 1 ; ¥¤®¤¥« ®. € 㦮 «¨?
|
|
||||||
DEFINE CHANGE_FREE_CLU_AFTER_DEL 1
|
DEFINE CHANGE_FREE_CLU_AFTER_DEL 1
|
||||||
DEFINE FAST_FAT_CASHE 1 ; !FIXIT ¡ £¨ ¯à¨ áâ¨à ¨¨
|
DEFINE FAST_FAT_CASHE 1
|
||||||
|
|
||||||
SERVICE_SECTORS:
|
SERVICE_SECTORS:
|
||||||
.FAT12 EQU #0FEF
|
.FAT12 EQU #0FEF
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
|
MODULE MOUSE_DRV
|
||||||
;[BEGIN]
|
;[BEGIN]
|
||||||
;//MODULE: INTMOUSE
|
;//MODULE: MOUSE_DRV
|
||||||
;//CREATE: 19-05-1998 AUTHOR: Denis Parinov
|
;//CREATE: 19-05-1998 AUTHOR: Denis Parinov
|
||||||
;//UPDATE: 24-10-1999 DNS Restore module
|
;//UPDATE: 24-10-1999 DNS Restore module
|
||||||
|
|
||||||
@ -102,8 +102,7 @@ PORT_MOUSE.Data EQU Z84.SIO.Ch_B.Data
|
|||||||
; 4 - CURSOR OFF (UZHE)
|
; 4 - CURSOR OFF (UZHE)
|
||||||
; 5 - CURSOR IMAGE VERY BIG
|
; 5 - CURSOR IMAGE VERY BIG
|
||||||
|
|
||||||
INTMOUS:
|
API: BIT 7,C
|
||||||
BIT 7,C
|
|
||||||
JR NZ,EMOUSE
|
JR NZ,EMOUSE
|
||||||
INC C
|
INC C
|
||||||
DEC C
|
DEC C
|
||||||
@ -340,7 +339,7 @@ MS_BCUR:
|
|||||||
POP BC
|
POP BC
|
||||||
POP HL
|
POP HL
|
||||||
LD A,5
|
LD A,5
|
||||||
JR C,NOSAVEM
|
JR C,.NOSAVEM
|
||||||
LD DE,M_IMAGE
|
LD DE,M_IMAGE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
DI
|
DI
|
||||||
@ -355,7 +354,7 @@ MS_BCUR:
|
|||||||
LD D,C
|
LD D,C
|
||||||
LD BC,0
|
LD BC,0
|
||||||
XOR A
|
XOR A
|
||||||
NOSAVEM:
|
.NOSAVEM:
|
||||||
EI
|
EI
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -1032,6 +1031,6 @@ M_IMAGE:
|
|||||||
BLOCK 256-($-M_IMAGE),0
|
BLOCK 256-($-M_IMAGE),0
|
||||||
.Size EQU $-M_IMAGE
|
.Size EQU $-M_IMAGE
|
||||||
|
|
||||||
;//MODULE: INTMOUSE
|
;//MODULE: MOUSE_DRV
|
||||||
;[END]
|
;[END]
|
||||||
|
ENDMODULE
|
||||||
Loading…
Reference in New Issue
Block a user