mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
tst
This commit is contained in:
parent
3814444250
commit
b45094a6f5
@ -534,6 +534,12 @@ GET_BPB: LD HL,#0000
|
||||
JP NC,.loop3
|
||||
.loop3.end: ;
|
||||
LD (FatBuffer.BytesPerCluster),HL
|
||||
; LD DE,#8001 ; 能恥丞<E681A5> <20> <20>妞丞 物<>漭<EFBFBD> &恢镼 32 炕 - 郊 祚中丞成<E4B89E>乒摬 ; !TODO
|
||||
; AND A
|
||||
; SBC HL,DE
|
||||
; CCF
|
||||
; RET C ; [ ] fixed bug, thanks to @Romychs (Roman Boykov)
|
||||
;
|
||||
LD HL,(BOOT_BUFFER + BOOT_SECTOR.SectorsPerDrive)
|
||||
LD BC,0
|
||||
LD A,H
|
||||
|
||||
137
DSS/DOS_Proc.asm
137
DSS/DOS_Proc.asm
@ -180,66 +180,85 @@ TMPNAME: DZ ' ' ; 12
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; IN: A - drive number
|
||||
OPENDSK:;!TEST DRV.Open ®¡å®¤ R10
|
||||
LD C,A
|
||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||
CP C
|
||||
IF CHECK_DRIVE_CHANGE
|
||||
JR NZ,.open
|
||||
PUSH BC
|
||||
LD C,Dss.DRV.MediaCheck
|
||||
RST ToDSS.DRV
|
||||
POP BC
|
||||
ENDIF
|
||||
JR Z,.exit
|
||||
OPENDSK: ;!TEST DRV.Open ®¡å®¤ R10
|
||||
LD C,A
|
||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||
CP C
|
||||
IF CHECK_DRIVE_CHANGE
|
||||
JR NZ,.open
|
||||
PUSH BC
|
||||
LD C,Dss.DRV.MediaCheck
|
||||
RST ToDSS.DRV
|
||||
POP BC
|
||||
ENDIF
|
||||
JR Z,.exit
|
||||
|
||||
.open: LD A,C
|
||||
;
|
||||
.force: PUSH AF
|
||||
LD C,Dss.DRV.Open
|
||||
RST ToDSS.DRV
|
||||
POP BC
|
||||
JP C,.error
|
||||
;[x] 29/02/2024 fix "open drive error"
|
||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||
LD D,A
|
||||
PUSH DE
|
||||
;
|
||||
LD A,B
|
||||
LD (CORE_BUFFERS.FatBuffer.DRIVE),A
|
||||
;
|
||||
CALL RD_BPB
|
||||
;[x] 29/02/2024 fix "open drive error"
|
||||
POP DE
|
||||
LD A,D
|
||||
JR C,.error_disk
|
||||
; RET C
|
||||
;
|
||||
.exit: LD A,(LDRIVE)
|
||||
AND A
|
||||
RET
|
||||
;
|
||||
.error: CP DSS_Error.sys.INVALID_DRIVE
|
||||
SCF
|
||||
RET Z
|
||||
LD A,DSS_Error.sys.NOT_READY
|
||||
RET
|
||||
;[x] 29/02/2024 fix "open drive error"
|
||||
.error_disk:
|
||||
CALL OPENDSK.force
|
||||
LD A,(BOOTDSK.NUM)
|
||||
CALL C,OPENDSK.force
|
||||
; ¯à®¢¥àª ®è¨¡ªã
|
||||
LD HL,.NOT_READY
|
||||
LD E, +(80-.NOT_READY.size)/2 ; coord X
|
||||
LD BC,.NOT_READY.size
|
||||
JP C,KERNEL_PANIC
|
||||
;
|
||||
LD A,DSS_Error.sys.NOT_READY
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
.NOT_READY: DZ "Boot drive not ready..."
|
||||
.open: LD A,C
|
||||
;
|
||||
.force: PUSH AF
|
||||
LD C,Dss.DRV.Open
|
||||
RST ToDSS.DRV
|
||||
POP BC
|
||||
JP C,.error
|
||||
;[x] 29/02/2024 fix "open drive error"
|
||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||
LD D,A
|
||||
PUSH DE
|
||||
;
|
||||
LD A,B
|
||||
LD (CORE_BUFFERS.FatBuffer.DRIVE),A
|
||||
;
|
||||
CALL RD_BPB
|
||||
;[x] 29/02/2024 fix "open drive error"
|
||||
POP DE
|
||||
JR C,.error_bpb
|
||||
; RET C
|
||||
;
|
||||
.exit: LD A,(LDRIVE)
|
||||
AND A
|
||||
RET
|
||||
;
|
||||
.error: CP DSS_Error.sys.INVALID_DRIVE
|
||||
SCF
|
||||
RET Z
|
||||
LD A,DSS_Error.sys.NOT_READY
|
||||
RET
|
||||
;[x] 29/02/2024 fix "open drive error"; 20/06/2024 fixed
|
||||
.error_bpb: PUSH AF ; á®åà 塞 ®¬¥à ®è¨¡ª¨
|
||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||
CP D
|
||||
JR Z,.next_check
|
||||
;
|
||||
LD A,D
|
||||
CP #FF
|
||||
SCF
|
||||
JR Z,.set_panic
|
||||
;
|
||||
LD (CORE_BUFFERS.FatBuffer.DRIVE),A
|
||||
CALL OPENDSK.force
|
||||
LD A,(BOOTDSK.NUM)
|
||||
LD (CORE_BUFFERS.FatBuffer.DRIVE),A
|
||||
CALL C,OPENDSK.force
|
||||
;
|
||||
.err_exit: LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||
ADD 'A'
|
||||
LD (CORE_BUFFERS.CurrentPath),A
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
.next_check: LD A,(BOOTDSK.NUM)
|
||||
CP D
|
||||
SCF
|
||||
.reBPB: CALL NZ,OPENDSK.force
|
||||
; ¯à®¢¥àª ®è¨¡ªã
|
||||
.set_panic: LD HL,.NOT_READY
|
||||
LD E, +(80-.NOT_READY.size)/2 ; coord X
|
||||
LD BC,.NOT_READY.size
|
||||
JR NC,.err_exit
|
||||
JP KERNEL_PANIC
|
||||
;
|
||||
.errorCycle: DB 0
|
||||
.NOT_READY: DZ "Boot drive error..."
|
||||
.NOT_READY.size EQU $-.NOT_READY
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
@ -547,6 +547,10 @@ LOADDIR: ;!TODO optimize
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;!TODO FAT procedures
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
LOAD_SAVE_DIR_PREPARE:
|
||||
;!TODO optimize
|
||||
XOR A ; FILE MANIPULATOR = 0
|
||||
@ -571,7 +575,56 @@ LOAD_SAVE_DIR_PREPARE:
|
||||
EX AF,AF'
|
||||
RET
|
||||
|
||||
;!TODO FAT procedures
|
||||
;----------------------------------------------------------------------;
|
||||
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª (ª â «®£ ) de ix iy
|
||||
; ¨ á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||
; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£
|
||||
WRT_HND: SET_PAGE_X DIRPAGE
|
||||
EX AF,AF'
|
||||
LD HL,DIRPAGE.buffer
|
||||
;!TEST 9/11/23 record index
|
||||
; EXX
|
||||
; LD DE,0
|
||||
; EXX
|
||||
;
|
||||
LD BC,FAT_DIRECTORY_RECORD
|
||||
.loop: ;LD A,(IX+00)
|
||||
LD A,(HL)
|
||||
OR A
|
||||
JR Z,.WRT_HN2
|
||||
CP #E5
|
||||
JR Z,.WRT_HN2
|
||||
;ADD IX,BC
|
||||
ADD HL,BC
|
||||
JR NC,.loop ;!FIXIT ª®«¨ç¥á⢮ § ¯¨á¥© ª â «®£ = áâà ¨æ
|
||||
;
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
LD A,DSS_Error.sys.ROOT_OVERFLOW
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
.WRT_HN2: ;LD D,XH
|
||||
;LD E,XL
|
||||
EX DE,HL
|
||||
LD HL,HANDBUF
|
||||
LD BC,HANDBUF.SIZE
|
||||
LDIR
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
LD HL,DIRPAGE.buffer
|
||||
LD BC,(SAVEDIR.DIRSIZE)
|
||||
DEC BC
|
||||
ADD HL,BC
|
||||
AND A
|
||||
SBC HL,DE
|
||||
JR NC,SAVEDIR
|
||||
LD HL,(SAVEDIR.DIRSIZE)
|
||||
LD BC,(CORE_BUFFERS.FatBuffer.BytesPerCluster)
|
||||
ADD HL,BC
|
||||
LD (SAVEDIR.DIRSIZE),HL
|
||||
AND A
|
||||
;JP SAVEDIR
|
||||
;----------------------------------------------------------------------;
|
||||
; ‘¡à®á¨âì ª¥è ª â «®£ ¤¨áª.
|
||||
; ¢å®¤: iy=áâàãªâãà ¤¥áªà¨¯â®à
|
||||
@ -619,62 +672,6 @@ SAVEDIR: ;!TODO optimize
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª (ª â «®£ ) de ix iy
|
||||
; ¨ á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||
; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£
|
||||
WRT_HND: SET_PAGE_X DIRPAGE
|
||||
EX AF,AF'
|
||||
;
|
||||
;LD IX,DIRPAGE.buffer
|
||||
LD HL,DIRPAGE.buffer
|
||||
;!TEST 9/11/23 record index
|
||||
; EXX
|
||||
; LD DE,0
|
||||
; EXX
|
||||
;
|
||||
LD BC,FAT_DIRECTORY_RECORD
|
||||
.loop: ;LD A,(IX+00)
|
||||
LD A,(HL)
|
||||
OR A
|
||||
JR Z,.WRT_HN2
|
||||
CP #E5
|
||||
JR Z,.WRT_HN2
|
||||
;ADD IX,BC
|
||||
ADD HL,BC
|
||||
JR NC,.loop ;!FIXIT ª®«¨ç¥á⢮ § ¯¨á¥© ª â «®£ = áâà ¨æ
|
||||
;
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
LD A,DSS_Error.sys.ROOT_OVERFLOW
|
||||
SCF
|
||||
RET
|
||||
.WRT_HN2:
|
||||
;LD D,XH
|
||||
;LD E,XL
|
||||
EX DE,HL
|
||||
LD HL,HANDBUF
|
||||
LD BC,HANDBUF.SIZE
|
||||
LDIR
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
LD HL,DIRPAGE.buffer
|
||||
LD BC,(SAVEDIR.DIRSIZE)
|
||||
DEC BC
|
||||
ADD HL,BC
|
||||
AND A
|
||||
SBC HL,DE
|
||||
JP NC,SAVEDIR
|
||||
LD HL,(SAVEDIR.DIRSIZE)
|
||||
LD BC,(CORE_BUFFERS.FatBuffer.BytesPerCluster)
|
||||
ADD HL,BC
|
||||
LD (SAVEDIR.DIRSIZE),HL
|
||||
AND A
|
||||
JP SAVEDIR
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
; [x] fat32 ;!TEST
|
||||
RD_BPB: ; LD C,SLOT3
|
||||
@ -811,6 +808,10 @@ RD_BPB: ; LD C,SLOT3
|
||||
JP NC,.loop3
|
||||
.loop3.end: ;
|
||||
LD (CORE_BUFFERS.FatBuffer.BytesPerCluster),HL
|
||||
;LD DE,#8001 ; ¯à®¢¥àª à §¬¥à ª« áâ¥à ¡®«ìè¥ 32 ª¡ - ¥ ¯®¤¤¥à¦¨¢ ¥âáï ; !TODO
|
||||
;AND A
|
||||
;SBC HL,DE
|
||||
;JP NC,DOS_X_Error.UnknownBPB ; [ ] fixed bug, thanks to @Romychs (Roman Boykov)
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
;!TODO ¥ ¨á¯®«ì§ã¥âáï § ç¥¨ï ¢ëç¨á«ï¥¬ë¥ ¨ á®åà ï¥¬ë¥ ¢ FatBuffer
|
||||
; EX DE,HL
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
; MOUSE
|
||||
DEFINE MOUSE_COM_BAUD 0 ; 1 - 2485, 2 - 4807, else - 1215 (default)
|
||||
DEFINE MOUSE_INT_ENABLED 0 ; INT from SIO ch. B
|
||||
;DEFINE MOUSE_READ_PORT_TIMEOUT 3072 ; Š®áâë«ìë© â ©¬- ãâ ®¦¨¤ ¨¥ ¡ ©â ®â ¬ë誨. <EFBFBD>à®áâ® ¥áâì ªà¨¢ë¥ ¯¥à¥å®¤¨ª¨
|
||||
DEFINE MOUSE_READ_PORT_TIMEOUT 16*1024 ; Š®áâë«ìë© â ©¬- ãâ ®¦¨¤ ¨¥ ¡ ©â ®â ¬ë誨.
|
||||
|
||||
; KEYBOARD
|
||||
DEFINE KEYBOARD_INT_ENABLED 0 ; INT from SIO ch. A
|
||||
|
||||
@ -7,6 +7,32 @@
|
||||
PORT_MOUSE.Ctrl EQU Z84.SIO.Ch_B.Ctrl
|
||||
PORT_MOUSE.Data EQU Z84.SIO.Ch_B.Data
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
MACRO READ_MOUSE_PACKET
|
||||
IF MOUSE_INT_ENABLED
|
||||
IN A,(PORT_MOUSE.Ctrl)
|
||||
RRCA
|
||||
RET NC
|
||||
ELSE
|
||||
;[x] mouse freeeeezzzz
|
||||
;LD BC,MOUSE_READ_PORT_TIMEOUT
|
||||
;
|
||||
.READ_BYTE: IN A,(PORT_MOUSE.Ctrl)
|
||||
RRCA
|
||||
;[x] mouse freeeeezzzz
|
||||
;JR C,.NEXT
|
||||
;DEC BC
|
||||
;LD A,B
|
||||
;OR C
|
||||
;JR NZ,.READ_BYTE
|
||||
;RET
|
||||
JR NC,.READ_BYTE
|
||||
.NEXT: ;
|
||||
ENDIF
|
||||
ENDM
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
; MOUSE SOFTWARE SPECIFICATION
|
||||
;---------------------------------------------
|
||||
; COMMAND 00h (INITIALIZATION)
|
||||
@ -633,146 +659,179 @@ MOUSE: LD A,(MODE_M)
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
CLEAR_MOUSE_BUFFER:
|
||||
IN A,(Z84.SIO.Ch_B.Data)
|
||||
IN A,(Z84.SIO.Ch_B.Ctrl)
|
||||
RRCA
|
||||
JR C,CLEAR_MOUSE_BUFFER
|
||||
SCF
|
||||
RET
|
||||
IN A,(Z84.SIO.Ch_B.Data)
|
||||
IN A,(Z84.SIO.Ch_B.Ctrl)
|
||||
RRCA
|
||||
IF MOUSE_INT_ENABLED
|
||||
JR C,CLEAR_MOUSE_BUFFER
|
||||
;
|
||||
XOR A
|
||||
LD (READ_M.Step),A
|
||||
RET
|
||||
ELSE
|
||||
;RET NC
|
||||
;JR CLEAR_MOUSE_BUFFER
|
||||
JR C,CLEAR_MOUSE_BUFFER
|
||||
SCF
|
||||
RET
|
||||
ENDIF
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
READ_M: ;[ ] 18/02/2024 ¯à®¢¥àª ¯¥à¥¯®«¥¨¥ ¡ãä¥à
|
||||
; reg 1
|
||||
LD A,1
|
||||
OUT (PORT_MOUSE.Ctrl),A
|
||||
IN A,(PORT_MOUSE.Ctrl)
|
||||
AND %0010'0000 ; check receiver overrun error
|
||||
; JP NZ,.Receiver_Overrun
|
||||
JR Z,.READ_FIRST_BYTE
|
||||
; reg 0 - error reset
|
||||
LD A,%0011'0000
|
||||
OUT (Z84.SIO.Ch_B.Ctrl),A
|
||||
JP CLEAR_MOUSE_BUFFER
|
||||
READ_M: ;[ ] 18/02/2024 ¯à®¢¥àª ¯¥à¥¯®«¥¨¥ ¡ãä¥à
|
||||
; reg 1
|
||||
LD A,1
|
||||
OUT (PORT_MOUSE.Ctrl),A
|
||||
IN A,(PORT_MOUSE.Ctrl)
|
||||
AND %0010'0000 ; check receiver overrun error
|
||||
IF MOUSE_INT_ENABLED
|
||||
JR Z,.Prepare
|
||||
ELSE
|
||||
JR Z,.READ_FIRST_BYTE
|
||||
ENDIF
|
||||
; reg 0 - error reset
|
||||
LD A,%0011'0000
|
||||
OUT (Z84.SIO.Ch_B.Ctrl),A
|
||||
; reg 0 - return from int
|
||||
;LD A,%0011'1000
|
||||
;OUT (Z84.SIO.Ch_B.Ctrl),A
|
||||
;
|
||||
JR CLEAR_MOUSE_BUFFER
|
||||
;
|
||||
IF MOUSE_INT_ENABLED
|
||||
.Prepare: LD HL,.Step
|
||||
LD A,(HL)
|
||||
OR A
|
||||
JR Z,.READ_FIRST_BYTE
|
||||
DEC A
|
||||
JR Z,.READ_SECOND_BYTE
|
||||
DEC A
|
||||
JR Z,.READ_THIRD_BYTE
|
||||
XOR A
|
||||
LD (HL),A
|
||||
ENDIF
|
||||
.READ_FIRST_BYTE:
|
||||
IN A,(PORT_MOUSE.Ctrl)
|
||||
RRCA
|
||||
RET NC
|
||||
; AND 1
|
||||
; RET Z
|
||||
|
||||
IN A,(PORT_MOUSE.Data)
|
||||
LD L,A
|
||||
AND %0100'0000
|
||||
;BIT 6,A
|
||||
;CCF
|
||||
RET Z
|
||||
|
||||
;[x] mouse freeeeezzzz
|
||||
;LD BC,MOUSE_READ_PORT_TIMEOUT
|
||||
;
|
||||
.READ_SECOND_BYTE:
|
||||
IN A,(PORT_MOUSE.Ctrl)
|
||||
RRCA
|
||||
;[x] mouse freeeeezzzz
|
||||
;JR C,.NXT_1
|
||||
;DEC BC
|
||||
;LD A,B
|
||||
;OR C
|
||||
;JR NZ,.TST_01
|
||||
;RET
|
||||
JR NC,.READ_SECOND_BYTE
|
||||
;
|
||||
|
||||
;.NXT_1:
|
||||
IN A,(PORT_MOUSE.Data)
|
||||
LD E,A
|
||||
AND %0100'0000
|
||||
;CCF
|
||||
RET NZ
|
||||
|
||||
;[x] mouse freeeeezzzz
|
||||
;LD BC,MOUSE_READ_PORT_TIMEOUT
|
||||
;
|
||||
.READ_LAST_BYTE:
|
||||
IN A,(PORT_MOUSE.Ctrl)
|
||||
RRCA
|
||||
;[x] mouse freeeeezzzz
|
||||
;JR C,.NXT_2
|
||||
;DEC BC
|
||||
;LD A,B
|
||||
;OR C
|
||||
;JR NZ,.READ_LAST_BYTE
|
||||
;RET
|
||||
JR NC,.READ_LAST_BYTE
|
||||
;
|
||||
;.NXT_2:
|
||||
IN A,(PORT_MOUSE.Data)
|
||||
LD D,A
|
||||
;BIT 6,A
|
||||
AND %0100'0000
|
||||
;CCF
|
||||
RET NZ
|
||||
; ¢á¥ âਠ¡ ©â ¯ ª¥â ¯à®ç¨â ë
|
||||
;
|
||||
LD A,E
|
||||
AND #3F
|
||||
LD E,A
|
||||
LD A,L
|
||||
AND #03
|
||||
RRCA
|
||||
RRCA
|
||||
OR E
|
||||
LD E,A
|
||||
LD A,D
|
||||
AND #3F
|
||||
LD D,A
|
||||
LD A,L
|
||||
AND #0C
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
OR D
|
||||
LD D,A
|
||||
LD A,L
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
RES 6,A
|
||||
JR NC,.STBU
|
||||
SET 6,A
|
||||
.STBU: RLCA
|
||||
RLCA
|
||||
AND #03
|
||||
LD (MOUSE_BUTTONS),A
|
||||
CALL SENSE
|
||||
LD (MOUSE_COORDINATES),DE
|
||||
; LD A,E
|
||||
; LD (MX),A
|
||||
; LD A,D
|
||||
; LD (MY),A
|
||||
SCF
|
||||
RET
|
||||
;[ ] 14/03/2024 ¯à®¢¥àª ¯¥à¥¯®«¥¨¥ ¡ãä¥à
|
||||
/*
|
||||
.Receiver_Overrun:
|
||||
; empty the buffer
|
||||
IN A,(Z84.SIO.Ch_B.Data)
|
||||
IN A,(Z84.SIO.Ch_B.Ctrl)
|
||||
RRCA
|
||||
JR C,.Receiver_Overrun
|
||||
; reg 0 - error reset
|
||||
LD A,%0011'0000
|
||||
OUT (Z84.SIO.Ch_B.Ctrl),A
|
||||
;!TEST
|
||||
; reg 0 - return from int
|
||||
; LD A,%0011'1000
|
||||
; OUT (Z84.SIO.Ch_B.Ctrl),A
|
||||
;
|
||||
RET
|
||||
*/
|
||||
IN A,(PORT_MOUSE.Ctrl)
|
||||
RRCA
|
||||
RET NC
|
||||
IN A,(PORT_MOUSE.Data)
|
||||
IF MOUSE_INT_ENABLED
|
||||
LD (.Reg_L),A
|
||||
ELSE
|
||||
LD L,A
|
||||
ENDIF
|
||||
AND %0100'0000
|
||||
;RET Z
|
||||
JP Z,CLEAR_MOUSE_BUFFER
|
||||
;
|
||||
IF MOUSE_INT_ENABLED
|
||||
INC (HL)
|
||||
ENDIF
|
||||
;
|
||||
.READ_SECOND_BYTE:
|
||||
READ_MOUSE_PACKET
|
||||
;
|
||||
IN A,(PORT_MOUSE.Data)
|
||||
IF MOUSE_INT_ENABLED
|
||||
LD (.Reg_E),A
|
||||
AND %0100'0000
|
||||
JR Z,.nxt1
|
||||
LD (HL),0
|
||||
JR .READ_FIRST_BYTE
|
||||
.nxt1: ;
|
||||
INC (HL)
|
||||
ELSE
|
||||
LD E,A
|
||||
AND %0100'0000
|
||||
;!TEST
|
||||
RET NZ
|
||||
;JR Z,.READ_THIRD_BYTE
|
||||
;LD L,E
|
||||
;JR .READ_SECOND_BYTE
|
||||
ENDIF
|
||||
;
|
||||
.READ_THIRD_BYTE:
|
||||
READ_MOUSE_PACKET
|
||||
;
|
||||
IN A,(PORT_MOUSE.Data)
|
||||
IF MOUSE_INT_ENABLED
|
||||
LD (.Reg_D),A
|
||||
AND %0100'0000
|
||||
JR Z,.nxt2
|
||||
LD (HL),0
|
||||
JR .READ_FIRST_BYTE
|
||||
.nxt2: ;
|
||||
LD (HL),0
|
||||
LD DE,(.Reg_E)
|
||||
LD HL,(.Reg_L)
|
||||
ELSE
|
||||
LD D,A
|
||||
AND %0100'0000
|
||||
;!TEST
|
||||
RET NZ
|
||||
;JR Z,.packet_end
|
||||
;LD L,D
|
||||
;JR .READ_SECOND_BYTE
|
||||
.packet_end: ;
|
||||
ENDIF
|
||||
;
|
||||
; ¢á¥ âਠ¡ ©â ¯ ª¥â ¯à®ç¨â ë
|
||||
;
|
||||
LD A,E
|
||||
AND #3F
|
||||
LD E,A
|
||||
LD A,L
|
||||
AND #03
|
||||
RRCA
|
||||
RRCA
|
||||
OR E
|
||||
LD E,A
|
||||
|
||||
LD A,D
|
||||
AND #3F
|
||||
LD D,A
|
||||
LD A,L
|
||||
AND #0C
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
OR D
|
||||
LD D,A
|
||||
;
|
||||
; LD A,L
|
||||
; RLCA
|
||||
; RLCA
|
||||
; RLCA
|
||||
; RES 6,A
|
||||
; JR NC,.STBU
|
||||
; SET 6,A
|
||||
; .STBU: RLCA
|
||||
; RLCA
|
||||
; AND #03
|
||||
LD A,L
|
||||
AND #30
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
;
|
||||
LD (MOUSE_BUTTONS),A
|
||||
CALL SENSE
|
||||
LD (MOUSE_COORDINATES),DE
|
||||
; LD A,E
|
||||
; LD (MX),A
|
||||
; LD A,D
|
||||
; LD (MY),A
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
IF MOUSE_INT_ENABLED
|
||||
.Reg_L: DB 0
|
||||
.Reg_E: DB 0
|
||||
.Reg_D: DB 0
|
||||
.Step: DB 0
|
||||
ENDIF
|
||||
|
||||
MCORECT:
|
||||
LD HL,(PIX_X)
|
||||
|
||||
@ -21,7 +21,7 @@ cmd_chdir:
|
||||
dec hl
|
||||
.chdir: ld c,Dss.ChDir ; ᬥ¨âì ⥪. ª â «®£
|
||||
RST ToDSS
|
||||
jp c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||
jp Get_Path ; á®åà. ⥪. ¤¨áª ¨ ¯ãâì
|
||||
; ; ¢ë¢®¤ á¨áâ. ¯ã⨠íªà
|
||||
; ld c,8Eh ; ã§ âì ¯®«®¦. ªãàá®à
|
||||
|
||||
@ -304,16 +304,10 @@ Print_Header: ; %1
|
||||
ld bc,16+16+16-1-2
|
||||
ldir
|
||||
;
|
||||
ld hl,Buffers.work.free + 256 + 128 ; á¨áâ. ¯ãâì
|
||||
ld de,Buffers.bat_params.PRM3 + 2 ;+PRM4..5. 2 + 48 ¡ ©â®¢ ¡ãä¥à
|
||||
ld hl,Buffers.work.free + 256 + 128; á¨áâ. ¯ãâì
|
||||
ld de,Buffers.bat_params.PRM3 + 2 ;+PRM4..5. 2 + 48 ¡ ©â®¢ ¡ãä¥à
|
||||
call make_short_path
|
||||
;pop hl
|
||||
|
||||
; ld hl,Buffers.screen_path ; !FIXIT ¥á«¨ ¢¢¥á⨠"DIR gamez\*.*", â® ®â®¡à ¦ ¥¬ë© ¯ãâì ¢ § £®«®¢ª¥ ¡ã¤¥â ¥¢¥àë¬
|
||||
; ld de,PRM3 ;+PRM4 ; 32 ¡ ©â ¡ãä¥à
|
||||
; CALL copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||||
;
|
||||
ld de,MAIN_MSG.DIR_1 ; ¨¤¥ªá "Volume in drive %1..."
|
||||
ld de,MAIN_MSG.DIR_1 ; ¨¤¥ªá "Volume in drive %1..."
|
||||
JP ECHO_MESSAGE ; ¢ë¢¥á⨠áâபã
|
||||
;
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
406
|
||||
407
|
||||
Loading…
Reference in New Issue
Block a user