mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
...
This commit is contained in:
parent
2a6d817a9d
commit
c0f126a95c
@ -57,6 +57,9 @@
|
|||||||
include 'API/DosName.asm'
|
include 'API/DosName.asm'
|
||||||
include 'API/Read.asm'
|
include 'API/Read.asm'
|
||||||
include 'API/Write.asm'
|
include 'API/Write.asm'
|
||||||
|
include 'API/Environ.ASM'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;R09
|
;R09
|
||||||
|
|||||||
145
DSS/DOS_FM.ASM
145
DSS/DOS_FM.ASM
@ -6,7 +6,7 @@
|
|||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
;Rev Date Name Description
|
;Rev Date Name Description
|
||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
;R01 16-11-1999 DNS ERROR READING FAT CHAIN
|
;
|
||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
|
|
||||||
;FMS DB FMCOUNT
|
;FMS DB FMCOUNT
|
||||||
@ -176,147 +176,4 @@ MOVE_CP:
|
|||||||
LD D,(IY+_sFM.F_POSITION+3)
|
LD D,(IY+_sFM.F_POSITION+3)
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
; HL:DE / C => DE:IX HL-OSTATOK (DE:BC.HL). ‹¥£ª® ¯¥à¥¤¥« âì ¯®¤ HL:DE / A => HL:DE.A
|
|
||||||
DIV_for_SPC:
|
|
||||||
LD A,C
|
|
||||||
DEC A
|
|
||||||
JR Z,.exit
|
|
||||||
;
|
|
||||||
AND E
|
|
||||||
LD B,A ; ®áâ ⮪
|
|
||||||
LD A,C
|
|
||||||
RRCA
|
|
||||||
;
|
|
||||||
.loop: SRL H : RR L
|
|
||||||
RR D : RR E
|
|
||||||
RRCA
|
|
||||||
JP NC,.loop
|
|
||||||
LD A,B
|
|
||||||
;
|
|
||||||
.exit: LD XH,D
|
|
||||||
LD XL,E
|
|
||||||
EX DE,HL
|
|
||||||
LD H,0
|
|
||||||
LD L,A
|
|
||||||
RET
|
|
||||||
; DIV32: LD A,#FF
|
|
||||||
; LD B,E
|
|
||||||
; .loop: SRL C
|
|
||||||
; JR C,.exitLoop
|
|
||||||
; SRL H : RR L : RR D : RR E : SLA A
|
|
||||||
; JP .loop
|
|
||||||
; .exitLoop:
|
|
||||||
; CPL
|
|
||||||
; AND B
|
|
||||||
; LD XH,D
|
|
||||||
; LD XL,E
|
|
||||||
; EX DE,HL
|
|
||||||
; LD H,0
|
|
||||||
; LD L,A
|
|
||||||
; RET
|
|
||||||
/*
|
|
||||||
DEFINE NEW_DIV 1
|
|
||||||
|
|
||||||
DIV32: LD XH,D
|
|
||||||
LD XL,E
|
|
||||||
|
|
||||||
IFN NEW_DIV
|
|
||||||
EX DE,HL
|
|
||||||
LD HL,0
|
|
||||||
LD A,#20
|
|
||||||
DIV001: ADD IX,IX
|
|
||||||
EX DE,HL
|
|
||||||
ADC HL,HL
|
|
||||||
EX DE,HL
|
|
||||||
ADC HL,HL
|
|
||||||
SBC HL,BC
|
|
||||||
JR NC,DIV002
|
|
||||||
ADD HL,BC
|
|
||||||
DEC A
|
|
||||||
JR NZ,DIV001
|
|
||||||
RET
|
|
||||||
DIV002: INC IX
|
|
||||||
DEC A
|
|
||||||
JR NZ,DIV001
|
|
||||||
RET
|
|
||||||
ELSE
|
|
||||||
|
|
||||||
|
|
||||||
div32_16:
|
|
||||||
;HLIX/BC -> HLIX remainder DE
|
|
||||||
;174+4*div32_16_sub8
|
|
||||||
;min: 2186cc
|
|
||||||
;max: 2794cc
|
|
||||||
;avg: 2466cc
|
|
||||||
;61 bytes
|
|
||||||
ex de,hl ; 4
|
|
||||||
|
|
||||||
; Negate BC to allow add instead of sbc
|
|
||||||
xor a ; 4
|
|
||||||
; Need to set HL to 0 anyways, so save 2cc and a byte
|
|
||||||
ld h,a ; 4
|
|
||||||
ld l,a ; 4
|
|
||||||
sub c ; 4
|
|
||||||
ld c,a ; 4
|
|
||||||
sbc a,a ; 4
|
|
||||||
sub b ; 4
|
|
||||||
ld b,a ; 4
|
|
||||||
|
|
||||||
|
|
||||||
ld a,d ; 4
|
|
||||||
call div32_16_sub8 ; 17
|
|
||||||
rla ; 4
|
|
||||||
ld d,a ; 4
|
|
||||||
|
|
||||||
ld a,e ; 4
|
|
||||||
call div32_16_sub8 ; 17
|
|
||||||
rla ; 4
|
|
||||||
ld e,a ; 4
|
|
||||||
|
|
||||||
ld a,ixh ; 8
|
|
||||||
call div32_16_sub8 ; 17
|
|
||||||
rla ; 4
|
|
||||||
ld ixh,a ; 8
|
|
||||||
|
|
||||||
ld a,ixl ; 8
|
|
||||||
call div32_16_sub8 ; 17
|
|
||||||
rla ; 4
|
|
||||||
ld ixl,a ; 8
|
|
||||||
|
|
||||||
;ex de,hl ; 4
|
|
||||||
ret ; 10
|
|
||||||
|
|
||||||
div32_16_sub8:
|
|
||||||
;119+8*div32_16_sub
|
|
||||||
;min: 503cc
|
|
||||||
;max: 655cc
|
|
||||||
;avg: 573cc
|
|
||||||
call 1F
|
|
||||||
1:
|
|
||||||
;17+2(17+2(div32_16_sub)))
|
|
||||||
call 1F
|
|
||||||
1:
|
|
||||||
;17+2(div32_16_sub)
|
|
||||||
call div32_16_sub
|
|
||||||
div32_16_sub:
|
|
||||||
;48+{8,0+{0,19}}
|
|
||||||
;min: 48cc
|
|
||||||
;max: 67cc
|
|
||||||
;avg: 56.75cc
|
|
||||||
rla ; 4
|
|
||||||
adc hl,hl ; 15
|
|
||||||
jr c,1F ;12/7
|
|
||||||
add hl,bc ; 11
|
|
||||||
ret c ;11/5
|
|
||||||
sbc hl,bc ; 15
|
|
||||||
ret ; 10
|
|
||||||
1:
|
|
||||||
add hl,bc ; 11
|
|
||||||
scf ; 4
|
|
||||||
ret ; 10
|
|
||||||
|
|
||||||
ENDIF
|
|
||||||
*/
|
|
||||||
;
|
;
|
||||||
@ -443,7 +443,6 @@ ADRST10: ;DS 512 ;,0
|
|||||||
INCLUDE "DOS_FM.ASM"
|
INCLUDE "DOS_FM.ASM"
|
||||||
|
|
||||||
INCLUDE "EXECUTE.ASM"
|
INCLUDE "EXECUTE.ASM"
|
||||||
INCLUDE "ENVIRON.ASM"
|
|
||||||
INCLUDE "INTMOUSE.ASM"
|
INCLUDE "INTMOUSE.ASM"
|
||||||
INCLUDE "Procedures.asm"
|
INCLUDE "Procedures.asm"
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
;Rev Date Name Description
|
;Rev Date Name Description
|
||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
|
;RY01 16-11-1999 DNS ERROR READING FAT CHAIN
|
||||||
;RX01 10-02-1999 DNS UPGRADE FAT CASH
|
;RX01 10-02-1999 DNS UPGRADE FAT CASH
|
||||||
;---------------------------------------------------------------
|
;---------------------------------------------------------------
|
||||||
|
|
||||||
@ -624,13 +625,13 @@ BLOK_RD: PUSH BC
|
|||||||
;JR NZ,BLOKRD2
|
;JR NZ,BLOKRD2
|
||||||
PUSH BC
|
PUSH BC
|
||||||
JR Z,.ECL2
|
JR Z,.ECL2
|
||||||
;JP ECL2 ;R01 JR BLOKRD0
|
;JP ECL2 ;RY01 JR BLOKRD0
|
||||||
_GetSavedCluster .enter_loop1
|
_GetSavedCluster .enter_loop1
|
||||||
;
|
;
|
||||||
.loop1: PUSH BC
|
.loop1: PUSH BC
|
||||||
CALL R_F_FAT
|
CALL R_F_FAT
|
||||||
POP BC
|
POP BC
|
||||||
JR C,.ECL2 ;R01
|
JR C,.ECL2 ;RY01
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
DEC BC
|
DEC BC
|
||||||
.enter_loop1:
|
.enter_loop1:
|
||||||
@ -698,7 +699,7 @@ BLOK_RD: PUSH BC
|
|||||||
PUSH BC
|
PUSH BC
|
||||||
CALL R_F_FAT
|
CALL R_F_FAT
|
||||||
POP BC
|
POP BC
|
||||||
JR C,.ECL1 ;R01?
|
JR C,.ECL1 ;RY01
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
PUSH HL
|
PUSH HL
|
||||||
PUSH BC
|
PUSH BC
|
||||||
|
|||||||
@ -189,3 +189,149 @@ HEX2BCD:
|
|||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
|
||||||
|
; HL:DE / C => DE:IX HL-OSTATOK (DE:BC.HL). ‹¥£ª® ¯¥à¥¤¥« âì ¯®¤ HL:DE / A => HL:DE.A
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
DIV_for_SPC:
|
||||||
|
LD A,C
|
||||||
|
DEC A
|
||||||
|
JR Z,.exit
|
||||||
|
;
|
||||||
|
AND E
|
||||||
|
LD B,A ; ®áâ ⮪
|
||||||
|
LD A,C
|
||||||
|
RRCA
|
||||||
|
;
|
||||||
|
.loop: SRL H : RR L
|
||||||
|
RR D : RR E
|
||||||
|
RRCA
|
||||||
|
JP NC,.loop
|
||||||
|
LD A,B
|
||||||
|
;
|
||||||
|
.exit: LD XH,D
|
||||||
|
LD XL,E
|
||||||
|
EX DE,HL
|
||||||
|
LD H,0
|
||||||
|
LD L,A
|
||||||
|
RET
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
; DIV32: LD A,#FF
|
||||||
|
; LD B,E
|
||||||
|
; .loop: SRL C
|
||||||
|
; JR C,.exitLoop
|
||||||
|
; SRL H : RR L : RR D : RR E : SLA A
|
||||||
|
; JP .loop
|
||||||
|
; .exitLoop:
|
||||||
|
; CPL
|
||||||
|
; AND B
|
||||||
|
; LD XH,D
|
||||||
|
; LD XL,E
|
||||||
|
; EX DE,HL
|
||||||
|
; LD H,0
|
||||||
|
; LD L,A
|
||||||
|
; RET
|
||||||
|
/*
|
||||||
|
DEFINE NEW_DIV 1
|
||||||
|
|
||||||
|
DIV32: LD XH,D
|
||||||
|
LD XL,E
|
||||||
|
|
||||||
|
IFN NEW_DIV
|
||||||
|
EX DE,HL
|
||||||
|
LD HL,0
|
||||||
|
LD A,#20
|
||||||
|
DIV001: ADD IX,IX
|
||||||
|
EX DE,HL
|
||||||
|
ADC HL,HL
|
||||||
|
EX DE,HL
|
||||||
|
ADC HL,HL
|
||||||
|
SBC HL,BC
|
||||||
|
JR NC,DIV002
|
||||||
|
ADD HL,BC
|
||||||
|
DEC A
|
||||||
|
JR NZ,DIV001
|
||||||
|
RET
|
||||||
|
DIV002: INC IX
|
||||||
|
DEC A
|
||||||
|
JR NZ,DIV001
|
||||||
|
RET
|
||||||
|
ELSE
|
||||||
|
|
||||||
|
|
||||||
|
div32_16:
|
||||||
|
;HLIX/BC -> HLIX remainder DE
|
||||||
|
;174+4*div32_16_sub8
|
||||||
|
;min: 2186cc
|
||||||
|
;max: 2794cc
|
||||||
|
;avg: 2466cc
|
||||||
|
;61 bytes
|
||||||
|
ex de,hl ; 4
|
||||||
|
|
||||||
|
; Negate BC to allow add instead of sbc
|
||||||
|
xor a ; 4
|
||||||
|
; Need to set HL to 0 anyways, so save 2cc and a byte
|
||||||
|
ld h,a ; 4
|
||||||
|
ld l,a ; 4
|
||||||
|
sub c ; 4
|
||||||
|
ld c,a ; 4
|
||||||
|
sbc a,a ; 4
|
||||||
|
sub b ; 4
|
||||||
|
ld b,a ; 4
|
||||||
|
|
||||||
|
|
||||||
|
ld a,d ; 4
|
||||||
|
call div32_16_sub8 ; 17
|
||||||
|
rla ; 4
|
||||||
|
ld d,a ; 4
|
||||||
|
|
||||||
|
ld a,e ; 4
|
||||||
|
call div32_16_sub8 ; 17
|
||||||
|
rla ; 4
|
||||||
|
ld e,a ; 4
|
||||||
|
|
||||||
|
ld a,ixh ; 8
|
||||||
|
call div32_16_sub8 ; 17
|
||||||
|
rla ; 4
|
||||||
|
ld ixh,a ; 8
|
||||||
|
|
||||||
|
ld a,ixl ; 8
|
||||||
|
call div32_16_sub8 ; 17
|
||||||
|
rla ; 4
|
||||||
|
ld ixl,a ; 8
|
||||||
|
|
||||||
|
;ex de,hl ; 4
|
||||||
|
ret ; 10
|
||||||
|
|
||||||
|
div32_16_sub8:
|
||||||
|
;119+8*div32_16_sub
|
||||||
|
;min: 503cc
|
||||||
|
;max: 655cc
|
||||||
|
;avg: 573cc
|
||||||
|
call 1F
|
||||||
|
1:
|
||||||
|
;17+2(17+2(div32_16_sub)))
|
||||||
|
call 1F
|
||||||
|
1:
|
||||||
|
;17+2(div32_16_sub)
|
||||||
|
call div32_16_sub
|
||||||
|
div32_16_sub:
|
||||||
|
;48+{8,0+{0,19}}
|
||||||
|
;min: 48cc
|
||||||
|
;max: 67cc
|
||||||
|
;avg: 56.75cc
|
||||||
|
rla ; 4
|
||||||
|
adc hl,hl ; 15
|
||||||
|
jr c,1F ;12/7
|
||||||
|
add hl,bc ; 11
|
||||||
|
ret c ;11/5
|
||||||
|
sbc hl,bc ; 15
|
||||||
|
ret ; 10
|
||||||
|
1:
|
||||||
|
add hl,bc ; 11
|
||||||
|
scf ; 4
|
||||||
|
ret ; 10
|
||||||
|
|
||||||
|
ENDIF
|
||||||
|
*/
|
||||||
|
;
|
||||||
@ -1 +1 @@
|
|||||||
805
|
806
|
||||||
Loading…
Reference in New Issue
Block a user