; LAST UPDATE: 07.01.2022 savelij
TITLE "patch.a80"
; 0x18B7 установка адреса запуска
ADR_START_COM LD (TRD_5CC6),HL
LD DE,(TRD_5CEB) ; трек и сектор местоположения файла
RET
; 0x1CFE удаление буфера
DELETE_BUFFER CALL DELETE_BUF
JP CLRBUF_EDITOR
; 0x1D5E запуска файла
RUN_FILE JP Z,WORK4AUTORUN ; обработка строки автозапуска бейсика
CP "C"
JP NZ,SINTAX_ERROR
RUNCODE LD HL,RUN_CODE
LD (TRD_5D1A),HL
JP END_COMAND
; 0x36E8 запускалка кодового блока
RUN_CODE CALL RESTORE_SP
LD BC,(TRD_5CC6) ; адрес загрузки из командной строки
PUSH BC
RET
; печать текущего форматируемого трека и стороны
PRINT_NUM_TRK PUSH DE
PUSH AF
PUSH DE
LD A,0X16
RST 0X10
LD A,(0X5C6B)
DEC A
RST 0X10
LD A,0
RST 0X10
LD HL,TXT_FORMAT_TRK
RST 0X18
POP DE
LD C,E
LD B,0
CALL PRINT_CHISLO
LD HL,TXT_FSIDE
RST 0X18
POP AF
LD A,"0"
ADC A,0
RST 0X10
POP DE
RET
TXT_FORMAT_TRK DC "FORMAT TRACK: "
TXT_FSIDE DC " SIDE: "
; 0x3057 проверка на "." для расширенной команды
CMP_SPECSYM LD HL,(TRD_5CD9)
LD A,(HL)
CP "."
JP NZ,FIND_KEYWORD
POP HL
RET
; 0x0325 ENDCOMAND
ENDCOMAND LD A,D
CP "."
JP NZ,END_COMAND
cp __RETURN
call nz,CREATE_BUF ; создание буфера
ld a,9
ld (TRD_5D06),a ; количество символов имени файла при поиске
xor a
ld (TRD_5D0F),a ; номер ошибки TR-DOS
ld (TRD_5CD6),a ; 0xFF - команда принята синтаксическим анализатором
ld (TRD_5D10),a ; старший байт ошибки
ld hl,FLAGS
res 7,(hl)
LD HL,COM_DOT
JP LOC_353
; 0x3EBF BUGFIX_3EBF
BUGFIX_3EBF PUSH AF
PUSH HL
CALL GET_TIME_HEAD
LD B,A
POP HL
POP AF
JP HEAD_POSITION
; 0x211E очистка буфера выполненной команды
CLRBUF_EDITOR2 POP HL
RES 7,(IY+1)
RST 0X20
DW 0X19FB
XOR A
LD (SUBPPC),A
DEC A
LD (ERR_NR),A
LD HL,(E_LINE)
LD (CH_ADD),HL
RST 0X20
DW 0X19FB
RST 0X20
DW 0X18
RST 0X20
DW 0X16B0
RET
; печать номера форматируемой дорожки и стороны
loc_20D1 AND A
CALL PRINT_NUM_TRK
CALL FORMAT_TREK
CALL COM_17
SCF
JP PRINT_NUM_TRK