FLX плугины для FN

Компьютер "Спринтер" http://sprinter.nedopc.org

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

FLX плугины для FN

Post by Shaos »

Тут оказывается только у меня сохранилась пара плугинов за авторством Mac Buster:

http://nedopc.org/nedopc/sprinter/upload/flx-date.zip
http://nedopc.org/nedopc/sprinter/upload/flx-calc.zip

Исходников нету, но плугины микроскопические - можно дизассемблировать и доделать калькулятор, чтобы считал...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: FLX плугины для FN

Post by Shaos »

Вот описание API плугинов для Flex Navigator-а

FLX.INC:

Code: Select all

;[]=======================================================================[]
; Sprinter constants

BORDER		equ	#FE
YPORT		equ	#89
PAGE0		equ	#82
PAGE1		equ	#A2
PAGE2		equ	#C2
PAGE3		equ	#E2

;[]=======================================================================[]
; Flex Navigator constants

PluginOrg	equ	#C000

; Flex Navigator working buffers
WorkBuffer	equ	#8000
PagesList	equ	#8400

; Flex Navigator API functions
_FN_API_8600	equ	#8600
ClearScreen	equ	#8603
MakeWindow	equ	#8606
InvertRectan	equ	#8609
PrnTxtLnIFF	equ	#860C
PrnTxtLnNorm	equ	#860F
PrnTxtLnNormC	equ	#8612
PrnRangPathL	equ	#8615
PrnRangPathR	equ	#8618
PrnRangPathC	equ	#861B
InputLine	equ	#861E
InpLnExtN	equ	#8621
InpLnExtC	equ	#8624
_FN_API_8627	equ	#8627
InitScrBar	equ	#862A
PrnHScrBar	equ	#862D
PrnVScrBar	equ	#8630
InitProcess	equ	#8633
PrnProcess	equ	#8636
_FN_API_8639	equ	#8639
_FN_API_863C	equ	#863C
_FN_API_863F	equ	#863F
_FN_API_8642	equ	#8642
_FN_API_8645	equ	#8645
ResFire		equ	#8648
TestCoords	equ	#864B
SetCMOSPrint	equ	#864E
ResCMOSPrint	equ	#8651
SetClock	equ	#8654
SetMouse	equ	#8657
_FN_API_865A	equ	#865A
_FN_API_865D	equ	#865D
_FN_API_8660	equ	#8660
_FN_API_8663	equ	#8663
_FN_API_8666	equ	#8666
MoveBytes	equ	#8669
MoveBytesUp	equ	#866C
Mult8		equ	#866F
Mult16X8	equ	#8672
Mult16		equ	#8675
Mult16X16	equ	#8678
Mult32		equ	#867B
Divis16X16	equ	#867E
Divis24X16	equ	#8681
Divis32X16	equ	#8684
Divis32		equ	#8687
ConvNumTxt32	equ	#868A
ConvNumTxt16	equ	#868D
ConvNumTxt8	equ	#8690
ConvTxtNum32	equ	#8693
ConvTxtNum16	equ	#8696
_FN_API_8699	equ	#8699
_FN_API_869C	equ	#869C
_FN_API_869F	equ	#869F
_FN_API_86A2	equ	#86A2
_FN_API_86A5	equ	#86A5
DOSError	equ	#86A8
HELP.RUS:

Code: Select all

struct FlxPluginHeader {
	char Id[8];
	unsigned short LoadOffset;
	unsigned short EntryOffset;
	unsigned char PluginMode;
	unsigned char Reserved[3];
};

	Заголовок плагина для Flex Navigator v1.xx:
		8 байт  Id - индентификатор плагина, первые 3 символа всегда должны быть FLX
		2 байта LoadOffset - смещение в странице памяти для загрузки (0 - 0x3FFF)
		2 байта EntryOffset - смещение в странице памяти для запуска (0 - 0x3FFF)
		1 байт  PluginMode - режим работы:
				0 - работает с восстановлением рабочей области Flex Navigator
				(т.е. после работы плагина не нужно восстанавливать экран)
				1 - работает без восстановления рабочей области Flex Navigator
				(т.е. после работы плагина нужно восстанавливать экран)
		3 байта Reserved - зарезервировано
	длина = 16 байт

	!!! ВНИМАНИЕ
	1. все плагины для Flex Navigator v1.xx не должны превышать в размере основного кода
(т.е. без заголовка) 0x4000 байта.
	2. все плагины для Flex Navigator v1.xx должны быть откомпилированы с адреса 0xC000
(т.е. org = 0xC000).
	3. возвращаемое значение:
		CF = 1 ошибка на стадии инитиализации (после неё ничего не восстанавливается)
		CF = 0 нет ошибки
Пример исходного кода плугина - TEST.Z80:

Code: Select all

;[]=======================================================================[]
;
; test.z80 -- test plugin for Flex Navigator v1.xx
;
; Created by Anton Enin 08-June-2002
;
; Last update 08-June-2002
;
; Copyright (C) 2002 R-lab
;
; This program should be compiled using z80asm
; http://www.zxasm.narod.ru/
;
;[]=======================================================================[]

		%include "fplugin.inc"

		section .text
		org	0xBFF0			; PluginOrg - Header lenght

						; Flex Navigator plugin header
		db	"FLX-PLUG"		; Id
		dw	0x0000			; LoadOffset
		dw	0x0000			; EntryOffset
		db	0x00			; PluginMode
		db	0x00, 0x00, 0x00	; Reserved

PluginEntry:
		call	MakeWindow
		db	0x01
		dw	0x00E0, 0x0050
		dw	0x00C0, 0x0060
		db	0x02			;head place
		dw	0x0004, 0x0002
		dw	0x00B8, 0x000A
		db	0x00
		db	0x01			;text line
		dw	0x0052, 0x0003
		db	0x0F
		db	"Plugin", 0
		db	0x01			;text line
		dw	0x0010, 0x0014
		db	0x84
		db	"Flex Navigator v1.xx Plugin Test", 0
		db	0x01			;text line
		dw	0x002E, 0x0026
		db	0x80
		db	"Written by Enin Anton", 0
		db	0x01			;text line
		dw	0x0040,	0x0030
		db	0x80
		db	"June, 8 2002", 0
		db	0x01			;text line
		dw	0x0034, 0x003A
		db	0x80
		db	"Copyright (c) 2002", 0
		db	0x04			;uprectan
		dw	0x003C, 0x004A
		dw	0x0048, 0x000E
		db	0x01			;text line
		dw	0x0058, 0x004D
		db	0x80
		db	"Ok", 0
		db	0x00

		call	ResFire
.plugin_loop:
		ld	ix, PluginMouseTab
		call	TestCoords
		ld	c, 0x31
		rst	0x10
		jr	z, .plugin_loop
		ld	a, b
		or	a
		jr	nz, .plugin_loop
		ld	a, e
		cp	0x1B
		jr	z, PluginExit
		cp	0x0D
		jr	nz, .plugin_loop
PluginExit:
		call	MakeWindow
		db	0x7F
		db	0x00
		or	a			; cf = 0
		ret


;[]=======================================================================[]
PluginMouseTab:
		dw	0x011C, 0x0164, 0x009A, 0x00A8, 0x0021, 0x0000, PluginExit, 0x0000
		dw	0x0000, 0x00E0, 0x0000, 0x0100, 0x0020, 0x0000, PluginExit, 0x0000
		dw	0x01A0, 0x0280, 0x0000, 0x0100, 0x0020, 0x0000, PluginExit, 0x0000
		dw	0x0000, 0x0280, 0x0000, 0x0050, 0x0020, 0x0000, PluginExit, 0x0000
		dw	0x0000, 0x0280, 0x00B0, 0x0100, 0x0020, 0x0000, PluginExit, 0x0000
		dw	0x8000
Описание словами:

Code: Select all

[]========================================================================[]
*									   *
*    Описание Flex Navigator API v1.xx для разработчиков Flx-Plugins	   *
*	 		doc v0.4 от 13.07.2002				   *
*									   *
[]========================================================================[]




[]------------------------------------------------------------------------[]

    ClearScreen - процедура отчистки 0-го экана нужным цветом.

	на вход:
		A - цвет отчистки (00-0Fh)
	на выход:
		-

[]------------------------------------------------------------------------[]

    MakeWindow - процедура создания графического окна

	на вход:
		(SP) - описатель окна
	на выход:
		-

	сразу за вызовом этой процедуры в программе следует описатель окна.
	возврат из процедуры происходит по адресу, следующему за описателем.

	например:
		call MakeWindow
		...		; описатель окна


    описатель окна:
	+00 (1) флаг вывода окна: 0 - без сохранения данных под окном
				      (используется для полноэкранных окон)
	                          1 - с сохранением данных под окном
				      (используется для небольших окон)
				  0x7F - восстановить данные под окном
				 	 (флаг служит для закрытия
					 текущего окна)
	+01 (2) координата x для вывода (0 - 639)
	+03 (2) координата y для вывода (0 - 255)
	+05 (2) длина окна по x (0 - 639)
	+07 (2) длина окна по y (0 - 255)

	далее идут об'екты окна в формате:
            +00 (1) тип обекта
	    +01 ... описатели обекта

	    об'екты окна:
	    0.	+00 (1) == 0 - конец списка об'ектов. после этого оконная
	    		       функция возвращает управление.

            1.  +00 (1) == 1 - текстовая строка
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)
		+05 (1) цвет печати
			(d7-d4 цвет background, d3-d0 цвет foreground)
		+06 ... текстовая строка (конец строки - 0)

	    2.	+00 (1) == 2 - заполнение прямоугольной плоскости
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)
		+05 (2) длина по x (0 - 639)
		+07 (2) длина по y (0 - 255)
		+09 (1) цвет заполнения
			(d7-d4 цвет background, d3-d0 цвет foreground)

	    3.	+00 (1) == 3 - отрисовка углублённой прямоугольной плоскости
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)
		+05 (2) длина по x (0 - 639)
		+07 (2) длина по y (0 - 255)

	    4.	+00 (1) == 4 - отрисовка выпуклой прямоугольной плоскости
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)
		+05 (2) длина по x (0 - 639)
		+07 (2) длина по y (0 - 255)

	    5.	+00 (1) == 5 - отрисовка кнопки с текстом
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)
		+05 (2) длина по x (0 - 639)
		+07 (2) длина по y (0 - 255)
		+09 (1) цвет печати
			(d7-d4 цвет background, d3-d0 цвет foreground)
		+10 ... текстовая строка (конец строки - 0)

                Внимание! печать текста осуществляется с позиций
                	  x + 4, y + 1

	    6.	+00 (1) == 6 - отрисовка горизонтального разделителя
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)
		+05 (2) длина по x (0 - 639)

	    7.	+00 (1) == 7 - отрисовка вертикального разделителя
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)
		+05 (2) длина по y (0 - 255)

	    8.	+00 (1) == 8 - отрисовка левой кнопки скролбара  <-
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)

	    9.	+00 (1) == 9 - отрисовка правой кнопки скролбара ->
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)

	    10.	+00 (1) == 10 - отрисовка верхней кнопки скролбара ^
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)

	    11.	+00 (1) == 11 - отрисовка нижней кнопки скролбара
		+01 (2) смещение x от начала окна (0 - 639)
		+03 (2) смещение y от начала окна (0 - 255)


[]------------------------------------------------------------------------[]

    InvertRectan - процедура замены цвета прямоугольной плоскости

	на вход:
		 HL - x	координата
		 BC - y	координата
		 HX - длина y
		 LX - длина x
		 D  - текущий цвет
			(d7-d4 цвет background, d3-d0 цвет foreground)
		 E  - нужный цвет
			(d7-d4 цвет background, d3-d0 цвет foreground)
	на выход:
		-

	к сожалению процедура не очень быстрая, поэтому большие
	прямоугольники советую особо не инвертировать... ;)

[]------------------------------------------------------------------------[]

    PrnTxtLnIFF - процедура вывода текстовых строк на графический экран
		  640x256 в режиме размерного по X шрифта
	на вход:
		HL - адрес текстовой строки (конец строки - 0)
		DE - позиция вывода по X
		BC - позиция вывода по Y
		A  - цвет печати
			(d7-d4 цвет background, d3-d0 цвет foreground)
	на выход:
		HL - адрес байта, следующего за строкой

[]------------------------------------------------------------------------[]

    PrnTxtLnNorm - процедура вывода текстовых строк на графический экран
		   640x256
	на вход:
		HL - адрес текстовой строки (конец строки - 0)
		DE - позиция вывода по X
		BC - позиция вывода по Y
		A  - цвет печати
			(d7-d4 цвет background, d3-d0 цвет foreground)
	на выход:
		HL - адрес байта, следующего за строкой

[]------------------------------------------------------------------------[]

    PrnTxtLnNormC - процедура вывода текстовых строк на графический экран
		    640x256 с известным числом символов
	на вход:
		HL - адрес текстовой строки
		DE - позиция вывода по X
		C  - позиция вывода по Y
		B  - кол-во печатаемых символов
		A  - цвет печати
			(d7-d4 цвет background, d3-d0 цвет foreground)
	на выход:
		HL - адрес байта, следующего за последним символом

[]------------------------------------------------------------------------[]

    PrnRangPathL - процедура вывода досовских путей на графический экран
		   640x256 в режиме размерного по X шрифта, прижатых к
		   левому краю ( |-> )
	на вход:
		IX - кол-во пикселей под вывод строки
		HL - адрес текстовой строки (конец строки - 0)
		DE - позиция вывода по X
		BC - позиция вывода по Y
		A -  цвет печати
			(d7-d4 цвет background, d3-d0 цвет foreground)
	на выход:
		-

	процедура грамотно укорачивает досовский путь до нужного
	размера путём замещения невлезающих директорий на ..\

[]------------------------------------------------------------------------[]

    PrnRangPathR - процедура вывода досовских путей на графический экран
		   640x256 в режиме размерного по X шрифта, прижатых к
		   правому краю ( <-| )
	на вход:
		IX - кол-во пикселей под вывод строки
		HL - адрес текстовой строки (конец строки - 0)
		DE - позиция вывода по X
		BC - позиция вывода по Y
		A -  цвет печати
			(d7-d4 цвет background, d3-d0 цвет foreground)
	на выход:
		-

	процедура грамотно укорачивает досовский путь до нужного
	размера путём замещения невлезающих директорий на ..\

[]------------------------------------------------------------------------[]

    PrnRangPathC - процедура вывода досовских путей на графический экран
		   640x256 в режиме размерного по X шрифта, отцентрированных
		   относительно краёв ( <-|-> )
	на вход:
		IX - кол-во пикселей под вывод строки
		HL - адрес текстовой строки (конец строки - 0)
		DE - позиция вывода по X
		BC - позиция вывода по Y
		A -  цвет печати
			(d7-d4 цвет background, d3-d0 цвет foreground)
	на выход:
		-

	процедура грамотно укорачивает досовский путь до нужного
	размера путём замещения невлезающих директорий на ..\

[]------------------------------------------------------------------------[]

    InputLine - процедура редактирования строки на графическом экране
		640x256 в режиме размерного по X шрифта

	на вход:
		IX - адрес описателя строки
		HL - адрес описателя элементов экрана (для мышки)
	на выход:
		-

    описатель строки:
	+00 (1) максимальная длина строки
	+01 (1) флаг готовности
	+02 (1) текущая X позиция курсора (инициализируется в InputLine)
	+03 (1) текущая add_x (инициализируется в InputLine)
	+04 (1) количество введенных символов /  длина строки
	+05 (2) X позиция строки на экране
	+07 (2) Y позиция строки на экране
	+09 (2) X длина строки на экране
	+0B (1) цвет строки (d7-d4 цвет background, d3-d0 цвет foreground)
	+0C ... сама строка

    процедуры для таблицы элементов экрана:
    InpLnExtN - процедура нормального выхода из редакции
    InpLnExtC -	процедура выхода из редакции по cancel
		(восстанавливает изначальную строку)

[]------------------------------------------------------------------------[]

    InitScrBar - процедура инициализации описателя скроллбара

	на вход:
		IX - адрес описателя скроллбара
	на выход:
		-

    описатель скроллбара:
    	+00 (2) X позиция скролбара (0-639)
    	+02 (2) Y позиция скролбара (0-255)
    	+04 (2) длина скролбара
    	+06 (2) текущая длина скролбара (инициализируется в InitScrBar)
    	+08 (2) адрес ячейки, куда запишется начальная координата бара
    		если 0, то не используется
    		(используется для таблицы элементов экрана)
	+10 (2) адрес ячейки, куда запишется конечная координата бара
    		если 0, то не используется
    		(используется для таблицы элементов экрана)
	+12 (2) кол-во видимых элементов
	+14 (2) общее кол-во элементов
	+16 (2) первая видимый элемент

[]------------------------------------------------------------------------[]

    PrnHScrBar - процедура печати горизонтального скроллбара

	на вход:
		IX - адрес описателя скроллбара (см. выше)
	на выход:
		-

[]------------------------------------------------------------------------[]

    PrnVScrBar - процедура печати вертикального скроллбара

	на вход:
		IX - адрес описателя скроллбара (см. выше)
	на выход:
		-

[]------------------------------------------------------------------------[]

    InitProcess - процедура инициализации описателя процессбара

	на вход:
		IX - адрес описателя процессбара
	на выход:
		-

    описателя процессбара:
    	+00 (2) X позиция процессбара (0-639)
    	+02 (2) Y позиция процессбара (0-255)
    	+04 (2) длина процессбара
    	+06 (2) коэффициент для процесса (инициализируется в InitProcess)
    	+08 (2) коррекция коэфициента (инициализируется в InitProcess)
	+10 (4) максимум (инициализируется в InitProcess)
	+14 (4) текущее (инициализируется в InitProcess)
	+18 (1) цвет процессбара
			(d7-d4 цвет background, d3-d0 цвет foreground)

[]------------------------------------------------------------------------[]

    PrnProcess - процедура печати процессбара

	на вход:
		IX - адрес описателя процессбара (см. выше)
	на выход:
		-

[]------------------------------------------------------------------------[]

    ResFire - процедура ожидания, пока все кнопки мыши не будут отпущены

	на вход:
		-
	на выход:
		-

[]------------------------------------------------------------------------[]

    TestCoords - процедура проверки координат мыши по таблице элементов
		 зкрана

	на вход:
		IX - адрес таблицы элементов зкрана
	на выход:
		-

    таблица элементов зкрана:
	+00 (2) левая   x координата элемента
	+02 (2) правая  x координата элемента
	+04 (2) верхняя y координата элемента
	+06 (2) нижняя  y координата элемента
	+08 (2) флаги элемента
	+10 (2) адрес обработчика при не нажатом огне
	+12 (2) адрес обработчика при нажатом огне (левая кнопка)
	+14 (2) адрес обработчика при нажатом огне (правая кнопка)

	если +00 == 0x8000 это считается концом таблицы элементов зкрана

	флаги элемента:
	    d00 - элемент кнопка
	    d01 - рабочая кнопка
	    d02 - инверт
	    d03 - статичный инверт
	    d04 - программа запускается без адреса возврата без огня
		  (т.е. при попадании курсора мыши в эту прямоугольную
		  область удаляется адрес возрата со стека и осуществляется
		  переход на адрес, который находиться в +10)
	    d05 - программа запускается без адреса возврата по левой кнопке
	    	  огня
		  (т.е. при нажатии левой кнопки мыши над прямоугольной
		  областью удаляется адрес возрата со стека и осуществляется
		  переход на адрес, который находиться в +12)
	    d06 - программа запускается без адреса возврата по правой кнопке
	    	  огня
		  (т.е. при нажатии правой кнопки мыши над прямоугольной
		  областью удаляется адрес возрата со стека и осуществляется
		  переход на адрес, который находиться в +14)
	    d07 - вызвать функцию закрытия окна перед запуском программы без
	    	  огня
		  (т.е. при попадании курсора мыши в эту прямоугольную
		  область удаляется последнее окно с экрана)
	    d08 - вызвать функцию закрытия окна перед запуском программы по
	    	  левой кнопке
		  (т.е. при нажатии левой кнопки мыши над прямоугольной
		  областью удаляется последнее окно с экрана)
	    d09 - вызвать функцию закрытия окна перед запуском программы по
	    	  правой кнопке
		  (т.е. при нажатии правой кнопки мыши над прямоугольной
		  областью удаляется последнее окно с экрана)
	    d15 - это флаг: 1 - инверт при огне не убирать

[]------------------------------------------------------------------------[]

    SetCMOSPrint - процедура включения печати даты/время из CMOS

	на вход:
		- будет описано позднее
	на выход:
		-
[]------------------------------------------------------------------------[]

    ResCMOSPrint - процедура выключения печати даты/время из CMOS

	на вход:
		- будет описано позднее
	на выход:
		-

[]------------------------------------------------------------------------[]

    SetClock - процедура установки курсора мыши в часы

	на вход:
		-
	на выход:
		-

[]------------------------------------------------------------------------[]

    SetMouse - процедура установки курсора мыши в нормальный курсор

	на вход:
		-
	на выход:
		-

[]------------------------------------------------------------------------[]

    MoveBytes - процедура быстрого копирования памяти с помощью
		акселлератора с увеличением адресов
	на вход:
		HL - откуда
		DE - куда
		BC - сколько
	на выход:
		HL - (откуда + сколько)
		DE - (куда + сколько)

[]------------------------------------------------------------------------[]

    MoveBytesUp - процедура быстрого копирования памяти с помощью
		  акселлератора с уменьшением адресов
	на вход:
		HL - откуда
		DE - куда
		BC - сколько
	на выход:
		HL - (откуда - сколько)
		DE - (куда - сколько)

[]------------------------------------------------------------------------[]

    Mult8 - процедура беззнакового умножения 8 * 8 bit = 16 bit

	на вход:
		E * C
	на выход:
		HL - результат

[]------------------------------------------------------------------------[]

    Mult16X8 - процедура беззнакового умножения 16 * 8 bit = 24 bit

	на вход:
		DE * C
	на выход:
		A, HL - результат

[]------------------------------------------------------------------------[]

    Mult16 - процедура беззнакового умножения 16 * 16 bit = 16 bit

	на вход:
		DE * BC
	на выход:
		HL - результат

[]------------------------------------------------------------------------[]

    Mult16X16 - процедура беззнакового умножения 16 * 16 bit = 32 bit

	на вход:
		DE * BC
	на выход:
		HL, DE - результат

[]------------------------------------------------------------------------[]

    Mult32 - процедура беззнакового умножения 32 * 16 bit = 32 bit

	на вход:
		HL, DE * BC
	на выход:
		HL, DE - результат

[]------------------------------------------------------------------------[]

    Divis16X16 - процедура беззнакового деления 16 / 16 bit = 16.16 bit

	на вход:
		BC / DE
	на выход:
		BC - результат
		HL - остаток

[]------------------------------------------------------------------------[]

    Divis24X16 - процедура беззнакового деления 24 / 16 bit = 8.16 bit

	на вход:
		HL, C / DE
	на выход:
		A  - результат
		HL - остаток

[]------------------------------------------------------------------------[]

    Divis32X16 - процедура беззнакового деления 32 / 16 bit = 16.16 bit

	на вход:
		HL, DE / BC
	на выход:
		DE - результат
		HL - остаток

[]------------------------------------------------------------------------[]

    Divis32 - процедура беззнакового деления 32 / 16 bit = 32.16 bit

	на вход:
		HL, DE / BC
	на выход:
		HL, DE - результат
		BC     - остаток

[]------------------------------------------------------------------------[]

    ConvNumTxt32 - процедура конвертации беззнакового числа 32 bit в текст

	на вход:
		BC, HL - число 32 bit
	        DE - адрес буфера
	на выход:
		DE - адрес следующего байта за числом

[]------------------------------------------------------------------------[]

    ConvNumTxt16 - процедура конвертации беззнакового числа 16 bit в текст

	на вход:
		HL - число 16 bit
	        DE - адрес буфера
	на выход:
		DE - адрес следующего байта за числом

[]------------------------------------------------------------------------[]

    ConvNumTxt8 - процедура конвертации беззнакового числа 8 bit в текст

	на вход:
		A  - число 8 bit
	        DE - адрес буфера
	на выход:
		DE - адрес следующего байта за числом

[]------------------------------------------------------------------------[]

    ConvTxtNum32 - процедура конвертации текста в беззнаковое число 32 bit

	на вход:
	        DE - адрес текста (конец строки - 0)
	на выход:
		HL, IX - число
		C flag - ошибка

[]------------------------------------------------------------------------[]

    ConvTxtNum16 - процедура конвертации текста в беззнаковое число 16 bit

	на вход:
	        DE - адрес текста (конец строки - 0)
	на выход:
		HL     - число
		C flag - ошибка

[]------------------------------------------------------------------------[]

    DOSError - процедура вывода окна ошибки (для дос ошибок)

	на вход:
		A - номер ошибки
	на выход:
		-

[]------------------------------------------------------------------------[]





13 july 2002
Anton Enin (C) Copyright 2002 R-lab
если есть вопросы e-mail: r-lab@mail.ru или на спринтер форуме.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: FLX плугины для FN

Post by Shaos »

Я смотрю я писал визуализатор FLX-плагинов на PC (Watcom-C/C++) - надо чтоли зарелизить :)
Screenshot from 2020-12-17 00-34-21.png
Ещё редактор ресурсов вроде начинал городить для Спринтера

Потом Антон Енин выкладывал исходники для того, чтобы можно было повторить контролы FN в своей программе и я даже из них сделал DLL...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: FLX плугины для FN

Post by Shaos »

Shaos wrote:Тут оказывается только у меня сохранилась пара плугинов за авторством Mac Buster:

http://nedopc.org/nedopc/sprinter/upload/flx-date.zip
http://nedopc.org/nedopc/sprinter/upload/flx-calc.zip

Image

Исходников нету, но плугины микроскопические - можно дизассемблировать и доделать калькулятор, чтобы считал...
Вот как FLX-CALC.FLX выглядит в моём визуализаторе:
Screenshot from 2020-12-17 00-43-13.png
Также визуализатор генерирует текстовый файл с человеческим описанием ресурсов из файла FLX:

Code: Select all

INFO FILE flx-calc.flx

MakeWindow 01
x0=242 y0=80
dx=155 dy=97
02|FILL (246,82) 147x10 00
01|STR (248,83) 0F 'Calculator'
06|HORZ (243,93) 154
03|BUTT0 (250,99) 139x11 [250,389,99,110]
04|BUTTON (250,114) 26x13 [250,276,114,127]
04|BUTTON (278,114) 26x13 [278,304,114,127]
04|BUTTON (306,114) 26x13 [306,332,114,127]
04|BUTTON (334,114) 26x13 [334,360,114,127]
04|BUTTON (362,114) 26x13 [362,388,114,127]
04|BUTTON (250,129) 26x13 [250,276,129,142]
04|BUTTON (278,129) 26x13 [278,304,129,142]
04|BUTTON (306,129) 26x13 [306,332,129,142]
04|BUTTON (334,129) 26x13 [334,360,129,142]
04|BUTTON (362,129) 26x13 [362,388,129,142]
04|BUTTON (250,144) 26x13 [250,276,144,157]
04|BUTTON (278,144) 26x13 [278,304,144,157]
04|BUTTON (306,144) 26x13 [306,332,144,157]
04|BUTTON (334,144) 26x13 [334,360,144,157]
04|BUTTON (362,144) 26x28 [362,388,144,172]
04|BUTTON (250,159) 26x13 [250,276,159,172]
04|BUTTON (278,159) 26x13 [278,304,159,172]
04|BUTTON (306,159) 26x13 [306,332,159,172]
04|BUTTON (334,159) 26x13 [334,360,159,172]
00|END
Надо под SDL чтоли переписать с использованием класса UniGraf, чтобы растягивал 640x256 в 640x480...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: FLX плугины для FN

Post by Shaos »

Вот выкладываю все свои FLX исходники как есть - там доки всех версий (см. подкаталог old), исходники cd-плеера (умеет PLAY и EJECT) и исходники просмотрщика FLX-интерфейсов для доса (всё 18-летней давности)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net