Так без него конечно нельзя, это же дос. Тогда странный вопрос. Откуда ж дискам без ТР-ДОС взяться?
Вид для печати
значит это только в 128к версии спектрума можно и без тр-доса никак.
а где можно взять тр-дос для 48к версии ?
чёт я не нахожу такого.
тр-дос один и тот же.
- - - Добавлено - - -
Вы же в эмуляторе.
этот чтоли ? TR-DOS+ by Bredsoft'96 https://vtrd.in/system/TR-DOS+.zip
смотрю на виртуал трдос.
- - - Добавлено - - -
там scl образ который в 48к никак.
О_о Зачем образ? Если эмуль, то надо настроить 48+тр-дос (а проще просто перейти из меню пентагона в бейсик 48 и все).
А если железка, то там либо есть BDI, либо нет.
Это как миф про то, что на 48 не может быть AY.
Лет 5 просидел на Форум БК-011 Турбо, а это именно 48, с YM и BDI.
- - - Добавлено - - -
А может просто бесик-прога съела всю память, поэтому попытка вызвать команду тр-дос подвешивает спек?
Надо попробовать из голого барсика.
ZEman, tr-dos - не более, чем название программной части "карточки расширения" Beta Disk Interface. При его физическом отсутствии (в т.ч. конфигурации эмулированной машины), вызов команд tr-dos, через стандартные точки - равносильно попытке исполнения некоего кода из ПЗУ в области знакогенератора. Со вполне предсказуемым итогом. ;)
- - - Добавлено - - -
А вот, после подключения BDI, при попытке выполнить код из определенного диапазона адресов - стандартное (или, не совсем) ПЗУ спектрума, подменяется ПЗУ tr-dos. По завершению исполнения подпрограмм, все возвращается на прежнее место.
Тут уже поднимался вопрос как из кода исполнить бейсик команду.
Предложенный вариант несколько не устроил, хотелось запускать не программу с номерами строки и т.п. а просто один или несколько операторов.
Покопавшись в пзу, пришел к такому решению:
возможно кому-то пригодитсяКод:;инициализация переменных для старта программы в basic48 режиме
;(с открытым портом)
;
;очистим всю память 48k
di
ld hl,#5B00
ld de,#5B01
ld (hl),l
ld bc,#A500-1
ldir
;инициализируем переменные
ld hl,#FFFF ;P-RAMT
ld (#5CB4),hl
ld de,#3EAF ;UDG
ld bc,#00A8
ex de,hl
lddr
inc de
ld (#5C7B),de ;=#FF58
dec de
ld (#5CB2),de ;=#FF57
ld hl,#0040 ;PIP and RASP
ld (#5C38),hl
ld hl,#3C00 ;CHARS
ld (#5C36),hl
ex de,hl
ld (hl),#3E ;маркер
dec hl
ld sp,hl
dec hl
dec hl
ld (#5C3D),hl ;ERR_SP
ld iy,#5C3A
ld hl,#5CB6
ld (#5C4F),hl ;CHANS
ld de,#15AF ;каналы
ld bc,#0015
ex de,hl
ldir
ex de,hl
dec hl
ld (#5C57),hl ;DATADD
inc hl
ld (#5C53),hl ;PROG =#5CCB
ld (#5C4B),hl ;VARS =#5CCB
ld (hl),#80
inc hl
ld (#5C59),hl ;E_LINE =#5CCC
ld a,#38 ;атрибуты
ld (#5C8D),a
ld (#5C8F),a
ld (#5C48),a
ld hl,#0523 ;REPDEL and REPPER
ld (#5C09),hl
dec (iy-#3A)
dec (iy-#36)
ld hl,#15C6 ;STRMS-FD
ld de,#5C10
ld bc,#000E
ldir
set 1,(iy+#01)
call #0EDF ;CLEAR-PRB
ld (iy+#31),#02 ;DF_SZ
; call #0D6B ;CLS (не обязательно)
call #16B0 ;SET-MIN
xor a
call #1601 ;канал 'K'
;и только теперь можно копировать строку с программой
ld hl,basic ;адрес строки
ld bc,end-basic ;длиина строки
ld de,(#5C5B)
ldir
ld (#5C5B),de
ex de,hl
ld (hl),#0D
inc hl
ld (hl),#80
inc hl
ld (#5C61),hl ;WORKSP
ld (#5C63),hl ;STKBOT
ld (#5C65),hl ;STKEND
ld a,#0D ;клавиша enter
ld (#5C08),a
ld hl,#5C3B ;нажата
set 5,(hl)
im 1
ei
jp #12B1 ;адрес входа в basic
basic db #EF,#22,#22 ;load ""
end