SOLID Soft Компилятор MSX-бейсика Руководство системного программиста по библиотечным подпрограммам. -------------- Ниже приводится список названий подпрограмм (без ведущего ?) EXITL программа выхода из челочисленного цикла I: HL=значение счетчика; DE=шаг; предел в стеке O: HL=значение счетчика; ZF, если цикл завершен !: Стек модифицируется! INTAB операция "," для PRINT. О: в вершину строкового стека записывается табуляция FSTRX перевод целого числа в текстовую форму I: HL = число O: в вершину строкового стека записывается литерал числа INCLF PRINT -- записать конец строки О: в вершину строкового стека записываются CR,LF PRINT Распечатать строковой буфер I: DE = номер канала для PRINT INPUT Копирует в строковый стек очередной параметр из входного буфера !: если буфер пуст, должно быть выведено CR,LF,"??" и введена новая строка в буфер SCREE Установка режима экрана I: A = номер режима (определяется реализацией) WIDTH Установка ширины экранной строки I: L = ширина строки FVALX Преобразование литерала в целое число I: литерал в строковом стеке. O: HL = число !: программа понимает числа типа &H,&O,&B и знак FINIT Инициализирует новый вход в строковый стек !: должна вызываться перед вычилсением каждого очередного простого строкового выражения SPRMD Устанавливает тип спрайтов (второй параметр SCREEN) I: L = тип (0..3) CASIN Устанавливает скорость обмена с кассетой(пятый параметр SCREEN) I: L = скорость (2 - 2400 БОД) VDMDE Устанавливает режим дисплея (Interlace,2-page) I: A = режим (0..3) SETCL Установка цветов экрана !: цвета записаны в системные ячейки SETPA Установка палитры I: аргументы изымаются из стека в порядке: B,G,R,color !: стек изменяется RESPA Восстановление палитры из PT VRAM (COLOR=RESTORE) INIPA Инициализация палитры (COLOR=NEW) CLSXX Очистка зкрана BEEPX Зуммер LPRTX Аналогичен PRINT. Вывод только на принтер HLTOB возводит DE в степень HL O: HL !: Если HL<0 возвращает 0 NOTHL BASIC NOT I: HL O: HL LDSTR загрузка константной строки в вершину стека I: HL -> строку, терменируемую 0 !: Если стек не пуст, строка дописывается в хвост к его содержимому FLEFT LEFT$ i: Строка в вершине стр. стека, число позиций в HL FRIGH RIGHT$ i: Строка в вершине стр. стека, число позиций в HL FCHRX CHR$ I: HL = код символа INKEY Ввод с клавиатуры без ожидания О: Символ дописывается(?) в конец текущей строки в стеке FATTR АТТR$ , не используется I: в строковом стеке - аргумент !: Программа может быть использована по усмотрению пользователя. Строковый стек должен быть освобожден: JP ?FREE## FSPAC SPACE$ I: Число пробелов в HL FMIDX MID$ I: Строка в стеке. HL=стартовая позиция , DE=длина О: Результат в строковом стеке FHEXX HEX$ I: HL=число О: Результат в строковом стеке (без &h) FOCTX OCT$ I: HL=число О: Результат в строковом стеке (без &o) FBINX BIN$ I: HL=число О: Результат в строковом стеке (без &b) CLOSE закрыть канал(ы) ввода-вывода I: L=номер канала, если L=0, закрываются все открытые. XOPEN открыть канал. i: имя файла в строковом стеке, L=номер канала, D=длина записи Е-тип файла: 1:INPUT 2:OUTPUT 4:RANDOM 8:APPEND !: освобождает строковый стек; длина записи по умолчанию=1 KYDEF определить/показать/стереть функ.клавиши I: A=0 запретить показ ф.клавиш А=255 показать строку клавиш А=1..10 определить строку клавиш. Строка в стр.стеке EVENT EVENT ON/OFF/STOP I: HL=номер прерывания (см. MSX RED BOOK) A= 0:OFF 1:ON 255:STOP INPTD INPUT$() I: Число символов в HL O: символы дописываются в конец стр.стека SPRCL COLOR SPRITE$ I: в строковом стеке - аргумент SPRPT SPRITE$ I: в строковом стеке - аргумент ALLOC BASIC CLEAR I: HL=размер строковой области, DE=новый адрес вершины стека VDPRX чтение регистра VDP I: HL=номер регистра (-9 .. 26) !: отрицательные номера соответствуют S1..S9 VDPWX запись в регистр VDP I: E=номер L= значение BASER чтение адреса базы I: L-номер регистра BASEW запись адреса базы I: DE=номер L= значение TIMER чтение сист. переменной TIME О: HL TIMEW запись сист. переменной TIME I: HL POSIT чтение позиции курсора О: HL STICK чтение джойстика I: HL=номер порта 0..2 О: HL (0..8) STRIG чтение статуса кнопки I: HL=номер порта 0..5 О: HL (0/FFFFh) FPADX чтение регистров планшета/мыши/светового пера I: HL=номер регистра О: HL=значение FPDLX чтение PADDLE I: HL=номер порта О: HL=координата FCVIX функция CVI I: строка в стеке O: HL=значение 2х первых байтов строки FEOFX функция ЕOF I: HL=номер файла О: HL=NZ,если достигнут конец файла при чтении FRNDX целочисленное случайное число I: HL=предел О: HL=случайное в интервале 0..предел FDSKF функция DSKF I: HL=номер диска О: HL:свободная область на диске в К POINT цвет тоэки I: GRPX,GRPY O: HL=цвет,-1 если на экране нет такой точки. db 'FLOCX';+ db 'FLOFX';+ db 'FPOSF';60+ db 'FLENX';+ db 'FASCX';+ db 'FSTRG';+ db 'STLET';+ db 'STVRG';+ Get string variable db 'SWAPI';+ db 'SWAPS';+ db 'SWAPF';+ db 'SWAPD';+ db 'PAINT';70 db 'PSETX';71+ db 'STEPG';+ db 'DLINE';+ db 'DRBOX';+ db 'DBOXF';+ db 'GRATR';+ db 'TIMSE';+ db 'TMASE';+ db 'DATSE';+ db 'DTASE';+80 db 'STPAG';+ db 'TIMGE';+ db 'TMAGE';+ db 'DATGE';+ db 'DTAGE';+ db 'FGETS';+ db 'FPUTS';+ db 'PUTSP';+ db 'XDRAW';+ db 'MOTOR';90+ db 'SOUND';+ db 'RAISE';+ Raise exception (ERROR n) db 'EXECP';+ db 'KILLF';+ db 'WAITP';+ db 'USNUM';+ db 'USSTR';+ db 'LINPT'; db 'READD'; db 'PLMUS';100 db 'RESTR';+ db 'RESUM'; db 'FIEL1';+ db 'FIEL2';+ db 'LSETS';+ db 'RSETS';+ db 'BLOAD';+ db 'BSAVE';+ db 'BLDSC'; db 'BSVSC';110 db 'RENFL'; db 'COPVV'; db 'COPVM'; db 'COPMV'; db 'COPVD'; db 'COPDV'; db 'COPDM'; db 'COPMD'; db 'COPMM'; db 'DIGIT';+120 db 'CRCLE';+ db 'STRQO';string with quotations for READ,INPUT db 'STRLI'; db 'DESTI'; db 'ONERR';+ db 'ONSTP';+ db 'ONSPR';+ db 'ONPLY';+ db 'ONIVA';+ db 'ONSTR';+130 db 'ONKEY';+ db 'STREQ';+ db 'STRNE';+ db 'STRLT';+ db 'STRGT';+ db 'STRLE';+ db 'STRGE';+ db 'SBEEP';+ db 'INSTR';+ db 'XDSCI';+140 db 'XDSCO';+ db 'RDATB';+ db 'RDATW';+ db 'CSPRI';+ db 'MIDEQ';+ db 'STSCR';+ db 'STADJ';+147 db 'XSIND';+ db 'XCOSD';+ db 'XATND';+150 db 'XTAND';+ db 'XLOGD';+ db 'XEXPD';+ db 'XSQRD';+ db 'XPOWD';+ db 'XMULD';+ db 'XDIVD';+ db 'XADDD';+ db 'XSUBD';+ db 'XSIGD';+160 returns INTEGER db 'XRNDD';+ db 'XSGND';returns DOUBLE (what hell?) db 'XNEGD';+ db 'XABSD';+ db 'XPSHD';+ db 'XPOPD';+ db 'XSEQD';+167 db 'XSNED';+ db 'XSLTD';+ db 'XSGTD';+170 db 'XSGED';+ db 'XSLED';+ db 'CSLOC';+ db 'XLDPS';+ db 'XLDPD';+ db 'XCHGD';+ db 'XLDIS';+ db 'XLDID';+ db 'KJPUT';+ db 'XCV1D';+180 db 'XCV2D';+ db 'XCV1I';+ db 'XCV2I';+ db 'XQTLP'; === EXITL for FPP db 'STANG';+ db 'ENANG';+ db 'ASCPT';+ calculates CIRCLE's aspect ratio db 'XFSTR';188 dac->string db 'XUSFL';189 db 'XFVAL';190 string->dac db 'ININP';+ initialize INPUT db 'INTIN'; input integer db 'SYSFL'; MAXFILES db 0 textar:: db 0 END