Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира  
   Турбо Вижн    >>    atlswap
   
 
 DosShell для Turbo Vision с выгрузкой на диск   Victor B. Wagner 6.07.1994

я написал собственный swapper, исходники которого и прилагаю



3k 
 

From: "Victor B. Wagner" <vitus@agropc.msk.su> Organization: Agroecological problems Center Aleksey Fetishev пишет: >Многоуважаемый Олл у меня возникла огpомная необходимость пpи вызове в TV >метода DosShell - нужно освобождать память от своей пpогpаммы(частично), а то >сидит в памяти кусок килобайт эндак на 300 и ни хpена (извиняюсь за выpажение) >пpиличного запустить уже нельзя. Всем кто может помочь я кpичу:"Хееелп! Сос!" <alex@alex.mhti.msk.su> Громак Алексей предлагает такое решение: >Есть библиотечка SPAWN 4.0 (старая, мож у кого новее) под C/C++ и Паскакаль. >С BP 7.0 проверял - работает. Оставляет от себя в Шелле порядка 250-300 байт >(не помню точно). Свапится EMS/XMS/Disk весьма шустро. Использование - >на уровне табуретки: uses Spawn; ... вызов процедурки Shell'а. У меня самого опыта работы с именно этой библиотекой нет, но я пробовал аналогичную библиотеку Elefant и, надо сказать, она мне не понравилась. Когда у меня возникла аналогичная проблема, я написал собственный swapper, исходники которого и прилагаю. Предупреждаю сразу, что адаптирован для Turbo Vision в последний момент и от оригинального графического интерфейса остались кое-какие хвосты, типа процедур запрещающих выключение графического режима при выполнении CloseGraph. Работает это так: Вы описываете ваш объект TMYApplication, который делает все, что положено делать Turbo Vision овская программа в модуле под названием main и компилируете файл Templ.Pas. TMyApplication должен иметь виртуальный метод RunProgram, который и служит для выполнения команды DOS со своппингом. В памяти при этом остается только то, что являлось главной программой, т.е Application.Init; Application.Run; Application.Done; и сама процедура своппинга (см. AtlSwap.Asm) Для того, чтобы это занимало поменьше места и используется такая нестандартная структура. Я чувствую, что мое решение вам не очень понравится, но исходники- вот они. Может разберетесь и сделаете что-то свое. P.S. Немедленную работу не гаранирую, ибо адаптация к TV не отлаживалась Vitus Wagner Origin:SoftWeyr