Old-DOS.ru

MENU — Организация меню для применения в BAT-файлах

Системные программы >> Утилиты >> Автоматизация, скрипты, BAT-файлы
Главная страница Файлы Игры Поиск Форум Wiki Библиотека Галерея Гостевая Ссылки О проекте

Логин:
Пароль:


Регистрация
Восстановление пароля




+ ОПЕРАЦИОННЫЕ СИСТЕМЫ
   + DOS
      • IBM PC DOS
      + MS-DOS
         • SDK
      • DR-DOS
      • FreeDOS
      • Сборки на базе DOS
      • Расширители DOS
      • Другие платформы
   + OS/2
      • SDK
   + Windows
      + Windows 1.x-3.x
         • Патчи и дополнения к Win1.x-3.x
      + Windows 9x
         • Патчи и дополнения к Win9x
      + Windows NT
         • Патчи и дополнения к WinNT+
      • Сборки на базе Windows
      • SDK
   • Linux/Unix
   • СР/М
   • Другие операционные системы
   • Загрузочные диски
   • Готовые образы операционных систем
   • Многозадачные оболочки
   + Системные программы
      • Твикеры
      • Русификаторы
      + Утилиты
         • Оборудование
         • Работа с CD/DVD
         • Инсталляторы
         • Автоматизация, скрипты, BAT-файлы
         • Системные
         + Инструменты
            • Turbo Pascal Pentium II DIV BUG fixing
         • Прочее
      • Замедлители
      • Тесты оборудования и системы
      • Обновления
   + Драйверы
      • Звук
      • Видео
      • Мыши
      • CD/DVD
      • Клавиатура
      • Принтеры
      • USB
      • Сеть
      • Память
      • Материнские платы
      • Периферия
      • Другое
   • OS BuildList
+ ЭМУЛЯТОРЫ И СИМУЛЯТОРЫ
   • Эмуляторы калькуляторов
   • Консоли
   • Эмуляторы компьютеров
   • Инструменты для эмуляторов
+ ПРОГРАММИРОВАНИЕ
   + Assembler
      • Disassembler
   • Pascal/Delphi
   • C/C++
   • Basic/Visual Basic
   • Фортран
   • SDK & DDK, etc.
   • Декомпиляторы
   • Форт
   • Генераторы блок-схем
   • Лисп
   • Пролог
   • Java
   + Отладчики программ (DEBUGGERs)
      • Трассировщики
   • Другие языки программирования
   • Справочники и учебники
+ BIOS, прошивки
   • Прошивки
   • Редакторы BIOS
   • Прошивальщики
+ ДИСКИ И ФАЙЛЫ
   • Файловые менеджеры
   • Каталогизаторы
   • Копировщики
   • Поиск файлов, текста, байтов
   • Сканирование каталогов
   • Архиваторы
   • EXE-упаковщики
   • EXE-распаковщики
   • Восстановление информации и резервное копирование (бэкап)
   • HDD-утилиты
   • Дискеты
   • Разное
• СУБД
+ ОФИС
   • Интегрированные программные пакеты
   • Издательские системы
   • Электронные таблицы
   • Редакторы текста
   • Редакторы HTML
   + Утилиты для работы с текстом
      • OCR - распознавание текста
      • Просмотр документов
      • Печать
      • Перекодировка
      • Сравнение текстов
      • Шрифты
      • Работа со шрифтами
   • Словари и переводчики
   • Правописание
   • Органайзеры
   • Создание презентаций
   • Бизнес
   • Разное
+ ОБРАЗОВАНИЕ И НАУКА
   + Информатика
      • Программирование
   + Инженерное ПО
      + Расчётные задачи
         • Пар и вода
      + ЧПУ
         • ЧПУ Редакторы
         • DNC
      + САПР
         + Механика - моделирование 2D/3D
            • AutoCAD и утилиты для AutoCAD'а
         • Строительство
         • Электроника, радио- и электротехника
   • Тестирование знаний и навыков
   + Обучающие программы
      • Музыка
   + Математика
      • Калькуляторы
      • Эмуляторы калькуляторов
   • Физика
   • Химия
   + Электроника и электротехника
      • ПЛИС, PAL
      • Справочники по электронике
      • Расчётные утилиты
      • Программаторы
      • Микроконтроллеры
   • Астрономия
   • Астрология
   • География и картография
   + Биология и медицина
      • Психология
   • История и политология
   • Лингвистика
   • Гаданье на кофейной гуще
   • Справочники разные
+ БЕЗОПАСНОСТЬ
   • Антивирусы
   • Шифры и пароли
+ ИНТЕРНЕТ И СЕТИ
   • Эмуляторы терминала
   • Браузеры
   • Почтовые клиенты
   • IM-меседжеры
   • Звонилки
   • Кодеры/декодеры UUE
   • Пейджеры
   • FTP
   • BBS и FIDO
   • Работа с СОM/LPT
   • LAN
   • Удалённое управление
   • Факсы
   • Работа с мобильными телефонами
   • Разное
+ МУЛЬТИМЕДИА
   + Графика
      • Просмотр графики
      • Редакторы графики
      • Грабберы графики
      • Конвертеры
   + Звук и видео
      • Проигрыватели (плееры) аудио и видео
      • Редакторы аудио и видео
      • Грабберы (захват) аудио и видео
      • Синтез речи
      • Конвертеры
      • Кодеки
   • Разное
+ РАБОЧИЙ СТОЛ
   • Календари
   • Часы
   • Напоминалки
   • Скринсейверы
   • DEMO
   • Программы-шутки
   • Разное
+ АНДЕРГРАУНД
   + Hack tools
      • Крякеры
      • CRK-утилиты
      • Генераторы лоадеров (Loader generators)
      • Патчи, коды
      • Детекторы
   • Стеганография
   • Шестнадцатеричные редакторы
   • Вирусы
• РАЗНОЕ
• ФЕЙКИ, ПОДДЕЛКИ, ХИМЕРЫ
• --НА УДАЛЕНИЕ
• КАК ЗАГРУЖАТЬ ФАЙЛЫ НА Old-DOS




MENU — Организация меню для применения в BAT-файлах
ОписаниеИнформация
Организация меню для применения в BAT-файлах для DOS и DOS-окна Windows.

Клавиши: Вверх, Вниз, Home, End, PgUp (= Home), PgDn (= End), Enter.

Сохраняется выбранный пункт меню (он выделен при последующем запуске).
Сохраняются только пункты меню с кодами возврата < 200 (это бывает нужно).
Если установить у файла MNU атрибут Read-Only, то изначально выбранный пункт остаётся.
Меню должно умещаться в один экран, максимально 22 пункта (можно и больше — на экране будут только центральные 25).

Также отображаются день недели, день месяца и время.

При запуске menu.com без параметра отображаются только дата и время (выход — по нажатию клавиши).

Размер файла menu.com: 1216 байт.

Написана на Ассемблере, компилятор — MASM 6.13. Исходные тексты прилагаются.

Программа работала около 5 лет в одной организации на примерно 20 компьютерах.
Раздел: Автоматизация, скрипты, BAT-файлы


Скриншоты
Операционная система: DOS, DOS-окно Windows
Требования: -
Автор: SergeCpp
Издатель: -

Добавил: SergeCpp (2011.05.20)
Доступные файлы - сортировка по имени и версии, времени добавления
Файлов: 2.
ФайлРазмерВыпускВерсияЯзыкКачествоЗагрузил
Ссылка MENU[!]
ArcСкачать1392
26.9 Кб2001 Мультиязычный (русский)[100%]SergeCpp
2011.05.20
Ссылка MENU_80x25
ArcСкачать424
8.9 Кб2019(Rebuilded)Мультиязычный (русский)[Не подделка]Nika
2019.03.09
Оригинальная программа подправлена для трансляции c TASM v.5.0.
Добавлена опция трансляции, позволяющая собрать версию для стандартного режима дисплея 80х25.

Пожаловаться

Комментарии
#1 Автор: Nika (2013.04.13 01:21)
Моё почтение.

#2 Автор: SergeCpp (2018.03.21 12:42, изменений: 2, 2018.03.21 15:39)
Процедуру выключения я позаимствовал у одной из старых версий (2000 год плюс-минус) symon (symon.ru) (при помощи soft-ice).

P.S. ...Ой... Похоже, я файл OFF.COM туда не включил почему-то... Не помню уже...

В Ralph Brown Interrupt List, вроде бы, есть такая функция.

P.P.S. Нашёл в сети подобное, на форуме выложил: http://forum.old-dos.ru/viewtopic.php?f=4&t=1028&p=12918#p12918

В symon, насколько помню, был только один вызов прерывания. Или я уже забыл...

#3 Автор: Dim_On (2019.03.05 23:16)
А реально ли исправить отображение в vDos? (https://www.vdos.info)
А то менюшка разбегаеться (https://ibb.co/GMgdrYR)

#4 Автор: Nika (2019.03.06 00:29, изменений: 7, 2019.03.06 02:40)
Программа прячет курсор (int 10h / ax=1),
заодно устанавливает режим экрана с сорока колонками вместо восьмидесяти,
(чтобы сделать текст меню более крупным)
и эта система у вас не отрабатывает <int 10h/ax=1> как положено, всё равно остаётся 80 колонок.
Соответственно и программа отрисовывает меню некорректно.
Вряд ли тут есть какое-то простое решение.


Кстати, попробуйте в той системе похожую по назначению программку choiceS:
http://old-dos.ru/index.php?page=files&mode=files&do=show&id=3096
- Она попроще, но тоже вполне удобная.

#5 Автор: Dim_On (2019.03.06 16:30)
Nika, спасибо за совет. Меня choiceS вполне устроил.

#6 Автор: SergeCpp (2019.03.07 14:06)
"Исходные тексты прилагаются." -- изменить там всё, что нужно. MASM 6.13 на old-dos есть (вроде бы). Да и если б не было -- ещё лучше, можно получить опыт настройки текста программы под другой ассемблер.

Или в hiew поправить, получив тоже хороший опыт.

#7 Автор: Nika (2019.03.07 22:33, изменений: 7, 2019.03.07 22:48)
Так в какую сторону менять? - в сторону отрисовки на экране 80х25?
- Вопрос-то был, что программа в конкретной системе не корректно работает.
Значит, проблема в этой самой системе, а не в программе.

..У меня вот всё корректно работает даже в WinXP сеансе DOS.
А такая какртинка, как у Dim_On, получается, если занопить вызов int 10h/ax=1,
который по смещению 0x31B в файле MENU.COM.
(Hide cursor/set cursor shape)

.. Вообще, конечно, я бы не менял разрешение экрана, а работал в текущем.
Но это надо довольно существенно переделывать программу.

#8 Автор: SergeCpp (2019.03.08 12:33)
Да. Поправить, чтоб 80 было.

Если программа в системе не работает, то легче поправить программу (в данном случае).

40 сделано, чтоб покрупнее и покрасивее было.

Что там переделывать надо, я не помню. Вроде бы, hiew достаточен. Тем более, что текст есть для консультации.

#9 Автор: Nika (2019.03.09 01:44, изменений: 5, 2019.03.09 02:19)
Да ковырять её в Hiew смысла нет, раз есть исходные тексты.

Добавлен ребилд - MENU_80x25:
Оригинальная программа подправлена для трансляции c TASM v.5.0.
Добавлена опция трансдяции, позволяющая собрать версию для стандартного режима дисплея 80х25.
(См.скриншот)

Dim_On, попробуйте эту версию в той вашей системе, где старая программа рисовала меню некорректно.
Всё должно работать нормально.

#10 Автор: SergeCpp (2019.03.09 06:54)
Nika, спасибо!

#11 Автор: Nika (2019.03.09 10:08)
) Это было несложно. Изначально там всё было сделано по уму, через переменные времени трансляции.

#12 Автор: Dim_On (2019.03.11 10:50)
https://ibb.co/RBmfh13
Отлично работает. Спасибо!

Имя:
E-mail:
 =
Ваш комментарий:
Программирование - процесс вероятностный

For abuses about copyright: srzone@mail.ru
Для жалоб на авторские права: srzone@mail.ru
Float 1.0.3 Copyright © 2008-2023 StrannikRiddler. All rights reserved.
18+. Находясь на этом сайте, вы соглашаетесь с его правилами
12 queries, db time 0.004645, memory 1482.3 Kb, total time 0.078 sec