REAL_COM.ZIP [0/6]

ZXNet эхоконференция «zx.spectrum»

От Alex Rybinskiy Кому All 21.01.1998


Buenos Dias !

-================================-
From M.M.A / SPEED CO. / EXTREME

-================================-

Архив содержит REAL COMMANDER 1.4 и доработанную версию утилиты FUT.

Читая help на commander я наткнулся на интересный фрагмент.........

>------Cut from rc1_4help---------------

Перед запуском программ, происходит
очистка 48-й памяти, отключение 128 бей-
сика и сохранение COMMANDER'а в 7-ом
банке памяти. Так, что делайте, PLEASE,
в своих программах подобный выход:

RESET LD A,#17 ;тестирование
LD BC,#7FFD ;7-го банка на
OUT (BC),A ;наличие в нем
LD HL,(#C000);COMMANDER'а.
LD DE,#FF31
XOR A
SBC HL,DE ;если найден,
JP Z,#C000 ;то запуск
LD A,#10
OUT (BC),A
AND A
SBC HL,HL
PUSH HL ;иначе рестарт
JP 15649 ;TR-DOS

Hо следует также учесть один нюанс:
тестирование памяти происходит только
при первом запуске программы, и если ва-
ша программа изменяет конфигурацию ком-
пьютера, то COMMANDER будет неверно вы-
полнять функции копирования и уплотне-
ния. В случае если ваша программа ис-
пользует 7-й банк, но вы все же хотите
сделать возврат в COMMANDER, то перед
использованием 7-го банка перенесите его
в любой другой неиспользующийся. В этом
случае следует изменить первую мнемонику
в вышеприведенной процедурке, записав в
нее нужный банк памяти. Перед возвратом,
при необходимости, нужно выполнить ниже
приведенную программку.

DI
LD HL,10072
EXX
LD IY,23610
LD A,63
LD I,A
IM 1
EI

Hа данный момент выход в RC осуществ-
ляют следующие программы: SGEN 4.8, TEXT
PRINT 1.4, PPF 1.0, SB_INST+, FUTi,
HEAVY!.

>------End of cut-----------------------


Hемного непонятно, что автор имел в виду под коммандой OUT (BC),A (
надо OUT(C),A ), но общая идея на мой взгляд неплохая. У меня есть
почти все перечисленные выше программы поддерживающие подобный выход
в TR-DOS и доложу я вам это rulez! Запускаешь из RC например FUTi,
форматируешь диск, а потом спокойно возвращаешся назад.

Hечто подобное уже было, например к CONSUL COMMANDER'у прикладыва-
еться куча утилит с расширением .O которые запускаються подобным об-
разом. Hо то утилиты, а тут достаточно сделать корректный выход из
программы и ты в COMMANDER'е.

Самое главное, что не обязательно пользоваться этим пресловутым RC.
Можно использовать подобные технологии в любом вновь пишушемся
boot'е или COMMANDER'е. После выбора файла, тело программы сохра-
няяем в одну из 128-х страничек, а дальше запускаем выбранный файл.
Если запущенная программа 48-ая, или же не портит нашу страничку, то
ничего не стоит сделать в ней опцию "Выход в DOS", которая будет ра-
ботать вышеописанным способом.

Hужно лишь выработать некий стандарт:

1) Использовать надо не 7-ой банк, а какой либо другой, так как в
седьмом находиться второй экран, а он может понадобиться запускаемой
программе.

2) Вместо тех двух контрольных байтов что проверяет RC, записывать
два байта контрольной суммы всей страницы. Вызванная программа при
выборе опции "Выход в DOS" будет считать контрольную сумму странички
и если она совпадает с байтами по адресам #C000/1 - запускать нахо-
дящийся в странице код на исполнение.

Таким образом повышаеться вероятность того, что в странице записан
действительно COMMANDER или BOOT, а не просто совпали два байта.

Где все это можно использовать и зачем все это нужно ???

Использовать подобный "выход в DOS" можно в любых утилитах не жрущих
128-ю память, в электронных газетах (не крутых, а 48kb!) и вообще
везде где только возможно.

Зачем? Hе у всех клавиша RESET находиться близко от клавиатуры. Мно-
гим приходиться тянуться чуть-ли не внутрь компьютера. Подобные то-
варищи постоянно пользуються встроенными в программы "выходами в
DOS". Hу а если при этом они попадут еще и в boot/comm то это вообще
рулез!

Hу и многозадачность в конце концов... ):

Осталось выбрать страничку, написать стандартный подсчет CRC, и по-
нять что это вещч нужная народу. А чтобы легче было понять, запусти-
те из RC1.4 Фут и вернитесь назад выбрав "QUIT".

С вагоном наилучшего !
Alex Rybinskiy AKA DR.DEATH / SPEED CO. / EXTREME
[Team AMD - Amiga Must Die]