Subversion Repositories pentevo

Rev

Rev 833 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LAST UPDATE: 28.07.2019 savelij
  3.  
  4.                 TITLE "patch.a80"
  5.  
  6. ;смена диска для старой команды TR-DOS
  7. SET_CURRDRV     LD B,A
  8.                 CALL SET_CURRVIRT
  9.                 LD A,(NUM_ALT_PAGE)
  10.                 CP ROM_ADD_BAS48 | 0X80
  11.                 LD A,B
  12.                 CALL NZ,COM_01                  ;настройка на диск только для реальной дискеты
  13.                 JP ERR_OK
  14.  
  15. ;[0x18B7 УСТАНОВКА АДРЕСА ЗАПУСКА]
  16. ADR_START_COM   LD (TRD_5CC6),HL
  17.                 LD DE,(TRD_5CEB)                ;ТРЕК И СЕКТОР МЕСТОПОЛОЖЕНИЯ ФАЙЛА
  18.                 RET
  19.  
  20. ;[0x1CFE УДАЛЕНИЕ БУФЕРА]
  21. DELETE_BUFFER   CALL DELETE_BUF
  22.                 JP CLRBUF_EDITOR
  23.  
  24. ;[0x1D5E ЗАПУСКА ФАЙЛА]
  25. RUN_FILE        JP Z,WORK4AUTORUN               ; ОБРАБОТКА СТРОКИ АВТОЗАПУСКА БЕЙСИКА
  26.                 CP "C"
  27.                 JP NZ,SINTAX_ERROR
  28. RUNCODE         LD HL,RUN_CODE
  29.                 LD (TRD_5D1A),HL
  30.                 JP END_COMAND
  31.  
  32. ;[0x36E8 ЗАПУСКАЛКА КОДОВОГО БЛОКА]
  33. RUN_CODE        CALL RESTORE_SP
  34.                 LD BC,(TRD_5CC6)                ;АДРЕС ЗАГРУЗКИ ИЗ КОМАНДНОЙ СТРОКИLD BC,(TRD_5CD9)
  35.                 PUSH BC
  36.                 RET
  37.  
  38. ;[0x214A ПЕЧАТЬ ИМЕНИ ПРИВОДА/РАЗДЕЛА]
  39. ;ЕСЛИ КОМАНДА РАСШИРЕННАЯ ТО ПЕЧАТЬ ИМЕНИ FAT УСТРОЙСТВА
  40. ;ИНАЧЕ ПЕЧАТЬ ИМЕНИ TR-DOS ДИСКОВОДА
  41.         IF EMU
  42. GET_COMMAND2    LD A,(TRD_5CEF)
  43.                 AND A
  44.                 CALL NZ,NOMER_DRV               ;ПЕЧАТЬ ИМЕНИ FAT УСТРОЙСТВА ЕСЛИ КОМАНДА НАЧИНАЕТСЯ С "."
  45.                 RET C                           ;ВЫХОД ЕСЛИ УЖЕ НАПЕЧАТАНА БУКВА FAT УСТРОЙСТВА
  46.                 LD A,(TRD_5D19)
  47.                 ADD A,"A"
  48.                 RST 0X10
  49.                 RET
  50.         ENDIF
  51.  
  52. ;[ПЕЧАТЬ ТЕКУЩЕГО ФОРМАТИРУЕМОГО ТРЕКА И СТОРОНЫ]
  53. PRINT_NUM_TRK   PUSH DE
  54.                 PUSH AF
  55.                 PUSH DE
  56.                 LD A,0X16
  57.                 RST 0X10
  58.                 LD A,(0X5C6B)
  59.                 DEC A
  60.                 RST 0X10
  61.                 LD A,0
  62.                 RST 0X10
  63.                 LD HL,TXT_FORMAT_TRK
  64.                 RST 0X18
  65.                 POP DE
  66.                 LD C,E
  67.                 LD B,0
  68.                 CALL PRINT_CHISLO
  69.                 LD HL,TXT_FSIDE
  70.                 RST 0X18
  71.                 POP AF
  72.                 LD A,"0"
  73.                 ADC A,0
  74.                 RST 0X10
  75.                 POP DE
  76.                 RET
  77.                
  78. TXT_FORMAT_TRK  DC "FORMAT TRACK: "
  79. TXT_FSIDE       DC "  SIDE: "
  80.  
  81. ;[0x3057 ПРОВЕРКА НА "." ДЛЯ РАСШИРЕННОЙ КОМАНДЫ]
  82. CMP_SPECSYM     LD HL,(TRD_5CD9)
  83.                 LD A,(HL)
  84.                 CP "."
  85.                 JP NZ,FIND_KEYWORD
  86.                 POP HL
  87.                 RET
  88.  
  89. ;[0x0325 ENDCOMAND]
  90. ENDCOMAND       LD A,D
  91.                 CP "."
  92.                 JP NZ,END_COMAND
  93.                 cp __RETURN
  94.                 call nz,CREATE_BUF              ; СОЗДАНИЕ БУФЕРА
  95.                 ld a,9
  96.                 ld (TRD_5D06),a                 ; КОЛИЧЕСТВО СИМВОЛОВ ИМЕНИ ФАЙЛА ПРИ ПОИСКЕ
  97.                 xor a
  98.                 ld (TRD_5D0F),a                 ; НОМЕР ОШИБКИ TR-DOS
  99.                 ld (TRD_5CD6),a                 ; #FF-КОМАНДА ПРИНЯТА СИНТАКСИЧЕСКИМ АНАЛИЗАТОРОМ
  100.                 ld (TRD_5D10),a                 ; СТАРШИЙ БАЙТ ОШИБКИ
  101.                 ld hl,FLAGS
  102.                 res 7,(hl)
  103.                 LD HL,COM_DOT
  104.                 JP LOC_353
  105.  
  106. ;[0x3EBF BUGFIX_3EBF]
  107. BUGFIX_3EBF     PUSH AF
  108.                 PUSH HL
  109.                 CALL GET_TIME_HEAD
  110.                 LD B,A
  111.                 POP HL
  112.                 POP AF
  113.                 JP HEAD_POSITION
  114.  
  115. ;[0x211E ОЧИСТКА БУФЕРА ВЫПОЛНЕННОЙ КОМАНДЫ]
  116. CLRBUF_EDITOR2  POP HL
  117.                 RES 7,(IY+1)
  118.                 RST 0X20
  119.                 DW 0X19FB
  120.                 XOR A
  121.                 LD (SUBPPC),A
  122.                 DEC A
  123.                 LD (ERR_NR),A
  124.                 LD HL,(E_LINE)
  125.                 LD (CH_ADD),HL
  126.                 RST 0X20
  127.                 DW 0X19FB
  128.                 RST 0X20
  129.                 DW 0X18
  130.                 RST 0X20
  131.                 DW 0X16B0
  132.                 RET
  133.  
  134. ;[ПЕЧАТЬ НОМЕРА ФОРМАТИРУЕМОЙ ДОРОЖКИ И СТОРОНЫ]
  135. loc_20D1        AND A
  136.                 CALL PRINT_NUM_TRK
  137.                 CALL FORMAT_TREK
  138.                 CALL COM_17
  139.                 SCF
  140.                 JP PRINT_NUM_TRK
  141.