Subversion Repositories pentevo

Rev

Rev 666 | Rev 702 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LAST UPDATE: 21.11.2014 savelij
  3.  
  4. ;ИНФА ДЛЯ СОЗДАНИЯ 9 СЕКТОРА НОВОГО ДИСКА
  5. DSKINFO         DB 0                    ;+0XE1-НОМЕР ПЕРВОГО СВОБОДНОГО СЕКТОРА
  6.                 DB 1                    ;+0XE2-НОМЕР ПЕРВОГО СВОБОДНОГО ТРЕКА
  7.                 DB 0X16                 ;+0XE3-ТИП ДИСКЕТЫ
  8.                 DB 0                    ;+0XE4-КОЛИЧЕСТВО ФАЙЛОВ НА ДИСКЕТЕ
  9. SECFREE         DW 2544                 ;+0XE5-КОЛИЧЕСТВО СВОБОДНЫХ СЕКТОРОВ
  10.                 DB 0X10                 ;+0XE7-ИДЕНТИФИКАЦИОННЫЙ КОД TRDOS
  11.                 DW 0                    ;+0XE8-2 БАЙТА 0
  12.                 DUPL 9," "              ;+0XEA-9 БАЙТ 0X20
  13.                 DB 0                    ;+0XF3-1 БАЙТ 0
  14.                 DB 0                    ;+0XF4-КОЛИЧЕСТВО УДАЛЕННЫХ ФАЙЛОВ
  15.                 DB "RAMDISKO"           ;+0XF5-ИМЯ ДИСКЕТЫ
  16. DSK_END
  17.  
  18. DOS2RST8        EX (SP),HL                      ;HL
  19.                 PUSH AF                         ;AF
  20.                 PUSH BC                         ;BC
  21.                 LD A,R
  22.                 JP PE,DOS2RST8_01
  23.                 LD A,R
  24. DOS2RST8_01     DI
  25.                 PUSH AF                         ;RF
  26.                 PUSH HL                         ;ADR_RET
  27.                 PUSH DE                         ;DE
  28.                 IN A,(PEVO_CONF)
  29.                 LD L,A
  30.                 OR 1
  31.                 OUT (PEVO_CONF),A
  32.                 LD BC,RD_1WINA0
  33.                 IN A,(C)
  34.                 AND 0X3E
  35.                 LD BC,RD_1WINA0
  36.                 IN H,(C)
  37.                 RES 0,H
  38.                 LD B,HIGH (RD_DOS7FFD)
  39.                 IN E,(C)
  40.                 RES 4,E
  41.                 DEC B
  42.                 IN D,(C)
  43.                 LD BC,WIN_A0
  44.                 OUT (C),A
  45.                 LD B,HIGH (WIN_P0)
  46.                 XOR A
  47.                 JP ADR_SEL_ROM
  48.  
  49. EDOS2RST8       LD BC,DOS_NOEMUL
  50.                 LD A,(BC)
  51.                 AND 0X3E
  52.                 CP E
  53.                 JR Z,EDOS2RST02
  54.                 INC BC
  55. EDOS2RST02      LD A,(BC)
  56.                 LD BC,WIN_A0
  57.                 CALL WR_BYTE_RET
  58.                 LD A,L
  59.                 OUT (PEVO_CONF),A
  60.                 POP DE
  61.                 POP HL
  62.                 POP AF
  63.                 JP PO,EDOS2RST01
  64.                 EI
  65. EDOS2RST01      POP BC
  66.                 POP AF
  67.                 EX (SP),HL
  68.                 RET
  69.  
  70. ;ABCDEFGHIJKLMNOPQRSTUVWXYZ
  71. EXTEND_COM     
  72.                 DB 2,"CD"
  73.                 DW CD
  74.                 DB 7,"CLRCMOS"
  75.                 DW CLRCMOS
  76.                 DB 3,"DIR"
  77.                 DW DIR
  78.                 DB 5,"DRIVE"
  79.                 DW DRIVE
  80.                 DB 4,"HELP"
  81.                 DW HELP
  82.                 DB 5,"MOUNT"
  83.                 DW MOUNT
  84.                 DB 6,"UMOUNT"
  85.                 DW UMOUNT
  86.                 DB 3,"VER"
  87.                 DW PRT_VERS
  88.                 DB 4,"VIRT"
  89.                 DW SET_VIRT
  90.                 DB 0
  91.  
  92. END_EXT_COM     INC DE
  93.                 LD A,(DE)
  94.                 CP ":"
  95.                 DEC DE
  96.                 JP NZ,SINTAX_ERROR
  97.                 LD A,(DE)
  98.                 AND 0DFH
  99.                 SUB "A"
  100.                 JP C,SINTAX_ERROR
  101.                 CP 4
  102.                 JR NC,SELFATDRV
  103.                 LD (TRD_5CF6),A                 ; ДИСКОВОД ДЛЯ ВРЕМЕННОЙ ОПЕРАЦИИ
  104.                 LD (TRD_5D19),A                 ; ДИСКОВОД ПО УМОЛЧАНИЮ
  105.                 LD B,A
  106.                 LD A,(TRD_5D16)                 ; КОПИЯ СИСТЕМНОГО РЕГИСТРА (ПОРТ #FF)
  107.                 AND 7CH
  108.                 OR B
  109.                 LD (TRD_5D16),A                 ; КОПИЯ СИСТЕМНОГО РЕГИСТРА (ПОРТ #FF)
  110.                 RST30 _OUT_FF
  111.                 JP ERR_OK
  112.  
  113. SELFATDRV       SUB 4
  114.                 PUSH AF
  115.                 RST8D _COM_DEV,_DEVFIND
  116.                 RST8D _COM_DEV,_KOL_VOL
  117.                 POP AF
  118.                 CP E
  119.                 JP NC,SINTAX_ERROR
  120.                 RST8D _COM_DEV,_SET_VOL
  121.                 JP ERR_OK
  122.  
  123. COM_DOT         CALL EXIT_IF_SINTAX
  124.                 LD HL,EXTEND_COM
  125. NEXT_CMP_COM    LD A,1
  126.                 LD (TRD_5CEF),A
  127.                 LD DE,(TRD_5D11)
  128.                 INC DE
  129.                 LD A,(HL)
  130.                 INC HL
  131.                 AND A
  132.                 JP Z,END_EXT_COM
  133.                 LD B,A
  134. LOC_C34         LD A,(DE)
  135.                 AND 0DFH
  136.                 CP (HL)
  137.                 JR NZ,PROPUSK
  138.                 INC DE
  139.                 INC HL
  140.                 DJNZ LOC_C34
  141.                 LD A,(DE)
  142.                 CP 0DH
  143.                 JR Z,NO_PARAM
  144.                 CP " "
  145.                 JR Z,GET_PARAM
  146.                 JR LOC_C58
  147.  
  148. PROPUSK         INC HL
  149.                 DJNZ PROPUSK
  150. LOC_C58         INC HL
  151.                 INC HL
  152.                 JR NEXT_CMP_COM
  153.  
  154. GET_PARAM       INC DE
  155. NO_PARAM        LD A,(HL)
  156.                 INC HL
  157.                 LD H,(HL)
  158.                 LD L,A
  159.                 PUSH HL
  160.                 LD HL,END_COMAND
  161.                 EX (SP),HL
  162.                 JP (HL)
  163.  
  164. ;ВЫВОД ИМЕНИ ВИРТУАЛЬНОГО ДИСКА ЕСЛИ НЕ УКАЗАНО ИМЯ ДЛЯ ИЗМЕНЕНИЯ
  165. PRT_NUM_VIRT    LD HL,TXT4VIRTDRV
  166.                 LD B,ETXT4VIRTDRV-TXT4VIRTDRV-1
  167.                 CALL PRT_B_HL_
  168.                 LD A," "
  169.                 RST 0X10
  170.                 LD H,VIRT_REAL_DRIVE
  171.                 CALL READCMOS
  172.                 AND 3
  173.                 ADD A,"A"
  174.                 RST 0X10
  175.                 LD A,0X0D
  176.                 RST 0X10
  177.                 RET
  178.  
  179. ;УСТАНОВКА ВИРТУАЛЬНОГО ДИСКА
  180. SET_VIRT        LD A,(DE)
  181.                 CP 0X0D
  182.                 JR Z,PRT_NUM_VIRT
  183.                 LD C,A
  184.                 INC DE
  185.                 LD A,(DE)
  186.                 CP ":"
  187.                 JP NZ,SINTAX_ERROR
  188.                 LD A,C
  189.                 CALL NUMDSK2BYTE                ;ПОЛУЧИЛИ НОВЫЙ НОМЕР ДИСКОВОДА УКАЗАННЫЙ В КОМАНДНОЙ СТРОКЕ
  190.                 LD D,A                          ;СОХРАНИЛИ ВРЕМЕННО СДВИНУТЫЙ НОВЫЙ НОМЕР ВИРТУАЛЬНОГО ДИСКОВОДА
  191.                 IN A,(RW_PORT0)
  192.                 AND %11111100
  193.                 OR D
  194.                 OUT (RW_PORT0),A
  195.                 LD H,VIRT_REAL_DRIVE
  196.                 CALL READCMOS
  197.                 AND %11111100                   ;СБРОС СТАРОГО НОМЕРА ВИРТУАЛЬНОГО ДИСКОВОДА
  198.                 OR D                            ;ДОБАВИЛИ НОВЫЙ НОМЕР ВИРТУАЛЬНОГО ДИСКОВОДА
  199.                 LD L,A
  200.                 RST8D _CMOS_RW,_WRITE_CMOS
  201.                 RET
  202.  
  203. ;ПЕЧАТЬ ВЕРСИИ ДОСА И ДАТЫ КОМПИЛЯЦИИ
  204. PRT_VERS        LD HL,0X3FF8
  205.                 LD B,6
  206.                 CALL PRT_B_HL_
  207.                 LD A," "
  208.                 RST 0X10
  209.                 LD C,(HL)
  210.                 INC HL
  211.                 LD B,(HL)
  212.                 PUSH BC
  213.                 LD HL,ZASTAVKA_VER
  214.                 LD B,9
  215.                 CALL PRT_B_HL_
  216.                 LD A," "
  217.                 RST 0X10
  218.                 POP BC
  219.                 LD A,C
  220.                 AND 0X1F                        ;НУЖНЫ 5 БИТ-ЧИСЛО МЕСЯЦА
  221.                 CALL A2TXT                      ;КОНВЕРСИЯ И УКЛАДКА ДАТЫ
  222.                 SRL B
  223.                 RR C                            ;СДВИНУЛИ ДЛЯ ЦЕЛОСТНОСТИ НОМЕРА МЕСЯЦА
  224.                 LD A,"."
  225.                 RST 0X10
  226.                 LD A,C                          ;ВЗЯЛИ БИТЫ МЕСЯЦА
  227.                 RRCA
  228.                 RRCA
  229.                 RRCA
  230.                 RRCA                            ;СДВИНУЛИ В МЛАДШИЕ БИТЫ
  231.                 AND 0X0F                        ;НАМ НУЖНЫ ТОЛЬКО 4 БИТА МЕСЯЦА
  232.                 CALL A2TXT                      ;КОНВЕРСИЯ И УКЛАДКА МЕСЯЦА
  233.                 LD A,"."
  234.                 RST 0X10
  235.                 LD A,B                          ;ВЗЯЛИ НОМЕР ГОДА
  236.                 AND 0X3F                        ;НУЖНЫ ТОЛЬКО 6 БИТ
  237.                 CALL A2TXT                      ;КОНВЕРСИЯ И УКЛАДКА ГОДА
  238.                 BIT 6,B                         ;ЕСЛИ БИТ 6 (СДВИНУТЫЙ БИТ 7) УСТАНОВЛЕН
  239.                 RET Z
  240.                 LD HL,TXT_BETA
  241.                 RST 0X18
  242.                 LD A,0X0D
  243.                 RST 0X10
  244.                 RET
  245.  
  246. ;ПЕЧАТЬ B=КОЛИЧЕСТВО СИМВОЛОВ ИЗ HL=АДРЕС ТЕКСТА ДЛЯ ВЫВОДА
  247. PRT_B_HL_       LD A,(HL)
  248.                 INC HL
  249.                 RST 0X10
  250.                 DJNZ PRT_B_HL_
  251.                 RET
  252.  
  253. TXT_BETA        DC " beta"
  254.  
  255. ;ПЕРЕВОД "A" В ДЕСЯТИЧКУ И В ТЕКСТ
  256. A2TXT           LD L,A
  257.                 LD H,0
  258.                 LD DE,10
  259.                 XOR A
  260.                 DEC A
  261.                 INC A
  262.                 SBC HL,DE
  263.                 JR NC,$-3
  264.                 ADD HL,DE
  265.                 ADD A,"0"
  266.                 RST 0X10
  267.                 LD A,L
  268.                 ADD A,"0"
  269.                 RST 0X10
  270.                 RET
  271.  
  272. DRIVES          DC "Drives: "
  273. EDRIVES
  274.  
  275. DRIVE           RST8D _COM_DEV,_DEVFIND
  276.                 JP C,FAT_NOT_FOUND
  277.                 RST8D _COM_DEV,_KOL_VOL
  278.                 LD A,"D"
  279.                 ADD A,E
  280.                 PUSH AF
  281.                 LD HL,DRIVES
  282.                 RST 0X18
  283.                 LD A,"E"
  284.                 RST 0X10
  285.                 LD A,"-"
  286.                 RST 0X10
  287.                 POP AF
  288.                 RST 0X10
  289.                 RET
  290.  
  291. TXT_DIR         DC "<DIR> "
  292. TXT_FATERR      DC "FAT not found"
  293.  
  294. DIR             LD B,0
  295.                 LD A,(DE)
  296.                 INC DE
  297.                 CP "/"
  298.                 JR NZ,DIR06
  299.                 LD A,(DE)
  300.                 AND 0XDF
  301.                 CP "L"
  302.                 JR NZ,DIR06
  303.                 LD B,A
  304. DIR06           RST8D _COM_DEV,_DEVFIND
  305.                 JR NC,DIR061
  306. FAT_NOT_FOUND   CALL OPEN_CHAN_0
  307.                 LD HL,TXT_FATERR                ;НИ ОДНОГО РАЗДЕЛА НЕ НАЙДЕНО
  308.                 RST 0X18
  309.                 RET
  310.  
  311. DIR061          PUSH IX
  312.                 LD IXL,B
  313.                 CALL CLEAR_SCREEN
  314.                 CALL OPEN_CHAN_2
  315.                 LD A,2
  316.                 RST8D _COM_FAT,_POS_FILES
  317. DIR05           LD E,0X17
  318. DIR01           PUSH DE
  319.                 PUSH BC
  320.                 LD HL,TRD_5D25
  321.                 RST8D _COM_FAT,_READ_DIR
  322.                 LD DE,0X0B
  323.                 ADD HL,DE
  324.                 LD A,(HL)
  325.                 SBC HL,DE
  326.                 AND 0X10
  327.                 JR Z,DIR04
  328.                 PUSH HL
  329.                 LD HL,TXT_DIR
  330.                 RST 0X18
  331.                 POP HL
  332. DIR04           LD A,IXL
  333.                 AND A
  334.                 JR Z,DIR08
  335.                 PUSH HL
  336.                 RST8D _COM_FAT,_GET_LONGNAME
  337.                 POP HL
  338. DIR03           LD A,(HL)
  339.                 AND A
  340.                 JR Z,DIR02
  341.                 INC HL
  342.                 RST 0X10
  343.                 JR DIR03
  344.  
  345. DIR08           LD B,8
  346. DIR081          LD A,(HL)
  347.                 CP " "
  348.                 JR Z,DIR082
  349.                 RST 0X10
  350.                 INC HL
  351.                 DJNZ DIR081
  352. DIR082          LD A,B
  353.                 AND A
  354.                 JR Z,DIR085
  355. DIR086          LD A,(HL)
  356.                 CP " "
  357.                 JR NZ,DIR085
  358.                 INC HL
  359.                 DJNZ DIR086
  360. DIR085          LD A,(HL)
  361.                 CP " "
  362.                 JR Z,DIR084
  363.                 LD A,"."
  364.                 RST 0X10
  365. DIR084          LD B,3
  366. DIR083          LD A,(HL)
  367.                 CP " "
  368.                 JR Z,DIR02
  369.                 RST 0X10
  370.                 INC HL
  371.                 DJNZ DIR083
  372. DIR02           LD A,0X0D
  373.                 RST 0X10
  374.                 LD A,4
  375.                 LD B,1
  376.                 RST8D _COM_FAT,_POS_FILES
  377.                 POP HL
  378.                 AND A
  379.                 SBC HL,BC
  380.                 POP DE
  381.                 JR Z,DIR07
  382.                 DEC E
  383.                 JR NZ,DIR01
  384.                 JR DIR05
  385.  
  386. DIR07           POP IX
  387.                 RET
  388.  
  389. CD              PUSH DE
  390.                 RST8D _COM_DEV,_DEVFIND
  391.                 POP HL
  392.                 RST8D _COM_FAT,_FIND_NAME
  393.                 JP C,SINTAX_ERROR
  394.                 RST8D _COM_FAT,_ENTER_DIR
  395.                 RET
  396.  
  397. NOMER_DRV       RST8D _COM_DEV,_DEVFIND
  398.                 CCF
  399.                 RET NC                          ;НИ ОДНОГО РАЗДЕЛА НЕ НАЙДЕНО
  400.                 RST8D _COM_DEV,_KOL_VOL
  401.                 CALL CREATE_BUF
  402.                 LD HL,TRD_5D25
  403.                 RST8D _COM_FAT,_GET_PATH
  404.                 CALL PRINT2ZERO
  405.                 CALL DEL_BUF
  406.                 SCF
  407.                 RET
  408.  
  409. MOUNT           PUSH DE
  410.                 RST8D _COM_DEV,_DEVFIND
  411.                 EX DE,HL
  412.                 POP HL
  413.                 JP C,FAT_NOT_FOUND
  414.                 PUSH HL
  415.                 RST8D _COM_FAT,_FIND_NAME
  416.                 JP C,SINTAX_ERROR
  417.                 POP DE
  418.                 LD B,0X0C
  419. MOUNT02         LD A,(DE)
  420.                 CP "!"
  421.                 JR C,MOUNT01
  422.                 INC DE
  423.                 DJNZ MOUNT02
  424. MOUNT01         LD A,(DE)
  425.                 CP 0X0D
  426.                 JP Z,SINTAX_ERROR
  427.                 CP " "
  428.                 JP NZ,SINTAX_ERROR
  429.                 INC DE
  430.                 LD A,(DE)
  431.                 CP "A"
  432.                 JP C,SINTAX_ERROR
  433.                 AND 0XDF
  434.                 CP "E"
  435.                 JP NC,SINTAX_ERROR
  436.                 SUB "A"
  437.                 LD C,A
  438.                 INC DE
  439.                 LD A,(DE)
  440.                 CP ":"
  441.                 JP NZ,SINTAX_ERROR
  442.                 LD A,C
  443.                 RST8D _MOUNTER,_OPEN_MOUNT
  444.                 RET
  445.  
  446. UMOUNT          LD A,(DE)
  447.                 INC DE
  448.                 AND 0XDF
  449.                 LD B,A
  450.                 LD A,(DE)
  451.                 INC DE
  452.                 CP ":"
  453.                 JP NZ,SINTAX_ERROR
  454.                 LD A,B
  455.                 CP "A"
  456.                 JP C,SINTAX_ERROR
  457.                 CP "E"
  458.                 JP NC,SINTAX_ERROR
  459.                 SUB "A"
  460.                 RST8D _MOUNTER,_CLOSEMOUNT
  461.                 RET
  462.  
  463. CLRCMOS         RST8D _CMOS_RW,_CLEAR_CMOS
  464.                 RET
  465.  
  466. HELP            CALL CLEAR_SCREEN
  467.                 CALL OPEN_CHAN_2
  468.                 LD HL,EXTEND_COM
  469. HELP4           LD C,3
  470. HELP2           LD A,(HL)
  471.                 AND A
  472.                 RET Z
  473.                 INC HL
  474.                 LD B,A
  475.                 PUSH BC
  476.                 LD A,"."
  477.                 RST 0X10
  478. HELP1           LD A,(HL)
  479.                 INC HL
  480.                 RST 0X10
  481.                 DJNZ HELP1
  482.                 INC HL
  483.                 INC HL
  484.                 POP BC
  485.                 LD A,9
  486.                 SUB B
  487.                 LD B,A
  488. HELP3           LD A," "
  489.                 RST 0X10
  490.                 DJNZ HELP3
  491.                 DEC C
  492.                 JR NZ,HELP2
  493.                 LD A,0X0D
  494.                 RST 0X10
  495.                 JR HELP4
  496.  
  497. READ_BYTE_HL    PUSH BC
  498.                 PUSH HL
  499.                 LD A,(NUM_ALT_PAGE)
  500.                 PUSH AF
  501.                 LD A,P_BAS48|0X80
  502.                 LD BC,WIN_A0
  503.                 CALL WR_BYTE_RET
  504.                 LD L,(HL)
  505.                 POP AF
  506.                 CALL WR_BYTE_RET
  507.                 LD A,L
  508.                 CP 0X0D
  509.                 POP HL
  510.                 POP BC
  511.                 RET
  512.  
  513. ;АЛЬТЕРНАТИВНОЕ КОПИРОВАНИЕ СЕКТОРА ДЛЯ РАМДИСКА
  514. SV_LD_RAMDISK   PUSH HL
  515.                 CALL CP_TYPEDRIVE
  516.                 POP HL
  517.                 JP NZ,WR_NUM_TRACK              ;ПРИ НЕ СОВПАДЕНИИ РАБОТА ПРОДОЛЖАЕТСЯ С РЕАЛЬНОЙ ДИСКЕТОЙ
  518.                 POP HL                          ;ИНАЧЕ РАБОТАЕМ С РАМДИСКОМ
  519.                 POP HL
  520.                 POP BC
  521.                 XOR A
  522.                 OR B
  523.                 RET Z
  524.                 DI
  525.                 PUSH IX                         ;СОХРАНИЛИ ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ
  526.                 LD IX,(TRD_5CCE)                ;ЧТЕНИЕ ИЛИ ЗАПИСЬ? 00-ЧТЕНИЕ, FF-ЗАПИСЬ, СОХРАНИЛИ ДЛЯ ДАЛЬНЕЙШЕГО ИСПОЛЬЗОВАНИЯ
  527. SVLDRAM1        PUSH BC
  528.                 PUSH HL
  529.                 LD DE,(TRD_5CF4)
  530.                 CALL COM_04
  531.                 LD A,E
  532.                 CALL COM_03
  533.                 INC A
  534.                 RST30 _OUT_5F
  535.                 LD A,D
  536.                 PUSH HL
  537.                 CALL COM_02
  538.                 POP HL
  539.                 RST30 _WR_RD_SECT
  540.                 LD A,0X10
  541.                 LD HL,TRD_5CF4
  542.                 INC (HL)                        ;УВЕЛИЧЕНИЕ НОМЕРА СЕКТОРА
  543.                 CP (HL)
  544.                 JR NZ,SVLDRAM2
  545.                 LD (HL),0                       ;ЕСЛИ ВЫХОД ЗА ПРЕДЕЛЫ ТРЕКА, ТО СЕКТОР =0
  546.                 INC HL
  547.                 INC (HL)                        ;И УВЕЛИЧИВАЕМ НОМЕР ТРЕКА
  548. SVLDRAM2        POP HL
  549.                 POP BC
  550.                 INC H                           ;УВЕЛИЧИЛИ АДРЕС КОПИРОВАНИЯ НА 256 БАЙТ
  551.                 DJNZ SVLDRAM1
  552.                 POP IX                          ;ПОПОЛЬЗОВАЛИСЬ И ВОССТАНОВИЛИ
  553.                 EI
  554.                 RET
  555.  
  556. WR_RD_SEC_M     PUSH IX
  557.                 LD (TEMP_SP),SP
  558.                 LD HL,(DOS_STEK)
  559.                 LD DE,SAVED_RAM
  560.                 LD BC,0X10
  561.                 LDIR
  562.                 LD SP,HL
  563.                 LD A,(PORT_3F)                  ;ВЗЯЛИ НОМЕР ТРЕКА
  564.                 ADD A,A                         ;СТОРОН 2
  565.                 LD D,A
  566.                 LD A,(WR_FF)
  567.                 AND 0X10                        ;ПРОВЕРКА КАКАЯ СТОРОНА ДИСКА
  568.                 JR NZ,WRRDSECM1
  569.                 INC D                           ;ДЛЯ СТОРОНЫ 1
  570. WRRDSECM1       LD A,(PORT_5F)                  ;ВЗЯЛИ НОМЕР СЕКТОРА
  571.                 LD E,A                          ;D-ТРЕК, E-СЕКТОР
  572.                 LD HL,(REG_L)                   ;HL=АДРЕС ЧТЕНИЯ/ЗАПИСИ
  573.                 LD A,(WR_FF)
  574.                 AND 3
  575.                 LD C,A                          ;НОМЕР ДИСКОВОДА
  576.                 LD A,IXL
  577.                 AND A                           ;BIT 7=0-ЧТЕНИЕ
  578.                 JR Z,WRRDSECM2
  579.                 LD A,0X80                       ;BIT 7=1-ЗАПИСЬ
  580. WRRDSECM2       OR C
  581.                 LD IXL,A                        ;A=НОМЕР ДИСКОВОДА+БИТ ЧТЕНИЯ/ЗАПИСИ
  582.                 LD A,(TEK_ROMPAGE)
  583.                 AND 0X3E
  584.                 LD IXH,A
  585.                 LD BC,WIN_A0
  586.                 OUT (C),A
  587.                 LD A,IXL
  588.                 RST8D _MOUNTER,_RDWR_MOUNT
  589.                 LD BC,WIN_A0
  590.                 LD A,IXH
  591.                 OUT (C),A
  592.                 LD B,HIGH (WIN_P0)
  593.                 LD A,PAGE_EVODOS
  594.                 OUT (C),A
  595.                 LD (REG_L),HL                   ;ОБНОВИЛИ АДРЕС ЧТЕНИЯ/ЗАПИСИ
  596.                 LD HL,SAVED_RAM
  597.                 LD DE,(DOS_STEK)
  598.                 LD BC,0X10
  599.                 LDIR
  600.                 LD SP,(TEMP_SP)
  601.                 POP IX
  602.                 RET
  603.