Автор материала: ЕС
Разработчик: | Питер Селлик (Peter Cellik) |
---|---|
Версия: | 0.203 последняя [16 мая 1995] |
Лицензия: | greenware |
Язык: | Си |
Расширитель: | — |
Исходники: | открыты |
Содержание
Sphinx C-- — уникальный компилятор низкоуровневого языка, разработанный канадским программистом Питером Келиком. Язык представляет из себя ассемблер архитектуры x86 с синтаксическими элементами Си. Благодаря генерации программ малого размера, компилятор был достаточно популярен среди некоторых демомейкеров.
Процессор: | Intel 8086 |
---|---|
ОЗУ: | 512 КиБ |
DOS: | MS-DOS 3.0 |
Резидентная программа (EXAMPLES/TSR/NOBOOT.C--), блокирующая комбинацию клавиш Ctrl-Alt-Del:
/* SPHINX C-- example file. Title: NOBOOT.C-- Description: A TSR that disables the <CTRL><ALT><DEL> reboot. */ ?include "KEYCODES.H--" ?include "WRITE.H--" ?include "SYSTEM.H--" ?include "DOS.H--" ?include "TSR.H--" dword oldkeyhandle={}; byte altflag=0,ctrlflag=0; ?define s_upalt s_alt+128 ?define s_upctrl s_ctrl+128 interrupt keyhandle () { $ PUSH DS $ PUSH AX DS = CS; $ IN AL,KEYBOARD_PORT IF( AL == s_alt ) altflag = 1; ELSE IF( AL == s_ctrl ) ctrlflag = 1; ELSE IF( AL == s_upalt ) altflag = 0; ELSE IF( AL == s_upctrl ) ctrlflag = 0; ELSE IF( AL == s_delete ) IF( ctrlflag == 1 ) IF( altflag == 1 ) {@ EATKEY(); @ EOI(); $ POP AX $ POP DS return(); } $ POP AX $ POP DS $ JMP FAR CSDWORD[#oldkeyhandle] } main () { @ WRITESTR("NOBOOT installed. <CTRL><ALT><DEL> is now disabled.\n"); @ GETINTVECT(#oldkeyhandle,KEYBOARD_INT); @ SETINTVECT( ,KEYBOARD_INT,CS,#keyhandle); @ KEEP( , , ,#main); } /* end of NOBOOT.C-- */