Subversion Repositories pentevo

Rev

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

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