mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
...
This commit is contained in:
parent
2a6d817a9d
commit
c0f126a95c
@ -57,6 +57,9 @@
|
||||
include 'API/DosName.asm'
|
||||
include 'API/Read.asm'
|
||||
include 'API/Write.asm'
|
||||
include 'API/Environ.ASM'
|
||||
|
||||
|
||||
|
||||
|
||||
;R09
|
||||
|
||||
145
DSS/DOS_FM.ASM
145
DSS/DOS_FM.ASM
@ -6,7 +6,7 @@
|
||||
;---------------------------------------------------------------
|
||||
;Rev Date Name Description
|
||||
;---------------------------------------------------------------
|
||||
;R01 16-11-1999 DNS ERROR READING FAT CHAIN
|
||||
;
|
||||
;---------------------------------------------------------------
|
||||
|
||||
;FMS DB FMCOUNT
|
||||
@ -176,147 +176,4 @@ MOVE_CP:
|
||||
LD D,(IY+_sFM.F_POSITION+3)
|
||||
SBC HL,DE
|
||||
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 "EXECUTE.ASM"
|
||||
INCLUDE "ENVIRON.ASM"
|
||||
INCLUDE "INTMOUSE.ASM"
|
||||
INCLUDE "Procedures.asm"
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
;---------------------------------------------------------------
|
||||
;Rev Date Name Description
|
||||
;---------------------------------------------------------------
|
||||
;RY01 16-11-1999 DNS ERROR READING FAT CHAIN
|
||||
;RX01 10-02-1999 DNS UPGRADE FAT CASH
|
||||
;---------------------------------------------------------------
|
||||
|
||||
@ -624,13 +625,13 @@ BLOK_RD: PUSH BC
|
||||
;JR NZ,BLOKRD2
|
||||
PUSH BC
|
||||
JR Z,.ECL2
|
||||
;JP ECL2 ;R01 JR BLOKRD0
|
||||
;JP ECL2 ;RY01 JR BLOKRD0
|
||||
_GetSavedCluster .enter_loop1
|
||||
;
|
||||
.loop1: PUSH BC
|
||||
CALL R_F_FAT
|
||||
POP BC
|
||||
JR C,.ECL2 ;R01
|
||||
JR C,.ECL2 ;RY01
|
||||
EX DE,HL
|
||||
DEC BC
|
||||
.enter_loop1:
|
||||
@ -698,7 +699,7 @@ BLOK_RD: PUSH BC
|
||||
PUSH BC
|
||||
CALL R_F_FAT
|
||||
POP BC
|
||||
JR C,.ECL1 ;R01?
|
||||
JR C,.ECL1 ;RY01
|
||||
EX DE,HL
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
|
||||
@ -188,4 +188,150 @@ HEX2BCD:
|
||||
OR B
|
||||
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