; LAST UPDATE: 01.11.2023 savelij
;===============ЧТЕНИЕ С SD NEOGS=========================
;ЧТЕНИЕ "A" СЕКТОРОВ
READ_NEOGS EX AF,AF'
LD A,_DEV_READ
CALL COMM2SD
EX AF,AF'
PUSH DE
PUSH BC
LD BC,GSDAT
SDRDSN1 EX AF,AF'
OUT (GSCOM),A
CALL WC_
LD DE,0x0200
SDRDSN2 CALL WN_
INI
DEC DE
LD A,D
OR E
JR NZ,SDRDSN2
EX AF,AF'
DEC A
JR NZ,SDRDSN1
CALL WN_
SDRDSN3 IN A,(C)
CP 0x77
JR NZ,SDRDSN3
POP BC
POP DE
XOR A
RET
;ПЕРЕДАТЧИК КОМАНД/ПАРАМЕТРОВ В ДРАЙВЕР НА NeoGS
COMM2SD OUT (GSDAT),A ;УШЛА КОМАНДА ДРАЙВЕРУ
LD A,0x1E
OUT (GSCOM),A ;УШЛА КОМАНДА ПРОШИВКЕ
CALL WC_
LD A,B
OUT (GSDAT),A ;УШЛИ БИТЫ 31-24 ПАРАМЕТРОВ
CALL WD_
LD A,C
OUT (GSDAT),A ;УШЛИ БИТЫ 23-16 ПАРАМЕТРОВ
CALL WD_
LD A,D
OUT (GSDAT),A ;УШЛИ БИТЫ 15-8 ПАРАМЕТРОВ
CALL WD_
LD A,E
OUT (GSDAT),A ;УШЛИ БИТЫ 7-0 ПАРАМЕТРОВ
CALL WD_
EX AF,AF'
OUT (GSDAT),A ;УШЛО КОЛ-ВО СЕКТОРОВ
EX AF,AF'
DUPL 9,0
RET
;ОЖИДАНИЕ КОГДА NeoGS БАЙТ ЗАБЕРЕТ
WD_ IN A,(GSCOM)
RLA
JR C,WD_
RET
;ОЖИДАНИЕ КОГДА NeoGS ДАСТ БАЙТ
WN_ IN A,(GSCOM)
RLA
JR NC,WN_
RET
;ОЖИДАНИЕ КОГДА NeoGS КОМАНДУ ЗАБЕРЕТ
WC_ IN A,(GSCOM)
RRA
JR C,WC_
RET
;===============ЧТЕНИЕ С SD NEOGS=========================