- исправлены некоторые ошибки
- реализована загрузка с винчестера
первый пост обновил
Вид для печати
- исправлены некоторые ошибки
- реализована загрузка с винчестера
первый пост обновил
Попробовал запуск CP/M через HDD boot. Работает! Только надо записывать загрузочный сектор на место 0-го, а я сначала на 1-й сектор пытался. Надо бы уточнить в хелпе, а то там сказано про "первый сектор". Можно по-разному понять.
LW, раньше, в первом сообщении, в архиве ProfRom.zip, был файл !newR8DOS.txt с описанием новых вызовов RST8. Почему он сейчас не прилагается? Появились ли новые вызовы?
Grand, Да, появились. Рабочее описание добавил в первый пост.
Я попробовал ROM-файл ProfRomGMX.rom (версия 101 от 4.4.2023) на эмуляторе UnrealSpeccy (V0.37.9, эмулирующая Scorpion GMX). Этот ROM работает как-то нестабильно: в меню "128" самопроизвольно сбрасывается в 48 BASIC.
Попробовал в тестовом TRDN примонтировать диск (процедуру подсчета CRC вызываю по адресу #0000 из ROM23) - это заканчивается зависанием с цветными квадратами на экране.
Хочу спросить: что где не так работает? :)
Возьмите посвежее версию в первом посте. Возможно в той версии есть какие-то ошибки, честно говоря не помню уже.
ROM переключаете штатной процедурой из рам 8? или прямой записью в порт? Так-то это должна быть #17 страница, т.е если пишите в порт, то писать надо %t101sm00
t - turbo
s - screen
m - magic
Попытка добавить поддержку загрузчиков #3D2F
Кому не сложно, потестируйте прошивку на реале, в плане работы загрузчиков через 3d2f. Как с реальной дискеты так и с примонтированного образа.
Исправил работу с реальными дискетами. перезалил.
PS2 ускорил работу с реальным дисководом. перезалил.
Вложение 78944
Версия ROM'а из первого поста действительно стала стабильно работать на эмуляторе Scorpion'а GMX. Я смог произвести отладку TRDN. Жаль, что у меня нет реального Scorpion GMX...Цитата:
Сообщение от LW
Оказалась ошибка в TRDN в процедуре определения версии монитора. :D Тестовая версия TRDN с поддержкой Scorpion GMXЦитата:
Сообщение от Grand
выложена здесь.
Ну да, она и есть: 23=#17.Цитата:
Сообщение от LW
Переключаю прямой записью в порт. Так это выглядит на Scorpion GMX.
А что там за штатная процедура в RAM8? И как все-таки правильнее переключать?Код:R37CRC LD DE,HDDBUF
;DE-круглый адрес вида #xx00, куда считан сектор данных о примонтированных дисках.
DI
LD A,#D0
CALL L01PR
PUSH DE
LD BC,508
R7CRC LD IX,#0000;адрес процедуры подсчета CRC в ROM#17.
;В версии 100 это адрес #21E5.
CALL R7R
POP DE
INC D
LD E,#FC
LD A,L
LD (DE),A ;Заносим СКС.
INC DE
LD A,H
LD (DE),A
LD A,#C0
L01PR JP L01GMX ;Переключаем ROM'ы.
LD BC,#1FFD ;Это используется на "обычном" Scorpion'е.
LD A,2 ;
OUT (C),A ;
LD A,(#10C) ;
XOR A ;
OUT (C),A ;L01PR+14
RET
L01GMX LD BC,#7EFD
JR L01PR+14
R7R PUSH IX
JP #3D31
LW, обратил внимания, что версия 101 под меню "128" пишет "1992-2023 Scorpion ZS 256". Надо бы написать, например, "Scorpion GMX", чтобы не было путаницы.
ну да. привычка уже воспринимать такие числа в шестнадцатеричном виде.
поправлю со временем
нет, процедуру из RAM 8 лучше не использовать, вероятнее всего адресация у неё изменится со временем.
для включения любого ROM, можно использовать следующую конструкцию:
в данном случае вам нужна банка за номером 7Код:ld bc,#7FFD
ld a,#10
out (c),a
ld b,#DF ;это нужно только
xor a ;для
out (c),a ;версии GMX
ld b,#1F
ld a,#12
out (c),a ;включим ram 8 и rom 2(monitor)
rst #30
dw adrproc ;адрес процедуры в вызываемой банке
db bank ;номер банки
....
дальнейший код (включена банка, активная при вызове)
rst #30 это как раз механизм вызова процедур из любой банки, при любой (кроме basic48/basic128/tr-dos) активной банке
и меняться он точно не будет
актуально как для ZS 256, так и для GMX
регистры и флаги она не портит
но и есть минус. область памяти #C000-#FFFF недоступна. вернее, при работе процедуры, там будет 8я страница, которую портить нехорошо
а вообще надо, наверное, добавить в системные вызовы вызов процедуры подсчета CRC...
- команда SPECTRUM в бейсике 128 выдает верное сообщение
- GMX: переделано определение конфигурации (страница, тип и номер экрана, бордюр) на прямое чтение портов
- GMX: настройки монитора перенесены в страницу #78
- GMX: заработали пункты меню S. Set up -> X. GMX -> N. Port I/O и I. Interrupts
В основном изменения коснулись версии для GMX.
Определение текущей конфигурации при входе в монитор теперь выполняется исключительно чтением из портов вплоть до бордюра.
Теперь из теневика можно заблокировать доп. порты гмх и установить пентагоновский инт
Настройки теневого монитора переехали в #78 страницу и при заблокированных портах гмх она теперь находится вне зоны доступной памяти.
первый пост обновил