Sphinx C--

Автор материала: ЕС

Разработчик:Питер Селлик (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-- */
Яндекс цитирования