А разве value_or не реализован как short circuit, то есть если value наличествует, то ветка or просто не выполяется? Тогда весьма странная реализация: всегда и в любом случае вызывать функцию даже если результат не нужен. Я ещё понимаю при and (и то не всегда требуется), но при or. Зачем?
Спасибо, Кэп! А я как дурак во всех редакторах сначала в конец строки курсор ставил, а после клавишей «Забой» («Backspace») до начала строки посимвольно удалял!
Не было бы DOS — можно было бы и процессор поменять (где-то здесь я рассказывал, как надо было делать: поставить два процессора, один для DOS-программ, второй для операционки и новых программ).
Для Apple ][e в своё время существовала Z80 SoftCard, правда от Microsoft, а не от самого Apple, плата расширения с Z80 и минимальной обвязкой. Вставляешь её в слот на материнке и Apple ][e превращался в комп с Z80, на котором можно было запускать вполне себе обычный CP/M. Я даже реально это дело руками щупал.
Для функциональщиков это может быть и проще, но для императивщиков… Я лично глаза мозги сломал пока разложил всё это мысленно в обычные императивные функции, понял как это работает и понял что лично я так никогда делать не буду :-)
Ниже короткий фрагмент кода, наглядно иллюстрирующий реализующий одну и ту же функциональность (увеличение на единицу элементов массива) для двух процессоров — CP1610 и MOS6502.
Похоже что не элементов массива, а элемента массива, но зато 32 раза?
О-о-о-о-о! Да это я вообще не представляю, даже боюсь представить как такое возможно. Давным-давно у нас ещё в школе была забава на переменах, точных деталей уже не помню, но смысл что-то вроде гладить себя по животу одной рукой по часовой стрелке, а по голове другой рукой против часовой стрелки. Так вот редко кто доходил до третьего круга, в основном все сбивались на синхронное движение руками или по, или против часовой стрелки после первого же круга.
На любом процессоре без VME (а VME в те времена был только у Intel) достаточно в сеансе DOS запустить следующий код:
cli
jmp $
и вуаля, полное подвисание всего кроме кнопок Reset и Power. Чем мы, апологеты Интела, в своё время тролили любителей AMD. Правда сейчас у любителей AMD появилась ответка в виде Meltdown, которому Intel подвержен, а AMD как выяснилось нет.
320x240 обеспечивал так же небезызвестный «Mode X», доступный на всех VGA. Тот же режим 0x13, только в некоторые регистры видеодаптера записывались немного другие значения. Довольно много интро, демок и даже игрушек в то время в этом режиме было.
В OS/2 был WatchCat, который с началом буржуйского рождества рисовал в ВарпЦентре иконку с котом, одетым в рождественскую шапку (в остальное время кот был без шапки) и в полуосёвых конференциях говорили: «Кот шапку нацепил!» и все кто был в курсе понимал о чём речь, отвечая: «Ну значит скоро Новый Год!»
А насчёт переполнения PMQUEUE был какой-то параметр в config.sys, может быть даже недокументированный, но был. Как раз против этого дела. Помню точно что был, но за давностью лет уже не помню какой.
А на «Правец-16» с которого я начинал весь DOS был болгарский и в комплекте с ним шёл передранный с NC «Команден Организатор», называемый в инструкции просто Коморг.
А ещё из файловых менеджеров того времени был XTreeGold, но я им не проникся вообще.
И кстати, загрузочной дискета или винчестер (уже отформатированные)
так что format /s тут не нужен, тут достаточно утилиты sys.
И ещё насчёт autoexec.bat и command.com позанудствую ;-) Разговор начался с того, что пользователь System12 сказал:
С времен ДОС у меня на некоторых форумах остался ник SYS
Поэтому easty и упомянул про config.sys, himem.sys и другие sys'ы, а я добавил io.sys и msdos.sys. Везде одни sys'ы, про bat'ы и com'ы никакой речи не было.
Хочу научиться играть на фортепиано, очень сильно хочу, но не могу, никак не получается. Я пробовал несколько месяцев подряд, упорно пробовал, а не так чтобы потыркался пять минут, не получается и забросил. И всё время левая рука делает то же самое что правая или наоборот, никак не могу играть левой рукой одно, а правой совсем другое. На скрипке (у меня законченное музыкальное образование по скрипке) всё просто, левая рука играет, правая смычок водит. А тут обе руки должны извлекать звуки, и причём разные! А у меня всё время руки «синхронизируются» в не зависимости от моего желания. К примеру, левой надо играть аккомпанемент «бум-бум! умц-умц!», а правой основную мелодическую тему и или правая сбивается и начинает как и левая «бум-бум! умц-умц!» но само собой двумя-тремя октавами выше, или левая начинает двумя-тремя октавами ниже выводить ту же мелодию что и правая.
Господа фортепианщики, синтезаторщики и другие клавишники, что можете посоветовать, как вам удаётся играть абсолютно разные партии разными руками?
В CTask как раз через таймер многозадачность и делалась. А разве её можно сделать по-другому? Как вы правильно заметили, все шедулеры ныне этим и занимаются. Правда сейчас шедулеры не на int 8 сидят, а на RTC или ещё на чём, int 8 уже никто давно не трогает.
Эх… А когда-то игрушки CGA'шные, жутко большие, аж по 32 килобайта размером, садясь на int 8, и музыку играли 8-мибитную, и экран обновляли, а сев при этом ещё и на int 9 клавиатуру обрабатывали и даже (что мне казалось дико невозможным в то время!) блокировали Ctrl-Alt-Del.
Для DOS в своё время была библиотека под названием CTask, как раз позволяла делать многозадачность на голом DOS без всяких дополнительных приблуд. Я её даже в своё время использовал когда программировал для банкоматов. К сожалению сейчас не смог ни нагуглить, ни наяндексить, везде сплошные Task in C, классы CTask и прочее, что к делу совсем не относится. Был у меня где-то дистрибутив этой библиотеки CTask, но насколько я помню он записан на дискете 3" так что даже если и найду его, то прочитать дискету 3" мне уже давно не на чем.
А вот это я уже не понимаю. Почему не равно? Ведь частота (в герцах) звучания что до-диез, что ре-бемоль одна и та же.
Для Apple ][e в своё время существовала Z80 SoftCard, правда от Microsoft, а не от самого Apple, плата расширения с Z80 и минимальной обвязкой. Вставляешь её в слот на материнке и Apple ][e превращался в комп с Z80, на котором можно было запускать вполне себе обычный CP/M. Я даже реально это дело руками щупал.
глазамозги сломал пока разложил всё это мысленно в обычные императивные функции, понял как это работает и понял что лично я так никогда делать не буду :-)Похоже что не элементов массива, а элемента массива, но зато 32 раза?
и вуаля, полное подвисание всего кроме кнопок Reset и Power. Чем мы, апологеты Интела, в своё время тролили любителей AMD. Правда сейчас у любителей AMD появилась ответка в виде Meltdown, которому Intel подвержен, а AMD как выяснилось нет.
А насчёт переполнения PMQUEUE был какой-то параметр в config.sys, может быть даже недокументированный, но был. Как раз против этого дела. Помню точно что был, но за давностью лет уже не помню какой.
А ещё из файловых менеджеров того времени был XTreeGold, но я им не проникся вообще.
так что format /s тут не нужен, тут достаточно утилиты sys.
И ещё насчёт autoexec.bat и command.com позанудствую ;-) Разговор начался с того, что пользователь System12 сказал:
Поэтому easty и упомянул про config.sys, himem.sys и другие sys'ы, а я добавил io.sys и msdos.sys. Везде одни sys'ы, про bat'ы и com'ы никакой речи не было.
Господа фортепианщики, синтезаторщики и другие клавишники, что можете посоветовать, как вам удаётся играть абсолютно разные партии разными руками?
Эх… А когда-то игрушки CGA'шные, жутко большие, аж по 32 килобайта размером, садясь на int 8, и музыку играли 8-мибитную, и экран обновляли, а сев при этом ещё и на int 9 клавиатуру обрабатывали и даже (что мне казалось дико невозможным в то время!) блокировали Ctrl-Alt-Del.
И кстати, загрузочной дискета или винчестер (уже отформатированные) делались при помощи утилиты sys.com. Так что я тоже староват маленько ;-)