avva: (Default)
[personal profile] avva
Меня попросили сказать, как в DOSе пишут TSR-программы. Помните, были такие, в памяти постоянно висели?

TSR: Terminate and Stay Resident. Это я ещё помню. А вот как их делают, совершенно забыл. Что-то там надо было сообщить ДОСу... кажется, сколько памяти считать занятой после выхода, чтобы command.com выше неё заново запустить, а не переписать поверх TSRа. А потом как-то выйти через int21... обычным путём или каким-то особенным?

Пытаюсь вспомнить и не могу. А ведь когда-то написал их немалое число. Висели они, милые, и перехватывали какие-то прерывания... брр, какие же это были прерывания? На клавиатуру было два, аппаратное и BIOSовое. Кажется, 09 и 16. 21 ещё приходилось прослушивать пару раз, для всяких трюков более сложных. И таймер, конечно — а каким был таймер? Восьмым? Не помню тоже.

Ещё их можно было запускать в верхней памяти, вот. Которая от 640kb то 1Mb. Но ещё не забываем про буфер дисплея (адреса были разные, для графического, текстового монохромного, и текстового цветного режимов. Только не помню, какие это были адреса). И expanded memory, когда была, туда же где-то мэппилась, да? И ещё extended была, которой мне не пришлось воспользоваться программным образом, только expanded пару раз.

Вот интересно, помнит кто-то вот так сходу, что должна делать TSR-программа, чтобы грамотно всё устроить? Не подсматривая в Гугль или ещё куда? Ясно ведь, что в два щелчка можно всё найти, это неинтересно. Не подсматривая — помнит кто? Отзовитесь.

Если есть такие люди, то я им, наверное, завидую. Или нет. Не знаю даже. Знаю одно: моя память по-другому устроена. Я не помню таких вещей. Из моей памяти всё медленно, но очень-очень верно улетучивается. Не пользовался каким-то языком программирования пару лет — забыл. Не какие-то глубокие вещи даже забыл, а на уровне “как переменные объявлять”. Про APIs, как эти прерывания злосчастные, уже и говорить нечего.

Может, это к лучшему? Может, это хлам, который и стоит забывать? Всегда же можно подучить и вспомнить, если есть необходимость; да и приходится нередко. А может и не так. Почему хлам? Кто его знает, как человеческая память устроена, и какие у неё возможности. То, что в ней много сидит технических сведений, которые сейчас не нужны, не значит вовсе, что они занимают какое-то нужное место, и мешают что-то другое запомнить. Тогда остаётся только завидовать тем, у кого этот процесс угасания памяти не так ярко выражен, как у меня. Кто может вспомнить, что же там такое надо было говорить ДОСу 13 лет назад, чтобы остаться в памяти TSRом. Не знаю.

Из забытого мной можно составить город.

Date: 2004-08-01 11:44 am (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
Я помню (http://www.livejournal.com/users/ilyavinarsky/1005785.html) основные черты набора инструкций IBM/360, хотя не открывал их лет 17.

Date: 2004-08-01 02:07 pm (UTC)
From: [identity profile] silpol.livejournal.com
ну это как раз не основные черты, а маловажная деталь - софтверная эмуляция EBCDIC (да-да, микрокоды не есть кремний), дабы у половины скруджей с Wall St. не упал код на их горячо лелеяном COBOL ...

Date: 2004-08-01 03:19 pm (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
Не сами скруджи, а их обслуга типа [livejournal.com profile] arbat-а. Но тот факт, что в этой архитектуре присутствуют чрезмерно сложные команды, требующие микрокодовой эмуляции, по-моему, немаловажная её черта.

Date: 2004-08-02 03:01 am (UTC)
From: [identity profile] silpol.livejournal.com
м-м-м... это просто у нас разные carrier paths - я пришел из hardware, поэтому необходимость поддерживать определенные hw фишки не вызывает подобных идиосинкразий и для меня не является чем-то характерным для системы команд какого-то CPU :)

January 2026

S M T W T F S
    1 2 3
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 4th, 2026 06:21 pm
Powered by Dreamwidth Studios