Представляем
теневой
монитор-отладчик
STS7.3!
v7.3:
-не
умел
печатать на
втором
экране, сидя
в pg7 (LVD)
v7.2:
+адрес
точки входа
из ALASM (без порчи
регистровой
модели)
зафиксирован
- отныне
всегда #db06
*дисководы
переключаются
кнопками 1..4 в
режиме
каталога,
но
каталог не
перечитывается!
v7.1:
*новые
способы
сэкономить
память: Bank
можно перенести
в столбец
регистров
(это неудобно
в режиме
дампа, потому
в этой сборке
оставлено
по-старому);
фикс Рощина
можно выключить
+определяется,
запоминается
и
показывается
режим
прерываний
(IM) - и
можно
редактировать.
Определяется
при входе в STS
после
трассировки
и т.п. (но не при
пошаговом
исполнении!) - I=0
или
63
даёт IM1, иначе IM2
+дисковые
операции
всегда
производятся
при IM1, а опрос
клавиш -
при
IM2 (теперь не
портит
сис.переменные)
+в
русском
режиме ввод
идёт без
максировки 7
бита
v7.0i:
*теперь
страницы при
трассировке
переключает
только порт #fd
со
сброшенным A15
(для отладки
прог под
винт)
-вис
при
обращении с
диску в
режиме IM 2 (Elph)
Теперь
при дисковых
операциях
принудительно
включается IM 1.
Напоминаю,
используется
стек
трассируемой
программы!
-при
первом входе
из аласма
включал DI
Отличия STS7.x от
STS6.x:
+
возврат в
вызвавшую
программу
через RET;
+
полный #3d13. Не требуется
вводить #5cf4 при
трассировке
загрузчиков.
Невозможно
запороть
диск. Сработает
любой способ
подключения
HDD или
рамдиска,
поддержанный
в TR-DOS;
/
поскольку STS7.x
основан на STS5.x,
то в нём нет
поддержки
расширеной
памяти
компьютеров
Scorpion, Profi, ATM и др.;
+
зато есть
дизассемблирование!
Выходной текст
короче, чем
он
был
в v5.x, но его всё
равно можно,
не отходя от
кассы,
импортировать
в ALASM (версия ALASM
должна быть
не ниже
4.47fff);
+
разрешено
использовать
1M по
пентагоновскому
стандарту;
+
резидент
сокращён на 3
байта (теперь
31) и не будет
портить
RAMTOP
при
размещении
по адресу 23698
(резидент STS6.2
вообще не
помещается
в системных
переменных -
в нём 46 байт);
+
для ALASM есть
специальная
(плавающая - с
каждой
версией
меняется)
точка входа,
которая не
портит
регистровую
модель
отлаживаемой
программы;
-
исправлены
ошибки с
меткой
верхней
строки, с
определением
состояния
прерываний, с
инициализацией
дисковода и,
возможно,
ещё
какие-то, о
которых я уже
забыл;
+
есть русский
шрифт (CP866) и его
поддержку
можно
включать и
выключать
кнопкой Y;
/
подсчёта
тактов нет - я
им и не
пользовался;
+
версия 7.x
занимает
только одну
страницу памяти,
не считая
память
ниже #DB00 (обычно
буфер
каталога ALASM'а - ALASM
затирал
кусок
STS6.2, если
ассемблирование
проводилось
до первого
выхода
в STS),
и не требует
дискету с
оверлеями;
+
опрос
клавиатуры
синхронизирован
с прерываниями
- не
требуются
нелепые
настройки, и
даже курсор
движется быстрее;
+ в
режиме Caps Lock
можно
вводить
маленькие
буквы (с Caps'ом);
+
автоматически
выключает
кэш - не
повиснет при
отладке
кэшевых
программ;
-
не забывает
положение
курсора
после гуляния
по каталогу
диска
(Extend);
-
не забывает
номер банка
после выхода
в ALASM и входа
обратно;
+
правильно
ставит
параметры
бейсик-файлов
при
сохранении с
расширением
.B;
+
все регистры
видны на
одном экране,
не нужно
переключать
наборы
регистров;
/
области
пользователя
нет,
используется
память #ff00,
которая
уничтожается
при работе с
диском;
/
нет кнопки SETUP -
переключение
дисководов теперь
по ss1, а
переключение
ПЗУ (Basic/DOS) по
кнопке E;
+
зато есть
исходник с
настройками,
в котором вы
можете
включить
какие-нибудь
из
выброшенных
функций (например,
подсказки,
память
пользователя
или звук) и
перекрасить
окошки по
своему вкусу.
Управление
курсором:
CURSOR
([CS+5/6/7/8/9])
[cs3] - Page
Up - страница
вверх
[cs4] - Page
Down - страница
вниз
[ss8] -
скроллинг
текста вверх
[ss9] -
скроллинг
текста ввниз
Режим
редактирования
CURSOR
([cs5]-влево, [cs8]-вправо)
[cs6] -
курсор вниз
на строку
[cs2] - CAPS
LOCK - режим
больших букв
[cs0] -
BACKSPACE - забой
[Break] -
CANCEL - отмена
[ENTER] -
ввод
Управление
панелями
[cs1] -
переключить
экраны
[ss3] -
перекл. Dec/Hex
[ss4] -
перекл.
Disasm/List(дамп)
[ss5] -
вкл/выкл
показ меток.
Анализируется
содержимое
первой
страницы
меток ALASM (при
входе из ALASM в STS
записывается
номер
страницы и
адрес начала
меток ALASM). Если меток
больше
16k,
то ничего не
получится :(
[cs+ss] -
режим каталога
диска.
Вызываются
все дисковые
команды
(смена
дисковода,
запись/чтение
файла, запись/чтение
сектора),
при
этом имя
файла
автоматически
копируется с
позиции
курсора.
Чтение
файла
возможно
также по
клавише <ENTER>.
Команды-окна
с параметрами
[Q] - Quit.
Перед
выходом
восстанавливается
SP (какой был
при
запуске
STS), IY=#5C3A, об
остальном
см.историю
изменений: v5.7.
Quit To BASIC
выходит в
бейсик через
JP #0058. Из TR-DOS можно
вернуться
по команде RETURN.
[I] - Fill
block. Заполнение
участка
памяти
блоком кодов
длиной
1..8
байт, символ
"▒"
используется
для определения
конца блока,
передвигается
с помощью
ввода новых
символов и DELETE
([cs0]).
Резидент
восстанавливается,
его можно затирать.
[O] - Copy
block. Резидент не
восстанавливается!
[L] - Load
file. После ввода
имени файла STS
читает
каталог
диска,
определяет
наличие
файла, и если
таковой
имеется,
выдает
в
строках Start и Len
информацию о
файле (старт
и длина) из
каталога.
[S] - Save
file. Для
перезаписи
файла на
старое место
после
ввода
расширения
файла
нажмите не [ENTER],
а [ssENTER] и
удерживайте
[ss] примерно 1
секунду. Файл
перезапишется
на
старое
место из
памяти - с
адреса и с
длиной согласно
каталогу.
[ssL] - Load
sectors, [ssS] - Save sectors. STS может
правильно
прочитать/записать
не только TR-DOS
сектора, но и 1
сектор
MS-DOS, IS-DOS
и других
систем, у
которых
длина
сектора не
равна
256
байтам. #3d13
этому не
мешает.
Резидент
восстанавливается,
его
можно
затирать, но
нельзя
затирать переменные
TR-DOS. Также
нельзя
нажимать Break.
Если хотите
старый
лоадер, его
можно
включить
через
исходник...
[R] - Set
Resident address. По
умолчанию=23698.
[B] - Set
Bank. Значение
для порта 32765=#7FFD.
Для
тех, кто не
знает, даю
описание
битов порта #7FFD:
0,1,2 -
переключение
страницы ОЗУ
в фирменном ZX
Spectrum 128
3 - номер
активного
экрана
4 - номер
ПЗУ: 0=Basic128, 1=Basic48
5 -
защелка
порта, 1=48k
компьютер.
Для Pentagon 1M - ещё
один
бит
номера банка.
6,7 -
дополнительные
биты номера
страницы ОЗУ
для
расширений
512k/256k(Pentagon),
в фирменном
128-ом не
используются.
7-й бит
также
поддерживается
компьютером
KAY1024, за счёт
этого KAY1024
тоже
может
полноценно
работать с STS7.x,
лежащим вне
основных
страниц
ОЗУ.
Расширенную
память
других компьютеров
(кроме ATM2)
понимает
STS6.x.
[ss1] -
Выбрать
дисковод. От A
до D.
[M] - Set
MemAdr. Установка
адреса, с
которого
будет выводиться
информация
в панели.
[F] - Find.
Поиск блока
байтов,
текста или
команды Z80 по 'AND'
маске:
байты из
памяти
маскируются,
т.е. биты с
маской 1
остаются,
с маской 0 -
выключаются
и
сравниваются
с
маскированным
значением в
"bytes". (Inverse - поиск
до первого
НЕсоответствующего
байта.) Если
последовательность
не найдена во
всех
64K памяти с
текущим Bank, то BORDER
будет
красным.
Команды без
параметров
[N] - find
Next.
Продолжение
поиска с
позиции
курсора. Если
панель
находится в
режиме List, то
строка будет
найдена
точно в
позиции
курсора. В
режимах Disasm
такой точный
поиск
сработает
только
верхней
строке
панели (из-за
различной
длины команд
Z80).
[ssM] -
MemAdr=PC. Переходим
туда, где в
данный
момент "застыл"
виртуальный
процессор Z80.
[P] -
MemAdr=адрес,
упоминаемый
в тексте, где
стоит курсор.
Примеры:
1) курсор
стоит на
регистре HL #E234;
жмем
[P]=> перейдем
на #Е234;
2) курсор
на команде LD IX,#8456;
жмем
[P]=> перейдем
на #8456.
[ssP] - Return
to old MemAdr. Вернуться
назад после
перехода по
кнопке
[P]. STS помнит 32
последних
перехода.
[A,1/2/3/4/5]
- запомнить MemAdr.
Нажать [A],
отпустить,
нажать
номер
ячейки: от 1 до 5
(по умолчанию
в этих
ячейках
адреса
#6000, #8000,
#c000, #5d3b и #5cf4
соответственно).
[1/2/3/4/5] -
MemAdr=запомненный
Adr. Тот самый.
[ssN] -
DumpAdr(адрес
ячеек,
светящихся
вверху
экрана)=SP
[V] -
DumpAdr=cursor
[Z] -
PC=cursor
[E] -
переключение
ПЗУ (BASIC/DOS). В ПЗУ TR-DOS
команды OUT/IN,
а
также
команды,
читающие
само ПЗУ TR-DOS, не
эмулируются!
Команды
отладки
[W] - Write
break point. Поставить
точку
останова (3
байта).
Когда
отлаживаемая
программа
дойдёт до этой
точки, она
возвратится
через
Резидент в STS и
восстановит
эти 3 байта
как
было.
Не
использует Stack.
Одновременно
можно поставить
только
одну
точку! После Quit
в Монитор
можно
вернутся не
только через
#db00,
но и через Break Point.
[ssK] -
Jump to PC with Screen 1
[ssJ] -
Jump to PC with Screen 0
[ssZ] -
Step command. Выполнение
текущей
команды Z80.
[ssX] - Step
command with Run CALL. То же
самое, но
команды CALL
запускаются
из Resident'а. Эту
команду, в
отличие от
следующей,
можно
выполнять в
ПЗУ.
[ssT] -
Run+Break. После текущей
команды
ставится Breakpoint,
после
чего STS смело
прыгает в эту
команду. Так
можно делать
только
в ОЗУ.
[U] -
Перейти к
памяти User'а в
банке STS.
Изначально
там RET'ы.
[ssU] - Call
User subroutine. Вызов
того, что вы
там написали.
[J] - Jump
Adr. При запуске
устанавливается
0-й экран.
Возврат
в STS - через
точки
останова.
[C] - Call
Adr. То же, но
возврат -
через RET.
Отлаживаемая
программа не
должна
использовать
область
памяти
Резидента.
[Т] -
Trace. Окно
трассировки
в пошаговом
режиме:
GO -
начало трассировки;
Indicate - с
индикацией/без
нее (без
индикации
включается
0-й
экран);
ReDisasm - с
перерисовкой
панели после
каждой
команды или
без;
Stop if Dos -
останов при
переходе к TR-DOS.
При входе
автоматически
включается
просмотр TR-DOS;
при выходе -
отключается;
Stop if Find -
останов по
заданной в Find
команде, Inverse не
работает;
Stop if User - при
отладке
каждой
команды
запускается
подпрограмма
пользователя
из области User'а (см.про
[U]). Если
она
возвращает NZ
(или ничего
не меняет), то
продолжается
трассировка,
иначе
останов.
Примеры
использования
этой
навороченной
функции:
1)
Необходимо
остановиться,
когда в ячейке
(#7345) будет #34:
[U],
вводим
подпрограмму:
LD A,(#7345)
CP #34
RET
2)
Необходимо
остановиться,
когда в HL=#1243:
[U], вводим
подпрограмму:
LD HL,(#FEEC)
;(см.ниже про
адреса
регистров)
LD DE,#1243
AND A
SBC HL,DE
RET
Stop on Adr -
остановка на
адресе;
Trace Bank -
вкл./выкл.
обработки
команд
вывода в порт
#7ffd
(проверяются
1-й и 15-й разряды
адреса). При
выкл. они не
будут
переключать
память, при
вкл. - будут;
Trace Call -
вкл./выкл.
трассировки
команд CALL. При вкл.
отладчик
заходит
'внутрь'
процедуры ([ssZ]),
при выкл. -
запускает
([ssX])
[D] - Disasm
To Disk.
Дизассемблирование
на Диск. В
первом
окошке
указываете:
Start - адрес
начала
дизассемблируемой
области памяти.
End - адрес
её конца
(включительно!
в Copy и Fill - тоже).
End
не должен
быть равен #FFFF=65535.
Во
втором
окошке:
Start -
начало
локального
блока,
вычисляется
автоматически.
End - адрес
конца
локального
блока.
Disasm/DEFB N -
дизассемблер/дамп
памяти (по N
байт в
строке).
Дизассемблирование
происходит в
два прохода.
На первом
создается
таблица
меток
(используется
буфер #c000-#daff в странице
STS'а),
на
втором
собственно и
происходит
дизассемблирование
с выгрузкой
на
диск (буфер
организуется
по адресу #4000).
О
том, о сём
При
запуске STS из 7-й
страницы
используется
1-й экран,
иначе
0-й.
Некоторые
ошибочные
ситуации
индицируются
изменением
цвета
BORDER'а:
красный
- последовательность
не найдена в
64К памяти
(команда
Find)
или Disk Error (не для #3d13
версии!);
фиолетовый
- неправильно
введены мнемоники
ассемблера.
Расстояние
между
командой и ее
операндами
(данными)
должно
равняться
1 пробелу;
число цифр в HEX
числе должно
быть строго 2
или
4, смотря по
команде;
команды типа
RES 5,A,(IY+1) не
ассемблируются;
голубой
- нет места на
диске;
Резидент
- блок кодов
переменного
содержания,
но с
постоянной
длиной
в 31=#1F байт (для STS7.0),
размещается
в области
#4000..#BFFF
(для 48k - в любой
области).
Резидент
используется
монитором
для доступа к
любой
странице
памяти
(Bank).
Резидент
динамически
изменяется и
восстанавливается
(не всегда,
см.
примечания к
командам).
При
перемещении
Резидента
восстанавливается
память,
бывшая "под
ним".
Перед
дисковыми
функциями
восстанавливается
память "под
Резидентом",а
после -
заново
запоминается.
При
запуске STS
память под
Резидентом
запоминается,
при QUIT она
не
восстанавливается.
Расположение
значений
регистров Z80 в
STS:
+0 +2 +4 +8
#FEE4 : PC SP
IX IY
#FEEC : HL DE
BC AF
#FEF4 : R
#FEF5 : I
#FEF6 :
HL'DE'BC'AF'
#FEFE : MemAdr
Подпрограмма
вывода
числа/метки в
режиме показа
меток лежит
тут:
Адрес
входа: #FE6C
Вход:
bc=число для
печати
hl=позиция
для печати(не
всегда)
Необходимо
сохранять: bc,de',ix
Что
хранится в #ff00 (BUFFER)
не во время
дисковых
операций:
#FF00 - user
область при
userarea=0;
от
#FF80 вниз - P_BUFFER для
кн."P" (P_BUF_ADR);
#FFBE -
адреса строк,
показанных
на экране;
#FFFF -
портим для HALT
при IM2.
STS6.2
написан
Дмитрием
Парцырным (STALKER)
в сентябре 1997.
Его
адрес на тот
момент:
310002,
г.Харьков,
ул.маршала
Бажанова, д.12,
кв.52 (0572)452569
Исходники
были
переданы
автором Faster'у из
TNL, тот отдал их
Capry
из Stall, а Capry отдал
мне (Alone Coder'у). Я передал
авторские
диски
исходников
Crank'у из Techno Lab в
свободное
распространение
и выпускал
версии:
STS 5.3lite
(aug'02):
/Шрифт
взят из ПЗУ.
Упрощён
дизайн и
убраны тени
от окошек.
(сейчас
больше
некого
удивлять
тенями у окошек!)
-Исправлена
ошибка при
редактировании
дампа памяти
(несимвольные
байты
уничтожались,
теперь они не
изменяются,
см.
Sinclair Club#5 ).
*Адрес
резидента по
умолчанию - 23698.
Область памяти
под
резидентом
теперь
запоминается.
*По
умолчанию
трассировка
настроена на
обход CALL и выключенную
индикацию.
Для того,
чтобы
проигрывать
музыку из STS
двумя
командами
:)
/Убраны
"две кнопки
сброса на
клавиатуре" ;)
Теперь нет
сетапа.
Единственное,
что от него
осталось -
кнопка E как
выбор ПЗУ:
TR-DOS/Basic.
/Убраны
редко
используемые
кнопки SS/K,SS/J,SS/8,SS/9, а
также
Sinclair-джойстик.
*Дизассемблер
оставлен. Но
имя файла
фиксировано:
"Z5H3PNCn",
где
n - порядковый
номер файла.
Размер каждого
из
генерируемых
файлов
не более 96
секторов
(было 97 ).
Дизассемблирование
на
диск
в отладчике,-
в принципе,
ненужная
функция,
поскольку
есть
гораздо
более мощный
дизассемблер
Иноземцева
(см. ZX-Power#2 ).
Формат
возвращаемого
текста
полностью соответствует
входным
файлам
импорта ALASM4.4x,
так что легко
поддаётся импортированию
непосредственно
в ассемблер.Пришлось
заменить <CRLF>
на <CR>,
EQU
на "=", а <EOF>
убрать (по
причинам
нехватки памяти).
В
качестве
буфера меток
при
дизассемблировании
используется
неактивный
в данный
момент 0-й
экран (#4000) или, если
он
активен,
то область #C000 в
странице
монитора.
+Функция
Anti-Caps,
стандартная
для всех
системных
программ:
при
Caps Lock=on можно с Caps'ом
вводить
строчные
буквы. Она
была
выброшена
после STS 4.x.
STS 5.3lbf:
*При
дизассемблировании
на диск
вместо табуляции
между
командой
и
операндом
ставится пробел.
* ex af,af'
заменено на exa.
*Все
команды и
числа
показываются
строчными
буквами
(сделано
специально
из-за
ПЗУшного
шрифта).
+Выбор
дисководов.
+Возвращены
кнопки ssK,ssJ.
-fixed
баг v5.3 lite: ввод
десятичных
чисел.
-fixed
авторский
глюк: при
контекстном
переходе
верхняя
строка
дизассемблировалась
без меток вне
зависимости
от режима.
Источник
ошибки: адрес
контекстного
перехода STS
выясняет с
помощью
вызова
процедуры
дизассемблирования
с перехватом
во
время
печати
16-разядного
числа. Перед
этим дизассемблированием
отключается
показ меток,
иначе
невозможно
поймать эту
печать.
Режим
показа меток
восстанавливался
только в
конце печати
очередной
строки (т.е.
уже после
печати первой
строки
экрана).
Исправлено:
режим показа
меток
восстанавливается
в начале
печати
строки.
STS 5+3lbf:
-Дизассемблирование
на диск
работало только
при STS, лежащем
в
7-й
банке.
Источник
ошибки: буфер
в страничке
вынуждал
сохранялку
менять
резидент.
Исправлено: используется
всегда
буфер
#4000.
-Исправлена
ошибка
подсчёта
регистра R
при
трассировке.
+Две
версии: modern (romfont+disasm) и
classic (stsfont+user).
Во
второй Disasm нет,
но область
пользователя
увеличена.
STS 5.4ext:
+Extend
вызывает
файловое
меню в стиле STS
6.x.
!Кнопка
выбора
дисковода
теперь ss1(!) (было
Extend).
:Убран
полуэкранный
режим.
+Реализован
стек ссылок
по кнопке P,
как в STS 6.x.
+Временно
возвращены
инверсные
заголовки и
тени у
окошек.
STS 5+4ext:
- sts5.4
портил себя,
будучи
загруженным
не в pg7 (атрибуты,
неправильное
поведение
кнопки down в
редакторе
строк...).
-В
менюшках sts5.4
вместо
клавиш up, down
действовали
клавиши
left, right.
-В
дисковом
меню sts5.4 (small)
символ "_",
если он был
последним
символом
имени файла,
оставлял за
собой след.
-В
дисковом
меню STS5.4 (BIG)
неправильно
показывал непечатные
символы.
+48k
обратно
поддерживается
(резидент в
этом режиме
может быть
выше
#c000 ). Между
прочим, Disasm тоже
работает :)
STS 5.5:
+rus version
(font by AlCo & John).
-кнопка
X не работала
в режиме ASM.
*вместо
кнопки X (она
удалена)
реализовано отображение
ВСЕХ
регистров
(Himik's ZxZ: по мотивам
анимированных
бегемотов ;)
-ввод
имени диска
перемещён в
угол, раньше
от него
оставался
след.
-после
выбора
дисковода
происходит
позиционирование
на 0-ю
дорожку.
+во
всех 3
компиляциях
ЕСТЬ область
пользователя!
8)
STS 5+5:
-при
выходе в
ассемблер
забывалась
текущая
банка памяти
(ошибка
ВСЕХ
версий).
-в STS
5.5 после ssZ (ssX)
забывались
границы
текущей панели.
!для
настройки
глобального
цвета
исправляйте
байт: STS55:#f3db;
sts55:#f711;
sts55rus:#f3d7.
STS 5.6:
-при
позиционировании
делается
задержка. Возможно,
sts станет
записывать
всегда
правильно и
на тех дисководах,
где раньше не
записывал
правильно
никогда.
* DEFB
заменено на db
-при
дизассемблировании
блока,
состоящего
только из DEFB, не
очищалась
таблица
меток!
+поддержка
pentagon 1M
+при
сохранении
Basic'ов в каталог
пишется Start=Len. В менюшке
больше
не
предлагают
Len=oldStart :)
-при
выходе из
каталога
устанавливался
текущий
адрес = 0
!color(rus)=#f3ea,
color(dis)=#f718, color(BIG)=#f3ee
!если
вы уже
исправляли ALASM
под STS5.5, то
вместо #dff6
пишите
#dffa,
потому что
для
интеграции с
ALASM требуется найти
(STSом)
в
файле "al??_4??.C"
(все эти
числа там
есть только один
раз):
LD (#FE63),HL
;адрес
области
меток
(заменить на #FE7C)
LD
(#FE69),A ;страница
с метками
(заменить на
#FE88)
LD
(#DF17),A
;страница
ассемблера
(заменить на #DFFA)
Это для
старых
аласмов.
Наоборот поступайте,
если хотите
подру-
жить
новый ALASM со
старым sts6.x (не
забудьте про
адрес
запуска
#db00
вместо #dc07!).
STS 5.7:
-sts
иногда
грузил
неверно
спозиционировавшись
(из-за
сброса
контроллера,
если в порту (ff)
был 0)
+адрес
в каталоге
независимо
от адреса в
памяти.
+если
после Jump войти
в STS из аласма,
адрес ставился
не
аласмовый,
а 0 или breakpoint.
Причем STS
восстанавливал
память
под
брякпойнтом.
Теперь
против этого
сделана
спец.точка
входа в STS=#dc07.
Точка, кроме
того, не портит
трассировочную
регистровую
модель (портил
SP, но см.5+7),
т.е.
можно
выходить в
аласм, чтобы
что-нибудь
посчитать во
время
трассировки.
Точка #db00
работает как
раньше, хотя
думаю тоже
прибить
в ней работу
с
брякпойнтами
(это сложнее).
Учтите, что:
при
CALL DOS происходит
(IY+1),#cc,
в
регистровой
модели
делается EI, IY=23610, I=0;
при
EXIT to BASIC тоже (IY+1),#cc, EI, IY=23610,
но HL'=10072.
+во
избежание
самоубийства
STS всегда
выключает
кэш
*color 7
*убран
splash
STS 5+7:
-при
первом
запуске из alasm
был неверный
SP
-SP
из
регистровой
модели
больше не
портится при
выходе в alasm!
*все
ненужные
регистры при
запуске
обнулены
*exd
вместо ex de,hl
STS 7.0 demo
(feb'05):
*выход
в ассемблер
заменён на RET с
IY=23610. Работает везде.
Можно
выходить в ACE :)
-стеком
STS
запарывался
его
собственный
шрифт.
Добавлено 2
байта
на
стеке
*в
исходнике
можно
выключить
сохранение резидента
и подписи на
окошках
+3d13
(используется
стек
отлаживаемой
программы), с
порчей
перем.трдос.
Т.е. загрузка
секторов
через STS эквивалентна
вызову
#3d13 из
отлаживаемой
программы. И
наоборот
+наконец-то
полная
версия rus+disasm!!!
убраны
только лишние
рамочки
в шрифте - они
в дампе ни к
чему
+наконец-то
клавиатура
синхронизирована
с
прерываниями!
в STS
вектор
прерываний I=59,
при IM2 не
портится
ничего, при IM1
портится
#5c00-08 и 24672/3
-бордер
не
восстанавливался
при выключенном
звуке
STS 7.0
(mar'05):
-не
декомпилировал
-мог
запороть
свою
регистровую
модель
-не
хватало ещё 8
байт на стеке
для IM 1
-не
сохранял
последний
сектор файла
(некруглого)
*сплошная
нумерация
ВСЕХ
декомпилируемых
текстов.
Пригодилось,
когда
декомпилил
изменения в
DOS6.05... Полезная штука
оказалась
декомпиляция
в STS: ищем
несовпадения
FileComparer'ом,
записываем
на бумажку, в
STS'е
сравниваем и
не отходя от
кассы
декомпилируем
фрагменты...
/убраны
проверки на
корректность
вводимых
адресов при
декомпиляции
- думайте
своей
головой
+"Y"
переключает
отображение/неотображение
русских букв!
-резидент
был 34 байта, а я
думал, что 32.
Теперь 31, так
что не
затирает
RAMTOP
-применён
фикс Ивана
Рощина по
поводу определения
состояния
прерываний.
К сожалению,
он в
несколько
раз увеличивает
вероятность
запарывания
области
перед
резидентом.
Есть идея, как
исправить:
не
переустанавливать
SP и сохранять A
и BC через LD
alone_coder?mail.ru
2:5029/77.48 (4912)751390
8(960)5718620
390026
Рязань,
Высоковольтная,
37к1 кв.12,
Быстрову Дмитрию
Мих.