nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 12:06



Reply to topic  [ 5 posts ] 
FLX плугины для FN 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Тут оказывается только у меня сохранилась пара плугинов за авторством Mac Buster:

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

Исходников нету, но плугины микроскопические - можно дизассемблировать и доделать калькулятор, чтобы считал...


Attachments:
flx-calc.jpg
flx-calc.jpg [ 142.96 KiB | Viewed 3973 times ]

_________________
:dj: https://mastodon.social/@Shaos
17 Dec 2020 00:48
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Вот описание API плугинов для Flex Navigator-а

FLX.INC:
Code:
;[]=======================================================================[]
; 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:
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:
;[]=======================================================================[]
;
; 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:
[]========================================================================[]
*                              *
*    Описание 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 или на спринтер форуме.

_________________
:dj: https://mastodon.social/@Shaos


17 Dec 2020 01:12
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Я смотрю я писал визуализатор FLX-плагинов на PC (Watcom-C/C++) - надо чтоли зарелизить :)

Attachment:
Screenshot from 2020-12-17 00-34-21.png
Screenshot from 2020-12-17 00-34-21.png [ 12.3 KiB | Viewed 3969 times ]

Ещё редактор ресурсов вроде начинал городить для Спринтера

Потом Антон Енин выкладывал исходники для того, чтобы можно было повторить контролы FN в своей программе и я даже из них сделал DLL...

_________________
:dj: https://mastodon.social/@Shaos


17 Dec 2020 01:15
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
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 выглядит в моём визуализаторе:

Attachment:
Screenshot from 2020-12-17 00-43-13.png
Screenshot from 2020-12-17 00-43-13.png [ 12.1 KiB | Viewed 3967 times ]


Также визуализатор генерирует текстовый файл с человеческим описанием ресурсов из файла FLX:

Code:
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...

_________________
:dj: https://mastodon.social/@Shaos


17 Dec 2020 01:46
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Вот выкладываю все свои FLX исходники как есть - там доки всех версий (см. подкаталог old), исходники cd-плеера (умеет PLAY и EJECT) и исходники просмотрщика FLX-интерфейсов для доса (всё 18-летней давности)


Attachments:
sp_flx.zip [137.64 KiB]
Downloaded 290 times

_________________
:dj: https://mastodon.social/@Shaos
21 Jan 2021 13:13
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 5 posts ] 

Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.