Цитата Сообщение от Kulich Посмотреть сообщение
Я среди ночи попробовал добавить этот код к себе. собрал и добавил такую версию.
Ох, я толком попробовать не могу, у меня что-то где-то отвалилось, как я уже писал выше. Я, конечно, подключил 3.3V выводы напрямую к TTL, magic smoke сразу не появился и вот что я могу сказать:

Оговорка: я очень начинающий спектрумист «вообще» -- стаж меньше года. А по меркам нашего сообщества ещё и очень неортодоксальный. В смысле, я в этих TR-DOS'ах ничего не понимаю... Я больше по esxdos и +3DOS. Мог чего упустить или неправильно сделать.

Так вот, в принципе, работает, правда, с какими-то незначительными шероховатостями. Ваш TRD стартует, похоже, в какой-то конфигурации, меню я не увидел (в FUSE то же самое, если я не ошибаюсь, там boot запускает EVO-64), поэтому руками запустил "AY56-64.B" (запустить MRF, чтобы сменить перманентно?). Оно заработало, там какие-то артефакты на экране, но, в целом, загрузка /Stuff/SCR/ZXART0/!GIRL!.scr с Вашего сервера заняла ~1.78 секунды. И PT3 удалось послушать. Sizif-512, конфигурации 128 и Pentagon. Дальше боюсь, ESP12 точно помрёт от «перенапряжения».

Там надо ещё решить проблему конфигурации ESP для пользователей TR-DOS, может быть что-то вроде вот этого, переделанное слегка для TR-DOS, разумеется...

ESP576.ASM


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

    DEVICE ZXSPECTRUM48

    ORG	23755
    MODULE BASIC
        INCLUDE	"BasicLib.asm"

START:
        LINE : db clear : NUM 32767 : LEND
        LINE : db load,'"', 'ESP576.C','"',code : LEND
        LINE : db rand, usr : NUM _start : LEND
END   equ $
    ENDMODULE ; BASIC

    ORG 0x8000

    IFNDEF __MACRO_SYSCALL
        IFDEF __ESXDOS_DOT_COMMAND
            MACRO SYSCALL adr
                rst 0x18
                dw adr
            ENDM
        ELSE
            MACRO SYSCALL adr
                call adr
            ENDM
        ENDIF;__ESXDOS_DOT_COMMAND
        DEFINE __MACRO_SYSCALL
    ENDIF;__MACRO_SYSCALL

_start:
        ld a, 2     ; upper/main screen channel
        call 0x1601 ; CHAN-OPEN - https://skoolkid.github.io/rom/asm/1601.html

        exx
        push hl
        exx

        call UART.RS232_INIT
        xor a
        call UART.RS232_CFGDTR

        call RS232_DISCARD

        ld hl, AT_SET_57600
        call RS232_PUTS

        ld hl, AT_SET_57600
        call PUTS

        call RS232_DISCARD

        exx
        pop hl
        exx
        ret

RS232_DISCARD:
        ld b, 0
        ; flush everything until ESP-12 "has nothing to say", but no more than 256 chars
RS232_DISCARD_B:
.flush: call UART.RS232_RD_BT
        ret nc
        djnz .flush
        ret

RS232_PUTS:
        ld a, (hl)
        or a
        ret z
        call UART.RS232_WR_BT
        inc hl
        jr RS232_PUTS

PUTS:
        ld a, (hl)
        or a
        ret z
        rst 0x10
        inc hl
        jr PUTS

AT_SET_57600:
        defb 'AT+UART_CUR=57600,8,1,0,2', 13, 10, 0

    INCLUDE "drivers/uart-ay-128k.asm"

    DISPLAY "Code: ",/A,$-_start
    DEFINE TAPE "esp576.tap"
    EMPTYTAP TAPE
    SAVETAP  TAPE,BASIC,"ESP276",BASIC.START,BASIC.END-BASIC.START,10
    SAVETAP  TAPE,CODE, "ESP576.C",_start,$-_start

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


Владельцы Sizif, записывайтесь в бета-тестеры! Сильно приятнее на большой скорости всем этим пользоваться!