Old-DOS.ru

The Animated O

РАБОЧИЙ СТОЛ >> Программы-шутки
Главная страница Файлы Игры Поиск Форум 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




The Animated O
ОписаниеИнформация
Маленькая (410 байт) резидентная программа-шутка крутящая против часовой латинскую букву O в текстовом режиме экрана.
Для остановки крутящего момента нужно нажать одновременно левый и правый Shift.
Раздел: Программы-шутки

В DOSBox (анимированный) (случайный скриншот)
Скриншоты
Операционная система: DOS
Требования: -
Автор: Kenneth J. Macke
Издатель: -

Добавил: Eugene_80286 (2022.05.08)
Доступные файлы - сортировка по имени и версии, времени добавления
Файлов: 1.
ФайлРазмерВыпускВерсияЯзыкКачествоЗагрузил
Ссылка The Animated O
FileСкачать103
3.8 Кб1994  Английский[Не подделка]Eugene_80286
2022.05.08

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

Комментарии
#1 Автор: SokilOff (2022.05.08 20:16, изменений: 1, 2022.05.10 16:44)
Помню, мы когда-то конкурс проводили на самую маленькую резидентную прогу, которая на текстовом экране "находила" все символы '/', '-', '\', '|' и начинала их "вращать".
Победил вариант размером 44 байта

#2 Автор: Eugene_80286 (2022.05.09 07:39)
SokilOff, Давно еще читал какую то книгу про Turbo Pascal и там была задача сделать псевдоанимацию из этих символов)

#3 Автор: SokilOff (2022.05.10 16:53, изменений: 3, 2022.05.10 20:06)
Собственно, вот (увы, нормальное форматирование кода в комментариях не сохраняется):

.model tiny
.code
.586
org 100h

run:

mov dx,offset resid
mov ax,251Ch
int 21h
mov dl,32h
int 27h

resid:

push ds
pusha
mov di,0B800h
mov ds,di

@2:
mov si,offset symbs
mov cl,04

@1:
lods cs:[si]
dec si
cmpxchg byte ptr [di],ah
loopne @1

dec di
dec di
jnz @2

popa
pop ds
iret

symbs db '-','\','|','/','-'

end run

#4 Автор: Eugene_80286 (2022.05.10 21:52)
SokilOff, Класс!

#5 Автор: uav (2022.05.12 00:04)
Интересная программа, очень проработанная в плане ужатия размера. Я практически ничего не придумал в плане уменьшения.
Можно убрать один dec di, программа при этом как бы работает, хоть алгоритм получается неправильный. Позволяет сэкономить 1 байт. :-)
После ещё можно di не инициализировать (ещё минус 1 байт), заменив блок

mov di,0B800h
mov ds,di

на

push 0B800h
pop ds

При этом программа тоже работает (как бы), но стабильность существенно падает (чёрточки-то вращаются, но клавиатура перестаёт нормально реагировать и т.п.).
В общем, без потерь качества ничего не получилось уменьшить.

#6 Автор: SokilOff (2022.05.12 01:33)
uav,

>Можно убрать один dec di, программа при этом как бы работает, хоть алгоритм получается неправильный.

Значит убрать нельзя ;)

>чёрточки-то вращаются, но клавиатура перестаёт нормально реагировать и т.п.

Инициализация через регистр, а не через стэк, сделана не просто так.

#7 Автор: uav (2022.05.12 02:39)
Ну так понятно, что попутно в DI заносится нужное значение.

> Значит убрать нельзя ;)

На практике программа при этом работает, т.к. в большинстве программ не происходит совпадений атрибутов с символами "чёрточек". Но где-то такие совпадения могу быть - при этом некоторые символы изменят цвет. Ну и второе следствие - более медленная работа, т.к. при одном dec di проверяется вдвое больший объём данных
Вообще, если всё делать чисто, то в исходной программе надо делать не mov cl,4, а mov cx,4 (плюс один байт), т.к. состояние cx при вызове прерывания 1c неизвестно, соответственно, цикл может получится не из 4-х шагов, а любой, скажем, если изначально в cx было 01FFh, то после mov cl,4 там будет 0104h, ну и шагов при проверке будет сделано столько же. Ну и в чистом варианте (если не гнаться за размером) надо в конце передать управление прошлому обработчику int 1Ch, иначе клавиатура не совсем корректно работает (я про исходный вариант, а не про свои модификации), ну и другие глюки могут быть - если были другие перехватчики этого прерывания.

#8 Автор: SokilOff (2022.05.12 14:32, изменений: 2, 2022.05.12 14:33)
>Но где-то такие совпадения могу быть - при этом некоторые символы изменят цвет.

Вместо символа будет изменён его цветовой атрибут.

Про CX вместо CL - да, но с CL хотя бы визуально работает корректно.
Про сохранение оригинального адреса обработчика int 0x1C и передачу управления на него - тоже да, но это выходит за рамки задачи.

#9 Автор: uav (2022.05.12 15:55, изменений: 1, 2022.05.12 15:56)
Возвращаясь к исходной программе The Animated O - в описании сказано, что "в DOSBoxе на нажатие шифтов программа не реагирует", но у меня всё нормально - нужно только оба шифта секунду подержать. Экран очищается и программа отключается.
Добавил скрин, кстати, в виде GIF-анимации.
В DOSBox, помнится, иногда некоторые программы не реагируют на клавиши, если запущен Keyrus. Может, и тут было из-за этого?

#10 Автор: Eugene_80286 (2022.05.13 07:24)
uav, Смотрел я в DOSBox SVN-Daum, там почему не сработало. Бывает.

Имя:
E-mail:
 =
Ваш комментарий:
Жизнь не MultiEdit. Undo не сделаешь

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