mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
43 lines
837 B
NASM
43 lines
837 B
NASM
; HL:IX - OFFSET POINTER
|
|
; A - FILE MANIPULATOR
|
|
MOVE_FP: CALL SET_FM
|
|
RET C
|
|
;
|
|
INC B
|
|
DJNZ .B_1
|
|
;from Start File
|
|
; B=0
|
|
.F_start: LD C,B
|
|
LD D,B
|
|
LD E,B
|
|
JP .DO
|
|
;
|
|
.B_1: DJNZ .B_2
|
|
;from Current Position
|
|
.F_current: LD C,(IY+_sFM.F_POSITION)
|
|
LD B,(IY+_sFM.F_POSITION+1)
|
|
LD E,(IY+_sFM.F_POSITION+2)
|
|
LD D,(IY+_sFM.F_POSITION+3)
|
|
.DO: ADD IX,BC
|
|
ADC HL,DE
|
|
LD D,XH
|
|
LD E,XL
|
|
LD (IY+_sFM.F_POSITION),E
|
|
LD (IY+_sFM.F_POSITION+1),D
|
|
LD (IY+_sFM.F_POSITION+2),L
|
|
LD (IY+_sFM.F_POSITION+3),H
|
|
XOR A
|
|
RET
|
|
;
|
|
.B_2: DJNZ .error
|
|
;from End File
|
|
.B_end: LD C,(IY + _sFM.FS_REC.F_SIZE)
|
|
LD B,(IY + _sFM.FS_REC.F_SIZE+1)
|
|
LD E,(IY + _sFM.FS_REC.F_SIZE+2)
|
|
LD D,(IY + _sFM.FS_REC.F_SIZE+3)
|
|
JP .DO
|
|
; B > 2
|
|
.error: LD A,DSS_Error.sys.INVALID_FUNCTION
|
|
SCF
|
|
RET
|