Subversion Repositories pentevo

Rev

Rev 507 | Rev 646 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. ;LAST UPDATE: 08.10.2012 savelij
  3.  
  4. ;GET_1F DI
  5. ;       LD IX,0X2FC1    ;OUT(1F),D0
  6. ;       CALL DOSIX
  7. ;       LD A,8
  8. ;       LD C,0X1F
  9. ;       LD IX,0X2A53    ;OUT(C),A
  10. ;       CALL DOSIX
  11. ;       LD B,0
  12. ;       LD A,0XFF
  13. ;       LD (0X5CD8),A
  14. ;       CALL READ_1F
  15. ;       PUSH AF
  16. ;       LD A,0XC9
  17. ;       LD (0X5CC2),A
  18. ;       XOR A
  19. ;       LD IX,0X1FF3    ;OUT(FF),A
  20. ;       CALL DOSIX
  21. ;       LD IX,0X1FEB    ;OUT(FF),(5D16)|3C
  22. ;       CALL DOSIX
  23. ;       LD IX,0X2FC1    ;OUT(1F),D0
  24. ;       CALL DOSIX
  25. ;       POP AF
  26. ;       EI
  27. ;       RET
  28.  
  29. ;READ_1F        LD (RD1F_SP+1),SP
  30. ;       LD A,0XC3
  31. ;       LD (0X5CC2),A
  32. ;       LD HL,RD1F_SP
  33. ;       LD (0X5CC3),HL
  34. ;       LD IX,0X2076
  35. ;       JP DOSIX
  36.  
  37. ;RD1F_SP        LD SP,0
  38. ;       XOR A
  39. ;       RET
  40.  
  41. ;G1FKNOW        LD A,(yIKNOW)
  42. ;       AND A
  43. ;       RET Z
  44. ;       PUSH IX
  45. ;       CALL GET_1F
  46. ;       POP IX
  47. ;       LD HL,OLD_1F
  48. ;       CP (HL)
  49. ;       RET Z
  50. ;       POP HL
  51. ;_IKNOW CALL GLUDIN
  52. ;       LD A,0XC3
  53. ;       LD (0X5CC2),A
  54. ;       LD HL,ONERR
  55. ;       LD (0X5CC3),HL
  56. ;       CALL S_FACE
  57. ;       LD IX,mIKNOW
  58. ;       CALL DRAWWIN
  59. ;       CALL NAMEROM
  60. ;       CALL PRINTTIME
  61. ;       LD C,0X3F
  62. ;       XOR A
  63. ;       LD IX,0X2A53
  64. ;       CALL DOSIX
  65. ;       LD A,0X5F
  66. ;       CALL DOSIX
  67. ;       LD C,0X1F
  68. ;       LD A,0X0C
  69. ;       CALL DOSIX
  70. ;       LD IX,0X3EF5
  71. ;       CALL DOSIX
  72. GLUBOOT         LD HL,FLAGS
  73.                 RES 3,(HL)                      ;ЗАПУСК С ДИСКЕТЫ
  74.                 LD HL,ADR_CAT
  75.                 LD DE,8
  76.                 LD BC,0X0105
  77.                 CALL TO_DOS4BAS                 ;ЗАГРУЗИЛИ 9 СЕКТОР
  78.                 LD A,(ADR_CAT+0XE7)
  79.                 CP 0X10                         ;ПРОВЕРКА НА ПРИЗНАК TR_DOS
  80.                 JP NZ,CMP_VIRTUAL;PRT_NONETRDOS         ;ОШИБКА, ДИСК НЕ TR-DOS
  81.                 LD HL,ADR_CAT
  82.                 LD DE,0
  83.                 LD BC,0X0905
  84.                 CALL TO_DOS4BAS                 ;ЗАГРУЗКА TR-DOS ДИРЫ
  85.                 LD A,(ADR_CAT+0X8E7)
  86.                 CP 0X10                         ;ПРОВЕРКА НА ПРИЗНАК TR_DOS
  87.                 JP NZ,_STUPID
  88. ;               CALL GET_1F                     ;ЧТЕНИЕ ПОРТА TR-DOS
  89. ;               LD (OLD_1F),A
  90.                 LD IX,ADR_CAT
  91.                 LD DE,0X10
  92.                 LD A,(ADR_CAT+0X8E4)
  93.                 AND A
  94.                 JP Z,NO_BAS
  95.                 LD B,A                          ;СКОЛЬКО ФАЙЛОВ НАДО ПРОСМОТРЕТЬ
  96.                 LD C,0                          ;ОБНУЛЕНИЕ СЧЕТЧИКА НАЙДЕННОГО
  97.                 EXX
  98.                 PUSH IX
  99.                 POP DE
  100.                 EXX
  101. FIND_BASIC      LD A,(IX+8)
  102.                 CP "B"                          ;ИЩЕМ ТОЛЬКО БАСИК ФАЙЛЫ
  103.                 JR NZ,FINDBAS1
  104.                 LD A,(IX+0)
  105.                 DEC A                           ;ПРОВЕРКА НА УДАЛЕННЫЙ ФАЙЛ
  106.                 JR Z,FINDBAS1
  107.                 EXX
  108.                 PUSH IX
  109.                 POP HL                          ;ОТКУДА ПЕРЕНОСИТЬ ОПИСАТЕЛЬ
  110.                 REPT 16
  111.                 LDI
  112.                 ENDM
  113.                 EXX
  114.                 INC C
  115. FINDBAS1        ADD IX,DE
  116.                 DJNZ FIND_BASIC
  117.                 LD IX,WIN_FILES                 ;ОКНО ДЛЯ ВЫВОДА БАСИК ФАЙЛОВ
  118. OUT_HOB         LD (IX+7),0
  119.                 LD (IX+8),C
  120.                 LD (IX+9),B                     ;ПОЛНОЕ КОЛИЧЕСТВО НАЙДЕННОГО
  121.                 LD (IX+0X0A),0
  122.                 LD (IX+0X0B),0                  ;ОБНУЛЯЕМ ПОЗИЦИЮ ФАЙЛОВ И КУРСОРА
  123. REOUT_HOB       LD A,B
  124.                 OR C                            ;ПРОВЕРКА КОЛИЧЕСТВА НАЙДЕННОГО
  125.                 JP Z,NO_BAS                     ;ЕСЛИ 0, ТО НЕТ БАСИКОВ
  126.                 RES 2,(IY+55)                   ;ПРЕДПОЛОЖИТЕЛЬНО ФАЙЛОВ МЕНЕЕ ВЫСОТЫ ОКНА
  127.                 LD A,B
  128.                 AND A
  129.                 LD A,C
  130.                 JR NZ,FINDBAS2
  131.                 CP H_FILE-1
  132.                 JR C,FINDBAS2
  133.                 SET 2,(IY+55)                   ;ФАЙЛОВ БОЛЬШЕ ВЫСОТЫ ОКНА
  134.                 LD A,H_FILE-2
  135. FINDBAS2        LD (KOL4OUT),A                  ;УСТАНОВКА КОЛИЧЕСТВА ОПИСАТЕЛЕЙ В ОКНО
  136.                 ADD A,2
  137.                 LD (IX+2),A                     ;УСТАНОВКА ВЫЧИСЛЕННОЙ ВЫСОТЫ ОКНА
  138.                 LD (IX+3),V_FILE                ;УСТАНОВКА ШИРИНЫ ОКНА
  139. FINDBAS6        LD HL,FLAGS
  140.                 BIT 3,(HL)
  141.                 JR Z,FINDBAS5                   ;ЕСЛИ РАБОТА С TR-DOS, ТО ПЕРЕХОДИМ НА ВЫВОД ОКНА
  142.                 INC (IX+3)
  143.                 LD A,(IX+2)                     ;ЕСЛИ РАБОТА С FAT, ТО ОКНО НАДА ВЫВОДИТЬ В ПОЛНЫЙ РОСТ
  144.                 PUSH AF                         ;СОХРАНИЛИ ВЫЧИСЛЕНУЮ ВЫСОТУ И ШИРИНУ ОКНА
  145.                 LD (IX+2),H_FILE
  146.                 CALL WINW                       ;ВЫВЕЛИ ОКНО В ПОЛНЫЙ РОСТ
  147.                 POP AF
  148.                 LD (IX+2),A
  149.                 JR FINDBAS7
  150.  
  151. FINDBAS5        CALL WINW                       ;ВЫВОДИМ ОКНО
  152. FINDBAS7
  153. ;               LD B,(IX+2)
  154. ;               DEC B
  155. ;               DEC B
  156. ;               LD C,"A"
  157. ;               LD DE,HOT_KEY
  158. ;FINDBAS5       PUSH BC
  159. ;               LD A,C
  160. ;               LD (DE),A
  161. ;               LD HL,HOT_KEYS
  162. ;               CALL NEXT
  163. ;               POP BC
  164. ;               INC C
  165. ;               DJNZ FINDBAS5
  166.                 CALL OUT_TEK_DIR                ;ВЫВОДИМ КУСОЧЕК ДИРЕКТОРИИ
  167. ;               BIT 2,(IY+55)
  168. ;               JP Z,_RULILKA
  169. ;               CALL RIGHT_SIDE                 ;ЕСЛИ НАЙДЕНО БОЛЬШЕ ВЫСОТЫ ОКНА -2, ТО РИСУЕМ БОКОВУШКУ
  170.                 JP _RULILKA
  171.  
  172. ;ВЫВОД ЧАСТИ ДИРЕКТОРИИ С УКАЗАННОЙ ПОЗИЦИИ
  173. OUT_TEK_DIR     LD L,(IX+0X0A)                  ;ВЫВОД ДИРЫ TR-DOS ДИСКА
  174.                 LD H,(IX+0X0B)                  ;ПОЛУЧИЛИ НОМЕР ТЕКУЩЕЙ ПОЗИЦИИ
  175.                 LD E,(IX+7)                     ;ПОЛУЧИЛИ ПОЗИЦИЮ КУРСОРА В ОКНЕ
  176.                 XOR A
  177.                 LD D,A
  178.                 SBC HL,DE                       ;ВЫЧИСЛИЛИ ПОЗИЦИЮ ФАЙЛА С КОТОРОГО БУДЕМ ВЫВОДИТЬ
  179.                 LD DE,ADR_CAT
  180.                 ADD HL,HL
  181.                 LD A,(FLAGS)
  182.                 AND 8
  183.                 JR NZ,OUT_TEK_FAT               ;ПЕРЕХОД ЕСЛИ ДЛЯ FAT
  184.                 ADD HL,HL
  185.                 ADD HL,HL
  186.                 ADD HL,HL                       ;УМНОЖИЛИ НА РАЗМЕР ОПИСАТЕЛЯ
  187.                 ADD HL,DE                       ;ВЫЧИСЛИЛИ АДРЕС ОПИСАТЕЛЯ С КОТОРОГО БУДЕМ ВЫВОДИТЬ
  188.                 LD C,(IX+2)
  189.                 DEC C
  190.                 DEC C                           ;ВЫЧИСЛИЛИ СКОЛЬКО ВЫВОДИТЬ
  191.                 LD D,(IX+0)
  192.                 LD E,(IX+1)
  193.                 INC D
  194.                 INC D
  195.                 INC E                           ;ВЫЧИСЛИЛИ ПОЗИЦИЮ ВЫВОДА НА ЭКРАН
  196. FINDBAS3        LD B,8                          ;ПЕЧАТАЕМ ТОЛЬКО ИМЯ
  197.                 PUSH DE
  198. FINDBAS4        LD A,(HL)
  199.                 INC HL
  200.                 CALL PRT_SYM
  201.                 DJNZ FINDBAS4
  202.                 LD DE,8                         ;8 СИМВОЛОВ НАПЕЧАТИЛИ, ОСТАЛЬНЫЕ 8 ПРОПУСКАЕМ
  203.                 ADD HL,DE
  204.                 POP DE
  205.                 INC E
  206.                 DEC C
  207.                 JR NZ,FINDBAS3                  ;ЕСЛИ НЕ КОНЧИЛИСЬ ПЕРЕХОДИМ НА ПЕЧАТЬ СЛЕДУЮЩЕГО ИМЕНИ
  208.                 RET
  209.  
  210. ;ВЫВОД ДИРЫ НА FAT
  211. OUT_TEK_FAT     ADD HL,DE
  212.                 LD D,(IX+0)
  213.                 LD E,(IX+1)
  214.                 INC D
  215.                 INC D
  216.                 INC E                           ;ВЫЧИСЛИЛИ ПОЗИЦИЮ ВЫВОДА НА ЭКРАН
  217.                 LD C,0
  218. KOL4OUT         EQU $-1
  219. OTF2            PUSH BC
  220.                 LD C,(HL)
  221.                 INC HL
  222.                 LD B,(HL)
  223.                 INC HL
  224.                 PUSH HL
  225.                 PUSH DE
  226.                 LD A,6
  227.                 CALL COM_FAT
  228.                 DB Positf
  229.                 CALL COM_FAT
  230.                 DB Getfzap
  231.                 POP DE
  232.                 PUSH DE
  233.                 LD BC,0X0B
  234.                 ADD HL,BC
  235.                 LD A,(HL)
  236.                 SBC HL,BC
  237.                 AND 0X10
  238.                 LD A,0
  239.                 JR NZ,OTF4
  240.                 LD A,1
  241. OTF4            CALL PRTSYMALT
  242.                 LD B,8
  243. OTF1            LD A,(HL)
  244.                 INC HL
  245.                 CALL PRT_SYM
  246.                 DJNZ OTF1
  247.                 POP DE
  248.                 POP HL
  249.                 POP BC
  250.                 INC E
  251.                 DEC C
  252.                 JR NZ,OTF2
  253.                 RET
  254.  
  255. NO_BAS          LD IX,NOBASIC
  256.                 CALL WINW
  257.                 JP _RULILKA
  258.  
  259. RUNFILE         DI
  260.                 CALL SHUT2AY                    ;БУМКАЛКА В AY
  261.                 LD L,(IX+0X0A)
  262.                 LD H,(IX+0X0B)                  ;НОМЕР ВЫБРАННОГО ФАЙЛА
  263.                 LD DE,ADR_CAT
  264.                 ADD HL,HL
  265.                 ADD HL,HL
  266.                 ADD HL,HL
  267.                 ADD HL,HL
  268.                 ADD HL,DE                       ;ОТКУДА ИМЯ ФАЙЛА ВЗЯТЬ
  269.                 LD DE,RUNNAM
  270.                 LD BC,8
  271.                 LDIR
  272.                 LD HL,0X3E08+0XA7
  273.                 LD DE,0XFFFF
  274.                 LD C,0XA8                       ;21 символ UDG
  275.                 LDDR
  276.                 LD HL,RUN_BASIC
  277.                 LD DE,0X5D3B
  278.                 LD BC,ERUN_BASIC-RUN_BASIC
  279.                 LDIR                            ;ПЕРЕНОС БЕЙСИК ПРОГИ ДЛЯ ЗАПУСКА
  280.                 CALL MEMSET                     ;ВЫСТАВИЛИ РЕЖИМ КОМПА
  281.                 CALL FOR_RUN
  282.                 EI
  283.                 JP 0X1B7D                       ;ЗАПУСК ПЕРЕНЕСЕННОЙ БЕЙСИК ПРОГИ
  284.  
  285. ;               LD BC,0XFE8F
  286. ;               CALL 0X1EB7
  287. ;               LD HL,0X1303
  288. ;               PUSH HL
  289. ;               LD (0X5C3D),SP
  290. ;               LD HL,(0X5C4F)
  291. ;               LD DE,0X0F
  292. ;               ADD HL,DE
  293. ;               LD DE,0X15BE
  294. ;               EX DE,HL
  295. ;               LD BC,4
  296. ;               LDIR
  297. ;               RES 4,(IY+1)
  298. ;               SET 7,(IY+1)
  299. ;               LD HL,0X1B7D
  300. ;               PUSH HL
  301. ;               LD HL,LOC_5BEA
  302. ;               PUSH HL
  303. ;               LD HL,0X2970
  304. ;               PUSH HL
  305. ;               LD HL,0X2920
  306. ;               PUSH HL
  307. ;               LD HL,0X294A
  308. ;               PUSH HL
  309. ;               JP 0X3D2F
  310.  
  311. ;LOC_5BEA       LD HL,(0X5C61)
  312. ;               LD A,(HL)
  313. ;               DEC HL
  314. ;               LD L,(HL)
  315. ;               LD H,A
  316. ;               LD (0X5C42),HL
  317. ;               XOR A
  318. ;               LD (0X5C44),A
  319. ;               RET
  320.  
  321. E_LINE          EQU 0X5C59
  322. K_CUR           EQU 0X5C5B
  323. WORKSP          EQU 0X5C61
  324. STKBOT          EQU 0X5C63
  325. STKEND          EQU 0X5C65
  326. TRD_5D0E        EQU 0X5D0E
  327.  
  328. FOR_RUN
  329. ;               LD HL,BAS4TAPE
  330. ;               LD DE,0X5C3A
  331. ;               LD BC,EBAS4TAPE-BAS4TAPE
  332. ;               LDIR                    ;ПЕРЕМЕННЫЕ БАСИКА СДЕЛАЛИ FOR ONLY TAPE
  333. ;               LD HL,0X3D21
  334. ;               CALL TODOS4RUN
  335. ;               LD A,0XFE
  336. ;               LD (TRD_5D0E),A
  337. ;               LD HL,(E_LINE)
  338. ;               LD (HL),0XF7
  339. ;               INC HL
  340. ;               LD (HL),0X22
  341. ;               INC HL
  342. ;               LD DE,RUNNAM
  343. ;               LD BC,8
  344. ;               EX DE,HL
  345. ;               LDIR
  346. ;               EX DE,HL
  347. ;               LD (HL),0X22
  348. ;               INC HL
  349. ;               LD (K_CUR),HL
  350. ;               LD (HL),0X0D
  351. ;               INC HL
  352. ;               LD (HL),0X80
  353. ;               INC HL
  354. ;               LD (WORKSP),HL
  355. ;               LD (STKBOT),HL
  356. ;               LD (STKEND),HL
  357.                 SET 3,(IY+1)
  358.                 LD IY,0X5C3A
  359.                 LD (IY),0XFF
  360.                 SET 7,(IY+1)
  361.                 RES 4,(IY+1)
  362.                 LD HL,0X2758
  363.                 EXX
  364.                 LD A,0XC9
  365.                 LD (0X5CC2),A
  366.                 LD HL,0
  367.                 LD (0X5C42),HL
  368.                 XOR A
  369.                 LD (0X5C44),A
  370.                 RET
  371.                 LD HL,0X2EF
  372.                 EI
  373. TODOS4RUN       PUSH HL
  374.                 JP 0X3D2F
  375.  
  376. ;               LD BC,0X5FFF
  377. ;               CALL 0X1EB7                     ;УСТАНОВКА СТЕКА СРЕДСТВАМИ БЕЙСИКА
  378. ;               LD (0X5C3D),SP
  379. ;               RET
  380.  
  381. ;КРУГОВОЙ ПЕРЕБОР ИМЕНИ ДИСКОВОДА 1-4 (A-D)
  382. NEXTDRIVE       LD A,(TXT_DRIVE)                ;ВЗЯЛИ БУКВУ ТЕКУЩЕГО ДИСКОВОДА
  383.                 INC A                           ;+1, ТО ЕСТЬ ВЫБРАЛИ СЛЕДУЮЩИЙ ПО ПОРЯДКУ
  384.                 SUB 0X10                        ;ПРЕВРАТИЛИ В НОМЕР
  385.                 CP "5"                          ;ЕСЛИ ПРЕВЫСИЛИ 4
  386.                 JR C,SELDRV1
  387.                 SUB 4                           ;ТО ИЗМЕНИЛИ НА НОМЕР ПЕРВЫЙ
  388.                 JR SELDRV1
  389.  
  390. NEXTVIRT        LD HL,MAINLOP
  391.                 PUSH HL
  392.                 LD A,(FLAGS)
  393.                 AND 4
  394.                 RET Z
  395.                 LD H,0X0F
  396.                 CALL READCMOS
  397.                 INC A
  398.                 CP 4
  399.                 JR C,NEXTVIRT1
  400.                 XOR A
  401. NEXTVIRT1       LD L,A
  402.                 ADD A,"A"
  403.                 LD (VIRT_DRIVE),A
  404.                 CALL WRITECMOS
  405.                 CALL REST2X2
  406.                 CALL PRT_VIRTDRV
  407.                 LD A,(FLAGS)
  408.                 AND 2
  409.                 RET Z
  410.                 JP DRAW_MOUSE
  411.  
  412. ;ИЗМЕНЕНИЕ НОМЕРА ДИСКОВОДА И СОХРАНЕНИЕ В КМОСЕ ЕСЛИ ТАКОВОЙ ОБНАРУЖЕН
  413. SELDRV          LD A,(0X5C08)                   ;ВЗЯЛИ НОМЕР ДИСКОВОДА
  414. SELDRV1         SUB "1"                         ;ОБРАТИЛИ В БИНАРНЫЙ ВИД ДЛЯ ЗАПИСИ В ПЕРЕМЕННУЮ
  415.                 LD HL,MAINLOP                   ;АДРЕС КУДА ВЕРНУТЬСЯ ПОСЛЕ ЗАПИСИ
  416.                 PUSH HL
  417. SELDRVPP        LD (DRV_SYM),A
  418.                 LD L,A
  419.                 LD A,(FLAGS)
  420.                 AND 4
  421.                 RET Z                           ;ЕСЛИ КМОС НЕ НФЙДЕН, ВЫХОДИМ
  422.                 LD H,0X10
  423.                 CALL WRITECMOS                  ;СОХРАНЯЕМ ВЫБРАННЫЙ ДИСКОВОД В КМОСЕ
  424.                 CALL SET_DRIVE                  ;УСТАНОВКА ИЗМЕНЕНИЯ
  425.                 CALL REST2X2                    ;ВОССТАНОВИЛИ ПОД КУРСОРОМ МЫШИ
  426.                 CALL PRT_DRV_SYM                ;ПЕРЕПЕЧАТАЛИ СТРОКУ О ДИСКОВОДАХ
  427.                 LD A,(FLAGS)
  428.                 AND 2
  429.                 RET Z
  430.                 JP DRAW_MOUSE                   ;НАРИСОВАЛИ МЫШЬ НА СТАРОМ МЕСТЕ
  431.  
  432. ;FIX mouse key if no mouse
  433. ONERNCLS        LD A,(FLAGS)
  434.                 AND 2
  435.                 JR Z,ONERNC1
  436.                 LD A,0XFA
  437.                 IN A,(0XDF)
  438.                 RRA
  439.                 JP NC,_STUPID
  440. ONERNC1         POP AF
  441.                 EX (SP),HL
  442.                 RET
  443.  
  444. ;ПЕРЕХВАТ ДИСКОВОЙ ОШИБКИ ДЛЯ ОБРАБОТКИ
  445. ONERR           EX (SP),HL
  446.                 PUSH AF
  447.                 LD A,H
  448.                 CP HIGH (0X0D6B)
  449.                 JR NZ,ONERNCLS
  450.                 LD A,L
  451.                 CP LOW (0X0D6B)
  452.                 JR NZ,ONERNCLS
  453.                 POP HL
  454.                 POP HL
  455.                 POP HL
  456.                 POP HL
  457.                 POP HL
  458.                 EI
  459.                 CALL GLUDIN
  460.                 LD HL,0X5CF4
  461.                 LD A,(HL)                       ;ВЗЯЛИ НОМЕР СЕКТОРА
  462.                 INC A
  463.                 CALL DIV10
  464.                 LD (NUM_SEC_TXT+1),A
  465.                 LD A,D
  466.                 LD (NUM_SEC_TXT),A
  467.                 INC HL
  468.                 LD A,(HL)                       ;ВЗЯЛИ НОМЕР ТРЕКА
  469.                 SRL A
  470.                 LD E,A
  471.                 ADC A,"0"
  472.                 SUB E
  473.                 LD (SIDE_DISK),A                ;СТОРОНА ДИСКА
  474.                 LD A,E
  475.                 CALL DIV10
  476.                 LD (NUM_TRK_TXT+1),A
  477.                 LD A,D
  478.                 LD (NUM_TRK_TXT),A
  479.                 LD IX,DSK_ERR                   ;ОКНО ВЫВОДИМ ПОЛНОСТЬЮ
  480.                 CALL WINW
  481.                 JP _RULILKA
  482.  
  483. RESET_VG       
  484. ;               LD C,0XFF
  485. ;               XOR A
  486. ;               LD IX,0X2A53                    ;OUT(C),A
  487. ;               CALL DOSIX
  488. ;               LD A,(DRV_SYM)
  489. ;               OR 0X3C
  490. ;               CALL DOSIX
  491. ;               LD A,0X68                       ;шаг назад
  492. ;               LD C,0X1F
  493. ;               CALL DOSIX
  494.                 LD HL,DSTUPID
  495.                 LD (0X5C3D),HL
  496.                 LD A,0XC3
  497.                 LD (0X5CC2),A
  498.                 LD HL,ONERR
  499.                 LD (0X5CC3),HL
  500.                 RET
  501.  
  502. DOSIX           PUSH IX
  503.                 JP TO_DOS
  504.  
  505. ;ПРОВЕРКА НАЛИЧИЯ МАРКЕРА РАМДИСКА, ПРИ ОТСУСТВИИ СОЗДАНИЕ ДИСКА НА 640КБ
  506. DISK_NONE       PEC_ON SHADOW_BF
  507. ;               LD A,1
  508. ;               OUT (PEVO_CONF),A
  509.                 LD A,PAGE_RAMDISK
  510.                 LD BC,WIN_P1
  511.                 OUT (C),A
  512.                 LD HL,0X7FFF
  513.                 LD A,(HL)
  514.                 DEC H
  515.                 CP "R"
  516.                 JR NZ,DISK_NONE1
  517.                 LD A,(HL)
  518.                 CP "D"
  519. DISK_NONE1      EX AF,AF'
  520.                 LD A,0XFA
  521.                 OUT (C),A
  522.                 PEC_OFF SHADOW_BF
  523. ;               XOR A
  524. ;               OUT (PEVO_CONF),A
  525.                 EX AF,AF'
  526.                 JP NZ,CREATE_TRDRAM             ;МАРКЕР НЕ ОБНАРУЖЕН, СОЗДАТЬ
  527.                 RET
  528.  
  529. ;FormTR SRL A
  530. ;       LD (_phystr),A
  531. ;       RLA
  532. ;       LD C,2                  ;позиционир-е на лог.tr A
  533. ;       CALL TO_DOS4BAS
  534. ;       LD A,0XFF
  535. ;       LD (0X5CD8),A
  536. ;       LD HL,SeCS
  537. ;       LD (0X5CE6),HL
  538. ;       LD E,0
  539. ;_phystr        EQU $-1
  540. ;       LD IX,0X1FFD            ;format track
  541. ;       JR DOSIX
  542.  
  543. DIV10   LD D,0X30-1
  544.         INC D
  545.         SUB 0X0A
  546.         JR NC,$-3
  547.         ADD A,0X0A+0X30
  548.         RET
  549.  
  550. _RETRY  LD A,"R"
  551.         JR $+4
  552.  
  553. _IGNORE LD A,"I"
  554.         LD HL,0X3F7E
  555.         EX (SP),HL
  556.         DI
  557.         JP TO_DOS
  558.