Збережіть висновок команди у файлі MS-DOS 1.x


27

Здається, що [COMMAND]>[FILE]це не працює в ранніх версіях MS-DOS. Я використовую MS-DOS 1,25, і вищевказаний вираз дає твердження invalid argument.

Оновлення : Оскільки це правда, що він не працює в DOS 1.x, то чи можна отримати цей висновок, використовуючи певну функціональність віртуального вікна або скажімо, отримавши вихід з деяких файлів журналу.


18
Чому ви використовуєте DOS 1,25 ?!
Келтарі

41
@Keltari: Ніяких дратівливих сповіщень про оновлення Windows 10
Mark K Cowan

6
Якщо у вас є будь-які інші запитання щодо налаштування, які не були б на тему тут, спробуйте Retrocomputing , інший веб-сайт SE, присвячений саме такій справі. (Повне розкриття інформації: я, можливо, трохи пов’язаний з цим сайтом.)
wizzwizz4

4
Це питання змушує мене знову почуватися молодим!
Дмитро Григор’єв

9
MS-DOS 1.x - це по суті клон CP / M, де Ctrl-P запускає копіювання висновку консолі на принтер. Таким чином, подібний підхід може бути можливий і в MS-DOS.
Thorbjørn Ravn Andersen

Відповіді:


5

ви можете використовувати засоби налагодження віртуальної машини (або gdb / щось інше), щоб безпосередньо читати пам'ять. ms-dos не має захисту від пам’яті, або це багатозадачна система, тому ви можете читати пам'ять віртуальної машини, ви можете читати віртуальну машину vga для введення.

документація говорить, що існує команда

info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode

правильний синтаксис для отримання виводу: run VirtualBox --debug --startvm msdos1.25, тоді, у консолі налагодження: info vgatext

копійований вихід:

The COMPAQ Personal Computer DOS                                                
Version 1.11                                                                    


(C) Copyright COMPAQ Computer Corp. 1982                                        
(C) Copyright Microsoft 1981, 82                                                


A>                                                                              











--------------------------------------------------------------------------------
VBoxDbg> 

Отже, ви можете написати сценарій налагодження, який зачіпає значення пам'яті всередині пам’яті вашої програми і скидає vga екран, коли програма робить вихід / або ви можете написати сценарій, який призупиняє процесор, послідовно зберігає вміст, якщо вихід змінюється, зберігає оновлений контент, продовжується запустіть процесор

Деякі варіанти дослідження:

  • знайдіть, як написати сценарій налагодження для скидання вмісту пам'яті вашої програми

  • знайти рішення про налагодження драйвера VGA / послідовного порту / пам'яті для демпінгу для quemu / dosbox / virtualbox

  • знайдіть якусь стару програму з 80-х, яку, можливо, хтось там написав для цієї мети

  • додайте сюди тег Freedomos (або навіть перемістіть / повторіть своє запитання про великий stackoverflow, я думаю, деякі гуру повинні знати щось про подібні проблеми

Я оновлю пізніше, якщо знайду щось цікаве, але ви можете, будь ласка, розкрити деякі подробиці, чому ви використовуєте 1,25, чи працює ця програма на новіших версіях msdos? Б'юсь об заклад, що за невелику плату ви можете знайти молодого хакера, який прагне зафіксувати цю програму до нової версії (або додати вихідний файл з ASM).


Чи можете ви надати додаткову інформацію про цей процес?
Блейк

@Blake оновлений, здається, info vgatextпрацює після всього, що вам потрібно зробити, - це написати правильний сценарій для налагодження, здається
странно,

Інформація, яку ви дали, дуже цікава. Насправді це може бути абсолютно корисним для моєї ситуації. Я використовую це для старого додатка, який я хочу зрозуміти, як він працює, даючи йому введення та отримуючи вихід автоматично. Це може бути не найкращий спосіб, але я хочу зробити це так. Дякую за відповідь, просто дайте мені день чи два прочитати цей посібник і написати якийсь сценарій (сподіваюся, що це можливо) і дам інформацію про те, чи працює він. Дуже дякую.
Блейк

1
Якщо я ще не відзначила відповідь, я б точно відзначила це. Дякую за всю допомогу, хлопці.
Блейк

1
Мені потрібно було отримати мою програму у вигляді тексту. У документації згадується, як користуватися консоллю налагодження в терміналі. Використовуючи VBoxManaged debugvms <ім'я вже запущеного в режимі налагодження VM> info vgatext, він друкує вам екран в термінальному режимі, і їх, використовуючи перенаправлення та якийсь простий аналіз, мені вдалося отримати те, що мені потрібно. Дякую.
Блейк

40

Здається, що [COMMAND]> [FILE] не працює у ранніх версіях MS-DOS.

Я використовую MS-DOS 1.25, і вищевказаний вираз дає твердження невірним аргументом

Це правильно. Що ви хочете зробити, неможливо в версії 1.2.

Перенаправлення команд (разом з багатьма іншими вдосконаленнями) додано у версії 2.0.

MS-DOS версії 2.0 (еквівалент PC-DOS 2.0) вперше був випущений у березні 1983 року. Це було ретроспективно новою операційною системою (хоча велика увага дотримувалася підтримання сумісності з MS-DOS версії 1). Він містив багато значних нововведень та вдосконалених функцій, в тому числі перелічених на наступній сторінці.

  • Підтримка дискети більшої місткості та жорстких дисків
  • Багато функцій, схожих на UNIX / XENIX, включаючи ієрархічну структуру файлів, ручки файлів, перенаправлення вводу / виводу, труби та фільтри
  • Фоновий друк (друк котушки)
  • Мітки томів плюс додаткові атрибути файлів
  • Встановлювані драйвери пристроїв
  • Файл конфігурації, налаштований користувачем, який керував завантаженням додаткових драйверів пристроїв, кількістю буферів системного диска тощо
  • Обслуговування блоків середовища, які можуть використовуватися для передачі інформації між програмами
  • Необов'язковий драйвер дисплея ANSI, який дозволяв програмам розміщувати характеристики курсору та керувати дисплеєм апаратно незалежно від обладнання
  • Підтримка динамічного розподілу, модифікації та звільнення пам'яті прикладними програмами
  • Підтримка користувацьких інтерпретаторів команд (оболонок)
  • Системні таблиці, які допомагають прикладному програмному забезпеченню змінювати його валюту, час та дати форматів (відомий як міжнародна підтримка)

Джерело Розширене програмування MS-DOS Рея Данкана


Що я можу зробити замість цього?

Можливим вирішенням проблеми буде захоплення екрана (у вигляді тексту) та розбору результатів.

Відповіді на це запитання Захоплення екрана в DOS перераховує деякі програми TSR (Закінчити, але залишайтеся резидентом), які є відправними точками для дослідження.


13
Гарна відповідь. Тільки справжні Супер Користувачі піклуються про MS-DOS 1.0.
Twisty Impersonator

Дякую за вашу відповідь, я ціную це, але я хочу знайти спосіб (скажімо, використовуючи функції віртуального вікна), тому я наразі не позначаю це як відповідь.
Блейк

@Blake Можливим рішенням буде захоплення екрана (у вигляді тексту) та розбору результатів. Я оновив відповідь.
DavidPostill

Мені заздалегідь шкода за затримку результатів при спробі використання цієї програми tsr. Як тільки я отримаю доступ до своєї машини, я повідомлю вас про це. Це чудова альтернатива, і я сподіваюся, що стільки працювати належним чином. Чи потрібно встановлювати якісь інші програми (які, наприклад, створюють це середовище tsr)?
Блейк

1
@Blake Не те, що я пам'ятаю, але минуло багато років, як я використовував DOS. Не турбуйтеся про затримки у тестуванні;)
DavidPostill

-3

Ви можете встановити C і написати програму для прийому команд dos, запустити їх у оболонці та записати результати. Я рекомендую вам використовувати Borland Turbo C 2.01. Ви також можете написати код у Quickbasic, якщо хочете написати код ... ;-)

https://archive.org/details/msdos_borland_turbo_c_2.01

Особисто я би використовував DOS 5.5 або 6, враховуючи, що ви отримаєте кілька додаткових речей.


1
Це працює в v1.25?
Блейк

І якщо так, чи можете ви надати мені додаткову допомогу щодо встановлення C та способів реєстрації результатів, дуже дякую.
Блейк

1
@Blake це не працює в v1
edc65

Використання C для написання програми було б корисною відповіддю, якщо в ньому згадуються API, які ви використовували б при написанні такої програми. (І, звичайно, враховував явну вимогу у питанні, що код буде сумісний з DOS 1.x.) Ця відповідь не відповідає жодному. Він просто спамує посилання на популярний компілятор / IDE-пакет, не маючи вказівки щодо релевантності такого набору інструментів.
Коді Грей

Компілятор C має засоби для stdin та stdout, і він може виконувати команди оболонок. Я не знаю, який компілятор працював би в DOS 1. Якщо ви так стурбовані підтримкою плати, краще питання, чому хто-небудь пише код для MS DOS 1 ...
Gandolf989,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.