Цитата Сообщение от Kulich Посмотреть сообщение
А такая нужна? А то я как-то стесняюсь аж целую тему заводить, а то на пихают как обычно за него =)
А так, любые улучшения и исправления приветствуются. А частота процессора на этих 57600 какая, оригинальные задержки оптимизированы кажется на 3.5
Всё как в оригинале. Ну да, их много. Я по историческим причинам использую конфигурацию оригинального 128k. Кстати, в MRF там сейчас выдранная без «мяса», в смысле, один к одному, процедура из ROM0 от 128k, так что 57600 уж точно с этим совместимо 57600, в общем, код небезызвестного Paul Farrow, ЕМНИП, известен года так с 2009-го и работает даже на оригинальном 48k. Я так понимаю, что у Вас основная масса пользователей на отечественных клонах, но, опять же, если ROM0 работал до сих пор и никто не жаловался, то и это вполне может заработать. Может, кто попробует... Я на Sizif только Пентагон могу включить.

P.S. Я там с техническими деталями на праздниках «загляну», по поводу темы и прочего.

Как попробовать


Там у меня масса всего, но суть именно ускорения можно попробовать следующей нехитрой заменой:

1. Переименовать uart-ay.asm в uart-ay-128k.asm
2. Добавить uart-ay-57600.asm
3. Создать новый uart-ay.asm (вот ниже) и собирать с -DUART_AY_57600

Ну, и как-то сконфигурировать ESP-12, чтобы на 57600 работало, код предполагает, что ESP-12 уже настроен.

uart-ay.asm


Код:
; Copyright 2024 TIsland Crew
; SPDX-License-Identifier: Apache-2.0

    IFDEF UART_AY_57600
        MACRO SYSCALL proc
            IFDEF __ESXDOS_DOT_COMMAND
                rst 0x18
                dw proc
            ELSE
                call proc
            ENDIF;__ESXDOS_DOT_COMMAND
        ENDM; SYSCALL

        INCLUDE "uart-ay-57600.asm"
        MODULE      Uart
init:
        call UART5.RS232_INIT
        xor a
        jp UART5.RS232_CFGDTR

write       equ UART5.RS232_WR_BT
uartRead    equ UART5.RS232_RD_BT

read:
        push bc, de, hl
        call uartRead
        pop hl, de, bc
        ret c
        jr read

        ENDMODULE ; Uart
    ELSE
        INCLUDE "uart-ay-128k.asm"
    ENDIF;UART_128K

; EOF vim: et:ai:ts=4:sw=4:
[свернуть]

[свернуть]