Добавлены файлы.

This commit is contained in:
savelij13 2025-05-30 08:35:57 +03:00
commit 70e1e6bb04
73 changed files with 33424 additions and 0 deletions

39
build.bat Normal file
View File

@ -0,0 +1,39 @@
@echo off
if not exist tmp md tmp
if not exist fn md fn
if not exist fn\flx md fn\flx
set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad\svn\pentevo\tools\noice2equ\;d:\yad\sprinter_src\tools\
set includes=d:\yad\svn\pentevo\rom;d:\yad\sprinter_src\
cls
rem Flex Navigator
mhmt font.raw tmp\font_raw.pack
mhmt iff_font.raw tmp\iff_font_raw.pack
rem asl -U -L -C -x -olist tmp\fnexeboot.lst -i %includes% fn_exe_boot.a80 || goto error
asl -U -L -C -x -olist tmp\fnexeboot.lst -i %includes% -D NO_EDIT,NO_VIEW,NO_HELP fn_exe_boot.a80 || goto error
p2bin fn_exe_boot.p tmp\fn.exe -r $-$ -k
rem Flex Navigator Plugins
rem cd plugins
rem call build_all
rem cd ..
copy /Y /B tmp\fn.exe fn\fn.exe
copy /Y /B plugins\*.flx fn\flx
echo ########################
echo # -= End Compile Ok =- #
echo ########################
goto exit
:error
echo #######################
echo # -= Error Compile =- #
echo #######################
:exit

6
build_pause.bat Normal file
View File

@ -0,0 +1,6 @@
@ECHO OFF
call build.bat
pause

25
docs/HELP.ENG Normal file
View File

@ -0,0 +1,25 @@
struct FlxPluginHeader {
char Id[8];
unsigned short LoadOffset;
unsigned short EntryOffset;
unsigned char PluginMode;
unsigned char Reserved[3];
};
Header of Plugin for Flex Navigator v1.xx:
8 bytes Id - identifier of plugin, you should begin from three symbols - FLX
2 bytes LoadOffset - displacement in page of memory for load (0 - 0x3FFF)
2 bytes EntryOffset - displacement in page of memory for executing (0 - 0x3FFF)
1 byte PluginMode - modes of work:
0 - repairing Flex Navigator screen after finish
1 - without repairing Flex Navigator screen after finish
3 bytes Reserved
length = 16 bytes
ATTANTION!!!
1. Size of plugin code (without header) must be less 4000 bytes.
2. ORG = 0xC000
3. When control will return to Flex Navigator, Carry Flag are specify error status:
CF = 1 error during initialization
CF = 0 no error

29
docs/HELP.RUS Normal file
View File

@ -0,0 +1,29 @@
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 ¡ ©â
!!! <>ˆŒ€<C592>ˆ
1. ¢á¥ ¯« £¨­ë ¤«ï Flex Navigator v1.xx ­¥ ¤®«¦­ë ¯à¥¢ëè âì ¢ à §¬¥à¥ ®á­®¢­®£® ª®¤ 
(â.¥. ¡¥§ § £®«®¢ª ) 0x4000 ¡ ©â .
2. ¢á¥ ¯« £¨­ë ¤«ï Flex Navigator v1.xx ¤®«¦­ë ¡ëâì ®âª®¬¯¨«¨à®¢ ­ë á  ¤à¥á  0xC000
(â.¥. org = 0xC000).
3. ¢®§¢à é ¥¬®¥ §­ ç¥­¨¥:
CF = 1 ®è¨¡ª  ­  áâ ¤¨¨ ¨­¨â¨ «¨§ æ¨¨ (¯®á«¥ ­¥ñ ­¨ç¥£® ­¥ ¢®ááâ ­ ¢«¨¢ ¥âáï)
CF = 0 ­¥â ®è¨¡ª¨

572
docs/fn_api_0.2.txt Normal file
View File

@ -0,0 +1,572 @@
[]========================================================================[]
* *
* ޝ¨á ­¨¥ Flex Navigator API v1.xx ¤«ï à §à ¡®â稪®¢ Flx-Plugins *
* doc v0.2 ®â 07.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 -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à 
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
PrnHScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ £®à¨§®­â «ì­®£® áªà®««¡ à 
­  ¢å®¤:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à 
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
PrnVScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ ¢¥à⨪ «ì­®£® áªà®««¡ à 
­  ¢å®¤:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à 
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
InitProcess - ¯à®æ¥¤ãà  ¨­¨æ¨ «¨§ æ¨¨ ®¯¨á â¥«ï ¯à®æ¥áá¡ à 
­  ¢å®¤:
IX -  ¤à¥á ®¯¨á â¥«ï ¯à®æ¥áá¡ à 
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
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)  ¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢ ï ª­®¯ª )
ä« £¨ í«¥¬¥­â :
d00 - í«¥¬¥­â ª­®¯ª 
d01 - à ¡®ç ï ª­®¯ª 
d02 - ¨­¢¥àâ
d03 - áâ â¨ç­ë© ¨­¢¥àâ
d04 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¡¥§ ®£­ï
d05 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® «¥¢®© ª­®¯ª¥
®£­ï
d06 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® ¯à ¢®© ª­®¯ª¥
®£­ï
d07 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¡¥§
®£­ï
d08 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯®
«¥¢®© ª­®¯ª¥
d09 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯®
¯à ¢®© ª­®¯ª¥
d15 - íâ® ä« £: 1 - ¨­¢¥à⠯ਠ®£­¥ ­¥ 㡨à âì
¥á«¨ +00 == 0x8000 íâ® áç¨â ¥âáï ª®­æ®¬ â ¡«¨æë í«¥¬¥­â®¢ §ªà ­ 
[]------------------------------------------------------------------------[]
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 - ­®¬¥à ®è¨¡ª¨
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
07 july 2002
Anton Enin (C) Copyright 2002 R-lab
¥á«¨ ¥áâì ¢®¯à®áë e-mail: r-lab@mail.ru ¨«¨ ­  á¯à¨­â¥à ä®à㬥.

596
docs/fn_api_0.3.txt Normal file
View File

@ -0,0 +1,596 @@
[]========================================================================[]
* *
* ޝ¨á ­¨¥ Flex Navigator API v1.xx ¤«ï à §à ¡®â稪®¢ Flx-Plugins *
* doc v0.3 ®â 10.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 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¡¥§ ®£­ï
d05 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® «¥¢®© ª­®¯ª¥
®£­ï
d06 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à â  ¯® ¯à ¢®© ª­®¯ª¥
®£­ï
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 - ­®¬¥à ®è¨¡ª¨
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
10 july 2002
Anton Enin (C) Copyright 2002 R-lab
¥á«¨ ¥áâì ¢®¯à®áë e-mail: r-lab@mail.ru ¨«¨ ­  á¯à¨­â¥à ä®à㬥.

611
docs/fn_api_0.4.txt Normal file
View File

@ -0,0 +1,611 @@
[]========================================================================[]
* *
* ޝ¨á ­¨¥ 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 ¨«¨ ­  á¯à¨­â¥à ä®à㬥.

671
docs/fn_api_0.5.txt Normal file
View File

@ -0,0 +1,671 @@
[]========================================================================[]
* *
* ޝ¨á ­¨¥ Flex Navigator API v1.xx ¤«ï à §à ¡®â稪®¢ Flx-Plugins *
* doc v0.5 ®â 31.03.2025 (¢ ¯à®æ¥áá¥) *
* *
[]========================================================================[]
„®áâ㯠ª äã­ªæ¨ï¬ ®áãé¥á⢫ï¥âáï ç¥à¥§ ­ ¡®à ¯¥à¥å®¤®¢ ¢ ­ ç «¥ ï¤à 
Flex Navigator ¤«ï ᡮન ¯« £¨­®¢ ­¥§ ¢¨á¨¬® ®â ï¤à .
’ ¡«¨æ  ¯¥à¥å®¤®¢ ­ ç¨­ ¥âáï á  ¤à¥á  JUMPS + 3 ¨«¨ ®­  ¦¥ á
BASE_ADDR + 3. €¤à¥á ­ ç «  â ¡«¨æë ¢ë஢­¥­ ¯® £à ­¨æ¥ 256 ¡ ©â. <20>¥à¢ë©
 ¤à¥á ¯¥à¥å®¤ § ­ïâ ¤«ï § ¯ã᪠ á ¬®£® ­ ¢¨£ â®à .
<20> §¬¥à â ¡«¨æë ¯¥à¥å®¤®¢ 192 ¡ ©â , ¯®á«¥ â ¡«¨æë à á¯®«®¦¥­ë ­¥ª®â®àë¥
¯¥à¥¬¥­­ë¥ Flex Navigator ¤«ï ¤®áâ㯠 ª ­¨¬ ¨§ ¯« £¨­®¢.
„«ï ¯à ¢¨«ì­®© à ¡®âë ¯à¨ á¡®àª¥ ¯« £¨­  ¯à¥¤« £ ¥âáï ¨­ª«ã¤¨âì
ä ©« fn_const.a80
[]------------------------------------------------------------------------[]
JUMPS.ClearScreen - ¯à®æ¥¤ãà  ®âç¨á⪨ 0-£® íªà ­  ­ã¦­ë¬ 梥⮬.
­  ¢å®¤:
A - 梥⠮âç¨á⪨ (00-0Fh)
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
JUMPS.MakeWindow - ¯à®æ¥¤ãà  á®§¤ ­¨ï £à ä¨ç¥áª®£® ®ª­ 
­  ¢å®¤:
(SP) - ®¯¨á â¥«ì ®ª­ 
­  ¢ë室:
-
áà §ã §  ¢ë§®¢®¬ í⮩ ¯à®æ¥¤ãàë ¢ ¯à®£à ¬¬¥ á«¥¤ã¥â ®¯¨á â¥«ì ®ª­ .
¢®§¢à â ¨§ ¯à®æ¥¤ãàë ¯à®¨á室¨â ¯®  ¤à¥áã, á«¥¤ãî饬㠧  ®¯¨á â¥«¥¬.
­ ¯à¨¬¥à:
call MakeWindow
... ; ®¯¨á â¥«ì ®ª­ 
®¯¨á â¥«ì ®ª­ :
+00 (1) ä« £ ¢ë¢®¤  ®ª­ : 0 - ¡¥§ á®åà ­¥­¨ï ¤ ­­ëå ¯®¤ ®ª­®¬
(¨á¯®«ì§ã¥âáï ¤«ï ¯®«­®íªà ­­ëå ®ª®­)
1 - á á®åà ­¥­¨¥¬ ¤ ­­ëå ¯®¤ ®ª­®¬
(¨á¯®«ì§ã¥âáï ¤«ï ­¥¡®«ìè¨å ®ª®­)
0x7F - ¢®ááâ ­®¢¨âì ¤ ­­ë¥ ¯®¤ ®ª­®¬
(ä« £ á«ã¦¨â ¤«ï § ªàëâ¨ï
⥪ã饣® ®ª­ )
0x8x - ¡¥§ ¯à¨¢ï§ª¨ ª ®¯¨á â¥«î ®ª­ 
+01 (2) ª®®à¤¨­ â  x ¤«ï ¢ë¢®¤  (0 - 639)
+03 (2) ª®®à¤¨­ â  y ¤«ï ¢ë¢®¤  (0 - 255)
+05 (2) è¨à¨­  (0 - 639)
+07 (2) ¢ëá®â  (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)
[]------------------------------------------------------------------------[]
JUMPS.InvertRectan - ¯à®æ¥¤ãà  § ¬¥­ë æ¢¥â  ¯àאַ㣮«ì­®© ¯«®áª®áâ¨
­  ¢å®¤:
HL - x ª®®à¤¨­ â 
BC - y ª®®à¤¨­ â 
HX - ¤«¨­  y
LX - ¤«¨­  x
D - ⥪ã騩 梥â
(d7-d4 梥â background, d3-d0 梥â foreground)
E - ­ã¦­ë© 梥â
(d7-d4 梥â background, d3-d0 梥â foreground)
­  ¢ë室:
-
ª ᮦ «¥­¨î ¯à®æ¥¤ãà  ­¥ ®ç¥­ì ¡ëáâà ï, ¯®í⮬㠡®«ì訥
¯àאַ㣮«ì­¨ª¨ ᮢ¥âãî ®á®¡® ­¥ ¨­¢¥àâ¨à®¢ âì... ;)
[]------------------------------------------------------------------------[]
JUMPS.PrnTxtLnIFF - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨©
íªà ­ 640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ 
­  ¢å®¤:
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
A - 梥⠯¥ç â¨
(d7-d4 梥â background, d3-d0 梥â foreground)
­  ¢ë室:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  áâப®©
[]------------------------------------------------------------------------[]
JUMPS.PrnTxtLnNorm - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨©
íªà ­ 640x256
­  ¢å®¤:
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
A - 梥⠯¥ç â¨
(d7-d4 梥â background, d3-d0 梥â foreground)
­  ¢ë室:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  áâப®©
[]------------------------------------------------------------------------[]
JUMPS.PrnTxtLnNormC - ¯à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨©
íªà ­ 640x256 á ¨§¢¥áâ­ë¬ ç¨á«®¬ ᨬ¢®«®¢
­  ¢å®¤:
HL -  ¤à¥á ⥪á⮢®© áâப¨
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
C - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
B - ª®«-¢® ¯¥ç â ¥¬ëå ᨬ¢®«®¢
A - 梥⠯¥ç â¨
(d7-d4 梥â background, d3-d0 梥â foreground)
­  ¢ë室:
HL -  ¤à¥á ¡ ©â , á«¥¤ãî饣® §  ¯®á«¥¤­¨¬ ᨬ¢®«®¬
[]------------------------------------------------------------------------[]
JUMPS.PrnRangPathL - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨©
íªà ­ 640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ¯à¨¦ âëå ª
«¥¢®¬ã ªà î ( |-> )
­  ¢å®¤:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
A - 梥⠯¥ç â¨
(d7-d4 梥â background, d3-d0 梥â foreground)
­  ¢ë室:
-
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£®
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\
[]------------------------------------------------------------------------[]
JUMPS.PrnRangPathR - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨©
íªà ­ 640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ¯à¨¦ âëå ª
¯à ¢®¬ã ªà î ( <-| )
­  ¢å®¤:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
A - 梥⠯¥ç â¨
(d7-d4 梥â background, d3-d0 梥â foreground)
­  ¢ë室:
-
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£®
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\
[]------------------------------------------------------------------------[]
JUMPS.PrnRangPathC - ¯à®æ¥¤ãà  ¢ë¢®¤  ¤®á®¢áª¨å ¯ã⥩ ­  £à ä¨ç¥áª¨©
íªà ­ 640x256 ¢ ०¨¬¥ à §¬¥à­®£® ¯® X èà¨äâ , ®â業âà¨à®¢ ­­ëå
®â­®á¨â¥«ì­® ªà ñ¢ ( <-|-> )
­  ¢å®¤:
IX - ª®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨
HL -  ¤à¥á ⥪á⮢®© áâப¨ (ª®­¥æ áâப¨ - 0)
DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
A - 梥⠯¥ç â¨
(d7-d4 梥â background, d3-d0 梥â foreground)
­  ¢ë室:
-
¯à®æ¥¤ãà  £à ¬®â­® 㪮à ç¨¢ ¥â ¤®á®¢áª¨© ¯ãâì ¤® ­ã¦­®£®
à §¬¥à  ¯ãâñ¬ § ¬¥é¥­¨ï ­¥¢«¥§ îé¨å ¤¨à¥ªâ®à¨© ­  ..\
[]------------------------------------------------------------------------[]
JUMPS.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
(¢®ááâ ­ ¢«¨¢ ¥â ¨§­ ç «ì­ãî áâபã)
[]------------------------------------------------------------------------[]
JUMPS.InpLnExtN
[]------------------------------------------------------------------------[]
JUMPS.InpLnExtC
[]------------------------------------------------------------------------[]
JUMPS.DOSError - ¯à®æ¥¤ãà  ¢ë¢®¤  ®ª­  ®è¨¡ª¨ (¤«ï DOS ®è¨¡®ª)
­  ¢å®¤:
A - ­®¬¥à ®è¨¡ª¨
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
JUMPS.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) ¯¥à¢ ï ¢¨¤¨¬ë© í«¥¬¥­â
[]------------------------------------------------------------------------[]
JUMPS.PrnHScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ £®à¨§®­â «ì­®£® áªà®««¡ à 
­  ¢å®¤:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  (á¬. ¢ëè¥)
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
JUMPS.PrnVScrBar - ¯à®æ¥¤ãà  ¯¥ç â¨ ¢¥à⨪ «ì­®£® áªà®««¡ à 
­  ¢å®¤:
IX -  ¤à¥á ®¯¨á â¥«ï áªà®««¡ à  (á¬. ¢ëè¥)
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
JUMPS.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)
[]------------------------------------------------------------------------[]
JUMPS.PrnProcess - ¯à®æ¥¤ãà  ¯¥ç â¨ ¯à®æ¥áá¡ à 
­  ¢å®¤:
IX -  ¤à¥á ®¯¨á â¥«ï ¯à®æ¥áá¡ à  (á¬. ¢ëè¥)
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
JUMPS.InitScrollBar
[]------------------------------------------------------------------------[]
JUMPS.MenuWork
[]------------------------------------------------------------------------[]
3 ª®¬ ­¤ ¯¥à¥å®¤  (12 ¡ ©â) § à¥§¥à¢¨à®¢ ­ë ¨ § ¯®«­¥­ë
ª®¬ ­¤®© RET (12 ¡ ©â 0xC9)
[]------------------------------------------------------------------------[]
JUMPS.ResFire - ¯à®æ¥¤ãà  ®¦¨¤ ­¨ï, ¯®ª  ¢á¥ ª­®¯ª¨ ¬ëè¨ ­¥ ¡ã¤ãâ
®â¯ã饭ë
­  ¢å®¤:
-
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
JUMPS.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 - ¨­¢¥à⠯ਠ®£­¥ ­¥ 㡨à âì
[]------------------------------------------------------------------------[]
JUMPS.SetCMOSPrint - ¯à®æ¥¤ãà  ¢ª«î祭¨ï ¯¥ç â¨ ¤ âë/¢à¥¬ï ¨§ CMOS
­  ¢å®¤:
- ¡ã¤¥â ®¯¨á ­® ¯®§¤­¥¥
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
JUMPS.ResCMOSPrint - ¯à®æ¥¤ãà  ¢ëª«î祭¨ï ¯¥ç â¨ ¤ âë/¢à¥¬ï ¨§ CMOS
­  ¢å®¤:
- ¡ã¤¥â ®¯¨á ­® ¯®§¤­¥¥
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
JUMPS.SetClock - ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ ªãàá®à  ¬ëè¨ ¢ ç áë
­  ¢å®¤:
-
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
JUMPS.SetMouse - ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ ªãàá®à  ¬ëè¨ ¢ ­®à¬ «ì­ë© ªãàá®à
­  ¢å®¤:
-
­  ¢ë室:
-
[]------------------------------------------------------------------------[]
4 ª®¬ ­¤ë ¯¥à¥å®¤  (12 ¡ ©â) § à¥§¥à¢¨à®¢ ­ë ¨ § ¯®«­¥­ë
ª®¬ ­¤®© RET (12 ¡ ©â 0xC9)
[]------------------------------------------------------------------------[]
JUMPS.ConvNumTxt40
[]------------------------------------------------------------------------[]
JUMPS.MoveBytes - ¯à®æ¥¤ãà  ¡ëáâண® ª®¯¨à®¢ ­¨ï ¯ ¬ïâ¨ á ¯®¬®éìî
 ªá¥««¥à â®à  á 㢥«¨ç¥­¨¥¬  ¤à¥á®¢
­  ¢å®¤:
HL - ®âªã¤ 
DE - ªã¤ 
BC - ᪮«ìª®
­  ¢ë室:
HL - (®âªã¤  + ᪮«ìª®)
DE - (ªã¤  + ᪮«ìª®)
[]------------------------------------------------------------------------[]
JUMPS.MoveBytesUp - ¯à®æ¥¤ãà  ¡ëáâண® ª®¯¨à®¢ ­¨ï ¯ ¬ïâ¨ á ¯®¬®éìî
 ªá¥««¥à â®à  á 㬥­ì襭¨¥¬  ¤à¥á®¢
­  ¢å®¤:
HL - ®âªã¤ 
DE - ªã¤ 
BC - ᪮«ìª®
­  ¢ë室:
HL - (®âªã¤  - ᪮«ìª®)
DE - (ªã¤  - ᪮«ìª®)
[]------------------------------------------------------------------------[]
JUMPS.Mult8 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï
8 * 8 bit = 16 bit
­  ¢å®¤:
E * C
­  ¢ë室:
HL - १ã«ìâ â
[]------------------------------------------------------------------------[]
JUMPS.Mult16X8 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï
16 * 8 bit = 24 bit
­  ¢å®¤:
DE * C
­  ¢ë室:
A, HL - १ã«ìâ â
[]------------------------------------------------------------------------[]
JUMPS.Mult16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï
16 * 16 bit = 16 bit
­  ¢å®¤:
DE * BC
­  ¢ë室:
HL - १ã«ìâ â
[]------------------------------------------------------------------------[]
JUMPS.Mult16X16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï
16 * 16 bit = 32 bit
­  ¢å®¤:
DE * BC
­  ¢ë室:
HL, DE - १ã«ìâ â
[]------------------------------------------------------------------------[]
JUMPS.Mult32 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® 㬭®¦¥­¨ï
32 * 16 bit = 32 bit
­  ¢å®¤:
HL, DE * BC
­  ¢ë室:
HL, DE - १ã«ìâ â
[]------------------------------------------------------------------------[]
JUMPS.Divis16X16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® ¤¥«¥­¨ï
16 / 16 bit = 16.16 bit
­  ¢å®¤:
BC / DE
­  ¢ë室:
BC - १ã«ìâ â
HL - ®áâ â®ª
[]------------------------------------------------------------------------[]
JUMPS.Divis24X16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® ¤¥«¥­¨ï
24 / 16 bit = 8.16 bit
­  ¢å®¤:
HL, C / DE
­  ¢ë室:
A - १ã«ìâ â
HL - ®áâ â®ª
[]------------------------------------------------------------------------[]
JUMPS.Divis32X16 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® ¤¥«¥­¨ï
32 / 16 bit = 16.16 bit
­  ¢å®¤:
HL, DE / BC
­  ¢ë室:
DE - १ã«ìâ â
HL - ®áâ â®ª
[]------------------------------------------------------------------------[]
JUMPS.Divis32 - ¯à®æ¥¤ãà  ¡¥§§­ ª®¢®£® ¤¥«¥­¨ï
32 / 16 bit = 32.16 bit
­  ¢å®¤:
HL, DE / BC
­  ¢ë室:
HL, DE - १ã«ìâ â
BC - ®áâ â®ª
[]------------------------------------------------------------------------[]
JUMPS.ConvNumTxt32 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ¡¥§§­ ª®¢®£® ç¨á« 
32 bit ¢ ⥪áâ
­  ¢å®¤:
BC, HL - ç¨á«® 32 bit
DE -  ¤à¥á ¡ãä¥à 
­  ¢ë室:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬
[]------------------------------------------------------------------------[]
JUMPS.ConvNumTxt16 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ¡¥§§­ ª®¢®£® ç¨á« 
16 bit ¢ ⥪áâ
­  ¢å®¤:
HL - ç¨á«® 16 bit
DE -  ¤à¥á ¡ãä¥à 
­  ¢ë室:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬
[]------------------------------------------------------------------------[]
JUMPS.ConvNumTxt8 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ¡¥§§­ ª®¢®£® ç¨á« 
8 bit ¢ ⥪áâ
­  ¢å®¤:
A - ç¨á«® 8 bit
DE -  ¤à¥á ¡ãä¥à 
­  ¢ë室:
DE -  ¤à¥á á«¥¤ãî饣® ¡ ©â  §  ç¨á«®¬
[]------------------------------------------------------------------------[]
JUMPS.ConvTxtNum32 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ⥪áâ  ¢ ¡¥§§­ ª®¢®¥
ç¨á«® 32 bit
­  ¢å®¤:
DE -  ¤à¥á ⥪áâ  (ª®­¥æ áâப¨ - 0)
­  ¢ë室:
HL, IX - ç¨á«®
C flag - ®è¨¡ª 
[]------------------------------------------------------------------------[]
JUMPS.ConvTxtNum16 - ¯à®æ¥¤ãà  ª®­¢¥àâ æ¨¨ ⥪áâ  ¢ ¡¥§§­ ª®¢®¥
ç¨á«® 16 bit
­  ¢å®¤:
DE -  ¤à¥á ⥪áâ  (ª®­¥æ áâப¨ - 0)
­  ¢ë室:
HL - ç¨á«®
C flag - ®è¨¡ª 
[]------------------------------------------------------------------------[]
JUMPS.Resident
[]------------------------------------------------------------------------[]
13 july 2002
Anton Enin (C) Copyright 2002 R-lab
¥á«¨ ¥áâì ¢®¯à®áë e-mail: r-lab@mail.ru ¨«¨ ­  á¯à¨­â¥à ä®à㬥.

145
docs/history.txt Normal file
View File

@ -0,0 +1,145 @@
FN - FlexNavigator
FV - FileViewer
FE - FileEditor
28.05.25
FE v1.08
- ã¡à ­® "¨áª ¦¥­¨¥" ¨¬¥­¨ ä ©«  ¯à¨ § ¯ã᪥.
FV v1.05
- ã¡à ­® "¨áª ¦¥­¨¥" ¨¬¥­¨ ä ©«  ¯à¨ § ¯ã᪥.
FN v1.14
- ¨á¯à ¢«¥­® § ¢¨á ­¨¥ ¢ ª®¬ ­¤­®© áâப¥ ¯à¨ ­ ¦ â¨¨ ALT+F1/F2.
- ᤥ« ­ ¯à®¯ã᪠¤«ï ¨¬¥­¨ ¤¨à¥ªâ®à¨¨ ".." ¤«ï á®àâ¨à®¢é¨ª  ¤«ï ¯à ¢¨«ì­®© á®àâ¨à®¢ª¨.
- ¯®¯à ¢«¥­ë ­ §¢ ­¨ï ⨯®¢ á®àâ¨à®¢ª¨.
- ᤥ« ­ ¨§¬¥à¨â¥«ì à §¬¥à  ¤¨à¥ªâ®à¨¨ ¢ ¡ ©â å ¤«ï ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨ï¬¨ (¯®ª  á¯àïâ ­).
- ¯®ª § ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¨§ ¤¥à¥¢  ᤥ« ­ ¯® ENTER ¢¬¥áâ®  ¢â®¯®ª §  (¯®ª  á¯àïâ ­ ).
- ¯®¯à ¢«¥­  £¥­¥à æ¨ï ¤¥à¥¢  ä ©«®¢.
-------------------------------------------------------------------------------
25/06/24
„®¡ ¢«¥­® ®â®¡à ¦¥­¨¥ á®®¡é¥­¨ï ® § é¨â¥ ®â § ¯¨á¨.
13/05/24
ˆá¯à ¢«¥­  ®è¨¡ª  ¨­¨æ¨ «¨§ æ¨¨ áâà ­¨æë help.
„®¡ ¢«¥­  ¯®¤¤¥à¦ª  ¡®«ìè¨å ä ©«®¢ ¤«ï FAT32
11/05/24
’¥¯¥àì ¢ë¢®¤¨âáï á®®¡é¥­¨¥ ® ⮬, ç⮠᫨誮¬ ¬­®£® ä ©«®¢ ¢ ¤¨à¥ªâ®à¨¨. ’¥ ä ©«ë, ª®â®àë¥ "­¥ ¢«¥§«¨" - ­¥ ®â®¡à ¦ îâáï.
12/12/23
<EFBFBD>®¤¤¥à¦ª  Current Dir, ¯à¨ áâ à⥠®â®¡à ¦ ¥âáï ⥪ãé ï ¤¨à¥ªâ®à¨ï ¤¨áª .
07/09/23
Œ­®¦¥á⢥­­ë¥ ¬¥«ª¨¥ ¯à ¢ª¨.
01/08/23
<EFBFBD>®¢¨á ¥â FN ¯®á«¥ ¯¥à¥§ £à㧪¨ ¡®«ì让  «ìâ¥àë (titd, ldconf).
“¡à ­  ¯à®¢¥àª  ­  Sp97.
‚¥àá¨ï ­®à¬ «ì­® ¯à®¯¨á ­ , «¨è­¨¥ ª®¯¨à ©âë ¯à¨ § ¯ã᪥ ã¡à ­ë.
29/07/23
’ ¡«¨æ  ®è¨¡®ª ®â § ¢¥à訢襣®áï ¯à¨«®¦¥­¨ï - 32 § ¯¨á¨.
DSS à ­ìè¥ ­¥ ¢®§¢à é « ä« £ CF ¯à¨ ¢ë室¥ á ®è¨¡ª®©, ­® FN ¢á¥£¤  ¯à®¢¥àï« ¯®á«¥ ¢®§¢à â  ¨§ ¯à¨«®¦¥­¨ï ä« £ CF.
DSS ⥯¥àì ¢¥à­ã«, FN ¯®«¥§ ®è¨¡ªã ¯à®¢¥àïâì,   â ¬ FF,   â ¡«¨æ  ­  32...
<EFBFBD> ©¤¥­® ­  disttest.exe, ®­ ¢ë室¨â § ç¥¬-â® ãáâ ­®¢¨¢ ª®¤ ®è¨¡ª¨ #FF,   â ª®£® ª®¤  ­¥â.
<EFBFBD>㦭® á ­ã«¥¬ ¢ë室¨âì ¡¥§ ®è¨¡®ª.
17/07/23
¡¨®á¥ 2.55 ¯®ï¢¨« áì äã­ªæ¨ï - ¯¥à¥¤ ¢ âì ã¯à ¢«¥­¨¥ ¨§ <20>‡“ ®¡à ¡®â稪㠯à¥à뢠­¨ï ¢ ­ã«¥¢®© ¡ ­ª¥ އ“.
C¤¥« ­  ¯à®¢¥àª  ­  ¢¥àá¨î ¡¨®á .
10/05/22
Viewer:
* <20>®¯à ¢«¥­ ª®á¬¥â¨ç¥áª¨© ¡ £ ¢ ­¨¦­¥© áâப¥ ¯à¨ ᬥ­¥ ä㭪樮­ «ì­ëå ª« ¢¨è.
* ˆá¯à ¢«¥­® § ¢¨á ­¨¥ ¯à¨­â¥à  ¤® â ©¬ ãâ  ¯à¨ ¯¥ç â¨.
* ƒ¥à®¨ç¥áª¨ áíª®­®¬«¥­® ­¥¬­®£® ⠪⮢ â ¬, £¤¥ ­¨ªâ® ­¥ § ¬¥â¨â))).
+ <20>¥ç âì ¯¥à¥­¥á¥­  ­  ª« ¢¨èã F7, ç⮡ ¢ë£­ âì ¢ á ¨§ §®­ë ª®¬ä®àâ ))).
+ „®¡ ¢«¥­® á®ç¥â ­¨¥ CTRL+P ¤«ï ¯¥ç â¨.
? <20>®ç⨠¨á¯à ¢«¥­ Wrap, ®áâ «áï ¡ £ á ¢¥àå­¥© áâப®©. ‹ãçè¥, 祬 ­¨ç¥£®.
Editor:
+ „®¡ ¢«¥­  ª­®¯ª  "F7 Print"
+ „®¡ ¢«¥­® á®ç¥â ­¨¥ CTRL+P ¤«ï ¯¥ç â¨ ¢ ०¨¬¥ HEX
* <20>®¯à ¢«¥­ ª®á¬¥â¨ç¥áª¨© ¡ £ ¢ ­¨¦­¥© áâப¥ ¯à¨ ᬥ­¥ ä㭪樮­ «ì­ëå ª« ¢¨è
* ˆá¯à ¢«¥­® § ¢¨á ­¨¥ ¯à¨­â¥à  ¤® â ©¬ ãâ  ¯à¨ ¯¥ç â¨
-------------------------------------------------------------------------------
FE v.1.06 05.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ <20>® ª­®¯ª¥ F9 ¢ë§ë¢ îâáï ­ áâனª¨ । ªâ®à  á ¢®§¬®¦­®áâìî á®åà ­¨âì ­ áâனª¨
¢ ä ©«
FN v.1.13.1 02.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ¢¥àá¨ï ¡¥§ ᦠâ¨ï ª®¤®¢ëå ¡«®ª®¢
FE v.1.05.1 02.08.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­ ¯ à ¬¥âà ¢ ª®­ä¨£-ä ©«¥ fnedit.ini, ª®â®àë© ¢ª«îç ¥â/®âª«î砥⠤¨ «®£
¯®¤â¢¥à¦¤¥­¨ï § ªàëâ¨ï । ªâ®à 
FE v.1.05 07.06.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ¨á¯à ¢«¥­ £«îª, ª®â®àë© ¯à¨¢®¤¨« ª § ¢¨á ­¨î ¨«¨ á¡à®áã ¯®á«¥ 7-£® ®âªàëâ¨ï
। ªâ®à 
+ „®¡ ¢«¥­®  ¢â®§ ªàë⨥ ᨬ¢®«®¢ ᪮¡®ª ¨ ª ¢ë祪
+ “ । ªâ®à  ¯®ï¢¨«áï ª®­ä¨£-ä ©« fnedit.ini, ç¥à¥§ ª®â®àë© ¬®¦­® ®âª«îç¨âì
­¥ª®â®àë¥ ä¨ç¨
FE v.1.04 18.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­  ª­®¯ª  Ctrl+P ¤«ï ¯¥ç â¨ (§ â¥¬ F9 ¡ã¤¥â ¯¥à¥­ §­ ç¥­  ­  ¤à㣮©
ä㭪樮­ «)
+ „®¡ ¢«¥­ ä㭪樮­ « ®â¬¥­ë ¯® Ctrl+Z (íâ® ­¥ ¯®è £®¢ë© Undo, ­¥ ¯®«­®æ¥­­ë©,
¯à®áâ® á¡à á뢠¥â ¡ãä¥à ⥪ã饩 । ªâ¨à㥬®© áâப¨, ­  ¬®¬¥­â ¯¥à¥å®¤ 
­  íâã áâபã)
FE v.1.03 17.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­ë ª­®¯ª¨ ã¯à ¢«¥­¨ï Alt+CursorLeft(Home) ¨ Alt+CursorRight(End)
* ˆá¯à ¢«¥­ ¡ £ ¢ ¯®¤¯à®£à ¬¬¥ THomeString - ­  ¯ãá⮩ áâப¥ ¬®£«  § æ¨ª«¨âìáï
* ˆá¯à ¢«¥­ ¡ £ ¢ TEndString,  ­ «®£¨ç­® - ­  ¯ãá⮩ áâப¥ ¬®£«  § æ¨ª«¨âìáï
* ˆá¯à ¢«¥­  ¯®¤¯à®£à ¬¬  § ¯®«­¥­¨ï ¡ãä¥à  ⥪ã饩 áâப¨ (¯à¨ ­ã«¥¢®© ¤«¨­¥
áâப¨ ®­ ­¥ ®ç¨é «áï)
FN v.1.12.1 13.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ˆá¯à ¢«¥­ ¡ £ ¯à¨  ¢â®¬ â¨ç¥áª®© ᬥ­¥ ¯ ­¥«¨
+ „®¡ ¢«¥­  ­ áâனª  ¢ SetUp ¤«ï ®âª«î祭¨ï  ¢â®¬ â¨ç¥áª®©  ªâ¨¢ æ¨¨ ¯ ­¥«¨ ¯à¨
ᬥ­¥ ¤¨áª 
FE v.1.02 10.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­  £®àïç ï ª­®¯ª  Ctrl+D ¤«ï ¤ã¡«¨à®¢ ­¨ï áâப¨ (à ¡®â ¥â
⮫쪮 ¤«ï áâப ¤® 127 ᨬ¢®«®¢)
+ <20>ਠ¯¥à¥­®á¥ áâப¨ ¢ ­ ç «¥ áâப¨ ¤¥« ¥âáï â ª®© ¦¥ ®âáâ㯠®â ­ ç « , ª ª ¨
­  ¯à¥¤ë¤ã饩 áâப¥
* <20>¥à¥à ¡®â ­ë ¯à®æ¥¤ãàë ¯®§¨æ¨®­¨à®¢ ­¨ï ªãàá®à 
FN v.1.12+ 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ <20> ­¥«ì, ¢ ª®â®à®© ¬¥­ï¥âáï ¤¨áª ¯® Alt+F1/F2 áâ ­®¢¨âáï  ªâ¨¢­®©
FE v.1.01 07.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­ ¤¨ «®£ á § ¯à®á®¬ ¯®¤â¢¥à¦¤¥­¨ï ¢ë室  ¨§ । ªâ®à 
+ <20>ਠ¨§¢«¥ç¥­¨¨ áâப¨ ¡ãä¥à áâப¨ ®ç¨é ¥âáï - à ­¥¥ ¬®¦­® ¡ë«® ­ ¡«î¤ âì
­¥ª®â®àë© ¬ãá®à ¢ ª®­æ¥ áâப¨ ¯à¨ ­ ¢¨£ æ¨¨ ¬¥¦¤ã áâப ¬¨
* „®à ¡®â ­  ¯à®æ¥¤ãà  ¯®§¨æ¨®­¨à®¢ ­¨ï ªãàá®à  ¯à¨ ­ ¢¨£ æ¨¨ ­  áâபã
(áâà ­¨æã) ¢ëè¥/­¨¦¥ - ¢ § ¢¨á¨¬®á⨠®â ­ «¨ç¨ï â ¡ã«ïâ®à®¢ ¢ áâப¥, ªãàá®à
¬®£ ®â᪠ª¨¢ âì ­  ­¥áª®«ìª® ¯®§¨æ¨© ¢ áâ®à®­ã
+ „®¡ ¢«¥­  ¢®§¬®¦­®áâì 㤠«¥­¨ï 楫®© áâப¨ ¯® Ctrl+Y
+ „®¡ ¢«¥­  £®àïç ï ª­®¯ª  ¤«ï á®åà ­¥­¨ï Ctrl+S
+ <20>¥ «¨§ æ¨ï ­®¢®£® ०¨¬  à ¡®âë Home - ¥á«¨ ¥áâì â ¡ã«ïâ®àë ¢ ­ ç «¥ áâப¨,
â® ¯à¨ ¯¥à¢®¬ ­ ¦ â¨¨ ªãàá®à ¯¥à¥¬¥é ¥âáï ¢ ¯®§¨æ¨î á ¯¥à¢ë¬ ­¥-¯à®¡¥«ì­ë¬
ᨬ¢®«®¬, ¯à¨ ¯®¢â®à­®¬ ­ ¦ â¨¨ - ¯¥à¥¬¥é ¥âáï ¢ ¯¥à¢ãî ¯®§¨æ¨î
FN v.1.12 02.04.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ <20>¥ «¨§®¢ ­ § ¯ã᪠BAT-ä ©«®¢, ª ª ¨§ ¯ ­¥«¨, â ª ¨ ¨§ ª®¬ ­¤­®© áâப¨ á
¯¥à¥¤ ç¥© ¯ à ¬¥â஢.
FN v.1.11 27.03.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
* ˆá¯à ¢«¥­® ®¯à¥¤¥«¥­¨¥ ª â «®£  ¢ ª®â®à®¬ à á¯®« £ îâáï ä ©«ë FlexNavigator- .
FV v.1.03 10.02.2021 (Mikhaltchenkov Dmitry aka Hard/WCG)
+ „®¡ ¢«¥­® ¯¥à¥ª«î祭¨¥ ª®¤¨à®¢ª¨ ⥪áâ  WIN/DOS/KOI

19
docs/todo.txt Normal file
View File

@ -0,0 +1,19 @@
Flex navigator TODO:
[] ¤®¡ ¢¨âì ¢ ­ áâனª¨  ¢â®¯®ª § ¨«¨ ¯® ENTER ¯à¨ ¯¥à¥¬¥é¥­¨¨ ¯® ¤¥à¥¢ã ª â «®£®¢
[] ¤®¡ ¢¨âì ¢ ­ áâனª¨ ¢ë¡®à ¬¥­ïâì «¨  ªâ¨¢­ãî ¯ ­¥«ì ¯à¨ ᬥ­¥ ¤¨áª  ­  ­¥  ªâ¨¢­®© ¯ ­¥«¨
[] ¯à¨ ¢ë¢®¤¥ ¤¥à¥¢  ª â «®£®¢ ᤥ« âì áªà®«« ¢«¥¢®/¢¯à ¢® ¥á«¨ ¤¥à¥¢® ­¥ ¢«¥§ ¥â ¯® £®à¨§®­â «¨
[] ¯® ª­®¯ª¥ F6 ⮫쪮 ¯¥à¥¨¬¥­®¢ ­¨¥,   ¤®«¦­® ¡ëâì ¯¥à¥¨¬¥­®¢ ­¨¥/¯¥à¥¬¥é¥­¨¥ ä ©«  ¥á«¨ ­  ¯ ­¥«ïå à §­ë¥ ¯ãâ¨
[] ¯¥à¥¤¥« âì § å®à¤ª®¦¥­­ë¥ ª®®à¤¨­ âë, ¯¥à¥¤¥« âì ­  ¯à¨¢ï§ªã ª ª®®à¤¨­ â ¬ ®ª­ 
[] à §®¡à âìáï ª ª à ¡®â ¥â áâப  ¢¢®¤  ¯à¨ ¯®¨áª¥ ä ©«  ¯® ¨¬¥­¨
[] ¯« £¨­ । ªâ¨à®¢ ­¨ï èà¨äâ 
[] ¯« £¨­ ¤«ï á®§¤ ­¨ï ä®à¬ ®ª®­
[] § £à㧪  FLX ¯« £¨­  ¯® ¨¬¥­¨ ¡¥§ § ¯ã᪠
[?] ¢ë§®¢ ¨ ¢§ ¨¬®¤¥©á⢨¥ ¯« £¨­  á ¯« £¨­®¬
[x] ¢¢®¤ ¢ ª®¬ ­¤­ãî áâப㠨 ­ ¦ â¨¥ ALT+F1/F2 (¢ë¡®à ¤à ©¢ ) ¯®¤¢¨á ¥â
[x] á®àâ¨à®¢é¨ª á®àâ¨àã¥â "..",   ­¥ ¤®«¦¥­
[x] ¢ìî¢¥à ¯à¨ ¯®«ã祭¨¨ ¨¬¥­¨ ä ©«  ¤¥« ¥â ¥£® ª®­¢¥àá¨î ¨ ¯à¨ ­ «¨ç¨¨ àãá᪨å ᨬ¢®«®¢ ¯®àâ¨â ¨¬ï ¨ "File not found"
[x] ¢ Disk Info ®ª­¥ ¯®ª §ë¢ ¥â ¨¬ï ¤¨áª  ¨¬ï ä ©«  (npl.exe)
[x] ¯®áâà®¨â¥«ì ¤¥à¥¢  ª â «®£®¢ ­¥ à ¡®â ¥â

386
fn_const.a80 Normal file
View File

@ -0,0 +1,386 @@
; LAST UPDATE: 28.05.2025 savelij
DOShistory_Size EQU 0x200 ; à §¬¥à ¡ãä¥à  DOS ¨áâ®à¨¨
INIT_VAR 0x8000
SETVAR WorkBuffer, 0x400 ; à ¡®ç¨© ¡ãä¥à
SETVAR StackTree, 0x100 ; ­ ç «® ¡ãä¥à  á⥪  ¤«ï à ¡®âë á ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨©
SETVAR STACKTREE, 0 ; 㪠§ â¥«ì ­  ª®­¥æ ¡ãä¥à  (á⥪ à áâ¥â ¢­¨§)
SETVAR PagesList, 0x100 ; ᯨ᮪ áâà ­¨æ ¯ ¬ïâ¨
SETVAR Stack, 0x100 ; ­ ç «® à ¡®ç¥£® á⥪ 
SETVAR STACK, 0 ; 㪠§ â¥«ì ­  ª®­¥æ ¡ãä¥à  (á⥪ à áâ¥â ¢­¨§)
SETVAR BASE_ADDR, 0x100 ; ­ ç «® ª®¤  (¡«®ª ¯¥à¥å®¤®¢ ¨ ®¡é¨å ¯¥à¥¬¥­­ëå ¤«ï ¤®áâ㯠 ¨§ ¯« £¨­®¢)
SETVAR PALETTE, 0 ; ¯ «¨âà  áà §ã §  â ¡«¨æ¥© ¯¥à¥å®¤®¢ ¨ £«®¡ «ì­ëå ¯¥à¥¬¥­­ëå
ADDR
_INIT_VAR 0x4000
_SETVAR .FlexDIRECTORY
PluginOrg EQU 0xC000 - 0x10 ;  ¤à¥á ¯« £¨­  á ãç¥â®¬ à §¬¥à  § £®«®¢ª 
LenInpData EQU 12 ; ª ª®¥-⮠ᬥ饭¨¥ ¤«ï ¬¥âª¨ SearchStr
CursTimer EQU 6 ; "ç áâ®â " ¬®à£ ­¨ï ⥪á⮢®£® ªãàá®à 
Step EQU 8 ; è¨à¨­  ᨬ¢®«  ¤«ï ¯¥à¥¬¥é¥­¨ï ªãàá®à  ¯à¨ ¢¢®¤¥ ⥪áâ 
MainPullMenu EQU 6 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢ ¢ £« ¢­®¬ ¬¥­î
MASK_SIZE EQU 13
PANFILES ; ª®«¨ç¥á⢮ ä ©«®¢/¤¨à¥ªâ®à¨© ¢ ¯ ­¥«¨ ¢ ¢ëá®âã
.BRIEF EQU 17 ; ¤«ï Brief ०¨¬ 
.FULL EQU 18 ; ¤«ï Full ०¨¬ 
.TREE EQU 18 ; ¤«ï Tree ०¨¬ 
SUPPFILES
_INIT_VAR 1
_SETVAR .EXE
_SETVAR .BAT
_SETVAR .FLX
; æ¢¥â  INK
COLORI
_INIT_VAR
_SETVAR .BLACK ; 0
_SETVAR .RED ; 1
_SETVAR .GREEN ; 2
_SETVAR .YELLOW ; 3
_SETVAR .BLUE ; 4
_SETVAR .INVERTPAPER ; 5
_SETVAR .INVERTINK ; 6
_SETVAR .BLACKGRAY ; 7
_SETVAR .HIGHGRAY ; 8
_SETVAR .PANEL ; 9
_SETVAR .FILES ; A
_SETVAR .SELECTFILES ; B
_SETVAR .INVSELFILES ; C
_SETVAR .RESERVED ; D
_SETVAR .WHITE0E ; E
_SETVAR .WHITE ; F
; æ¢¥â  PAPER
COLORP
_INIT_VAR
_SETVAR .BLACK, 0x10
_SETVAR .RED, 0x10
_SETVAR .GREEN, 0x10
_SETVAR .YELLOW, 0x10
_SETVAR .BLUE, 0x10
_SETVAR .INVERTPAPER, 0x10
_SETVAR .INVERTINK, 0x10
_SETVAR .BLACKGRAY, 0x10
_SETVAR .HIGHGRAY, 0x10
_SETVAR .PANEL, 0x10
_SETVAR .FILES, 0x10
_SETVAR .SELECTFILES, 0x10
_SETVAR .INVSELFILES, 0x10
_SETVAR .RESERVED, 0x10
_SETVAR .WHITE0E, 0x10
_SETVAR .WHITE, 0x10
WINOBJECT
_INIT_VAR
_SETVAR .TYPE, BYTE
; ­ã¬¥à æ¨ï ¯®¤®¡ê¥ªâ®¢ ®ª­ 
WINSUBOBJ
_INIT_VAR
_SETVAR .END ; ª®­¥æ ®¯¨á â¥«ï ®ª­ 
_SETVAR .TEXT ; ¯¥ç âì ⥪á⮢®© áâப¨
_SETVAR .FILL ; § «¨¢ª  梥⮬ 㪠§ ­­®© ®¡« áâ¨
_SETVAR .BORDER ; 㣫㡫¥­¨¥
_SETVAR .BUTTON ; ª­®¯ª 
_SETVAR .BUTTONTEXT ; ª­®¯ª  á ⥪á⮬
_SETVAR .HORIZLINE ; £®à¨§®­â «ì­ ï «¨­¨ï
_SETVAR .VERTICLINE ; ¢¥à⨪ «ì­ ï «¨­¨ï
_SETVAR .ICONLEFTARROW ; á¯à ©â¨ª ¤«ï áªà®««¡ à  "áâ५ª  ¢«¥¢®"
_SETVAR .ICONRIGHTARROW ; á¯à ©â¨ª ¤«ï áªà®««¡ à  "áâ५ª  ¢¯à ¢®"
_SETVAR .ICONUPARROW ; á¯à ©â¨ª ¤«ï áªà®««¡ à  "áâ५ª  ¢¢¥àå"
_SETVAR .ICONDOWNARROW ; á¯à ©â¨ª ¤«ï áªà®««¡ à  "áâ५ª  ¢­¨§"
_SETVAR .ADRTEXT ; ¯¥ç âì ⥪á⮢®© áâப¨ ¯®  ¤à¥áã
_INIT_VAR 0x7F
_SETVAR .RESTOREWIN ; ¢®ááâ ­®¢«¥­¨¥ íªà ­  ¯®¤ ®ª­®¬
_SETVAR .WOBIND ; ¢á¥ ¢ëè¥ ¯¥à¥ç¨á«¥­­®¥ ¡¥§ ¯à¨¢ï§ª¨ ª ®¯¨á â¥«î
_INIT_VAR
_SETVAR .NOSTORE ; ¡¥§ á®åà ­¥­¨ï ¤ ­­ëå ¯®¤ ®ª­®¬
_SETVAR .STORE ; á á®åà ­¥­¨¥¬ ¤ ­­ëå ¯®¤ ®ª­®¬
;[]----------------------------------------------------------[]
PANEL
_INIT_VAR
_SETVAR .PANELFLAG ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®áâ¨
; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨
_SETVAR .VIEWFLAG ; ”« £ ¢¨¤  ¯ ­¥«¨ 0 - ªà âª ï ¯ ­¥«ì
; ¡¨â 0 - ¯®¤à®¡­ ï ¯ ­¥«ì
; ¡¨â 1 - ¤¥à¥¢®
; ¡¨â 2 - 㦠⮥ ¤¥à¥¢®
_SETVAR .SORTFLAG ; ‚¨¤ á®àâ¨à®¢ª¨
; ¡¨â 0 - ¯® ¨¬¥­¨
; ¡¨â 1 - ¯® à áè¨à¥­¨î
; ¡¨â 2 - ¯® à §¬¥àã
; ¡¨â 3 - ¯® ¤ â¥
; ¡¨â 4 - execute file
; ¡¨â 5 - file mask
_SETVAR .XL ; X ¯®§¨æ¨ï ¯ ­¥«¨ LOW
_SETVAR .XH ; X ¯®§¨æ¨ï ¯ ­¥«¨ HIGH
_SETVAR .BARXL ; X ¯®§¨æ¨ï áªà®«¡ à  LOW
_SETVAR .BARXH ; X ¯®§¨æ¨ï áªà®«¡ à  HIGH
_SETVAR .BARYL ; Y ¯®§¨æ¨ï áªà®«¡ à  LOW
_SETVAR .BARYH ; Y ¯®§¨æ¨ï áªà®«¡ à  HIGH
_SETVAR .BARMLL ; Max ¤«¨­  áªà®«¡ à  LOW
_SETVAR .BARMLH ; Max ¤«¨­  áªà®«¡ à  HIGH
_SETVAR .BARCLL ; ⥪.¤«¨­  áªà®«¡ à  LOW
_SETVAR .BARCLH ; ⥪.¤«¨­  áªà®«¡ à  HIGH
_SETVAR .BARLFL ; €¤à¥á ï祩ª¨ BarLeft LOW
_SETVAR .BARLFH ; €¤à¥á ï祩ª¨ BarLeft HIGH
_SETVAR .BARRTL ; €¤à¥á ï祩ª¨ BarRight LOW
_SETVAR .BARRTH ; €¤à¥á ï祩ª¨ BarRight HIGH
_SETVAR .FPL ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥ LOW
_SETVAR .FPH ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥ HIGH
_SETVAR .EFL ; ޡ饥 ª®«-¢® ä ©«®¢ LOW
_SETVAR .EFH ; ޡ饥 ª®«-¢® ä ©«®¢ HIGH
_SETVAR .FFL ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥ LOW
_SETVAR .FFH ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥ HIGH
_SETVAR .CFL ; T¥ªã騩 ä ©« ­  áâà ­¨æ¥ LOW
_SETVAR .CFH ; T¥ªã騩 ä ©« ­  áâà ­¨æ¥ HIGH
_SETVAR .MFL ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ä ©«®¢ LOW
_SETVAR .MFH ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ä ©«®¢ HIGH
_SETVAR .MBL1 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢ [
_SETVAR .MBH1 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢
_SETVAR .MBL2 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢
_SETVAR .MBH2 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢ ]
_SETVAR .MBL3 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢ FAT32
_SETVAR .FILEMASK, MASK_SIZE ; Œ áª  ¯®ª §  ä ©«®¢
_SETVAR .CURRPATH, 0x100 ; ’¥ªã騩 ¯ãâì ¯ ­¥«¨
PANELFLAG
_BITMASK PRNDOSPATH, 7 ; =1-¯¥ç â âì ¯ãâì DOS
_BITMASK SIDE, 0 ; =1-¯à ¢ ï ¯ ­¥«ì, =0-«¥¢ ï ¯ ­¥«ì
VIEWFLAG
_BITMASK SHORTTREE, 2 ; =1-㦠⮥ ¤¥à¥¢®
_BITMASK TREE, 1 ; =1-¯®ª § ¤¥à¥¢  ª â «®£®¢
_BITMASK FULL, 0 ; =1-¯®¤à®¡­ë© ¯®ª § ª â «®£®¢, 0-ªà âª¨©
.MASK EQU .M_TREE | .M_FULL
SORTFLAG
_BITMASK BIT7, 7 ; not used
_BITMASK BIT6, 6 ; not used
_BITMASK FILTER, 5 ; =1-¯®ª § ä ©«®¢ ¯® 䨫ìâàã
_BITMASK EXEC, 4 ; =1-¯®ª §ë¢ âì ⮫쪮 ¨á¯®«­ï¥¬ë¥ ä ©«ë
_BITMASK SIZE, 3 ; =1-á®àâ¨à®¢ª  ¯® à §¬¥àã
_BITMASK DATE, 2 ; =1-á®àâ¨à®¢ª  ¯® ¤ â¥
_BITMASK EXT, 1 ; =1-á®àâ¨à®¢ª  ¯® à áè¨à¥­¨î
_BITMASK NAME, 0 ; =1-á®àâ¨à®¢ª  ¯® ¨¬¥­¨
.MASK EQU .M_SIZE | .M_DATE | .M_EXT | .M_NAME
.MASKH EQU .M_BIT7 | .M_BIT6 | .M_FILTER | .M_EXEC
.MASKEXECFILTER EQU .M_FILTER | .M_EXEC
;[]----------------------------------------------------------[]
BAR
_INIT_VAR
_SETVAR .XL
_SETVAR .XH
_SETVAR .YL
_SETVAR .YH
_SETVAR .MAXLL
_SETVAR .MAXLH
_SETVAR .LENL
_SETVAR .LENH
_SETVAR .LEFTL
_SETVAR .LEFTH
_SETVAR .RIGHTL
_SETVAR .RIGHTH
_SETVAR .PAGEL
_SETVAR .PAGEH
_SETVAR .MAXL
_SETVAR .MAXH
_SETVAR .FIRSTL
_SETVAR .FIRSTH
;[]----------------------------------------------------------[]
PROC
_INIT_VAR
_SETVAR .XL
_SETVAR .XH
_SETVAR .YL
_SETVAR .YH
_SETVAR .MAXLL
_SETVAR .MAXLH
_SETVAR .COEFL
_SETVAR .COEFH
_SETVAR .CORRL
_SETVAR .CORRH
_SETVAR .MAXL1
_SETVAR .MAXH1
_SETVAR .MAXL2
_SETVAR .MAXH2
_SETVAR .CURL1
_SETVAR .CURH1
_SETVAR .CURL2
_SETVAR .CURH2
_SETVAR .COLOR
; ”®à¬ â â ¡«¨æë
; +00 2 Xmin
; +02 2 Xmax
; +04 2 Ymin
; +06 2 Ymax
; +08 2 0 - ¯à®á⮩ ®¡'¥ªâ
; ¡¨â 0 - ª­®¯ª 
; ¡¨â 1 - à ¡®ç ï ª­®¯ª 
; ¡¨â 2 - ¨­¢¥àâ 1
; ¡¨â 3 - áâ â¨ç­ë© ¨­¢¥àâ
; ¡¨â 4 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à.
; ¨ ¡¥§ ®£­ï
; ¡¨â 5 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à.
; ¯® «¥¢®© ª­®¯ª¥ ®£­ï
; ¡¨â 6 - ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à.
; ¯® ¯à ¢®© ª­®¯ª¥ ®£­ï
; ¡¨â 7 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤
; § ¯ã᪮¬ ¯à®£à ¬¬ë ¡¥§ ®£­ï
; ¡¨â 8 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤
; § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥
; ¡¨â 9 - ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤
; § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® ¯à ¢®© ª­®¯ª¥
; ¡¨â15 - íâ® ¯¥à¥ª«îç â¥«ì (¨­¢¥à⠯ਠ®£­¥ ­¥
; 㡨à âì)
; +0A 2 €¤à¥á ®¡à ¡®â稪  ¯à¨ ­¥ ­ ¦ â®¬ ®£­¥
; +0C 2 €¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ («¥¢)
; +0E 2 €¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢)
FORMTABL
_INIT_VAR
_SETVAR .XMINL
_SETVAR .XMINH
_SETVAR .XMAXL
_SETVAR .XMAXH
_SETVAR .YMINL
_SETVAR .YMINH
_SETVAR .YMAXL
_SETVAR .YMAXH
_SETVAR .FLAGL
_SETVAR .FLAGH
_SETVAR .FIRENOL
_SETVAR .FIRENOH
_SETVAR .FIRELEFTL
_SETVAR .FIRELEFTH
_SETVAR .FIRERIGHTL
_SETVAR .FIRERIGHTH
_SETVAR .SIZE, 0
;FLAGS ; ¡¨âë 7-0
_BITMASK EXECNOPRESS, 7 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¡¥§ ®£­ï
_BITMASK EXECNORETRMB, 6 ; ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à. ¯® ¯à ¢®© ª­®¯ª¥ ®£­ï
_BITMASK EXECNORETLMB, 5 ; ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à. ¯® «¥¢®© ª­®¯ª¥ ®£­ï
_BITMASK EXECONLY, 4 ; ¯à®£à ¬¬  § ¯ã᪠¥âáï ¡¥§  ¤à¥á  ¢®§¢à. ¨ ¡¥§ ®£­ï
_BITMASK STATICINV, 3 ; áâ â¨ç­ë© ¨­¢¥àâ
_BITMASK INV1, 2 ; ¨­¢¥àâ 1
_BITMASK WORKBUTTON, 1 ; à ¡®ç ï ª­®¯ª 
_BITMASK BUTTON, 0 ; ª­®¯ª 
; ; ¡¨âë 15-8
_BITMASK FIRENOINV, 7 ; íâ® ¯¥à¥ª«îç â¥«ì (¨­¢¥à⠯ਠ®£­¥ ­¥ 㡨à âì)
_BITMASK CLOSEANDRUN, 1 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥
_BITMASK CLOSEWIN, 0 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥
_BITMASK ENDTABL, 7 ; ¡¨â ¢ .XMINH 㪠§ â¥«ì ­  ª®­¥æ ᯨ᪠
; ¡ §  â ¡«¨æë ¯¥à¥å®¤®¢ ¤«ï ¢ë§®¢  ¨§ ¯« £¨­®¢
JUMPS
.JUMPSIZE EQU 3
; â ¡«¨æ  ¯¥à¥å®¤®¢ ­  ä㭪樨 ¤«ï ¯« £¨­®¢
_INIT_VAR BASE_ADDR + .JUMPSIZE ; ¯à®¯ã᪠¯¥à¥å®¤  ­  ®á­®¢­®© ¢å®¤
_SETVAR .ClearScreen, .JUMPSIZE
_SETVAR .MakeWindow, .JUMPSIZE
_SETVAR .InvertRectan, .JUMPSIZE
_SETVAR .PrnTxtLnIFF, .JUMPSIZE
_SETVAR .PrnTxtLnNorm, .JUMPSIZE
_SETVAR .PrnTxtLnNormC, .JUMPSIZE
_SETVAR .PrnRangPathL, .JUMPSIZE
_SETVAR .PrnRangPathR, .JUMPSIZE
_SETVAR .PrnRangPathC, .JUMPSIZE
_SETVAR .InputLine, .JUMPSIZE
_SETVAR .InpLnExtN, .JUMPSIZE
_SETVAR .InpLnExtC, .JUMPSIZE
_SETVAR .DOSError, .JUMPSIZE
_SETVAR .InitScrBar, .JUMPSIZE
_SETVAR .PrnHScrBar, .JUMPSIZE
_SETVAR .PrnVScrBar, .JUMPSIZE
_SETVAR .InitProcess, .JUMPSIZE
_SETVAR .PrnProcess, .JUMPSIZE
_SETVAR .InitScrollBar, .JUMPSIZE
_ADDVAR .JUMPSIZE * 4 ; DUPL 15,0xC9
_SETVAR .ResFire, .JUMPSIZE
_SETVAR .TestCoords, .JUMPSIZE
_SETVAR .SetCMOSPrint, .JUMPSIZE
_SETVAR .ResCMOSPrint, .JUMPSIZE
_SETVAR .SetClock, .JUMPSIZE
_SETVAR .SetMouse, .JUMPSIZE
_ADDVAR .JUMPSIZE * 4 ; DUPL 12,0xC9
_SETVAR .ConvNumTxt40, .JUMPSIZE
_SETVAR .MoveBytes, .JUMPSIZE
_SETVAR .MoveBytesUp, .JUMPSIZE
_SETVAR .Mult8, .JUMPSIZE
_SETVAR .Mult16X8, .JUMPSIZE
_SETVAR .Mult16, .JUMPSIZE
_SETVAR .Mult16X16, .JUMPSIZE
_SETVAR .Mult32, .JUMPSIZE
_SETVAR .Divis16X16, .JUMPSIZE
_SETVAR .Divis24X16, .JUMPSIZE
_SETVAR .Divis32X16, .JUMPSIZE
_SETVAR .Divis32, .JUMPSIZE
_SETVAR .ConvNumTxt32, .JUMPSIZE
_SETVAR .ConvNumTxt16, .JUMPSIZE
_SETVAR .ConvNumTxt8, .JUMPSIZE
_SETVAR .ConvTxtNum32, .JUMPSIZE
_SETVAR .ConvTxtNum16, .JUMPSIZE
_SETVAR .Resident, .JUMPSIZE
_ADDVAR (BASE_ADDR + 0xC0) - .CURRVAR; - .JUMPSIZE; * 4 ; DUPL 12,0xC9
; ¯¥à¥¬¥­­ë¥ ¤«ï ¤®áâ㯠 ¨§ ¯« £¨­®¢
_SETVAR .NUM_DEVICES, BYTE ; Š®«-¢® ãáâனáâ¢
_SETVAR .TreeFlag, BYTE ; ”« £ ¤¥à¥¢ 
_SETVAR .CMOSFlag, BYTE ; ”« £ CMOS 0 - ­¥â
; 1 - ¥áâì
_SETVAR .MouseFlag, BYTE ; ”« £ ¬ëè¨ 0 - ­¥â
; 1 - ¥áâì
_SETVAR .CMOSPrint, BYTE
_SETVAR .FNPAGESID, BYTE ; ˆ­¤¥ä.¯ ¬ï⨠£¤¥ FN
_SETVAR .FNFUNCT, BYTE ; ‘âà ­¨æ  á äã­ªæ¨ï¬¨ FN
_SETVAR .FNVIEW, BYTE ; ‘âà ­¨æ  á FileViewer
_SETVAR .FNEDIT, BYTE ; ‘âà ­¨æ  á FileEditor
_SETVAR .FNHELP, BYTE ; ‘âà ­¨æ  FN HELP
_SETVAR .FNFONT, BYTE ; ‘âà ­¨æ  èà¨ä⮢
_SETVAR .BufferID, BYTE ; ˆ­¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ¡ãä¥à 
_SETVAR .FLX, BYTE ; ‘âà ­¨æ  ¤«ï ¯®¤£à㧪¨ FLX ¯à®á¬®âà. FLX ã⨫¨â
_SETVAR .LEFTPANEL, BYTE ; ‘âà ­¨æ  ª â «®£  ‹¥¢®© ¯ ­¥«¨
_SETVAR .RIGHTPANEL, BYTE ; ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨
; <20>ãä¥à­ë¥ áâà ­¨æë ¯®¤ ¨­â¥à䥩á
_SETVAR .BuffPg1, WORD
_SETVAR .BuffPg3, 3
FileHDR
_INIT_VAR
_SETVAR .Flag, BYTE ; +#00
_SETVAR .Name, 8 ; +#01
_SETVAR .Dot, BYTE ; +#09 ???
_SETVAR .Ext, 3 ; +#0A
_SETVAR .Zero, BYTE ; +#0D ???
_SETVAR .Attr, BYTE ; +#0E ¨á¯®«ì§ã¥âáï ¡¨â7 ¤«ï 祣®-â®
_SETVAR .SizeBytes, DWORD ; +#0F
_SETVAR .Date, BYTE ; +#13
_SETVAR .Month, BYTE ; +#14
_SETVAR .Year, BYTE ; +#15
_SETVAR .Hours, BYTE ; +#16
_SETVAR .Minutes, BYTE ; +#17
_SETVAR .SIZE, 0
_BITMASK MARK, 0 ; 1-ä ©« ¯®¬¥ç¥­
; ¨¬¥­  ä ©«®¢
FILENAME
.FN_INI EQU "fn.ini"
.FN_EXT EQU "fn.ext"
.FNVIEW_EXT EQU "fnview.ext"
.FNEDIT_EXT EQU "fnedit.ext"
.FNTREE_FLN EQU "treeinfo.fln"
.FNEDIT_INI EQU "FNEDIT.INI"
; ®â« ¤®ç­®¥, ­¥ ¬¥­ïâì ¯® ¨§¡¥¦ ­¨¥ £«îª®¢
PLUGS_ENABLE EQU 0
TREE_REZID EQU 0
MARK_DIR EQU 0 ; ¢ë¡®à ¤¨à¥ªâ®à¨¨ á ¯®¤áç¥â®¬ à §¬¥à  ¢á¥å ä ©«®¢
TREE_DIR_ENTER EQU 0 ; ¯®ª § ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢ ¤¥à¥¢¥ ¯® ENTER

191
fn_exe_boot.a80 Normal file
View File

@ -0,0 +1,191 @@
; LAST UPDATE: 29.05.2025 savelij
include macros.a80
include macros_sp.a80
include define_sp.a80
include bios_sp.a80
include dss_sp.a80
include errors_sp.a80
include ports_sp.a80
include mouse_sp.a80
include accel_sp.a80
include fatdir.a80
include fn_version.a80
INIT_VAR 0xC000
SETVAR FONT_RAW, 6888;IFFFONT_RAW_PACK - FONT_RAW_PACK
SETVAR_ALIGN
SETVAR IFFFONT_RAW, 8704;IFFFONT_RAW_END - IFFFONT_RAW_PACK
SETVAR CLOCK_BMP, CLOCK_BMP_END - Clock_BMP
SETVAR MOUSE_BMP, MOUSE_BMP_END - Mouse_BMP
org 0x80EA
EXEhead: db "EXE"
db 1 ; +3
dw EntryExec-EXEhead
dw 0x0000 ; +4
dw EXEend-EntryExec ; +8
dw 0,0 ; +10
dw 0 ; +14
dw EntryExec ; +16
dw EntryExec
dw 0x80FF
EntryExec: DI
LD A,(IX-0x03) ; file handle
LD (MAIN.hFile),A ; save
LD HL,MAIN.copyright_str
SPDSS DSSF.PCHARS ; print text
SPDSS DSSF.VERSION
LD A,D
OR A
JR NZ,.next1
LD HL,MAIN.incor_dos_str
SPDSS DSSF.PCHARS ; print text
SPDSS DSSF.EXIT,0x26 ; exit
.next1
SPDSS DSSF.GETMEM,6 ; § ¯à®á 6 áâà ­¨æ ¯ ¬ïâ¨
JR NC,.next2 ; CY - not enough memory
LD HL,MAIN.no_memory_str
SPDSS DSSF.PCHARS ; print text
SPDSS DSSF.EXIT,0x1E ; exit
.next2 LD (MAIN.hMem),A ; memory handle
LD HL,MAIN.FNMAIN
SPBIOS BIOSF.GETMEMBLKPAGES ; get memory pages list
LD A,(MAIN.FNMAIN) ; set pages from 0xC000
SETPORT WINSP.CPU3,,0
LD HL,BASE_ADDR ; FNMAIN
LD DE,END_BLOCK_1 - START_BLOCK_1
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
LD A,(MAIN.FNFUNCT)
SETPORT WINSP.CPU3,,0
LD HL,0xC000 ; FNFUNCT
LD DE,END_BLOCK_2 - START_BLOCK_2
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
LD A,(MAIN.FNVIEW) ; FNVIEW
SETPORT WINSP.CPU3,,0
LD HL,0xC000
LD DE,END_BLOCK_EDITOR - START_BLOCK_EDITOR
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
LD A,(MAIN.FNEDIT) ; FNEDIT
SETPORT WINSP.CPU3,,0
LD HL,0xC000
LD DE,END_BLOCK_VIEWER - START_BLOCK_VIEWER
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
LD A,(MAIN.FNHELP) ; FNHELP
SETPORT WINSP.CPU3,,0
SETPORT WINSP.CPU1,,0
LD HL,0xC000
LD DE,END_BLOCK_3 - START_BLOCK_3
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
LD A,(MAIN.FNFONT) ; FNFONT
SETPORT WINSP.CPU3,,0
LD HL,0xFFFF - (IFFFONT_RAW_END - FONT_RAW_PACK)
LD DE,END_BLOCK_4 - START_BLOCK_4
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
LD A,(MAIN.hFile)
SPDSS DSSF.CLOSE ; close file
; à á¯ ª®¢ª  èà¨ä⮢
LD HL,0xFFFF - (IFFFONT_RAW_END - FONT_RAW_PACK)
LD DE,0xC000
CALL UNPACK
LD HL,0xFFFF - (IFFFONT_RAW_END - IFFFONT_RAW_PACK)
LD DE,0xDB00
CALL UNPACK
; ¯¥à¥­®á ¨ª®­®ª ¬ëè¨ ­  à ¡®ç¥¥ ¬¥áâ®
LD HL,Clock_BMP
LD DE,CLOCK_BMP
LD BC,CLOCK_BMP_Size + MOUSE_BMP_Size
LDIR
;!TEST ; !HARDCODE SYS_PAGE
SETPORT WINSP.CPU3,PAGE.SYSTEM;0xFE
LD HL,0x0124 + CPU3 ; !HARDCODE
LD (HL),0x38 ; interrupt routine address Low byte
INC HL
XOR A
LD (HL),A ; interrupt routine address High byte
INC HL
GETPORT WINSP.CPU0
LD (HL),A ; interrupt routine page
LD A,(MAIN.FNMAIN)
SETPORT WINSP.CPU3,,0
LD A,(MAIN.hMem)
LD (RAMPAGES.FNPAGESID),A
LD HL,MAIN.FNFUNCT
LD DE,RAMPAGES.FNFUNCT
LD BC,0x0005
LDIR
JP BASE_ADDR
disk_error: PUSH AF
LD A,(MAIN.hMem) ; free memory
SPDSS DSSF.FREEMEM
LD A,(MAIN.hFile)
SPDSS DSSF.CLOSE ; close file
LD HL,MAIN.load_err_str
SPDSS DSSF.PCHARS ; print text
POP BC
SPDSS DSSF.EXIT ; exit
UNPACK include dec40.a80
; 14 x 9 = 126 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D
Clock_BMP: DB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE ; 00
DB 0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF ; 01
DB 0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0x00 ; 02
DB 0xFE,0x00,0xFF,0xFF,0xFF,0x00,0xFE,0xF0,0xFE,0x00,0xFF,0xFF,0xFF,0xFF ; 03
DB 0xFF,0x00,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0x00,0xFF ; 04
DB 0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xF0,0xFE,0x00,0xFF,0xFF,0xFF,0x00,0xFE ; 05
DB 0xFE,0xFE,0x00,0xFE,0x00,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0x00 ; 06
DB 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE ; 07
DB 0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; 08
CLOCK_BMP_END
; 13 x 9 = 117 00 01 02 03 04 05 06 07 08 09 0A 0B 0C
Mouse_BMP: DB 0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0x00,0xFF ; 00
DB 0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF ; 01
DB 0xFF,0x00,0xFE,0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xFE,0xFE ; 02
DB 0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0x00 ; 03
DB 0xFF,0xFF,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0x00,0xFE ; 04
DB 0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x00,0xFE,0x00 ; 05
DB 0xFF,0xFF,0xFF,0x00,0xFE,0x00,0x00,0xFE,0xFE,0x00,0xFF,0xFF,0x00 ; 06
DB 0x00,0xFF,0xFF,0x00,0xFE,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00 ; 07
DB 0xFE,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF ; 08
MOUSE_BMP_END
MAIN
.hFile db 0x00
.hMem db 0x00
.FNMAIN db 0x00
.FNFUNCT db 0x00 ; 00
.FNVIEW db 0x00 ; 01
.FNEDIT db 0x00 ; 02
.FNHELP db 0x00 ; 03
.FNFONT db 0x00 ; 04
DB 0xFF
.copyright_str: DB "\r\nThe Flex Navigator, ver.\{FLEX_VERS.NAVIGATOR}\r\n",0
.incor_dos_str: DZ "Incorrect DOS version, need DOS 1.00 or high.\r\n"
.no_memory_str: DZ "Not enough memory to load program.\r\n"
.load_err_str: DZ "Disk loading error.\r\n"
EXEend:
include fnmain.a80

101
fn_macros.a80 Normal file
View File

@ -0,0 +1,101 @@
; LAST UPDATE: 28.05.2025 savelij
MAKEWINDOW MACRO TYPE
CALL JUMPS.MakeWindow
DB TYPE
ENDM
; ®¯¨á â¥«ì ®ª­ 
W_MAIN MACRO X,Y,H,V
DW X,Y,H,V
ENDM
; ⥪á⮢ ï áâப 
W_TEXT MACRO OFFSETX,OFFSETY,COLOR,TXT
DB WINSUBOBJ.TEXT
DW OFFSETX,OFFSETY
DB COLOR,TXT,0
ENDM
W_ADRTEXT MACRO OFFSETX,OFFSETY,COLOR,ADRTXT
DB WINSUBOBJ.ADRTEXT
DW OFFSETX,OFFSETY
DB COLOR
DW ADRTXT
ENDM
; § ¯®«­¥­¨¥ ¯àאַ㣮«ì­®© ¯«®áª®áâ¨
W_FILL MACRO OFFSETX,OFFSETY,H,V,COLOR
DB WINSUBOBJ.FILL
DW OFFSETX,OFFSETY,H,V
DB COLOR
ENDM
; ®âà¨á®¢ª  㣫㡫ñ­­®© ¯àאַ㣮«ì­®© ¯«®áª®áâ¨
W_BORDER MACRO OFFSETX,OFFSETY,H,V
DB WINSUBOBJ.BORDER
DW OFFSETX,OFFSETY,H,V
ENDM
; ®âà¨á®¢ª  ¢ë¯ãª«®© ¯àאַ㣮«ì­®© ¯«®áª®áâ¨
W_BUTTON MACRO OFFSETX,OFFSETY,H,V
DB WINSUBOBJ.BUTTON
DW OFFSETX,OFFSETY,H,V
ENDM
; ®âà¨á®¢ª  ª­®¯ª¨ á ⥪á⮬ (¯¥ç âì ⥪áâ  ®áãé¥á⢫ï¥âáï á ¯®§¨æ¨© x + 4, y + 1)
W_BUTTONTEXT MACRO OFFSETX,OFFSETY,H,V,COLOR,TXT
DB WINSUBOBJ.BUTTONTEXT
DW OFFSETX,OFFSETY,H,V
DB COLOR,TXT,0
ENDM
; ®âà¨á®¢ª  £®à¨§®­â «ì­®£® à §¤¥«¨â¥«ï
W_HORIZLINE MACRO OFFSETX,OFFSETY,SIZE
DB WINSUBOBJ.HORIZLINE
DW OFFSETX,OFFSETY,SIZE
ENDM
; ®âà¨á®¢ª  ¢¥à⨪ «ì­®£® à §¤¥«¨â¥«ï
W_VERTICLINE MACRO OFFSETX,OFFSETY,SIZE
DB WINSUBOBJ.VERTICLINE
DW OFFSETX,OFFSETY,SIZE
ENDM
; ®âà¨á®¢ª  «¥¢®© ª­®¯ª¨ áªà®«¡ à 
W_ICONLEFTARROW MACRO OFFSETX,OFFSETY
DB WINSUBOBJ.ICONLEFTARROW
DW OFFSETX,OFFSETY
ENDM
; ®âà¨á®¢ª  ¯à ¢®© ª­®¯ª¨ áªà®«¡ à 
W_ICONRIGHTARROW MACRO OFFSETX,OFFSETY
DB WINSUBOBJ.ICONRIGHTARROW
DW OFFSETX,OFFSETY
ENDM
; ®âà¨á®¢ª  ¢¥àå­¥© ª­®¯ª¨ áªà®«¡ à 
W_ICONUPARROW MACRO OFFSETX,OFFSETY
DB WINSUBOBJ.ICONUPARROW
DW OFFSETX,OFFSETY
ENDM
; ®âà¨á®¢ª  ­¨¦­¥© ª­®¯ª¨ áªà®«¡ à 
W_ICONDOWNARROW MACRO OFFSETX,OFFSETY
DB WINSUBOBJ.ICONDOWNARROW
DW OFFSETX,OFFSETY
ENDM
; ª®­¥æ ®¯¨á â¥«ï ®ª­ 
W_END MACRO
DB WINSUBOBJ.END
ENDM
; ¢®ááâ ­®¢¨âì ¤ ­­ë¥ ¯®¤ ®ª­®¬
WINDOWCLOSE MACRO
MAKEWINDOW WINSUBOBJ.RESTOREWIN
W_END
ENDM
BUILDDATE EQU "\{(DDATE / 10) + '0'}\{(DDATE # 10) + '0'}.\{MMOUNTH / 10 + '0'}\{MMOUNTH # 10 + '0'}.20\{(YYEAR / 10) + '0'}\{(YYEAR # 10) + '0'}"

7
fn_version.a80 Normal file
View File

@ -0,0 +1,7 @@
; LAST UPDATE: 28.05.2025 savelij
FLEX_VERS
.NAVIGATOR EQU "1.14"
.EDITOR EQU "1.08"
.VIEWER EQU "1.05"

596
fnbar.a80 Normal file
View File

@ -0,0 +1,596 @@
; LAST UPDATE: 07.03.2025 savelij
;[]-----------------------------------------------------------[]
InitScrollBar LD C,(IX + BAR.PAGEL)
LD B,(IX + BAR.PAGEH) ; Š®«-¢® í«¥¬. ­  áâà.
LD L,C
LD H,B
LD E,(IX + BAR.MAXL)
LD D,(IX + BAR.MAXH) ; ¬ ªá.í«¥¬¥­â®¢
LD A,D
OR E
JR NZ,.L1
INC DE
.L1 OR A
SBC HL,DE
JR C,.L2
ADD HL,DE
EX DE,HL
.L2 PUSH DE
LD E,(IX + BAR.MAXLL)
LD D,(IX + BAR.MAXLH) ; Š®«-¢® ¢¨¤. í«¥¬. * à §¬¥à ¡ à 
CALL Mult16X16 ; DE * BC = HL + DE
POP BC ; /¬ ªá.í«¥¬¥­â®¢
CALL Divis32X16 ; HL + DE / BC = DE (HL-®áâ)
LD A,H
OR L
JR Z,.L3
INC DE
.L3 LD HL,0x0003
SBC HL,DE
JR C,.L4
LD DE,0x0003
.L4 LD (IX + BAR.LENL),E ; = ¤«¨­  ¡ à 
LD (IX + BAR.LENH),D ; = ¤«¨­  ¡ à 
RET
PrnHScrBar PUSH IY
GETPORT WINSP.Y_PORT
PUSH AF
GETPORT WINSP.CPU1
LD IYL,A
LD L,(IX + BAR.FIRSTL) ; FirstFile
LD H,(IX + BAR.FIRSTH)
LD E,(IX + BAR.PAGEL)
LD D,(IX + BAR.PAGEH)
LD C,(IX + BAR.MAXL) ; EquipFiles
LD B,(IX + BAR.MAXH)
LD A,B
OR C
JR NZ,.L1
INC BC
.L1 PUSH BC
PUSH HL
ADD HL,DE
SBC HL,BC
POP HL
JR C,.L2
JR Z,.L2
LD L,C
LD H,B
SBC HL,DE
JR NC,.L2
LD HL,0x0000
.L2 EX DE,HL
LD C,(IX + BAR.MAXLL)
LD B,(IX + BAR.MAXLH)
CALL Mult16X16
POP BC
CALL Divis32X16
LD A,D
OR E
JR Z,.L3
PUSH DE
SRL D
RR E
JR NC,.L4
INC DE
.L4 LD L,(IX + BAR.XL)
LD H,(IX + BAR.XH)
SRL H
RR L
SET 6,H
LD A,(IX + BAR.YL)
LD C,A
LD B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
SETPORT WINSP.CPU1,0x50
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x08
ACCEL ACCELCMD.OFF
.L5 LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),B
ACCEL ACCELCMD.OFF
INC HL
DEC DE
LD A,D
OR E
JR NZ,.L5
LD A,IYL
SETPORT WINSP.CPU1,,0
EI
POP DE
.L3 PUSH DE
LD L,(IX + BAR.XL)
LD H,(IX + BAR.XH)
ADD HL,DE
LD E,(IX + BAR.LEFTL)
LD D,(IX + BAR.LEFTH)
LD A,D
OR E
JR Z,.L6
EX DE,HL
SETPORT WINSP.Y_PORT,0xC0
LD (HL),E
INC HL
LD (HL),D
EX DE,HL
.L6 PUSH HL
SRL H
RR L
SET 6,H
LD A,(IX + BAR.YL)
LD C,A
LD E,(IX + BAR.LENL)
LD D,(IX + BAR.LENH)
LD A,D
OR A
JR NZ,.L7
LD A,E
CP 0x06
JR NC,.L7
LD E,0x06
.L7 SRL D
RR E
JR C,.L8
DEC DE
.L8 DEC DE
SETPORT WINSP.CPU1,0x50
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x06
ACCEL ACCELCMD.OFF
LD B,COLORP.WHITE + COLORI.WHITE;0xFF
LD A,C
SETPORT WINSP.Y_PORT,,0
LD (HL),B
INC A
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),B
ACCEL ACCELCMD.OFF
LD (HL),0xF7
INC HL
.L9 LD A,C
SETPORT WINSP.Y_PORT,,0
LD (HL),B
INC A
SETPORT WINSP.Y_PORT,,0
LD A,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
ACCEL ACCELCMD.FILL_VERT
LD (HL),A
ACCEL ACCELCMD.OFF
LD (HL),COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
INC HL
DEC DE
LD A,D
OR E
JR NZ,.L9
LD A,C
SETPORT WINSP.Y_PORT,,0
LD (HL),0xF7
INC A
SETPORT WINSP.Y_PORT,,0
LD A,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
ACCEL ACCELCMD.FILL_VERT
LD (HL),A
ACCEL ACCELCMD.OFF
LD (HL),A
INC HL
EX DE,HL
LD A,IYL
SETPORT WINSP.CPU1,,0
EI
POP HL
LD C,(IX + BAR.LENL)
LD B,(IX + BAR.LENH)
PUSH BC
ADD HL,BC
LD C,(IX+BAR.RIGHTL)
LD B,(IX+BAR.RIGHTH)
LD A,B
OR C
JR Z,.L10
SETPORT WINSP.Y_PORT,0xC0
LD A,L
LD (BC),A
INC BC
LD A,H
LD (BC),A
.L10 POP BC
LD L,(IX + BAR.MAXLL)
LD H,(IX + BAR.MAXLH)
OR A
SBC HL,BC
POP BC
JR Z,.L11
JR C,.L11
OR A
SBC HL,BC
JR Z,.L11
JR C,.L11
EX DE,HL
SRL D
RR E
JR Z,.L11
LD A,(IX + BAR.YL)
LD C,A
LD B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
SETPORT WINSP.CPU1,0x50
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x08
ACCEL ACCELCMD.OFF
.L12 LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),B
ACCEL ACCELCMD.OFF
INC HL
DEC DE
LD A,D
OR E
JR NZ,.L12
LD A,IYL
SETPORT WINSP.CPU1,,0
EI
.L11 POP AF
SETPORT WINSP.Y_PORT,,0
POP IY
RET
PrnVScrBar PUSH IY
GETPORT WINSP.Y_PORT
PUSH AF
GETPORT WINSP.CPU1
LD IYH,A
LD L,(IX + BAR.FIRSTL) ; FirstFile
LD H,(IX + BAR.FIRSTH)
LD E,(IX + BAR.PAGEL)
LD D,(IX + BAR.PAGEH)
LD C,(IX + BAR.MAXL) ; EquipFiles
LD B,(IX + BAR.MAXH)
LD A,B
OR C
JR NZ,.L1
INC BC
.L1 PUSH BC
PUSH HL
ADD HL,DE
SBC HL,BC
POP HL
JR C,.L2
JR Z,.L2
LD L,C
LD H,B
SBC HL,DE
JR NC,.L2
LD HL,0x0000
.L2 EX DE,HL
LD C,(IX + BAR.MAXLL)
LD B,(IX + BAR.MAXLH)
CALL Mult16X16
POP BC
CALL Divis32X16
LD A,(IX + BAR.YL)
LD IYL,A
LD A,D
OR E
JR Z,.L3
PUSH DE
LD A,E
LD (.L4),A
LD L,(IX + BAR.XL)
LD H,(IX + BAR.XH)
SRL H
RR L
SET 6,H
LD D,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
SETPORT WINSP.CPU1,0x50
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x00
.L4 EQU $-1
ACCEL ACCELCMD.OFF
LD B,0x08
.L5 LD A,IYL
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),D
ACCEL ACCELCMD.OFF
INC HL
DJNZ .L5
LD A,IYL
ADD A,E
LD IYL,A
LD A,IYH
SETPORT WINSP.CPU1,,0
EI
POP DE
.L3 PUSH DE
LD L,(IX + BAR.YL)
LD H,(IX + BAR.YH)
ADD HL,DE
LD E,(IX + BAR.LEFTL)
LD D,(IX + BAR.LEFTH)
LD A,D
OR E
JR Z,.L6
EX DE,HL
SETPORT WINSP.Y_PORT,0xC0
LD (HL),E
INC HL
LD (HL),D
EX DE,HL
.L6 PUSH HL
LD L,(IX + BAR.XL)
LD H,(IX + BAR.XH)
SRL H
RR L
SET 6,H
LD A,(IX + BAR.LENL)
LD C,A
SUB 0x02
LD (.L7),A
SETPORT WINSP.CPU1,0x50
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x00
.L7 EQU $-1
ACCEL ACCELCMD.OFF
LD DE,(COLORP.WHITE + COLORI.WHITE) << 8 + COLORP.HIGHGRAY + COLORI.HIGHGRAY;0xFF88
LD A,IYL
SETPORT WINSP.Y_PORT,,0
LD (HL),D
INC A
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),D
ACCEL ACCELCMD.OFF
LD (HL),COLORP.WHITE + COLORI.BLACKGRAY;0xF7
INC HL
LD B,0x06
.L8 LD A,IYL
SETPORT WINSP.Y_PORT,,0
LD (HL),D
INC A
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),E
ACCEL ACCELCMD.OFF
LD (HL),COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
INC HL
DJNZ .L8
LD A,IYL
SETPORT WINSP.Y_PORT,,0
LD (HL),COLORP.WHITE + COLORI.BLACKGRAY;0xF7
INC A
SETPORT WINSP.Y_PORT,,0
LD A,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
ACCEL ACCELCMD.FILL_VERT
LD (HL),A
ACCEL ACCELCMD.OFF
LD (HL),A
INC HL
LD A,IYL
ADD A,C
LD IYL,A
LD A,IYH
SETPORT WINSP.CPU1,,0
EI
POP HL
LD C,(IX + BAR.LENL)
LD B,(IX + BAR.LENH)
PUSH BC
ADD HL,BC
LD C,(IX + BAR.RIGHTL)
LD B,(IX + BAR.RIGHTH)
LD A,B
OR C
JR Z,.L9
SETPORT WINSP.Y_PORT,0xC0
LD A,L
LD (BC),A
INC BC
LD A,H
LD (BC),A
.L9 POP BC
LD L,(IX + BAR.MAXLL)
LD H,(IX + BAR.MAXLH)
OR A
SBC HL,BC
POP BC
JR Z,.L10
JR C,.L10
OR A
SBC HL,BC
JR Z,.L10
JR C,.L10
LD A,L
LD (.L11),A
LD L,(IX+BAR.XL)
LD H,(IX+BAR.XH)
SRL H
RR L
SET 6,H
LD D,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
SETPORT WINSP.CPU1,0x50
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x00
.L11 EQU $-1
ACCEL ACCELCMD.OFF
LD B,0x08
.L12 LD A,IYL
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),D
ACCEL ACCELCMD.OFF
INC HL
DJNZ .L12
LD A,IYH
SETPORT WINSP.CPU1,,0
EI
.L10 POP AF
SETPORT WINSP.Y_PORT,,0
POP IY
RET
;[]-----------------------------------------------------------[]
InitProcess SUB A
LD (IX + PROC.CURL1),A
LD (IX + PROC.CURH1),A
LD (IX + PROC.CURL2),A
LD (IX + PROC.CURH2),A
LD (IX + PROC.CORRL),A
LD (IX + PROC.CORRH),A
LD C,(IX + PROC.MAXLL) ; Œ ªá/¬ ªá.¤«¨­ã ¯à®æ¥á 
LD B,(IX + PROC.MAXLH)
LD E,(IX + PROC.MAXL1)
LD D,(IX + PROC.MAXH1)
LD L,(IX + PROC.MAXL2)
LD H,(IX + PROC.MAXH2)
CALL Divis32X16 ; HL + DE / BC = DE (HL-®áâ)
LD A,H
OR L
JR Z,.L2
INC DE ; = ª®íä䍿¨¥­â
.L2 LD HL,9
OR A
SBC HL,DE
JR C,.L1
LD A,(IX + PROC.MAXL2)
OR (IX + PROC.MAXH2)
JR NZ,.L1
LD E,(IX + PROC.MAXL1)
LD D,(IX + PROC.MAXH1)
LD BC,1000
LD (IX + PROC.CORRL),C
LD (IX + PROC.CORRH),B
CALL Mult16X16
LD C,(IX + PROC.MAXLL) ; Œ ªá/¬ ªá.¤«¨­ã ¯à®æ¥á 
LD B,(IX + PROC.MAXLH)
CALL Divis32X16 ; HL + DE / BC = DE (HL-®áâ)
.L1 LD (IX + PROC.COEFL),E
LD (IX + PROC.COEFH),D
RET
PrnProcess PUSH IY
GETPORT WINSP.Y_PORT
PUSH AF
GETPORT WINSP.CPU1
LD IYL,A
LD E,(IX + PROC.CURL1)
LD D,(IX + PROC.CURH1)
LD L,(IX + PROC.CURL2)
LD H,(IX + PROC.CURH2)
LD A,(IX + PROC.CORRL)
OR (IX + PROC.CORRH)
JR Z,.L1
LD C,(IX + PROC.CORRL)
LD B,(IX + PROC.CORRH)
CALL Mult16X16
.L1 LD C,(IX + PROC.COEFL)
LD B,(IX + PROC.COEFH)
CALL Divis32X16
LD L,(IX + PROC.XL)
LD H,(IX + PROC.XH)
SRL H
RR L
SET 6,H
LD A,D
OR E
JR Z,.L2
PUSH DE
PUSH HL
LD L,(IX + PROC.MAXLL)
LD H,(IX + PROC.MAXLH)
OR A
SBC HL,DE
JR NC,.L3
ADD HL,DE
EX DE,HL
.L3 POP HL
SRL D
RR E
JR NC,.L4
INC DE
.L4 LD A,(IX + PROC.YL)
LD C,A
LD A,(IX + PROC.COLOR)
AND 0xF0
LD B,A
RRCA
RRCA
RRCA
RRCA
OR B
LD B,A
SETPORT WINSP.CPU1,0x50
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x0A
ACCEL ACCELCMD.OFF
.L5 LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),B
ACCEL ACCELCMD.OFF
INC HL
DEC DE
LD A,D
OR E
JR NZ,.L5
LD A,IYL
SETPORT WINSP.CPU1,,0
EI
POP DE
.L2 PUSH HL
LD L,(IX + PROC.MAXLL)
LD H,(IX + PROC.MAXLH)
OR A
SBC HL,DE
EX DE,HL
POP HL
JR Z,.L6
JR C,.L6
SRL D
RR E
JR NC,.L7
INC DE
.L7 LD A,(IX + PROC.YL)
LD C,A
LD A,(IX + PROC.COLOR)
AND 0x0F
LD B,A
RLCA
RLCA
RLCA
RLCA
OR B
LD B,A
SETPORT WINSP.CPU1,0x50
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x0A
ACCEL ACCELCMD.OFF
.L8 LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),B
ACCEL ACCELCMD.OFF
INC HL
DEC DE
LD A,D
OR E
JR NZ,.L8
LD A,IYL
SETPORT WINSP.CPU1,,0
EI
.L6 POP AF
SETPORT WINSP.Y_PORT,,0
POP IY
RET

313
fndos.a80 Normal file
View File

@ -0,0 +1,313 @@
; LAST UPDATE: 27.04.2025 savelij
;[]----------------------------------------------------------[]
BegDIRECTORY LD HL,BegDIR
NewDIRECTORY PUSH HL
CALL ResInvert
POP HL
CALL SetClock
PUSH IY
SPDSS DSSF.CHDIR
POP IY
CALL C,DOSError
PUSH IY
SPDSS DSSF.CURDISK
POP IY
PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
ADD A,'A'
CP (HL)
PUSH AF
LD (HL),A
INC HL
LD (HL),':'
INC HL
PUSH IY
SPDSS DSSF.CURDIR
POP IY
POP AF
JR Z,NewDIRECT1
LD A,(TreeFlag)
OR A
JP Z,InitPanel
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JP NZ,InitPanel
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD HL,LeftPanel + PANEL.CURRPATH
LD DE,RightPanel + PANEL.CURRPATH
JR Z,NewDIR0
LD HL,RightPanel + PANEL.CURRPATH
LD DE,LeftPanel + PANEL.CURRPATH
NewDIR0 SUB A
.L1 LDI
CP (HL)
JR NZ,.L1
LD (DE),A
JP InitPanels
NewDIRECT1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
PUSH AF
CALL NZ,NewDIRTree
POP AF
CALL Z,ReadDIR
CALL PrintPath
BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
CALL NZ,PrintDOSPath
CALL PrintDIR
CALL SetInvert
CALL PrnFileInfo
PUSH IY
POP IX
LD DE,PANEL.BARXL
ADD IX,DE
CALL InitScrollBar
LD A,(IY + PANEL.VIEWFLAG)
AND VIEWFLAG.MASK
PUSH AF
CALL Z,PrnHScrBar
POP AF
CALL NZ,PrnVScrBar
JP SetMouse
NewDIRTree PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
INC HL
INC HL
IF TREE_REZID
CALL RESIDENT.FindTreeDIR
CALL RESIDENT.MakeTreePath
ELSE
CALL FindTreeDIRR
CALL MakeTreePathR
ENDIF
PUSH IY
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,RightPanel
JR Z,.L1
LD IY,LeftPanel
.L1 CALL NewDIRECTORY
POP IY
RET
;[]----------------------------------------------------------[]
RefreshDIR BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JR NZ,RfDIRn1
CALL ReadDIR
CALL PrintDIR
CALL PrnFileInfo
PUSH IY
POP IX
LD DE,PANEL.BARXL
ADD IX,DE
CALL InitScrollBar
LD A,(IY + PANEL.VIEWFLAG)
AND VIEWFLAG.MASK
PUSH AF
CALL Z,PrnHScrBar
POP AF
CALL NZ,PrnVScrBar
RfDIRn1 LD HL,LeftPanel + PANEL.CURRPATH
LD DE,RightPanel + PANEL.CURRPATH
RefrDIR LD A,(DE)
CP (HL)
RET NZ
INC HL
INC DE
LD A,(HL)
OR A
JR NZ,RefrDIR
LD A,(DE)
OR A
RET NZ
PUSH IY
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,RightPanel
JR Z,.L1
LD IY,LeftPanel
.L1 BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JR NZ,RefrDex
CALL ReadDIR
CALL PrintDIR
CALL PrnFileInfo
PUSH IY
POP IX
LD DE,PANEL.BARXL
ADD IX,DE
CALL InitScrollBar
LD A,(IY + PANEL.VIEWFLAG)
AND VIEWFLAG.MASK
PUSH AF
CALL Z,PrnHScrBar
POP AF
CALL NZ,PrnVScrBar
RefrDex POP IY
RET
;[]----------------------------------------------------------[]
FindPrevFile LD A,(IY + PANEL.EFL)
OR (IY + PANEL.EFH)
RET Z
BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
RET Z
GETPORT WINSP.CPU1
PUSH AF
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD IX,0x4000
LD HL,0x4001
LD BC,0x0000
FndPrFile0 PUSH HL
BIT DIR.B_Dir,(IX + FileHDR.Attr)
JR NZ,FndPrFileNxt
LD DE,WorkBuffer
PUSH DE
PUSH BC
CALL MakeDOSname
POP BC
POP HL
LD DE,PrevFile
FndPrFile1 LD A,(DE)
OR A
JR Z,FndPrFileE
CP (HL)
JR NZ,FndPrFileNxt
INC HL
INC DE
JR FndPrFile1
FndPrFileNxt POP HL
LD DE,FileHDR.SIZE
ADD HL,DE
ADD IX,DE
INC BC
LD A,(HL)
OR A
JR NZ,FndPrFile0
JP FndTreeExt
FndPrFileE LD A,(HL)
OR A
JR NZ,FndPrFileNxt
JR FndTree
PrevFile DB 13 DUP 0
;[]----------------------------------------------------------[]
FindPrevDIR LD A,(IY + PANEL.EFL)
OR (IY + PANEL.EFH)
RET Z
BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
RET Z
GETPORT WINSP.CPU1
PUSH AF
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD IX,0x4000
LD HL,0x4001
LD BC,0x0000
FndPrDIR0 PUSH HL
BIT DIR.B_Dir,(IX + FileHDR.Attr)
JR Z,FndPrDIRnxt
LD DE,WorkBuffer
PUSH DE
PUSH BC
CALL MakeDOSname
POP BC
POP HL
LD DE,PrevDIR
FndPrDIR1 LD A,(DE)
OR A
JR Z,FndPrDIRe
CP (HL)
JR NZ,FndPrDIRnxt
INC HL
INC DE
JR FndPrDIR1
FndPrDIRnxt POP HL
LD DE,FileHDR.SIZE
ADD HL,DE
ADD IX,DE
INC BC
LD A,(HL)
OR A
JR NZ,FndPrDIR0
JR FndTreeExt
FndPrDIRe LD A,(HL)
OR A
JR NZ,FndPrDIRnxt
FndTree INC SP
INC SP
LD L,C
LD H,B
LD C,(IY + PANEL.FPL)
LD B,(IY + PANEL.FPH)
LD DE,0x0000
EX DE,HL
OR A
SBC HL,BC
EX DE,HL
.L1 EX DE,HL
ADD HL,BC
EX DE,HL
OR A
SBC HL,BC
JR NC,.L1
ADD HL,BC
LD (IY + PANEL.CFL),L
LD (IY + PANEL.CFH),H
LD (IY + PANEL.FFL),E
LD (IY + PANEL.FFH),D
FndTreeExt POP AF
SETPORT WINSP.CPU1,,0
RET
PrevDIR DB 13 DUP 0
;[]----------------------------------------------------------[]
MakeDOSname LD BC,0x0820
.L1 LD A,(HL)
CP C
JR Z,.L2
INC HL
LD (DE),A
INC DE
DJNZ .L1
JR .L5
.L2
; LD A,B
; OR A
; JR Z,.L5
INC HL
DJNZ .L2
.L5 LD B,0x03
INC HL
LD A,(HL)
CP C
JR Z,.L4
LD A,'.'
LD (DE),A
INC DE
.L3 LD A,(HL)
INC HL
LD (DE),A
INC DE
DJNZ .L3
.L4 SUB A
LD (DE),A
RET

710
fndosline.a80 Normal file
View File

@ -0,0 +1,710 @@
; LAST UPDATE: 28.05.2025 savelij
;[]==========================================================[]
DOSline SUB A
LD (HistCurrent),A
SPDSS DSSF.TESTKEY
BIT KEYBSTAT.B_ALT,B
JR Z,DOSln0
LD A,D
AND 0x7F
CP SC.1 ; 0x02
JR C,DOSlnEx
CP SC.BKSP ; 0x0E
JP C,RESIDENT.QSearch
CP SC.Q ; 0x10
JR C,DOSlnEx
CP SC.QSKOBKAL ; 0x1A
JP C,RESIDENT.QSearch
CP SC.A ; 0x1D
JR C,DOSlnEx
CP SC.DOTZAP ; 0x26
JP C,RESIDENT.QSearch
CP SC.Z ; 0x2A
JR C,DOSlnEx
CP SC.ZAP ; 0x31
JP C,RESIDENT.QSearch
JR DOSlnEx
DOSln0 LD A,E
CP 0x0D
JP Z,RunDOSline
CP 0x1B
JP Z,ClrDOSln1
CP '!' ; 0x21
JR NC,DOSloop
CP ' ' ; 0x20
JR NZ,DOSln1
LD A,(DOSstr.slen)
OR A
JR NZ,DOSloop
; ¯®¬¥âª  ä ©«  ¯® SPACE
SPDSS DSSF.SCANKEY
JP RESIDENT.MarkFile
DOSln1 LD A,D
CP SC.ENTER | SC.RUS ; 0xA8
JR Z,DOSloop
CP SC.QSKOBKAL | SC.RUS ; 0x9A
JR Z,DOSloop
CP SC.QSKOBKAR | SC.RUS ; 0x9B
JR Z,DOSloop
CP SC.E | SC.RUS ; 0x92
JR Z,DOSloop
DOSlnEx
SPDSS DSSF.SCANKEY
RET
DOSloop SUB A
LD (HistCurrent),A
LD IX,DOSstr
LD HL,DOSTab
CALL DOSInputLine
RET C
JR Z,RunDOSline
SPDSS DSSF.TESTKEY
LD A,E
CP 0x1B
RET NZ
LD A,(DOSstr.slen)
OR A
RET Z
CALL ClearDOSline
SPDSS DSSF.SCANKEY
JR DOSloop
;[]----------------------------------------------------------[]
ClrDOSln1
SPDSS DSSF.SCANKEY
LD A,(DOSstr.slen)
OR A
JP Z,ShowDOSscreen
ClearDOSline SUB A
LD (HistCurrent),A
LD A,(DOSstr.slen)
OR A
RET Z
LD HL,DOSinp
SUB A
LD B,0x80
.L1 LD (HL),A
INC HL
DJNZ .L1
LD (DOSstr.slen),A
LD (DOSstr.posX),A
LD (DOSstr.addX),A
MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 254,229,380,10,COLORI.PANEL
W_END
RET
;[]----------------------------------------------------------[]
RunDOSline
SPDSS DSSF.SCANKEY
LD A,(DOSstr.slen)
OR A
JP Z,OpenFile
CALL SaveDOSline
LD HL,DOSinp
LD A,(HL)
CP 0x20
JP Z,ClearDOSline
LD A,(DOSstr.slen)
LD B,A
LD C,0x00
LD A,0x20
RunDLn0 CP (HL)
JR Z,RunDLine
INC HL
INC C
DJNZ RunDLn0
RunDLine DEC HL
LD A,'\\'
CP (HL)
JP NZ,RunDOSexe
LD HL,DOSinp
LD DE,WorkBuffer
PUSH DE
LD B,0x00
LDIR
SUB A
LD (DE),A
CALL ClearDOSline
POP HL
LD A,(DOSinp + 1)
CP ':'
JR NZ,.L1
LD (IY + PANEL.CURRPATH),0x00
.L1 CALL NewDIRECTORY
LD A,(TreeFlag)
OR A
RET Z
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
RET NZ
PUSH IY
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,LeftPanel
LD HL,RightPanel
JR NZ,.L2
LD IY,RightPanel
LD HL,LeftPanel
.L2 LD DE,PANEL.CURRPATH
ADD HL,DE
INC HL
INC HL
IF TREE_REZID
CALL RESIDENT.FindTreeDIR
ELSE
CALL FindTreeDIRR
ENDIF
CALL PrintDIR
CALL PrnFileInfo
PUSH IY
POP IX
LD DE,PANEL.BARXL
ADD IX,DE
CALL PrnVScrBar
POP IY
RET
RunDOSexe LD HL,DOSinp - 1
RunDE1 INC HL
LD A,(HL)
CP '!'
JR C,RunDOSexe1
CP '.'
JR NZ,RunDE1
INC HL
LD A,(HL)
RES 5,A
CP 'F'
JR NZ,RunDOSexe1
INC HL
LD A,(HL)
RES 5,A
CP 'L'
JR NZ,RunDOSexe1
INC HL
LD A,(HL)
RES 5,A
CP 'X'
JR NZ,RunDOSexe1
LD HL,DOSinp
LD DE,WorkBuffer
SUB A
.L1 LDI
CP (HL)
JR NZ,.L1
LD (DE),A
CALL ClearDOSline
CALL RunFLX
JP C,DOSError
RET
RunDOSexe1 ld hl,WorkBuffer
ld de,WorkBuffer + 1
ld bc,0x0100
ld (hl),0
ldir
LD DE,WorkBuffer
call GetFileName
jp c,.error
ld hl,DOSinp
call SkipWord
ld a,(hl)
and a
jr z,.endOfLine
dec hl
ld de,WorkBuffer
call ConcatString
.endOfLine: ld hl,WorkBuffer
ld de,WorkBuffer + 0x0100
SPDSS DSSF.EX_PATH,4
jr c,.error
and 2
jr z,.unknown
ld hl,(WorkBuffer + 0x0100)
ld de,'XE' ;0x5845 - 'EX'
sbc hl,de
jr nz,.noExe
ld a,(WorkBuffer + 0x0102)
cp 'E'
jr nz,.noExe
;!TODO ¬¥áâ® ¤«ï ᯥæ¨ä¨ç­®£® § ¯ã᪠ exe?
; ... ... ...
;
.unknown: ld hl,WorkBuffer
ld de,WorkBuffer + 0x0100
ld bc,0x0100
ldir
jr .noBatch
.noExe: ld hl,ShellFile ;ª®¯¨à㥬 ¯ãâì ª 襫«ã
ld de,WorkBuffer + 0x0100
call CopyString
ld hl,WorkBuffer
call ConcatString
.noBatch: CALL ResDrivers
SUB A
CALL ClearScreen
CALL ResVideoMode
LD HL,ReStartPoint
EX (SP),HL
LD HL,WorkBuffer + 0x0100
SPDSS DSSF.EXEC,0
RET NC
PUSH AF
SETPORT BORDER,0
CALL InitVideoMode
CALL InitDrivers
CALL InitScreen
CALL ClearDOSline
SUB A
CALL InitPanels
POP AF
.error: CALL DOSError
LD HL,MainLoop
EX (SP),HL
RET
; ¢áâ ¢ª  ¨§ ¡ãä¥à  ¢¢®¤  ª®¬.áâப¨ ¨¬¥­¨ ¨á¯®«­ï¥¬®£® ä ©« 
; ¥á«¨ 㪠§ ­  ¡á®«îâ­ë© ¯ãâì ª ä ©«ã á ¨¬¥­¥¬ ¤¨áª , â® ®­ ª®¯¨àã¥âáï æ¥«¨ª®¬
; ¥á«¨ ¯à®áâ® ¨¬ï ä ©« , â® ¯à®¨§¢®¤¨âáï ¯®¯ë⪠ ¯®¨áª  ä ©«  ¢
; ª â «®£¥ ⥪ã饩 ¯ ­¥«¨ ¨ ¯®¤áâ ¢«ï¥âáï ¥£®  ¡á®«îâ­ë© ¯ãâì, ¥á«¨ ­¥â, â® ¯à®áâ® ¨¬ï ä ©« 
; DE - ¡ãä¥à ¤«ï ¨¬¥­¨ ä ©« 
GetFileName: LD A,(DOSinp + 1) ; ¢ ª®¬.áâப¥ 㪠§ ­  ¡á®«îâ­ë© ¯ãâì ª ä ©«ã (á ¤¨áª®¬)
CP ':'
JR nz,.panelSearch
.notFound: ld hl,DOSinp ;ª®¯¨à㥬 ¡ãä¥à ª®¬.áâப¨ ¢ ¡ãä¥à
jp CopyWord
.panelSearch: ex hl,de
ld (.str),hl
bit PANELFLAG.B_SIDE,(iy + PANEL.PANELFLAG)
ld hl,RightPanel + PANEL.CURRPATH
jr nz,.next
ld hl,LeftPanel + PANEL.CURRPATH
.next: ld de,WorkBuffer + 0x0100
call CopyString
ld a,'\\'
ld (de),a
inc de
; ‚뤥«¨âì ¨¬ï ä ©«  ¨§ áâப¨
ld hl,DOSinp ; ®âªã¤ 
SPDSS DSSF.EX_PATH,3
ret c ; ¨¬ï ä ©«  ­¥ ­ ©¤¥­®
bit 1,a
jr z,.noExt ; ¨¬ï ¨á¯®«­ï¥¬®£® ä ©«  㪠§ ­® á à áè¨à¥­¨¥¬, ¨áª âì ­¥ ­ã¦­®
ld hl,EndOfString
jr .found1
.noExt: ld hl,BATExtension
call PrepareFilename
call SearchFilename
jr nc,.found
ld hl,EXEExtension
.found1: call PrepareFilename
call SearchFilename
.found: ld de,0
.str EQU $-2
jr c,.notFound
ld hl,WorkBuffer + 0200h
jp CopyString
;<3B>®¤£®â®¢ª  ¨¬¥­¨ ä ©«  ¤«ï ¯®¨áª 
PrepareFilename:
ld de,WorkBuffer + 0200h
push hl
ld hl,WorkBuffer + 0x0100
call CopyString
pop hl
jp ConcatString
;¯®¨áª ä ©« 
SearchFilename: ld hl,WorkBuffer + 0200h ;¯®¨áª ä ©«  ¢ ª â «®£¥ ⥪ã饩 ¯ ­¥«¨
ld de,WorkBuffer + 0300h
SPDSS DSSF.F_FIRST,1,DIR.M_Archive + DIR.M_ReadOnly
ret
;[]----------------------------------------------------------[]
SaveDOSline
GETPORT WINSP.CPU1
PUSH AF
LD A,(RAMPAGES.FNHELP)
SETPORT WINSP.CPU1,,0
SETPORT WINSP.Y_PORT,0xC0
LD IX,DOSstr
LD HL,(HistSpace)
LD C,(IX + DOSstr.slen - DOSstr)
LD B,0x00
.L4 OR A
SBC HL,BC
JR C,.L1
JR NZ,.L3
.L1 LD A,(HistCount)
DEC A
LD (HistCount),A
PUSH BC
CALL FindHistory
POP BC
LD DE,DOShistory + DOShistory_Size
OR A
EX DE,HL
SBC HL,DE
JR .L4
.L3 DEC HL
LD (HistSpace),HL
PUSH BC
LD A,(HistCount)
CALL FindHistory
LD E,L
LD D,H
ADD HL,BC
INC HL
EX DE,HL
PUSH HL
LD BC,DOShistory
OR A
SBC HL,BC
LD C,L
LD B,H
POP HL
LD A,B
OR C
JR Z,.L2
DEC HL
DEC DE
LDDR
.L2 POP BC
LD HL,DOSinp
LD DE,DOShistory
LD A,C
INC A
LD (DE),A
INC DE
LDIR
SUB A
LD (HistCurrent),A
POP AF
SETPORT WINSP.CPU1,,0
LD HL,HistCount
INC (HL)
RET
GetDOShistory LD IX,DOSstr
LD HL,HistCount
LD A,(HistCurrent)
INC (HL)
DEC (HL)
JP Z,ClearDOSline
CP (HL)
RET Z
EX AF,AF'
GETPORT WINSP.CPU1
PUSH AF
LD A,(RAMPAGES.FNHELP)
SETPORT WINSP.CPU1,,0
EX AF,AF'
PUSH AF
CALL FindHistory
LD DE,DOSinp
LD A,(HL)
INC HL
DEC A
LD (IX + DOSstr.slen - DOSstr),A
LD (IX + DOSstr.posX - DOSstr),A
LD C,A
LD B,0x00
LDIR
SUB A
LD (IX + DOSstr.addX - DOSstr),A
POP AF
INC A
LD (HistCurrent),A
POP AF
SETPORT WINSP.CPU1,,0
RET
FindHistory LD HL,DOShistory
OR A
RET Z
LD B,A
LD D,0x00
.L1 LD E,(HL)
ADD HL,DE
DJNZ .L1
RET
;[]----------------------------------------------------------[]
DOSInputLine LD (InpLnData),IX
LD (InputLine.InpMous),HL
RES 7,(IX + 0x01)
SET 6,(IX + 0x01)
SPDSS DSSF.TESTKEY
JR NZ,.L1
RES 6,(IX + 0x01)
.L1 CALL InsInpLnCol
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX + 0x04)
ADD HL,DE
LD (HL),D
CALL PrintInpLn + 3
DOSLineLp HALT
CALL ChCursor
LD IX,(InputLine.InpMous)
CALL TestCoords
SPDSS DSSF.TESTKEY
JR Z,DOSLineLp
RES 7,D
BIT KEYBSTAT.B_ALT,B
JR NZ,DOSLineLp1;DOSLineLp ; ¢ë室, §¤¥áì ­¥â ª®¬¡¨­ æ¨© á ALT
LD IX,DOSTable2 ; ª®¬¡¨­ æ¨ï á CTRL
BIT KEYBSTAT.B_CTRL,B
JR NZ,DOSKeys
LD IX,DOSTable1 ; ¢¢®¤ ¡¥§ ¬®¤¨ä¨ª â®à®¢
DOSKeys LD L,(IX + 0x00) ; ASCII code
INC IX
INC L
JR Z,DOSLineLp1
DEC L
LD H,(IX + 0x00) ; position code
INC IX
LD C,(IX + 0x00) ; adr LOW
INC IX
LD B,(IX + 0x00) ; adr HIGH
INC IX
OR A
SBC HL,DE
JR NZ,DOSKeys
LD IX,(InpLnData)
RES 6,(IX + 0x01)
LD A,E
CP 0x1B
JR NZ,DOSLnNx
CALL ResCursor
LD A,0x01
OR A
RET
DOSLnNx LD HL,DOSLineLp
PUSH HL
PUSH BC
PUSH IX
SPDSS DSSF.SCANKEY
POP IX
RET
DOSLineLp1 LD IX,(InpLnData)
LD A,E
CP 0x20
JR NC,DOSLineLp2
BIT 6,(IX + 0x01)
JR Z,DOSLnE0
PUSH IX
SPDSS DSSF.SCANKEY
POP IX
DOSLnE0 CALL ResCursor
LD A,0x01
OR A
RET
DOSLineLp2 RES 6,(IX + 0x01)
LD HL,DOSLineLp
PUSH HL
PUSH IX
SPDSS DSSF.SCANKEY
POP IX
LD A,E
JP InsertSymbol
DOSLnExtN POP HL
LD IX,(InpLnData)
CALL ResCursor
XOR A
RET
DOSLnExtC POP HL
LD IX,(InpLnData)
CALL ResCursor
SCF
RET
DOSTable1 DW SC.ESC << 8 | 0x1B, InputLine.InpLnExtC ; 0x011B,InpLnExtC
DW SC.ENTER << 8 | 0x0D,InputLine.InpLnExtN ; 0x280D,InpLnExtN
DW SC.X4 << 8, ILleft ; 0x5400,ILleft
DW SC.X6 << 8, ILright ; 0x5600,ILright
DW SC.BKSP << 8 | 8, ILdelet ; 0x0E08,ILdelet
DW SC.XDEL << 8, IL_del_ ; 0x4F00,IL_del_
DW SC.X7 << 8, ILhome ; 0x5700,ILhome
DW SC.X1 << 8, ILend ; 0x5100,ILend
DB 0xFF
DOSTable2 DW SC.X4 << 8, ILwordL ; 0x5400,ILwordL
DW SC.X6 << 8, ILwordR ; 0x5600,ILwordR
DW SC.BKSP << 8, ILdelWR ; 0x0E00,ILdelWR
DW SC.ENTER << 8, InsFileName ; 0x2800,InsFileName
DW SC.QSKOBKAL << 8, InsLeftPath ; 0x1A00,InsLeftPath
DW SC.QSKOBKAR << 8, InsRightPath ; 0x1B00,InsRightPath
DW SC.E << 8, InsHistory ; 0x1200,InsHistory
DB 0xFF
InsFileName
GETPORT WINSP.CPU1
PUSH AF
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD L,(IY + PANEL.FFL)
LD H,(IY + PANEL.FFH)
LD E,(IY + PANEL.CFL)
LD D,(IY + PANEL.CFH)
ADD HL,DE
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JR Z,InsFN1
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
SET 6,H
INC HL
INC HL
LD DE,TempName
LD BC,0x000D
LDIR
JR InsFN2
InsFN1 ADD HL,HL
ADD HL,HL
ADD HL,HL
LD E,L
LD D,H
ADD HL,HL
ADD HL,DE
SET 6,H
INC HL
LD DE,TempName
CALL MakeDOSname
InsFN2 POP AF
SETPORT WINSP.CPU1,,0
LD HL,TempName
LD A,(HL)
CP '.'
RET Z
CP '\\'
RET Z
PUSH HL
SUB A
LD C,A
.L1 INC C
INC HL
CP (HL)
JR NZ,.L1
LD (HL),0x20
INC HL
LD (HL),A
INC C
POP HL
JP InsertWord
TempName DB 14 DUP 0
InsLeftPath LD HL,LeftPanel + PANEL.CURRPATH
JR InsPath
InsRightPath LD HL,RightPanel + PANEL.CURRPATH
InsPath LD DE,WorkBuffer + 0x100
PUSH DE
SUB A
LD C,A
.L1 LDI
CP (HL)
JR NZ,.L1
DEC HL
LD A,'\\'
CP (HL)
JR Z,.L2
LD (DE),A
INC DE
DEC C
.L2 SUB A
SUB C
LD C,A
POP HL
JP InsertWord
InsertWord LD A,(IX + 0x04) ;InpytSymb
ADD A,C
RET C
SUB (IX + 0x00) ;Max len
RET NC
PUSH HL
LD A,(IX + 0x04)
SUB (IX + 0x02)
JR Z,NotInsWord
; ‚¢®¤ ¢ á¥à¥¤¨­ã ⥪áâ 
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX + 0x04)
ADD HL,DE
LD E,L
LD D,H
LD B,0x00
ADD HL,BC
EX DE,HL
DEC HL
DEC DE
PUSH BC
LD C,A
LDDR
POP BC
NotInsWord PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX + 0x02)
ADD HL,DE
EX DE,HL
POP HL
PUSH BC
LD B,0x00
LDIR
POP BC
LD A,(IX + 0x04)
ADD A,C
LD (IX + 0x04),A
LD A,(IX + 0x02)
ADD A,C
LD (IX + 0x02),A
JP PrintInpLn
InsHistory CALL GetDOShistory
JP PrintInpLn
;[]----------------------------------------------------------[]
ShellFile: db "X:\\SYSTEM.EXE /C ",0 ; 襫«
BATExtension: db ".BAT",0
EXEExtension: db ".EXE"
EndOfString: db 0
DOSstr DB 0x80,0x00
.posX DB 0x00
.addX DB 0x00
.slen DB 0x00
DW 256,231,376
DB COLORP.PANEL + COLORI.FILES
DOSinp DB 0x81 DUP 0
HistSpace DEFW 0x200
HistCount DEFB 0x00
HistCurrent DEFB 0x00
;[]----------------------------------------------------------[]

602
fninit.a80 Normal file
View File

@ -0,0 +1,602 @@
; LAST UPDATE: 27.04.2025 savelij
;[]==========================================================[]
InitVideoMode
SPDSS DSSF.GETVMOD
LD C,A ; ⥪ã騩 ०¨¬ íªà ­ 
LD A,(InitFlg)
OR A
JR NZ,.L1
LD A,C
LD (VMode),A
LD A,B ; áâà ­¨æ  íªà ­ 
LD (VScrn),A
.L1 LD HL,WorkBuffer
SPBIOS BIOSF.FN_VERSION
;!TODO ¯à®¢¥àïâì ­  ¯®á«¥¤­¨© ¡¨®á
AND A
LD HL,-0x101;ACEX.Config_ID.Sp2000
SBC HL,BC
JR Z,.L2
SPBIOS BIOSF.RST_CONF_CUSTOM,,-3
.L2:
;????? âãâ áâ àë© ¢ à¨ ­â ¢ë¤ ç¨ FN_VERSION ¯à®¢¥àï¥âáï. <20>®¤ã¬ âì.
; LD A,%0000'1101 ; ­ã¦­ë¥ ¡¨âë ¤«ï ¯®àâ  All_Mode
; AND L
; SUB %0000'1101
; JR Z,InitVM1
; IN A,(SCREEN_SWITCH)
; PUSH AF
; LD C,BIOS.RST_CONF.SP97_2
; RST ToBIOS
; SUB A
; OUT (BorderColor),A
; POP AF
; OUT (SCREEN_SWITCH),A
InitVM1
SPDSS DSSF.SETVMOD,0,SETVMOD.GRF640X256
SUB A
CALL ClearScreen
InitPAL LD HL,PALETTE
LD DE,0x1000
SPBIOS BIOSF.PIC_SET_PAL,0xFF,0
RET
;[]----------------------------------------------------------[]
ResVideoMode LD B,0x00
VScrn EQU $-1
LD A,0x00
VMode EQU $-1
PUSH IY
SPDSS DSSF.SETVMOD
POP IY
RET
;[]==========================================================[]
InitDrivers SUB A
LD (CMOSFlag),A
LD L,A
LD H,A
LD (TestCoords.PrvTabl),HL
LD (TestCoords.PrMousX),HL
LD (TestCoords.PrMousY),HL
SPDSS DSSF.GETMEM,7
JR NC,InitDrv
CALL ResVideoMode
LD HL,NoEnMemory
SPDSS DSSF.PCHARS
LD A,(RAMPAGES.FNPAGESID)
SPDSS DSSF.FREEMEM
SPDSS DSSF.EXIT,0x1E
NoEnMemory DZ "Not enough memory to run program.\r\n"
InitDrv LD (RAMPAGES.BufferID),A
LD HL,RAMPAGES.FLX
SPBIOS BIOSF.GETMEMBLKPAGES
.skip:
SPDSS DSSF.CURDISK
JR C,.skip
LD A,C
CP 12
JR C,.L1
LD A,11
.L1 LD (NUM_DEVICES),A
SPDSS DSSF.GETTIME
JR C,.L3
LD A,D
CP 32
CCF
JR C,.L3
LD A,E
CP 13
CCF
JR C,.L3
LD A,H
CP 24
CCF
JR C,.L3
LD A,L
CP 60
CCF
.L3 LD A,0x00
JR C,.L2
INC A
.L2 LD (CMOSFlag),A
LD A,0x00
InitFlg EQU $-1
OR A
CALL Z,FirstInit
CALL SETUP_DISKS
SPMOUSE MOUSEF.INIT
LD A,(MouseFlag)
OR A
LD C,MOUSEF.SHOW
JR NZ,.L1
LD C,MOUSEF.HIDE
.L1
SPMOUSE
;!TEST enable shared interrupts
;Check BIOS version
SPBIOS BIOSF.DRV_VERSION
AND A
LD HL,2 << 8 + 54 ;!HARDCODE (¬¨­¨¬ «ì­ ï ¢¥àá¨ï)-1 ¤«ï  ªâ¨¢ æ¨¨ ¯à¥à뢠­¨©
SBC HL,DE
RET NC ; ¢ë室, ¥á«¨ ¢¥àá¨ï ­¨¦¥ 2.55
LD BC,WINSP.CPU2
IN B,(C)
SETPORT WINSP.CPU2,0xFE
LD A,0xAA
LD (0x0127 + CPU2),A;(SYS_PAGE.INT_ID - #4000),A ;!HARDCODE SYS_PAGE.INT_ID - #4000
OUT (C),B
RET
FirstInit
SPDSS DSSF.BOOTDSK,0
ADD A,'A'
LD (ShellFile),a ; fndosln.z80
SPDSS DSSF.CURDISK
LD HL,LeftPanel + PANEL.CURRPATH
PUSH HL
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
SPDSS DSSF.CURDIR
POP HL
LD DE,RightPanel + PANEL.CURRPATH
LD BC,0x0100
LDIR
GETPORT WINSP.CPU1
PUSH AF
LD A,(RAMPAGES.FNFUNCT)
SETPORT WINSP.CPU1,,0
LD HL,FlexDIRECTORY
SPDSS DSSF.APPINFO,1
JP C,.L5
LD HL,FlexDIRECTORY
SPDSS DSSF.CHDIR
JP C,.L5
LD HL,SetupName
SPDSS DSSF.OPEN,,1
JR C,.L5
PUSH AF
LD HL,WorkBuffer
push hl
push hl
ld (hl),0
pop de
ld bc,0x00ff
inc de
ldir
pop hl
LD DE,0x0100
SPDSS DSSF.READ
POP AF
SPDSS DSSF.CLOSE
LD HL,WorkBuffer
LD DE,SetupHead
LD B,11
.L3 LD A,(DE)
CP (HL)
JR NZ,.L5
INC HL
INC DE
DJNZ .L3
LD DE,PALETTE
LD BC,0x0040
LDIR
LD A,(HL)
INC HL
OR A
JR Z,.L4
LD A,(HL)
INC HL
AND 0x01
LD (MouseFlag),A
LD DE,LeftPanel
PUSH DE
LDI
LDI
LDI
POP DE
EX DE,HL
LD BC,PANEL.FILEMASK
ADD HL,BC
EX DE,HL
SUB A
.L1 LDI
CP (HL)
JR NZ,.L1
LD (DE),A
INC HL
LD DE,RightPanel
PUSH DE
LDI
LDI
LDI
POP DE
EX DE,HL
LD BC,PANEL.FILEMASK
ADD HL,BC
EX DE,HL
SUB A
.L2 LDI
CP (HL)
JR NZ,.L2
LD (DE),A
.L4 inc hl
ld a,(hl) ;¯ à ¬¥âà -  ¢â® ᬥ­  ¯ ­¥«¨ ¯à¨ ᬥ­¥ ¤¨áª  ­  ­¥©
ld (AutoActivatePanel),a
inc hl
CALL InitPAL
.L5 POP AF
SETPORT WINSP.CPU1,,0
LD DE,InitExtention
LD A,(RAMPAGES.FNHELP)
LD C,WINSP.CPU1
CALL Resident
LD HL,LeftPanel + PANEL.CURRPATH
SPDSS DSSF.CHDIR
LD A,0x01
LD (InitFlg),A
RET
; ®¡­®¢«¥­¨¥ ¢ â ¡«¨æ¥ ¢ë¡®à  ¤¨áª®¢ ­  ¯ ­¥«¨
SETUP_DISKS LD HL,BgDISKl ; ¤¨áª¨ «¥¢®© ¯ ­¥«¨
LD DE,BgDISKr ; ¤¨áª¨ ¯à ¢®© ¯ ­¥«¨
LD BC,FORMTABL.SIZE * 2
LD A,(NUM_DEVICES)
.L1 ADD HL,BC
INC HL
RES FORMTABL.B_ENDTABL,(HL)
DEC HL
EX DE,HL
ADD HL,BC
INC HL
RES FORMTABL.B_ENDTABL,(HL)
DEC HL
EX DE,HL
DEC A
JR NZ,.L1
INC HL
SET FORMTABL.B_ENDTABL,(HL)
EX DE,HL
INC HL
SET FORMTABL.B_ENDTABL,(HL)
RET
;[]----------------------------------------------------------[]
ResDrivers
SPMOUSE MOUSEF.HIDE
LD A,(RAMPAGES.BufferID)
SPDSS DSSF.FREEMEM
;!TEST disable shared interrupts
LD BC,WINSP.CPU2
IN B,(C)
SETPORT WINSP.CPU2,PAGE.SYSTEM;0xFE
XOR A
LD (0x0127 + CPU2),A ;!HARDCODE SYS_PAGE.INT_ID
OUT (C),B
RET
;[]==========================================================[]
InitScreen
MAKEWINDOW WINSUBOBJ.NOSTORE
W_MAIN 0,0,640,256
W_FILL 4,2,632,10,COLORI.BLACK
W_TEXT 16,3,COLORI.WHITE,"Flex Navigator v\{FLEX_VERS.NAVIGATOR}"
W_HORIZLINE 0,13,640
W_TEXT 16,17,COLORP.HIGHGRAY,"File Select Options View Config About"
W_HORIZLINE 0,27,640
W_VERTICLINE 318,30,12
W_HORIZLINE 0,43,640
W_HORIZLINE 0,211,640
W_VERTICLINE 318,214,10
W_HORIZLINE 0,225,640
W_BORDER 252,228,384,12
W_FILL 254,229,380,10,COLORI.PANEL
W_HORIZLINE 0,241,640
W_BUTTON 0,242,80,14
W_TEXT 22,245,COLORP.HIGHGRAY,"F1 Help"
W_BUTTON 80,242,80,14
W_TEXT 100,245,COLORP.HIGHGRAY,"F3 View"
W_BUTTON 160,242,80,14
W_TEXT 182,245,COLORP.HIGHGRAY,"F4 Edit"
W_BUTTON 240,242,80,14
W_TEXT 260,245,COLORP.HIGHGRAY,"F5 Copy"
W_BUTTON 320,242,80,14
W_TEXT 334,245,COLORP.HIGHGRAY,"F6 Rename"
W_BUTTON 400,242,80,14
W_TEXT 414,245,COLORP.HIGHGRAY,"F7 MakeDir"
W_BUTTON 480,242,80,14
W_TEXT 496,245,COLORP.HIGHGRAY,"F8 Delete"
W_BUTTON 560,242,80,14
W_TEXT 580,245,COLORP.HIGHGRAY,"F10 Quit"
W_END
LD A,(CMOSFlag)
OR A
RET Z
MAKEWINDOW WINSUBOBJ.WOBIND
W_BORDER 500,15,136,12
W_END
LD HL,0x01FC
LD DE,0x0012
LD B,0x80
EXX
LD HL,0x022E
LD DE,0x0012
LD B,0x80
EXX
LD A,0x02
JP SetCMOSPrint
;[]==========================================================[]
InitPanels LD (InitPanFlg),A
LD HL,LeftPanel+PANEL.VIEWFLAG
LD A,(RightPanel+PANEL.VIEWFLAG)
OR (HL)
AND 0x02
JR NZ,InitPanTree
LD IY,LeftPanel
CALL InitPanelE
LD IY,RightPanel
CALL InitPanelE
JR InitPanExit
InitPanTree LD IY,LeftPanel
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
JR NZ,.L1
LD IY,RightPanel
.L1 CALL InitPanelE
InitPanExit LD HL,LeftPanel
LD DE,PANEL.CURRPATH
BIT 7,(HL)
JR NZ,.L2
LD HL,RightPanel
.L2 PUSH HL
ADD HL,DE
SPDSS DSSF.CHDIR
POP IY
RET
InitPanel SUB A
InitPanel1 LD (InitPanFlg),A
InitPanelE LD A,(InitPanFlg)
BIT 0,A
CALL Z,SetClock
CALL PrintDisks
CALL PrintPath
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
CALL NZ,PrintDOSPath
LD A,(IY+PANEL.VIEWFLAG)
AND VIEWFLAG.MASK
JP NZ,InitPPanel
LD L,(IY+PANEL.XL)
LD H,(IY+PANEL.XH)
LD (PanelN1),HL
INC HL
INC HL
LD (PanelN2),HL
LD (PanelN6),HL
LD (PanelN3),HL
LD (Nbut1),HL
LD (Nfile),HL
LD DE,0x0010
ADD HL,DE
LD (PanelN4),HL
LD (Nbut1+2),HL
LD (Nbar1),HL
LD (IY+PANEL.BARXL),L
LD (IY+PANEL.BARXH),H
LD (IY+PANEL.BARYL),0xC9
LD (IY+PANEL.BARYH),0x00
LD DE,0x0114
ADD HL,DE
LD (PanelN5),HL
LD (Nbar2+2),HL
LD (Nbut2),HL
LD (IY+PANEL.BARMLL),E
LD (IY+PANEL.BARMLH),D
LD DE,0x0010
ADD HL,DE
LD (Nbut2+2),HL
LD (Nfile+2),HL
LD (IY+PANEL.FPL),0x33
LD (IY+PANEL.FPH),0x00
; Šà âª ï ¯ ­¥«ì
MAKEWINDOW WINSUBOBJ.WOBIND
PanelN1 EQU $+1
W_BORDER 0,59,312,151
PanelN2 EQU $+1
W_FILL 0,60,308,149,COLORI.PANEL
PanelN3 EQU $+1
W_ICONLEFTARROW 0,201
PanelN4 EQU $+1
W_FILL 0,201,276,8,COLORI.HIGHGRAY
PanelN5 EQU $+1
W_ICONRIGHTARROW 0,201
PanelN6 EQU $+1
W_FILL 0,213,310,12,COLORI.HIGHGRAY
W_END
LD HL,NormMouse
LD DE,PanelPlaceL
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
JR Z,.L1
LD DE,PanelPlaceR
.L1 PUSH DE
LD BC,0x0050
LDIR
POP HL
LD C,0x32
ADD HL,BC
LD (IY+PANEL.BARLFL),L
LD (IY+PANEL.BARLFH),H
LD C,0x0E
ADD HL,BC
LD (IY+PANEL.BARRTL),L
LD (IY+PANEL.BARRTH),H
JP InitPanEx
NormMouse
Nfile DEFW 0, 0, 63,199,%0000000000000000,0,NewFile,RESIDENT.MarkFile
Nbut1 DEFW 0, 0,201,209,%0000000000000011,0,ScrollDown,0
Nbut2 DEFW 0, 0,201,209,%0000000000000011,0,ScrollUp,0
Nbar1 DEFW 0, 0,201,209,%0000000000000000,0,PageUp,0
Nbar2 DEFW 0, 0,201,209,%0000000000000000,0,PageDown,0
; <20>®¤à®¡­ ï ¯ ­¥«ì ¨ ¯ ­¥«ì á ¤¥à¥¢®¬
InitPPanel LD L,(IY+PANEL.XL)
LD H,(IY+PANEL.XH)
LD (PanelP1),HL
INC HL
INC HL
LD (PanelP2),HL
LD (PanelP6),HL
LD (Pfile),HL
LD DE,0x0124
ADD HL,DE
LD (PanelP3),HL
LD (PanelP4),HL
LD (PanelP5),HL
LD (Pbut1),HL
LD (Pbut2),HL
LD (Pbar1),HL
LD (Pbar2),HL
LD (Pfile+2),HL
LD (IY+PANEL.BARXL),L
LD (IY+PANEL.BARXH),H
LD DE,0x0010
ADD HL,DE
LD (Pbut1+2),HL
LD (Pbut2+2),HL
LD (Pbar1+2),HL
LD (Pbar2+2),HL
LD (IY+PANEL.BARYL),0x44
LD (IY+PANEL.BARYH),0x00
LD (IY+PANEL.BARMLL),0x85
LD (IY+PANEL.BARMLH),0x00
LD (IY+PANEL.FPL),0x12
LD (IY+PANEL.FPH),0x00
MAKEWINDOW WINSUBOBJ.WOBIND
PanelP1 EQU $+1
W_BORDER 0,59,312,151
PanelP2 EQU $+1
W_FILL 0,60,308,149,COLORI.PANEL
PanelP3 EQU $+1
W_ICONUPARROW 0,60
PanelP4 EQU $+1
W_FILL 0,68,16,133,COLORI.HIGHGRAY
PanelP5 EQU $+1
W_ICONDOWNARROW 0,201
PanelP6 EQU $+1
W_FILL 0,213,310,12,COLORI.HIGHGRAY
W_END
LD HL,PodrMouse
LD DE,PanelPlaceL
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
JR Z,.L1
LD DE,PanelPlaceR
.L1 PUSH DE
LD BC,0x0050
LDIR
POP HL
LD BC,0x0036
ADD HL,BC
LD (IY+PANEL.BARLFL),L
LD (IY+PANEL.BARLFH),H
LD BC,0x000E
ADD HL,BC
LD (IY+PANEL.BARRTL),L
LD (IY+PANEL.BARRTH),H
JP InitPanEx
PodrMouse
Pfile DW 0, 0, 63,207,%0000000000000000,0,NewFile,RESIDENT.MarkFile
Pbut1 DW 0, 0, 60, 68,%0000000000000011,0,ScrollDown,0
Pbut2 DW 0, 0,201,209,%0000000000000011,0,ScrollUp,0
Pbar1 DW 0, 0, 68, 0,%0000000000000000,0,PageUp,0
Pbar2 DW 0, 0, 0,209,%0000000000000000,0,PageDown,0
InitPanEx LD A,(InitPanFlg)
BIT 0,A
JR NZ,.L2
PUSH IY
PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
SPDSS DSSF.CHDIR
POP IY
JR NC,.L1
CALL DOSError
PUSH IY
SPDSS DSSF.CURDISK
POP IY
PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
PUSH IY
SPDSS DSSF.CURDIR
POP IY
JP InitPanel
.L1 CALL ReadDIR
LD A,(InitPanFlg)
BIT 1,A
CALL NZ,FindPrevFile
.L2 CALL PrintDIR
CALL SetInvert
CALL PrnFileInfo
PUSH IY
POP IX
LD DE,PANEL.BARXL
ADD IX,DE
CALL InitScrollBar
LD A,(IY+PANEL.VIEWFLAG)
AND VIEWFLAG.MASK
PUSH AF
CALL Z,PrnHScrBar
POP AF
CALL NZ,PrnVScrBar
CALL SetMouse
LD A,(InitPanFlg)
BIT 0,A
RET NZ
LD HL,LeftPanel+PANEL.VIEWFLAG
LD A,(RightPanel+PANEL.VIEWFLAG)
OR (HL)
AND 0x02
RRCA
LD (TreeFlag),A
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET Z
PUSH IY
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD IY,RightPanel
LD HL,LeftPanel + PANEL.CURRPATH
LD DE,RightPanel + PANEL.CURRPATH
JR Z,.L3
LD IY,LeftPanel
LD HL,RightPanel + PANEL.CURRPATH
LD DE,LeftPanel + PANEL.CURRPATH
.L3 SUB A
.L4 LDI
CP (HL)
JR NZ,.L4
LD (DE),A
CALL InitPanelE
POP IY
RET
InitPanFlg DEFB 0x00

801
fninput.a80 Normal file
View File

@ -0,0 +1,801 @@
; LAST UPDATE: 20.03.2025 savelij
;[]----------------------------------------------------------[]
InputLine LD (InpLnData),IX
LD (.InpMous),HL
SET 7,(IX+0x01)
SUB A
LD (IX+0x02),A
LD (IX+0x03),A
CALL InsInpLnCol
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
PUSH HL
LD E,(IX+0x04)
ADD HL,DE
LD (HL),D
LD (IX+0x02),E
POP HL
LD DE,WorkBuffer
LD A,(IX+0x02)
LD (DE),A
INC DE
LD A,(IX+0x03)
LD (DE),A
INC DE
LD A,(IX+0x04)
LD (DE),A
INC DE
LD C,A
LD B,0x00
OR B
JR Z,.L1
LDIR
.L1 CALL PrintInpLn.L1
.InpLineLp HALT
CALL ChCursor
LD IX,0x0000
.InpMous EQU $-2
CALL TestCoords
SPDSS DSSF.TESTKEY
JR Z,.InpLineLp
RES 7,D
BIT KEYBSTAT.B_ALT,B
JR NZ,.InpLineLp
LD IX,InpTable2
BIT KEYBSTAT.B_CTRL,B
JR NZ,.NextInpKeys
LD IX,InpTable1
.NextInpKeys LD L,(IX+0x00)
INC L
JR Z,.InpLineLp1
INC IX
DEC L
LD H,(IX+0x00)
INC IX
LD C,(IX+0x00)
INC IX
LD B,(IX+0x00)
INC IX
OR A
SBC HL,DE
JR NZ,.NextInpKeys
LD IX,(InpLnData)
LD HL,.InpLineLp
PUSH HL
PUSH BC
PUSH IX
SPDSS DSSF.SCANKEY
POP IX
RET
.InpLineLp1 LD IX,(InpLnData)
LD HL,.InpLineLp
PUSH HL
PUSH IX
SPDSS DSSF.SCANKEY
POP IX
LD A,E
JR InsertSymbol
.InpLnExtN POP HL
LD IX,(InpLnData)
CALL ResCursor
XOR A
RET
.InpLnExtC POP HL
LD IX,(InpLnData)
CALL ResCursor
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
EX DE,HL
LD HL,WorkBuffer
LD A,(HL)
INC HL
LD (IX+0x02),A
LD A,(HL)
INC HL
LD (IX+0x03),A
LD A,(HL)
INC HL
LD (IX+0x04),A
LD C,A
LD B,0x00
LD A,B
OR C
SCF
RET Z
LDIR
RET
InpLnData DEFW 0x0000 ; €¤à¥á ®¯¨á â¥«ï áâப¨
; +00 Œ ªá¨¬ «ì­ ï ¤«¨­  áâப¨
; +01 ”« £ £®â®¢­®áâ¨
; +02 ⥪ãé ï X ¯®§¨æ¨ï ªãàá®à 
; +03 ⥪ãé ï AddX
; +04 ª®«¨ç¥á⢮ ¢¢¥¤¥­­ëå ᨬ¢®«®¢
; +05 X ¯®§¨æ¨ï áâப¨ ­  íªà ­¥
; +07 Y ¯®§¨æ¨ï áâப¨ ­  íªà ­¥
; +09 X ¤«¨­  áâப¨ ­  íªà ­¥
; +0B –¢¥â áâப¨
; +0C ...á ¬  áâப 
InpTable1 DW SC.ESC << 8 | 0x1B, InputLine.InpLnExtC
DW SC.ENTER << 8 | 0x0D, InputLine.InpLnExtN
DW SC.XENTER << 8 | 0x0D, InputLine.InpLnExtN
DW SC.X4 << 8, ILleft
DW SC.X6 << 8, ILright
DW SC.BKSP << 8 | 0x08, ILdelet
DW SC.XDEL << 8, IL_del_
DW SC.X7 << 8, ILhome
DW SC.X1 << 8, ILend
DB 0xFF
InpTable2 DW SC.X4 << 8, ILwordL
DW SC.X6 << 8, ILwordR
DW SC.BKSP << 8, ILdelWR
DB 0xFF
InsertSymbol CP ' '
RET C
EX AF,AF'
BIT 7,(IX+0x01) ; ready
CALL NZ,ClearInpLn
LD A,(IX+0x04) ; InpytSymb
SUB (IX+0x00) ; Max len
RET NC
LD A,(IX+0x04)
SUB (IX+0x02)
JR Z,NotInsert
; ‚¢®¤ ¢ á¥à¥¤¨­ã ⥪áâ 
LD C,A
LD B,0x00
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX+0x04)
ADD HL,DE
LD E,L
LD D,H
DEC HL
LDDR
NotInsert PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX+0x02)
ADD HL,DE
EX AF,AF'
LD (HL),A
INC (IX+0x04)
INC (IX+0x02)
JP PrintInpLn
; Clear Buffer
ClearInpLn RES 7,(IX+0x01)
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD B,(IX+0x00)
SUB A
.L1 LD (HL),A
INC HL
DJNZ .L1
LD (IX+0x02),A
LD (IX+0x03),A
LD (IX+0x04),A
JP PrintInpLn
; Šãàá®à ¢«¥¢® ­  ®¤­® ¬¥áâ®
ILleft RES 7,(IX+0x01)
LD A,(IX+0x02)
DEC A
RET M
LD (IX+0x02),A
JP PrintInpLn
; Šãàá®à ¢¯à ¢® ­  ®¤­® ¬¥áâ®
ILright RES 7,(IX+0x01)
LD A,(IX+0x02)
CP (IX+0x04)
RET Z
INC (IX+0x02)
JP PrintInpLn
; delete
ILdelet BIT 7,(IX+0x01) ; ready
CALL NZ,ClearInpLn
LD A,(IX+0x02)
OR A
RET Z
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX+0x02)
ADD HL,DE
LD E,L
LD D,H
DEC DE
LD A,(IX+0x04)
SUB (IX+0x02)
JR Z,ILDel1
LD C,A
LD B,0x00
LDIR
SUB A
ILDel1 LD (DE),A
DEC (IX+0x02)
DEC (IX+0x04)
JP PrintInpLn
; Delete Char in Current Position
IL_del_ BIT 7,(IX+0x01) ; ready
CALL NZ,ClearInpLn
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX+0x02)
ADD HL,DE
INC HL
LD E,L
LD D,H
DEC DE
LD A,(IX+0x04)
SUB (IX+0x02)
RET Z
LD C,A
LD B,0x00
LDIR
SUB A
LD (DE),A
DEC (IX+0x04)
JP PrintInpLn
; Home
ILhome RES 7,(IX+0x01)
LD A,(IX+0x02)
OR A
RET Z
SUB A
LD (IX+0x02),A
JP PrintInpLn
; End string
ILend RES 7,(IX+0x01)
LD A,(IX+0x04)
CP (IX+0x02)
RET Z
LD (IX+0x02),A
JP PrintInpLn
; Word right
ILwordR RES 7,(IX+0x01)
LD A,(IX+0x04)
SUB (IX+0x02)
RET Z
LD B,A
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX+0x02)
ADD HL,DE
LD C,E
.L2 LD A,(HL)
CP ' '
JR Z,.L3
CP ','
JR Z,.L3
CP '.'
JR Z,.L3
CP '\\'
JR Z,.L3
INC HL
INC C
DJNZ .L2
JR .L4
.L3 LD A,(HL)
CP ' '
JR Z,.L1
CP ','
JR Z,.L1
CP '.'
JR Z,.L1
CP '\\'
JR NZ,.L4
.L1 INC HL
INC C
DJNZ .L3
.L4 LD (IX+0x02),C
JP PrintInpLn
; Word left
ILwordL RES 7,(IX+0x01)
LD A,(IX+0x02)
OR A
RET Z
LD B,A
LD C,B
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,C
ADD HL,DE
.L3 DEC HL
DEC C
LD A,(HL)
CP ' '
JR Z,.L2
CP ','
JR Z,.L2
CP '.'
JR Z,.L2
CP 0x5C
JR Z,.L2
DJNZ .L3
JR .L5
.L2 LD A,(HL)
CP ' '
JR Z,.L1
CP ','
JR Z,.L1
CP '.'
JR Z,.L1
CP '\\'
JR NZ,.L4
.L1 DEC HL
DEC C
DJNZ .L2
.L4 INC C
.L5 LD (IX+0x02),C
JP PrintInpLn
; Delete word
ILdelWR RES 7,(IX+0x01)
LD A,(IX+0x02)
OR A
RET Z
LD B,A
LD C,B
PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,C
ADD HL,DE
LD A,(IX+0x04)
SUB B
LD E,A
PUSH HL
DEC HL
DEC C
LD A,(HL)
CP ' '
JR Z,.L4
CP ','
JR Z,.L4
CP '.'
JR Z,.L4
CP '\\'
JR Z,.L4
DEC B
JR Z,.L6
.L3 DEC HL
DEC C
LD A,(HL)
CP ' '
JR Z,.L2
CP ','
JR Z,.L2
CP '.'
JR Z,.L2
CP '\\'
JR Z,.L2
DJNZ .L3
JR .L6
.L4 LD A,(HL)
CP ' '
JR Z,.L1
CP ','
JR Z,.L1
CP '.'
JR Z,.L1
CP '\\'
JR NZ,.L2
.L1 DEC HL
DEC C
DJNZ .L4
.L2 INC HL
INC C
.L6 LD A,(IX+0x02)
LD (IX+0x02),C
SUB C
LD C,A
EX AF,AF'
LD A,(IX+0x04)
SUB C
LD (IX+0x04),A
LD C,E
LD B,0x00
EX DE,HL
POP HL
LD A,C
OR A
JR Z,.L7
LDIR
.L7 EX DE,HL
EX AF,AF'
LD B,A
SUB A
.L5 LD (HL),A
INC HL
DJNZ .L5
JP PrintInpLn
;[]----------------------------------------------------------[]
InsInpLnCol LD L,(IX+0x07)
LD H,(IX+0x08)
LD (FillILy),HL
LD A,(IX+0x0B)
AND 0x0F ; INK
LD C,A
RLCA
RLCA
RLCA
RLCA
OR C
LD HL,PrnINKl ; INK ¡ãä¥à
LD B,0x08
CPL
.L1 LD (HL),A
INC HL
DJNZ .L1
LD B,A
LD A,(IX+0x0B)
AND 0xF0 ; PAPER
LD C,A
RRCA
RRCA
RRCA
RRCA
LD (FillILc),A
OR C
XOR B
LD HL,PrnPAPl ; PAPER ¡ãä¥à
LD B,0x08
.L2 LD (HL),A
INC HL
DJNZ .L2
RET
PrintInpLn CALL ResCursor
.L1 LD A,(IX+0x02)
SUB (IX+0x03)
JR NC,PrnInpLn1
LD A,(IX+0x03)
SUB Step
LD (IX+0x03),A
JR PrintInpLn.L1
PrnInpLn1 PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX+0x03)
ADD HL,DE
OR A
CALL NZ,TstInpLnLen ; <20>  ¢å®¤: HL-­ ç «® ¢ë¢®¤ 
; € -ª®«.ᨬ¢.¤® ªãàá®à 
PUSH IY
PUSH IX
LD A,(IX+0x07)
LD IYL,A ; Y ª®®à¤¨­ â 
LD A,(IX+0x04)
LD IYH,A
GETPORT WINSP.Y_PORT ; ‘®å࠭塞 Y ¯®àâ
PUSH AF
EXX
LD HL,PrnPAPl
LD DE,PrnINKl
LD C,(IX+0x05)
LD B,(IX+0x06)
SRL B
RR C
SET 6,B
EXX
LD C,(IX+0x09)
LD B,(IX+0x0A)
SRL B
RR C
LD IXL,C
LD C,L ; €¤à¥á áâப¨
LD B,H
GETPORT WINSP.CPU1
LD IXH,A
DI
GETPORT WINSP.CPU0
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
ACCEL ACCELCMD.SET_BUFFER
LD A,0x08
ACCEL ACCELCMD.OFF
LD A,IYH
OR A
JR Z,PrnInpE
LD A,(BC)
INC BC
PInpLnP LD L,A
LD H,HIGH (FONT_RAW)-0xC0
PUSH BC
LD B,(HL) ; ¤«¨­  ᨬ¢®« 
INC H
LD E,(HL)
INC H
LD D,(HL)
LD HL,0x0008
EX DE,HL
SETPORT WINSP.CPU1,0x50
PrnLoopInp
ACCEL ACCELCMD.COPY
LD A,(HL)
ACCEL ACCELCMD.OFF
EXX
LD A,IYL
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY
OR (HL)
EX DE,HL
XOR (HL)
ACCEL ACCELCMD.COPY_VERT
LD (BC),A
ACCEL ACCELCMD.OFF
EX DE,HL
INC BC
EXX
ADD HL,DE
DEC IXL
JR Z,.L1
DJNZ PrnLoopInp
.L1 POP BC
LD A,IXH
SETPORT WINSP.CPU1,,0
LD A,IXL
OR A
JR Z,PrnInpE
DEC IYH
JR Z,PrnInpE
LD A,(BC)
INC BC
OR A
JR NZ,PInpLnP
PrnInpE POP AF
SETPORT WINSP.CPU0,,0
EI
POP AF
SETPORT WINSP.Y_PORT,,0
LD A,IXL
OR A
JR Z,PrnInE1
LD L,A
LD H,0x00
ADD HL,HL
LD (FillILl),HL
EXX
PUSH BC
EXX
POP HL
RES 6,H
ADD HL,HL
LD (FillILx),HL
MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 0x0000,0x0000,0x0000,8,0x00
W_END
FillILx EQU $-10
FillILy EQU $-8
FillILl EQU $-6
FillILc EQU $-2
PrnInE1 POP IX
POP IY
JP SetCursor
PrnINKl DB 8 DUP 0
PrnPAPl DB 8 DUP 0
TstInpLnLen PUSH IY
LD IYL,A
LD IYH,A
DI
GETPORT WINSP.CPU0
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
LD D,HIGH (FONT_RAW)-0xC0
TstInpLn PUSH HL
LD BC,0x0000
TstInpL LD E,(HL)
INC HL
LD A,(DE)
ADD A,A
ADD A,C
LD C,A
LD A,B
ADC A,0x00
LD B,A
DEC IYL
JR NZ,TstInpL
LD L,(IX+0x09)
LD H,(IX+0x0A)
OR A
SBC HL,BC
JR NC,TstInpE
POP HL
LD BC,Step
ADD HL,BC
LD A,(IX+0x03)
ADD A,C
LD (IX+0x03),A
LD A,IYH
SUB C
LD IYH,A
LD IYL,A
JR TstInpLn
TstInpE POP HL
POP AF
SETPORT WINSP.CPU0,,0
EI
POP IY
RET
SetCursor PUSH IX
POP HL
LD DE,LenInpData
ADD HL,DE
LD E,(IX+0x03)
ADD HL,DE
LD BC,0x0000
LD A,(IX+0x02)
SUB E
JR Z,StCurs1
EX AF,AF'
DI
GETPORT WINSP.CPU0
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
LD D,HIGH (FONT_RAW)-0xC0
EX AF,AF'
StCurs0 EX AF,AF'
LD E,(HL)
INC HL
LD A,(DE)
ADD A,A
ADD A,C
LD C,A
LD A,B
ADC A,0x00
LD B,A
EX AF,AF'
DEC A
JR NZ,StCurs0
POP AF
SETPORT WINSP.CPU0,,0
EI
StCurs1 LD (CurShiftX),BC
LD A,0x01
LD (CurCursor),A
LD A,CursTimer
LD (CrTimer),A
SetCr LD L,(IX+0x05)
LD H,(IX+0x06)
LD BC,(CurShiftX)
ADD HL,BC
SRL H
RR L
SET 6,H
GETPORT WINSP.CPU1
LD C,A
GETPORT WINSP.Y_PORT
LD B,A
PUSH BC
LD DE,CursBuffer
LD C,(IX+0x07)
DEC C
LD A,(IX+0x0B)
AND 0x0F
LD B,A
RLCA
RLCA
RLCA
RLCA
OR B
LD B,A
SETPORT WINSP.CPU1,0x50
DI
LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.SET_BUFFER
LD A,0x09
ACCEL ACCELCMD.COPY_VERT
LD A,(HL)
ACCEL ACCELCMD.COPY
LD (DE),A
ACCEL ACCELCMD.OFF
LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL_VERT
LD (HL),B
ACCEL ACCELCMD.OFF
EI
POP BC
LD A,B
SETPORT WINSP.Y_PORT,,0
LD A,C
SETPORT WINSP.CPU1,,0
RET
ResCursor LD L,(IX+0x05)
LD H,(IX+0x06)
LD BC,(CurShiftX)
ADD HL,BC
SRL H
RR L
SET 6,H
GETPORT WINSP.CPU1
LD C,A
GETPORT WINSP.Y_PORT
LD B,A
PUSH BC
LD DE,CursBuffer
LD B,(IX+0x07)
DEC B
LD C,WINSP.Y_PORT
SETPORT WINSP.CPU1,0x50
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x09
ACCEL ACCELCMD.COPY
LD A,(DE)
OUT (C),B
ACCEL ACCELCMD.COPY_VERT
LD (HL),A
ACCEL ACCELCMD.OFF
EI
POP BC
LD A,B
SETPORT WINSP.Y_PORT,,0
LD A,C
SETPORT WINSP.CPU1,,0
RET
ChCursor LD HL,CrTimer
DEC (HL)
RET NZ
LD (HL),CursTimer
LD IX,(InpLnData)
LD A,(CurCursor)
XOR 0x01
LD (CurCursor),A
JR Z,ResCursor
JP SetCr
CurShiftX DEFW 0x00
CrTimer DEFB 0x00
CurCursor DEFB 0x00
CursBuffer DB 9 DUP 0

570
fnmain.a80 Normal file
View File

@ -0,0 +1,570 @@
; LAST UPDATE: 26.05.2025 savelij
;[]=======================================================================[]
; FLEX NAVIGATOR ;
; v1.11 ;
; Last edition: 03/02/2000 ;
;[]=======================================================================[]
; flex navigator equs
include fn_const.a80
include fn_macros.a80
;[]-----------------------------------------------------------------------[]
; org BASE_ADDR ;0x8000
; section .bss
;WorkBuffer: EQU 0x8000
;resb 0x400 ; work buffer for func/procs
;[]-----------------------------------------------------------------------[]
; ; org 0x8400
; section .bss
;PagesList: EQU 0x8400
;resb 0x100 ; buffer for memory pages
;[]-----------------------------------------------------------------------[]
; ; org 0x8500
; section .text
PHASE BASE_ADDR
START_BLOCK_1
;[]=======================================================================[]
; section .text
;EntryPoint:
JP StartPoint ; entry point
JP ClearScreen ; 8603->86BB
JP MakeWindow ; 8606->86F0
JP InvertRectan ; 8609->8DA0
JP PrnTxtLnIFF ; 860C->8FB0
JP PrnTxtLnNorm ; 860F->9024
JP PrnTxtLnNormC ; 8612->909B
JP PrnRangPathL ; 8615->8E48
JP PrnRangPathR ; 8618->8EB2
JP PrnRangPathC ; 861B->8F36
JP InputLine ; 861E->915F
JP InputLine.InpLnExtN ; 8621->9205
JP InputLine.InpLnExtC ; 8624->920F
JP DOSError ; 8627->86A8
JP InitScrollBar ; 862A->96EB
JP PrnHScrBar ; 862D->9729
JP PrnVScrBar ; 8630->9882
JP InitProcess ; 8633->99DA
JP PrnProcess ; 8636->9A39
JP InitScrollBar
DB JUMPS.JUMPSIZE * 4 DUP 0xC9
JP ResFire ; 8648->9B01
JP TestCoords ; 864B->9B10
JP SetCMOSPrint ; 864E->9EA9
JP ResCMOSPrint ; 8651->9EF3
JP SetClock ; 8654->A08E
JP SetMouse ; 8657->A0BB
DB JUMPS.JUMPSIZE * 4 DUP 0xC9
JP ConvNumTxt40 ; 8666->A1F7
JP MoveBytes ; 8669->A3B6
JP MoveBytesUp ; 866C->A3E3
JP Mult8 ; 866F->A0E8
JP Mult16X8 ; 8672->A124
JP Mult16 ; 8675->A110
JP Mult16X16 ; 8678->A124
JP Mult32 ; 867B->A149
JP Divis16X16 ; 867E->A16B
JP Divis24X16 ; 8681->A195
JP Divis32X16 ; 8684->A1B8
JP Divis32 ; 8687->A1CD
JP ConvNumTxt32 ; 868A->A236
JP ConvNumTxt16 ; 868D->A2AA
JP ConvNumTxt8 ; 8690->A2DE
JP ConvTxtNum32 ; 8693->A35D
JP ConvTxtNum16 ; 8696->A395
JP Resident ; 8699->A40B
DB 0xC0 - LOW ($) DUP 0xC9
;[]-----------------------------------------------------------------------[]
; flex navigator settings
NUM_DEVICES DB 0 ; Š®«-¢® ãáâனáâ¢
TreeFlag DB 0 ; ”« £ ¤¥à¥¢ 
CMOSFlag DB 0 ; ”« £ CMOS 0 - ­¥â
; 1 - ¥áâì
MouseFlag DB 1 ; ”« £ ¬ëè¨ 0 - ­¥â
; 1 - ¥áâì
CMOSPrint: DB 1
RAMPAGES
.FNPAGESID DB 0 ; ˆ­¤¥ä.¯ ¬ï⨠£¤¥ FN
.FNFUNCT DB 0 ; ‘âà ­¨æ  á äã­ªæ¨ï¬¨ FN
.FNVIEW DB 0 ; ‘âà ­¨æ  á FileViewer
.FNEDIT DB 0 ; ‘âà ­¨æ  á FileEditor
.FNHELP DB 0 ; ‘âà ­¨æ  FN HELP
.FNFONT DB 0 ; ‘âà ­¨æ  èà¨ä⮢
.BufferID DB 0 ; ˆ­¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ¡ãä¥à 
.FLX DB 0 ; ‘âà ­¨æ  ¤«ï ¯®¤£à㧪¨ FLX ¯à®á¬®âà. FLX ã⨫¨â
.LEFTPANEL DB 0 ; ‘âà ­¨æ  ª â «®£  ‹¥¢®© ¯ ­¥«¨
.RIGHTPANEL DB 0 ; ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨
; <20>ãä¥à­ë¥ áâà ­¨æë ¯®¤ ¨­â¥à䥩á
.BuffPg1 DB 0
DB 0
.BuffPg3 DB 0
DB 0
DB 0
DB LOW (-$) DUP 0
;UI palette & stack memory
;PALETTE: B G R
DB 0x00,0x00,0x00,0x00 ; Black 00 00
DB 0x00,0x00,0xFF,0x00 ; B.Red 01
DB 0x00,0x80,0x00,0x00 ; Green 02 08
DB 0x00,0xFF,0xFF,0x00 ; B.Yellow 03
DB 0x80,0x00,0x00,0x00 ; Blue 04 10
DB 0xFF,0xFF,0x00,0x00 ; Invert paper 05
DB 0x80,0x00,0x00,0x00 ; Invert ink 06 18
DB 0x80,0x80,0x80,0x00 ; BlackGray 07
DB 0xC0,0xC0,0xC0,0x00 ; HighGray 08 20
DB 0x80,0x00,0x00,0x00 ; Panel 09
DB 0xFF,0xFF,0x00,0x00 ; Files 0A 28
DB 0x00,0xFF,0xFF,0x00 ; Select Files 0B
DB 0x00,0xFF,0xFF,0x00 ; InvSel Files 0C 30
DB 0xC0,0xC0,0xC0,0x00 ; Reserved 0D
DB 0xFF,0xFF,0xFF,0x00 ; White 0E 38
DB 0xFF,0xFF,0xFF,0x00 ; White 0F
DOSError EX AF,AF'
GETPORT WINSP.CPU1
PUSH AF
LD A,(RAMPAGES.FNFUNCT)
SETPORT WINSP.CPU1,,0
EX AF,AF'
CALL DOSErrorR
EX AF,AF'
POP AF
SETPORT WINSP.CPU1,,0
EX AF,AF'
RET
include fnwin.a80
include fnprint.a80
include fninput.a80
include fnbar.a80
include fnmouse.a80
include fnsys.a80
;[]=======================================================================[]
;‘â àâ
StartPoint: DI
LD SP,STACK
ReStartPoint:
SETPORT BORDER,0
SETPORT WINSP.Y_PORT,0xC0
CALL InitVideoMode
CALL InitDrivers
CALL InitScreen
CALL ClearDOSline
SUB A
CALL InitPanels
CALL ResFire
MainLoop: LD IX,FilePanelLeft
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
JR Z,.L1
LD IX,FilePanelRight
.L1 CALL TestCoords
CALL TestKeys
CALL C,DOSline
LD A,(TreeFlag)
OR A
IF TREE_REZID
CALL NZ,RESIDENT.TestTree
ELSE
CALL NZ,TestTreeR
ENDIF
JR MainLoop
;[]-----------------------------------------------------------------------[]
TestKeys
SPDSS DSSF.TESTKEY
JR Z,KeyExit
RES 7,D
LD A,B
AND KEYBSTAT.M_ALT | KEYBSTAT.M_CTRL
CP KEYBSTAT.M_ALT | KEYBSTAT.M_CTRL
RET Z
LD IX,HOTKEYS.SHIFTKeys
LD A,B
AND KEYBSTAT.M_LEFTSHIFT | KEYBSTAT.M_RIGHTSHIFT
JR NZ,.L1
LD IX,HOTKEYS.CTRLKeys
BIT KEYBSTAT.B_CTRL,B
JR NZ,.L1
LD IX,HOTKEYS.ALTKeys
BIT KEYBSTAT.B_ALT,B
JR NZ,.L1
LD IX,HOTKEYS.ASCIIKeys
.L1 LD L,(IX+0x00) ; ᪠­ ª®¤
INC IX
INC L
SCF
RET Z
DEC L
LD H,(IX+0x00) ; ASCII ª®¤
INC IX
LD C,(IX+0x00) ; LOW  ¤à¥á ¢ë§®¢ 
INC IX
LD B,(IX+0x00) ; HIGH  ¤à¥á ¢ë§®¢ 
INC IX
OR A
SBC HL,DE
JR NZ,.L1
LD (KeyCALL),BC
SPDSS DSSF.SCANKEY
CALL 0x0000
KeyCALL EQU $-2
KeyExit XOR A
RET
;[]-----------------------------------------------------------------------[]
MouseOnOff LD A,(MouseFlag)
XOR 0x01
LD (MouseFlag),A
LD C,MOUSEF.INIT
JR NZ,.L1
LD C,MOUSEF.HIDE
.L1
SPMOUSE
RET
;[]-----------------------------------------------------------------------[]
ComExit CALL ResDrivers
CALL ResVideoMode
LD HL,thanks
SPDSS DSSF.PCHARS
LD A,(RAMPAGES.FNPAGESID)
SPDSS DSSF.FREEMEM
SPDSS DSSF.EXIT,0
thanks DZ "\r\nThank you for using Flex Navigator.\r\n"
; (ADR) + BCDE = BCDE
BCDEHLP: LD A,(HL)
INC HL
ADD A,E
LD E,A
LD A,(HL)
INC HL
ADC A,D
LD D,A
LD A,(HL)
INC HL
ADC A,C
LD C,A
LD A,(HL)
ADC A,B
LD B,A
RET
GET_DWORD: LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD C,(HL)
INC HL
LD B,(HL)
RET
SET_DWORD: LD (HL),E
INC HL
LD (HL),D
INC HL
LD (HL),C
INC HL
LD (HL),B
RET
;[]=======================================================================[]
; discription of flex navigator file panels
LeftPanel: DB 0x80 ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®áâ¨
; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨
DB 0x00 ; ”« £ ¢¨¤  ¯ ­¥«¨ 0 - ªà âª ï ¯ ­¥«ì
; ¡¨â 0 - ¯®¤à®¡­ ï ¯ ­¥«ì
; ¡¨â 1 - ¤¥à¥¢®
; ¡¨â 2 - 㦠⮥ ¤¥à¥¢®
DB 0x01 ; ‚¨¤ á®àâ¨à®¢ª¨
; ¡¨â 0 - ¯® ¨¬¥­¨
; ¡¨â 1 - ¯® à áè¨à¥­¨î
; ¡¨â 2 - ¯® à §¬¥àã
; ¡¨â 3 - ¯® ¤ â¥
; ¡¨â 4 - execute file
; ¡¨â 5 - file mask
DW 4 ; X ¯®§¨æ¨ï ¯ ­¥«¨
DW 0 ; X ¯®§¨æ¨ï áªà®«¡ à 
DW 0 ; Y ¯®§¨æ¨ï áªà®«¡ à 
DW 0 ; Max ¤«¨­  áªà®«¡ à 
DW 0 ; ⥪.¤«¨­  áªà®«¡ à 
DW 0 ; €¤à¥á ï祩ª¨ BarLeft
DW 0 ; €¤à¥á ï祩ª¨ BarRight
DW 0 ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥
DW 0 ; ޡ饥 ª®«-¢® ä ©«®¢
DW 0 ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥
DW 0 ; T¥ªã騩 ä ©« ­  áâà ­¨æ¥
DW 0 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ä ©«®¢
DD 0 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢
DB 0
DB "*.*" ; Ma᪠ ¤«ï ä ©«®¢
DB 0x0A DUP 0
DB 0x100 DUP 0 ; <20>ãâì ª ⥪ã饩 ¤¨à¥ªâ®à¨¨
RightPanel: DB 0x01 ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®áâ¨
; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨
DB 0x00 ; ”« £ ¢¨¤  ¯ ­¥«¨ 0 - ªà âª ï ¯ ­¥«ì
; ¡¨â 0 - ¯®¤à®¡­ ï ¯ ­¥«ì
; ¡¨â 1 - ¤¥à¥¢®
; ¡¨â 2 - 㦠⮥ ¤¥à¥¢®
DB 0x01 ; ‚¨¤ á®àâ¨à®¢ª¨
; ¡¨â 0 - ¯® ¨¬¥­¨
; ¡¨â 1 - ¯® à áè¨à¥­¨î
; ¡¨â 2 - ¯® à §¬¥àã
; ¡¨â 3 - ¯® ¤ â¥
; ¡¨â 4 - execute file
; ¡¨â 5 - file mask
DW 324 ; X ¯®§¨æ¨ï ¯ ­¥«¨
DW 0 ; X ¯®§¨æ¨ï áªà®«¡ à 
DW 0 ; Y ¯®§¨æ¨ï áªà®«¡ à 
DW 0 ; Max ¤«¨­  áªà®«¡ à 
DW 0 ; ⥪.¤«¨­  áªà®«¡ à 
DW 0 ; €¤à¥á ï祩ª¨ BarLeft
DW 0 ; €¤à¥á ï祩ª¨ BarRight
DW 0 ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥
DW 0 ; ޡ饥 ª®«-¢® ä ©«®¢
DW 0 ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥
DW 0 ; T¥ªã騩 ä ©« ­  áâà ­¨æ¥
DW 0 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ä ©«®¢
DD 0 ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢
DB 0
DB "*.*" ; Ma᪠ ¤«ï ä ©«®¢
DB 0x0A DUP 0
DB 0x100 DUP 0 ; <20>ãâì ª ⥪ã饩 ¤¨à¥ªâ®à¨¨
;[]=======================================================================[]
START_SORT
include fnsort.a80
END_SORT
IF TREE_REZID = 0
START_TREE
include fntree.a80
END_TREE
ENDIF
include fnpanel.a80
include fndos.a80
include fnwork.a80
; ¢ë§®¢ ä㭪樨 ¢ áâà ­¨æ å
RESIDENT
;[]----------------------------------------------------------[]
.CopyFiles: LD DE,CopyFilesR
; resident 2
.FunctResident: LD A,(RAMPAGES.FNFUNCT)
LD C,WINSP.CPU1
JP Resident
;[]----------------------------------------------------------[]
.ReName: LD DE,ReNameR
jr .FunctResident
;[]----------------------------------------------------------[]
.MakeDIR: LD DE,MakeDIRR
jr .FunctResident
;[]----------------------------------------------------------[]
.DeleteFiles: LD DE,DeleteFilesR
jr .FunctResident
;[]----------------------------------------------------------[]
.Quit: CALL ResInvert
.QuitL1 LD DE,QuitConfirmWin
CALL .FunctResident
JP C,SetInvert
LD HL,ComExit
EX (SP),HL
RET
;[]==========================================================[]
.Setup: LD DE,SetupR
jr .FunctResident
;[]----------------------------------------------------------[]
.FileInfo: CALL ResInvert
.FileInfoL2 LD HL,SetInvert
PUSH HL
LD DE,FileInfoR
jr .FunctResident
;[]----------------------------------------------------------[]
.PrintFile: CALL ResInvert
.PrintFileL3 LD HL,SetInvert
PUSH HL
LD DE,PrintFileR
jr .FunctResident
;[]----------------------------------------------------------[]
.DiskInfo: CALL ResInvert
.DiskInfoL4: LD DE,DiskInfoR
jr .FunctResident
;[]----------------------------------------------------------[]
.SystemInfo: LD DE,SystemInfoR
jr .FunctResident
;[]----------------------------------------------------------[]
.Version: LD DE,VersionR
jr .FunctResident
;[]----------------------------------------------------------[]
.QSearch: LD DE,QSearchR
jr .FunctResident
IF TREE_REZID
.TestTree LD DE,TestTreeR
jr .FunctResident
.TestTreeBeg LD DE,TestTreeR.TestTreeBeg
jr .FunctResident
.ReadTree LD DE,ReadTreeR
jr .FunctResident
.MakeTreePath LD DE,MakeTreePathR
jr .FunctResident
.FindTreeDIR LD DE,FindTreeDIRR
jr .FunctResident
ENDIF
;[]==========================================================[]
.MarkFile: LD DE,MarkFileR
; resident 3
.HelpResident: LD A,(RAMPAGES.FNHELP)
LD C,WINSP.CPU1
JP Resident
IF MARK_DIR
.GetDirSize: LD DE,GetDirSizeR
JR .HelpResident
ENDIF
.UnMarkGroup: LD DE,UnMarkGroupR
jr .HelpResident
.UnMarkGroupN: LD DE,UnMarkGroupRN
jr .HelpResident
.MarkGroup: LD DE,MarkGroupR
jr .HelpResident
.MarkGroupN: LD DE,MarkGroupRN
jr .HelpResident
.SelectAll: LD DE,SelectAllR
jr .HelpResident
.SelectAllN: LD DE,SelectAllRN
jr .HelpResident
.UnSelectAll: LD DE,UnSelectAllR
jr .HelpResident
.UnSelectAllN: LD DE,UnSelectAllRN
jr .HelpResident
.InvertSelect: LD DE,InvertSelectR
jr .HelpResident
.InvertSelectN: LD DE,InvertSelectRN
jr .HelpResident
include fnmenu.a80
include fninit.a80
include fndosline.a80
include fntab.a80
END_BLOCK_1:
DEPHASE ; BASE_ADDR
;[]=======================================================================[]
PHASE 0x4000
; section .text
START_BLOCK_2
FlexDIRECTORY: DB 0x100 DUP 0
include rez2_fnfunct.a80
include rez2_fnmisc.a80
include rez2_fnsearch.a80
include rez2_fnconfig.a80
include rez2_fnerror.a80
include rez2_fntab1.a80
IF TREE_REZID
include fntree.a80
ENDIF
END_BLOCK_2:
DEPHASE ; 0x4000
START_BLOCK_EDITOR
PHASE 0xC000
include plugins/fnviewer/fviewer.a80
DEPHASE ; 0xC000
END_BLOCK_EDITOR
START_BLOCK_VIEWER
PHASE 0xC000
include plugins/fneditor/feditor.a80
DEPHASE ; 0xC000
END_BLOCK_VIEWER
;[]-----------------------------------------------------------------------[]
PHASE 0x4000
; section .text
START_BLOCK_3
DOShistory: DB DOShistory_Size DUP 0 ;times 0x200 db 0
fn_ext: DB WorkBuffer_Size DUP 0 ;times 0x400 db 0
fnview_ext: DB WorkBuffer_Size DUP 0 ;times 0x400 db 0
fnedit_ext: DB WorkBuffer_Size DUP 0 ;times 0x400 db 0
include rez3_fnnext.a80
include rez3_fnmark.a80
WINSP_CPU EQU WINSP.CPU3 ; ®ª­® ¯à®¥æ¨à®¢ ­¨ï
WINSP_ADR EQU 0xC000 ;  ¤à¥á ®ª­ 
include plugins/help/help.a80
HelpText: include plugins/help/help_t.a80
HelpTextEnd:
END_BLOCK_3:
DEPHASE ; 0x4000
;[]=======================================================================[]
PHASE 0xC000
; section .data
START_BLOCK_4
FONT_RAW_PACK binclude tmp/font_raw.pack
IFFFONT_RAW_PACK binclude tmp/iff_font_raw.pack
IFFFONT_RAW_END
END_BLOCK_4:
DEPHASE ; 0xC000
; ç¨áâ® ¤«ï ®â« ¤ª¨
BLOCK1_SIZE EQU END_BLOCK_1 - START_BLOCK_1
BLOCK2_SIZE EQU END_BLOCK_2 - START_BLOCK_2
BLOCK3_SIZE EQU END_BLOCK_3 - START_BLOCK_3
EDITOR_SIZE EQU END_BLOCK_EDITOR - START_BLOCK_EDITOR
VIEWER_SIZE EQU END_BLOCK_VIEWER - START_BLOCK_VIEWER
SORT_SIZE EQU END_SORT - START_SORT
TREE_SIZE EQU END_TREE - START_TREE

1232
fnmenu.a80 Normal file

File diff suppressed because it is too large Load Diff

498
fnmouse.a80 Normal file
View File

@ -0,0 +1,498 @@
; LAST UPDATE: 20.04.2025 savelij
;[]----------------------------------------------------------[]
ResFire: LD A,(MouseFlag)
OR A
RET Z
RsFire1 CALL TestCMOS
SPMOUSE MOUSEF.READ_STATE
OR A
RET Z
JR RsFire1
;[]----------------------------------------------------------[]
; <20>஢¥àª  ª®®à¤¨­ â ¬ëè¨ ¯® â ¡«¨æ¥
; <20>  ¢å®¤:
; IX - €¤à¥á â ¡«¨æë
TestCoords: CALL TestCMOS
SPMOUSE MOUSEF.READ_STATE
EX AF,AF'
LD BC,0x0000
.PrvTabl EQU $-2
LD A,IXL
CP C
JR NZ,.L2
LD A,IXH
CP B
JR Z,.L3
.L2 LD (.PrvTabl),IX
CALL ResMInvert
LD BC,ResFire
PUSH BC
SUB A
LD (RunFlag),A
JR .L4
.L3 LD A,0x01
LD (RunFlag),A
EX AF,AF'
OR A
JR NZ,.L4
PUSH HL
LD BC,0x0000
.PrMousX EQU $-2
OR A
SBC HL,BC
POP HL
JR NZ,.L4
EX DE,HL
PUSH HL
LD BC,0x0000
.PrMousY EQU $-2
OR A
SBC HL,BC
POP HL
EX DE,HL
RET Z
.L4 LD (.PrMousX),HL
LD (.PrMousY),DE
CoordLp LD C,(IX+FORMTABL.XMINL) ; 00
LD B,(IX+FORMTABL.XMINH) ; 01
OR A
SBC HL,BC
ADD HL,BC
JP C,NxtCrds
LD C,(IX+FORMTABL.XMAXL) ; 02
LD B,(IX+FORMTABL.XMAXH) ; 03
SBC HL,BC
ADD HL,BC
JP NC,NxtCrds
LD C,(IX+FORMTABL.YMINL) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05
OR A
EX DE,HL
SBC HL,BC
ADD HL,BC
EX DE,HL
JP C,NxtCrds
LD C,(IX+FORMTABL.YMAXL) ; 06
LD B,(IX+FORMTABL.YMAXH) ; 07
EX DE,HL
SBC HL,BC
ADD HL,BC
EX DE,HL
JP NC,NxtCrds
LD C,A
LD A,(MouseFlag)
OR A
LD A,C
JR Z,CoordL1
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08
CALL NZ,SetSelect1
CoordL1 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAGL) ; 08
CALL NZ,SetSelect2
LD C,0x00
RunFlag EQU $-1
DEC C
JP NZ,NxtCrds1
LD C,A
LD A,(MouseFlag)
OR A
RET Z
LD A,C
OR A ; ­¥â ®£­ï
JR Z,Execute1
BIT 0,A
JR Z,Execute2
BIT FORMTABL.B_BUTTON,(IX+FORMTABL.FLAGL) ; 08
CALL NZ,PushButton
CCF
RET NC
OR A
BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAGL) ; 08 ; à ¡®ç ï ª­®¯ª 
RET NZ
LD C,(IX+FORMTABL.FIRELEFTL) ; 0C ; § ¯ã᪠¯® «¥¢®© ª­®¯ª¥
LD B,(IX+FORMTABL.FIRELEFTH) ; 0D
LD A,B
OR C
JP Z,NxtCrds1
BIT FORMTABL.B_EXECNORETLMB,(IX+FORMTABL.FLAGL) ; 08 ; § ¯ã᪠¡¥§ ¢®§¢à â 
JR Z,.L1
POP AF
.L1 PUSH BC
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08
CALL NZ,ResSelect1
CALL ResSelect2
OR A
BIT FORMTABL.B_CLOSEWIN,(IX+FORMTABL.FLAGH) ; 09
RET Z
WINDOWCLOSE
RET
Execute1 LD C,(IX+FORMTABL.FIRENOL) ; 0A ; § ¯ã᪠¡¥§ ®£­ï
LD B,(IX+FORMTABL.FIRENOH) ; 0B
LD A,B
OR C
JR Z,NxtCrds1
BIT FORMTABL.B_EXECONLY,(IX+FORMTABL.FLAGL) ; 08 ; § ¯ã᪠¡¥§ ¢®§¢à â 
JR Z,.L1
POP AF
.L1 PUSH BC
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08
CALL NZ,ResSelect1
CALL ResSelect2
OR A
BIT FORMTABL.B_EXECNOPRESS,(IX+FORMTABL.FLAGL) ; 08
RET Z
WINDOWCLOSE
RET
Execute2 LD C,(IX+FORMTABL.FIRERIGHTL) ; 0E ; § ¯ã᪠¯® ¯à ¢®© ª­®¯ª¥
LD B,(IX+FORMTABL.FIRERIGHTH) ; 0F
LD A,B
OR C
JR Z,NxtCrds1
BIT FORMTABL.B_EXECNORETRMB,(IX+FORMTABL.FLAGL) ; 08 ; § ¯ã᪠¡¥§ ¢®§¢à â 
JR Z,.L1
POP AF
.L1 PUSH BC
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08
CALL NZ,ResSelect1
CALL ResSelect2
OR A
BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAGH) ; 09
RET Z
WINDOWCLOSE
RET
NxtCrds LD C,A
LD A,(MouseFlag)
OR A
LD A,C
JR Z,NxtCrds0
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08
CALL NZ,ResSelect1
NxtCrds0 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAGL) ; 08
CALL NZ,SetSelect2
NxtCrds1 LD BC,FORMTABL.SIZE;0x0010
ADD IX,BC
BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) ; ª®­¥æ â ¡«¨æë?
JP Z,CoordLp
OR A
RET
ResMInvert PUSH IX
PUSH HL
PUSH DE
PUSH AF
LD BC,FORMTABL.SIZE;0x0010
ResCrds RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09
RES 6,(IX+FORMTABL.FLAGH) ; 09
ADD IX,BC
BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH)
JR Z,ResCrds
POP AF
POP DE
POP HL
POP IX
RET
SetSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09
RET NZ
SET FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09
PUSH AF
PUSH HL
PUSH DE
PUSH IX
LD L,(IX+FORMTABL.XMINL) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01
LD C,(IX+FORMTABL.YMINL) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02
SUB (IX+FORMTABL.XMINL) ; 00
EX AF,AF'
LD A,(IX+FORMTABL.YMAXL) ; 06
SUB (IX+FORMTABL.YMINL) ; 04
LD IXH,A
EX AF,AF'
SRL A
LD IXL,A
LD DE,(COLORP.HIGHGRAY + COLORI.BLACK) << 8 | (COLORP.BLUE + COLORI.WHITE);0x804F
CALL InvertRectan
POP IX
PUSH IX
NxCrds1 LD BC,FORMTABL.SIZE;0x0010
ADD IX,BC
BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) ; 01 ; ¯à®¢¥àª  ª®­æ  â ¡«¨æë?
JR NZ,NxCrds2
BIT FORMTABL.B_INV1,(IX+FORMTABL.FLAGL) ; 08
CALL NZ,ResSelect1
JR NxCrds1
NxCrds2 POP IX
POP DE
POP HL
POP AF
RET
ResSelect1 BIT FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09
RET Z
RES FORMTABL.B_FIRENOINV,(IX+FORMTABL.FLAGH) ; 09
PUSH IX
PUSH HL
PUSH DE
LD L,(IX+FORMTABL.XMINL) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01
LD C,(IX+FORMTABL.YMINL) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02
SUB (IX+FORMTABL.XMINL) ; 00
EX AF,AF'
LD A,(IX+FORMTABL.YMAXL) ; 06
SUB (IX+FORMTABL.YMINL) ; 04
LD IXH,A
EX AF,AF'
SRL A
LD IXL,A
LD DE,(COLORP.BLUE + COLORI.WHITE) << 8 | (COLORP.HIGHGRAY + COLORI.BLACK);0x4F80
CALL InvertRectan
POP DE
POP HL
POP IX
RET
SetSelect2 BIT 6,(IX+FORMTABL.FLAGH) ; 09
RET NZ
SET 6,(IX+FORMTABL.FLAGH) ; 09
PUSH IX
PUSH HL
PUSH DE
PUSH AF
LD L,(IX+FORMTABL.XMINL) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01
LD C,(IX+FORMTABL.YMINL) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02
SUB (IX+FORMTABL.XMINL) ; 00
EX AF,AF'
LD A,(IX+FORMTABL.YMAXL) ; 06
SUB (IX+FORMTABL.YMINL) ; 04
LD IXH,A
EX AF,AF'
SRL A
LD IXL,A
LD DE,(COLORP.HIGHGRAY + COLORI.BLACK) << 8 | (COLORP.BLUE + COLORI.WHITE);0x804F
CALL InvertRectan
POP AF
POP DE
POP HL
POP IX
RET
ResSelect2 PUSH HL
PUSH DE
PUSH IX
LD IX,(TestCoords.PrvTabl)
LD BC,FORMTABL.SIZE;0x0010
NxCrds3 BIT FORMTABL.B_STATICINV,(IX+FORMTABL.FLAGL) ; 08
JR NZ,ResSel22
ADD IX,BC
BIT FORMTABL.B_ENDTABL,(IX+FORMTABL.XMINH) ; 01 ; ¯à®¢¥àª  ª®­æ  â ¡«¨æë?
JR NZ,ResSel2E
JR NxCrds3
ResSel22 BIT 6,(IX+FORMTABL.FLAGH) ; 09
JR Z,ResSel2E
RES 6,(IX+FORMTABL.FLAGH) ; 09
LD L,(IX+FORMTABL.XMINL) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01
LD C,(IX+FORMTABL.YMINL) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02
SUB (IX+FORMTABL.XMINL) ; 00
EX AF,AF'
LD A,(IX+FORMTABL.YMAXL) ; 06
SUB (IX+FORMTABL.YMINL) ; 04
LD IXH,A
EX AF,AF'
SRL A
LD IXL,A
LD DE,(COLORP.BLUE + COLORI.WHITE) << 8 | (COLORP.HIGHGRAY + COLORI.BLACK);0x4F80
CALL InvertRectan
ResSel2E POP IX
POP DE
POP HL
RET
PushButton PUSH HL
PUSH DE
LD L,(IX+FORMTABL.XMINL) ; 00
LD H,(IX+FORMTABL.XMINH) ; 01
LD E,(IX+FORMTABL.YMINL) ; 04
LD D,(IX+FORMTABL.YMINH) ; 05
LD A,(IX+FORMTABL.XMAXL) ; 02
SUB (IX+FORMTABL.XMINL) ; 00
LD C,A
LD A,(IX+FORMTABL.YMAXL) ; 06
SUB (IX+FORMTABL.YMINL) ; 04
LD B,A
PUSH HL
PUSH DE
PUSH BC
CALL PutPushBut
LD A,0x0A
LD (PausePh+1),A
PushLp PUSH IX
CALL TestRun
POP IX
PushLp1
SPMOUSE MOUSEF.READ_STATE
OR A
JR Z,PushButtEx
BIT 0,A
JR Z,PushButtEx
LD C,(IX+FORMTABL.XMINL) ; 00
LD B,(IX+FORMTABL.XMINH) ; 01
OR A
SBC HL,BC
ADD HL,BC
JR C,PushButtEx
LD C,(IX+FORMTABL.XMAXL) ; 02
LD B,(IX+FORMTABL.XMAXH) ; 03
SBC HL,BC
ADD HL,BC
CCF
JR C,PushButtEx
EX DE,HL
LD C,(IX+FORMTABL.YMINL) ; 04
LD B,(IX+FORMTABL.YMINH) ; 05
OR A
SBC HL,BC
ADD HL,BC
JR C,PushButtEx
LD C,(IX+FORMTABL.YMAXL) ; 06
LD B,(IX+FORMTABL.YMAXH) ; 07
SBC HL,BC
CCF
JR C,PushButtEx
PausePh LD A,0x00
OR A
JR Z,PushLp
DEC A
LD (PausePh+1),A
HALT
JR PushLp1
PushButtEx POP BC
POP DE
POP HL
PUSH AF
CALL PutPopBut
POP AF
POP DE
POP HL
RET
TestRun BIT FORMTABL.B_WORKBUTTON,(IX+FORMTABL.FLAGL) ; 08
RET Z
LD C,(IX+FORMTABL.FIRELEFTL) ; 0C
LD B,(IX+FORMTABL.FIRELEFTH) ; 0D
PUSH BC
RET
PutPushBut LD A,COLORP.WHITE | COLORI.BLACKGRAY;0xF7
JR PutButt
PutPopBut LD A,COLORP.BLACKGRAY | COLORI.WHITE;0x7F
PutButt PUSH IY
EX AF,AF'
GETPORT WINSP.CPU1
PUSH AF
SETPORT WINSP.CPU1,0x50
GETPORT WINSP.Y_PORT
PUSH AF
SRL H
RR L
SET 6,H
LD IYL,E
SRL C
DEC C
DEC C
LD A,C
LD (ButLen3),A
LD A,B
SUB 0x02
LD (ButLen1),A
LD (ButLen2),A
ADD A,IYL
INC A
LD IYH,A
EX AF,AF'
PUSH AF
AND 0xF0
LD E,A
RRCA
RRCA
RRCA
RRCA
OR E
LD D,A
POP AF
AND 0x0F
LD E,A
RLCA
RLCA
RLCA
RLCA
OR E
LD E,A
DI
LD A,IYL
SETPORT WINSP.Y_PORT,,0
LD (HL),E
INC A
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.SET_BUFFER
LD A,0x00
ButLen1 EQU $-1
ACCEL ACCELCMD.FILL_VERT
LD (HL),E
ACCEL ACCELCMD.OFF
LD (HL),E
INC HL
ACCEL ACCELCMD.SET_BUFFER
LD A,0x00
ButLen3 EQU $-1
ACCEL ACCELCMD.OFF
LD A,IYL
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL
LD (HL),E
ACCEL ACCELCMD.OFF
LD A,IYH
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL
LD (HL),D
ACCEL ACCELCMD.OFF
LD B,0x00
ADD HL,BC
LD A,IYL
SETPORT WINSP.Y_PORT,,0
LD (HL),D
INC A
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.SET_BUFFER
LD A,0x00
ButLen2 EQU $-1
ACCEL ACCELCMD.FILL_VERT
LD (HL),D
ACCEL ACCELCMD.OFF
LD (HL),D
EI
POP AF
SETPORT WINSP.Y_PORT,,0
POP AF
SETPORT WINSP.CPU1,,0
POP IY
RET

1239
fnpanel.a80 Normal file

File diff suppressed because it is too large Load Diff

620
fnprint.a80 Normal file
View File

@ -0,0 +1,620 @@
; LAST UPDATE: 20.02.2025 savelij
;[]----------------------------------------------------------[]
; <20>à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ 640x256
; á ®¡à¥§ ­¨¥¬ «¥¢®£® ªà ï ⥪áâ 
; <20>  ¢å®¤:
; IX - Š®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨
; HL -  ¤à¥á ⥪á⮢®© áâப¨
; DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
; BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
; A - 梥⠯¥ç â¨ (7-4¡¨â PAPER, 3-0¡¨â INK)
; (ª®­¥æ áâப¨ - 0)
PrnRangPathL PUSH DE
PUSH BC
PUSH AF
DI
GETPORT WINSP.CPU0
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
LD BC,0x0000
LD D,HIGH (FONT_RAW)-0xC0
PUSH HL
LD A,(HL)
PrRangL INC HL
LD E,A
LD A,(DE)
ADD A,A
ADD A,C
LD C,A
LD A,B
ADC A,0x00
LD B,A
LD A,(HL)
OR A
JR NZ,PrRangL
PUSH IX
POP HL
SBC HL,BC
LD C,L
LD B,H
POP HL
JR NC,PrRngLE
LD A,C
SUB 0x1A
LD IXL,A
LD A,B
SBC A,0x00
LD IXH,A
LD A,(HL)
EX AF,AF'
INC HL
INC HL
PrRngL0 LD BC,0x0000
INC HL
LD A,(HL)
PrRngL1 INC HL
LD E,A
LD A,(DE)
ADD A,A
ADD A,C
LD C,A
LD A,B
ADC A,0x00
LD B,A
LD A,(HL)
CP 0x5C
JR NZ,PrRngL1
ADD IX,BC
JR NC,PrRngL0
DEC HL
LD (HL),'.'
DEC HL
LD (HL),'.'
DEC HL
LD (HL),'\\'
DEC HL
LD (HL),':'
DEC HL
EX AF,AF'
LD (HL),A
PrRngLE POP AF
SETPORT WINSP.CPU0,,0
EI
POP AF
POP BC
POP DE
JP PrnTxtLnIFF
;[]----------------------------------------------------------[]
; <20>à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ 640x256
; á ®¡à¥§ ­¨¥¬ «¥¢®£® ªà ï ⥪áâ 
; <20>  ¢å®¤:
; IX - Š®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨
; HL -  ¤à¥á ⥪á⮢®© áâப¨
; DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
; BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
; A - 梥⠯¥ç â¨ (7-4¡¨â PAPER, 3-0¡¨â INK)
; (ª®­¥æ áâப¨ - 0)
PrnRangPathR PUSH AF
PUSH BC
PUSH DE
DI
GETPORT WINSP.CPU0
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
LD BC,0x0000
LD D,HIGH (FONT_RAW)-0xC0
PUSH HL
LD A,(HL)
PrRangR INC HL
LD E,A
LD A,(DE)
ADD A,A
ADD A,C
LD C,A
LD A,B
ADC A,0x00
LD B,A
LD A,(HL)
OR A
JR NZ,PrRangR
PUSH IX
POP HL
SBC HL,BC
EX DE,HL
POP HL
JR NC,PrRngRE
LD A,E
SUB 0x1A
LD IXL,A
LD A,D
SBC A,0x00
LD IXH,A
LD D,HIGH (FONT_RAW)-0xC0
LD A,(HL)
EX AF,AF'
INC HL
INC HL
PrRngR0 LD BC,0x0000
INC HL
LD A,(HL)
PrRngR1 INC HL
LD E,A
LD A,(DE)
ADD A,A
ADD A,C
LD C,A
LD A,B
ADC A,0x00
LD B,A
LD A,(HL)
CP 0x5C
JR NZ,PrRngR1
ADD IX,BC
JR NC,PrRngR0
DEC HL
LD (HL),'.'
DEC HL
LD (HL),'.'
DEC HL
LD (HL),'\\'
DEC HL
LD (HL),':'
DEC HL
EX AF,AF'
LD (HL),A
LD BC,0x0000
PUSH HL
LD A,(HL)
PrRngR2 INC HL
LD E,A
LD A,(DE)
ADD A,A
ADD A,C
LD C,A
LD A,B
ADC A,0x00
LD B,A
LD A,(HL)
OR A
JR NZ,PrRngR2
POP HL
PrRngRE POP AF
SETPORT WINSP.CPU0,,0
EI
POP DE
EX DE,HL
OR A
SBC HL,BC
EX DE,HL
POP BC
POP AF
JP PrnTxtLnIFF
;[]----------------------------------------------------------[]
; <20>à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ 640x256
; á ®¡à¥§ ­¨¥¬ «¥¢®£® ªà ï ⥪áâ 
; <20>  ¢å®¤:
; IX - Š®«-¢® ¯¨ªá¥«¥© ¯®¤ ¢ë¢®¤ áâப¨
; HL -  ¤à¥á ⥪á⮢®© áâப¨
; DE - 業âà ¢ë¢®¤  ¯® X
; BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
; A - 梥⠯¥ç â¨ (7-4¡¨â PAPER, 3-0¡¨â INK)
; (ª®­¥æ áâப¨ - 0)
PrnRangPathC PUSH BC
PUSH AF
PUSH DE
DI
GETPORT WINSP.CPU0
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
PrnRangC LD BC,0x0000
LD D,HIGH (FONT_RAW)-0xC0
PUSH HL
LD A,(HL)
PrRangC INC HL
LD E,A
LD A,(DE)
ADD A,A
ADD A,C
LD C,A
LD A,B
ADC A,0x00
LD B,A
LD A,(HL)
OR A
JR NZ,PrRangC
PUSH IX
POP HL
SBC HL,BC
EX DE,HL
POP HL
JR NC,PrRngCE
PUSH IX
LD A,E
SUB 0x1A
LD IXL,A
LD A,D
SBC A,0x00
LD IXH,A
LD A,(HL)
EX AF,AF'
INC HL
INC HL
LD D,HIGH (FONT_RAW)-0xC0
PrRngC0 LD BC,0x0000
INC HL
LD A,(HL)
PrRngC1 INC HL
LD E,A
LD A,(DE)
ADD A,A
ADD A,C
LD C,A
LD A,B
ADC A,0x00
LD B,A
LD A,(HL)
CP 0x5C
JR NZ,PrRngC1
ADD IX,BC
JR NC,PrRngC0
DEC HL
LD (HL),'.'
DEC HL
LD (HL),'.'
DEC HL
LD (HL),'\\'
DEC HL
LD (HL),':'
DEC HL
EX AF,AF'
LD (HL),A
POP IX
JR PrnRangC
PrRngCE POP AF
SETPORT WINSP.CPU0,,0
EI
POP DE
EX DE,HL
SRL B
RR C
OR A
SBC HL,BC
EX DE,HL
POP AF
POP BC
JP PrnTxtLnIFF
;[]----------------------------------------------------------[]
; <20>à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ 640x256;
; ¢ ०¨¬¥ IFF èà¨äâ 
; <20>  ¢å®¤:
; HL -  ¤à¥á ⥪á⮢®© áâப¨
; DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
; BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
; A - 梥⠯¥ç â¨ (7-4¡¨â PAPER, 3-0¡¨â INK)
; (ª®­¥æ áâப¨ - 0)
PrnTxtLnIFF PUSH IY
LD IYL,C ; Y ª®®à¤¨­ â 
LD B,A
GETPORT WINSP.Y_PORT ; ‘®å࠭塞 Y ¯®àâ
PUSH AF
GETPORT WINSP.CPU1
LD IYH,A
DI
EXX
SPMOUSE MOUSEF.REFRESH
EXX
CALL InsPrintColor
PUSH DE ; X ª®®à¤¨­ â 
EXX
POP BC
SRL B
RR C
SET 6,B
LD HL,PrnPAPp ; PAPER ¡ãä¥à
LD DE,PrnINKp ; INK ¡ãä¥à
EXX
LD C,L ; €¤à¥á áâப¨
LD B,H
; ˆâ ª:
; BC - A¤à¥á áâப¨
; 'HL - ¡ãä¥à PAPER
; 'DE - ¡ãä¥à INK
; 'BC - X ª®®à¤¨­ â  ¯¥ç â¨ ¢ ¢¨¤¥® އ“
; LY - Y ª®®à¤¨­ â  ¯¥ç â¨
GETPORT WINSP.CPU0
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
ACCEL ACCELCMD.SET_BUFFER
LD A,0x08
ACCEL ACCELCMD.OFF
LD A,(BC)
INC BC
OR A
JR Z,PrnIFFe
PrnIFFloop LD L,A
LD H,HIGH (FONT_RAW)-0xC0
PUSH BC
LD B,(HL) ; ¤«¨­  ᨬ¢®« 
INC H
LD E,(HL)
INC H
LD D,(HL)
LD HL,0x0008
EX DE,HL
SETPORT WINSP.CPU1,0x50
PrnIFFlp1
ACCEL ACCELCMD.COPY
LD A,(HL)
ACCEL ACCELCMD.OFF
EXX
LD A,IYL
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY
OR (HL)
EX DE,HL
XOR (HL)
ACCEL ACCELCMD.COPY_VERT
LD (BC),A
ACCEL ACCELCMD.OFF
EX DE,HL
INC BC
EXX
ADD HL,DE
DJNZ PrnIFFlp1
POP BC
LD A,IYH
SETPORT WINSP.CPU1,,0
LD A,(BC)
INC BC
OR A
JR NZ,PrnIFFloop
PrnIFFe LD L,C ; €¤à¥á áâப¨
LD H,B
POP AF
SETPORT WINSP.CPU0,,0
EI
POP AF
SETPORT WINSP.Y_PORT,,0
POP IY
RET
;[]----------------------------------------------------------[]
; <20>à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ 640x256;
; <20>  ¢å®¤:
; HL -  ¤à¥á ⥪á⮢®© áâப¨
; DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
; BC - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
; A - 梥⠯¥ç â¨ (7-4¡¨â PAPER, 3-0¡¨â INK)
; (ª®­¥æ áâப¨ - 0)
PrnTxtLnNorm PUSH IY
LD IYL,C ; Y ª®®à¤¨­ â 
LD B,A
GETPORT WINSP.Y_PORT ; ‘®å࠭塞 Y ¯®àâ
PUSH AF
GETPORT WINSP.CPU1
LD IYH,A
DI
EXX
SPMOUSE MOUSEF.REFRESH
EXX
CALL InsPrintColor
PUSH DE ; X ª®®à¤¨­ â 
EXX
POP BC
SRL B
RR C
SET 6,B
LD HL,PrnPAPp ; PAPER ¡ãä¥à
LD DE,PrnINKp ; INK ¡ãä¥à
EXX
LD C,L ; €¤à¥á áâப¨
LD B,H
; ˆâ ª:
; BC - A¤à¥á áâப¨
; 'HL - ¡ãä¥à PAPER
; 'DE - ¡ãä¥à INK
; 'BC - X ª®®à¤¨­ â  ¯¥ç â¨ ¢ ¢¨¤¥® އ“
; LY - Y ª®®à¤¨­ â  ¯¥ç â¨
GETPORT WINSP.CPU0
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
ACCEL ACCELCMD.SET_BUFFER
LD A,0x08
ACCEL ACCELCMD.OFF
LD A,(BC)
INC BC
OR A
JR Z,PrnNORe
PrnNORloop LD L,A
LD H,HIGH (IFFFONT_RAW)-0xC0
PUSH BC
LD E,(HL)
INC H
LD A,(HL)
ADD A,HIGH (IFFFONT_RAW)-0xC0
LD D,A
LD HL,0x0008
EX DE,HL
SETPORT WINSP.CPU1,0x50
LD B,0x04
PrnNORlp1
ACCEL ACCELCMD.COPY
LD A,(HL)
ACCEL ACCELCMD.OFF
EXX
LD A,IYL
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY
OR (HL)
EX DE,HL
XOR (HL)
ACCEL ACCELCMD.COPY_VERT
LD (BC),A
ACCEL ACCELCMD.OFF
EX DE,HL
INC BC
EXX
ADD HL,DE
DJNZ PrnNORlp1
POP BC
LD A,IYH
SETPORT WINSP.CPU1,,0
LD A,(BC)
INC BC
OR A
JR NZ,PrnNORloop
PrnNORe LD L,C ; €¤à¥á áâப¨
LD H,B
POP AF
SETPORT WINSP.CPU0,,0
EI
POP AF
SETPORT WINSP.Y_PORT,,0
POP IY
RET
;[]----------------------------------------------------------[]
; <20>à®æ¥¤ãà  ¢ë¢®¤  ⥪á⮢ëå áâப ­  £à ä¨ç¥áª¨© íªà ­ 640x256;
; <20>  ¢å®¤:
; HL -  ¤à¥á ⥪á⮢®© áâப¨
; DE - ¯®§¨æ¨ï ¢ë¢®¤  ¯® X
; C - ¯®§¨æ¨ï ¢ë¢®¤  ¯® Y
; B - ª®«-¢® ¯¥ç â ¥¬ëå ᨬ¢®«®¢
; A - 梥⠯¥ç â¨ (7-4¡¨â PAPER, 3-0¡¨â INK)
; (ª®­¥æ áâப¨ - 0)
PrnTxtLnNormC PUSH IY
LD IYL,C ; Y ª®®à¤¨­ â 
LD IYH,B ; ª®«-¢® ᨬ¢
LD B,A
GETPORT WINSP.Y_PORT ; ‘®å࠭塞 Y ¯®àâ
PUSH AF
GETPORT WINSP.CPU1
PUSH AF
SETPORT WINSP.CPU1,0x50
DI
EXX
SPMOUSE MOUSEF.REFRESH
EXX
CALL InsPrintColor
PUSH DE ; X ª®®à¤¨­ â 
EXX
POP BC
SRL B
RR C
SET 6,B
LD HL,PrnPAPp ; PAPER ¡ãä¥à
LD DE,PrnINKp ; INK ¡ãä¥à
EXX
LD C,L ; €¤à¥á áâப¨
LD B,H
; ˆâ ª:
; BC - A¤à¥á áâப¨
; 'HL - ¡ãä¥à PAPER
; 'DE - ¡ãä¥à INK
; 'BC - X ª®®à¤¨­ â  ¯¥ç â¨ ¢ ¢¨¤¥® އ“
; LY - Y ª®®à¤¨­ â  ¯¥ç â¨
; IN A,(PAGE0)
GETPORT WINSP.CPU0
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
ACCEL ACCELCMD.SET_BUFFER
LD A,0x08
ACCEL ACCELCMD.OFF
PrnNORloopC LD A,(BC)
INC BC
LD L,A
LD H,HIGH (IFFFONT_RAW)-0xC0
PUSH BC
LD E,(HL)
INC H
LD A,(HL)
ADD A,HIGH (IFFFONT_RAW)-0xC0
LD D,A
LD HL,0x0008
EX DE,HL
LD B,0x04
PrnNORlp1c
ACCEL ACCELCMD.COPY
LD A,(HL)
ACCEL ACCELCMD.OFF
EXX
LD A,IYL
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY
OR (HL)
EX DE,HL
XOR (HL)
ACCEL ACCELCMD.COPY_VERT
LD (BC),A
ACCEL ACCELCMD.OFF
EX DE,HL
INC BC
EXX
ADD HL,DE
DJNZ PrnNORlp1c
POP BC
DEC IYH
JR NZ,PrnNORloopC
POP AF
SETPORT WINSP.CPU0,,0
EI
POP AF
SETPORT WINSP.CPU1,,0
POP AF
SETPORT WINSP.Y_PORT,,0
POP IY
RET
InsPrintColor LD A,B
CP 0x00
.PrvCOLp EQU $-1
RET Z
LD (.PrvCOLp),A
AND 0x0F ; INK
LD C,A
RLCA
RLCA
RLCA
RLCA
OR C
EXX
LD HL,PrnINKp ; INK ¡ãä¥à
CPL
REPT 7
LD (HL),A
INC HL
ENDM
LD (HL),A
EXX
LD A,B
AND 0xF0 ; PAPER
LD B,A
RRCA
RRCA
RRCA
RRCA
OR B
EXX
LD DE,PrnPAPp ; PAPER ¡ãä¥à
XOR (HL) ; XOR á INK
REPT 7
LD (DE),A
INC DE
ENDM
LD (DE),A
EXX
RET
PrnINKp DB 8 DUP 0
PrnPAPp DB 8 DUP 0

690
fnsort.a80 Normal file
View File

@ -0,0 +1,690 @@
; LAST UPDATE: 28.05.2025 savelij
;[]----------------------------------------------------------[]
ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
IF TREE_REZID
JP NZ,RESIDENT.ReadTree
ELSE
JP NZ,ReadTreeR
ENDIF
GETPORT WINSP.CPU3
PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU3,,0
PUSH IY
POP HL
LD BC,PANEL.EFL
ADD HL,BC
LD B,PANEL.FILEMASK - PANEL.EFL
.L5 LD (HL),0
INC HL
DJNZ .L5
BIT SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG)
JR NZ,.L2
LD HL,NORMmask
.L2 LD DE,FILEmask
LD C,MASK_SIZE
LDIR
LD IX,0x0000
LD HL,CPU3
LD (AdrNxtFile),HL
LD B,0x08
SUB A
.L3 LD (HL),A
INC HL
DJNZ .L3
CALL FindFILES
LD E,IXL
LD D,IXH
LD HL,(AdrNxtFile)
LD B,0x08
SUB A
.L4 LD (HL),A
INC HL
DJNZ .L4
POP AF
SETPORT WINSP.CPU3,,0
LD (IY + PANEL.EFL),E ;EQUIP FIL
LD (IY + PANEL.EFH),D
LD A,(IY + PANEL.SORTFLAG)
AND SORTFLAG.MASK
JP NZ,SortDIR
RET
AdrNxtFile DEFW 0x0000
FileAtribut DB DIR.M_Archive + \
DIR.M_Dir + \
DIR.M_System + \
DIR.M_Hidden + \
DIR.M_ReadOnly
NORMmask DEFB "*.*"
DB MASK_SIZE - STRLEN("*.*") DUP 0
FILEmask DB MASK_SIZE DUP 0
FindFILES BIT SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG)
JR NZ,FindFILESm
LD HL,FILEmask
LD DE,WorkBuffer
LD A,(FileAtribut)
PUSH IY
PUSH IX
PUSH DE
SPDSS DSSF.F_FIRST,0
POP HL
POP IX
POP IY
RET C
FndFILE CALL InsFileInfo
RET C
LD DE,WorkBuffer
PUSH IY
PUSH IX
PUSH DE
SPDSS DSSF.F_NEXT
POP HL
POP IX
POP IY
JR NC,FndFILE
RET
FindFILESm LD HL,NORMmask
LD DE,WorkBuffer
LD A,(FileAtribut)
AND DIR.M_Archive + \
DIR.M_Dir + \
DIR.M_System + \
DIR.M_Hidden + \
DIR.M_ReadOnly
PUSH IY
PUSH IX
PUSH DE
SPDSS DSSF.F_FIRST,0
POP HL
POP IX
POP IY
RET C
FFILEm1 LD A,(WorkBuffer + FFIRST.Attr);+0x20)
AND DIR.M_Dir;0x10
CALL NZ,InsFileInfo
RET C
LD DE,WorkBuffer
PUSH IY
PUSH IX
PUSH DE
SPDSS DSSF.F_NEXT
POP HL
POP IX
POP IY
JR NC,FFILEm1
LD HL,FILEmask
LD DE,WorkBuffer
LD A,(FileAtribut)
AND DIR.M_Archive + \
DIR.M_System + \
DIR.M_Hidden + \
DIR.M_ReadOnly
PUSH IY
PUSH IX
PUSH DE
SPDSS DSSF.F_FIRST,0
POP HL
POP IX
POP IY
RET C
FFILEm2 CALL InsFileInfo
RET C
LD DE,WorkBuffer
PUSH IY
PUSH IX
PUSH DE
SPDSS DSSF.F_NEXT
POP HL
POP IX
POP IY
JR NC,FFILEm2
RET
InsFileInfo EX DE,HL
LD HL,(AdrNxtFile)
LD BC,FileHDR.SIZE
ADD HL,BC
SBC HL,BC
EX DE,HL
RET C
SUB A
LD (DE),A
INC DE
PUSH HL
LD BC,FFIRST.Attr;0x20
ADD HL,BC
LD B,(HL) ; FFIRST.Attr
INC HL
LD A,B
EX AF,AF'
LD A,(HL) ; FFIRST.Name
INC HL
LD C,(HL) ; FFIRST.Name + 1
DEC HL
; ¯à®¢¥àª  ­  ¯®¤¤¨à¥ªâ®à¨î
CP '.'
JR NZ,InsF1
LD A,' '
SUB C
JR NZ,InsF1
; ¯à®¯ã᪠¥á«¨ ¨¬ï "."
InsFext POP HL
OR A
RET
InsF1 BIT DIR.B_Dir,B ; ¤¨à¥ªâ®à¨ï ¨«¨ ä ©«?
JR NZ,InsF2
; íâ® ä ©«
OR A
BIT SORTFLAG.B_EXEC,(IY + PANEL.SORTFLAG)
CALL NZ,TestExe
JR C,InsFext
LD B,FileHDR.Name_Size
.L1 LD A,(HL)
CALL CorrBigChar
LD (DE),A
INC HL
INC DE
DJNZ .L1
LD A,0x01
LD (DE),A
INC DE
LD B,FileHDR.Ext_Size
.L2 LD A,(HL)
CALL CorrBigChar
LD (DE),A
INC HL
INC DE
DJNZ .L2
JR InsF3
; íâ® ¤¨à 
InsF2 LD BC,DIR.Name_Size
LDIR
LD A,0x01
LD (DE),A
INC DE
LD C,DIR.Ext_Size
LDIR
InsF3 SUB A
LD (DE),A
INC DE
EX AF,AF'
LD (DE),A ; DIR.Attr
INC DE
POP HL
PUSH HL
LD BC,DIR.FileSize
ADD HL,BC
LD C,DIR.FileSize_Size
LDIR
POP HL
PUSH HL
LD C,DIR.WrtDate
ADD HL,BC
LD A,(HL)
AND 0x1F ; —¨á«®
LD (DE),A
INC DE
LD C,(HL)
INC HL
LD B,(HL)
LD H,B
LD L,C
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD A,H
AND 0x0F ; Œ¥áïæ
LD (DE),A
INC DE
LD A,B
SRL A
ADD A,80
.L1 SUB 100
JR NC,.L1
ADD A,100 ; ƒ®¤
LD (DE),A
INC DE
POP HL
LD BC,DIR.WrtTime
ADD HL,BC
LD C,(HL)
INC HL
LD B,(HL)
LD A,B
AND 0xF8
RRA
RRA
RRA
LD (DE),A ; — áë
INC DE
LD H,B
LD L,C
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD A,H
AND 0x3F
LD (DE),A ; Œ¨­ãâë
INC DE
LD (AdrNxtFile),DE
INC IX
RET
TestExe PUSH HL
LD A,L
ADD A,8
LD L,A
JR NC,.L1
INC H
.L1 LD A,(HL)
INC HL
CP 'E'
JR NZ,TestExe1
LD A,(HL)
INC HL
CP 'X'
JR NZ,TestExe1
LD A,(HL)
CP 'E'
JR NZ,TestExe1
POP HL
OR A
RET
TestExe1 POP HL
PUSH HL
LD A,L
ADD A,8
LD L,A
JR NC,.L1
INC H
.L1 LD A,(HL)
INC HL
CP 'T'
JR NZ,TestExeC
LD A,(HL)
INC HL
CP 'R'
JR NZ,TestExeC
LD A,(HL)
CP 'D'
JR NZ,TestExeC
POP HL
OR A
RET
TestExeC POP HL
SCF
RET
; <20>à®æ¥¤ãà  ª®à४樨 ¡ãª¢ë ª ¬ «¥­ìª®© ¡ãª¢¥
CorrBigChar CP 'A'
RET C
CP 'Z' + 1
JR NC,CorrCh1
SET 5,A
RET
CorrCh1 CP 0x80
RET C
CP 0xA0
RET NC
ADD A,0x20
CP 0xB0
RET C
ADD A,0x30
RET
; <20>à®æ¥¤ãà  ª®à४樨 ¡ãª¢ë ª ¡®«ì让 ¡ãª¢¥
CorrSmallChar CP 'a'
RET C
CP 'z' + 1
JR NC,.CorrCh2
RES 5,A
RET
.CorrCh2 CP 0xA0
RET C
CP 0xB0
JR NC,.CorrCh3
SUB 0x20
RET
.CorrCh3 CP 0xE0
RET C
SUB 0x50
RET
;[]----------------------------------------------------------[]
SortDIR
GETPORT WINSP.CPU1
LD C,A
GETPORT WINSP.CPU3
LD B,A
PUSH BC
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD A,(RAMPAGES.BuffPg3)
SETPORT WINSP.CPU3,,0
LD HL,CPU3
LD (EndSort),HL
SUB A
LD (HL),A
INC HL
LD (HL),A
LD (BegSort),HL
LD A,(IY + PANEL.SORTFLAG)
RRA
LD HL,SortABC ; á®àâ¨à®¢ª  ¯® Name CTRL+F3
JR C,.SortBeg
RRA
LD HL,SortExt ; á®àâ¨à®¢ª  ¯® Extension CTRL+F4
JR C,.SortBeg
RRA
LD HL,SortData ; á®àâ¨à®¢ª  ¯® Date CTRL+F5
JR C,.SortBeg
LD HL,SortSize ; á®àâ¨à®¢ª  ¯® Size CTRL+F6
.SortBeg LD (.Scall1),HL
LD (.Scall2),HL
LD (.Scall3),HL
LD IX,CPU1 + 1
LD HL,CPU1 + 1
; ¯à®¢¥àª  çâ® ¢ ¯®¤¤¨à¥ªâ®à¨¨
BIT DIR.B_Dir,(IX + FileHDR.Attr - 1)
JR Z,.SortStart
; ¥á«¨ ¯®¤¤¨à¥ªâ®à¨ï â® ¯à®¢¥àª  ­  ¨¬ï ".."
LD A,(HL)
CP '.'
JR NZ,.SortStart
INC HL
LD A,(HL)
DEC HL
CP '.'
JR NZ,.SortStart
; § ­®á¨¬ ¤¨àã ".."
PUSH HL
CALL 0
.Scall3 EQU $-2
LD BC,FileHDR.SIZE
LD HL,CPU3
ADD HL,BC
LD (EndSort),HL
LD (HL),0
INC HL
LD (HL),0
LD (BegSort),HL
POP HL
ADD IX,BC
ADD HL,BC
; ­ ç «® á®àâ¨à®¢ª¨ ¢á¥£® ®áâ «ì­®£®
.SortStart PUSH IX
PUSH HL
.SortDIRlp1 LD A,(HL)
OR A
JR Z,.SortDIRnxt
BIT DIR.B_Dir,(IX + FileHDR.Attr - 1)
PUSH HL
CALL NZ,0x0000 ; ¯à®¢¥àª  ¤«ï DIR
.Scall1 EQU $-2
POP HL
LD BC,FileHDR.SIZE
ADD IX,BC
ADD HL,BC
JR .SortDIRlp1
.SortDIRnxt LD HL,(EndSort)
SUB A
LD (HL),A
INC HL
LD (HL),A
LD (BegSort),HL
POP HL
POP IX
.SortDIRlp2 LD A,(HL)
OR A
JR Z,.SortDIRext
BIT DIR.B_Dir,(IX + FileHDR.Attr - 1)
PUSH HL
CALL Z,0x0000 ; ¯à®¢¥àª  ¤«ï ä ©« 
.Scall2 EQU $-2
POP HL
LD BC,FileHDR.SIZE
ADD IX,BC
ADD HL,BC
JR .SortDIRlp2
.SortDIRext LD HL,(EndSort)
LD B,0x08
SUB A
.L3 LD (HL),A
INC HL
DJNZ .L3
GETPORT WINSP.CPU1
LD (RAMPAGES.BuffPg3),A
GETPORT WINSP.CPU3
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD HL,RAMPAGES.LEFTPANEL
JR Z,.L2
LD HL,RAMPAGES.RIGHTPANEL
.L2 LD (HL),A
POP BC
LD A,B
SETPORT WINSP.CPU3,,0
LD A,C
SETPORT WINSP.CPU1,,0
RET
BegSort DEFW 0x0000
EndSort DEFW 0x0000
; á®àâ¨à®¢ª  ¯® Name CTRL+F3
SortABC EX DE,HL
LD HL,(BegSort)
.Sabc1 LD A,(HL)
OR A
JP Z,SortDIRins
PUSH DE
PUSH HL
LD B,12
.Sabc2 LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.Sabc3
INC DE
INC HL
DJNZ .Sabc2
.Sabc3 POP HL
POP DE
JP C,SortDIRins
LD BC,FileHDR.SIZE
ADD HL,BC
JR .Sabc1
; á®àâ¨à®¢ª  ¯® Extension CTRL+F4
SortExt EX DE,HL
LD HL,(BegSort)
.Sext1 LD A,(HL)
OR A
JP Z,SortDIRins
PUSH DE
PUSH HL
LD BC,0x0009
ADD HL,BC
EX DE,HL
ADD HL,BC
EX DE,HL
LD B,03
.Sext2 LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.Sext4
INC DE
INC HL
DJNZ .Sext2
POP HL
POP DE
PUSH DE
PUSH HL
LD B,8
.Sext3 LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.Sext4
INC DE
INC HL
DJNZ .Sext3
.Sext4 POP HL
POP DE
JP C,SortDIRins
LD BC,FileHDR.SIZE
ADD HL,BC
JR .Sext1
; á®àâ¨à®¢ª  ¯® Date CTRL+F5
SortData EX DE,HL
LD HL,(BegSort)
.Sdata1 LD A,(HL)
OR A
JP Z,SortDIRins
PUSH DE
PUSH HL
LD BC,0x0014
ADD HL,BC
EX DE,HL
ADD HL,BC
EX DE,HL
LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SdataE
DEC DE
DEC HL
LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SdataE
DEC DE
DEC HL
LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SdataE
INC HL
INC HL
INC HL
INC DE
INC DE
INC DE
LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SdataE
INC DE
INC HL
LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SdataE
POP HL
POP DE
PUSH DE
PUSH HL
LD B,12
.Sdata2 LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SdataE
INC DE
INC HL
DJNZ .Sdata2
.SdataE POP HL
POP DE
JR C,SortDIRins
LD BC,FileHDR.SIZE
ADD HL,BC
JR .Sdata1
; á®àâ¨à®¢ª  ¯® Size CTRL+F6
SortSize EX DE,HL
LD HL,(BegSort)
.Ssize1 LD A,(HL)
OR A
JR Z,SortDIRins
PUSH DE
PUSH HL
LD BC,0x0011
ADD HL,BC
EX DE,HL
ADD HL,BC
EX DE,HL
LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SsizeE
DEC DE
DEC HL
LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SsizeE
DEC DE
DEC HL
LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SsizeE
DEC DE
DEC HL
LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SsizeE
POP HL
POP DE
PUSH DE
PUSH HL
LD B,12
.Ssize2 LD A,(DE) ;(DE) < (HL) "C"
CP (HL) ;(DE) >= (HL) "NC"
JR NZ,.SsizeE
INC DE
INC HL
DJNZ .Ssize2
.SsizeE POP HL
POP DE
JR C,SortDIRins
LD BC,FileHDR.SIZE
ADD HL,BC
JR .Ssize1
SortDIRins DEC HL
DEC DE
PUSH DE
PUSH HL
EX DE,HL
LD HL,(EndSort)
PUSH HL
OR A
SBC HL,DE
LD B,H
LD C,L
POP DE
LD HL,FileHDR.SIZE
ADD HL,DE
LD (EndSort),HL
SUB A
LD (HL),A
INC HL
LD (HL),A
DEC HL
EX DE,HL
LD A,B
OR C
CALL NZ,MoveBytesUp
POP DE
POP HL
LD BC,FileHDR.SIZE
LDIR
RET

948
fnsys.a80 Normal file
View File

@ -0,0 +1,948 @@
; LAST UPDATE: 08.03.2025 savelij
;[]-----------------------------------------------------------[]
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (8*8bit)
;<3B>  ¢å®¤: E*C
;<3B>  ¢ë室:HL-१ã«ìâ â
Mult8 SUB A
LD L,A
LD H,A
LD D,A
CP C
RET Z
CP E
RET Z
LD H,C
LD B,0x08
.L1 ADD HL,HL
JR NC,.L2
ADD HL,DE
.L2 DJNZ .L1
RET
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (16*8bit)
;<3B>  ¢å®¤: DE*C
;<3B>  ¢ë室:A+HL-१ã«ìâ â
Mult16X8 SUB A
LD L,A
LD H,A
CP C
RET Z
OR D
OR E
RET Z
LD A,C
LD BC,8 << 8
.L1 ADD HL,HL
RLA
JR NC,.L2
ADD HL,DE
ADC A,C
.L2 DJNZ .L1
RET
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (16*16bit)
;<3B>  ¢å®¤: DE*BC
;<3B>  ¢ë室:HL-१ã«ìâ â
Mult16 LD HL,0x0000
LD A,0x10
.L1 RR B
RR C
JR NC,.L2
ADD HL,DE
.L2 RL E
RL D
DEC A
JR NZ,.L1
RET
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (32bit)
;<3B>  ¢å®¤: DE*BC
;<3B>  ¢ë室:HL+DE-१ã«ìâ â
Mult16X16 PUSH IX
EX DE,HL
LD E,0x00
LD D,E
LD IXL,E
LD IXH,D
LD A,0x20
.L1 ADD IX,IX
ADC HL,HL
RL E
RL D
JR NC,.L2
ADD IX,BC
JR NC,.L2
INC HL
.L2 DEC A
JR NZ,.L1
LD E,IXL
LD D,IXH
POP IX
RET
;<3B>à®æ¥¤ãà  ã¬­®¦¥­¨ï (32bit)
;<3B>  ¢å®¤: HL+DE*BC
;<3B>  ¢ë室:HL+DE-१ã«ìâ â
Mult32 PUSH IX
LD IX,0x0000
LD A,0x20
EX DE,HL
.L1 ADD IX,IX
ADC HL,HL
RL E
RL D
JR NC,.L2
ADD IX,BC
JR NC,.L2
INC HL
.L2 DEC A
JR NZ,.L1
LD E,IXL
LD D,IXH
POP IX
RET
;<3B>à®æ¥¤ãà  ¤¥«¥­¨ï (16bit)
;<3B>  ¢å®¤: BC/DE
;<3B>  ¢ë室:BC-१ã«ìâ â
; HL-®áâ â®ª
Divis16X16 LD A,D
OR E
RET Z
LD HL,0x0000
LD A,B
LD B,0x10
.L1 RL C
RLA
ADC HL,HL
SBC HL,DE
CCF
JR NC,.L4
.L2 DJNZ .L1
RL C
RLA
LD B,A
RET
.L3 RL C
RLA
ADC HL,HL
ADD HL,DE
JR C,.L2
.L4 DJNZ .L3
RL C
RLA
ADD HL,DE
LD B,A
RET
;<3B>à®æ¥¤ãà  ¤¥«¥­¨ï (24x16bit)
;<3B>  ¢å®¤: H+L+C/DE
;<3B>  ¢ë室:A -१ã«ìâ â
; HL-®áâ â®ª
Divis24X16 LD A,D
CPL
LD D,A
LD A,E
CPL
LD E,A
INC DE
LD A,C
LD B,0x08
.L1 ADD HL,HL
JR C,.L2
ADD A,A
JR NC,.L4
INC HL
.L4 PUSH HL
ADD HL,DE
JR NC,.L5
EX (SP),HL
INC A
.L5 POP HL
DJNZ .L1
RET
.L2 ADC A,A
JR NC,.L3
INC HL
.L3 ADD HL,DE
DJNZ .L1
RET
;<3B>à®æ¥¤ãà  ¤¥«¥­¨ï 32/16bit=16bit
;<3B>  ¢å®¤: HL+DE/BC
;<3B>  ¢ë室:DE-१ã«ìâ â
; HL-®áâ â®ª
Divis32X16 LD A,0x10
.L2 EX DE,HL
ADD HL,HL
EX DE,HL
ADC HL,HL
SBC HL,BC
JR NC,.L1
ADD HL,BC
DEC A
JR NZ,.L2
RET
.L1 INC DE
DEC A
JR NZ,.L2
RET
;<3B>à®æ¥¤ãà  ¤¥«¥­¨ï 32/16bit=32bit
;<3B>  ¢å®¤: HL+DE/BC
;<3B>  ¢ë室:HL+DE-१ã«ìâ â
; BC-®áâ â®ª
Divis32 PUSH IX
LD IXL,E
LD IXH,D
EX DE,HL
LD HL,0x0000
LD A,0x20
.L1 ADD IX,IX
RL E
RL D
ADC HL,HL
SBC HL,BC
JR NC,.L2
DEC IX
ADD HL,BC
.L2 INC IX
DEC A
JR NZ,.L1
LD C,L
LD B,H
EX DE,HL
LD E,IXL
LD D,IXH
POP IX
RET
;[]===================================================================[]
;<3B>  ¢å®¤:
; A:BC:HL - ç¨á«® 40 ¡¨â
; DE - ¡ãä¥à
ConvNumTxt40: PUSH IX
LD IX,ConvertFlg
RES 7,(IX+0x00)
PUSH BC
EXX
LD HL,ConNumbExit
LD (ChooseStringFormat.address),HL
POP HL
LD E,0x17
LD BC,0x4876
EXX
ld bc,0xE800
; E':BC':BC = 100,000,000,000
call ConNumb40
exx
ld e,0x02
ld bc,0x540B
exx
ld bc,0xE400
; E':BC':BC = 10,000,000,000
CALL ConNumb40
exx
ld e,0x00
ld bc,0x3B9A
exx
ld bc,0xCA00
; E':BC':BC = 1,000,000,000
CALL ConNumb40
; E':BC':BC = 100,000,000
CALL ConvNumTxt32_Shared.skip_1
POP IX
RET
;[]-----------------------------------------------------------[]
;Š®­¢¥àâ¥à ç¨á«  32¡¨â ¢ ⥪áâ
;<3B>  ¢å®¤:
; BC+HL - ç¨á«® 32 ¡¨â
; DE - ¡ãä¥à
ConvNumTxt32 PUSH IX
LD IX,ConvertFlg
RES 7,(IX+0x00)
PUSH BC
EXX
LD HL,ConNumbExit
LD (ChooseStringFormat.address),HL
POP HL
EXX
call ConvNumTxt32_Shared
POP IX
RET
ConvNumTxt32_Shared:
LD BC,0xCA00
EXX
LD BC,0x3B9A ;1'000'000'000
EXX
CALL ConNumb32
.skip_1: LD BC,0xE100
EXX
LD BC,0x05F5 ;100'000'000
EXX
CALL ConNumb32
LD BC,0x9680
EXX
LD BC,0x0098 ;10'000'000
EXX
CALL ConNumb32
LD BC,0x4240
EXX
LD BC,0x000F ;1'000'000
EXX
CALL ConNumb32
LD BC,0x86A0
EXX
LD BC,0x0001 ;100'000
EXX
CALL ConNumb32
LD BC,10000 ;10'000
EXX
LD BC,0x0000
EXX
CALL ConNumb32
LD BC,1000 ;1'000
CALL ConNumb16
LD BC,100 ;100
CALL ConNumb16
LD BC,10 ;10
CALL ConNumb16
LD A,L
ADD A,'0'
LD (DE),A
INC DE
RET
;Š®­¢¥àâ¥à ç¨á«  16¡¨â ¢ ⥪áâ
;<3B>  ¢å®¤:
; HL - ç¨á«® 16 ¡¨â
; DE - ¡ãä¥à
ConvNumTxt16 PUSH IX
PUSH BC
LD IX,ConNumbExit
ld (ChooseStringFormat.address),IX
LD IX,ConvertFlg
RES 7,(IX+0x00)
LD BC,10000 ;10'000
CALL ConNumb16
LD BC,1000 ;1'000
CALL ConNumb16
LD BC,100 ;100
CALL ConNumb16
LD BC,10 ;10
CALL ConNumb16
LD A,L
ADD A,'0'
LD (DE),A
INC DE
POP BC
POP IX
RET
;Š®­¢¥àâ¥à ç¨á«  8¡¨â ¢ ⥪áâ
;<3B>  ¢å®¤:
; A - ç¨á«® 8 ¡¨â
; DE - ¡ãä¥à
ConvNumTxt8 PUSH IX
PUSH BC
LD IX,ConNumbExit
ld (ChooseStringFormat.address),IX
LD IX,ConvertFlg
RES 7,(IX+0x00)
LD C,100
CALL ConNumb8
LD C,10
CALL ConNumb8
ADD A,'0'
LD (DE),A
INC DE
POP BC
POP IX
RET
;----------------------------------------------------------------------;
ConNumb40: exx
ld d,'0'-1
exx
and a
.loop: sbc hl,bc
exx
sbc hl,bc
sbc a,e
inc d
exx
jp nc,.loop
add hl,bc
exx
adc hl,bc
adc a,e
ex af,af'
ld a,d
exx
JR ConNumb8.exit
ConNumb32: LD A,'0' - 1
OR A
.loop: INC A
SBC HL,BC
EXX
SBC HL,BC
EXX
JR NC,.loop
ADD HL,BC
EXX
ADC HL,BC
EXX
JR ChooseStringFormat
ConNumb16: LD A,'0' - 1
OR A
.loop: INC A
SBC HL,BC
JR NC,.loop
ADD HL,BC
JR ChooseStringFormat
ConNumb8: LD B,'0' - 1
.loop: INC B
SUB C
JR NC,.loop
ADD A,C
EX AF,AF'
LD A,B