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

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
.exit: CALL ChooseStringFormat
EX AF,AF'
RET
ConvertFlg DEFB 0x00
ChooseStringFormat:
JP 0x0000
.address: equ $-2
ConNumbExit: CP "0"
JR Z,.skip
SET 7,(IX+0x00)
.skip: BIT 7,(IX+0x00)
RET Z
LD (DE),A
INC DE
RET
;[]-----------------------------------------------------------[]
;Š®­¢¥àâ¥à ⥪áâ  ¢ ç¨á«® 32 ¡¨â
;<3B>  ¢å®¤:
; DE - ⥪áâ
;<3B>  ¢ë室:
; HL+IX - ç¨á«®
; CY - ®è¨¡ª 
ConvTxtNum32 LD IX,0x0000
LD HL,0x0000
ConvTN1 LD A,(DE)
CP 0x21
CCF
RET NC
SUB 0x30
RET C
CP 0x0A
CCF
RET C
INC DE
ADD IX,IX
ADC HL,HL
RET C
PUSH HL
PUSH IX
ADD IX,IX
ADC HL,HL
RET C
ADD IX,IX
ADC HL,HL
RET C
POP BC
ADD IX,BC
POP BC
ADC HL,BC
RET C
LD C,A
LD B,0x00
ADD IX,BC
LD C,B
ADC HL,BC
RET C
JR ConvTN1
;Š®­¢¥àâ¥à ⥪áâ  ¢ ç¨á«® 16 ¡¨â
;<3B>  ¢å®¤:
; DE - ⥪áâ
;<3B>  ¢ë室:
; HL - ç¨á«®
; CY - ®è¨¡ª 
ConvTxtNum16 LD HL,0x0000
ConvTN2 LD A,(DE)
CP 0x21
CCF
RET NC
SUB 0x30
RET C
CP 0x0A
CCF
RET C
INC DE
ADD HL,HL
RET C
PUSH HL
ADD HL,HL
RET C
ADD HL,HL
RET C
POP BC
ADD HL,BC
RET C
LD C,A
LD B,0x00
ADD HL,BC
RET C
JR ConvTN2
;[]-----------------------------------------------------------[]
MoveBytes LD A,B
OR A
JR Z,MvByte1
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x00
MvByte0
ACCEL ACCELCMD.COPY
LD A,(HL)
LD (DE),A
ACCEL ACCELCMD.OFF
INC H
INC D
DEC B
JR NZ,MvByte0
EI
MvByte1 LD A,C
OR A
RET Z
LD (Mvlen1),A
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x00
Mvlen1 EQU $-1
ACCEL ACCELCMD.COPY
LD A,(HL)
LD (DE),A
ACCEL ACCELCMD.OFF
EI
LD A,C
ADD A,E
LD E,A
JR NC,.L1
INC D
.L1 LD A,C
ADD A,L
LD L,A
RET NC
INC H
RET
MoveBytesUp LD A,B
OR A
JR Z,MovUp1
DI
ACCEL ACCELCMD.SET_BUFFER
LD A,0x00
MovUp0 DEC H
DEC D
ACCEL ACCELCMD.COPY
LD A,(HL)
LD (DE),A
ACCEL ACCELCMD.OFF
DEC B
JR NZ,MovUp0
EI
MovUp1 LD A,C
OR A
RET Z
LD (LenUp+1),A
SBC HL,BC
EX DE,HL
SBC HL,BC
EX DE,HL
DI
ACCEL ACCELCMD.SET_BUFFER
LenUp LD A,0x00
ACCEL ACCELCMD.COPY
LD A,(HL)
LD (DE),A
ACCEL ACCELCMD.OFF
EI
RET
;[]----------------------------------------------------------[]
Resident LD (ResCall),DE
IN B,(C)
PUSH BC
OUT (C),A
CALL 0x0000
ResCall EQU $-2
POP BC
OUT (C),B
RET
;[]----------------------------------------------------------[]
; Š®­ª â¥­ æ¨ï áâப¨. „®¡ ¢«ï¥âáï áâப  ¨§ hl ¢ ª®­¥æ áâப¨ ¢ de. <20>ã«ì ª®¯¨àã¥âáï ⮦¥.
; (hl) -> (de)
ConcatString: ex hl,de
.loop: ld a,(hl)
or a
jr z,.end
inc hl
jr .loop
.end: ex hl,de ;‚­¨¬ ­¨¥!!! ®¦¨¤ ¥âáï, çâ® ¤ «ìè¥
; ¨¤¥â CopyString, ¯®í⮬㠥᫨ ¬¥¦¤ã í⨬¨ ¯/¯ ¤®¡ ¢¨«¨ çâ®-â® - ¤®¡ ¢ì ¢ë§®¢ CopyString!
;[]----------------------------------------------------------[]
; Š®¯¨à®¢ ­¨¥ áâப¨ ¤® ­ã«ï. <20>ã«ì ª®¯¨àã¥âáï ⮦¥.
; (hl) -> (de)
CopyString: ld a,(hl)
ldi
or a
jr nz,CopyString
dec de
ret
;[]----------------------------------------------------------[]
; Š®¯¨à®¢ ­¨¥ áâப¨ ¤® ­ã«ï ¨«¨ ¯à®¡¥« . ª®­¥æ ¤®¡ ¢«ï¥âáï ­ã«ì.
; (hl) -> (de)
;!FIXIT ¥á«¨ ­¥ ¡ã¤¥â 0 ¨ ¯à®¡¥«  - ¬®¦¥â ¬­®£® § ¯®à®âì
CopyWord: ld bc, 0x20FF
.loop: ld a,(hl)
ldi
or a
ret z
cp b
jr nz,.loop
dec de
xor a
ld (de),a
ret
;[]----------------------------------------------------------[]
; ‘à ¢­¥­¨¥ áâப¨ á ãç¥â®¬ ॣ¨áâà .
; (®¡à §¥æ ¤®«¦¥­ § ª ­ç¨¢ âìáï ­ã«¥¬)
; ¢å®¤: de - string1
; hl - string2 (®¡à §¥æ)
; ¢ë室: "z" - string1 = string2
; "c" - string1 < string2
; ¨­ ç¥ - string1 > string2
;[]----------------------------------------------------------[]
CompareStrings: ld a,(de)
cp (hl)
ret nz
inc hl
inc de
ld a,(hl)
or a
jr nz,CompareStrings ; ®¡à §¥æ ­¥ § ª®­ç¥­
ld a,(de)
cp (hl)
ret
;<3B>®¨áª ª®­æ  á«®¢  ¨«¨ áâப¨
;> hl - áâப 
;< hl - ª®­¥æ áâப¨ ¨«¨
SkipWord: ld b,0x20
.loop: ld a,(hl)
inc hl
cp b
jr z,.skipSpace
and a
jr nz,.loop
.end: dec hl
ret
.skipSpace: ld a,(hl)
cp b
ret nz
inc hl
jr .skipSpace
;[]----------------------------------------------------------[]
SetCMOSPrint: EX AF,AF'
LD (CMOSposXT),HL
LD (CMOSposYT),DE
LD A,B
LD (CMOSColorT),A
SUB A
LD L,A
LD H,A
LD (CMOSPrint),A
LD (CMOSTime),HL
LD (CMOSTime+2),A
LD (CMOSData),HL
LD (CMOSData+2),A
LD HL,CMOSTimeT
LD DE,CMOSDataT
LD A,'0'
LD B,0x03
.L1 LD (HL),A
INC HL
LD (HL),A
INC HL
INC HL
LD (DE),A
INC DE
LD (DE),A
INC DE
INC DE
DJNZ .L1
EX AF,AF'
LD (CMOSOut),A
OR A
JR Z,TestCMOS
EXX
LD (CMOSposXD),HL
LD (CMOSposYD),DE
LD A,B
LD (CMOSColorD),A
EXX
JR TestCMOS
ResCMOSPrint: LD A,0x01
LD (CMOSPrint),A
RET
TestCMOS: LD A,(CMOSFlag)
OR A
RET Z
LD A,(CMOSPrint)
OR A
RET NZ
PUSH IX
HALT
;!TEST
;DI
SPDSS DSSF.GETTIME
;!TEST
;EI
PUSH DE
PUSH IX
EX DE,HL
LD HL,(CMOSTime)
OR A
SBC HL,DE
JR NZ,PrnCMOSTime
LD A,(CMOSTime+2)
CP B
JR Z,TCMOS1
PrnCMOSTime: EX DE,HL
LD (CMOSTime),HL
LD A,B
LD (CMOSTime+2),A
LD DE,CMOSTimeT
LD A,H
CALL GetCMOS
INC DE
LD A,L
CALL GetCMOS
INC DE
LD A,(CMOSTime+2)
CALL GetCMOS
LD HL,CMOSTimeT
LD DE,(CMOSposXT)
LD BC,(CMOSposYT)
LD A,(CMOSColorT)
CALL PrnTxtLnIFF
TCMOS1 POP IX
POP DE
LD A,(CMOSOut)
OR A
JP Z,TCMOSex
PUSH IX
POP HL
LD BC,1900
OR A
SBC HL,BC
LD B,L
LD HL,(CMOSData)
OR A
SBC HL,DE
JR NZ,PrnCMOSData
LD A,(CMOSData+2)
CP B
JP Z,TCMOSex
PrnCMOSData EX DE,HL
LD (CMOSData),HL
LD A,B
LD (CMOSData+2),A
LD DE,CMOSDataT
LD A,H
CALL GetCMOS
INC DE
LD A,L
CALL GetCMOS
INC DE
LD A,(CMOSData+2)
CALL GetCMOS
LD A,(CMOSOut)
DEC A
JR NZ,TCMOS2
LD HL,CMOSDataT
LD DE,(CMOSposXD)
LD BC,(CMOSposYD)
LD A,(CMOSColorD)
CALL PrnTxtLnIFF
JR TCMOSex
TCMOS2 LD DE,CMOSDataT1
LD A,H
CALL ConvNumTxt8
LD A,' '
LD (DE),A
INC DE
LD A,L
DEC A
ADD A,A
LD L,A
ADD A,A
ADD A,L
LD HL,Month
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD A,' '
.L2 LDI
CP (HL)
JR NZ,.L2
LD (DE),A
INC DE
PUSH IX
POP HL
CALL ConvNumTxt16
SUB A
LD (DE),A
LD HL,(CMOSposXD)
LD (CMOSclX),HL
LD HL,(CMOSposYD)
LD (CMOSclY),HL
LD A,(CMOSColorD)
AND 0xF0
RRCA
RRCA
RRCA
RRCA
LD (CMOScol),A
MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 0,0,76,8,COLORI.BLACK
W_END
CMOSclX EQU $ - 10
CMOSclY EQU $ - 8
CMOScol EQU $ - 2
LD HL,CMOSDataT1
LD DE,(CMOSposXD)
LD BC,(CMOSposYD)
LD A,(CMOSColorD)
CALL PrnTxtLnIFF
TCMOSex POP IX
RET
;CMOSPrint: DB 0x01
CMOSOut: DB 0
CMOSposXT: DW 0
CMOSposYT: DW 0
CMOSColorT: DB 0
CMOSTime: DB 3 DUP 0
CMOSTimeT: DB "00:00:00",0
CMOSposXD: DW 0
CMOSposYD: DW 0
CMOSColorD: DB 0
CMOSData: DB 3 DUP 0
CMOSDataT: DB "00/00/00",0
CMOSDataT1: DB 14 DUP ' '
GetCMOS: EX DE,HL
LD BC,(('0' - 1) << 8) | 10;0x2F0A
.L1 INC B
SUB C
JR NC,.L1
ADD A,C
LD (HL),B
INC HL
ADD A,'0'
LD (HL),A
INC HL
EX DE,HL
RET
Month: DB "Jan "
DB "Febr "
DB "March "
DB "Apr "
DB "May "
DB "June "
DB "July "
DB "Aug "
DB "Sept "
DB "Oct "
DB "Nov "
DB "Dec "
;[]----------------------------------------------------------[]
SetClock: LD A,(MouseFlag)
OR A
RET Z
PUSH IY
PUSH IX
PUSH HL
PUSH DE
PUSH BC
GETPORT WINSP.CPU3
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU3,,0
LD IX,CLOCK_BMP;ClockBMP
LD HL,14 << 8 + 9
LD DE,7 << 8 | 4
SPMOUSE MOUSEF.LOAD_IMAGE
POP AF
SETPORT WINSP.CPU3,,0
POP BC
POP DE
POP HL
POP IX
POP IY
HALT
RET
SetMouse LD A,(MouseFlag)
OR A
RET Z
PUSH IY
PUSH IX
PUSH HL
PUSH DE
PUSH BC
GETPORT WINSP.CPU3
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU3,,0
LD IX,MOUSE_BMP;MouseBMP
LD HL,13 << 8 + 9
LD DE,0
SPMOUSE MOUSEF.LOAD_IMAGE
POP AF
SETPORT WINSP.CPU3,,0
POP BC
POP DE
POP HL
POP IX
POP IY
HALT
RET

369
fntab.a80 Normal file
View File

@ -0,0 +1,369 @@
; LAST UPDATE: 02.05.2025 savelij
;[]==========================================================[]
; ”®à¬ â â ¡«¨æë
; +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 €¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢)
FilePanelLeft DW 6, 40, 15, 26,%0000000000000000,0,MenuFile,0
DW 40, 84, 15, 26,%0000000000000000,0,MenuSelect,0
DW 84,138, 15, 26,%0000000000000000,0,MenuOption,0
DW 138,174, 15, 26,%0000000000000000,0,MenuView,0
DW 174,222, 15, 26,%0000000000000000,0,MenuConfig,0
DW 222,262, 15, 26,%0000000000000000,0,MenuAbout,0
DW 324,636, 44,225,%0000000000000000,0,ChPanel,0
PanelPlaceL DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 254,634,229,239,%0000000000000000,0,DOSloop,0
DW 0, 80,242,256,%0000000000000001,0,Help,0
DW 80,160,242,256,%0000000000000001,0,ViewFile,0
DW 160,240,242,256,%0000000000000001,0,EditFile,0
DW 240,320,242,256,%0000000000000001,0,RESIDENT.CopyFiles,0
DW 320,400,242,256,%0000000000000001,0,RESIDENT.ReName,0
DW 400,480,242,256,%0000000000000001,0,RESIDENT.MakeDIR,0
DW 480,560,242,256,%0000000000000001,0,RESIDENT.DeleteFiles,0
DW 560,640,242,256,%0000000000000001,0,RESIDENT.Quit,0
BgDISKl DW 6, 34, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; A
DW 326,354, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 34, 62, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; B
DW 354,382, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 62, 90, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; C
DW 382,410, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 90,118, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; D
DW 410,438, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 118,146, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; E
DW 438,466, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 146,174, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; F
DW 466,494, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 174,202, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; G
DW 494,522, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 202,230, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; H
DW 522,550, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 230,258, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; I
DW 550,578, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 258,286, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; J
DW 578,606, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 286,314, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; K
DW 606,634, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 0x8000
;[]==========================================================[]
FilePanelRight DW 6, 40, 15, 26,%0000000000000000,0,MenuFile,0
DW 40, 84, 15, 26,%0000000000000000,0,MenuSelect,0
DW 84,138, 15, 26,%0000000000000000,0,MenuOption,0
DW 138,174, 15, 26,%0000000000000000,0,MenuView,0
DW 174,222, 15, 26,%0000000000000000,0,MenuConfig,0
DW 222,262, 15, 26,%0000000000000000,0,MenuAbout,0
DW 4,316, 44,225,%0000000000000000,0,ChPanel,0
PanelPlaceR DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 0, 0, 0, 0,%0000000000000000,0,0,0
DW 254,634,229,239,%0000000000000000,0,DOSloop,0
DW 0, 80,242,256,%0000000000000001,0,Help,0
DW 80,160,242,256,%0000000000000001,0,ViewFile,0
DW 160,240,242,256,%0000000000000001,0,EditFile,0
DW 240,320,242,256,%0000000000000001,0,RESIDENT.CopyFiles,0
DW 320,400,242,256,%0000000000000001,0,RESIDENT.ReName,0
DW 400,480,242,256,%0000000000000001,0,RESIDENT.MakeDIR,0
DW 480,560,242,256,%0000000000000001,0,RESIDENT.DeleteFiles,0
DW 560,640,242,256,%0000000000000001,0,RESIDENT.Quit,0
BgDISKr DW 6, 34, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; A
DW 326,354, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 34, 62, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; B
DW 354,382, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 62, 90, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; C
DW 382,410, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 90,118, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; D
DW 410,438, 30, 42,%0000000000000001,0,ChangeDriveR,0;0x0800
DW 118,146, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; E
DW 438,466, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 146,174, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; F
DW 466,494, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 174,202, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; G
DW 494,522, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 202,230, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; H
DW 522,550, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 230,258, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; I
DW 550,578, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 258,286, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; J
DW 578,606, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 286,314, 30, 42,%0000000000000001,0,ChangeDriveL,0 ; K
DW 606,634, 30, 42,%0000000000000001,0,ChangeDriveR,0
DW 0x8000
;[]==========================================================[]
FileTab DW 8,160, 29, 43,%0000000100100100,0,RESIDENT.FileInfoL2,0
DW 8,160, 43, 57,%0000000100100100,0,RESIDENT.PrintFileL3,0
DW 8,160, 63, 77,%0000000100100100,0,RESIDENT.QuitL1,0
DW 6, 40, 15, 26,%0000000100101000,0,MenuExit,0
DW 40, 84, 15, 26,%0000000010010000,MenuSelect.L2,0,0
DW 84,138, 15, 26,%0000000010010000,MenuOption.L2,0,0
DW 138,174, 15, 26,%0000000010010000,MenuView.L8,0,0
DW 174,222, 15, 26,%0000000010010000,MenuConfig.L2,0,0
DW 222,262, 15, 26,%0000000010010000,MenuAbout.L2,0,0
DW 0,640, 0, 26,%0000000100100000,0,MenuExit,0
DW 0,640, 80,256,%0000000100100000,0,MenuExit,0
DW 0, 4, 0,256,%0000000100100000,0,MenuExit,0
DW 164,640, 0,256,%0000000100100000,0,MenuExit,0
DW 0x8000
SelectTab DW 44,196, 29, 43,%0000000100100100,0,RESIDENT.MarkGroupN,0
DW 44,196, 43, 57,%0000000100100100,0,RESIDENT.UnMarkGroupN,0
DW 44,196, 57, 71,%0000000100100100,0,RESIDENT.SelectAllN,0
DW 44,196, 71, 85,%0000000100100100,0,RESIDENT.UnSelectAllN,0
DW 44,196, 85, 99,%0000000100100100,0,RESIDENT.InvertSelectN,0
DW 6, 40, 15, 26,%0000000010010000,MenuFile.L2,0,0
DW 40, 84, 15, 26,%0000000100101000,0,MenuExit,0
DW 84,138, 15, 26,%0000000010010000,MenuOption.L2,0,0
DW 138,174, 15, 26,%0000000010010000,MenuView.L8,0,0
DW 174,222, 15, 26,%0000000010010000,MenuConfig.L2,0,0
DW 222,262, 15, 26,%0000000010010000,MenuAbout.L2,0,0
DW 0,640, 0, 26,%0000000100100000,0,MenuExit,0
DW 0,640,102,256,%0000000100100000,0,MenuExit,0
DW 0, 40, 0,256,%0000000100100000,0,MenuExit,0
DW 200,640, 0,256,%0000000100100000,0,MenuExit,0
DW 0x8000
; ¯®¤¬¥­î "Options"
OptionTab DW 88,288, 29, 43,%0000000100100100,0,RefreshTree,0 ; Options->Refresh tree
DW 88,288, 43, 57,%0000000100100100,0,RESIDENT.DiskInfoL4,0 ; Options->Disk info
DW 88,288, 63, 77,%0000000100100100,0,RESIDENT.SystemInfo,0 ; Options->System information
IF PLUGS_ENABLE
DW 88,288, 77, 91,%0000000100100100,0,GetPlugins,0 ; Options->Plugins
ENDIF
DW 6, 40, 15, 26,%0000000010010000,MenuFile.L2,0,0 ; File
DW 40, 84, 15, 26,%0000000010010000,MenuSelect.L2,0,0 ; Select
DW 84,138, 15, 26,%0000000100101000,0,MenuExit,0 ;
DW 138,174, 15, 26,%0000000010010000,MenuView.L8,0,0 ; View
DW 174,222, 15, 26,%0000000010010000,MenuConfig.L2,0,0 ; Config
DW 222,262, 15, 26,%0000000010010000,MenuAbout.L2,0,0 ; About
DW 0,640, 0, 26,%0000000100100000,0,MenuExit,0
DW 0,640, 80,256,%0000000100100000,0,MenuExit,0
DW 0, 84, 0,256,%0000000100100000,0,MenuExit,0
DW 292,640, 0,256,%0000000100100000,0,MenuExit,0
DW 0x8000
; ¯®¤¬¥­î "View"
ViewTab DW 142,324, 29, 43,%0000000100100100,0,ChView1,0
DW 142,324, 43, 57,%0000000100100100,0,ChView2,0
DW 142,324, 57, 71,%0000000100100100,0,ChView3,0
DW 142,324, 77, 91,%0000000100100100,0,ChFilt1,0
DW 142,324, 91,105,%0000000100100100,0,ChFilt2,0
DW 142,324,105,119,%0000000100100100,0,ChFilt3,0
DW 142,324,119,133,%0000000100100100,0,NewFilter.L1,0
DW 142,324,139,153,%0000000100100100,0,ChSort1,0
DW 142,324,153,167,%0000000100100100,0,ChSort2,0
DW 142,324,167,181,%0000000100100100,0,ChSort3,0
DW 142,324,181,195,%0000000100100100,0,ChSort4,0
DW 142,324,195,209,%0000000100100100,0,ChSort5,0
DW 6, 40, 15, 26,%0000000010010000,MenuFile.L2,0,0
DW 40, 84, 15, 26,%0000000010010000,MenuSelect.L2,0,0
DW 84,138, 15, 26,%0000000010010000,MenuOption.L2,0,0
DW 138,174, 15, 26,%0000000100101000,0,MenuExit,0
DW 174,222, 15, 26,%0000000010010000,MenuConfig.L2,0,0
DW 222,262, 15, 26,%0000000010010000,MenuAbout.L2,0,0
DW 0,640, 0, 26,%0000000101100000,0,MenuExit,0
DW 0,640,184,256,%0000000101100000,0,MenuExit,0
DW 0,138, 0,256,%0000000101100000,0,MenuExit,0
DW 330,640, 0,256,%0000000101100000,0,MenuExit,0
DW 0x8000
ConfigTab DW 178,266, 29, 43,%0000000100100100,0,RESIDENT.Setup,0
DW 6, 40, 15, 26,%0000000010010000,MenuFile.L2,0,0
DW 40, 84, 15, 26,%0000000010010000,MenuSelect.L2,0,0
DW 84,138, 15, 26,%0000000010010000,MenuOption.L2,0,0
DW 138,174, 15, 26,%0000000010010000,MenuView.L8,0,0
DW 174,222, 15, 26,%0000000100101000,0,MenuExit,0
DW 222,262, 15, 26,%0000000010010000,MenuAbout.L2,0,0
DW 0,640, 0, 26,%0000000100100000,0,MenuExit,0
DW 0,640, 46,256,%0000000100100000,0,MenuExit,0
DW 0,174, 0,256,%0000000100100000,0,MenuExit,0
DW 270,640, 0,256,%0000000100100000,0,MenuExit,0
DW 0x8000
AboutTab DW 226,330, 29, 43,%0000000100100100,0,RESIDENT.Version,0
DW 6, 40, 15, 26,%0000000010010000,MenuFile.L2,0,0
DW 40, 84, 15, 26,%0000000010010000,MenuSelect.L2,0,0
DW 84,138, 15, 26,%0000000010010000,MenuOption.L2,0,0
DW 138,174, 15, 26,%0000000010010000,MenuView.L8,0,0
DW 174,222, 15, 26,%0000000010010000,MenuConfig.L2,0,0
DW 222,262, 15, 26,%0000000100101000,0,MenuExit,0
DW 0,640, 0, 26,%0000000100100000,0,MenuExit,0
DW 0,640, 46,256,%0000000100100000,0,MenuExit,0
DW 0,222, 0,256,%0000000100100000,0,MenuExit,0
DW 334,640, 0,256,%0000000100100000,0,MenuExit,0
DW 0x8000
PullTab DW 6, 40, 15, 26,%0000000000100000,0,MFile,0
DW 40, 84, 15, 26,%0000000000100000,0,MSelect,0
DW 84,138, 15, 26,%0000000000100000,0,MOption,0
DW 138,174, 15, 26,%0000000000100000,0,MView,0
DW 174,222, 15, 26,%0000000000100000,0,MConfig,0
DW 222,262, 15, 26,%0000000000100000,0,MAbout,0
DW 0,640, 0, 15,%0000000000100000,0,PullExit.L1,0
DW 0,640, 26,256,%0000000000100000,0,PullExit.L1,0
DW 0, 6, 0,256,%0000000000100000,0,PullExit.L1,0
DW 222,640, 0,256,%0000000000100000,0,PullExit.L1,0
DW 0x8000
;[]==========================================================[]
FilterTab DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0
DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0
DW 0,208, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 432,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0x8000
SMaskTab DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0
DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0
DW 0,208, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 432,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0x8000
DOSTab DW 0,256, 0,256,%0000000000000000,0,DOSLnExtC,0
DW 636,640, 0,256,%0000000000000000,0,DOSLnExtC,0
DW 0,640, 0,229,%0000000000000000,0,DOSLnExtC,0
DW 0,640,239,256,%0000000000000000,0,DOSLnExtC,0
DW 0x8000
ViewEditTab DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0
DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0
DW 0,200, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 440,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0x8000
;[]==========================================================[]
DriveTab DW 0, 0, 0, 0,%0000000000100000,0,DriveExit,0
DW 0, 0, 0, 0,%0000000000100000,0,DriveExit,0
DW 0,640, 0, 92,%0000000000100000,0,DriveExit,0
DW 0,640,128,256,%0000000000100000,0,DriveExit,0
BegDrive DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0, 0,110,121,%0000000000100000,0,DriveMouse,0
DW 0x8000
IF PLUGS_ENABLE
; ®¡« á⨠¢ë¡®à  ¢ ¬¥­î ¯« £¨­®¢
PluginsTab: DW 4, 13,100, 10,%0000000000000000,0,SelectPlugin.NUM00,0
DW 4, 23,100, 10,%0000000000000000,0,SelectPlugin.NUM01,0
DW 4, 33,100, 10,%0000000000000000,0,SelectPlugin.NUM02,0
DW 4, 43,100, 10,%0000000000000000,0,SelectPlugin.NUM03,0
DW 4, 53,100, 10,%0000000000000000,0,SelectPlugin.NUM04,0
DW 4, 63,100, 10,%0000000000000000,0,SelectPlugin.NUM05,0
DW 4, 73,100, 10,%0000000000000000,0,SelectPlugin.NUM06,0
DW 4, 83,100, 10,%0000000000000000,0,SelectPlugin.NUM07,0
DW 4, 93,100, 10,%0000000000000000,0,SelectPlugin.NUM08,0
DW 4,103,100, 10,%0000000000000000,0,SelectPlugin.NUM09,0
DW 4,113,100, 10,%0000000000000000,0,SelectPlugin.NUM10,0
DW 30,176, 72, 14,%0000000000000000,0,SelectPlugin.CANCEL,0
DW 0x8000
ENDIF
;[]==========================================================[]
;”®à¬ â â ¡«¨æë
; +00 2 ASCII + SCANCOD
; +02 2 Execute program
HOTKEYS
.ASCIIKeys DW SC.TAB << 8 | 0x09, ChPanel
DW SC.X8 << 8, CursUp
DW SC.X2 << 8, CursDown
DW SC.X4 << 8, CursLeft
DW SC.X6 << 8, CursRight
DW SC.X9 << 8, PageUp
DW SC.X3 << 8, PageDown
DW SC.X7 << 8, Home
DW SC.X1 << 8, End
DW SC.F9 << 8, PullDown
DW SC.XDOTZAP << 8 | '+', RESIDENT.MarkGroup
DW SC.XMINUS << 8 | '-', RESIDENT.UnMarkGroup
DW SC.XMUL << 8 | '*', RESIDENT.InvertSelect
DW SC.X0 << 8, RESIDENT.MarkFile
DW SC.F1 << 8, Help
DW SC.F3 << 8, ViewFile
DW SC.F4 << 8, EditFile
DW SC.F5 << 8, RESIDENT.CopyFiles
DW SC.F6 << 8, RESIDENT.ReName
DW SC.F7 << 8, RESIDENT.MakeDIR
DW SC.F8 << 8, RESIDENT.DeleteFiles
DW SC.F10 << 8, RESIDENT.Quit
DB 0xFF
.SHIFTKeys DW SC.F3 << 8, ViewFileSH
DW SC.F4 << 8, EditFileSH
DB 0xFF
.CTRLKeys DW SC.F9 << 8, RESIDENT.PrintFile
DW SC.XDOTZAP << 8, RESIDENT.SelectAll
DW SC.XMINUS << 8, RESIDENT.UnSelectAll
DW SC.L << 8, RESIDENT.DiskInfo
DW SC.F1 << 8, Brief
DW SC.F2 << 8, Full
DW SC.F8 << 8, Tree
DW SC.F10 << 8, AllFiles
DW SC.F11 << 8, ExeFiles
DW SC.F12 << 8, NewFilter
DW SC.F3 << 8, NameS
DW SC.F4 << 8, Extention
DW SC.F5 << 8, Data
DW SC.F6 << 8, Size
DW SC.F7 << 8, UnSort
DW SC.U << 8, ReplacePanels
DW SC.O << 8, ShowDOSscreen
DW SC.BSLASH << 8, BegDIRECTORY
DB 0xFF
.ALTKeys DW SC.ESC << 8, MouseOnOff
DW SC.ENTER << 8, RESIDENT.FileInfo
DW SC.F1 << 8, LeftDrive
DW SC.F2 << 8, RightDrive
DW SC.F3 << 8, StViewFile
DW SC.F4 << 8, StEditFile
DW SC.F10 << 8, RefreshTree
DB 0xFF

734
fntree.a80 Normal file
View File

@ -0,0 +1,734 @@
; LAST UPDATE: 28.05.2025 savelij
MAX_LEVEL_DIR EQU 21
;[]----------------------------------------------------------[]
ReadTreeR PUSH IY
POP HL
LD BC,PANEL.EFL
ADD HL,BC
LD B,PANEL.FILEMASK - PANEL.EFL
.LL1 LD (HL),0
INC HL
DJNZ .LL1
LD HL,BegDIR
PUSH IY
SPDSS DSSF.CHDIR
POP IY
LD HL,TreeName
PUSH IY
SPDSS DSSF.OPEN,,0
POP IY
JP NC,LoadTreeR
; ä ©« á ¤¥à¥¢®¬ ª â «®£®¢ ­¥ ­ ©¤¥­, ᪠­¨à㥬 ¨ á®§¤ ¥¬
.ScanTree
GETPORT WINSP.CPU1
LD C,A
GETPORT WINSP.CPU3
LD B,A
PUSH BC
LD A,(RAMPAGES.BuffPg3)
SETPORT WINSP.CPU1,,0
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
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 240,96,160,40
W_FILL 4,2,152,10,COLORI.BLACK
W_TEXT 44,3,COLORI.WHITE,"Scanning tree"
W_TEXT 32,20,COLORP.HIGHGRAY,"Directories:"
W_END
LD (.TreeSP1),SP
SUB A
LD (CurTree),A
LD SP,STACKTREE
LD HL,0
PUSH HL
LD (LoadItemDIRR.CurTAdr),HL
LD HL,CPU3 + TreeHead_Size
LD (EndTree),HL
LD B,0x10
SUB A
.L2 LD (HL),A
INC HL
DJNZ .L2
LD HL,1
LD (TreeDIRS),HL
CALL LoadItemDIRR
JR NC,.TreeExit ; NC - ­¥â ¤¨à¥ªâ®à¨©
.TreeLoop PUSH HL
SPDSS DSSF.SCANKEY
LD A,E
SUB 0x1B
POP HL
JP Z,AbortTree
LD A,(CurTree)
INC A
CP MAX_LEVEL_DIR
JR Z,.DIRSend
LD (CurTree),A
LD DE,(TreeDIRS)
BIT 2,D ; DE >= 1024
JR NZ,.TreeExit
PUSH HL
LD A,(HL)
OR A
JR Z,.DIRSend
LD (LoadItemDIRR.CurTAdr),HL
SPDSS DSSF.CHDIR
CALL LoadItemDIRR
JR C,.TreeLoop ; C - ¥áâì ¤¨à¥ªâ®à¨¨
.DIRSend
SPDSS DSSF.SCANKEY
LD A,E
SUB 0x1B
JP Z,AbortTree
POP HL
LD A,H
OR L
JR Z,.TreeExit
PUSH HL
LD HL,CurTree
DEC (HL)
LD HL,UpDIR
SPDSS DSSF.CHDIR
POP HL
LD DE,0x000F
ADD HL,DE
LD A,(HL)
INC HL
INC A
JR NZ,.TreeLoop
JR .DIRSend
.TreeExit
SETPORT WINSP.Y_PORT,0xC0
LD SP,STACKTREE
LD IX,0
PUSH IX
LD HL,CPU1
LD DE,TreeHead
LD BC,TreeHead_Size
EX DE,HL
LDIR ; § ­¥á«¨ § £®«®¢®ª ¤¥à¥¢  ª â «®£®¢ FN
LD HL,(TreeDIRS)
DEC HL
LD A,H
OR L
JR Z,.TreeExit1
LD HL,CPU3 + TreeHead_Size
.TreeEndLp INC IXL
PUSH HL
PUSH DE
LD A,IXL
CP IXH
JR C,.L3
LD IXH,A
.L3 LD (DE),A
INC DE
SUB A
LD (DE),A
INC DE
LD BC,0x000C
LDIR
LD (DE),A
INC DE
LD (DE),A
INC DE
INC HL
LD C,(HL)
INC HL
LD B,(HL)
INC HL
LD A,(HL)
AND 0x80
POP HL
OR (HL)
LD (HL),A
LD L,C
LD H,B
LD A,H
OR L
JR NZ,.TreeEndLp
.TreeEndLp1 DEC IXL
POP HL
LD A,H
OR L
JR Z,.TreeExit1
LD BC,0x000F
ADD HL,BC
LD A,(HL)
INC HL
INC A
JR NZ,.TreeEndLp
JR .TreeEndLp1
.TreeExit1 LD (EndTree),DE
DEC DE
LD A,0xFF
LD (DE),A
LD SP,0
.TreeSP1 EQU $-2
POP IY
RES VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
LD A,IXH
CP 0x0B
JR C,.L4
SET VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
.L4
GETPORT WINSP.CPU3
LD (RAMPAGES.BuffPg3),A
GETPORT WINSP.CPU1
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD HL,RAMPAGES.LEFTPANEL
JR Z,.L5
LD HL,RAMPAGES.RIGHTPANEL
.L5 LD (HL),A
WINDOWCLOSE
POP BC
LD A,B
SETPORT WINSP.CPU3,,0
LD A,C
SETPORT WINSP.CPU1,,0
LD HL,(TreeDIRS)
LD (IY+PANEL.EFL),L ; EQUIP FIL
LD (IY+PANEL.EFH),H
PUSH IY
GETPORT WINSP.CPU3
PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L6
LD A,(RAMPAGES.RIGHTPANEL)
.L6
SETPORT WINSP.CPU3,,0
LD HL,BegDIR
SPDSS DSSF.CHDIR
LD HL,TreeName
SPDSS DSSF.CREATE,,0
JR C,.TreeErr
PUSH AF
LD HL,CPU3
LD DE,(EndTree)
RES 6,D
SPDSS DSSF.WRITE
POP AF
SPDSS DSSF.CLOSE
.TreeErr LD A,1
LD (CPU3 + 1),A
POP AF
SETPORT WINSP.CPU3,,0
POP IY
JP LoadTreeR.TreeOkey
; § £à㧪  ¤¥à¥¢  ª â «®£®¢ ¨§ ä ©« 
LoadTreeR EX AF,AF'
PUSH IY
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
EX AF,AF'
PUSH AF
LD HL,CPU3
LD DE,0x4000
SPDSS DSSF.READ
EX AF,AF'
LD HL,CPU3
LD DE,WorkBuffer
LD BC,0x0010
LDIR
POP AF
SPDSS DSSF.CLOSE
POP AF
SETPORT WINSP.CPU3,,0
POP IY
EX AF,AF'
JP C,ReadTreeR.ScanTree ; Error
LD HL,WorkBuffer + 2
LD DE,TreeHead + 2
LD B,TreeHead_Size - 3
.L2 LD A,(DE)
CP (HL)
JP NZ,ReadTreeR.ScanTree ; Error
INC HL
INC DE
DJNZ .L2
GETPORT WINSP.CPU3
PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L3
LD A,(RAMPAGES.RIGHTPANEL)
.L3
SETPORT WINSP.CPU3,,0
LD HL,CPU3
LD DE,0x000E
LD BC,0
LD IXH,0
.LoadTr1 LD A,(HL)
AND 0x7F
CP IXH
JR C,.L4
LD IXH,A
.L4 INC HL
LD (HL),0
INC BC
ADD HL,DE
LD A,(HL)
INC HL
INC A
JR NZ,.LoadTr1
RES VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
LD A,IXH
CP 0x0B
JR C,.L5
SET VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
.L5 LD (IY+PANEL.EFL),C ; EQUIP FILES
LD (IY+PANEL.EFH),B
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
LD A,1
JR NZ,.L6
LD A,3
.L6 LD (CPU3 + 1),A
POP AF
SETPORT WINSP.CPU3,,0
.TreeOkey PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
INC HL
INC HL
JP FindTreeDIRR
AbortTree LD SP,(ReadTreeR.TreeSP1)
POP IY
POP BC
LD A,B
SETPORT WINSP.CPU3,,0
LD A,C
SETPORT WINSP.CPU1,,0
RES VIEWFLAG.B_SHORTTREE,(IY+PANEL.VIEWFLAG)
RES VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
WINDOWCLOSE
LD HL,InitPanels
EX (SP),HL
SUB A
RET
TreeName DZ FILENAME.FNTREE_FLN
TreeHead DB 0,0,0x5C,0,0,0,0xAE,"FlexTree",0
TreeHead_Size EQU $ - TreeHead
BegDIR DB 0x5C,0
UpDIR DB "..",0
CurTree DB 0
TreeDIRS DW 0 ; ª®«¨ç¥á⢮ ­ ©¤¥­ëå ¤¨à
EndTree DW 0 ; ⥪ã騩  ¤à¥á ¢ â ¡«¨æ¥ ¤¨à¥ªâ®à¨©
; ç⥭¨¥ ®¯¨á â¥«¥© ¤¨à¥ªâ®à¨©
LoadItemDIRR: LD DE,(EndTree)
PUSH DE
LD IX,0
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 IX
PUSH DE
SPDSS DSSF.F_FIRST,1
POP HL
POP IX
JR C,.FndFLtrE ; ­¨ç¥£® ­¥ ­ ©¤¥­®? ­  ¢ë室
.FndFLtr LD A,(WorkBuffer + 0x20)
AND DIR.M_Dir ; íâ® ¤¨à ?
CALL NZ,.ADD_DIR ; ¥á«¨ ¤  â® ¤®¡ ¢«ï¥¬
JR C,.FndFLtrE ; ®è¨¡ª  ¤®¡ ¢«¥­¨ï? ¢ë室¨¬
; ç¨â ¥¬ á«¥¤ãî騩 ®¯¨á â¥«ì
LD DE,WorkBuffer
PUSH IX
PUSH DE
SPDSS DSSF.F_NEXT
POP HL
POP IX
JR NC,.FndFLtr
; § ¢¥à襭¨¥ á®§¤ ­¨ï ¤¥à¥¢ 
.FndFLtrE LD HL,(EndTree)
DEC HL
LD (HL),0xFF
LD C,IXL
LD B,IXH
LD HL,(TreeDIRS)
ADD HL,BC
LD (TreeDIRS),HL
POP HL
LD A,B
OR C
RET Z
PUSH HL
CALL .PRT_NUM_DIR ; ®¡­®¢«ï¥¬ ª®«¨ç¥á⢮ ­ ©¤¥­­ëå ¤¨à
POP HL
LD DE,0
.CurTAdr EQU $-2
LD A,D
OR E
SCF
RET Z
EX DE,HL
LD BC,0x000D
ADD HL,BC
LD (HL),E
INC HL
LD (HL),D
EX DE,HL
SCF
RET
; § ­¥á¥­¨¥ ¢ â ¡«¨æã í«¥¬¥­â  ¤¨à¥ªâ®à¨¨
.ADD_DIR EX DE,HL
LD HL,(EndTree)
LD BC,0x0010
ADD HL,BC
SBC HL,BC
EX DE,HL
RET C
LD BC,FFIRST.Name
ADD HL,BC
LD A,(HL)
CP '.' ; ¯¥à¢ë© ᨬ¢®« ¨¬¥­¨ â®çª ?
RET Z
LD C,0x10 ; ¤«¨­  í«¥¬¥­â  ¢ â ¡«¨æ¥
SUB A
; ¯¥à¥­®á ¨¬¥­¨ ¤® 0
.L1 LDI
CP (HL)
JR NZ,.L1
LD B,C
; ®áâ â®ª § ¯®«­ï¥¬ ­ã«¥¬
.L2 LD (DE),A
INC DE
DJNZ .L2
LD (EndTree),DE
INC IX
RET
; ª®­¢¥àá¨ï ¨ ¯¥ç âì ç¨á«  ª®«¨ç¥á⢠ ¤¨à¥ªâ®à¨© ¢ ¤¥à¥¢¥
.PRT_NUM_DIR LD HL,(TreeDIRS)
DEC HL
LD DE,.CurDNumb
PUSH DE
LD B,4
LD A,' '
.L3 LD (DE),A
INC DE
DJNZ .L3
POP DE
EXX
LD C,0
EXX
LD BC,1000 ; 1'000
CALL .GetN16
LD BC,100 ; 100
CALL .GetN16
LD BC,10 ; 10
CALL .GetN16
LD A,L
ADD A,'0'
LD (DE),A
LD HL,.CurDNumb
LD DE,336 ; X pos
LD BC,116 ; Y pos
LD A,COLORP.HIGHGRAY
JP PrnTxtLnIFF
.GetN16 LD A,'0' - 1
OR A
.L4 INC A
SBC HL,BC
JR NC,.L4
ADD HL,BC
CP '0'
JR Z,.L5
EXX
SET 0,C
EXX
.L5 EXX
BIT 0,C
EXX
RET Z
LD (DE),A
INC DE
RET
.CurDNumb DEFB " ",0
;[]=========================================================[]
TestTreeR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET Z
LD B,0x28
.TstTree PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
OR A
RET NZ
PUSH BC
SPDSS DSSF.TESTKEY
POP BC
RET NZ
HALT
DJNZ .TstTree
IFNDEF TREE_DIR_ENTER
LD A,E
CP 0x0D ; ᬥ­  ¤¨à¥ªâ®à¨¨ ¨§ ¤¥à¥¢  ⮫쪮 ¯® ENTER
RET NZ
ENDIF
.TestTreeBeg
GETPORT WINSP.CPU1
PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L14
LD A,(RAMPAGES.RIGHTPANEL)
.L14
SETPORT WINSP.CPU1,,0
SETPORT WINSP.Y_PORT,0xC0
LD L,(IY+PANEL.FFL)
LD H,(IY+PANEL.FFH)
LD E,(IY+PANEL.CFL)
LD D,(IY+PANEL.CFH)
ADD HL,DE
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
SET 6,H
INC HL
BIT 0,(HL)
JR NZ,.L2
EX DE,HL
LD HL,CPU1
LD BC,0x000E
.L1 INC HL
RES 0,(HL)
ADD HL,BC
LD A,(HL)
INC HL
INC A
JR NZ,.L1
EX DE,HL
SET 0,(HL)
CALL PrintDIR
CALL SetInvert
CALL MakeTreePathR
PUSH IY
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD IY,RightPanel
JR Z,.L3
LD IY,LeftPanel
.L3 CALL NewDIRECTORY
POP IY
.L2 POP AF
SETPORT WINSP.CPU1,,0
RET
;[]==========================================================[]
MakeTreePathR
GETPORT WINSP.CPU1
PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L5
LD A,(RAMPAGES.RIGHTPANEL)
.L5
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
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
SET 6,H
LD DE,WorkBuffer+0xFF
LD BC,0x0010
SUB A
LD (DE),A
DEC DE
LD A,(HL)
OR A
JR Z,.L4
AND 0x7F
INC A
LD IXL,A
ADD HL,BC
INC DE
.L3 SBC HL,BC
PUSH HL
LD A,(HL)
INC HL
AND 0x7F
CP IXL
JR NC,.L2
LD IXL,A
LD B,0xFF
SUB A
.L6 INC B
INC HL
CP (HL)
JR NZ,.L6
.L1 DEC HL
DEC DE
LD A,(HL)
LD (DE),A
DJNZ .L1
DEC DE
LD A,'\\'
LD (DE),A
.L2 POP HL
LD A,(HL)
AND 0x7F
CP 2
JR NC,.L3
.L4 EX DE,HL
LD (HL),'\\'
POP AF
SETPORT WINSP.CPU1,,0
RET
;[]==========================================================[]
FindTreeDIRR
GETPORT WINSP.CPU1
PUSH AF
SETPORT WINSP.Y_PORT,0xC0
LD IX,LeftPanel
BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR NZ,.L14
LD A,(RAMPAGES.RIGHTPANEL)
.L14
SETPORT WINSP.CPU1,,0
LD DE,CPU1
LD BC,0
.L1 LD A,(DE)
AND 0x7F
LD IXL,A
.L2 PUSH HL
PUSH DE
LD A,(DE)
AND 0x7F
CP IXL
JR NZ,.L4
INC DE
INC DE
.L3 LD A,(DE)
CP (HL)
JR NZ,.L4
INC HL
INC DE
LD A,(DE)
OR A
JR Z,.L6
LD A,(HL)
CP '\\'
JR NZ,.L3
.L4 POP HL
LD DE,0x000F
ADD HL,DE
EX DE,HL
POP HL
INC BC
LD A,(DE)
INC DE
INC A
JR NZ,.L2
.L5 POP AF
SETPORT WINSP.CPU1,,0
SCF
RET
.L6 LD A,IXL
OR A
JR Z,.L7
LD A,(HL)
INC HL
CP '\\'
JR Z,.L7
DEC HL
OR A
JR NZ,.L4
.L7 POP DE
INC SP
INC SP
LD A,E
ADD A,0x0F
LD E,A
JR NC,.L15
INC D
.L15 INC BC
LD A,(HL)
OR A
JR Z,.L8
LD A,(DE)
INC DE
INC A
JR Z,.L5
JR .L1
.L8 DEC BC
PUSH BC
LD HL,CPU1
LD BC,0x000E
.L9 INC HL
LD (HL),B
ADD HL,BC
LD A,(HL)
INC HL
INC A
JR NZ,.L9
POP HL
LD A,E
SUB 0x0E
LD E,A
JR NC,.L10
DEC D
.L10 LD IX,LeftPanel
BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG)
JR NZ,.L11
LD IX,RightPanel
.L11 BIT PANELFLAG.B_PRNDOSPATH,(IX+PANEL.PANELFLAG)
LD A,1
JR NZ,.L12
LD A,3
.L12 LD (DE),A
POP AF
SETPORT WINSP.CPU1,,0
LD E,L
LD D,H
LD BC,4
OR A
SBC HL,BC
JR NC,.L13
LD HL,0
.L13 LD (IX+PANEL.FFL),L
LD (IX+PANEL.FFH),H
EX DE,HL
OR A
SBC HL,DE
LD (IX+PANEL.CFL),L
LD (IX+PANEL.CFH),H
OR A
RET

1124
fnwin.a80 Normal file

File diff suppressed because it is too large Load Diff

2077
fnwork.a80 Normal file

File diff suppressed because it is too large Load Diff

BIN
font.raw Normal file

Binary file not shown.

BIN
iff_font.raw Normal file

Binary file not shown.

20
plugins/build_all.bat Normal file
View File

@ -0,0 +1,20 @@
@echo off
cls
cd cdplayer
call build
cd ..\date
call build
cd ..\test
call build
cd ..\calc
call build
cd ..\fneditor
call build
cd ..\fnviewer
call build
cd ..\help
call build
cd..

21
plugins/calc/build.bat Normal file
View File

@ -0,0 +1,21 @@
@echo off
if not exist tmp md tmp
set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad\sprinter_src\tools\
set includes=d:\yad\svn\pentevo\rom;d:\yad\sprinter_src\;d:\yad\sprinter_src\flexnav\src\
asl -U -L -C -x -olist tmp\calc.lst -i %includes% calc.a80 || goto error
p2bin calc.p ..\calc.flx -r $-$ -k
echo ########################
echo # -= End Compile Ok =- #
echo ########################
goto exit
:error
echo #######################
echo # -= Error Compile =- #
echo #######################
:exit

348
plugins/calc/calc.a80 Normal file
View File

@ -0,0 +1,348 @@
; LAST UPDATE: 20.03.2025 savelij
include macros.a80
include fn_const.a80
include fn_macros.a80
include ports_sp.a80
include define_sp.a80
include macros_sp.a80
include dss_sp.a80
org PluginOrg ; #C000 - Header lenght
; Flex Navigator plugin header
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw PluginEntry ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
PluginEntry:
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 242,80,155,97
W_FILL 4,2,147,10,COLORI.BLACK
W_TEXT 6,3,COLORI.WHITE,"Calculator"
W_HORIZLINE 1,13,154
W_BORDER 8,19,139,11
W_BUTTON 8,34,26,13
W_BUTTON 36,34,26,13
W_BUTTON 64,34,26,13
W_BUTTON 92,34,26,13
W_BUTTON 120,34,26,13
W_BUTTON 8,49,26,13
W_BUTTON 36,49,26,13
W_BUTTON 64,49,26,13
W_BUTTON 92,49,26,13
W_BUTTON 120,49,26,13
W_BUTTON 8,64,26,13
W_BUTTON 36,64,26,13
W_BUTTON 64,64,26,13
W_BUTTON 92,64,26,13
W_BUTTON 120,64,26,28
W_BUTTON 8,79,26,13
W_BUTTON 36,79,26,13
W_BUTTON 64,79,26,13
W_BUTTON 92,79,26,13
W_END
ld ix, 16h
ld hl, asc_C36E ; "7"
ld de, 107h
ld bc, 75h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C370 ; "8"
ld de, 123h
ld bc, 75h
ld a, 80h
call JUMPS.PrnRangPathC
sub_C103: ld hl, asc_C372 ; "9"
ld de, 140h
ld bc, 75h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C37F ; "/"
ld de, 15Bh
ld bc, 75h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C374 ; "C"
ld de, 177h
ld bc, 75h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C368 ; "4"
ld de, 107h
ld bc, 84h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C36A ; "5"
ld de, 123h
ld bc, 84h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C36C ; "6"
ld de, 140h
ld bc, 84h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C37D ; "*"
ld de, 15Bh
ld bc, 84h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C376 ; "CE"
ld de, 178h
ld bc, 84h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C362 ; "1"
ld de, 107h
ld bc, 93h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C364 ; "2"
ld de, 123h
ld bc, 93h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C366 ; "3"
ld de, 140h
ld bc, 93h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C37B ; "-"
ld de, 15Bh
ld bc, 93h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C387 ; "="
ld de, 178h
ld bc, 9Ah
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C360 ; "0"
ld de, 107h
ld bc, 0A2h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C381 ; "+/-"
ld de, 123h
ld bc, 0A2h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C385 ; "."
ld de, 13Fh
ld bc, 0A2h
ld a, 80h
call JUMPS.PrnRangPathC
ld hl, asc_C379 ; "+"
ld de, 15Bh
ld bc, 0A2h
ld a, 80h
call JUMPS.PrnRangPathC
call JUMPS.ResFire
loc_C1F4: call sub_C324
loc_C1F7: ld ix, PluginMouseTab
call JUMPS.TestCoords
SPDSS DSSF.SCANKEY
jp z, loc_C1F7
ld a, b
or a
jp nz, loc_C1F7
ld a, e
cp '0'
jp z, loc_C2CD
cp '1'
jp z, loc_C2CD
cp '2'
jp z, loc_C2CD
cp '3'
jp z, loc_C2CD
cp '4'
jp z, loc_C2CD
cp '5'
jp z, loc_C2CD
cp '6'
jp z, loc_C2CD
cp '7'
jp z, loc_C2CD
cp '8'
jp z, loc_C2CD
cp '9'
jp z, loc_C2CD
cp '.'
jp z, loc_C2CD
cp 'S'
jp z, loc_C283
cp 's'
jp z, loc_C283
cp 'R'
jp z, loc_C266
cp 'r'
jp z, loc_C266
cp 8
jp z, loc_C304
cp 1Bh
jp nz, loc_C1F4
WINDOWCLOSE
or a
ret
loc_C266: ld a, 20h ; ' '
ld (byte_C33F), a
ld a, 30h ; '0'
ld (byte_C340), a
xor a
ld (byte_C33E), a
ld (byte_C33D), a
ld b, 0Ah
ld hl, byte_C341
loc_C27C: ld (hl), a
inc hl
djnz loc_C27C
jp loc_C1F4
loc_C283: ld hl, byte_C340
ld a, (hl)
cp 30h ; '0'
jp z, loc_C1F7
ld hl, byte_C33F
ld a, (hl)
xor 0Dh
ld (hl), a
jp loc_C1F4
loc_C296: ld a, '0'
jp loc_C2CD
loc_C29B: ld a, '1'
jp loc_C2CD
loc_C2A0: ld a, '2'
jp loc_C2CD
loc_C2A5: ld a, '3'
jp loc_C2CD
loc_C2AA: ld a, '4'
jp loc_C2CD
loc_C2AF: ld a, '5'
jp loc_C2CD
loc_C2B4: ld a, '6'
jp loc_C2CD
loc_C2B9: ld a, '7'
jp loc_C2CD
loc_C2BE: ld a, '8'
jp loc_C2CD
loc_C2C3: ld a, '9'
jp loc_C2CD
loc_C2C8: ld a, '.'
jp loc_C2CD
loc_C2CD: ld c, a
ld a, (byte_C33E)
cp 0Bh
jp z, loc_C1F4
ld e, a
ld d, 0
ld hl, byte_C340
ld a, (hl)
cp '0'
jr nz, loc_C2E7
ld a, c
cp '0'
jp z, loc_C1F4
loc_C2E7: ld a, c
cp '.'
jr nz, loc_C2F8
ld a, (byte_C33D)
or a
jp nz, loc_C1F4
ld a, 0FFh
ld (byte_C33D), a
loc_C2F8: add hl, de
ld (hl), c
ld a, (byte_C33E)
inc a
ld (byte_C33E), a
jp loc_C1F4
loc_C304: ld a, (byte_C33E)
cp 1
jp z, loc_C266
dec a
ld (byte_C33E), a
ld e, a
ld d, 0
ld hl, byte_C340
add hl, de
ld a, (hl)
cp '.'
jr nz, loc_C320
ld a, d
ld (byte_C33D), a
loc_C320: ld (hl), d
jp loc_C1F4
sub_C324: ld hl, asc_C34D
call sub_C32D
ld hl, byte_C33F
sub_C32D: ld ix, 48h
ld de, 183h
ld bc, 65h
ld a, 80h
call JUMPS.PrnRangPathR
ret
byte_C33D: db 0
byte_C33E: db 0
byte_C33F: db 20h
byte_C340: db 30h
byte_C341: db 0Ch DUP 0
asc_C34D: DB " ",0
asc_C360: DB "0",0
asc_C362: DB "1",0
asc_C364: DB "2",0
asc_C366: DB "3",0
asc_C368: DB "4",0
asc_C36A: DB "5",0
asc_C36C: DB "6",0
asc_C36E: DB "7",0
asc_C370: DB "8",0
asc_C372: DB "9",0
asc_C374: DB "C",0
asc_C376: DB "CE",0
asc_C379: DB "+",0
asc_C37B: DB "-",0
asc_C37D: DB "*",0
asc_C37F: DB "/",0
asc_C381: DB "+/-",0
asc_C385: DB ".",0
asc_C387: DB "=",0
PluginMouseTab: dw 0x00FA,0x0114,0x0072,0x007F,0x0021,0x0000,loc_C2B9,0x0000
dw 0x0116,0x0130,0x0072,0x007F,0x0021,0x0000,loc_C2BE,0x0000
dw 0x0132,0x014C,0x0072,0x007F,0x0021,0x0000,loc_C2C3,0x0000
dw 0x014E,0x0168,0x0072,0x007F,0x0021,0x0000,loc_C266,0x0000
dw 0x016A,0x0184,0x0072,0x007F,0x0021,0x0000,loc_C266,0x0000
dw 0x00FA,0x0114,0x0081,0x008E,0x0021,0x0000,loc_C2AA,0x0000
dw 0x0116,0x0130,0x0081,0x008E,0x0021,0x0000,loc_C2AF,0x0000
dw 0x0132,0x014C,0x0081,0x008E,0x0021,0x0000,loc_C2B4,0x0000
dw 0x014E,0x0168,0x0081,0x008E,0x0021,0x0000,loc_C266,0x0000
dw 0x016A,0x0184,0x0081,0x008E,0x0021,0x0000,loc_C304,0x0000
dw 0x00FA,0x0114,0x0090,0x009D,0x0021,0x0000,loc_C29B,0x0000
dw 0x0116,0x0130,0x0090,0x009D,0x0021,0x0000,loc_C2A0,0x0000
dw 0x0132,0x014C,0x0090,0x009D,0x0021,0x0000,loc_C2A5,0x0000
dw 0x014E,0x0168,0x0090,0x009D,0x0021,0x0000,loc_C266,0x0000
dw 0x016A,0x0184,0x0090,0x00AC,0x0021,0x0000,loc_C266,0x0000
dw 0x00FA,0x0114,0x009F,0x00AC,0x0021,0x0000,loc_C296,0x0000
dw 0x0116,0x0130,0x009F,0x00AC,0x0021,0x0000,loc_C283,0x0000
dw 0x0132,0x014C,0x009F,0x00AC,0x0021,0x0000,loc_C2C8,0x0000
dw 0x014E,0x0168,0x009F,0x00AC,0x0021,0x0000,loc_C266,0x0000
dw 8000h

21
plugins/cdplayer/INFO Normal file
View File

@ -0,0 +1,21 @@
INFO FILE CDPLAYER.FLX
MakeWindow 01
x0=78 y0=79
dx=484 dy=96
02|FILL (82,81) 464x10 44
01|STR (86,83) 4F 'SHAOS CD-Player v1.0 beta1'
05|BUTTON (546,81) 12x10 80 'x' [546,558,81,91]
03|BUTT0 (86,94) 268x38 [86,354,94,132]
02|FILL (88,95) 264x36 00
04|BUTTON (360,94) 116x18 [360,476,94,112]
04|BUTTON (480,94) 36x18 [480,516,94,112]
04|BUTTON (520,94) 36x18 [520,556,94,112]
04|BUTTON (360,114) 36x18 [360,396,114,132]
04|BUTTON (400,114) 36x18 [400,436,114,132]
04|BUTTON (440,114) 36x18 [440,476,114,132]
04|BUTTON (480,114) 36x18 [480,516,114,132]
04|BUTTON (520,114) 36x18 [520,556,114,132]
00|END
MakeWindow 7F

View File

@ -0,0 +1,21 @@
@echo off
if not exist tmp md tmp
set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad\sprinter_src\tools\
set includes=d:\yad\svn\pentevo\rom;d:\yad\sprinter_src\;d:\yad\sprinter_src\flexnav\src\
asl -U -L -C -x -olist tmp\flx-date.lst -i %includes% cdplayer.a80 || goto error
p2bin cdplayer.p ..\cdplayer.flx -r $-$ -k
echo ########################
echo # -= End Compile Ok =- #
echo ########################
goto exit
:error
echo #######################
echo # -= Error Compile =- #
echo #######################
:exit

138
plugins/cdplayer/cd.a80 Normal file
View File

@ -0,0 +1,138 @@
; LAST UPDATE: 03.02.2025 savelij
cd_play: db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x77,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x77,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x77,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x77,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x77,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x77,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
cd_paus: db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
cd_stop: db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
cd_ll: db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x88,0x70,0x88,0x88,0x88,0x88,0x70,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x70,0x00,0x88,0x88,0x88,0x70,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x88,0x70,0x00,0x00,0x88,0x88,0x70,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x70,0x00,0x00,0x00,0x88,0x70,0x00,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x70,0x00,0x00,0x00,0x88,0x70,0x00,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x88,0x70,0x00,0x00,0x88,0x88,0x70,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x70,0x00,0x88,0x88,0x88,0x70,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x88,0x70,0x88,0x88,0x88,0x88,0x70,0x88,0x88
db 0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
cd_l: db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x88,0x88,0x88,0x88,0x70,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x88,0x88,0x88,0x70,0x00,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x88,0x88,0x70,0x00,0x00,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x00,0x88,0x70,0x00,0x00,0x00,0x88,0x88,0x88
db 0x88,0x88,0x88,0x70,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x00,0x88,0x70,0x00,0x00,0x00,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x88,0x88,0x70,0x00,0x00,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x88,0x88,0x88,0x70,0x00,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x88,0x88,0x88,0x88,0x70,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
cd_r: db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x07,0x88,0x88,0x88,0x88,0x07,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x07,0x88,0x88,0x88,0x00,0x07,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x07,0x88,0x88,0x00,0x00,0x07,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x07,0x88,0x00,0x00,0x00,0x07,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x07,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x07,0x88,0x00,0x00,0x00,0x07,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x07,0x88,0x88,0x00,0x00,0x07,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x07,0x88,0x88,0x88,0x00,0x07,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x07,0x88,0x88,0x88,0x88,0x07,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
cd_rr: db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x07,0x88,0x88,0x88,0x88,0x07,0x88,0x88,0x88,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x07,0x88,0x88,0x88,0x00,0x07,0x88,0x88,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x07,0x88,0x88,0x00,0x00,0x07,0x88,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x00,0x07,0x88,0x00,0x00,0x00,0x07,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x00,0x07,0x88,0x00,0x00,0x00,0x07,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x00,0x07,0x88,0x88,0x00,0x00,0x07,0x88,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x00,0x07,0x88,0x88,0x88,0x00,0x07,0x88,0x88,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x07,0x88,0x88,0x88,0x88,0x07,0x88,0x88,0x88,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
cd_ejec: db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x77,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x07,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x00,0x07,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x00,0x00,0x00,0x07,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88
db 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88

View File

@ -0,0 +1,253 @@
; LAST UPDATE: 20.03.2025 savelij
;// DEVICE ZXSPECTRUM128
;// include '../FPLUGIN.INC'
include macros.a80
include fn_const.a80
include fn_macros.a80
include accel_sp.a80
include ports_sp.a80
include define_sp.a80
include macros_sp.a80
include dss_sp.a80
org PluginOrg ; #C000 - Header lenght
; Flex Navigator plugin header
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw 0x0000 ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
;// include 'dos_equ.inc'
PluginEntry:
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 78,79,484,72
W_FILL 4,2,464,10,COLORI.BLUE + COLORP.BLUE
W_TEXT 8,4,COLORI.WHITE + COLORP.BLUE,"SHAOS CD-Player v1.0 beta1"
W_BUTTONTEXT 468,2,12,10,COLORP.HIGHGRAY,"x"
W_BORDER 8,15,268,38
W_FILL 10,16,264,36,COLORI.BLACK
W_BUTTON 282,15,116,18
W_BUTTON 402,15,36,18
W_BUTTON 442,15,36,18
W_BUTTON 282,35,36,18
W_BUTTON 322,35,36,18
W_BUTTON 362,35,36,18
W_BUTTON 402,35,36,18
W_BUTTON 442,35,36,18
W_HORIZLINE 2,56,480
W_END
call JUMPS.ResFire
call shows
ld hl,cd_play
ld ix,201
ld iy,95
call show
ld hl,cd_paus
ld ix,241
ld iy,95
call show
ld hl,cd_stop
ld ix,261
ld iy,95
call show
ld hl,cd_ll
ld ix,181
ld iy,115
call show
ld hl,cd_l
ld ix,201
ld iy,115
call show
ld hl,cd_r
ld ix,221
ld iy,115
call show
ld hl,cd_rr
ld ix,241
ld iy,115
call show
ld hl,cd_ejec
ld ix,261
ld iy,115
call show
call shaos
call CDinit
plugin_loop: ld ix, PluginMouseTab
call JUMPS.TestCoords
; ld c, 0x31
; rst 0x10
SPDSS DSSF.SCANKEY
jr z, plugin_loop
ld a, b
or a
jr nz, plugin_loop
ld a, e
cp 0x1B
jr z, PluginExit
cp 0x0D
jr nz, plugin_loop
PluginExit:
WINDOWCLOSE
or a ; cf = 0
ret
Ok: ld HL,String
ld DE,0x00CA
ld BC,0x00A0
ld A,0x80
call JUMPS.PrnTxtLnIFF
ret
; hl - bitmap 32x16 for 16-color mode
; ix,iy - coords (320x256)
show:
; in a,(82h)
GETPORT WINSP.CPU0
ld (shwin),a
; ld a,50h
; out (82h),a
SETPORT WINSP.CPU0,0x50
push ix
pop de
push iy
pop bc
ld b,16
show1: ld a,c
; out (89h),a
SETPORT WINSP.Y_PORT,,0
push de
di
; ACC_SetBlockSize
ACCEL ACCELCMD.SET_BUFFER
ld a,16
; ACC_CopyBlock
ACCEL ACCELCMD.COPY
ld a,(hl)
ld (de),a
; ACC_Off
ACCEL ACCELCMD.OFF
ei
ld de,16
add hl,de
pop de
inc c
dec b
jp nz,show1
; ld a,0xFF
; out (89h),a
SETPORT WINSP.Y_PORT,0xFF
ld a,(shwin)
; out (82h),a
SETPORT WINSP.CPU0,,0
ret
shwin db 0
; a - digit
; ix,iy - coords (320x256)
showd: rlca
ld e,0
ld d,a
ld hl,digit0
add hl,de
call show
ld de,16
add iy,de
call show
ret
; Show Digit string
shows: ld ix,46
ld iy,97
ld c,8
ld hl,Digits
shows1: push bc
push hl
push iy
ld a,(hl)
call showd
ld bc,16
add ix,bc
pop iy
pop hl
pop bc
inc hl
dec c
jp nz,shows1
ret
include cdrom.a80
CDinit: call CD_INI
jr nc,noCD
yesCD: call SAVE_BUF
ld hl,CD_BUF
ld bc,54
add hl,bc
ld de,msg_
yesCD1: ld a,(hl)
ld (de),a
or a
jr z,yesCD0
inc hl
inc de
jr yesCD1
yesCD0: ld hl,msgY
ld a,0x80
jr CDprn
noCD: ld hl,msgN
ld a,0x81
CDprn: ld de,84
ld bc,140
call JUMPS.PrnTxtLnIFF
ret
msgY db "CD-ROM is present "
msg_ DB 100 DUP 0
msgN db "CD-ROM is absent",0
CDplay: ld hl,AP_PLA
call ATAPI
ret
CDejec: ld hl,AP_CD2
call ATAPI
ret
Digits db 0x00,0x00,0x0B,0x00,0x00,0x0A,0x00,0x00
PluginMouseTab: dw 546,558,81,91,0x21,0,PluginExit,PluginExit
dw 360,476, 94,112,0x01,0,CDplay,0
dw 480,516, 94,112,0x01,0,0,0
dw 520,556, 94,112,0x01,0,0,0
dw 360,396,114,132,0x01,0,0,0
dw 400,436,114,132,0x01,0,0,0
dw 440,476,114,132,0x01,0,0,0
dw 480,516,114,132,0x01,0,0,0
dw 520,556,114,132,0x01,0,CDejec,0
PluginMT2: dw 252,324,138,156,0x01,0,Ok,0
dw 0x8000
StringBuf: db 16,1
db 0,0,0
dw 0x00CC,0x0057,0x00E8
db 0xF0
String: DB 16 DUP 0
DB 13 DUP 0
include shaos.a80
include cd.a80
include digits.a80
PluginEnd:
;// savebin 'Build/FN/Plugins/cdplayer.flx',PluginStart,PluginEnd-PluginStart

253
plugins/cdplayer/cdrom.a80 Normal file
View File

@ -0,0 +1,253 @@
; LAST UPDATE: 11.03.2025 savelij
; CDROM.A - Alexander Shabarshin 13.10.2002
IDE_DAW equ 0x0150
IDE_DAR equ 0x0050
IDE_HDW equ 0x4152
IDE_HDR equ 0x4052
IDE_COM equ 0x4153
IDE_STA equ 0x4053
IDE_CIL equ 0x0154
IDE_CIH equ 0x0155
; Based on Vlad Sotnikov source files
; Wait when device will free
NO_BSY: ld bc,IDE_STA
in a,(c)
rlca
ret nc
jr NO_BSY
; Wait ready data transfer
WAIT_DRQ: ld bc,IDE_STA
in a,(c)
bit 3,a
ret nz
jr WAIT_DRQ
; Error test
; ---
; fc - error
IS_ERROR: ld bc,IDE_STA
in a,(c)
rrca
ret
; Set Slave device
SEL_SLAVE: ld a,0xB0
jr SEL_DEV
; Set Master device
SEL_MASTER: ld a,0xA0
jr SEL_DEV
; Set device (Slave or Master)
; A - 0xA0 or 0xB0
; ---
; fc - 1 ???
SEL_DEV: ld bc,IDE_HDW
out (c),a
ld bc,IDE_HDR
in a,(c)
rlca
ret
; Save HL to cilinder register
HL_TO_LEN: ld bc,IDE_CIL
out (c),l
ld bc,IDE_CIH
out (c),h
ret
; Load HL from cilinder register
LEN_TO_HL: ld bc,IDE_CIL
in l,(c)
ld bc,IDE_CIH
in h,(c)
ret
; Read from CD-ROM sector 2048 bytes
CD_READ: call NO_BSY
call WAIT_DRQ
ld hl,CD_BUF
ld bc,IDE_DAR
ld d,0
CD_LOOP: ini
ini
ini
ini
ini
ini
ini
ini
dec d
jr nz,CD_LOOP
ld hl,CD_BUF
ld bc,1024
CD_TRANS: ld d,(hl)
inc hl
ld e,(hl)
dec hl
ld (hl),e
inc hl
ld (hl),d
inc hl
dec bc
ld a,b
or c
jr nz,CD_TRANS
ret
; Send ATAPI command
; HL - address of 12-bytes command
SEND_ATAPI: ld de,CD_BUF
di
; ACC_SetBlockSize
ACCEL ACCELCMD.SET_BUFFER
ld a,12
; ACC_CopyBlock
ACCEL ACCELCMD.COPY
ld a,(hl)
ld (de),a
; ACC_Off
ACCEL ACCELCMD.OFF
ei
SA0: call NO_BSY
; call IS_ERROR
; jr c,SA0
SA1: call SEL_SLAVE
call NO_BSY
SA2: ld bc,IDE_STA
in a,(c)
and 0x40
jr z,SA2
ld a,0xA0
ld bc,IDE_COM
out (c),a
SA3: call NO_BSY
call IS_ERROR
jp c,SA0
call WAIT_DRQ
ld hl,CD_BUF
ld bc,IDE_DAW
outi
outi
outi
outi
outi
outi
outi
outi
outi
outi
outi
outi
ret
; Initialisation slave CD-ROM
; ---
; fc - CD-ROM exists
CD_INI: ld de,0xFFFF
call SEL_SLAVE
ld bc,IDE_STA
in a,(c)
rlca
call c,NO_CDROM
ld hl,0
call HL_TO_LEN
ld a,0xEC
ld bc,IDE_COM
out (c),a
call NO_BSY
call LEN_TO_HL
; call whl
; call nln
push hl
pop de
ld bc,0xEB14
or a
sbc hl,bc
; call nz,NO_CDROM
ld a,0xA1
ld bc,IDE_COM
out (c),a
call CD_READ
ld hl,CD_BUF
; inc hl
ld a,(hl)
and 0x1F
cp 5
jr nz,NO_CDROM
scf
ret
NO_CDROM: pop hl
xor a
ret
SAVE_BUF: push hl
ld hl,FNAME
; ld c,Dss.Create
; ld a,0
; rst ToDSS
SPDSS DSSF.CREATE,,0
ld (FHAND),a
; ld c,Dss.Write
ld a,(FHAND)
ld de,2048
ld hl,CD_BUF
; rst ToDSS
SPDSS DSSF.WRITE
; !FIXIT WRITE ERROR
; ld c,0x12
ld a,(FHAND)
; rst ToDSS
SPDSS DSSF.CLOSE
pop hl
ret
FNAME db "cd_buf.dat",0
FHAND db 0
AP_NOP: ld hl,AP_00
call SEND_ATAPI
ret
; ATAPI command
; HL - address of ATAPI command (AP_*)
ATAPI:
AP_COM: call SEND_ATAPI
ret
AP_00 db 0x00
DB 11 DUP 0
AP_TR0 db 0x01
DB 11 DUP 0
AP_CD1 db 0x1B
DB 3 DUP 0
db 1
DB 7 DUP 0
AP_CD2 db 0x1B
DB 3 DUP 0
db 2
DB 7 DUP 0
AP_CD3 db 0x1B
DB 3 DUP 0
db 3
DB 7 DUP 0
AP_PL0 db 0x4B
DB 11 DUP 0
AP_PL1 db 0x4B
DB 7 DUP 0
db 1
DB 3 DUP 0
AP_PLA db 0x47
DB 2 DUP 0
db 0,2,0
db 80,0,74
DB 3 DUP 0
CD_BUF DB 2048 DUP 0

384
plugins/cdplayer/digits.a80 Normal file
View File

@ -0,0 +1,384 @@
digit0 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digit1 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digit2 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digit3 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digit4 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digit5 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digit6 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digit7 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digit8 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digit9 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digi_sp db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
digi_ss db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

View File

@ -0,0 +1,81 @@
; LAST UPDATE: 03.02.2025 savelij
; Shaos face
shaos: ld hl,shaosraw
ld de,44
ld c,95
ld b,36
; in a,(82h)
GETPORT WINSP.CPU0
ld (shaowin),a
; ld a,50h
; out (82h),a
SETPORT WINSP.CPU0,0x50
shaos1: ld a,c
; out (89h),a
SETPORT WINSP.CPU0,,0
push de
di
; ACC_SetBlockSize
ACCEL ACCELCMD.SET_BUFFER
ld a,32
; ACC_CopyBlock
ACCEL ACCELCMD.COPY
ld a,(hl)
ld (de),a
; ACC_Off
ACCEL ACCELCMD.OFF
ei
ld de,32
add hl,de
pop de
inc c
dec b
jp nz,shaos1
; ld a,0xFF
; out (89h),a
SETPORT WINSP.Y_PORT,0xFF
ld a,(shaowin)
; out (82h),a
SETPORT WINSP.CPU0,,0
ret
shaowin db 0
shaosraw: db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x88,0x70,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x88,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x88,0x77,0x00,0x00,0x70,0x77,0x07,0x00,0x70,0x70,0x70,0x07,0x00,0x70,0x07,0x77,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x77,0x00,0x00,0x70,0x70,0x70,0x07,0x07,0x07,0x07,0x00,0x07,0x00,0x70,0x07,0x00,0x07,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0x00,0x00,0x70,0x70,0x00,0x70,0x70,0x70,0x70,0x70,0x70,0x07,0x00,0x70,0x70,0x70,0x77,0x07,0x07,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xFF,0x87,0x00,0x70,0x70,0x70,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x07,0x07,0x07,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x78,0xFF,0xFF,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xF7,0x00,0x70,0x70,0x70,0x70,0x07,0x07,0x00,0x07,0x00,0x77,0x07,0x00,0x70,0x00,0x70,0x70,0x77,0x70,0x70,0x70,0x70,0x07,0xFF,0xFF,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xF8,0x00,0x70,0x70,0x00,0x00,0x07,0x00,0x70,0x77,0x77,0x88,0x77,0x77,0x77,0x00,0x70,0x07,0x07,0x00,0x70,0x70,0x70,0x70,0x70,0x78,0xFF,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xF8,0x00,0x70,0x07,0x07,0x07,0x70,0x77,0x78,0x88,0x8F,0x88,0x88,0x88,0x88,0x77,0x77,0x07,0x07,0x07,0x00,0x70,0x70,0x70,0x00,0x77,0xFF,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xF7,0x77,0x70,0x70,0x70,0x77,0x78,0x88,0x88,0xF8,0xF8,0x88,0x88,0x78,0x78,0x88,0x77,0x70,0x70,0x77,0x70,0x70,0x07,0x07,0x70,0x07,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xF8,0x7F,0x77,0x77,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x78,0x87,0x87,0x87,0x88,0x77,0x77,0x77,0x70,0x70,0x77,0x07,0x07,0x00,0x07,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xF8,0x87,0x88,0x87,0x88,0x88,0x87,0x87,0x87,0x88,0x88,0x88,0x87,0x87,0x88,0x88,0x87,0x77,0x70,0x77,0x07,0x07,0x70,0x70,0x77,0x07,0x7F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0x77,0x88,0x87,0x87,0x78,0x78,0x77,0x77,0x87,0x87,0x78,0x78,0x78,0x77,0x77,0x88,0x87,0x78,0x77,0x77,0x70,0x70,0x77,0x70,0x00,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xF8,0x77,0x78,0x78,0x77,0x78,0x87,0x87,0x87,0x87,0x78,0x78,0x78,0x78,0x78,0x88,0x78,0x78,0x87,0x77,0x77,0x77,0x07,0x70,0x77,0x07,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xF8,0x07,0x88,0x87,0x87,0x87,0x88,0x88,0x88,0x78,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x77,0x88,0x87,0x70,0x77,0x77,0x78,0x88,0x87,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0x78,0x77,0x88,0x78,0x78,0x78,0x88,0x88,0x88,0xF8,0xF8,0x88,0x88,0x77,0x78,0x78,0x87,0x78,0x87,0x77,0x07,0x77,0x88,0x77,0x77,0x07,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0x77,0x87,0x87,0x87,0x87,0x87,0x78,0x88,0x77,0x77,0x77,0x88,0x77,0x87,0x78,0x77,0x88,0x88,0x88,0x77,0x77,0x78,0x87,0x77,0x88,0x77,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xF7,0x77,0x77,0x87,0x77,0x77,0x07,0x00,0x70,0x07,0x07,0x07,0x70,0x77,0x77,0x77,0x77,0x77,0x87,0x88,0x88,0x78,0x87,0x77,0x07,0x77,0x78,0xFF,0xFF,0xFF
db 0xFF,0xFF,0x87,0x00,0x70,0x77,0x77,0x77,0x07,0x07,0x07,0x00,0x70,0x70,0x70,0x07,0x07,0x77,0x77,0x87,0x78,0x78,0x88,0x78,0x88,0x70,0x70,0x77,0x7F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0x80,0x07,0x00,0x07,0x77,0x77,0x70,0x00,0x70,0x77,0x07,0x07,0x70,0x77,0x77,0x78,0x77,0x77,0x87,0x87,0x88,0x88,0x87,0x77,0x70,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xF8,0x07,0x00,0x00,0x78,0x87,0x77,0x77,0x07,0x07,0x77,0x77,0x77,0x77,0x88,0x87,0x87,0x87,0x78,0x78,0x88,0x88,0x77,0x78,0x87,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xFF,0x07,0x77,0x07,0x88,0x87,0x77,0x77,0x70,0x77,0x07,0x77,0x78,0x88,0x88,0x88,0x78,0x78,0x78,0x88,0x78,0x88,0x78,0xF8,0x87,0xFF,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xFF,0x70,0x77,0x77,0xF8,0x88,0x87,0x88,0x87,0x77,0x77,0x77,0x87,0x88,0x78,0x77,0x87,0x87,0x87,0x87,0x87,0x88,0x88,0x88,0x77,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xF8,0x77,0x77,0x78,0xFF,0x87,0x78,0x77,0x78,0x88,0x88,0x88,0x78,0x87,0x87,0x77,0x77,0x87,0x78,0x77,0x87,0x88,0x77,0x77,0x77,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xFF,0x77,0x78,0x8F,0xF8,0x88,0x88,0x77,0x70,0x78,0x87,0x87,0x88,0x78,0x77,0x77,0x78,0x78,0x78,0x87,0x87,0x88,0x80,0x77,0x78,0x8F,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xFF,0x77,0x77,0x87,0x88,0x87,0x88,0x87,0x77,0x07,0x77,0x77,0x77,0x77,0x87,0x78,0x77,0x87,0x87,0x87,0x87,0x88,0x88,0x78,0xF7,0x77,0xFF,0xFF,0xFF
db 0xFF,0xFF,0xFF,0xFF,0x77,0x07,0x77,0x07,0x07,0x07,0x07,0x07,0x77,0x70,0x77,0x78,0x77,0x77,0x77,0x78,0x77,0x87,0x87,0x77,0x88,0x78,0xF8,0x70,0x00,0x07,0x77,0x7F
db 0xFF,0xFF,0xFF,0xFF,0xF7,0x70,0x77,0x70,0x70,0x77,0x77,0x77,0x88,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x77,0x8F,0x70,0x00,0x70,0x70,0x00,0x70
db 0xFF,0xFF,0xFF,0xFF,0xF8,0x77,0x77,0x77,0x77,0x77,0x77,0x87,0x87,0x77,0x77,0x77,0x77,0x77,0x77,0x87,0x77,0x77,0x77,0x77,0x88,0x77,0x00,0x70,0x70,0x70,0x70,0x70
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x77,0x77,0x07,0x07,0x07,0x07,0x00,0x70,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x87,0x77,0x00,0x70,0x70,0x07,0x07,0x07,0x07
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0x07,0x77,0x77,0x77,0x77,0x77,0x77,0x70,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x70,0x00,0x07,0x00,0x07,0x07,0x07,0x07,0x00
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x87,0x87,0x77,0x77,0x77,0x78,0x87,0x77,0x70,0x77,0x77,0x77,0x77,0x77,0x77,0x70,0x00,0x70,0x00,0x77,0x07,0x07,0x07,0x07,0x70
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x77,0x77,0x77,0x77,0x77,0x88,0x77,0x77,0x77,0x77,0x77,0x70,0x70,0x00,0x00,0x07,0x07,0x07,0x00,0x70,0x70,0x70,0x70,0x00
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x88,0x77,0x77,0x88,0x88,0x77,0x77,0x77,0x77,0x77,0x70,0x70,0x70,0x00,0x07,0x00,0x00,0x70,0x77,0x07,0x00,0x00,0x07,0x70
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x88,0x88,0x78,0x78,0x77,0x77,0x77,0x70,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x70,0x70,0x00,0x00,0x70,0x77,0x07,0x07
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0x77,0x77,0x70,0x70,0x70,0x70,0x07,0x07,0x00,0x70,0x00,0x07,0x00,0x70,0x70,0x07,0x07,0x00,0x70,0x07,0x07,0x70
db 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x87,0x70,0x70,0x77,0x70,0x07,0x00,0x00,0x00,0x00,0x07,0x00,0x70,0x07,0x00,0x70,0x00,0x70,0x70,0x77,0x70,0x77

21
plugins/date/build.bat Normal file
View File

@ -0,0 +1,21 @@
@echo off
if not exist tmp md tmp
set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad\sprinter_src\tools\
set includes=d:\yad\svn\pentevo\rom;d:\yad\sprinter_src\;d:\yad\sprinter_src\flexnav\src\
asl -U -L -C -x -olist tmp\date.lst -i %includes% date.a80 || goto error
p2bin date.p ..\date.flx -r $-$ -k
echo ########################
echo # -= End Compile Ok =- #
echo ########################
goto exit
:error
echo #######################
echo # -= Error Compile =- #
echo #######################
:exit

426
plugins/date/date.a80 Normal file
View File

@ -0,0 +1,426 @@
; LAST UPDATE: 31.03.2025 savelij
include macros.a80
include fn_const.a80
include fn_macros.a80
include macros_sp.a80
include dss_sp.a80
org PluginOrg
PluginStart: db "FLX-PLUG"
dw 0
dw PluginEntry
db 0
db 0,0,0
db "Date preferences plug-in for Flex Navigator",0
db "2003 (c) Mac Buster",0
db "$VER: 1.0 15-Jul-2003",0
PluginEntry:
.L1
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 152,96,336,66
W_FILL 4,2,328,10,COLORI.BLACK
W_TEXT 6,3,COLORI.WHITE," Date preferences v1.0"
W_HORIZLINE 1,13,336
W_HORIZLINE 17,28,304
W_HORIZLINE 17,46,304
W_TEXT 18,34,COLORP.HIGHGRAY,"Day"
aDay: EQU $ - STRLEN("Day") - 2
W_BORDER 38,33,56,10
W_ICONDOWNARROW 60,34
W_ICONUPARROW 76,34
W_TEXT 100,34,COLORP.HIGHGRAY,"Month"
aMonth: EQU $ - STRLEN("Month") - 2
W_BORDER 133,33,92,10
W_ICONDOWNARROW 191,34
W_ICONUPARROW 207,34
W_TEXT 230,34,COLORP.HIGHGRAY,"Year"
aYear: EQU $ - STRLEN("Year") - 2
W_BORDER 254,33,64,10
W_ICONDOWNARROW 285,34
W_ICONUPARROW 301,34
W_BUTTONTEXT 18,51,64,11,COLORP.HIGHGRAY," "
W_BUTTONTEXT 86,51,64,11,COLORP.HIGHGRAY," "
W_BUTTONTEXT 254,51,64,11,COLORP.HIGHGRAY," "
; W_TEXT 202,149,COLORP.HIGHGRAY,"Set"
; W_TEXT 270,149,COLORP.HIGHGRAY,"Reset"
; W_TEXT 438,149,COLORP.HIGHGRAY,"Quit"
; W_TEXT 320,114,COLORP.HIGHGRAY,"Today:"
W_END
ld ix,64
ld hl,aSet ; "Set"
ld de,202
ld bc,149
ld a,COLORP.HIGHGRAY;80h
call JUMPS.PrnRangPathC
ld hl,aReset ; "Reset"
ld de,270
ld bc,149
ld a,COLORP.HIGHGRAY;80h
call JUMPS.PrnRangPathC
ld hl,aQuit ; "Quit"
ld de,438
ld bc,149
ld a,COLORP.HIGHGRAY;80h
call JUMPS.PrnRangPathC
call GetSysTime
call InitDate
ld ix,320
ld hl,aToday ; "Today:"
ld de,320
ld bc,114
ld a,COLORP.HIGHGRAY;80h
call JUMPS.PrnRangPathC
call sub_C2B7
call PrintMonth
call PrintYear
call JUMPS.ResFire
_plugin_loop: ld ix,PluginMouseTab
call JUMPS.TestCoords
halt
SPDSS DSSF.SCANKEY
jr z,_plugin_loop
ld a,b
or a
jr nz,_plugin_loop
ld a,e
cp 1Bh
jr nz,_plugin_loop
PluginExit:
WINDOWCLOSE
and a
ret
IncDay: ld a,(max_date)
ld b,a
ld a,(Day)
cp b
jr nz,loc_C198
ld a,0
loc_C198: inc a
ld (Day),a
PrintDay: ld a,(Day)
ld l,a
ld h,0
add hl,hl
add hl,hl
ld de,Days0
add hl,de
ld ix,14h
ld de,0C3h
ld bc,82h
ld a,80h
call JUMPS.PrnRangPathL
ret
DecDay: ld a,(max_date)
ld b,a
ld a,(Day)
cp 1
jr nz,loc_C1C5
ld a,b
inc a
loc_C1C5: dec a
ld (Day),a
jr PrintDay
IncMonth: ld a,(Month)
or a
ret z
dec a
ld (Month),a
call sub_C268
call sub_C2B7
PrintMonth: ld hl,asc_C374
call sub_C1F3
ld a,(Month)
ld c,a
ld b,0FFh
ld hl, asc_C374+0Dh ; ""
loc_C1E9: ld a,(hl)
inc hl
or a
jr nz,loc_C1E9
inc b
ld a,c
cp b
jr nz,loc_C1E9
sub_C1F3: ld ix,40h ; '@'
ld de,13Ah
ld bc,82h
ld a,80h
call JUMPS.PrnRangPathC
ret
DecMonth: ld a,(Month)
cp 0Bh
ret z
inc a
ld (Month),a
call sub_C268
call sub_C2B7
jr PrintMonth
IncYear: ld hl, a0+4 ; " "
ld c,'0'
ld a,'9'
cp (hl)
jr nz,loc_C230
ld (hl),c
dec hl
cp (hl)
jr nz,loc_C230
ld (hl),c
dec hl
cp (hl)
jr nz,loc_C230
ld (hl),c
dec hl
cp (hl)
jr nz,loc_C230
ld (hl),c
dec (hl)
loc_C230: inc (hl)
PrintYear: ld ix,1Ah
ld hl, a0+1 ; " "
ld de,1A7h
ld bc,82h
ld a,80h
call JUMPS.PrnRangPathC
call sub_C268
call sub_C2B7
ret
DecYear: ld hl, a0+4 ; " "
ld c,'9'
ld a,'0'
cp (hl)
jr nz,loc_C265
ld (hl),c
dec hl
cp (hl)
jr nz,loc_C265
ld (hl),c
dec hl
cp (hl)
jr nz,loc_C265
ld (hl),c
dec hl
cp (hl)
jr nz,loc_C265
ld (hl),c
inc (hl)
loc_C265: dec (hl)
jr PrintYear
sub_C268: ld a,(Month)
cp 1
jr z,loc_C285
cp 3
jr z,loc_C27F
cp 5
jr z,loc_C27F
cp 0Ah
jr z,loc_C27F
ld a,1Fh
jr loc_C281
loc_C27F: ld a,1Eh
loc_C281: ld (max_date),a
ret
loc_C285: ld de, a0+1 ; " "
call JUMPS.ConvTxtNum16
push hl
pop bc
ld de,190h
push bc
call JUMPS.Divis16X16
pop bc
ld a,h
or l
jr z,loc_C2AF
ld de,4
push bc
call JUMPS.Divis16X16
pop bc
ld a,h
or l
jr nz,loc_C2B3
ld de,64h ; 'd'
call JUMPS.Divis16X16
ld a,h
or l
jr z,loc_C2B3
loc_C2AF: ld a,1Dh
jr loc_C281
loc_C2B3: ld a,1Ch
jr loc_C281
sub_C2B7: ld a,(Day)
ld b,a
ld a,(max_date)
cp b
jr nc,loc_C2C4
ld (Day),a
loc_C2C4: call PrintDay
ret
SetDate: ld de, a0+1 ; " "
call JUMPS.ConvTxtNum16
push hl
SPDSS DSSF.GETTIME,0
ld a,(Day)
ld d,a
ld a,(Month)
inc a
ld e,a
pop ix
SPDSS DSSF.SETTIME
call InitDate
jr loc_C2E9
ReadDate: call GetSysTime
loc_C2E9: call PrintDay
call PrintMonth
call PrintYear
ret
GetSysTime:
SPDSS DSSF.GETTIME,0
ld a,d
ld (Day),a
ld a,e
dec a
ld (Month),a
push ix
ld hl,a0 ; "0 "
ld b,5
loc_C307: ld (hl),30h ; '0'
inc hl
djnz loc_C307
pop hl
ld de, a0+1 ; " "
call JUMPS.ConvNumTxt16
InitDate: ld hl, aToday+6 ; ""
ld b,' '
loc_C318: ld (hl),0
inc hl
djnz loc_C318
ld a,(Day)
ld l,a
ld h,0
add hl,hl
add hl,hl
ld de,Days0
add hl,de
ld de, aToday+6 ; ""
ldi
ldi
ldi
ex de,hl
ld (hl),' '
inc hl
push hl
ld a,(Month)
ld c,a
ld b,0FFh
ld hl, asc_C374+0Dh ; ""
loc_C340: ld a,(hl)
inc hl
or a
jr nz,loc_C340
inc b
ld a,c
cp b
jr nz,loc_C340
pop de
loc_C34B: ld a,(hl)
or a
jr z,loc_C354
ld (de),a
inc hl
inc de
jr loc_C34B
loc_C354: ex de,hl
ld (hl),20h ; ' '
inc hl
ex de,hl
ld hl, a0+1 ; " "
ldi
ldi
ldi
ldi
ret
aSet: db "Set",0
aReset: db "Reset",0
aQuit: db "Quit",0
asc_C374: db " ",0
aJanuary: db "January",0
aFebruary: db "February",0
aMarch: db "March",0
aApril: db "April",0
aMay: db "May",0
aJune: db "June",0
aJuly: db "July",0
aAugust: db "August",0
aSeptember: db "September",0
aOctober: db "October",0
aNovember: db "November",0
aDecember: db "December",0
aToday: db "Today:",0
DB 31 DUP 0
Day: db 12h
Month: db 5
max_date: db 1Eh
a0: db "0 ",0
Days0: DB 4 DUP 0 ; ‹¨è­¨¥ 4 ­ã«ï,ç⮡ ­¥ ®â­¨¬ âì 1 ®â ­®¬¥à  ¤­ï
Days: db " 01",0
db " 02",0
db " 03",0
db " 04",0
db " 05",0
db " 06",0
db " 07",0
db " 08",0
db " 09",0
db " 10",0
db " 11",0
db " 12",0
db " 13",0
db " 14",0
db " 15",0
db " 16",0
db " 17",0
db " 18",0
db " 19",0
db " 20",0
db " 21",0
db " 22",0
db " 23",0
db " 24",0
db " 25",0
db " 26",0
db " 27",0
db " 28",0
db " 29",0
db " 30",0
db " 31",0
PluginMouseTab: dw 212,228,130,138,1,0,DecDay,0
dw 228,244,130,138,1,0,IncDay,0
dw 342,358,130,138,1,0,DecMonth,0
dw 358,374,130,138,1,0,IncMonth,0
dw 437,453,130,138,1,0,DecYear,0
dw 453,469,130,138,1,0,IncYear,0
dw 238,302,147,158,1,0,ReadDate,0
dw 170,234,147,158,1,0,SetDate,0
dw 406,470,147,158,33,0,PluginExit,0
dw 0x8000
PluginEnd:

View File

@ -0,0 +1,21 @@
@echo off
if not exist tmp md tmp
set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad\sprinter_src\tools\
set includes=d:\yad\svn\pentevo\rom;d:\yad\sprinter_src\;d:\yad\sprinter_src\flexnav\src\
asl -U -L -C -x -olist tmp\fneditor.lst -i %includes% femain.a80 || goto error
p2bin femain.p ..\fneditor.flx -r $-$ -k
echo ########################
echo # -= End Compile Ok =- #
echo ########################
goto exit
:error
echo #######################
echo # -= Error Compile =- #
echo #######################
:exit

View File

@ -0,0 +1,849 @@
; LAST UPDATE: 11.03.2025 savelij
INIT_VAR
SETVAR CursorX ;EQU 0x00
SETVAR StringX ;EQU 0x01
SETVAR CursAddX ;EQU 0x02
SETVAR CursorY ;EQU 0x03
SETVAR LenString ;EQU 0x04
SETVAR PrvLenStr ;EQU 0x05
SETVAR ReadyStr ;EQU 0x06
SETVAR ReadyFile ;EQU 0x07
LineBuffer := WorkBuffer+0x200
TempBuffer := WorkBuffer+0x300
;[]==========================================================[]
JP FileEditor
DZ FLEX_VERS.EDITOR
FileEditor CALL FELoadFile
RET C
call ReadEditorIni
LD IY,EditData
SUB A
LD (EditMode),A
LD (HEXmode),A
LD (IY+CursorX),A
LD (IY+StringX),A
LD (IY+CursAddX),A
LD (IY+CursorY),A
LD (IY+ReadyStr),A
LD (IY+ReadyFile),A
INC A
LD (FECrTimer),A
LD HL,0x0000
LD (CurLine),HL
LD (LineShift),HL
LD (FEPageShift),HL
CALL FEInitScreen
EditorBegin CALL InitStatus
CALL InitFile
CALL PrintPage
EditorLoop CALL FEChCursor
LD A,(EditMode)
OR A
JP NZ,HEditLoop
TEditLoop LD IX,FEASCIItab
CALL JUMPS.TestCoords
SPDSS DSSF.SCANKEY ;ަ¨¤ ¥¬ ­ ¦ â¨ï ª« ¢¨è
JR Z,EditorLoop
LD A,D
CP 0x44
JP Z,EditorExit
LD A,E ;…-ASCII ª®¤
CP 0x1B ;Esc
JP Z,EditorExit
LD HL,EditorLoop
PUSH HL
OR A
JP NZ,TInsertSymbol
LD A,D
CP 0x3B
JP Z,FEAbout
CP 0x3C
JP Z,SaveFile
CP 0x3E
JP Z,ChEditor ;<3B>à®á¬®âà ¢ HEX
CP 0x41
JP Z,FEPrintFile
CP 0x43
JP Z,EditorSetup
CP 0x4F
JP Z,TDeleteSymbol
CP 0x54
JP Z,TCursorLeft
CP 0x56
JP Z,TCursorRight
CP 0x58
JP Z,TCursorUp
CP 0x52
JP Z,TCursorDown
CP 0x57 ;Home
JP Z,THomeString
CP 0x51 ;End
JP Z,TEndString
CP 0x59 ;PageUp
JP Z,FETPageUp
CP 0x53 ;PageDown
JP Z,TPageDown
LD A,B
AND 0x30
CP 0x30
RET Z
bit 4,b ;<3B>ਠ­ ¦ â®¬ Alt
jr z,.ctrl
ld a,d
and 0x7f
CP 0x54 ;Alt+<
JP Z,THomeString
CP 0x56 ;Alt+>
JP Z,TEndString
ret
.ctrl: BIT 5,B ;<3B>ਠ­ ¦ â®¬ Ctrl
RET Z
LD A,D
AND 0x7F
CP 0x0E
JP Z,TDeleteWord
CP 0x15 ;Ctrl+Y - Delete String
JP Z,TDeleteString
CP 0x1E ;Ctrl+S
JP Z,SaveFile
CP 0x1F ;Ctrl+D
JP Z,TDoubleString
CP 0x19 ;Ctrl+P
JP Z,FEPrintFile
cp 0x2a ;Ctrl+Z
jp z,Undo
CP 0x54
JP Z,TWordLeft
CP 0x56
JP Z,TWordRight
CP 0x58
JP Z,TScrollUp
CP 0x52
JP Z,TScrollDown
CP 0x57 ;Ctrl+Home
JP Z,FETBegFile ;¢ ­ ç «® ä ©« 
CP 0x51 ;Ctrl+PageEnd
JP Z,FETEndFile ;¢ ª®­¥æ ä ©« 
RET
HEditLoop LD IX,FEHEXtab
CALL JUMPS.TestCoords
SPDSS DSSF.SCANKEY ;ަ¨¤ ¥¬ ­ ¦ â¨ï ª« ¢¨è
JP Z,EditorLoop
LD A,D ;
CP 0x44 ;F10
JP Z,EditorExit
LD A,E ;…-ASCII ª®¤
CP 0x1B ;Esc
JP Z,EditorExit
LD HL,EditorLoop
PUSH HL
OR A
JP NZ,HPutSymbol
LD A,D
CP 0x3B
JP Z,FEAbout
CP 0x3C
JP Z,SaveFile
CP 0x9E ;Ctrl+S
JP Z,SaveFile
CP 0x3E ;F4
JP Z,ChEditor ;<3B>à®á¬®âà ¢ ⥪áâ¥
CP 0x3F ;F5
JP Z,FEHGoTo ;<3B>¥à¥å®¤ ­   ¤à¥á ¯®«ì§®¢ â¥«ï
CP 0x41
JP Z,FEPrintFile
CP 0x43
JP Z,EditorSetup
CP 0x54
JP Z,HCursorLeft
CP 0x56
JP Z,HCursorRight
CP 0x57 ;Home
JP Z,HHomeString
CP 0x51 ;End
JP Z,HEndString
CP 0x58 ;‘â५ª  ¢¢¥àå
JP Z,HCursorUp
CP 0x52 ;‘â५ª  ¢­¨§
JP Z,HCursorDown
CP 0x59 ;PageUp
JP Z,FEHPageUp
CP 0x53 ;PageDown
JP Z,FEHPageDown
LD A,B
AND 0x30
CP 0x30
RET Z
BIT 5,B
RET Z
LD A,D
AND 0x7F
CP 0x58
JP Z,HScrollUp
CP 0x52
JP Z,HScrollDown
CP 0x57 ;Ctrl+PageUp
JP Z,FEHBegFile ;¢ ­ ç «® ä ©« 
CP 0x51 ;Ctrl+PageDown
JP Z,FEHEndFile ;¢ ª®­¥æ ä ©« 
CP 0x19 ;Ctrl+P
JP Z,FEPrintFile
RET
;[]==========================================================[]
EditingFile DUPL 0x30,0
EditMode DEFB 0x00
HEXmode DEFB 0x00
EditData DEFB 0x00 ;Cursor X
DEFB 0x00 ;String X
DEFB 0x00 ;Cursor add X
DEFB 0x00 ;Cursor Y
DEFB 0x00 ;Len String
DEFB 0x00 ;Previos Len String
DEFB 0x00 ;Ready String
DEFB 0x00 ;Ready File
CurLine DEFW 0x0000
EquipLines DEFW 0x0000
LineShift DEFW 0x0000
FEPageShift DEFW 0x0000
FETempShift DEFW 0x0000
FEFileLenght DEFW 0x0000 ;„«¨­  ä ©«  (16¡¨â)
FEEmptyLines DEFB 0x00
FEMemIndef DEFB 0x00
FEFHandle DEFB 0x00
FEReadLen
SaveLen DEFW 0x0000
;[]==========================================================[]
ChEditor LD HL,EditorBegin
EX (SP),HL
LD A,(EditMode)
XOR 0x01
LD (EditMode),A
JR NZ,HEXEdit
ASCIIEdit LD HL,(LineShift)
LD E,(IY+CursorX)
SRL E
LD D,0x00
ADD HL,DE
PUSH HL
INC HL
CALL FESearchUp
LD (LineShift),HL
LD (FEPageShift),HL
SUB A
LD (IY+StringX),A
LD (IY+CursorY),A
PUSH HL
CALL GetString
POP DE
POP HL
OR A
SBC HL,DE
LD A,L
CP (IY+LenString)
JR C,.L1
LD A,(IY+LenString)
.L1 DEC A
LD (IY+StringX),A
JP TCursorRight
HEXEdit CALL PutString
LD HL,(LineShift)
LD A,(IY+StringX)
CP (IY+LenString)
JR C,.L1
LD A,(IY+LenString)
.L1 LD E,A
LD D,0x00
ADD HL,DE
LD A,L
AND 0x0F
ADD A,A
LD (IY+CursorX),A
LD A,L
AND 0xF0
LD L,A
LD (LineShift),HL
LD (FEPageShift),HL
SUB A
LD (IY+CursorY),A
RET
;[]==========================================================[]
EditorExit CALL PutString
CALL FEResCursor
LD A,(IY+ReadyFile)
OR A
JP Z,QuitAsk;EditorE
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 208,80,224,60
W_FILL 4,2,216,10,COLORI.BLACK
W_TEXT 88,3,COLORI.WHITE,"Information"
W_TEXT 64,19,COLORP.HIGHGRAY,"File has been modified."
W_TEXT 96,29,COLORP.HIGHGRAY,"Save ?"
W_BUTTON 32,42,72,14
W_TEXT 58,45,COLORP.HIGHGRAY,"Yes"
W_BUTTON 120,42,72,14
W_TEXT 150,45,COLORP.HIGHGRAY,"No"
W_END
SureLoop LD IX,SureTab
CALL JUMPS.TestCoords
SPDSS DSSF.SCANKEY
JR Z,SureLoop
LD A,B
OR A
JR NZ,SureLoop
LD A,E
CP 0x1B
SCF
JR Z,SureExit
CP 0x0D
JR Z,SureExit
RES 5,A
CP 'N'
JR Z,SureExit
CP 'Y'
JR NZ,SureLoop
SureOkey CALL SaveFile
OR A
SureExit
WINDOWCLOSE
JP C,EditorLoop
EditorE LD A,(FEMemIndef)
SPDSS DSSF.FREEMEM
OR A
RET
;[]==========================================================[]
QuitAsk: ld a,0
.param EQU $-1
and a
jr z,EditorE
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 208,88,224,50
W_FILL 4,2,216,10,COLORI.BLACK
W_TEXT 104,3,COLORI.WHITE,"Quit"
W_TEXT 28,19,COLORP.HIGHGRAY,"Do you want to close the editor?"
W_BUTTON 32,32,72,14
W_TEXT 58,35,COLORP.HIGHGRAY,"Yes"
W_BUTTON 120,32,72,14
W_TEXT 150,35,COLORP.HIGHGRAY,"No"
W_END
FEQuitLoop: LD IX,FEQuitTab
CALL JUMPS.TestCoords
SPDSS DSSF.SCANKEY
JR Z,FEQuitLoop
LD A,B
OR A
JR NZ,FEQuitLoop
LD A,E
CP 0x1B
scf
JP Z,SureExit
CP 0x0D
JP Z,SureExit
RES 5,A
CP 'Y'
JP Z,SureExit
CP 'N'
JR NZ,FEQuitLoop
FEQuitAbort: SCF
JP SureExit
;[]==========================================================[]
FEInitScreen
MAKEWINDOW WINSUBOBJ.NOSTORE
W_MAIN 0,0,640,256
W_FILL 4,2,632,10,COLORI.BLACK
W_TEXT 16,3,COLORI.WHITE,"FN File Editor v\{FLEX_VERS.EDITOR}"
W_HORIZLINE 0,13,640
W_TEXT 8,17,COLORP.HIGHGRAY,"Editing:"
W_VERTICLINE 366,16,10
W_TEXT 400,17,COLORP.HIGHGRAY,"Line:"
W_TEXT 480,17,COLORP.HIGHGRAY,"Col:"
W_TEXT 552,17,COLORP.HIGHGRAY,"Free:"
W_HORIZLINE 0,27,640
W_HORIZLINE 0,227,640
W_ICONUPARROW 624,28
W_FILL 624,36,16,184,COLORI.HIGHGRAY
W_ICONDOWNARROW 624,220
W_END
SPDSS DSSF.CURDISK
LD HL,WorkBuffer
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
PUSH HL
SPDSS DSSF.CURDIR
POP HL
SUB A
.L1 INC HL
CP (HL)
JR NZ,.L1
DEC HL
LD A,0x5C
CP (HL)
INC HL
JR Z,.L2
LD (HL),A
INC HL
.L2 EX DE,HL
LD HL,EditingFile+33
SUB A
.L3 LDI
CP (HL)
JR NZ,.L3
LD (DE),A
LD IX,0x0130
LD HL,WorkBuffer
LD DE,0x0030
LD BC,0x0011
LD A,0x80
CALL JUMPS.PrnRangPathL
LD HL,0x01FC
LD DE,0x0003
LD B,0x08
EXX
LD HL,0x022E
LD DE,0x0003
LD B,0x08
EXX
LD A,0x02
CALL JUMPS.SetCMOSPrint
RET
;[]==========================================================[]
InitStatus LD A,(EditMode)
OR A
JP NZ,InitHEXStatus
MAKEWINDOW WINSUBOBJ.WOBIND
W_HORIZLINE 0,235,626
W_VERTICLINE 622,228,8
W_ICONLEFTARROW 0,228
W_FILL 16,228,592,8,COLORI.HIGHGRAY
W_ICONRIGHTARROW 608,228
W_HORIZLINE 0,241,640
W_FILL 2,243,636,12,COLORI.HIGHGRAY
W_HORIZLINE 2,255,637
W_BUTTON 0,242,80,14
W_TEXT 18,245,COLORP.HIGHGRAY,"F1 About"
W_BUTTON 80,242,80,14
W_TEXT 100,245,COLORP.HIGHGRAY,"F2 Save"
W_BUTTON 160,242,80,14
W_TEXT 184,245,COLORP.HIGHGRAY,"F4 Hex"
W_BUTTON 400,242,80,14
W_TEXT 422,245,COLORP.HIGHGRAY,"F7 Print"
W_BUTTON 480,242,80,14
W_TEXT 492,245,COLORP.HIGHGRAY,"F9 Settings"
W_BUTTON 560,242,80,14
W_TEXT 580,245,COLORP.HIGHGRAY,"F10 Quit"
W_END
RET
InitHEXStatus
MAKEWINDOW WINSUBOBJ.WOBIND
W_HORIZLINE 0,227,640
W_FILL 2,229,636,10,COLORI.HIGHGRAY
W_HORIZLINE 2,241,640
W_FILL 2,243,636,12,COLORI.HIGHGRAY
W_HORIZLINE 2,255,638
W_BUTTON 0,242,80,14
W_TEXT 18,245,COLORP.HIGHGRAY,"F1 About"
W_BUTTON 80,242,80,14
W_TEXT 100,245,COLORP.HIGHGRAY,"F2 Save"
W_BUTTON 160,242,80,14
W_TEXT 182,245,COLORP.HIGHGRAY,"F4 ASCII"
W_BUTTON 240,242,80,14
W_TEXT 258,245,COLORP.HIGHGRAY,"F5 Go to"
W_BUTTON 400,242,80,14
W_TEXT 422,245,COLORP.HIGHGRAY,"F7 Print"
W_BUTTON 480,242,80,14
W_TEXT 492,245,COLORP.HIGHGRAY,"F9 Settings"
W_BUTTON 560,242,80,14
W_TEXT 580,245,COLORP.HIGHGRAY,"F10 Quit"
W_END
RET
;[]==========================================================[]
InitFile LD A,(EditMode)
OR A
JR NZ,InitFileHex
CALL JUMPS.SetClock
LD HL,0x0000
LD E,L
LD D,H
InitAlp PUSH HL
LD BC,(LineShift)
OR A
SBC HL,BC
POP HL
JR NZ,.L1
LD (CurLine),DE
.L1 PUSH DE
CALL FESearchDown
POP DE
INC DE
JR NC,InitAlp
DEC DE
LD (EquipLines),DE
LD (ELines),DE
LD HL,TBarU
LD (BarPgU),HL
LD HL,TBarD
LD (BarPgD),HL
LD IX,EditVBar
CALL JUMPS.InitScrBar
LD HL,0x00F0
LD (CScrnX),HL
LD IX,EditHBar
CALL JUMPS.InitScrBar
LD HL,0xFFFF
LD (CLine),HL
LD H,0x00
LD (CAddX),HL
CALL JUMPS.SetMouse
RET
InitFileHex LD HL,(FEFileLenght)
LD A,L
SRL H
RR L
SRL H
RR L
SRL H
RR L
SRL H
RR L
AND 0x0F
JR Z,.L1
INC HL
.L1 LD (EquipLines),HL
LD (ELines),HL
LD HL,(LineShift)
SRL H
RR L
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD (CurLine),HL
LD HL,HBarU
LD (BarPgU),HL
LD HL,HBarD
LD (BarPgD),HL
LD IX,EditVBar
CALL JUMPS.InitScrBar
LD HL,0xFFFF
LD (CLine),HL
RET
EditVBar DEFW 0x0270 ;X ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x0024 ;Y ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x00B8 ;Max ¤«¨­  áªà®«¡ à 
DEFW 0x0000 ;⥪.¤«¨­  áªà®«¡ à 
BarPgU DEFW 0x0000 ;€¤à¥á ï祩ª¨ BarLeft
BarPgD DEFW 0x0000 ;€¤à¥á ï祩ª¨ BarRight
DEFW 0x0019 ;Š®«-¢® áâப ­  áâà ­¨æ¥
ELines DEFW 0x0000 ;ޡ饥 ª®«-¢® áâப
CLine DEFW 0x0000 ;<3B>¥à¢ ï áâப  ­  áâà ­¨æ¥
EditHBar DEFW 0x0010 ;X ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x00E4 ;Y ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x0250 ;Max ¤«¨­  áªà®«¡ à 
DEFW 0x0000 ;⥪.¤«¨­  áªà®«¡ à 
DEFW TBarL ;€¤à¥á ï祩ª¨ BarLeft
DEFW TBarR ;€¤à¥á ï祩ª¨ BarRight
DEFW 0x004E ;Š®«-¢® áâப ­  áâà ­¨æ¥
CScrnX DEFW 0x0000 ;ޡ饥 ª®«-¢® áâப
CAddX DEFW 0x0000 ;<3B>¥à¢ ï áâப  ­  áâà ­¨æ¥
;[]==========================================================[]
PrintPage LD A,(EditMode)
OR A
JP Z,FEPrnASCIIpage
JP FEPrnHEXpage
PrnEDITinfo LD A,(EditMode)
OR A
JP Z,PrnASCIIinfo
JP PrnHEXinfo
;[]==========================================================[]
FEChCursor HALT
LD HL,FECrTimer
DEC (HL)
RET NZ
LD (HL),CursTimer
LD A,(FECurCursor)
XOR 0x01
LD (FECurCursor),A
JR Z,ResCurs
JR SetCurs
FESetCursor LD (CursorPos),DE
LD A,0x01
LD (FECurCursor),A
LD A,CursTimer
LD (FECrTimer),A
SetCurs
GETPORT WINSP.CPU1
PUSH AF
GETPORT WINSP.Y_PORT
PUSH AF
SETPORT WINSP.CPU1,0x50
LD DE,(CursorPos)
LD L,E
LD H,0x00
ADD HL,HL
ADD HL,HL
SET 6,H
LD A,D
ADD A,A
ADD A,A
ADD A,A
ADD A,0x22
LD C,A
LD B,COLORP.FILES + COLORI.FILES
DI
LD DE,FECursBuffer
LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.SET_BUFFER
LD A,0x04
ACCEL ACCELCMD.COPY
LD A,(HL)
LD (DE),A
ACCEL ACCELCMD.FILL
LD (HL),B
ACCEL ACCELCMD.OFF
INC C
LD DE,FECursBuffer+4
LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY
LD A,(HL)
LD (DE),A
ACCEL ACCELCMD.FILL
LD (HL),B
ACCEL ACCELCMD.OFF
EI
POP AF
SETPORT WINSP.Y_PORT,,0
POP AF
SETPORT WINSP.CPU1,,0
RET
FEResCursor SUB A
LD (FECurCursor),A
INC A
LD (FECrTimer),A
ResCurs
GETPORT WINSP.CPU1
PUSH AF
GETPORT WINSP.Y_PORT
PUSH AF
SETPORT WINSP.CPU1,0x50
LD DE,(CursorPos)
LD L,E
LD H,0x00
ADD HL,HL
ADD HL,HL
SET 6,H
LD A,D
ADD A,A
ADD A,A
ADD A,A
ADD A,0x22
LD C,A
DI
LD DE,FECursBuffer
LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.SET_BUFFER
LD A,0x04
ACCEL ACCELCMD.COPY
LD A,(DE)
LD (HL),A
ACCEL ACCELCMD.OFF
INC C
LD DE,FECursBuffer+4
LD A,C
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY
LD A,(DE)
LD (HL),A
ACCEL ACCELCMD.OFF
EI
POP AF
SETPORT WINSP.Y_PORT,,0
POP AF
SETPORT WINSP.CPU1,,0
RET
FECrTimer DEFB 0x01
FECurCursor DEFB 0x00
CursorPos DEFW 0x0000
FECursBuffer DUPL 8,0
;[]==========================================================[]
FEAbout CALL FEResCursor
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 160,72,320,85
W_FILL 4,2,312,10,COLORI.BLACK
W_TEXT 144,3,COLORI.WHITE,"About"
W_TEXT 96,18,COLORP.HIGHGRAY,"Flex Navigator File Editor"
W_TEXT 144,28,COLORP.HIGHGRAY,"v\{FLEX_VERS.EDITOR}"
W_TEXT 18,40,COLORP.HIGHGRAY,"Programming: (C)2000 Enin Anton"
W_TEXT 92,50,COLORP.HIGHGRAY,"(C)2021 Mikhaltchenkov Dmitry"
W_BUTTON 124,66,72,14
W_TEXT 154,69,COLORP.HIGHGRAY,"Ok"
W_END
FEAboutLoop LD IX,FEAboutTab
CALL JUMPS.TestCoords
SPDSS DSSF.SCANKEY
JR Z,FEAboutLoop
LD A,B
OR A
JR NZ,FEAboutLoop
LD A,E
CP 0x1B
JR Z,FEAboutExt
CP 0x0D
JR Z,FEAboutExt
RES 5,A
CP 'O'
JR NZ,FEAboutLoop
FEAboutExt
WINDOWCLOSE
RET
;[]==========================================================[]
FEScrollSCRup LD DE,0x241C
JR FEScrlSCRDnUp
FEScrollSCRdown LD DE,0x1C24
;<3B>  ¢å®¤:
; D - Y ®âªã¤ 
; … - Y ªã¤ 
FEScrlSCRDnUp DI
PUSH DE
SPMOUSE MOUSEF.REFRESH
POP DE
GETPORT WINSP.CPU1
PUSH AF
SETPORT WINSP.CPU1,0x50
LD HL,0x4000
LD BC,312
ACCEL ACCELCMD.SET_BUFFER
LD A,0xC0
ACCEL ACCELCMD.OFF
.ScSCRN1 LD A,D
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY_VERT
LD A,(HL)
ACCEL ACCELCMD.OFF
LD A,E
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY_VERT
LD (HL),A
ACCEL ACCELCMD.OFF
CPI
JP PE,.ScSCRN1
POP AF
SETPORT WINSP.CPU1,,0
EI
RET
;[]==========================================================[]
include fedos.a80
include fetext.a80
include fehex.a80
include feprn.a80
include fesetup.a80
;[]==========================================================[]
FEASCIItab: DW 0x0000,0x0270,0x001C,0x00E4,0x00,0x0000, TNewCrPos, 0x0000
DW 0x0000,0x0050,0x00F2,0x0100,0x01,0x0000, FEAbout, 0x0000
DW 0x0050,0x00A0,0x00F2,0x0100,0x01,0x0000, SaveFile, 0x0000
DW 0x00A0,0x00F0,0x00F2,0x0100,0x01,0x0000, ChEditor, 0x0000
DW 0x0190,0x01E0,0x00F2,0x0100,0x01,0x0000, EditorSetup, 0x0000
DW 0x01E0,0x0230,0x00F2,0x0100,0x01,0x0000, FEPrintFile, 0x0000
DW 0x0230,0x0280,0x00F2,0x0100,0x21,0x0000, EditorExit, 0x0000
DW 0x0270,0x0280,0x001C,0x0024,0x03,0x0000, TCursorUp, 0x0000
DW 0x0270,0x0280,0x00DC,0x00E4,0x03,0x0000, TCursorDown, 0x0000
TBarU EQU $+6
DW 0x0270,0x0280,0x001C,0x0000,0x00,0x0000, FETPageUp, 0x0000
TBarD EQU $+4
DW 0x0270,0x0280,0x0000,0x00E4,0x00,0x0000, TPageDown, 0x0000
DW 0x0000,0x0010,0x00E4,0x00EC,0x03,0x0000, TCursorLeft, 0x0000
DW 0x0260,0x0270,0x00E4,0x00EC,0x03,0x0000, TCursorRight, 0x0000
TBarL EQU $+2
DW 0x0010,0x0000,0x00E4,0x00EC,0x00,0x0000, TCursorLeft, 0x0000
TBarR: DW 0x0000,0x0260,0x00E4,0x00EC,0x00,0x0000, TCursorRight, 0x0000
DEFW 0x8000
FEHEXtab: DW 0x0000,0x0050,0x00F2,0x0100,0x01,0x0000, FEAbout, 0x0000
DW 0x0050,0x00A0,0x00F2,0x0100,0x01,0x0000, SaveFile, 0x0000
DW 0x00A0,0x00F0,0x00F2,0x0100,0x01,0x0000, ChEditor, 0x0000
DW 0x00F0,0x0140,0x00F2,0x0100,0x01,0x0000, FEHGoTo, 0x0000
DW 0x0190,0x01E0,0x00F2,0x0100,0x01,0x0000, EditorSetup, 0x0000
DW 0x01E0,0x0230,0x00F2,0x0100,0x01,0x0000, FEPrintFile, 0x0000
DW 0x0230,0x0280,0x00F2,0x0100,0x21,0x0000, EditorExit, 0x0000
DW 0x0270,0x0280,0x001C,0x0024,0x03,0x0000, HCursorUp, 0x0000
DW 0x0270,0x0280,0x00DC,0x00E4,0x03,0x0000, HCursorDown, 0x0000
DW 0x0048,0x01D8,0x001C,0x00E4,0x00,0x0000, HNewHEXPos, 0x0000
DW 0x01E8,0x0268,0x001C,0x00E4,0x00,0x0000, HNewASCPos, 0x0000
HBarU EQU $+6
DW 0x0270,0x0280,0x001C,0x0000,0x00,0x0000, FEHPageUp, 0x0000
HBarD EQU $+4
DW 0x0270,0x0280,0x0000,0x00E4,0x00,0x0000, FEHPageDown, 0x0000
DEFW 0x8000
FEAboutTab: DEFW 0x011C,0x0164,0x008A,0x0098,0x21,0x0000, FEAboutExt, 0x0000
DEFW 0x0000,0x00A0,0x0000,0x0100,0x20,0x0000, FEAboutExt, 0x0000
DEFW 0x01E0,0x0280,0x0000,0x0100,0x20,0x0000, FEAboutExt, 0x0000
DEFW 0x0000,0x0280,0x0000,0x0048,0x20,0x0000, FEAboutExt, 0x0000
DEFW 0x0000,0x0280,0x009D,0x0100,0x20,0x0000, FEAboutExt, 0x0000
DEFW 0x8000
SureTab: DEFW 0x00F0,0x0138,0x007A,0x0088,0x021,0x0000, SureOkey, 0x0000
DEFW 0x0148,0x0190,0x007A,0x0088,0x021,0x0000, SureExit, 0x0000
DEFW 0x0000,0x00D0,0x0000,0x0100,0x120,0x0000, EditorLoop, 0x0000
DEFW 0x01B0,0x0280,0x0000,0x0100,0x120,0x0000, EditorLoop, 0x0000
DEFW 0x0000,0x0280,0x0000,0x0050,0x120,0x0000, EditorLoop, 0x0000
DEFW 0x0000,0x0280,0x008C,0x0100,0x120,0x0000, EditorLoop, 0x0000
DEFW 0x8000
NewFileTab: DEFW 0x00F0,0x0138,0x0082,0x0090,0x021,0x0000, NewFExitO, 0x0000
DEFW 0x0148,0x0190,0x0082,0x0090,0x021,0x0000, NewFExitC, 0x0000
DEFW 0x0000,0x00C0,0x0000,0x0100,0x020,0x0000, NewFExitC, 0x0000
DEFW 0x01C0,0x0280,0x0000,0x0100,0x020,0x0000, NewFExitC, 0x0000
DEFW 0x0000,0x0280,0x0000,0x0058,0x020,0x0000, NewFExitC, 0x0000
DEFW 0x0000,0x0280,0x0094,0x0100,0x020,0x0000, NewFExitC, 0x0000
DEFW 0x8000
FEQuitTab: DW 0x00F0,0x0138,0x0078,0x0086,0x21,0x0000, SureExit, 0x0000
DW 0x0148,0x0190,0x0078,0x0086,0x21,0x0000, FEQuitAbort, 0x0000
DW 0x0000,0x00D0,0x0000,0x0100,0x20,0x0000, FEQuitAbort, 0x0000
DW 0x01B0,0x0280,0x0000,0x0100,0x20,0x0000, FEQuitAbort, 0x0000
DW 0x0000,0x0280,0x0000,0x0058,0x20,0x0000, FEQuitAbort, 0x0000
DW 0x0000,0x0280,0x008A,0x0100,0x20,0x0000, FEQuitAbort, 0x0000
DW 0x8000
SettingsFileName:
DZ FILENAME.FNEDIT_INI
;[]==========================================================[]

494
plugins/fneditor/fedos.a80 Normal file
View File

@ -0,0 +1,494 @@
; LAST UPDATE: 27.05.2025 savelij
;[]==========================================================[]
FELoadFile CALL JUMPS.SetClock
LD DE,EditingFile
PUSH HL
SPDSS DSSF.F_FIRST,1,0x37
POP HL
JP C,FENewFile
; LD HL,EditingFile+33
; LD A,(HL)
;.LoadFl0 CALL FECorrBigChar
; LD (HL),A
; INC HL
; LD A,(HL)
; OR A
; JR NZ,.LoadFl0
LD IX,EditingFile
LD L,(IX+28)
LD H,(IX+29)
LD A,H
AND 0xC0
CP 0xC0
LD A,0x1E
PUSH AF
CALL Z,JUMPS.DOSError ;!!!!!!!!!!!! <20>¥â ¯ ¬ïâ¨
POP AF
SCF
JP Z,FELoadExit
LD (FEFileLenght),HL
LD A,(IX+30)
OR (IX+31)
LD A,0x1E
PUSH AF
CALL NZ,JUMPS.DOSError ;!!!!!!!!!!!! <20>¥â ¯ ¬ïâ¨
POP AF
SCF
JP NZ,FELoadExit
SPDSS DSSF.GETMEM,3
PUSH AF
CALL C,JUMPS.DOSError ;!!!!!!!!!!!! <20>¥â ¯ ¬ïâ¨
POP AF
JP C,FELoadExit
LD (FEMemIndef),A
LD HL,PagesList
SPBIOS BIOSF.GETMEMBLKPAGES
LD IX,ProcessEdit
LD HL,(FEFileLenght)
LD A,H
AND 0xC0
RLCA
RLCA
LD (IX+PROC.MAXL1),A
SUB A
LD (IX+PROC.MAXH1),A
LD (IX+PROC.MAXL2),A
LD (IX+PROC.MAXH2),A
CALL JUMPS.InitProcess
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 160,88,320,48
W_FILL 4,2,312,10,COLORI.BLACK
W_TEXT 112,3,COLORI.WHITE,"FN File Editor v\{FLEX_VERS.EDITOR}"
W_TEXT 8,16,COLORP.HIGHGRAY,"Reading:"
W_BORDER 16,28,288,12
W_FILL 18,29,284,10,COLORI.WHITE
W_END
SPDSS DSSF.CURDISK
LD HL,WorkBuffer
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
PUSH HL
SPDSS DSSF.CURDIR
POP HL
SUB A
.L1 INC HL
CP (HL)
JR NZ,.L1
DEC HL
LD A,0x5C
CP (HL)
INC HL
JR Z,.L2
LD (HL),A
INC HL
.L2 EX DE,HL
LD HL,EditingFile+33
SUB A
.L3 LDI
CP (HL)
JR NZ,.L3
LD (DE),A
LD IX,0x0100
LD HL,WorkBuffer
LD DE,0x00D8
LD BC,0x0068
LD A,0x80
CALL JUMPS.PrnRangPathL
LD HL,EditingFile+33
SPDSS DSSF.OPEN,,1
PUSH AF
CALL C,JUMPS.DOSError
POP AF
JP C,FENoRead
LD (FEFHandle),A
LD IX,EditingFile
LD L,(IX+28)
LD H,(IX+29)
LD (FEReadLen),HL
SETPORT WINSP.Y_PORT,0xC0
GETPORT WINSP.CPU1
PUSH AF
LD HL,PagesList
LD A,(HL)
.ReadLp1 INC HL
PUSH HL
SETPORT WINSP.CPU1,,0
SPDSS DSSF.SCANKEY
LD HL,0x011B
OR A
SBC HL,DE
JP Z,FEReadAbort
LD HL,(FEReadLen)
LD BC,0x4000
OR A
SBC HL,BC
JR C,.ReadEnd
LD (FEReadLen),HL
LD HL,0x4000
LD DE,0x4000
LD A,(FEFHandle)
SPDSS DSSF.READ
JP C,FEReadAbort
CALL FENextProcess
POP HL
LD A,(HL)
CP 0xFF
JR NZ,.ReadLp1
POP AF
SETPORT WINSP.CPU1,,0
JR .ReadExit
.ReadEnd LD HL,0x4000
LD DE,(FEReadLen)
LD A,D
OR E
JR Z,.ReadEn1
LD A,(FEFHandle)
SPDSS DSSF.READ
JP C,FEReadAbort
CALL FENextProcess
.ReadEn1 POP HL
POP AF
SETPORT WINSP.CPU1,,0
.ReadExit LD A,(FEFHandle)
SPDSS DSSF.CLOSE
OR A
FELoadExit HALT
HALT
WINDOWCLOSE
PUSH AF
CALL JUMPS.SetMouse
POP AF
RET
FEReadAbort POP HL
POP AF
SETPORT WINSP.CPU1,,0
FENoRead LD A,(FEMemIndef)
SPDSS DSSF.FREEMEM
SCF
JR FELoadExit
;[]==========================================================[]
FENewFile PUSH AF
CALL JUMPS.SetMouse
POP AF
CP 0x03
JR Z,.NewFile1
CP 0x06
JP NZ,EError
.NewFile1
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 192,88,256,60
W_FILL 4,2,248,10,COLORI.BLACK
W_TEXT 118,3,COLORI.WHITE,"Edit"
W_TEXT 84,18,COLORP.HIGHGRAY,"Can`t find the file:"
W_BUTTON 48,42,72,14
W_TEXT 64,45,COLORP.HIGHGRAY,"New file"
W_BUTTON 136,42,72,14
W_TEXT 154,45,COLORP.HIGHGRAY,"Cancel"
W_END
PUSH HL
LD DE,WorkBuffer
SUB A
.L1 LDI
CP (HL)
JR NZ,.L1
LD (DE),A
LD IX,0x00E0
LD HL,WorkBuffer
LD DE,0x0140
LD BC,0x0076
LD A,0x80
CALL JUMPS.PrnRangPathC
NewFLoop LD IX,NewFileTab
CALL JUMPS.TestCoords
SPDSS DSSF.SCANKEY
JR Z,NewFLoop
LD A,B
OR A
JR NZ,NewFLoop
LD A,E
CP 0x1B
JR Z,NewFExitC
CP 0x0D
JR Z,NewFExitO
RES 5,A
CP 'N'
JR Z,NewFExitO
CP 'C'
JR NZ,NewFLoop
NewFExitC SCF
NewFExitO
WINDOWCLOSE
POP HL
RET C
LD E,L
LD D,H
LD C,0x00
LD A,0x21
DEC HL
DEC C
.L1 INC HL
INC C
CP (HL)
JR C,.L1
LD A,C
OR A
LD A,0x10
JP Z,EError
LD B,C
LD A,0x5C
.L2 DEC HL
CP (HL)
JR Z,ChangeDIR
DJNZ .L2
EX DE,HL
JR NewFileE
ChangeDIR INC HL
PUSH HL
EX DE,HL
LD DE,WorkBuffer
LD C,B
LD B,0x00
LDIR
SUB A
LD (DE),A
LD HL,WorkBuffer
SPDSS DSSF.CHDIR
POP DE
JP C,EError
NewFileE LD HL,EditingFile+33
EX DE,HL
LD A,0x20
LD C,0x00
NewFE0 CP (HL)
JR NC,NewFE1
LDI
JR NewFE0
NewFE1 SUB A
LD (DE),A
LD A,C
OR A
LD A,0x10
JP Z,EError
LD IX,EditingFile
SUB A
LD (IX+28),A
LD (IX+29),A
LD (IX+30),A
LD (IX+31),A
LD (IX+32),A
LD HL,0x0000
LD (FEFileLenght),HL
SPDSS DSSF.GETMEM,3
PUSH AF
CALL C,JUMPS.DOSError ;!!!!!!!!!!!! <20>¥â ¯ ¬ïâ¨
POP AF
JP C,FELoadExit
LD (FEMemIndef),A
LD HL,PagesList
SPBIOS BIOSF.GETMEMBLKPAGES
OR A
RET
EError PUSH AF
CALL JUMPS.DOSError
POP AF
SCF
RET
;[]==========================================================[]
SaveFile CALL PutString
CALL JUMPS.SetClock
LD IX,ProcessEdit
LD HL,(FEFileLenght)
LD A,H
AND 0xC0
RLCA
RLCA
LD B,A
LD A,H
AND 0x3F
OR L
JR Z,.L1
INC B
.L1 LD (IX+PROC.MAXL1),B
SUB A
LD (IX+PROC.MAXH1),A
LD (IX+PROC.MAXL2),A
LD (IX+PROC.MAXH2),A
CALL JUMPS.InitProcess
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 160,88,320,48
W_FILL 4,2,312,10,COLORI.BLACK
W_TEXT 112,3,COLORI.WHITE,"FN File Editor v\{FLEX_VERS.EDITOR}"
W_TEXT 8,16,COLORP.HIGHGRAY,"Saving:"
W_BORDER 16,28,288,12
W_FILL 18,29,284,10,COLORI.WHITE
W_END
PUSH IY
SPDSS DSSF.CURDISK
POP IY
LD HL,WorkBuffer
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
PUSH IY
PUSH HL
SPDSS DSSF.CURDIR
POP HL
POP IY
SUB A
.L2 INC HL
CP (HL)
JR NZ,.L2
DEC HL
LD A,0x5C
CP (HL)
INC HL
JR Z,.L3
LD (HL),A
INC HL
.L3 EX DE,HL
LD HL,EditingFile+33
SUB A
.L4 LDI
CP (HL)
JR NZ,.L4
LD (DE),A
LD IX,0x0100
LD HL,WorkBuffer
LD DE,0x00D0
LD BC,0x0068
LD A,0x80
CALL JUMPS.PrnRangPathL
LD HL,EditingFile+33
LD A,(EditingFile+32)
PUSH IY
SPDSS DSSF.CREATE
POP IY
PUSH AF
CALL C,JUMPS.DOSError
POP AF
JP C,SaveExit1
LD (FEFHandle),A
LD HL,(FEFileLenght)
LD (SaveLen),HL
SETPORT WINSP.Y_PORT,0xC0
GETPORT WINSP.CPU1
PUSH AF
LD HL,PagesList
LD A,(HL)
SaveLp1 INC HL
PUSH HL
SETPORT WINSP.CPU1,,0
LD HL,(SaveLen)
LD BC,0x4000
OR A
SBC HL,BC
JR C,SaveEnd
LD (SaveLen),HL
LD HL,0x4000
LD DE,0x4000
LD A,(FEFHandle)
PUSH IY
SPDSS DSSF.WRITE
POP IY
JP C,SaveAbort
CALL FENextProcess
POP HL
LD A,(HL)
CP 0xFF
JR NZ,SaveLp1
POP AF
SETPORT WINSP.CPU1,,0
JP SaveExit
SaveEnd LD HL,0x4000
LD DE,(SaveLen)
LD A,D
OR E
JR Z,SaveEn1
LD A,(FEFHandle)
PUSH IY
SPDSS DSSF.WRITE
POP IY
JP C,SaveAbort
CALL FENextProcess
SaveEn1 POP HL
POP AF
SETPORT WINSP.CPU1,,0
SaveExit SUB A
LD (IY+ReadyFile),A
CALL PrnEDITinfo
LD A,(FEFHandle)
PUSH IY
SPDSS DSSF.CLOSE
POP IY
SaveExit1 HALT
HALT
WINDOWCLOSE
CALL JUMPS.SetMouse
RET
SaveAbort POP HL
POP AF
SETPORT WINSP.CPU1,,0
JR SaveExit1
;[]----------------------------------------------------------[]
FENextProcess LD IX,ProcessEdit
LD L,(IX+PROC.CURL1)
LD H,(IX+PROC.CURH1)
INC HL
LD (IX+PROC.CURL1),L
LD (IX+PROC.CURH1),H
LD A,H
OR L
JR NZ,.NextPr1
LD L,(IX+PROC.CURL2)
LD H,(IX+PROC.CURH2)
INC HL
LD (IX+PROC.CURL2),L
LD (IX+PROC.CURH2),H
.NextPr1 CALL JUMPS.PrnProcess
RET
ProcessEdit DEFW 0x00B2
DEFW 0x0075
DEFW 0x011C
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFB 0x4F
;FECorrBigChar CP 0x41
; RET C
; CP 0x5B
; JR NC,.CorrCh1
; SET 5,A
; RET
;.CorrCh1 CP 0x80
; RET C
; CP 0xA0
; RET NC
; SET 5,A
; CP 0x90
; RET C
; SET 6,A
; RES 4,A
; RET

1228
plugins/fneditor/fehex.a80 Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
; LAST UPDATE: 20.03.2025 savelij
include macros.a80
include fn_const.a80
include fn_macros.a80
include fn_version.a80
include accel_sp.a80
include ports_sp.a80
include define_sp.a80
include macros_sp.a80
include dss_sp.a80
include bios_sp.a80
include mouse_sp.a80
org PluginOrg ; #C000 - Header lenght
; Flex Navigator plugin header
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw 0x0000 ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
PluginEntry: include feditor.a80

340
plugins/fneditor/feprn.a80 Normal file
View File

@ -0,0 +1,340 @@
; LAST UPDATE: 20.03.2025 savelij
;[]==========================================================[]
FEPrintFile CALL FEResCursor
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 168,96,304,50
W_FILL 4,2,296,10,COLORI.BLACK
W_TEXT 132,3,COLORI.WHITE,"Print file"
W_BORDER 16,16,272,12
W_FILL 18,17,268,10,COLORI.WHITE
W_BUTTON 116,32,72,14
W_TEXT 140,35,COLORP.HIGHGRAY,"Stop"
W_END
LD IX,FEPrintTab
CALL JUMPS.TestCoords
LD IX,FEProcessPrn
LD HL,(FEFileLenght)
LD A,L
LD L,H
LD H,0x00
OR A
JR Z,.InitPrn
INC HL
.InitPrn LD (IX+PROC.MAXL1),L
LD (IX+PROC.MAXH1),H
LD (IX+PROC.MAXL2),0X00
LD (IX+PROC.MAXH2),0x00
CALL JUMPS.InitProcess
LD A,(EditMode)
OR A
JP NZ,FEPrintHEX
FEPrintASCII LD HL,0x0000
LD (FETempShift),HL
LD HL,(FEFileLenght)
GETPORT WINSP.CPU1
PUSH AF
LD DE,(FETempShift)
LD A,D ;‚뤥«ï¥¬ ­®¬¥à áâà ­¨æë
AND 0xC0
RLCA
RLCA
EXX
LD E,A ;DE - €¤à¥á áâà ­¨æë ¢ ᯨ᪥
LD D,HIGH (PagesList)
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
EXX
RES 7,D ;‚ª«.á 0x4000
SET 6,D
FEPrnASCII BIT 7,D
JR Z,PrnASC
RES 7,D
SET 6,D
EXX
INC E ;DE - €¤à¥á áâà ­¨æë ¢ ᯨ᪥
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
EXX
PrnASC LD A,(DE)
INC DE
CALL FEPrintCHAR
JR C,FEPrnASCIIext
CALL FENxtPrnProc
DEC HL
LD A,H
OR L
JR NZ,FEPrnASCII
CALL FEEndJob
jr c,FEPrnASCIIext
LD DE,0x0000
CALL FENxtPrnProc
HALT
HALT
FEPrnASCIIext POP AF
SETPORT WINSP.CPU1,,0
WINDOWCLOSE
RET
FEPrintHEX LD HL,0x0000
LD (FETempShift),HL
LD HL,LineBuffer
LD BC,0x4E20
.L1 LD (HL),C
INC L
DJNZ .L1
FEPrintHEXlp CALL FEPrnHEXline
JR C,FEPrintHEXext
LD HL,(FETempShift)
LD DE,0x0010 ;€¤à¥á ¤ ¬¯ +16
ADD HL,DE
LD (FETempShift),HL
JR FEPrintHEXlp
FEPrintHEXext CALL FEEndJob
OR A
JR NZ,.PrnHEXe
LD DE,0x0000
CALL FENxtPrnProc
HALT
HALT
.PrnHEXe
WINDOWCLOSE
RET
FEPrnHEXline LD IXL,0x00
LD IXH,B
LD HL,(FEFileLenght)
LD BC,(FETempShift)
OR A
SBC HL,BC
LD A,0x00
RET C
LD B,0x10
LD A,H
OR A
JR NZ,.PrnHLn
LD A,L
CP B
JR NC,.PrnHLn
LD B,L
.PrnHLn
GETPORT WINSP.CPU1
PUSH AF
LD DE,(FETempShift)
LD A,D ;‚뤥«ï¥¬ ­®¬¥à áâà ­¨æë
AND 0xC0
RLCA
RLCA
EXX
LD E,A ;DE - €¤à¥á áâà ­¨æë ¢ ᯨ᪥
LD D,HIGH (PagesList)
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
EXX
RES 7,D ;‚ª«.á 0x4000
SET 6,D
LD HL,LineBuffer+1 ;¡ãä¥à áâப¨
EXX
LD HL,LineBuffer+0x3D ;¬¥áâ® ¤«ï ASCII ª®¤®¢
EXX
LD (HL),'0'
INC L
LD A,(FETempShift+1)
CALL FEPutHexNumb
LD A,(FETempShift)
CALL FEPutHexNumb
LD (HL),':'
INC L
INC L
INC L
LD A,B
OR A
JR Z,PrnHLp2
FEPrnHLoop BIT 7,D
JR Z,PrnHLp1
RES 7,D
SET 6,D
EXX
INC E ;DE - €¤à¥á áâà ­¨æë ¢ ᯨ᪥
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
EXX
PrnHLp1 LD A,(DE)
INC DE
EXX
CP 0x20
JR NC,.L1
LD A,'.'
.L1 LD (HL),A
INC L
EXX
CALL FEPutHexNumb ;<3B>à®æ¥¤ãà  ª®­¢¥àâ 
INC L
INC IXL ;“¢¥«¨ç.ª®«-¢® ¢¢¥¤¥­­ëå ¡ ©â®¢
LD A,IXL
AND 0x03
JR NZ,.L2
INC L
.L2 DJNZ FEPrnHLoop
PrnHLp2 POP AF
SETPORT WINSP.CPU1,,0
;<3B>à®æ¥¤ãà  ®âç¨á⪨ § ª®­ç¨¢è¨åáï ¡ ©â®¢
FillHeP LD A,0x10 ;Œ ªá.¡ ©â®¢
SUB IXL ;’¥ª.ª®«-¢® ¡ ©â®¢
JR Z,FEFillP2
LD B,A
LD C,0x20
FEFillP1 LD (HL),C
INC L
LD (HL),C
INC L
INC L
EXX
LD (HL),0x20
INC L
EXX
INC IXL
LD A,IXL ; 業âॠ2 ¯à®¡¥« 
AND 0x03
JR NZ,.L1
INC L
.L1 DJNZ FEFillP1
FEFillP2 LD HL,LineBuffer
LD B,0x4E
FEPrnHEX LD A,(HL)
INC HL
CALL FEPrintCHAR
LD A,0x01
RET C
DJNZ FEPrnHEX
LD A,0x0D
CALL FEPrintCHAR
RET C
LD A,0x0A
CALL FEPrintCHAR
RET
FEPrintCHAR LD IXL,A
PUSH IX
PUSH HL
PUSH DE
PUSH BC
EXX
PUSH DE
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
JR Z,.PrnCH1
LD IX,FEPrintTab
CALL JUMPS.TestCoords
JR C,.PrnCH2
.PrnCH1
SPDSS DSSF.SCANKEY
LD A,E
.PrnCH2 POP DE
EXX
POP BC
POP DE
POP HL
POP IX
RET C
JR Z,FEPrnCHAR
CP 0x1B
SCF
RET Z
RES 5,A
CP 'S'
JR NZ,FEPrnCHAR
FEStopPrint SCF
RET
FEPrnCHAR PUSH HL
PUSH DE
PUSH BC
EXX
PUSH DE
LD A,IXL
SPDSS DSSF.PRINT
POP DE
LD A,B
EXX
POP BC
POP DE
POP HL
RET NC
HALT
JR FEPrintCHAR
FEPrintTab DEFW 0x011C,0x0164,0x0080,0x008E,0x01,0x0000,FEStopPrint,0x0000
DEFW 0x8000
FENxtPrnProc LD A,E
OR A
RET NZ
PUSH HL
PUSH DE
PUSH BC
EXX
PUSH DE
LD IX,FEProcessPrn
LD L,(IX+PROC.CURL1)
LD H,(IX+PROC.CURH1)
INC HL
LD (IX+PROC.CURL1),L
LD (IX+PROC.CURH1),H
LD A,H
OR L
JR NZ,.NxtProc
LD L,(IX+PROC.CURL2)
LD H,(IX+PROC.CURH2)
INC HL
LD (IX+PROC.CURL2),L
LD (IX+PROC.CURH2),H
.NxtProc CALL JUMPS.PrnProcess
POP DE
EXX
POP BC
POP DE
POP HL
RET
FEEndJob: PUSH AF
PUSH HL
PUSH BC
EXX
PUSH DE
ld a,0x0C
CALL FEPrintCHAR
jr c,.print_cancel
ld a,0x1B
CALL FEPrintCHAR
jr c,.print_cancel
ld a,0x40
CALL FEPrintCHAR
jr c,.print_cancel
POP DE
EXX
POP BC
POP HL
POP AF
ret
.print_cancel: POP DE
EXX
POP BC
POP HL
POP AF
SCF
RET
FEProcessPrn DEFW 0x00BA
DEFW 0x0071
DEFW 0x010C
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFB 0x4F

View File

@ -0,0 +1,314 @@
; LAST UPDATE: 24.03.2025 savelij
FECSign: DB "FEC"
HomeKeyFlag: DB 0
IndentFlag: DB 0
BracketsFlag: DB 0
ExitDlgFlag: DB 0
;[]==========================================================[]
ReadEditorIni: ld a,0
.iniReaded EQU $-1
and a
ret nz
inc a
ld (.iniReaded),a
PUSH IY
SPDSS DSSF.CURDISK
POP IY
LD HL,WorkBuffer
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
PUSH IY
SPDSS DSSF.CURDIR
POP IY
GETPORT WINSP.CPU1
PUSH AF
LD A,(JUMPS.FNFUNCT)
SETPORT WINSP.CPU1,,0
LD HL,ADDR.FlexDIRECTORY
PUSH IY
SPDSS DSSF.CHDIR
POP IY
EX AF,AF'
POP AF
SETPORT WINSP.CPU1,,0
EX AF,AF'
JP C,.exit
LD HL,SettingsFileName
PUSH IY
SPDSS DSSF.OPEN,,1
pop iy
jr c,.exit
ld (.file),a
ld hl,LineBuffer
push hl
ld de,LineBuffer+1
ld (hl),0
ld bc,7
ldir
pop hl
ld de,7
PUSH IY
SPDSS DSSF.READ
pop iy
jr c,.close
ld hl,(LineBuffer)
ld de,'EF'
and a
sbc hl,de
jr nz,.close
ld hl,LineBuffer+2
ld a,(hl)
cp 'C'
jr nz,.close
inc hl
ld a,(hl)
ld (THomeString.param),a
inc hl
ld a,(hl)
ld (CalcStartTabs.param),a
inc hl
ld a,(hl)
ld (AutoBrackets),a
inc hl
ld a,(hl)
ld (QuitAsk.param),a
.close: ld a,0
.file EQU $-1
PUSH IY
SPDSS DSSF.CLOSE
pop IY
.exit: LD HL,WorkBuffer
PUSH IY
SPDSS DSSF.CHDIR
POP IY
ret
;[]==========================================================[]
EditorSetup: CALL PutString
CALL FEResCursor
LD A,(QuitAsk.param)
ld (ExitDlgFlag),a
CALL ParamToSymbol
LD (ExitDlgFlg),A
LD A,(THomeString.param)
ld (HomeKeyFlag),a
CALL ParamToSymbol
LD (HomeKeyFlg),A
LD A,(CalcStartTabs.param)
ld (IndentFlag),a
CALL ParamToSymbol
LD (IndentFlg),A
LD A,(AutoBrackets)
ld (BracketsFlag),a
CALL ParamToSymbol
LD (BracketsFlg),A
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 200,80,240,110
W_FILL 4,2,232,10,COLORI.BLACK
W_TEXT 84,3,COLORI.WHITE,"Editor settings"
W_BORDER 16,19,20,11
W_FILL 18,20,16,9,COLORI.WHITE
W_TEXT 20,21,COLORP.WHITE,"\xFF"
ExitDlgFlg: EQU $ - 2
W_TEXT 40,22,COLORP.HIGHGRAY,"Confirmation of closing the editor"
W_BORDER 16,35,20,11
W_FILL 18,36,16,9,COLORI.WHITE
W_TEXT 20,37,COLORP.WHITE,"\xFF"
HomeKeyFlg: EQU $-2
W_TEXT 40,38,COLORP.HIGHGRAY,"find first symbol on Home key"
W_BORDER 16,51,20,11
W_FILL 18,52,16,9,COLORI.WHITE
W_TEXT 20,53,COLORP.WHITE,"\xFF"
IndentFlg: EQU $-2
W_TEXT 40,54,COLORP.HIGHGRAY,"auto Indent"
W_BORDER 16,67,20,11
W_FILL 18,68,16,9,COLORI.WHITE
W_TEXT 20,69,COLORP.WHITE,"\xFF"
BracketsFlg: EQU $-2
W_TEXT 40,70,COLORP.HIGHGRAY,"auto Brackets"
W_HORIZLINE 4,84,232
W_BUTTON 77,90,72,14
W_TEXT 96,93,COLORP.HIGHGRAY,"Cancel"
W_BUTTON 160,90,64,14
W_TEXT 188,93,COLORP.HIGHGRAY,"Ok"
W_END
FESetupLoop: LD IX,FESetupTab
CALL JUMPS.TestCoords
SPDSS DSSF.SCANKEY
JR Z,FESetupLoop
LD A,E
RES 5,A
CP 0x1B
JP Z,FESetupCancel
CP 0x0D
JP Z,FESetupOkey
CP 'O'
JP Z,FESetupOkey
ld hl,FESetupLoop
push hl
CP 'B'
JP Z,SetupAutoBracketsInvert
CP 'C'
JP Z,SetupConfirmDlgInvert
CP 'H'
JP Z,SetupHomeKeyInvert
CP 'I'
JP Z,SetupAutoIndentInvert
ret
;A - parameter
;Out - A = A == 0 ? " " : "v"
ParamToSymbol: OR A
LD A,0xFE
RET Z
INC A
RET
CheckTxt: DEFB 0x00,0x00
SetupConfirmDlgInvert:
LD HL,CheckTxt
LD A,(ExitDlgFlag)
XOR 0x01
LD (ExitDlgFlag),A
call ParamToSymbol
LD (HL),A
LD DE,0x00DC
LD BC,0x0065
LD A,0xF0
CALL JUMPS.PrnTxtLnIFF
JP JUMPS.ResFire
SetupHomeKeyInvert:
LD HL,CheckTxt
LD A,(HomeKeyFlag)
XOR 0x01
LD (HomeKeyFlag),A
call ParamToSymbol
LD (HL),A
LD DE,0x00DC
LD BC,0x0075
LD A,0xF0
CALL JUMPS.PrnTxtLnIFF
JP JUMPS.ResFire
SetupAutoIndentInvert:
LD HL,CheckTxt
LD A,(IndentFlag)
XOR 0x01
LD (IndentFlag),A
call ParamToSymbol
LD (HL),A
LD DE,0x00DC
LD BC,0x0085
LD A,0xF0
CALL JUMPS.PrnTxtLnIFF
JP JUMPS.ResFire
SetupAutoBracketsInvert:
LD HL,CheckTxt
LD A,(BracketsFlag)
XOR 0x01
LD (BracketsFlag),A
call ParamToSymbol
LD (HL),A
LD DE,0x00DC
LD BC,0x0095
LD A,0xF0
CALL JUMPS.PrnTxtLnIFF
JP JUMPS.ResFire
FESetupOkey: ld a,(ExitDlgFlag)
LD (QuitAsk.param),a
LD A,(HomeKeyFlag)
LD (THomeString.param),A
ld A,(IndentFlag)
LD (CalcStartTabs.param),A
ld a,(BracketsFlag)
LD (AutoBrackets),a
PUSH IY
SPDSS DSSF.CURDISK ;Write ini-file
LD HL,WorkBuffer
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
SPDSS DSSF.CURDIR
GETPORT WINSP.CPU1
PUSH AF
LD A,(JUMPS.FNFUNCT)
SETPORT WINSP.CPU1,,0
LD HL,ADDR.FlexDIRECTORY
SPDSS DSSF.CHDIR
EX AF,AF'
POP AF
SETPORT WINSP.CPU1,,0
EX AF,AF'
JP C,.exit
LD HL,SettingsFileName
SPDSS DSSF.CREATE,,0x20
jr c,.exit
ld (.file),a
jr c,.close
ld hl,FECSign
ld de,7
SPDSS DSSF.WRITE
.close: ld a,0
.file EQU $-1
SPDSS DSSF.CLOSE
.exit: LD HL,WorkBuffer
SPDSS DSSF.CHDIR
POP IY
FESetupCancel:
WINDOWCLOSE
RET
;[]==========================================================[]
;”®à¬ â â ¡«¨æë
; +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 €¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢)
;[]==========================================================[]
FESetupTab: DEFW 0x0114,0x015C,0x00AA,0x00B8,0x0021,0x0000,FESetupCancel,0x0000
DEFW 0x0168,0x01A8,0x00AA,0x00B8,0x0021,0x0000,FESetupOkey,0x0000
DEFW 0x00D8,0x0192,0x0063,0x006D,0x0000,0x0000,SetupConfirmDlgInvert,0x0000
DEFW 0x00D8,0x0186,0x0073,0x007D,0x0000,0x0000,SetupHomeKeyInvert,0x0000
DEFW 0x00D8,0x0129,0x0083,0x008D,0x0000,0x0000,SetupAutoIndentInvert,0x0000
DEFW 0x00D8,0x0132,0x0093,0x009D,0x0000,0x0000,SetupAutoBracketsInvert,0x0000
DEFW 0x0000,0x00C8,0x0000,0x0100,0x0020,0x0000,FESetupCancel,0x0000
DEFW 0x01B8,0x0280,0x0000,0x0100,0x0020,0x0000,FESetupCancel,0x0000
DEFW 0x0000,0x0280,0x0000,0x0050,0x0020,0x0000,FESetupCancel,0x0000
DEFW 0x0000,0x0280,0x00BC,0x0100,0x0020,0x0000,FESetupCancel,0x0000
DEFW 0x8000

1946
plugins/fneditor/fetext.a80 Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,21 @@
@echo off
if not exist tmp md tmp
set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad\sprinter_src\tools\
set includes=d:\yad\svn\pentevo\rom;d:\yad\sprinter_src\;d:\yad\sprinter_src\flexnav\src\
asl -U -L -C -x -olist tmp\fviewer.lst -i %includes% fvmain.a80 || goto error
p2bin fvmain.p ..\fnviewer.flx -r $-$ -k
echo ########################
echo # -= End Compile Ok =- #
echo ########################
goto exit
:error
echo #######################
echo # -= Error Compile =- #
echo #######################
:exit

724
plugins/fnviewer/fvhex.a80 Normal file
View File

@ -0,0 +1,724 @@
; LAST UPDATE: 20.03.2025 savelij
;--------------------------------------------------------------
;<3B>à®æ¥¤ãà  ¯¥ç â¨ áâà ­¨æë ¤ ¬¯  á ⥪.ᬥé. ®â ­ ç «  ä ©« 
;<3B>  ¢å®¤:
; None
;<3B>  ¢ë室:
; None
PrnHEXpage LD HL,PrintVProc
PUSH HL
LD HL,(FileShift)
LD A,L
AND 0xF0
LD L,A
LD (FileShift),HL
LD (TempShift),HL ;‡ ¯®¬¨­ ¥¬ ⥪.ᬥ饭¨¥
LD HL,(FileShift+2)
LD (TempShift+2),HL
LD HL,LineBuffer
LD BC,0x5020
.L1 LD (HL),C
INC L
DJNZ .L1
LD B,0x1C ;ˆ§­ ç.¯®§¨æ¨ï ¯¥ç â¨
PrnHEXl PUSH BC
CALL PutHLine ;‚뢮¤¨¬ áâப㠢 ¡ãä¥à ¨ ­  íªà ­
POP BC
JR C,FillDwnHex ;CY-‡ ª®­ç¨«¨áì ¡ ©âë ¤«ï ¯¥ç â¨
LD HL,(TempShift)
LD DE,0x0010 ;€¤à¥á ¤ ¬¯ +16
ADD HL,DE
LD (TempShift),HL
LD HL,(TempShift+2)
LD E,D
ADC HL,DE
LD (TempShift+2),HL
LD A,B
ADD A,0x08
LD B,A
CP 0xE4
JR NZ,PrnHEXl
RET
;<3B>à®æ¥¤ãà  ®âç¨á⪨ ­¨¦­¥© ®¡« á⨠íªà ­ 
FillDwnHex LD A,B
CP 0xE4
RET Z ;Z-­¥â ®âç¨á⪨
LD (FPosHex),A
LD A,0xE4
SUB B
LD (FLenHex),A
MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 0,0,640,0,COLORI.PANEL
FPosHex EQU $ - 7
FLenHex EQU $ - 3
W_END
RET
;<3B>à®æ¥¤ãà  ¯¥ç â¨ ⥪.áâப¨ ¢ ¡ãä¥à ¨ ­  íªà ­
PutHLine LD IXL,0x00
LD IXH,B
LD HL,(FileLenght)
LD BC,(TempShift)
OR A
SBC HL,BC
EX DE,HL
LD HL,(FileLenght+2)
LD BC,(TempShift+2)
SBC HL,BC
RET C
LD B,0x10
JR NZ,PutHLn
LD A,D
OR A
JR NZ,PutHLn
OR E
SCF
RET Z
LD A,E
CP B
JR NC,PutHLn
LD B,E
PutHLn
GETPORT WINSP.CPU1
PUSH AF
CALL InitFPages
LD HL,LineBuffer+1 ;¡ãä¥à áâப¨
EXX
LD HL,LineBuffer+0x3F ;¬¥áâ® ¤«ï ASCII ª®¤®¢
EXX
LD A,(TempShift+3) ;Š« ¤¥¬ ᬥ饭¨¥
CALL PutHexNumb ;®â ­ ç «  ä ¨« 
LD A,(TempShift+2)
CALL PutHexNumb
LD A,(TempShift+1)
CALL PutHexNumb
LD A,(TempShift)
CALL PutHexNumb
LD (HL),":"
INC L
INC L
PutHLoop CALL TestFPages
LD A,(DE)
INC DE
EXX
LD (HL),A
INC L
EXX
CALL PutHexNumb ;<3B>à®æ¥¤ãà  ª®­¢¥àâ 
INC L
INC IXL ;“¢¥«¨ç.ª®«-¢® ¢¢¥¤¥­­ëå ¡ ©â®¢
LD A,IXL
CP 0x04
JR Z,.PtHNx1
CP 0x08
JR Z,.PtHNx1
CP 0x0C
JR NZ,.L1
.PtHNx1 INC L
.L1 DJNZ PutHLoop
POP AF
SETPORT WINSP.CPU1,,0
;<3B>à®æ¥¤ãà  ®ç¨á⪨ § ª®­ç¨¢è¨åáï ¡ ©â®¢
FillHex LD A,0x10 ;Œ ªá.¡ ©â®¢
SUB IXL ;’¥ª.ª®«-¢® ¡ ©â®¢
JR Z,.FillE2
LD B,A
LD C,0x20
.FillE1 LD (HL),C
INC L
LD (HL),C
INC L
INC L
EXX
LD (HL),0x20
INC L
EXX
INC IXL
LD A,IXL ; 業âॠ2 ¯à®¡¥« 
CP 0x04
JR Z,.FlHNx1
CP 0x08
JR Z,.FlHNx1
CP 0x0C
JR NZ,.L2
.FlHNx1 INC L
.L2 DJNZ .FillE1
.FillE2 LD HL,LineBuffer
LD DE,0x0000
LD B,0x50
LD C,IXH
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
OR A
RET ;CY-¡ë«  ¯®á«¥¤­ïï áâப 
;<3B>à®æ¥¤ãà  ¯à¥®¡à §®¢ ­¨ï 8¡¨â®¢ëå ç¨á¥« ¢ è¥áâ­ ¤æ. ⥪áâ
;<3B>  ¢å®¤:
; HL -  ¤à¥á ¡ãä¥à 
; € - ¡ ©â
;<3B>  ¢ë室:
; ¡ãä¥à á ⥪áâ.ç¨á«®¬
PutHexNumb PUSH AF
RRCA
RRCA
RRCA
RRCA
AND 0x0F
ADD A,0x90
DAA
ADC A,0x40
DAA
LD (HL),A
INC L
POP AF
AND 0x0F
ADD A,0x90
DAA
ADC A,0x40
DAA
LD (HL),A
INC L
RET
;--------------------------------------------------------------
;<3B>à®æ¥¤ãàë ®¡à ¡®âª¨ View
;<3B>  áâப㠢¢¥àå
HLineUpMs CALL FVHLineUp
RET C
LD B,0x0A
HUpMs1 PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HUpMs1
HUpMs2 CALL FVHLineUp
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HUpMs2
FVHLineUp LD HL,(FileShift)
LD DE,(FileShift+2)
LD A,H ;<3B>஢¥à塞 ­  ­ ç «® ä ©« 
OR D
OR L
OR E
SCF
RET Z ;Z-­ ç «® ä ©« 
LD BC,0x0010
OR A
SBC HL,BC
LD (FileShift),HL ;FileShift-16¡ ©â(¯à¥¤¨¤.áâப )
LD (TempShift),HL ;‡ ¯®¬¨­ ¥¬ ⥪.ᬥ饭¨¥
LD C,B
EX DE,HL
SBC HL,BC
LD (FileShift+2),HL
LD (TempShift+2),HL
CALL ScrollSCRdown
LD B,0x1C
CALL PutHLine ;‘®§¤ ¥¬ ¨ ¯¥ç â ¥¬ áâபã
CALL PrintVProc
OR A
RET
;<3B>  áâப㠢­¨§
HLineDwnMs CALL HLineDwn
RET C
LD B,0x0A
HDnMs1 PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HDnMs1
HDnMs2 CALL HLineDwn
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HDnMs2
HLineDwn LD HL,(FileShift)
LD BC,(FileShift+2)
LD DE,0x0190
ADD HL,DE
LD (TempShift),HL ;‡ ¯®¬¨­ ¥¬ ⥪.ᬥ饭¨¥
JR NC,.L1 ;<3B>ਡ ¢«ï¥¬ ª ᬥ饭¨î áâà ­¨æã
INC BC ;¡ ©â®¢ (480¡)
.L1 LD (TempShift+2),BC
EX DE,HL
LD HL,(FileLenght)
OR A
SBC HL,DE ;<3B>஢¥à塞 ­  ª®­¥æ ä ©« 
EX DE,HL
LD HL,(FileLenght+2)
SBC HL,BC
RET C
JR NZ,.L2
LD A,D
OR E
SCF
RET Z ;Z - ª®­¥æ
.L2 LD HL,(FileShift)
LD DE,(FileShift+2)
LD BC,0x0010
ADD HL,BC
JR NC,.L3
INC DE
.L3 LD (FileShift),HL
LD (FileShift+2),DE
CALL ScrollSCRup
LD B,0xDC
CALL PutHLine ;‘®§¤ ¥¬ ¨ ¯¥ç â ¥¬ áâபã
CALL PrintVProc
OR A
RET
;<3B>  áâà ­¨æã ¢¢¥àå
HPageUpMs CALL FVHPageUp
RET C
LD B,0x0A
HUpMs1p PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HUpMs1p
HUpMs2p CALL FVHPageUp
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HUpMs2p
FVHPageUp LD HL,(FileShift)
LD BC,(FileShift+2)
LD A,H ;<3B>஢¥à塞 ­  ­ ç «® ä ©« 
OR B
OR L
OR C
SCF
RET Z
LD DE,0x0190 ;Žâ­¨¬ ¥¬ ®â ⥪.ᬥé. áâà ­¨æã ¡ ©â®¢
OR A
SBC HL,DE
JR NC,.HPgUp1
LD A,B
OR C
DEC BC ;<3B>஢¥à塞,çâ® ­¥ ¢ë¢ «¨«¨áì § 
JR NZ,.HPgUp1 ;­ ç «® ä ©«  Z - ¢ë¢ «¨«¨áì
INC BC
LD L,C ;’®£¤  ᬥ饭¨¥ = 0
LD H,B
.HPgUp1 LD (FileShift),HL
LD (FileShift+2),BC
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
OR A
RET
;<3B>  áâà ­¨æã ¢­¨§
HPageDwnMs CALL HPageDwn
RET C
LD B,0x0A
HDnMs1p PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HDnMs1p
HDnMs2p CALL HPageDwn
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HDnMs2p
HPageDwn LD HL,(FileShift)
LD BC,(FileShift+2)
LD DE,0x0190 ;<3B>«îá㥬 ª ⥪.ᬥé.
ADD HL,DE ;áâà ­¨æã ¡ ©â®¢
PUSH HL
JR NC,.L1
INC BC
.L1 PUSH BC
EX DE,HL
LD HL,(FileLenght) ;<3B>஢¥à塞,çâ® áâà ­¨æ 
OR A ;¯®á«¥¤­ïï
SBC HL,DE
EX DE,HL
LD HL,(FileLenght+2)
SBC HL,BC
POP BC
POP HL
RET C ; - ­¥â
JR NZ,.L2
LD A,D
OR E
SCF
RET Z ;Z - ­¥â
.L2 LD (FileShift),HL
LD (FileShift+2),BC
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
OR A
RET
; ­ ç «® ä ©« 
HBegFile LD HL,JUMPS.ResFire
PUSH HL
LD HL,(FileShift)
LD BC,(FileShift+2)
LD A,H ;<3B>஢¥à塞 ­  ­ ç «® ä ©« 
OR B
OR L
OR C
RET Z ;Z - <20> ç «®
LD HL,0x0000 ;‘¬¥é¥­¨¥ = 0000
LD (FileShift),HL
LD (FileShift+2),HL
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
; ª®­¥æ ä ©« 
HEndFile LD HL,JUMPS.ResFire
PUSH HL
LD HL,(FileShift)
LD BC,(FileShift+2)
LD DE,0x0190
ADD HL,DE
JR NC,.L1
INC BC
.L1 EX DE,HL
LD HL,(FileLenght) ;<3B>஢¥à塞,çâ® ¬ë ­  ¯®á«¥¤­¥©
PUSH HL ;áâà ­¨æ¥
OR A
SBC HL,DE
EX DE,HL
LD HL,(FileLenght+2)
PUSH HL
SBC HL,BC
POP BC
POP HL
RET C ; - ¢ ª®­æ¥
JR NZ,.L2
LD A,D
OR E
RET Z ;Z - ¢ ª®­æ¥
.L2 LD DE,0x0190
OR A
SBC HL,DE ;<3B>à®áç¨â뢠¥¬ ᬥ饭¨¥ ¯®á«¥¤­¥© áâà ­¨æë
JR NC,.L3
DEC BC
.L3 LD A,L ;‘¬¥é¥­¨¥ ªà â­® 16
AND 0x0F
JR Z,.HEnd1
LD A,L
AND 0xF0
LD L,A
LD DE,0x0010
ADD HL,DE
JR NC,.HEnd1
INC BC
.HEnd1 LD (FileShift),HL
LD (FileShift+2),BC
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
;--------------------------------------------------------------
;<3B>à®æ¥¤ãà  ¢¢®¤  ­®¢®£® 㪠§ â¥«ï ᬥ饭¨ï ¢ ä ©«¥
HGoTo LD HL,(FileLenght)
LD DE,(FileLenght+2)
LD A,H ;<3B>஢¥à塞,çâ® ¤«¨­ 
OR D ;ä ©«  ¡®«ìè¥ 16 ¡ ©â
OR E
JR NZ,HGoToOk
LD A,L
CP 0x11
RET C ;¬¥­ìè¥ 16¡ ©â
HGoToOk LD HL,NewShift ;<3B>ãä¥à ¤«ï ¢¢®¤  ­®¢®£® 㪠§.
SUB A
LD (CursPos+1),A ;<3B>®§¨æ¨ï ¢¢®¤  ¢ ¡ãä¥à¥
INC A
LD (BuffFlg),A
LD A,(FileShift+3)
CALL PutHexNumb ;‡ ­®á¨¬ ¢ ¡ãä¥à ⥪ã饥 ᬥé.
LD A,(FileShift+2) ;¢ ⥪á⮢®¬ ¢¨¤¥
CALL PutHexNumb
LD A,(FileShift+1)
CALL PutHexNumb
LD A,(FileShift)
CALL PutHexNumb
;‚뢮¤¨¬ ­  íªà ­ ¡ãä¥à ¨
HGoToRet CALL PrintHGT ;¯¥ç â ¥¬ ªãàá®à
HGoToLp HALT ;ަ¨¤ ¥¬ ¯à¥à뢠­¨¥
CALL ChangeCurs ;¯à®¢¥àï¬ ­  ᬥ­ã ªãàá®à 
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
JP NZ,HGTescape
SPDSS DSSF.SCANKEY ;ަ¨¤ ¥¬ ­ ¦ â¨ï ª« ¢¨è¨
JR Z,HGoToLp ;Z - ­¥ ­ ¦ â 
LD A,B
AND 0x3F
JR NZ,HGoToLp
LD A,E
OR A
JR Z,HGoToSys ;A=0 á¨áâ.ª« ¢¨è 
CP 0x0D
JP Z,HGTenter ;­ ¦ â Enter
CP 0x08
JR Z,HGTdelete ;­ ¦ â BackSpace
CP 0x1B
JP Z,HGTescape ;­ ¦ â Esc
CP 0x20
JR C,HGoToLp ;ª®¤<0x20 ­ ¬ ­¥ ¯®¤å®¤¨â
LD C,A ;á®åà. ASCII ª®¤
LD A,0x00
BuffFlg EQU $-1
OR A
CALL NZ,ClearBuff
CursPos LD A,0x00 ;⥪.¯®§¨æ¨ï ¯¥ç â¨ ¢ ¡ãä¥à¥
LD B,A ;á®åà.⥪.¯®§.
LD HL,NewShift ;‘¬¥é.®â ­ ç «  ¡ãä¥à 
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD (HL),C ;‡ ­®á¨¬ ª®¤ ¢ ¡ãä¥à
LD A,B ;⥪.¯®§.
CP 0x07 ;<3B>®§¨æ¨ï ¢ ¡ãä¥à¥ (7-¯®á«¥¤­ïï)
JR Z,HGoToRet ;¯¥ç â ¥¬ áâப㠨 ªãàá®à
INC A ;á«¥¤.¯®§¨æ¨ï
LD (CursPos+1),A
JR HGoToRet ;¯¥ç â ¥¬ áâப㠨 ªãàá®à
ClearBuff LD HL,NewShift
LD B,0x08
LD A,0x20
.L1 LD (HL),A
INC HL
DJNZ .L1
SUB A
LD (BuffFlg),A
RET
;‡ ¡®©
HGTdelete SUB A
LD (BuffFlg),A
LD A,(CursPos+1) ;’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
OR A
JR Z,HGoToLp ;0 - ¢ë室¨¬
DEC A
LD (CursPos+1),A ;¯à¥¤¨¤.¯®§¨æ¨ï
LD HL,NewShift
ADD A,L ;ᬥé.¢ ¡ãä¥à¥
LD L,A
JR NC,.L1
INC H
.L1 LD (HL)," " ;‡ ¡¨¢ ¥¬ ¯à®¡¥«®¬
JR HGoToRet
;á¨á⥬­ ï ª« ¢¨è 
HGoToSys LD A,D
CP 0x54 ;<-
JR Z,HGTleft
CP 0x56 ;->
JR Z,HGTright
JR HGoToLp
;Šãàá®à ¢«¥¢®
HGTleft SUB A
LD (BuffFlg),A
LD A,(CursPos+1) ;’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
OR A
JP Z,HGoToLp ;0 - ¢ë室¨¬
DEC A
LD (CursPos+1),A ;“¬¥­ìè.¯®§.
JP HGoToRet
HGTright SUB A
LD (BuffFlg),A
LD A,(CursPos+1) ;’¥ª.¯®§¨æ¨ï ¢ ¡ãä¥à¥
CP 0x07
JP Z,HGoToLp ;7 - ¯®á«¥¤­ïï
INC A
LD (CursPos+1),A ;“¢¥«¨ç.¯®§.
JP HGoToRet
;<3B>à®æ¥¤ãà  ¢ë¢®¤  áâப¨ ¨ ªãàá®à 
PrintHGT LD HL,NewShift
LD DE,0x0008
LD BC,0x081C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
LD A,(CursPos+1) ;<3B>®§¨æ¨ï ¢ë¢®¤  ªãàá®à 
INC A
LD L,A
LD H,0x00
ADD HL,HL
ADD HL,HL
ADD HL,HL
EX DE,HL
LD HL,TCursor
LD (HL),0xAB;"<"
LD BC,0x011C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
LD A,0x01 ;<3B>®¬¥à ¢ë¢¥¤¥­­®£® ªãàá®à 
LD (CurCurs),A
LD A,0x06 ;ަ¨¤ ­¨¥ ¤«ï ᬥ­ë ªãàá®à 
LD (CurWait),A
RET
;<3B>à®æ¥¤ãà  á¬¥­ë ªãàá®à 
ChangeCurs LD A,0x00 ;‡ ¤¥à¦ª  ¬¥¦¤ã ᬥ­®© ªãàá®à 
CurWait EQU $-1
DEC A
LD (CurWait),A
RET NZ ;¥é¥ ­¥ ¢à¥¬ï
LD A,(CursPos+1)
INC A
LD L,A
LD H,0x00 ;’¥ª.§­ ª®¬¥áâ®
ADD HL,HL
ADD HL,HL
ADD HL,HL
EX DE,HL
LD HL,NewShift ;‘¬¥é.¢ ¡ãä¥à¥
LD A,(CursPos+1)
ADD A,L
LD L,A
JR NC,.L2
INC H
.L2 LD A,0x00 ;<3B>®¬¥à ⥪ã饣® ªãàá®à 
CurCurs EQU $-1
XOR 0x01 ;Œ¥­ï¥¬ ªãàá®à
LD (CurCurs),A
LD A,(HL)
JR Z,.L1 ;<3B>¥ç â ¥¬
LD A,0xAB;"<"
.L1 LD HL,TCursor
LD (HL),A
LD BC,0x011C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
LD A,0x0C ;ަ¨¤ ­¨¥ ¤«ï ᬥ­ë ªãàá®à 
LD (CurWait),A
RET
TCursor DEFB " "
;Š« ¢¨è  ENTER
HGTenter SUB A ;<3B>ਠ®è¨¡ª¥ ¢¥à­¥¬áï á ªãàá®à®¬
LD (CursPos+1),A ;¢ ­ã«¥¢®© ¯®§¨æ¨¨
LD BC,NewShift ;<3B>ãä¥à áâப¨
CALL GetHexNum32 ;<3B>¥à¥¢®¤¨¬ ⥪áâ ¢ 32¡¨â ç¨á«®
JP C,HGoToRet ;CY - ᨭ⠪á.®è¨¡ª 
LD C,E
LD B,D
LD A,L ;€¤à¥á ªà â­ë© 16
AND 0xF0
LD L,A
EX DE,HL ;‘¬¥é.¢ BC+DE
LD HL,(FileLenght) ;<3B>஢¥à塞,ç⮠ᬥ饭¨¥ ¢
OR A ;¯à¥¤¥« å ä ©« 
SBC HL,DE
LD HL,(FileLenght+2)
SBC HL,BC
JR C,HGTent ;CY-§  ¯à¥¤¥« ¬¨
JR NZ,HGTent1 ;NZ-¢ ¯à¥¤¥« å
LD A,D
OR E
JR NZ,HGTent1 ;NZ-¢ ¯à¥¤¥« å
HGTent LD HL,(FileLenght)
LD BC,0x0010
OR A
SBC HL,BC ;ᬥé.=¯®á«¥¤­ïï áâப  ä ©«  16 ¡ ©â
EX DE,HL
LD HL,(FileLenght+2)
JR NC,.L1
DEC HL
.L1 LD C,L
LD B,H
HGTent1 LD (FileShift),DE
LD (FileShift+2),BC
CALL PrnHEXpage ;<3B>¥ç â ¥¬ áâà ­¨æã
RET
;<3B> ¦ â Escape
HGTescape LD HL,NewShift ;<3B>ãä¥à áâப¨
PUSH HL
LD A,(FileShift+3) ;‡ ­®á¨¬ ⥪.ᬥ饭¨¥
CALL PutHexNumb
LD A,(FileShift+2)
CALL PutHexNumb
LD A,(FileShift+1)
CALL PutHexNumb
LD A,(FileShift)
CALL PutHexNumb
POP HL
LD DE,0x0008
LD BC,0x081C
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
CALL JUMPS.ResFire
RET ;‚ë室¨¬
NewShift DEFB " ",0
;<3B>à®æ¥¤ãà  ª®­¢¥àâ¨à®¢ ­¨ï 32¡¨â®¢®£® è¥áâ­.⥪á⮢®£® ç¨á« 
;<3B>  ¢å®¤:
; BC - €¤à¥á ¡ãä¥à  á ⥪á⮬ (0-ª®­¥æ ¡ãä¥à )
;<3B>  ¢ë室:
; DE+HL - —¨á«® 32¡¨â
; CY - ᨭ⠪á¨ç¥áª ï ®è¨¡ª 
GetHexNum32 LD HL,0x0000
LD E,L
LD D,H
GetHNlp LD A,(BC)
INC BC
OR A
RET Z
CP " "
JR Z,GetHNlp
CP 0x61
JR C,.L1
SUB 0x20
.L1 CP 0x30
RET C
CP 0x47
CCF
RET C
SUB 0x30
CP 0x0A
JR C,GetHNum
SUB 0x07
CP 0x0A
RET C
GetHNum ADD HL,HL
EX DE,HL
ADC HL,HL
EX DE,HL
ADD HL,HL
EX DE,HL
ADC HL,HL
EX DE,HL
ADD HL,HL
EX DE,HL
ADC HL,HL
EX DE,HL
ADD HL,HL
EX DE,HL
ADC HL,HL
EX DE,HL
OR L
LD L,A
JR GetHNlp

1081
plugins/fnviewer/fviewer.a80 Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
; LAST UPDATE: 20.03.2025 savelij
include macros.a80
include fn_const.a80
include fn_macros.a80
include fn_version.a80
include accel_sp.a80
include ports_sp.a80
include define_sp.a80
include macros_sp.a80
include dss_sp.a80
include bios_sp.a80
include mouse_sp.a80
org PluginOrg ; #C000 - Header lenght
; Flex Navigator plugin header
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw 0x0000 ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
PluginEntry: include fviewer.a80

334
plugins/fnviewer/fvprn.a80 Normal file
View File

@ -0,0 +1,334 @@
; LAST UPDATE: 24.03.2025 savelij
;[]==========================================================[]
FVPrintFile
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 168,96,304,50
W_FILL 4,2,296,10,COLORI.BLACK
W_TEXT 132,3,COLORI.WHITE,"Print file"
W_BORDER 16,16,272,12
W_FILL 18,17,268,10,COLORI.WHITE
W_BUTTON 116,32,72,14
W_TEXT 140,35,COLORP.HIGHGRAY,"Stop"
W_END
LD IX,PrintTab
CALL JUMPS.TestCoords
LD IX,ProcessPrn
LD HL,(FileLenght)
LD DE,(FileLenght+2)
LD A,L
LD L,H
LD H,E
LD E,D
OR A
JR Z,.InitPrn
INC HL
LD A,H
OR L
JR NZ,.InitPrn
INC E
.InitPrn LD (IX+PROC.MAXL1),L
LD (IX+PROC.MAXH1),H
LD (IX+PROC.MAXL2),E
LD (IX+PROC.MAXH2),0x00
CALL JUMPS.InitProcess
LD A,(ViewMode)
OR A
JP NZ,PrintHEX
PrintASCII LD HL,0x0000
LD (TempShift),HL
LD (TempShift+2),HL
LD HL,(FileLenght)
LD BC,(FileLenght+2)
GETPORT WINSP.CPU1
PUSH AF
CALL InitFPages
PrnASCII CALL TestFPages
LD A,(DE)
INC DE
CALL FVPrintCHAR
JR C,PrnASCIIext
CALL FVNxtPrnProc
LD A,H
OR L
JR NZ,.L1
DEC BC
.L1 DEC HL
LD A,H
OR L
OR B
OR C
JR NZ,PrnASCII
CALL EndJob
jr c,PrnASCIIext
LD DE,0x0000
CALL FVNxtPrnProc
HALT
HALT
PrnASCIIext POP AF
SETPORT WINSP.CPU1,,0
WINDOWCLOSE
RET
PrintHEX LD HL,0x0000
LD (TempShift),HL
LD (TempShift+2),HL
LD HL,LineBuffer
LD BC,0x5020
.L1 LD (HL),C
INC L
DJNZ .L1
PrintHEXlp CALL PrnHEXline
JR C,PrintHEXext
LD HL,(TempShift)
LD DE,0x0010 ;€¤à¥á ¤ ¬¯ +16
ADD HL,DE
LD (TempShift),HL
LD HL,(TempShift+2)
LD E,D
ADC HL,DE
LD (TempShift+2),HL
JR PrintHEXlp
PrintHEXext CALL EndJob
OR A
JR NZ,PrnHEXe
LD DE,0x0000
CALL FVNxtPrnProc
HALT
HALT
PrnHEXe
WINDOWCLOSE
RET
PrnHEXline LD IXL,0x00
LD HL,(FileLenght)
LD BC,(TempShift)
OR A
SBC HL,BC
EX DE,HL
LD HL,(FileLenght+2)
LD BC,(TempShift+2)
SBC HL,BC
LD A,0x00
RET C
LD B,0x10
JR NZ,PrnHLn
LD A,D
OR A
JR NZ,PrnHLn
OR E
LD A,0x00
SCF
RET Z
LD A,E
CP B
JR NC,PrnHLn
LD B,E
PrnHLn
GETPORT WINSP.CPU1
PUSH AF
CALL InitFPages
LD HL,LineBuffer+1 ;¡ãä¥à áâப¨
EXX
LD HL,LineBuffer+0x3F ;¬¥áâ® ¤«ï ASCII ª®¤®¢
EXX
LD A,(TempShift+3) ;Š« ¤¥¬ ᬥ饭¨¥
CALL PutHexNumb ;®â ­ ç «  ä ¨« 
LD A,(TempShift+2)
CALL PutHexNumb
LD A,(TempShift+1)
CALL PutHexNumb
LD A,(TempShift)
CALL PutHexNumb
LD (HL),":"
INC L
INC L
PrnHLoop CALL TestFPages
LD A,(DE)
INC DE
PUSH AF
CALL PutHexNumb
POP AF
INC L
EXX
CP 0x20
JR NC,.L1
LD A,"."
.L1 LD (HL),A
INC L
EXX
INC IXL
LD A,IXL
CP 0x04
JR Z,.PrHNx1
CP 0x08
JR Z,.PrHNx1
CP 0x0C
JR NZ,.L2
.PrHNx1 INC L
.L2 DJNZ PrnHLoop
POP AF
SETPORT WINSP.CPU1,,0
LD A,0x10
SUB IXL
JR Z,.FillP2
LD B,A
LD C,0x20
.FillP1 LD (HL),C
INC L
LD (HL),C
INC L
INC L
EXX
LD (HL),0x20
INC L
EXX
INC IXL
LD A,IXL ; 業âॠ2 ¯à®¡¥« 
CP 0x04
JR Z,.FlPNx1
CP 0x08
JR Z,.FlPNx1
CP 0x0C
JR NZ,.L3
.FlPNx1 INC L
.L3 DJNZ .FillP1
.FillP2 LD HL,LineBuffer
LD B,0x50
PrnHEX LD A,(HL)
INC HL
CALL FVPrintCHAR
LD A,0x01
RET C
DJNZ PrnHEX
LD A,0x0D
CALL FVPrintCHAR
RET C
LD A,0x0A
CALL FVPrintCHAR
RET
FVPrintCHAR LD IXL,A
PUSH IX
PUSH HL
PUSH DE
PUSH BC
EXX
PUSH DE
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
JR Z,.PrnCH1
LD IX,PrintTab
CALL JUMPS.TestCoords
JR C,.PrnCH2
.PrnCH1
SPDSS DSSF.SCANKEY
LD A,E
.PrnCH2 POP DE
EXX
POP BC
POP DE
POP HL
POP IX
RET C
JR Z,FVPrnCHAR
CP 0x1B
SCF
RET Z
RES 5,A
CP "S"
JR NZ,FVPrnCHAR
FVStopPrint SCF
RET
FVPrnCHAR PUSH HL
PUSH DE
PUSH BC
EXX
PUSH DE
LD A,IXL
SPDSS DSSF.PRINT
POP DE
LD A,B
EXX
POP BC
POP DE
POP HL
RET NC
HALT
JR FVPrintCHAR
PrintTab DEFW 0x011C,0x0164,0x0080,0x008E,0x01,0x0000,FVStopPrint,0x0000
DEFW 0x8000
FVNxtPrnProc LD A,E
OR A
RET NZ
PUSH HL
PUSH DE
PUSH BC
EXX
PUSH DE
LD IX,ProcessPrn
LD L,(IX+PROC.CURL1)
LD H,(IX+PROC.CURH1)
INC HL
LD (IX+PROC.CURL1),L
LD (IX+PROC.CURH1),H
LD A,H
OR L
JR NZ,.NxtProc
LD L,(IX+PROC.CURL2)
LD H,(IX+PROC.CURH2)
INC HL
LD (IX+PROC.CURL2),L
LD (IX+PROC.CURH2),H
.NxtProc CALL JUMPS.PrnProcess
POP DE
EXX
POP BC
POP DE
POP HL
RET
EndJob: PUSH AF
PUSH HL
PUSH BC
EXX
PUSH DE
ld a,0x0C
CALL FVPrintCHAR
jr c,.print_cancel
ld a,0x1B
CALL FVPrintCHAR
jr c,.print_cancel
ld a,0x40
CALL FVPrintCHAR
jr c,.print_cancel
POP DE
EXX
POP BC
POP HL
POP AF
ret
.print_cancel: POP DE
EXX
POP BC
POP HL
POP AF
SCF
RET
ProcessPrn DEFW 0x00BA
DEFW 0x0071
DEFW 0x010C
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFB 0x4F

780
plugins/fnviewer/fvtext.a80 Normal file
View File

@ -0,0 +1,780 @@
; LAST UPDATE: 25.03.2025 savelij
;[]---------------------------------------------------------[]
PrnASCIIpage LD HL,PrintVProc
PUSH HL
LD HL,(FileShift)
LD (TempShift),HL
LD HL,(FileShift+2)
LD (TempShift+2),HL
LD B,0x1C
PrnASCIIlp PUSH BC
CALL PutASCIIline ;‚뢮¤¨¬ áâப㠢 ¡ãä ¨ ­  íªà ­
POP BC
JR C,FillASCIIdn ;CY-‡ ª®­ç¨«¨áì ¡ ©âë ¤«ï ¯¥ç â¨
LD A,B
ADD A,0x08
LD B,A
CP 0xE4
JR NZ,PrnASCIIlp
LD HL,(TempShift)
LD (FVNextShift),HL
LD HL,(TempShift+2)
LD (FVNextShift+2),HL
SUB A
LD (EmptyLines),A
RET
;<3B>à®æ¥¤ãà  ®âç¨á⪨ ­¨¦­¥© ®¡« á⨠íªà ­ 
FillASCIIdn LD A,0xE4
SUB B
LD (FLenASC),A
JR Z,FASCIIe ;Z-­¥â ®âç¨á⪨
LD A,B
LD (FPosASC),A
MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 0,0,640,0,COLORI.PANEL
W_END
FLenASC EQU $-4
FPosASC EQU $-8
FASCIIe LD HL,(TempShift)
LD (FVNextShift),HL
LD HL,(TempShift+2)
LD (FVNextShift+2),HL
LD A,(FLenASC)
SRL A
SRL A
SRL A
LD (EmptyLines),A
RET
;<3B>à®æ¥¤ãà  ¯¥ç â¨ ⥪.áâப¨ ¢ ¡ãä¥à ¨ ­  íªà ­
PutASCIIline LD IXH,B
LD A,(ASCIImode)
OR A
LD C,0x50
JR Z,.L1
LD C,0xF0
.L1 PUSH BC
LD HL,(FileLenght)
LD BC,(TempShift)
SBC HL,BC
EX DE,HL
LD HL,(FileLenght+2)
LD BC,(TempShift+2)
SBC HL,BC
POP BC
RET C
LD B,0xF0
JR NZ,PutLine
LD A,D
OR A
JR NZ,PutLine
OR E
SCF
RET Z
LD B,E
PutLine LD HL,LineBuffer
GETPORT WINSP.CPU1
PUSH AF
CALL InitFPages
PutLnLoop CALL TestFPages
LD A,(DE)
INC DE
CP 0x0D
JR NZ,PutLine1
CALL TestFPages
LD A,(DE)
CP 0x0A
JR NZ,PutLnExit
INC DE
JR PutLnExit
PutLine1 CP 0x0A
JR Z,PutLnExit
CP 0x09
JR NZ,PutLine2
PutTab LD (HL),0x20
INC L
LD A,L
CP C
JR Z,PutLineWrap;PutLine3
AND 0x07
JR NZ,PutTab
JR PutLine3
PutLine2 CALL DecodeSymbol ; § ¬¥­ï¥âáï ­  NOP, ¥á«¨ ­¥ ­ã¦­  ¯¥à¥ª®¤¨à®¢ª 
LD (HL),A
LD A,L
CP C
JR Z,PutLineWrap;PutLine3
INC L
PutLine3 DJNZ PutLnLoop
INC DE
PutLineWrap: dec de
CALL TestFPages
LD A,(DE)
CP 0x0D
JR NZ,PutLnExit
INC DE
CALL TestFPages
LD A,(DE)
CP 0x0A
JR NZ,PutLnExit
INC DE
PutLnExit POP AF
SETPORT WINSP.CPU1,,0
CALL GetFPages
LD A,(ASCIImode)
OR A
JR NZ,PutLineUWR
LD A,0x50
SUB L
JR Z,PutLine4
LD B,A
LD A,0x20
.L1 LD (HL),A
INC L
DJNZ .L1
PutLine4 LD HL,LineBuffer
LD DE,0x0000
LD B,0x50
LD C,IXH
LD A,COLORP.PANEL + COLORI.FILES
CALL JUMPS.PrnTxtLnNormC
OR A
RET
DecodeSymbol: CP 0x80
RET C
PUSH HL
SUB 0x80
LD HL,Table866
.table EQU $-2
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD A,(HL)
POP HL
RET
PutLineUWR LD C,IXH
LD A,L
LD (SaveUW),A
LD A,(ASCIIaddX)
ADD A,0x50
SUB L
JR Z,PutLnUW1
JR C,PutLnUW1
LD B,A
LD A,0x20
.L1 LD (HL),A
INC L
DJNZ .L1
PutLnUW1 LD E,0x00
LD B,0x50
LD H,HIGH (LineBuffer)
LD A,(ASCIIaddX)
LD L,A ;ᬥ饭¨¥ ®â ­ ç «  áâப¨
OR A
JR Z,PutLnUW2
PUSH HL
PUSH BC
LD HL,SpaceLeft
LD D,0x00
LD B,0x01
LD A,COLORP.PANEL + COLORI.YELLOW ;(Yellow)
CALL JUMPS.PrnTxtLnNormC
POP BC
POP HL
INC L
DEC B
LD A,(ASCIIaddX)
LD E,0x08
PutLnUW2 LD D,A
LD A,0x00
SaveUW EQU $-1
SUB D
JR C,PutLnUW3
CP 0x51
JR C,PutLnUW3
PUSH HL
PUSH DE
PUSH BC
LD HL,SpaceRight
LD DE,0x0278
LD B,0x01
LD A,COLORP.PANEL + COLORI.YELLOW ;(Yellow)
CALL JUMPS.PrnTxtLnNormC
POP BC
POP DE
POP HL
DEC B
PutLnUW3 LD D,0x00
LD A,COLORP.PANEL + COLORI.FILES ;(Yellow)
CALL JUMPS.PrnTxtLnNormC
OR A
RET
SpaceLeft DEFB 0x1B
SpaceRight DEFB 0x1A
;[]==========================================================[]
ChCodePage: LD HL,ViewerBegin
EX (SP),HL
LD A,(CodePage)
INC A
CP 3
JR C,.L1
XOR A
.L1 LD (CodePage), A
RET
;[]==========================================================[]
ChASCIImode LD HL,ViewerBegin
EX (SP),HL
LD A,(ASCIImode)
XOR 0x01
LD (ASCIImode),A
RET Z
SUB A
LD (ASCIIaddX),A
RET
;[]----------------------------------------------------------[]
ScrollLeft LD A,(ASCIImode)
OR A
RET Z
LD A,(ASCIIaddX)
OR A
RET Z
DEC A
LD (ASCIIaddX),A
CALL PrnASCIIpage
RET
;[]----------------------------------------------------------[]
ScrollRght LD A,(ASCIImode)
OR A
RET Z
LD A,(ASCIIaddX)
CP 0xA0
RET Z
INC A
LD (ASCIIaddX),A
CALL PrnASCIIpage
RET
;[]----------------------------------------------------------[]
THome LD A,(ASCIImode)
OR A
RET Z
LD A,(ASCIIaddX)
OR A
RET Z
SUB A
LD (ASCIIaddX),A
CALL PrnASCIIpage
RET
;[]----------------------------------------------------------[]
TEnd LD A,(ASCIImode)
OR A
RET Z
LD A,(ASCIIaddX)
CP 0xA0
RET Z
LD A,0xA0
LD (ASCIIaddX),A
CALL PrnASCIIpage
RET
;[]----------------------------------------------------------[]
TLineUpMs CALL TLineUp
RET C
LD B,0x0A
TUpMs1 PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ TUpMs1
TUpMs2 CALL TLineUp
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR TUpMs2
TLineUp LD HL,(FileShift)
LD DE,(FileShift+2)
LD A,H
OR L
OR D
OR E
SCF
RET Z
CALL SearchUp
LD (FileShift),HL
LD (FileShift+2),DE
LD (TempShift),HL
LD (TempShift+2),DE
LD HL,EmptyLines
LD A,(HL)
DEC (HL)
OR A
JR NZ,TLineU1
INC (HL)
LD HL,(FVNextShift)
LD DE,(FVNextShift+2)
CALL SearchUp
LD (FVNextShift),HL
LD (FVNextShift+2),DE
TLineU1 CALL ScrollSCRdown
LD B,0x1C
CALL PutASCIIline ;‘®§¤ ¥¬ ¨ ¯¥ç â ¥¬ áâபã
CALL PrintVProc
OR A
RET
;[]----------------------------------------------------------[]
TLineDwnMs CALL TLineDwn
RET C
LD B,0x0A
TDnMs1 PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ TDnMs1
TDnMs2 CALL TLineDwn
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR TDnMs2
TLineDwn LD HL,(FVNextShift)
LD DE,(FVNextShift+2)
LD BC,(FileLenght)
OR A
SBC HL,BC
LD BC,(FileLenght+2)
EX DE,HL
SBC HL,BC
CCF
RET C
LD HL,(FileShift)
LD DE,(FileShift+2)
CALL SearchDown
LD (FileShift),HL
LD (FileShift+2),DE
LD HL,(FVNextShift)
LD DE,(FVNextShift+2)
LD (TempShift),HL
LD (TempShift+2),DE
CALL ScrollSCRup
LD B,0xDC
CALL PutASCIIline ;‘®§¤ ¥¬ ¨ ¯¥ç â ¥¬ áâபã
LD HL,(TempShift)
LD DE,(TempShift+2)
LD (FVNextShift),HL
LD (FVNextShift+2),DE
CALL PrintVProc
OR A
RET
;[]----------------------------------------------------------[]
TPageUpMs CALL TPageUp
RET C
LD B,0x0A
TUpMs1p PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ TUpMs1p
TUpMs2p CALL TPageUp
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR TUpMs2p
TPageUp LD HL,(FileShift)
LD DE,(FileShift+2)
LD A,H
OR L
OR D
OR E
SCF
RET Z
LD B,0x19
TPageU1 PUSH BC
CALL SearchUp
POP BC
JR C,TPageU2
DJNZ TPageU1
TPageU2 LD (FileShift),HL
LD (FileShift+2),DE
CALL PrnASCIIpage
OR A
RET
;[]----------------------------------------------------------[]
TPageDwnMs CALL TPageDwn
RET C
LD B,0x0A
TDnMs1p PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ TDnMs1p
TDnMs2p CALL TPageDwn
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR TDnMs2p
TPageDwn LD HL,(FVNextShift)
LD DE,(FVNextShift+2)
LD BC,(FileLenght)
OR A
SBC HL,BC
LD BC,(FileLenght+2)
EX DE,HL
SBC HL,BC
CCF
RET C
LD HL,(FVNextShift)
LD (FileShift),HL
LD HL,(FVNextShift+2)
LD (FileShift+2),HL
CALL PrnASCIIpage
OR A
RET
;[]----------------------------------------------------------[]
TBegFile LD HL,JUMPS.ResFire
PUSH HL
LD HL,(FileShift)
LD DE,(FileShift+2)
LD A,H
OR D
OR L
OR E
RET Z
LD HL,0x0000
LD (FileShift),HL
LD (FileShift+2),HL
CALL PrnASCIIpage
RET
;[]----------------------------------------------------------[]
TEndFile LD HL,JUMPS.ResFire
PUSH HL
LD HL,(FVNextShift)
LD DE,(FVNextShift+2)
LD BC,(FileLenght)
OR A
SBC HL,BC
LD BC,(FileLenght+2)
EX DE,HL
SBC HL,BC
RET NC
LD HL,(FileLenght)
LD DE,(FileLenght+2)
LD B,0x19
TEndFl1 PUSH BC
CALL SearchUp
POP BC
RET C
DJNZ TEndFl1
LD (FileShift),HL
LD (FileShift+2),DE
CALL PrnASCIIpage
RET
;[]==========================================================[]
SearchUp LD B,0xF0
LD A,D
OR E
JR NZ,.SearchUpBeg
LD A,H
OR A
JR NZ,.SearchUpBeg
OR L
SCF
RET Z
LD B,L
.SearchUpBeg
GETPORT WINSP.CPU1
PUSH AF
PUSH HL
PUSH DE
LD A,H ;‚뤥«ï¥¬ ­®¬¥à áâà ­¨æë
RLA
RL E
RLA
RL E
LD D,HIGH (PagesList)
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
RES 7,H
SET 6,H
LD C,0x00
LD IXL,C
INC C
DEC B
DEC HL
BIT 6,H
JR NZ,.SrchUp0
DEC E
LD A,(DE)
SETPORT WINSP.CPU1,,0
SET 6,H
.SrchUp0 LD A,(HL)
CP 0x0A
JR NZ,.L3
LD A,B
OR A
JR Z,.SrchUpEx
INC C
DEC B
DEC HL
BIT 6,H
JR NZ,.SrchUp1
DEC E
LD A,(DE)
SETPORT WINSP.CPU1,,0
SET 6,H
.SrchUp1 LD A,(HL)
.L3 CP 0x0D
JR Z,.SearchUpLp
DEC C
INC B
INC HL
BIT 7,H
JR Z,.SearchUpLp1
INC E
LD A,(DE)
SETPORT WINSP.CPU1,,0
RES 7,H
SET 6,H
JR .SearchUpLp1
.SearchUpLp LD A,B
OR A
JR Z,.SrchUpEx
.SearchUpLp1 DEC HL
BIT 6,H
JR NZ,.SrchUp2
DEC E
LD A,(DE)
SETPORT WINSP.CPU1,,0
SET 6,H
.SrchUp2 LD A,(HL)
CP 0x0A
JR Z,.SrchUpEx
CP 0x0D
JR Z,.SrchUpEx
CP 0x09
JR NZ,.L1
ld a,7
add a,c
ld c,a
ld a,7
add a,IXL
ld IXL,a
ld a,b
sub 7
jr z,.SrchUpEx
jr c,.SrchUpEx
.L1 INC IXL
INC C
DJNZ .SearchUpLp1
.SrchUpEx POP DE
POP HL
LD B,0x00
OR A
SBC HL,BC
LD C,B
EX DE,HL
SBC HL,BC
EX DE,HL
POP AF
SETPORT WINSP.CPU1,,0
LD A,(ASCIImode)
OR A
RET NZ
LD A,IXL
CP 0x51
CCF
RET NC
LD C,0x50
.SrchUpEx0 ADD HL,BC
JR NC,.L2
INC DE
.L2 SUB 0x50
CP 0x51
JR NC,.SrchUpEx0
OR A
RET
;[]----------------------------------------------------------[]
SearchDown LD (SrchHL),HL
LD (SrchDE),DE
LD A,(ASCIImode)
OR A
LD B,0x50
JR Z,.L1
LD B,0xF0
.L1 PUSH BC
LD C,L
LD B,H
LD HL,(FileLenght)
OR A
SBC HL,BC
LD C,E
LD B,D
EX DE,HL
LD HL,(FileLenght+2)
SBC HL,BC
POP BC
RET C
JR NZ,.SearchDnBeg
LD A,D
OR A
JR NZ,.SearchDnBeg
OR E
SCF
RET Z
LD B,E
.SearchDnBeg
LD HL,0x0000
SrchHL EQU $-2
LD DE,0x0000
SrchDE EQU $-2
GETPORT WINSP.CPU1
PUSH AF
PUSH HL
PUSH DE
LD A,H ;‚뤥«ï¥¬ ­®¬¥à áâà ­¨æë
RLA
RL E
RLA
RL E
LD D,HIGH (PagesList)
LD A,(DE) ;’¥ª.áâà ­¨æ 
SETPORT WINSP.CPU1,,0
RES 7,H
SET 6,H
LD C,0x00
DEC HL
SearchDnLp INC C
INC HL
BIT 7,H
JR Z,SrchDn0
INC E
LD A,(DE)
SETPORT WINSP.CPU1,,0
RES 7,H
SET 6,H
SrchDn0 LD A,(HL)
CP 0x0D
JR NZ,SrchE1
INC HL
BIT 7,H
JR Z,SrchDn1
INC E
LD A,(DE)
SETPORT WINSP.CPU1,,0
RES 7,H
SET 6,H
SrchDn1 LD A,(HL)
CP 0x0A
JR NZ,SrchEEx
INC C
JR SrchEEx
SrchE1 CP 0x0A
JR Z,SrchEEx
DJNZ SearchDnLp
INC HL
BIT 7,H
JR Z,SrchDnE
INC E
LD A,(DE)
SETPORT WINSP.CPU1,,0
RES 7,H
SET 6,H
SrchDnE LD A,(HL)
CP 0x0D
JR NZ,SrchEEx
INC C
INC HL
BIT 7,H
JR Z,SrchDE1
INC E
LD A,(DE)
SETPORT WINSP.CPU1,,0
RES 7,H
SET 6,H
SrchDE1 LD A,(HL)
CP 0x0A
JR NZ,SrchEEx
INC C
SrchEEx POP DE
POP HL
LD B,0x00
ADD HL,BC
LD C,B
EX DE,HL
ADC HL,BC
EX DE,HL
POP AF
SETPORT WINSP.CPU1,,0
OR A
RET
Table866: db 0x3F,0x3F,0x27,0x3F,0x22,0x3A,0xC5,0xD8
db 0x3F,0x25,0x3F,0x3C,0x3F,0x3F,0x3F,0x3F
db 0x3F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D
db 0x3F,0x54,0x3F,0x3E,0x3F,0x3F,0x3F,0x3F
db 0xFF,0xF6,0xF7,0x3F,0xFD,0x3F,0xB3,0x15
db 0xF0,0x63,0xF2,0x3C,0xBF,0x2D,0x52,0xF4
db 0xF8,0x2B,0x49,0x69,0x3F,0xE7,0x14,0xFA
db 0xF1,0xFC,0xF3,0x3E,0x3F,0x3F,0x3F,0xF5
db 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87
db 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F
db 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97
db 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F
db 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7
db 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF
db 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7
db 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF
; koi8-r
TableKoi: db 0xC4,0xB3,0xDA,0xBF,0xC0,0xD9,0xC3,0xB4
db 0xC2,0xC1,0xC5,0xDF,0xDC,0xDB,0xDD,0xDE
db 0xB0,0xB1,0xB2,0xF4,0xFE,0xF9,0xFB,0xF7
db 0xF3,0xF2,0xFF,0xF5,0xF8,0xFD,0xFA,0xF6
db 0xCD,0xBA,0xD5,0xF1,0xD6,0xC9,0xB8,0xB7
db 0xBB,0xD4,0xD3,0xC8,0xBE,0xBD,0xBC,0xC6
db 0xC7,0xCC,0xB5,0xF0,0xB6,0xB9,0xD1,0xD2
db 0xCB,0xCF,0xD0,0xCA,0xD8,0xD7,0xCE,0xFC
db 0xEE,0xA0,0xA1,0xE6,0xA4,0xA5,0xE4,0xA3
db 0xE5,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE
db 0xAF,0xEF,0xE0,0xE1,0xE2,0xE3,0xA6,0xA2
db 0xEC,0xEB,0xA7,0xE8,0xED,0xE9,0xE7,0xEA
db 0x9E,0x80,0x81,0x96,0x84,0x85,0x94,0x83
db 0x95,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E
db 0x8F,0x9F,0x90,0x91,0x92,0x93,0x86,0x82
db 0x9C,0x9B,0x87,0x98,0x9D,0x99,0x97,0x9A

21
plugins/help/build.bat Normal file
View File

@ -0,0 +1,21 @@
@echo off
if not exist tmp md tmp
set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad\sprinter_src\tools\
set includes=d:\yad\svn\pentevo\rom;d:\yad\sprinter_src\;d:\yad\sprinter_src\flexnav\src\
asl -U -L -C -x -olist tmp\header.lst -i %includes% header.a80 || goto error
p2bin header.p ..\help.flx -r $-$ -k
echo ########################
echo # -= End Compile Ok =- #
echo ########################
goto exit
:error
echo #######################
echo # -= Error Compile =- #
echo #######################
:exit

30
plugins/help/header.a80 Normal file
View File

@ -0,0 +1,30 @@
; LAST UPDATE: 26.03.2025 savelij
include macros.a80
include fn_const.a80
include fn_macros.a80
include fn_version.a80
include accel_sp.a80
include ports_sp.a80
include define_sp.a80
include macros_sp.a80
include dss_sp.a80
include bios_sp.a80
include mouse_sp.a80
WINSP_CPU EQU WINSP.CPU1
WINSP_ADR EQU 0x4000
org PluginOrg ; #C000 - Header lenght
; Flex Navigator plugin header
PluginStart: db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw 0x0000 ; EntryOffset
db 0x00 ; PluginMode
db 0x00,0x00,0x00 ; Reserved
PluginEntry: include help.a80
HelpText: include help_t.a80
HelpTextEnd:

401
plugins/help/help.a80 Normal file
View File

@ -0,0 +1,401 @@
; LAST UPDATE: 23.04.2025 savelij
;[]==========================================================[]
HelpR LD A,0x01
LD (JUMPS.CMOSPrint),A
SETPORT WINSP.Y_PORT,0xC0
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 64,16,512,224
W_FILL 4,2,504,10,COLORI.BLACK
W_TEXT 248,3,COLORI.WHITE,"Help"
W_BUTTON 220,206,72,14
W_TEXT 250,209,COLORP.HIGHGRAY,"Ok"
W_BORDER 8,16,496,187
W_FILL 10,17,476,185,COLORI.WHITE
W_ICONUPARROW 486,17
W_ICONDOWNARROW 486,194
W_END
CALL InitHelpTxt
CALL PrnHelpPg
CALL JUMPS.ResFire
HelpLoop LD IX,HelpTab
CALL JUMPS.TestCoords
SPDSS DSSF.SCANKEY
JR Z,HelpLoop
LD A,B
OR A
JR NZ,HelpLoop
LD A,E ; …-ASCII ª®¤
CP 0x1B ; Esc
JP Z,HelpExit
CP 0x0D ; Enter
JP Z,HelpExit
RES 5,A
CP 'O'
JP Z,HelpExit
OR A
JR NZ,HelpLoop ; †¤¥¬ ä㭪樮­.ª« ¢¨è¨
LD HL,HelpLoop
PUSH HL
LD A,D
CP SC.X8 ; ‘â५ª  ¢¢¥àå
JP Z,HLineUp
CP SC.X2 ; ‘â५ª  ¢­¨§
JP Z,HLineDown
CP SC.X9 ; PageUp
JP Z,HPageUp
CP SC.X3 ; PageDown
JP Z,HPageDown
CP SC.X7 ; Home
JP Z,HHome
CP SC.X1 ; End
JP Z,HEnd
RET
HelpExit
WINDOWCLOSE
SUB A
LD (JUMPS.CMOSPrint),A
RET
;[]----------------------------------------------------------[]
InitHelpTxt LD HL,HelpText
LD (PageShift),HL
LD HL,0x0000
LD (CHLine),HL
LD HL,HelpText
LD DE,0x0000
InHelp1 LD BC,0x1000
SUB A
CPIR
INC DE
LD A,(HL)
INC A
JR NZ,InHelp1
DEC DE
LD (EHLines),DE
LD IX,HelpVBar
JP JUMPS.InitScrollBar
PageShift DW 0
NextShift DW 0
HelpVBar DW 550 ; X ¯®§¨æ¨ï áªà®«¡ à 
DW 41 ; Y ¯®§¨æ¨ï áªà®«¡ à 
DW 169 ; Max ¤«¨­  áªà®«¡ à 
DW 0 ; ⥪.¤«¨­  áªà®«¡ à 
DW HBarUp ; €¤à¥á ï祩ª¨ BarLeft
DW HBarDn ; €¤à¥á ï祩ª¨ BarRight
DW 23 ; Š®«-¢® áâப ­  áâà ­¨æ¥
EHLines DW 0 ; ޡ饥 ª®«-¢® áâப
CHLine DW 0 ; <20>¥à¢ ï áâப  ­  áâà ­¨æ¥
;[]----------------------------------------------------------[]
PrnHelpPg LD HL,(PageShift)
LD B,34
PrnHPg1 PUSH BC
CALL ClearHRect
LD DE,80
LD C,B
LD B,D
LD A,(HL)
INC A
LD A,240
CALL NZ,JUMPS.PrnTxtLnIFF
POP BC
LD A,B
ADD A,8
LD B,A
CP 218
JR NZ,PrnHPg1
LD (NextShift),HL
LD IX,HelpVBar
JP JUMPS.PrnVScrBar
ClearHRect PUSH HL
PUSH BC
GETPORT WINSP_CPU
PUSH AF
DI
SETPORT WINSP_CPU,0x50
LD HL,WINSP_ADR + 40
LD IXL,B
LD D,COLORP.WHITE + COLORI.WHITE
ACCEL ACCELCMD.SET_BUFFER
LD A,0xE8
ACCEL ACCELCMD.OFF
LD B,0x08
ClHRect LD A,IXL
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.FILL
LD (HL),D
ACCEL ACCELCMD.OFF
INC IXL
DJNZ ClHRect
POP AF
SETPORT WINSP_CPU,,0
SETPORT WINSP.Y_PORT,0xC0
EI
POP BC
POP HL
RET
;[]----------------------------------------------------------[]
HHome LD HL,(PageShift)
LD DE,HelpText
OR A
SBC HL,DE
RET Z
LD (PageShift),DE
LD HL,0x0000
LD (CHLine),HL
JP PrnHelpPg
HEnd LD HL,(NextShift)
LD A,(HL)
INC A
RET Z
LD HL,HelpTextEnd
DEC HL
DEC HL
PUSH HL
LD DE,HelpText
OR A
SBC HL,DE
LD C,L
LD B,H
POP HL
LD DE,(EHLines)
DEC HL
LD A,0x17
.L1 EX AF,AF'
SUB A
DEC DE
CPDR
JP PO,.L2
EX AF,AF'
DEC A
JR NZ,.L1
INC HL
.L2 INC HL
LD (PageShift),HL
INC DE
LD (CHLine),DE
JP PrnHelpPg
HLineUp LD HL,(PageShift)
LD DE,HelpText
OR A
SBC HL,DE
RET Z
LD C,L
LD B,H
ADD HL,DE
DEC HL
SUB A
CPD
JP PO,HLnUp0
CPDR
INC HL
HLnUp0 INC HL
LD (PageShift),HL
LD DE,HelpTextEnd
DEC DE
EX DE,HL
OR A
SBC HL,DE
EX DE,HL
LD C,E
LD B,D
LD A,0x17
HLnUp1 EX AF,AF'
SUB A
CPIR
JP PO,HLnUp2
EX AF,AF'
DEC A
JR NZ,HLnUp1
HLnUp2 LD (NextShift),HL
LD HL,(CHLine)
DEC HL
LD (CHLine),HL
LD DE,0x222A
CALL ScrHELPDnUp
LD B,34
CALL ClearHRect
LD HL,(PageShift)
LD DE,80
LD C,B
LD B,D
LD A,(HL)
INC A
LD A,240
CALL NZ,JUMPS.PrnTxtLnIFF
LD IX,HelpVBar
JP JUMPS.PrnVScrBar
HLineDown LD HL,(NextShift)
LD A,(HL)
INC A
RET Z
PUSH HL
LD DE,HelpTextEnd
EX DE,HL
OR A
SBC HL,DE
EX DE,HL
LD C,E
LD B,D
SUB A
CPIR
LD (NextShift),HL
LD HL,(PageShift)
LD DE,HelpTextEnd
EX DE,HL
OR A
SBC HL,DE
EX DE,HL
LD C,E
LD B,D
SUB A
CPIR
LD (PageShift),HL
LD HL,(CHLine)
INC HL
LD (CHLine),HL
LD DE,0x2A22
CALL ScrHELPDnUp
POP HL
LD B,210
CALL ClearHRect
LD DE,80
LD C,B
LD B,D
LD A,(HL)
INC A
LD A,240
CALL NZ,JUMPS.PrnTxtLnIFF
LD IX,HelpVBar
JP JUMPS.PrnVScrBar
;<3B>  ¢å®¤:
; D - Y ®âªã¤ 
; … - Y ªã¤ 
ScrHELPDnUp
GETPORT WINSP_CPU
PUSH AF
DI
SETPORT WINSP_CPU,0x50
LD HL,WINSP_ADR + 40
LD B,0xE8
ACCEL ACCELCMD.SET_BUFFER
LD A,0xB0
ACCEL ACCELCMD.OFF
ScHelp1 LD A,D
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY_VERT
LD A,(HL)
ACCEL ACCELCMD.OFF
LD A,E
SETPORT WINSP.Y_PORT,,0
ACCEL ACCELCMD.COPY_VERT
LD (HL),A
ACCEL ACCELCMD.OFF
INC HL
DJNZ ScHelp1
POP AF
SETPORT WINSP_CPU,,0
SETPORT WINSP.Y_PORT,0xC0
EI
RET
HPageUpM CALL HPageUp
RET C
LD B,0x0A
HUpM1 PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HUpM1
HUpM2 CALL HPageUp
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HUpM2
HPageUp LD HL,(PageShift)
LD DE,HelpText
OR A
SBC HL,DE
SCF
RET Z
LD C,L
LD B,H
ADD HL,DE
LD DE,(CHLine)
DEC HL
LD A,0x18
.L1 EX AF,AF'
SUB A
DEC DE
CPDR
JP PO,.L2
EX AF,AF'
DEC A
JR NZ,.L1
INC DE
INC HL
.L2 INC HL
LD (PageShift),HL
LD (CHLine),DE
CALL PrnHelpPg
OR A
RET
HPageDownM CALL HPageDown
RET C
LD B,0x0A
HDnM1 PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 0,A
RET Z
HALT
DJNZ HDnM1
HDnM2 CALL HPageDown
RET C
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
RET Z
JR HDnM2
HPageDown LD HL,(NextShift)
LD A,(HL)
INC A
SCF
RET Z
LD (PageShift),HL
LD HL,(CHLine)
LD DE,0x0017
ADD HL,DE
LD (CHLine),HL
CALL PrnHelpPg
OR A
RET
;[]==========================================================[]
HelpTab DW 550,566, 33, 41,%0000000000000011,0,HLineUp,0
DW 550,566,210,218,%0000000000000011,0,HLineDown,0
DW 550,566, 41, 0,%0000000000000000,0,HPageUpM,0
HBarUp EQU $ - 10
DW 550,566, 0,210,%0000000000000000,0,HPageDownM,0
HBarDn EQU $ - 12
DW 284,356,222,236,%0000000000100001,0,HelpExit,0
DW 0, 64, 0,256,%0000000000100000,0,HelpExit,0
DW 576,640, 0,256,%0000000000100000,0,HelpExit,0
DW 0,640, 0, 16,%0000000000100000,0,HelpExit,0
DW 0,640,240,256,%0000000000100000,0,HelpExit,0
DW 0x8000

137
plugins/help/help_t.a80 Normal file
View File

@ -0,0 +1,137 @@
; LAST UPDATE: 26.03.2025 savelij
DB 0,0
DB " Flex Navigator",0,0
DB " version \{FLEX_VERS.NAVIGATOR}",0,0,0
DB " Copyright (C) 2000, Enin Anton, St.-Petersburg, Russia",0
DB " Copyright (C) 2023, Sprinter Team",0
DB 0
DB " All right reserved.",0,0,0,0
DB " <20>㪮¢®¤á⢮ ¯®«ì§®¢ â¥«ï.",0,0,0,0
DB " Žƒ<E280B9>ˆ…",0
DB " ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ",0,0," ",9
DB " …„…<E2809E>ˆ…",0," ",9
DB " <20>€—€Ž <20><EFBFBD>Ž",0," ",9
DB " ”€‰‹Ž‚€Ÿ <20><EFBFBD>œ",0," ",9
DB " <E28098>ŽŠ€ DOS",0," ",9
DB " Œ…<C592>ž -File-",0," ",9
DB " Œ…<C592>ž -Select-",0," ",9
DB " Œ…<C592>ž -Option-",0," ",9
DB " Œ…<C592>ž -View-",0," ",9
DB " Œ…<C592>ž -Config-",0," ",9
DB " Œ…<C592>ž -About-",0," ",9
DB " ”€‰‹› <20>˜ˆ<CB9C><EFBFBD>ˆ‰",0,0
DB " ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ",0,0,0," ",9
DB " …„…<E2809E>ˆ…",0,0
DB " „®¡à® ¯®¦ «®¢ âì ¢ Flex Navigator - ¯à®£à ¬¬­®¥ ®¡¥á¯¥ç¥­¨¥, ª®â®à®¥ ®¡«¥£ç¨â",0
DB "‚ èã à ¡®âã á ¤ ­­ë¬¨ ¢ ä®à¬ â¥ MS-DOS.",0,0,0," ",9
DB " <20>€—€Ž <20><EFBFBD>Ž",0,0
DB " Flex Navigator ¯à¥¤áâ ¢«ï¥â ᮡ®© ¯à¨¢ëç­ãî ä ©«®¢ãî ®¡®«®çªã ⨯  Norton",0
DB "Commander (­  PC) ¨«¨ Commander DOS (­  Sprinter'¥), ⮫쪮 ¢ë¯®«­¥­ ¢",0
DB "£à ä¨ç¥áª®¬ ¨­â¥à䥩á¥. <20>¥ «¨§®¢ ­ë ¯à ªâ¨ç¥áª¨ ¢á¥ ä㭪樨 ä ©«®¢®©",0
DB "®¡®«®çª¨ ¤«ï à ¡®âë ¢ DOS.",0
DB " …᫨ ‚ë å®â¨â¥, ç⮡ë Flex Navigator ­ ç¨­ « ᢮î à ¡®âã ¯®á«¥ ¢ª«î祭¨ï",0
DB "ª®¬¯ìîâ¥à , â® ¢ ä ©«¥ SYSTEM.BAT ­¥®¡å®¤¨¬® ¯à®¯¨á âì ¯®«­ë© ¯ãâì á ¥£®",0
DB "¨¬¥­¥¬.",0,0,0," ",9
DB " ”€‰‹Ž‚€Ÿ <20><EFBFBD>œ",0,0
DB " ” ©«®¢ ï ¯ ­¥«ì ¯à¥¤áâ ¢«ï¥â ᮡ®© 㣫㡫¥­¨¥ ᮠᯨ᪮¬ ä ©«®¢ ⥪ã饩",0
DB "¤¨à¥ªâ®à¨¨ á ¯®«®á®© ¯à®ªàã⪨. <20>¥à¥å®¤ ®â ®¤­®© ¯ ­¥«¨ ª ¤à㣮© ®áãé¥á⢫ï¥âáï",0
DB "¯à¨ ¯®¬®é¨ ª« ¢¨è¨ Tab. <20>®¬¥­ïâì ¯ ­¥«¨ ¬¥áâ ¬¨ ¬®¦­® ª« ¢¨è¥© Ctrl+U.",0,0
DB " Šãàá®à­ë¥ ª« ¢¨è¨ - ¤¢¨¦¥­¨¥ ¯® ä ©« ¬",0
DB " PageUp - ­  áâà ­¨æã ä ©«®¢ ­ § ¤",0
DB " PageDown - ­  áâà ­¨æã ä ©«®¢ ¢¯¥à¥¤",0
DB " Home - ¢ ­ ç «® ᯨ᪠ ä ©«®¢",0
DB " End - ¢ ª®­¥æ ᯨ᪠ ä ©«®¢",0
DB " Alt+F1 - ᬥ­¨âì ­®á¨â¥«ì ¤«ï «¥¢®© ¯ ­¥«¨",0
DB " Alt+F2 - ᬥ­¨âì ­®á¨â¥«ì ¤«ï ¯à ¢®© ¯ ­¥«¨",0
DB " Alt+F3 - ¯à®á¬®âà ä ©«  ¢áâ஥­­ë¬ ¯à®á¬®âà騪®¬ ä ©«®¢",0
DB " Alt+F4 - । ªâ¨à®¢ ­¨¥ ä ©«  ¢áâ஥­­ë¬ । ªâ®à®¬ ä ©«®¢",0
DB " Shift+F3 - ¢¢¥á⨠¨¬ï ä ©«  ¤«ï ¯à®á¬®âà ",0
DB " Shift+F4 - ¢¢¥á⨠¨¬ï ä ©«  ¤«ï । ªâ¨à®¢ ­¨ï",0
DB " Ctrl+\\ - ¯¥à¥ç¨â âì ª®à­¥¢®© ª â «®£",0
DB " F1 - ¯®¬®éì",0
DB " F3 - ¯à®á¬®âà¥âì ä ©«",0
DB " F4 - । ªâ¨à®¢ âì ä ©«",0
DB " F5 - ª®¯¨à®¢ âì ä ©«(ë)",0
DB " F6 - ¯¥à¥¨¬¥­®¢ âì ä ©«",0
DB " F8 - 㤠«¨âì ä ©«(ë)",0
DB " F9 - áâப  ¬¥­î",0
DB " F10 - ¢ë室 ¢ DOS",0
DB " Alt+Enter - ¨­ä®à¬ æ¨ï ® ä ©«¥",0
DB " Ctrl+F9 - à á¯¥ç â âì ä ©« ­  ¯à¨­â¥à¥",0
DB " + - ¬ àª¨à®¢ âì £à㯯ã ä ©«®¢",0
DB " - - ६ àª¨à®¢ âì £à㯯ã ä ©«®¢",0
DB " * - ®¡à â¨âì ¬ àª¨à®¢ªã",0
DB " Ctrl+ - ¬ àª¨à®¢ âì ¢á¥ ä ©«ë",0
DB " Ctrl- - ६ àª¨à®¢ âì ¢á¥ ä ©«ë",0
DB " Alt+F10 - ®¡­®¢¨âì ¤¥à¥¢® ª â «®£®¢",0
DB " Ctrl+L - ¨­ä®à¬ æ¨ï ® ⥪ã饬 ­®á¨â¥«¥",0
DB " Ctrl+F1 - ªà âª¨© ᯨ᮪ ä ©«®¢",0
DB " Ctrl+F2 - ¯®«­ë© ᯨ᮪ ä ©«®¢",0
DB " Ctrl+F3 - á®àâ¨à®¢ª  ¯® ¨¬¥­¨",0
DB " Ctrl+F4 - á®àâ¨à®¢ª  ¯® à áè¨à¥­¨î",0
DB " Ctrl+F5 - á®àâ¨à®¢ª  ¯® ¤ â ¬",0
DB " Ctrl+F6 - á®àâ¨à®¢ª  ¯® à §¬¥àã",0
DB " Ctrl+F7 - ¡¥§ á®àâ¨à®¢ª¨",0
DB " Ctrl+F8 - ¤¥à¥¢® ª â «®£®¢",0
DB " Ctrl+F10 - ᯨ᮪ ¢á¥å ä ©«®¢",0
DB " Ctrl+F11 - ᯨ᮪ § ¯ã᪠¥¬ëå ä ©«®¢",0
DB " Ctrl+F12 - 䨫ìâà ¤«ï ᯨ᪠ ä ©«®¢",0
DB " Alt+A..Z - ¡ëáâàë© ¯®¨áª ä ©« ",0,0,0," ",9
DB " <E28098>ŽŠ€ DOS",0,0
DB " ‘âப  DOS á«ã¦¨â ¢ ®á­®¢­®¬ ¤«ï § ¯ã᪠ ä ©«®¢ á ¯ à ¬¥âà ¬¨. „«ï",0
DB " ªâ¨¢¨§ æ¨¨ áâப¨ ­¥®¡å®¤¨¬® ¯®¯ áâì ¢ ­¥¥ ªãàá®à®¬ ¬ëè¨ ¨«¨ ­ ¦ âì ª« ¢¨èã",0
DB "­¥ ®â­®áïéãîáï ª ä㭪樮­ «ì­ë¬.",0,0
DB " Ctrl+E - ¯à¥¤¨áâ®à¨ï áâப¨",0
DB " Ctrl+Enter - ¯®¬¥áâ¨âì ¢ áâபã ⥪ã饥 ¨¬ï ä ©« ",0
DB " Ctrl+[ - ¯®¬¥áâ¨âì ¢ áâப㠯®«­ë© ¯ãâì «¥¢®© ¯ ­¥«¨",0
DB " Ctrl+] - ¯®¬¥áâ¨âì ¢ áâப㠯®«­ë© ¯ãâì ¯à ¢®© ¯ ­¥«¨",0,0,0," ",9
DB " Œ…<C592>ž - File -",0,0
DB " File info... - ¨­ä®à¬ æ¨ï ® ⥪ã饬 ä ©«¥ (¨¬ï, ¤«¨­ , ¤ â  á®§¤ ­¨ï,",0
DB "  âਡãâ, ¯¥à¢ë© ª« áâ¥à ä ©« )",0
DB " Print - à á¯¥ç â âì ä ©« ­  ¯à¨­â¥à¥",0
DB " Exit - ¢ë室 ¢ DOS",0,0,0," ",9
DB " Œ…<C592>ž - Select -",0,0
DB " Mark group... - ¬ àª¨à®¢ âì £à㯯ã ä ©«®¢",0
DB " Unmark group... - ६ àª¨à®¢ âì £à㯯ã ä ©«®¢",0
DB " Mark all - ¬ àª¨à®¢ âì ¢á¥ ä ©«ë",0
DB " Unmark all - ६ àª¨à®¢ âì ¢á¥ ä ©«ë",0
DB " Invert selection - ®¡à â¨âì ¢ë¤¥«¥­¨¥",0,0,0," ",9
DB " Œ…<C592>ž - Option -",0,0
DB " Refresh tree - ®¡­®¢¨âì ¤¥à¥¢® ª â «®£®¢",0
DB " Disk info... - ¨­ä®à¬ æ¨ï ® ⥪ã饬 ­®á¨â¥«¥",0
DB " System information... - ¨­ä®à¬ æ¨ï ® á¨á⥬¥",0,0,0," ",9
DB " Œ…<C592>ž - View -",0,0
DB " Brief - ªà âª¨© ᯨ᮪ ä ©«®¢",0
DB " Full - ¯®¤à®¡­ë© ᯨ᮪ ä ©«®¢",0
DB " Tree - ¤¥à¥¢® ª â «®£®¢",0
DB " All files - ᯨ᮪ ¢á¥å ä ©«®¢",0
DB " Execute files - ᯨ᮪ § ¯ã᪠¥¬ëå ä ©«®¢",0
DB " *.* - ãáâ ­®¢¨âì 䨫ìâà ¤«ï ᯨ᪠ ä ©«®¢",0
DB " Filtr... - 䨫ìâà ¤«ï ᯨ᪠ ä ©«®¢",0
DB " Name - á®àâ¨à®¢ âì ¯® ¨¬¥­¨",0
DB " Extention - á®àâ¨à®¢ âì ¯® à áè¨à¥­¨î",0
DB " Data - á®àâ¨à®¢ âì ¯® ¤ â¥",0
DB " Size - á®àâ¨à®¢ âì ¯® à §¬¥àã",0
DB " Unsorted - ¡¥§ á®àâ¨à®¢ª¨",0,0,0," ",9
DB " Œ…<C592>ž - Config -",0,0
DB " Setup... - ãáâ ­®¢ª¨ ¤«ï Flex Navigator",0,0,0," ",9
DB " Œ…<C592>ž - About -",0,0
DB " Version... - ¨­ä®à¬ æ¨ï ® ¢¥àᨨ Flex Navigator",0,0,0," ",9
DB " ”€‰‹› <20>˜ˆ<CB9C><EFBFBD>ˆ‰",0,0
DB " „«ï ¯®¤ª«î祭¨ï ¢­¥è­¨å ¯à®£à ¬¬ ¤«ï à ¡®âë á ä ©« ¬¨ áãé¥áâ¢ãîâ ä ©«ë",0
DB "à áè¨à¥­¨©. Flex Navigator ¨á¯®«ì§ã¥â âਠ䠩«  à áè¨à¥­¨©:",0,0
DB " fn.ext - £« ¢­ë© ä ©« à áè¨à¥­¨©",0
DB " fnview.ext - ä ©« à áè¨à¥­¨© ¯à®áâମâà ",0
DB " fnedit.ext - ä ©« à áè¨à¥­¨© । ªâ®à ",0,0
DB " ”®à¬ â ä ©«®¢ à áè¨à¥­¨©:",0,0
DB " ext: [drive]:\\[path]\\filename.ext parametr",0,0
DB " £¤¥: ext - à áè¨à¥­¨¥ ä ©« ",0
DB " [drive]:\\[path]\\filename.ext - ¢­¥è­ïï ¯®¤ª«îç ¥¬ ï ¯à®£à ¬¬ ",0
DB " parametr - !.! ⥪ã饥 ¨¬ï ä ©« ",0
DB " !: ⥪ã饥 ãáâனá⢮",0
DB " !\\ ⥪ã騩 ¯ãâì",0,0,0
DB " ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ",0
DB " <20>®áá¨ï, £. • ¡ à®¢áª, tolik.trek@gmail.com",0
DB 0xFF

2
plugins/test/Q_START.ENG Normal file
View File

@ -0,0 +1,2 @@
1. Copy TEST.FLX file to the Sprinter
2. Execute TEST.FLX in Flex Navigator.

21
plugins/test/build.bat Normal file
View File

@ -0,0 +1,21 @@
@echo off
if not exist tmp md tmp
set path=d:\yad\svn\pentevo\tools\asl\bin\;d:\yad\svn\pentevo\tools\mhmt\;d:\yad\sprinter_src\tools\
set includes=d:\yad\svn\pentevo\rom;d:\yad\sprinter_src\;d:\yad\sprinter_src\flexnav\src\
asl -U -L -C -x -olist tmp\test.lst -i %includes% test.a80 || goto error
p2bin test.p ..\test.flx -r $-$ -k
echo ########################
echo # -= End Compile Ok =- #
echo ########################
goto exit
:error
echo #######################
echo # -= Error Compile =- #
echo #######################
:exit

75
plugins/test/test.a80 Normal file
View File

@ -0,0 +1,75 @@
; LAST UPDATE: 24.03.2025 savelij
;// DEVICE ZXSPECTRUM128
;[]=======================================================================[]
;
; test.z80 -- test plugin for Flex Navigator v1.xx
;
; Created by Anton Enin 08-June-2002
;
; Last update 08-June-2002
;
; Copyright (C) 2002 R-lab
;
; This program should be compiled using z80asm
; http://www.zxasm.narod.ru/
;
;[]=======================================================================[]
;// include '../fplugin.inc'
include macros.a80
include fn_const.a80
include fn_macros.a80
include macros_sp.a80
include dss_sp.a80
org PluginOrg ; #C000 - Header lenght
PluginStart: ; Flex Navigator plugin header
db "FLX-PLUG" ; Id
dw 0x0000 ; LoadOffset
dw PluginEntry ; EntryOffset
db 0x00 ; PluginMode
db 0x00, 0x00, 0x00 ; Reserved
PluginEntry:
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,80,192,96
W_FILL 4,2,184,10,COLORI.BLACK
W_TEXT 82,3,COLORI.WHITE,"Plugin"
W_TEXT 16,20,COLORI.BLUE + COLORP.HIGHGRAY,"Flex Navigator v1.xx Plugin Test"
W_TEXT 46,38,COLORP.HIGHGRAY,"Written by Enin Anton"
W_TEXT 64,48,COLORP.HIGHGRAY,"June, 8 2002"
W_TEXT 52,58,COLORP.HIGHGRAY,"Copyright (c) 2002"
W_BUTTON 60,74,72,14
W_TEXT 88,77,COLORP.HIGHGRAY,"Ok"
W_END
call JUMPS.ResFire
.plugin_loop:
ld ix, PluginMouseTab
call JUMPS.TestCoords
SPDSS DSSF.SCANKEY
jr z, .plugin_loop
ld a, b
or a
jr nz, .plugin_loop
ld a, e
cp 0x1B
jr z, PluginExit
cp 0x0D
jr nz, .plugin_loop
PluginExit:
WINDOWCLOSE
or a ; cf = 0
ret
;[]=======================================================================[]
PluginMouseTab:
dw 0x011C, 0x0164, 0x009A, 0x00A8, 0x0021, 0x0000, PluginExit, 0x0000
dw 0x0000, 0x00E0, 0x0000, 0x0100, 0x0020, 0x0000, PluginExit, 0x0000
dw 0x01A0, 0x0280, 0x0000, 0x0100, 0x0020, 0x0000, PluginExit, 0x0000
dw 0x0000, 0x0280, 0x0000, 0x0050, 0x0020, 0x0000, PluginExit, 0x0000
dw 0x0000, 0x0280, 0x00B0, 0x0100, 0x0020, 0x0000, PluginExit, 0x0000
dw 0x8000
PluginEnd:
;// savebin 'Build/FN/Plugins/test.flx',PluginStart,PluginEnd-PluginStart

712
rez2_fnconfig.a80 Normal file
View File

@ -0,0 +1,712 @@
; LAST UPDATE: 24.03.2025 savelij
PALITRA.RESERV EQU PALETTE + 0x34
;[]==========================================================[]
SetupR
SETPORT WINSP.Y_PORT,0xC0
LD HL,SetInvert
PUSH HL
LD HL,PALETTE
LD DE,TempPALETTE
LD BC,0x0040
LDIR
LD A,(SavePanels)
LD (SaveSav+1),A
OR A
LD A,0xFE
JR Z,.L1
INC A
.L1 LD (SaveFlg),A
SUB A
LD (SaveFlag),A
LD A,(AutoActivatePanel)
LD (AutoActivatePanelFlag),A
OR A
LD A,0xFF
JR Z,.L2
DEC A
.L2: LD (ActivateFlg),A
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 96,64,448,142
; W_MAIN 32,32,448,142
W_FILL 4,2,440,10,COLORI.BLACK
W_TEXT 208,3,COLORI.WHITE,"Setup"
W_BORDER 8,18,144,53
W_FILL 10,19,140,51,COLORI.WHITE
W_TEXT 14,21,COLORP.WHITE,"Panel"
W_TEXT 14,29,COLORP.WHITE,"Files"
W_TEXT 14,37,COLORP.WHITE,"Selected files"
W_TEXT 14,45,COLORP.WHITE,"Invert background"
W_TEXT 14,53,COLORP.WHITE,"Invert foreground"
W_TEXT 14,61,COLORP.WHITE,"Invert foreground (select)"
W_TEXT 164,24,COLORP.HIGHGRAY,"R:"
W_BORDER 176,22,164,10
W_ICONLEFTARROW 178,23
W_ICONRIGHTARROW 322,23
W_TEXT 164,40,COLORP.HIGHGRAY,"G:"
W_BORDER 176,38,164,10
W_ICONLEFTARROW 178,39
W_ICONRIGHTARROW 322,39
W_TEXT 164,56,COLORP.HIGHGRAY,"B:"
W_BORDER 176,54,164,10
W_ICONLEFTARROW 178,55
W_ICONRIGHTARROW 322,55
W_BORDER 372,23,64,40
W_HORIZLINE 4,75,440
W_BORDER 16,81,20,11
W_FILL 18,82,16,9,COLORI.WHITE
W_TEXT 20,83,COLORP.WHITE,"\0"
ActivateFlg EQU $-2
W_TEXT 40,84,COLORP.HIGHGRAY,"activate panel in which changed drive"
W_BORDER 16,99,20,11
W_FILL 18,100,16,9,COLORI.WHITE
W_TEXT 20,101,COLORP.WHITE,"\0"
SaveFlg EQU $-2
W_TEXT 40,102,COLORP.HIGHGRAY,"save Information about panels"
W_BUTTON 360,98,72,14
W_TEXT 384,101,COLORP.HIGHGRAY,"Save"
W_HORIZLINE 4,115,440
W_BUTTON 272,120,72,14
W_TEXT 292,123,COLORP.HIGHGRAY,"Cancel"
W_BUTTON 360,120,72,14
W_TEXT 390,123,COLORP.HIGHGRAY,"Ok"
W_END
SUB A
LD (CurElement),A
CALL SetSetupInv
LD IX,BarRed
CALL InitScrollBar
LD IX,BarGreen
CALL InitScrollBar
LD IX,BarBlue
CALL InitScrollBar
CALL InitElement
SetupLoop LD IX,SetupTab
CALL TestCoords
SPDSS DSSF.SCANKEY
JR Z,SetupLoop
LD A,B
AND 0x3F
JR Z,SetupLoop0
BIT 4,B
JR NZ,SetupLoop
BIT 5,B
JR Z,SetupLoop
LD HL,SetupLoop
PUSH HL
LD A,D
AND 0x7F
CP SC.R
JP Z,InputRED
CP SC.G
JP Z,InputGREEN
CP SC.B
JP Z,InputBLUE
RET
SetupLoop0 LD A,B
AND 0xC0
JR Z,SetupLoop1
LD HL,SetupLoop
PUSH HL
LD A,E
AND 0x5F
CP 'R'
JP Z,DecRED
CP 'G'
JP Z,DecGREEN
CP 'B'
JP Z,DecBLUE
RET
SetupLoop1 LD A,E
RES 5,A
CP 0x1B
JP Z,SetupCancel
CP 0x0D
JP Z,SetupOkey
CP 'C'
JP Z,SetupCancel
CP 'O'
JP Z,SetupOkey
LD HL,SetupLoop
PUSH HL
CP 'S'
JP Z,SaveSetup
CP 'R'
JP Z,IncRED
CP 'G'
JP Z,IncGREEN
CP 'B'
JP Z,IncBLUE
CP 'I'
JP Z,ChSavePan
CP 'A'
JP Z,ChActivatePan
OR A
RET NZ
LD A,D
CP SC.X8
JP Z,BoxUp
CP SC.X2
JP Z,BoxDown
CP SC.X7
JP Z,BoxHome
CP SC.X1
JP Z,BoxEnd
CP SC.X9
JP Z,BoxHome
CP SC.X3
JP Z,BoxEnd
RET
;[]----------------------------------------------------------[]
SaveSetup CALL SetClock
PUSH IY
SPDSS DSSF.CURDISK
POP IY
LD HL,WorkBuffer
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
PUSH IY
SPDSS DSSF.CURDIR
POP IY
LD HL,FlexDIRECTORY
PUSH IY
SPDSS DSSF.CHDIR
POP IY
PUSH AF
CALL C,DOSError
POP AF
JP C,SetupSaveEx
LD HL,SetupName
PUSH IY
SPDSS DSSF.CREATE,,0
POP IY
PUSH AF
CALL C,DOSError
POP AF
JR C,SetupSaveEx
EX AF,AF'
LD HL,SetupHead
LD DE,WorkBuffer+0x100
LD BC,11
LDIR
LD HL,TempPALETTE
LD BC,0x0040
LDIR
LD A,(SavePanels)
LD (DE),A
INC DE
OR A
JR Z,SvSetup
LD A,(MouseFlag)
LD (DE),A
INC DE
LD HL,LeftPanel
PUSH HL
LDI
LDI
LDI
POP HL
LD BC,PANEL.FILEMASK
ADD HL,BC
SUB A
.L1 LDI
CP (HL)
JR NZ,.L1
LD (DE),A
INC DE
LD HL,RightPanel
PUSH HL
LDI
LDI
LDI
POP HL
LD BC,PANEL.FILEMASK
ADD HL,BC
SUB A
.L2 LDI
CP (HL)
JR NZ,.L2
LD (DE),A
INC DE
SvSetup ld a,(AutoActivatePanelFlag)
ld (de),a
inc de
LD HL,WorkBuffer+0x100
OR A
EX DE,HL
SBC HL,DE
EX DE,HL
EX AF,AF'
PUSH IY
PUSH AF
SPDSS DSSF.WRITE
POP AF
SPDSS DSSF.CLOSE
POP IY
LD A,0x01
LD (SaveFlag),A
SetupSaveEx LD HL,WorkBuffer
PUSH IY
SPDSS DSSF.CHDIR
POP IY
JP SetMouse
SetupHead DEFB 0xAE,"FlexSetup",0
SetupName DZ FILENAME.FN_INI
;--------------------------------------------------------------
SetupCancel
WINDOWCLOSE
SaveSav LD A,0x00
LD (SavePanels),A
JR SetupExit
SetupOkey
WINDOWCLOSE
LD HL,TempPALETTE
LD DE,PALETTE
LD BC,0x0040
PUSH DE
LDIR
POP HL
LD DE,0x1000
SPBIOS BIOSF.PIC_GET_PAL,0xFF,0
LD A,(AutoActivatePanelFlag)
LD (AutoActivatePanel),A
SetupExit LD A,(SaveFlag)
OR A
RET Z
LD IX,LeftPanel
LD HL,LeftPanel + PANEL.CURRPATH
LD DE,FlexDIRECTORY
LD A,(DE)
SetRef1 CP (HL)
JR NZ,SetRef2
INC HL
INC DE
LD A,(DE)
OR A
JR NZ,SetRef1
CP (HL)
CALL Z,RefreshSetup
SetRef2 LD IX,RightPanel
LD HL,RightPanel + PANEL.CURRPATH
LD DE,FlexDIRECTORY
LD A,(DE)
SetRef3 CP (HL)
JR NZ,SetRef4
INC HL
INC DE
LD A,(DE)
OR A
JR NZ,SetRef3
CP (HL)
CALL Z,RefreshSetup
SetRef4 PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
PUSH IY
SPDSS DSSF.CHDIR
POP IY
RET
RefreshSetup BIT VIEWFLAG.B_TREE,(IX+PANEL.VIEWFLAG)
RET NZ
PUSH IY
PUSH IX
POP IY
PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
PUSH IY
SPDSS DSSF.CHDIR
POP IY
JR C,RefrErr
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
RefrErr POP IY
RET
SaveFlag DEFB 0x00
;--------------------------------------------------------------
BoxUp LD A,(CurElement)
DEC A
RET M
JR BoxKeyExt
BoxDown LD A,(CurElement)
INC A
CP 0x06
RET Z
JR BoxKeyExt
BoxHome LD A,(CurElement)
OR A
RET Z
SUB A
JR BoxKeyExt
BoxEnd LD A,(CurElement)
CP 0x05
RET Z
LD A,0x05
JR BoxKeyExt
NewElement LD A,(CurElement)
LD C,A
LD A,E
SUB 0x55
SRL A
SRL A
SRL A
CP C
RET Z
BoxKeyExt PUSH AF
CALL ResSetupInv
POP AF
LD (CurElement),A
CALL SetSetupInv
JP InitElement
;--------------------------------------------------------------
ChSavePan LD HL,SavePanTxt
LD A,(SavePanels)
XOR 0x01
LD (SavePanels),A
XOR 0x01
INC A
NEG
LD (HL),A
LD DE,0x0074
LD BC,0x00A5
LD A,0xF0
CALL PrnTxtLnIFF
JP ResFire
SavePanTxt DEFB 0x00,0x00
;--------------------------------------------------------------
ChActivatePan: LD HL,SavePanTxt
LD A,0
AutoActivatePanelFlag EQU $-1
XOR 0x01
LD (AutoActivatePanelFlag),A
INC A
NEG
LD (HL),A
LD DE,0x0074
LD BC,0x0093
LD A,0xF0
CALL PrnTxtLnIFF
JP ResFire
;--------------------------------------------------------------
DecRED LD HL,PALITRA.RESERV + 2
LD DE,PrintRED
JR DecCOLOR
IncRED LD HL,PALITRA.RESERV + 2
LD DE,PrintRED
JR IncCOLOR
DecGREEN LD HL,PALITRA.RESERV + 1
LD DE,PrintGREEN
JR DecCOLOR
IncGREEN LD HL,PALITRA.RESERV + 1
LD DE,PrintGREEN
JR IncCOLOR
DecBLUE LD HL,PALITRA.RESERV
LD DE,PrintBLUE
JR DecCOLOR
IncBLUE LD HL,PALITRA.RESERV
LD DE,PrintBLUE
JR IncCOLOR
DecCOLOR LD A,(HL)
OR A
RET Z
DEC A
LD (HL),A
JR DecIncCOLOR
IncCOLOR LD A,(HL)
INC A
RET Z
LD (HL),A
DecIncCOLOR LD HL,PrnPALETTE
PUSH HL
PUSH DE
LD HL,ElementColor
LD A,(CurElement)
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD A,(HL)
ADD A,A
ADD A,A
LD DE,TempPALETTE
ADD A,E
LD E,A
JR NC,.L2
INC D
.L2 LD HL,PALITRA.RESERV
LDI
LDI
LDI
RET
;--------------------------------------------------------------
InputRED LD HL,PALITRA.RESERV + 2
LD DE,PrintRED
LD BC,0x0058
JR InputColor
InputGREEN LD HL,PALITRA.RESERV + 1
LD DE,PrintGREEN
LD BC,0x0068
JR InputColor
InputBLUE LD HL,PALITRA.RESERV
LD DE,PrintBLUE
LD BC,0x0078
InputColor LD (ColorY),BC
LD BC,DecIncCOLOR
PUSH BC
PUSH HL
PUSH DE
LD DE,ColText
LD A,(HL)
CALL ConvNumTxt8
SUB A
LD (DE),A
LD A,E
SUB LOW (ColText)
LD (ColLen),A
InpAg LD IX,ColorStr
LD HL,EmptyTab
CALL InputLine
POP DE
POP HL
RET C
PUSH HL
PUSH DE
LD DE,ColText
CALL ConvTxtNum16
JR C,InpAg
LD A,H
OR A
JR NZ,InpAg
LD A,L
POP DE
POP HL
LD (HL),A
RET
ColorStr DEFB 0x03,0x00,0x00,0x00
ColLen DEFB 0x00
DEFW 0x01B8
ColorY DEFW 0x0000
DEFW 0x001A
DEFB 0x80
ColText DUPL 0x04,0x00
;--------------------------------------------------------------
CurElement DEFB 0x00
SavePanels DEFB 0x01
ElementColor DB COLORI.PANEL,COLORI.FILES,COLORI.SELECTFILES
DB COLORI.INVERTPAPER,COLORI.INVERTINK,COLORI.INVSELFILES
BarRed DEFW 0x0122 ; X ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x0057 ; Y ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x0080 ; Max ¤«¨­  áªà®«¡ à 
DEFW 0x0000 ; ⥪.¤«¨­  áªà®«¡ à 
DEFW 0x0000 ; €¤à¥á ï祩ª¨ BarLeft
DEFW 0x0000 ; €¤à¥á ï祩ª¨ BarRight
DEFW 0x0198 ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥
DEFW 0x0FF0 ; ޡ饥 ª®«-¢® ä ©«®¢
CRed DEFW 0x0000 ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥
BarGreen DEFW 0x0122 ; X ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x0067 ; Y ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x0080 ; Max ¤«¨­  áªà®«¡ à 
DEFW 0x0000 ; ⥪.¤«¨­  áªà®«¡ à 
DEFW 0x0000 ; €¤à¥á ï祩ª¨ BarLeft
DEFW 0x0000 ; €¤à¥á ï祩ª¨ BarRight
DEFW 0x0198 ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥
DEFW 0x0FF0 ; ޡ饥 ª®«-¢® ä ©«®¢
CGreen DEFW 0x0000 ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥
BarBlue DEFW 0x0122 ; X ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x0077 ; Y ¯®§¨æ¨ï áªà®«¡ à 
DEFW 0x0080 ; Max ¤«¨­  áªà®«¡ à 
DEFW 0x0000 ; ⥪.¤«¨­  áªà®«¡ à 
DEFW 0x0000 ; €¤à¥á ï祩ª¨ BarLeft
DEFW 0x0000 ; €¤à¥á ï祩ª¨ BarRight
DEFW 0x0198 ; Š®«-¢® ä ©«®¢ ­  áâà ­¨æ¥
DEFW 0x0FF0 ; ޡ饥 ª®«-¢® ä ©«®¢
CBlue DEFW 0x0000 ; <20>¥à¢ë© ä ©« ­  áâà ­¨æ¥
TempPALETTE DUPL 0x40,0
;--------------------------------------------------------------
ResSetupInv LD DE,(COLORP.BLUE + COLORI.WHITE) << 8 | (COLORP.WHITE + COLORI.BLACK) ;0x4FF0
JR SetupInvert
SetSetupInv LD DE,(COLORP.WHITE + COLORI.BLACK) << 8 | (COLORP.BLUE + COLORI.WHITE) ;0xF04F
SetupInvert LD HL,85 ; Y ¨á室­ë©
; TODO ­¥ ãç¨â뢠¥âáï ¯®§¨æ¨ï ®ª­ , ᤥ« âì ¯à¨¢ï§ªã
LD A,(CurElement)
OR A
JR Z,SetupI1
LD B,A
PUSH DE
LD DE,8
.L1 ADD HL,DE
DJNZ .L1
POP DE
SetupI1 LD IX,8 << 8 | 70 ; HIGH -> ¢ëá®â , LOW -> è¨à¨­ 
LD C,L
LD B,H ; Y
LD HL,106 ; X
; TODO ­¥ ãç¨â뢠¥âáï ¯®§¨æ¨ï ®ª­ , ᤥ« âì ¯à¨¢ï§ªã
JP InvertRectan
InitElement LD HL,ElementColor
LD A,(CurElement)
ADD A,L
LD L,A
JR NC,.L1
INC H
.L1 LD A,(HL)
ADD A,A
ADD A,A
LD HL,PALETTE
ADD A,L
LD L,A
JR NC,.L2
INC H
.L2 LD DE,PALITRA.RESERV
LDI
LDI
LDI
CALL PrintRED
CALL PrintGREEN
CALL PrintBLUE
JP PrnPALETTE
PrintRED LD DE,WorkBuffer
LD A,(PALITRA.RESERV + 2)
LD L,A
LD H,0x00
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD (CRed),HL
CALL ConvNumTxt8
LD A,0x04
SUB E
LD B,A
LD A,0x20
.L1 LD (DE),A
INC E
DJNZ .L1
SUB A
InitEl1 LD (DE),A
LD HL,WorkBuffer
LD DE,0x01B8
LD BC,0x0058
LD A,0x80
CALL PrnTxtLnIFF
LD IX,BarRed
JP PrnHScrBar
PrintGREEN LD DE,WorkBuffer
LD A,(PALITRA.RESERV + 1)
LD L,A
LD H,0x00
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD (CGreen),HL
CALL ConvNumTxt8
LD A,0x04
SUB E
LD B,A
LD A,0x20
.L1 LD (DE),A
INC E
DJNZ .L1
SUB A
InitEl2 LD (DE),A
LD HL,WorkBuffer
LD DE,0x01B8
LD BC,0x0068
LD A,0x80
CALL PrnTxtLnIFF
LD IX,BarGreen
JP PrnHScrBar
PrintBLUE LD DE,WorkBuffer
LD A,(PALITRA.RESERV)
LD L,A
LD H,0x00
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD (CBlue),HL
CALL ConvNumTxt8
LD A,0x04
SUB E
LD B,A
LD A,0x20
.L1 LD (DE),A
INC E
DJNZ .L1
SUB A
InitEl3 LD (DE),A
LD HL,WorkBuffer
LD DE,0x01B8
LD BC,0x0078
LD A,0x80
CALL PrnTxtLnIFF
LD IX,BarBlue
JP PrnHScrBar
PrnPALETTE LD HL,PALETTE
LD DE,0x1000
SPBIOS BIOSF.PIC_GET_PAL,0xFF,0
MAKEWINDOW WINSUBOBJ.WOBIND
W_FILL 470,88,60,38,COLORI.RESERVED
W_END
RET

346
rez2_fnerror.a80 Normal file
View File

@ -0,0 +1,346 @@
; LAST UPDATE: 25.03.2025 savelij
; !FIXIT ¯¥à¥¤¥« âì ®¤¨­ ª®¢ë¥ ®ª­  á à §­ë¬ ⥪á⮬ ¤«ï ®è¨¡®ª ¯®¤  ¢â®¬ â¨ç¥áªãî ¯à®æ¥¤ãàã
;[]===========================================================[]
DOSErrorR ;[x] 30/07/23 -bug ¢ë«¥â §  ¯à¥¤¥«ë â ¡«¨æë ®è¨¡®ª
CP (.error - .ErrorWins)/2
JR C,.calc_addr
LD HL,.error
JR .goto_addr
.calc_addr: LD HL,.ErrorWins
ADD A,A
ADD A,L
LD L,A
JR NC,.goto_addr
INC H
.goto_addr: LD A,(HL)
INC HL
LD H,(HL)
LD L,A
LD A,H
OR L
RET Z
CALL SetMouse
JP (HL)
.ErrorWins DEFW 0x0000 ; 00
DEFW 0x0000 ; 01
DEFW InvDrive ; 02
DEFW FileNFound ; 03
DEFW InvPath ; 04
DEFW 0x0000 ; 05
DEFW FileNFound ; 06
DEFW FILEexists ; 07
DEFW 0x0000 ; 08
DEFW ROOToverflow ; 09
DEFW NoDiskSpace ; 0A
DEFW DIRnotEmpty ; 0B
DEFW 0x0000 ; 0C
DEFW InvMedia ; 0D
DEFW 0x0000 ; 0E
DEFW DIRexists ; 0F
DEFW InvName ; 10
DEFW InvEXEfile ; 11
DEFW InvEXEver ; 12
DEFW 0x0000 ; 13
DEFW NotReady ; 14
DEFW 0x0000 ; 15
DEFW 0x0000 ; 16
DEFW 0x0000 ; 17
DEFW WriteProtect ; 18 ; [ ] 26/06/2024
DEFW 0x0000 ; 19
DEFW 0x0000 ; 1A
DEFW 0x0000 ; 1B
DEFW NotReady ; 1C
DEFW 0x0000 ; 1D
DEFW NoMemory ; 1E
DEFW 0x0000 ; 1F
DEFW 0x0000 ; 20
DEFW 0x0000 ; 21
DEFW 0x0000 ; 22
DEFW ToManyFilesInDir ; 23
; always last in the table:
.error: DW UnknownError ; if no ERROR in this table then will show this message
;--------------------------------------------------------------
WriteProtect:
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 37,18,COLORP.HIGHGRAY,"Drive is write protected"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
InvDrive
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 24,18,COLORP.HIGHGRAY,"Invalid drive letter:"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_BORDER 120,15,16,12
W_FILL 122,16,12,10,COLORI.WHITE
W_END
JP InputDrive
InvMedia
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 46,18,COLORP.HIGHGRAY,"Invalid media:"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_BORDER 120,15,16,12
W_FILL 122,16,12,10,COLORI.WHITE
W_END
JR InputDrive
NotReady
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 36,18,COLORP.HIGHGRAY,"Drive not ready:"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_BORDER 120,15,16,12
W_FILL 122,16,12,10,COLORI.WHITE
W_END
InputDrive PUSH IY
SPDSS DSSF.CURDISK
POP IY
ADD A,"A"
LD (CurDrv),A
LD IX,DriveStr
LD HL,ErrorTab1
CALL InputLine
WINDOWCLOSE
CALL SetClock
LD A,(CurDrv)
RES 5,A
SUB "A"
PUSH IY
SPDSS DSSF.CHDISK
POP IY
JP C,DOSErrorR
LD HL,BegDIR
PUSH IY
SPDSS DSSF.CHDIR
POP IY
JP C,DOSErrorR
CALL SetMouse
LD A,0x01
RET
ErrorTab1 DEFW 0x011C,0x0164,0x0076,0x0084,0x01,0x0000,InputLine.InpLnExtN,0x0000
DEFW 0x8000
DriveStr DEFB 0x01,0x00,0x00,0x00
DEFB 0x01
DEFW 0x015C,0x006A
DEFW 0x000A
DEFB 0xF0
CurDrv DUPL 0x02,0x00
;--------------------------------------------------------------
InvPath
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 70,18,COLORP.HIGHGRAY,"Invalid path"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
ErrorLp0 LD IX,ErrorTab2
CALL TestCoords
SPDSS DSSF.SCANKEY
JR Z,ErrorLp0
LD A,B
OR A
JR NZ,ErrorLp0
LD A,E
CP 0x1B
JR Z,ErrorExt0
CP 0x0D
JR Z,ErrorExt0
RES 5,A
CP "O"
JR NZ,ErrorLp0
ErrorExt0
WINDOWCLOSE
CALL SetClock
LD HL,BegDIR
PUSH IY
SPDSS DSSF.CHDIR
POP IY
JP C,DOSErrorR
CALL SetMouse
LD A,0x01
RET
ErrorTab2 DEFW 0x011C,0x0164,0x0076,0x0084,0x21,0x0000,ErrorExt0,0x0000
DEFW 0x8000
;--------------------------------------------------------------
FileNFound
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 60,18,COLORP.HIGHGRAY,"File not found"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
ROOToverflow
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 64,18,COLORP.HIGHGRAY,"ROOT overflow"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
NoDiskSpace
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 62,18,COLORP.HIGHGRAY,"No disk space"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
DIRnotEmpty
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 40,18,COLORP.HIGHGRAY,"Directory is not empty"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
FILEexists
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 72,18,COLORP.HIGHGRAY,"File exists"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
DIRexists
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 56,18,COLORP.HIGHGRAY,"Directory exists"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
InvName
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 66,18,COLORP.HIGHGRAY,"Invalid name"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
InvEXEfile
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 60,18,COLORP.HIGHGRAY,"Invalid EXE file"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
InvEXEver
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 40,18,COLORP.HIGHGRAY,"Unsupport EXE version"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
NoMemory
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 52,18,COLORP.HIGHGRAY,"No memory space"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
ToManyFilesInDir:
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 30,18,COLORP.HIGHGRAY,"Too many directory entries"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
JP ErrorLp
UnknownError: ;[x] 30/07/23 -bug ¢ë«¥â §  ¯à¥¤¥«ë â ¡«¨æë ®è¨¡®ª
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,88,192,48
W_FILL 4,2,184,10,COLORI.RED
W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
W_TEXT 60,18,COLORP.HIGHGRAY,"Unknown Error"
W_BUTTON 60,30,72,14
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
W_END
;JP ErrorLp
ErrorLp LD IX,ErrorTab3
CALL TestCoords
SPDSS DSSF.SCANKEY
JR Z,ErrorLp
LD A,B
OR A
JR NZ,ErrorLp
LD A,E
CP 0x1B
JR Z,ErrorExt
CP 0x0D
JR Z,ErrorExt
RES 5,A
CP 'O'
JR NZ,ErrorLp
ErrorExt
WINDOWCLOSE
SUB A
RET
ErrorTab3 DEFW 0x011C,0x0164,0x0076,0x0084,0x21,0x0000,ErrorExt,0x0000
DEFW 0x8000

2418
rez2_fnfunct.a80 Normal file

File diff suppressed because it is too large Load Diff

965
rez2_fnmisc.a80 Normal file
View File

@ -0,0 +1,965 @@
; LAST UPDATE: 28.05.2025 savelij
;[]==========================================================[]
FileInfoR LD A,(IY+PANEL.EFL)
OR (IY+PANEL.EFH)
RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ
SETPORT WINSP.Y_PORT,0xC0
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
LD L,(IY+PANEL.FFL)
LD H,(IY+PANEL.FFH)
LD E,(IY+PANEL.CFL)
LD D,(IY+PANEL.CFH)
ADD HL,DE
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD E,L
LD D,H
ADD HL,HL
ADD HL,DE
LD A,H
OR 0xC0
LD H,A
LD DE,WorkBuffer
LD BC,0x0018
LDIR
POP AF
SETPORT WINSP.CPU3,,0
LD IX,WorkBuffer
LD HL,WorkBuffer+1
LD DE,WorkBuffer+0x20
LD A,(HL)
CP '.'
RET Z
CALL SetClock
PUSH DE
CALL MakeDOSname
POP HL
LD DE,FName
LD C,12
SUB A
.L2 LDI
CP (HL)
JR NZ,.L2
LD A,C
OR A
JR Z,.L5
LD B,A
LD A,0x20
.L3 LD (DE),A
INC DE
DJNZ .L3
.L5 LD HL,FAtributs
LD DE,FAttrib
LD C,(IX + FileHDR.Attr)
LD B,0x08
.L6 RL C
LD A,'-'
JR NC,.L4
LD A,(HL)
.L4 LD (DE),A
INC HL
INC DE
DJNZ .L6
LD HL,FLen
LD B,0x10
LD A,0x20
.L10 LD (HL),A
INC HL
DJNZ .L10
LD DE,FLen
BIT DIR.B_Dir,(IX + FileHDR.Attr)
JR Z,.L7
LD HL,DirText
LD BC,0x000A
LDIR
JR .L8
.L7 LD L,(IX+0x0F)
LD H,(IX+0x10)
LD C,(IX+0x11)
LD B,(IX+0x12)
CALL ConvNumTxt32
LD A,0x20
LD (DE),A
INC DE
LD HL,Bytes
LD BC,0x0005
LDIR
.L8 LD DE,FData
CALL GetData
LD DE,FTime
CALL GetTime
LD HL,WorkBuffer+0x20
LD DE,WorkBuffer+0x30
LD A,(FileAtribut)
PUSH IY
SPDSS DSSF.F_FIRST,0
POP IY
JP C,SetMouse
LD HL,FClast
LD B,0x05
LD A,0x20
.L9 LD (HL),A
INC HL
DJNZ .L9
LD HL,WorkBuffer+0x30+26
LD E,(HL)
INC HL
LD D,(HL)
EX DE,HL
LD DE,FClast
CALL ConvNumTxt16
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 240,80,160,98
W_FILL 4,2,152,10,COLORI.BLACK
W_TEXT 56,3,COLORI.WHITE,"File info"
W_TEXT 10,20,COLORP.HIGHGRAY,"Name: "
FName EQU $ - STRLEN(" ") - 1
W_TEXT 10,32,COLORP.HIGHGRAY,"Attributes: "
FAttrib EQU $ - STRLEN(" ") - 1
W_TEXT 10,44,COLORP.HIGHGRAY,"Len: "
FLen EQU $ - STRLEN(" ") - 1
W_TEXT 10,56,COLORP.HIGHGRAY,"Data: "
FData EQU $ - STRLEN(" ") - 1
FTime EQU $ - STRLEN(" ") - 1
W_TEXT 10,68,COLORP.HIGHGRAY,"First Claster: "
FClast EQU $ - STRLEN(" ") - 1
W_BUTTON 44,80,72,14
W_TEXT 72,83,COLORP.HIGHGRAY,"Ok"
W_END
CALL SetMouse
FileInfoLoop: LD IX,FileInfoTab
CALL TestCoords
SPDSS DSSF.SCANKEY
JR Z,FileInfoLoop
LD A,B
OR A
JR NZ,FileInfoLoop
LD A,E
CP 0x1B
JR Z,FileInfoExt
CP 0x0D
JR Z,FileInfoExt
RES 5,A
CP 'O'
JR NZ,FileInfoLoop
FileInfoExt:
WINDOWCLOSE
RET
FAtributs: DEFB "--ad-shr"
;[]==========================================================[]
PrintFileR LD A,(IY+PANEL.EFL)
OR (IY+PANEL.EFH)
RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ
SETPORT WINSP.Y_PORT,0xC0
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
LD L,(IY+PANEL.FFL)
LD H,(IY+PANEL.FFH)
LD E,(IY+PANEL.CFL)
LD D,(IY+PANEL.CFH)
ADD HL,DE
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD E,L
LD D,H
ADD HL,HL
ADD HL,DE
LD A,H
OR 0xC0
LD H,A
LD DE,WorkBuffer
LD BC,0x0018
LDIR
POP AF
SETPORT WINSP.CPU3,,0
LD IX,WorkBuffer
BIT DIR.B_Dir,(IX + FileHDR.Attr)
RET NZ
LD HL,WorkBuffer+1
LD DE,PrnFileName
CALL MakeDOSname
LD L,(IX + FileHDR.SizeBytes)
LD H,(IX + FileHDR.SizeBytes + 1)
LD (PrnFileLen),HL
LD E,(IX + FileHDR.SizeBytes + 2)
LD D,(IX + FileHDR.SizeBytes + 3)
LD (PrnFileLen+2),DE
LD A,H
OR L
OR D
OR E
RET Z
PUSH IY
SPDSS DSSF.GETMEM,1
POP IY
PUSH AF
CALL C,DOSError
POP AF
RET C
LD (PrnMIndef),A
PUSH IY
LD HL,PagesList
SPBIOS BIOSF.GETMEMBLKPAGES
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 168,84,304,62
W_FILL 4,2,296,10,COLORI.BLACK
W_TEXT 142,3,COLORI.WHITE,"Print"
W_TEXT 16,16,COLORP.HIGHGRAY,"Printing file:"
W_BORDER 16,28,272,12
W_FILL 18,29,268,10,COLORI.WHITE
W_BUTTON 116,44,72,14
W_TEXT 140,47,COLORP.HIGHGRAY,"Stop"
W_END
PUSH IY
POP HL
LD DE,PANEL.CURRPATH
ADD HL,DE
LD DE,WorkBuffer
SUB A
.L2 LDI
CP (HL)
JR NZ,.L2
DEC HL
LD A,0x5C
CP (HL)
JR Z,.L3
LD (DE),A
INC DE
.L3 LD HL,PrnFileName
SUB A
.L4 LDI
CP (HL)
JR NZ,.L4
LD (DE),A
LD IX,0x00D0
LD HL,WorkBuffer
LD DE,0x00F8
LD BC,0x0064
LD A,0x80
CALL PrnRangPathL
LD IX,PrintFTab
CALL TestCoords
LD IX,ProcessFPrn
LD HL,(PrnFileLen)
LD DE,(PrnFileLen+2)
LD A,L
LD L,H
LD H,E
LD E,D
OR A
JR Z,InitPrn
INC HL
LD A,H
OR L
JR NZ,InitPrn
INC E
InitPrn LD (IX+PROC.MAXL1),L
LD (IX+PROC.MAXH1),H
LD (IX+PROC.MAXL2),E
LD (IX+PROC.MAXH2),0x00
CALL InitProcess
LD HL,PrnFileName
SPDSS DSSF.OPEN,,1
PUSH AF
CALL C,DOSError
POP AF
JP C,PrnError
LD (PrnFHandle),A
GETPORT WINSP.CPU3
PUSH AF
LD HL,PagesList
LD A,(HL)
ReadPr1 INC HL
PUSH HL
SETPORT WINSP.CPU3,,0
LD HL,(PrnFileLen)
LD DE,(PrnFileLen+2)
LD BC,0x4000
OR A
SBC HL,BC
LD B,0x00
EX DE,HL
SBC HL,BC
EX DE,HL
JR C,ReadPrnEnd
LD (PrnFileLen),HL
LD (PrnFileLen+2),DE
CALL SetClock
LD HL,0xC000
LD DE,0x4000
LD A,(PrnFHandle)
SPDSS DSSF.READ
CALL SetMouse
LD BC,0x4000
CALL PrintBlock
POP HL
JR C,PrnEsc
LD A,(HL)
CP 0xFF
JR NZ,ReadPr1
PrnEsc POP AF
SETPORT WINSP.CPU3,,0
JR PrnFileExit
ReadPrnEnd: LD HL,0xC000
LD DE,(PrnFileLen)
LD A,D
OR E
JR Z,.L1
CALL SetClock
LD A,(PrnFHandle)
PUSH DE
SPDSS DSSF.READ
POP BC
CALL SetMouse
CALL PrintBlock
JR C,.L2
.L1 CALL NxtPrnProc
.L2 POP HL
POP AF
SETPORT WINSP.CPU3,,0
PrnFileExit LD A,(PrnFHandle)
SPDSS DSSF.CLOSE
PrnError LD A,(PrnMIndef)
SPDSS DSSF.FREEMEM
POP IY
HALT
HALT
WINDOWCLOSE
RET
;[]----------------------------------------------------------[]
PrintBlock: LD DE,0xC000
PrnBlockLp LD A,(DE)
INC DE
CALL PrintCHAR
RET C
CALL NxtPrnProc
DEC BC
LD A,B
OR C
JR NZ,PrnBlockLp
RET
PrintCHAR: LD L,A
PUSH HL
PUSH DE
PUSH BC
SPMOUSE MOUSEF.READ_STATE
BIT 0,A
JR Z,PrnCH1
LD IX,PrintFTab
CALL TestCoords
JR C,PrnCH2
PrnCH1
SPDSS DSSF.SCANKEY
LD A,E
PrnCH2 POP BC
POP DE
POP HL
RET C
JR Z,PrnCHAR
CP 0x1B
SCF
RET Z
RES 5,A
CP 'S'
JR NZ,PrnCHAR
StopPrint SCF
RET
PrnCHAR PUSH DE
PUSH BC
LD A,L
SPDSS DSSF.PRINT
LD A,B
POP BC
POP DE
RET NC
HALT
JR PrintCHAR
;[]----------------------------------------------------------[]
NxtPrnProc LD A,E
OR A
RET NZ
PUSH DE
PUSH BC
LD IX,ProcessFPrn
LD L,(IX+PROC.CURL1)
LD H,(IX+PROC.CURH1)
INC HL
LD (IX+PROC.CURL1),L
LD (IX+PROC.CURH1),H
LD A,H
OR L
JR NZ,.L1
LD L,(IX+PROC.CURL2)
LD H,(IX+PROC.CURH2)
INC HL
LD (IX+PROC.CURL2),L
LD (IX+PROC.CURH2),H
.L1 CALL PrnProcess
POP BC
POP DE
RET
ProcessFPrn: DEFW 0x00BA
DEFW 0x0071
DEFW 0x010C
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFW 0x0000
DEFB 0x4F
PrnFileName: DUPL 13,0
PrnFileLen: DUPL 4,0
PrnMIndef: DEFB 0x00
PrnFHandle: DEFB 0x00
;[]==========================================================[]
SystemInfoR
SETPORT WINSP.Y_PORT,0xC0
LD HL,SetInvert
PUSH HL
LD HL,DOSvers
LD DE,BIOSver
LD B,0x05
LD A,0x20
.L1 LD (HL),A
INC HL
LD (DE),A
INC DE
DJNZ .L1
PUSH IY
SPDSS DSSF.VERSION
POP IY
EX DE,HL
LD DE,DOSvers
LD A,H
CALL ConvNumTxt8
LD A,'.'
LD (DE),A
INC DE
LD A,L
CALL ConvNumTxt8
LD HL,WorkBuffer
SPBIOS BIOSF.FN_VERSION
SUB A
.L2 INC HL
CP (HL)
JR NZ,.L2
LD A,0x20
.L3 DEC HL
CP (HL)
JR NZ,.L3
INC HL
LD DE,BIOSver
SUB A
.L4 LDI
CP (HL)
JR NZ,.L4
LD HL,Present
LD A,(CMOSFlag)
OR A
JR NZ,.L5
LD HL,NotPresent
.L5 LD DE,CMOS
LD BC,0x000B
LDIR
LD HL,TotMem
LD DE,FreeMem
LD B,0x0F
LD A,0x20
.L6 LD (HL),A
INC HL
LD (DE),A
INC DE
DJNZ .L6
PUSH IY
SPDSS DSSF.INFOMEM
POP IY
PUSH BC
LD B,H
LD C,L
LD HL,0x0000
LD DE,WorkBuffer
SRL B
RR C
RR H
RR L
SRL B
RR C
RR H
RR L
PUSH DE
CALL ConvNumTxt32
SUB A
LD (DE),A
POP HL
LD DE,TotMem
CALL CorrBigNum
INC DE
LD HL,Bytes
LD BC,0x0005
LDIR
POP HL
LD B,H
LD C,L
LD HL,0x0000
LD DE,WorkBuffer
SRL B
RR C
RR H
RR L
SRL B
RR C
RR H
RR L
PUSH DE
CALL ConvNumTxt32
SUB A
LD (DE),A
POP HL
LD DE,FreeMem
CALL CorrBigNum
INC DE
LD HL,Bytes
LD BC,0x0005
LDIR
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 224,64,192,114
W_FILL 4,2,184,10,COLORI.BLACK
W_TEXT 48,3,COLORI.WHITE,"System information"
W_TEXT 10,20,COLORP.HIGHGRAY,"FN version: \{FLEX_VERS.NAVIGATOR}"
W_TEXT 10,32,COLORP.HIGHGRAY,"BIOS version: "
BIOSver EQU $ - STRLEN(" ") - 1
W_TEXT 10,44,COLORP.HIGHGRAY,"DOS version: "
DOSvers EQU $ - STRLEN(" ") - 1
W_TEXT 10,56,COLORP.HIGHGRAY,"CMOS: "
CMOS EQU $ - STRLEN(" ") - 1
W_TEXT 10,70,COLORP.HIGHGRAY,"Total memory: "
TotMem EQU $ - STRLEN(" ") - 1
W_TEXT 10,82,COLORP.HIGHGRAY,"Free memory: "
FreeMem EQU $ - STRLEN(" ") - 1
W_BUTTON 60,96,72,14
W_TEXT 88,99,COLORP.HIGHGRAY,"Ok",0
W_END
SysInfoLoop: LD IX,SysInfoTab
CALL TestCoords
SPDSS DSSF.SCANKEY
JR Z,SysInfoLoop
LD A,B
OR A
JR NZ,SysInfoLoop
LD A,E
CP 0x1B
JR Z,SysInfoExt
CP 0x0D
JR Z,SysInfoExt
RES 5,A
CP 'O'
JR NZ,SysInfoLoop
SysInfoExt
WINDOWCLOSE
RET
Bytes: DEFB "bytes"
Present: DEFB "Present "
NotPresent: DEFB "Not present"
;[]==========================================================[]
DiskInfoR: LD HL,SetInvert
;!FIXIT ¯à®¢¥à¨âì ¤«ï íâ® ®­® ¨«¨ ­¥â SAFE_PORTY
PUSH HL
SETPORT WINSP.Y_PORT,0xC0
CALL SetClock
PUSH IY
SPDSS DSSF.CURDISK
POP IY
ADD A,'A'
LD (.CrDrive),A
;!TEST
;LD IX,0x0000
;LD HL,0x0000
;LD DE,WorkBuffer
;LD BC,0x0105
;SUB 'A'
;PUSH IY
;RST ToDSS.DRV ;!FIXIT rst 0x18
;POP IY
;JP C,SetMouse
LD B,0
CALL .get_info
EX AF,AF'
LD A,D
AND E
EXX
AND D
AND E
INC A
EXX
JR Z,.no_full_info
; ¢á¥ ¤ ­­ë¥ ¥áâì
PUSH DE ; ᢮¡®¤­ëå ª« áâ¥à®¢, ¬« ¤è ï ç áâì
PUSH HL ; ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢, ¬« ¤è ï ç áâì
PUSH BC ; à §¬¥à ᥪâ®à  ¢ ¡ ©â å
EXX
PUSH DE ; ᢮¡®¤­ëå ª« áâ¥à®¢, áâ àè ï ç áâì
PUSH HL ; ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢, áâ àè ï ç áâì
EX AF,AF'
PUSH AF ; à §¬¥à ª« áâ¥à  ¢ ᥪâ®à å
EX AF,AF'
.no_full_info: PUSH AF
; parsing
LD D,0
LD HL,WorkBuffer
; âãâ ¢ HL ¤«¨­  ¯®«ï "” ©«®¢ ï á¨á⥬ "
LD E,(HL)
ADD HL,DE
INC HL
; ¤«¨­  ¯®«ï "‘¥à¨©­ë© ­®¬¥à ¤¨áª "
LD A,(HL)
PUSH HL
INC HL
LD (.serial_1),HL
INC HL
LD (.serial_2),HL
INC HL
LD (.serial_3),HL
INC HL
LD (.serial_4),HL
POP HL
LD E,A
ADD HL,DE
INC HL ; 㪠§ â¥«ì ­  ¤«¨­ã ¯®«ï "Œ¥âª  ¤¨áª "
INC HL
; ¬¥âª 
LD (.buf_label),HL
LD DE,.NoLabel
LD B,11
.loop1: SUB A
CP (HL)
JR Z,.DiskI2
LD A,(DE)
CP (HL)
JR NZ,.DiskI1
INC HL
INC DE
DJNZ .loop1
.DiskI1: LD HL,WorkBuffer+0x2B
.buf_label EQU $-2
JR NZ,.DiskI21F
.DiskI2: LD HL,.NoLabelT
.DiskI21F: LD DE,.Dlabel
LD BC,.Dlabel.Size
LDIR
; á¥à¨©­¨ª
LD DE,.SerialN
LD A,(WorkBuffer+0x2A)
.serial_4 EQU $-2
CALL ConvHexTxt
LD A,(WorkBuffer+0x29)
.serial_3 EQU $-2
CALL ConvHexTxt
INC DE
LD A,(WorkBuffer+0x28)
.serial_2 EQU $-2
CALL ConvHexTxt
LD A,(WorkBuffer+0x27)
.serial_1 EQU $-2
CALL ConvHexTxt
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 192,80,256,98
W_FILL 4,2,248,10,COLORI.BLACK
W_TEXT 106,3,COLORI.WHITE,"Disk info"
W_TEXT 10,20,COLORP.HIGHGRAY,"Current drive: "
.CrDrive: EQU $ - 2
W_TEXT 10,32,COLORP.HIGHGRAY,"Total disk space:"
W_TEXT 10,44,COLORP.HIGHGRAY,"Avaliable disk space:"
W_TEXT 10,56,COLORP.HIGHGRAY,"Disk label: "
.Dlabel: EQU $ - STRLEN(" ") - 1
.Dlabel.Size EQU $ - .Dlabel - 1
W_TEXT 10,68,COLORP.HIGHGRAY,"Serial volume number: - "
.SerialN: EQU $ - STRLEN(" - ") - 1
W_BUTTON 92,80,72,14
W_TEXT 120,83,COLORP.HIGHGRAY,"Ok"
W_END
POP AF
JR NZ,.calc_size
LD B,1
CALL .get_info
PUSH DE ; ᢮¡®¤­ëå ª« áâ¥à®¢, ¬« ¤è ï ç áâì
PUSH HL ; ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢, ¬« ¤è ï ç áâì
PUSH BC ; à §¬¥à ᥪâ®à  ¢ ¡ ©â å
EXX
PUSH DE ; ᢮¡®¤­ëå ª« áâ¥à®¢, áâ àè ï ç áâì
PUSH HL ; ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢, áâ àè ï ç áâì
PUSH AF ; à §¬¥à ª« áâ¥à  ¢ ᥪâ®à å
.calc_size: POP AF ; à §¬¥à ª« áâ¥à  ¢ ᥪâ®à å
POP HL
POP DE
EXX
POP BC
POP HL
POP DE
; --> (HL':HL)*BC*A, (DE':DE)*BC*A = B':HL'HL, C':DE':DE
EXX
LD BC,0
EXX
SRL B
RR C
RRCA
JR C,.loop_2
.loop_1: SLA L
RL H
EXX
RL L
RL H
RL B
EXX
SLA E
RL D
EXX
RL E
RL D
RL C
EXX
RRCA
JP NC,.loop_1
.loop_2: SLA L
RL H
EXX
RL L
RL H
RL B
EXX
SLA E
RL D
EXX
RL E
RL D
RL C
EXX
SRL B
RR C
JP NC,.loop_2
; <-- B':HL'HL, C':DE':DE
EXX
LD A,C
LD (.freeSpace_h),A
LD (.freeSpace_m),DE
LD A,B
PUSH HL
EXX
LD (.freeSpace_l),DE
POP BC
; ¢ëç¨á«ï¥¬ ®¡é¨© à §¬¥à ¢ ¡ ©â å
; A:BC:HL - ç¨á«® ¤«ï ¯¥à¥¢®¤ 
LD DE,WorkBuffer
CALL ConvNumTxt40
SUB A
LD (DE),A
LD HL,WorkBuffer
LD DE,WorkBuffer+0x100
CALL CorrBigNum
LD A,' '
LD (DE),A
INC DE
LD HL,Bytes
LD BC,5;Bytes.Size
LDIR
SUB A
LD (DE),A
; ¢ëç¨á«ï¥¬ ᢮¡®¤­®¥ ¬¥áâ® ¢ ¡ ©â å
LD A,0
.freeSpace_h EQU $-1
LD BC,0
.freeSpace_m EQU $-2
LD HL,0
.freeSpace_l EQU $-2
LD DE,WorkBuffer+0x80
; A:BC:HL - ç¨á«® ¤«ï ¯¥à¥¢®¤ 
CALL ConvNumTxt40
SUB A
LD (DE),A
LD HL,WorkBuffer+0x80
LD DE,WorkBuffer+0x180
CALL CorrBigNum
LD A,' '
LD (DE),A
INC DE
LD HL,Bytes
LD BC,5;Bytes.Size
LDIR
SUB A
LD (DE),A
; ¢ë¢®¤ à §¬¥à®¢
LD HL,WorkBuffer+0x100
LD DE,0x0128
LD BC,0x0070
LD A,0x80
CALL PrnTxtLnIFF
LD HL,WorkBuffer+0x180
LD DE,0x0013A
LD BC,0x007C
LD A,0x80
CALL PrnTxtLnIFF
CALL SetMouse
.DiskInfoLoop: LD IX,DiskInfoTab
CALL TestCoords
SPDSS DSSF.SCANKEY
JR Z,.DiskInfoLoop
LD A,B
OR A
JR NZ,.DiskInfoLoop
LD A,E
CP 0x1B
JR Z,.Ext
CP 0x0D
JR Z,.Ext
RES 5,A
CP 'O'
JR NZ,.DiskInfoLoop
.Ext:
WINDOWCLOSE
RET
.get_info: LD A,(.CrDrive)
SUB 'A'
OR 0x80
LD HL,WorkBuffer
PUSH IY
SPDSS DSSF.DSKINFO
POP IY
RET NC
; ¥á«¨ ®è¨¡ª , â® ®¡­ã«ï¥¬ à §¬¥à ᢮¡®¤­®£® ¬¥áâ  ¨ ¯®«­ë© à §¬¥à
XOR A
LD H,A
LD L,A
LD D,A
LD E,A
EXX
LD H,A
LD L,A
LD D,A
LD E,A
LD B,A
LD C,A
RET
.NoLabel DEFB "NO NAME "
.NoLabelT DEFB "no label "
ConvHexTxt PUSH AF
RRCA
RRCA
RRCA
RRCA
CALL ConvHexT1
POP AF
ConvHexT1 AND 0x0F
ADD A,0x90
DAA
ADC A,0x40
DAA
LD (DE),A
INC DE
RET
CorrBigNum PUSH HL
SUB A
LD C,A
.L1 INC C
INC HL
CP (HL)
JR NZ,.L1
POP HL
LD A,C
.L2 SUB 0x03
JR Z,.L5
JR NC,.L2
ADD A,0x03
LD B,A
.L3 LD A,(HL)
LD (DE),A
INC HL
INC DE
DJNZ .L3
.L4 LD A,(HL)
OR A
RET Z
LD A,' '
LD (DE),A
INC DE
.L5 LDI
LDI
LDI
JR .L4
;[]==========================================================[]
VersionR
SETPORT WINSP.Y_PORT,0xC0
LD HL,SetInvert
PUSH HL
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 192,64,256,152
W_FILL 4,2,248,10,COLORI.BLACK
W_TEXT 110,3,COLORI.WHITE,"Version"
W_TEXT 93,20,COLORP.HIGHGRAY,"Flex Navigator"
W_TEXT 76,38,COLORP.HIGHGRAY,"Component versions:"
W_TEXT 70,48,COLORP.HIGHGRAY,"Manager:"
W_TEXT 128,48,COLORP.HIGHGRAY,"\{FLEX_VERS.NAVIGATOR}"
W_TEXT 65,58,COLORP.HIGHGRAY,"File Editor:"
W_TEXT 128,58,COLORP.HIGHGRAY,"\{FLEX_VERS.EDITOR}"
W_TEXT 61,68,COLORP.HIGHGRAY,"File Viewer:"
W_TEXT 128,68,COLORP.HIGHGRAY,"\{FLEX_VERS.VIEWER}"
W_TEXT 50,86,COLORP.HIGHGRAY,"2000, Enin Anton"
W_TEXT 50,96,COLORP.HIGHGRAY,"2021, Mikhaltchenkov Dmitry"
W_TEXT 50,106,COLORP.HIGHGRAY,"2022, Belyanskiy Anatoliy"
W_TEXT 50,116,COLORP.HIGHGRAY,"(C) Sprinter Team. 13.12.2024"
W_BUTTON 92,133,72,14
W_TEXT 120,136,COLORP.HIGHGRAY,"OK"
W_END
CALL ResFire
VersionLoop LD IX,VersionTab
CALL TestCoords
SPDSS DSSF.SCANKEY
JR Z,VersionLoop
LD A,B
OR A
JR NZ,VersionLoop
LD A,E
CP 0x1B
JR Z,VersionExt
CP 0x0D
JR NZ,VersionLoop
VersionExt
WINDOWCLOSE
RET

368
rez2_fnsearch.a80 Normal file
View File

@ -0,0 +1,368 @@
; LAST UPDATE: 27.03.2025 savelij
;[]==========================================================[]
QSearchR LD A,(IY+PANEL.EFL)
OR (IY+PANEL.EFH)
RET Z
SETPORT WINSP.Y_PORT,0xC0
LD HL,SearchN
LD B,0x0C
SUB A
.L1 LD (HL),A
INC HL
DJNZ .L1
LD (SrchLen),A
LD L,(IY+PANEL.XL)
LD H,(IY+PANEL.XH)
LD DE,0x000A
ADD HL,DE
LD (.SrchX1),HL
LD DE,0x0034
ADD HL,DE
LD (SrchX2),HL
LD HL,0x00E0
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
JR Z,.L2
LD HL,0x00D0
.L2 LD (.SrchY1),HL
LD DE,0x0007
ADD HL,DE
LD (SrchY2),HL
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 0,0,166,20
.SrchX1 EQU $ - 8
.SrchY1 EQU $ -6
W_TEXT 8,7,COLORP.HIGHGRAY,"Search:"
W_BORDER 48,4,108,12
W_FILL 50,5,104,10,COLORI.WHITE
W_END
LD IX,SearchStr
LD (InpLnData),IX
SUB A
LD (IX+0x02),A
LD (IX+0x03),A
LD (IX+0x04),A
CALL InsInpLnCol
CALL PrintInpLn+3
.SearchInpLp HALT
CALL ChCursor
CALL TestCMOS
SPMOUSE MOUSEF.READ_STATE
OR A
JP NZ,SearchExit
SPDSS DSSF.SCANKEY
JR Z,.SearchInpLp
RES 7,D
BIT KEYBSTAT.B_CTRL,B ;Ctrl
JR NZ,.SearchInpLp
LD IX,SearchTab
BIT KEYBSTAT.B_ALT,B ;Alt
JR Z,.Search1
LD A,D
OR A
JR Z,.SearchInpLp
CP SC.LCTRL
JR NC,.SearchInpLp
LD HL,AltTable
DEC A
ADD A,L
LD L,A
JR NC,.L3
INC H
.L3 LD A,(HL)
BIT 0,C
CALL NZ,CorrSmallChar
LD E,A
.Search1 LD A,(IX+0x00)
INC IX
CP 0xFF
JR Z,.SearchInpLp1
LD L,A
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,.Search1
LD IX,(InpLnData)
LD HL,.SearchInpLp
PUSH HL
PUSH BC
RET
.SearchInpLp1 LD IX,(InpLnData)
LD HL,.SearchInpLp
PUSH HL
LD A,E
JR InsSymbolSrch
SearchTab DW SC.ESC << 8 | 0x1B, SrchExit
DW SC.ENTER << 8 | 0x0D, SrchExit
DW SC.BKSP << 8 | 0x08, QSdelet
DB 0xFF
InsSymbolSrch CP 0x20
RET C
EX AF,AF'
LD A,(IX+0x04) ;InpytSymb
SUB (IX+0x00) ;Max len
RET NC
LD A,(IX+0x04)
SUB (IX+0x02)
JR Z,NotInsSrch
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
NotInsSrch 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)
CALL SearchFile
JP C,ILdelet
FoundSFile PUSH HL
CALL PrintInpLn
POP HL
EX DE,HL
LD L,(IY+PANEL.CFL)
LD H,(IY+PANEL.CFH)
LD C,(IY+PANEL.FFL)
LD B,(IY+PANEL.FFH)
ADD HL,BC
SBC HL,DE
EX DE,HL
RET Z
PUSH HL
CALL ResInvert
POP HL
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 C,(IY+PANEL.FFL)
LD B,(IY+PANEL.FFH)
LD (IY+PANEL.FFL),E
LD (IY+PANEL.FFH),D
EX DE,HL
OR A
SBC HL,BC
CALL NZ,PrintDIR
CALL SetInvert
CALL PrnFileInfo
PUSH IY
POP IX
LD DE,PANEL.BARXL
ADD IX,DE
LD A,(IY+PANEL.VIEWFLAG)
AND VIEWFLAG.MASK
PUSH AF
CALL Z,PrnHScrBar
POP AF
JP NZ,PrnVScrBar
RET
QSdelet 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,QSDel1
LD C,A
LD B,0x00
LDIR
SUB A
QSDel1 LD (DE),A
DEC (IX+0x02)
DEC (IX+0x04)
CALL SearchFile
JP NC,FoundSFile
JP PrintInpLn
SearchStr DEFB 0x0C,0x00,0x00,0x00
SrchLen DEFB 0x03
SrchX2 DEFW 0x0000
SrchY2 DEFW 0x0000
DEFW 0x0064
DEFB 0xF0
SearchN DUPL 13,0
AltTable DEFB 0x1B,"1234567890-=",0x08,0x09,"qwertyuiop[]"
DEFB 0x00,"asdfghjkl;'",0x0D,0x00,"zxcvbnm,./",0x00,0x5C
SearchFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
JP NZ,SearchFileT ;Tree
PUSH IX
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
LD IX,0x0000
LD HL,0xC001
LD BC,0x0018
.SearchFlp LD DE,SearchN
LD A,(DE)
CALL CorrBigChar
CP (HL)
JR Z,.SrchF1
CALL CorrSmallChar
CP (HL)
JR NZ,.SearchFnxt
.SrchF1 PUSH HL
PUSH DE
LD DE,WorkBuffer
PUSH DE
CALL MakeDOSname
POP HL
POP DE
.SrchF2 INC DE
LD A,(DE)
OR A
JR Z,.SearchFexit
INC HL
LD A,(HL)
OR A
JR Z,.SearchFnx0
LD A,(DE)
CALL CorrBigChar
CP (HL)
JR Z,.SrchF2
CALL CorrSmallChar
CP (HL)
JR Z,.SrchF2
.SearchFnx0 POP HL
LD BC,0x0018
.SearchFnxt ADD HL,BC
INC IX
LD A,(HL)
OR A
JR NZ,.SearchFlp
POP AF
SETPORT WINSP.CPU3,,0
POP IX
SCF
RET
.SearchFexit INC SP
INC SP
POP AF
SETPORT WINSP.CPU3,,0
PUSH IX
POP HL
POP IX
OR A
RET
SearchFileT PUSH IX
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
LD IX,0x0000
LD HL,0xC002
LD BC,0x000D
.SearchTlp LD DE,SearchN
LD A,(DE)
CALL CorrBigChar
CP (HL)
JR Z,.SrchT1
CALL CorrSmallChar
CP (HL)
JR NZ,.SearchTnxt
.SrchT1 PUSH HL
.SrchT2 INC DE
LD A,(DE)
OR A
JR Z,.SearchTexit
INC HL
LD A,(HL)
OR A
JR Z,.SearchTnx0
LD A,(DE)
CALL CorrBigChar
CP (HL)
JR Z,.SrchT2
CALL CorrSmallChar
CP (HL)
JR Z,.SrchT2
.SearchTnx0 POP HL
.SearchTnxt ADD HL,BC
INC IX
LD A,(HL)
INC HL
INC HL
INC HL
INC A
JR NZ,.SearchTlp
POP AF
SETPORT WINSP.CPU3,,0
POP IX
SCF
RET
.SearchTexit INC SP
INC SP
POP AF
SETPORT WINSP.CPU3,,0
PUSH IX
POP HL
POP IX
OR A
RET
SrchExit POP HL
SearchExit
WINDOWCLOSE
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
IF TREE_REZID
CALL NZ,TestTreeR.TestTreeBeg
ELSE
CALL NZ,TestTreeR.TestTreeBeg
ENDIF
RET

151
rez2_fntab1.a80 Normal file
View File

@ -0,0 +1,151 @@
; LAST UPDATE: 16.04.2025 savelij
;[]==========================================================[]
; ”®à¬ â â ¡«¨æë
; +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 €¤à¥á ®¡à ¡®â稪  ¯à¨ ­ ¦ â®¬ ®£­¥ (¯à ¢)
;[]==========================================================[]
SetupTab: DW 106,246, 85,133,%0000000000000000,0,NewElement,0
DW 114,130,146,155,%0000000000000000,0,ChActivatePan,0
DW 114,130,164,173,%0000000000000000,0,ChSavePan,0
DW 274,290, 87, 95,%0000000000000011,0,DecRED,0
DW 418,434, 87, 95,%0000000000000011,0,IncRED,0
DW 440,464, 87, 95,%0000000000000000,0,InputRED,0
DW 274,290,103,111,%0000000000000011,0,DecGREEN,0
DW 418,434,103,111,%0000000000000011,0,IncGREEN,0
DW 440,464,103,111,%0000000000000000,0,InputGREEN,0
DW 274,290,119,127,%0000000000000011,0,DecBLUE,0
DW 418,434,119,127,%0000000000000011,0,IncBLUE,0
DW 440,464,119,127,%0000000000000000,0,InputBLUE,0
DW 456,528,162,176,%0000000000000001,0,SaveSetup,0
DW 368,440,184,198,%0000000000100001,0,SetupCancel,0
DW 456,528,184,198,%0000000000100001,0,SetupOkey,0
DW 0, 96, 0,256,%0000000000100000,0,SetupCancel,0
DW 544,640, 0,256,%0000000000100000,0,SetupCancel,0
DW 0,640, 0, 64,%0000000000100000,0,SetupCancel,0
DW 0,640,184,256,%0000000000100000,0,SetupCancel,0
DW 0x8000
;[]===============================================================[]
FileInfoTab: DW 284,356,160,174,%0000000000100001,0,FileInfoExt,0
DW 0,240, 0,256,%0000000000100000,0,FileInfoExt,0
DW 400,640, 0,256,%0000000000100000,0,FileInfoExt,0
DW 0,640, 0, 80,%0000000000100000,0,FileInfoExt,0
DW 0,640,178,256,%0000000000100000,0,FileInfoExt,0
DW 0x8000
;[]===============================================================[]
PrintFTab: DW 284,356,128,142,%0000000000000001,0,StopPrint,0
DW 0x8000
;[]===============================================================[]
SysInfoTab: DW 284,356,160,174,%0000000000100001,0,SysInfoExt,0
DW 0,224, 0,256,%0000000000100000,0,SysInfoExt,0
DW 416,640, 0,256,%0000000000100000,0,SysInfoExt,0
DW 0,640, 0, 64,%0000000000100000,0,SysInfoExt,0
DW 0,640,178,256,%0000000000100000,0,SysInfoExt,0
DW 0x8000
;[]===============================================================[]
DiskInfoTab: DW 284,356,160,174,%0000000000100001,0,DiskInfoR.Ext,0
DW 0,192, 0,256,%0000000000100000,0,DiskInfoR.Ext,0
DW 448,640, 0,256,%0000000000100000,0,DiskInfoR.Ext,0
DW 0,640, 0, 80,%0000000000100000,0,DiskInfoR.Ext,0
DW 0,640,178,256,%0000000000100000,0,DiskInfoR.Ext,0
DW 0x8000
;[]===============================================================[]
VersionTab: DW 284,356,157,171,%0000000000100001,0,VersionExt,0
DW 0,192, 0,256,%0000000000100000,0,VersionExt,0
DW 448,640, 0,256,%0000000000100000,0,VersionExt,0
DW 0,640, 0, 64,%0000000000100000,0,VersionExt,0
DW 0,640,176,256,%0000000000100000,0,VersionExt,0
DW 0x8000
;[]===============================================================[]
PathTab: DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0
DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0
DW 0, 96, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 544,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0x8000
;[]===============================================================[]
OverWrtTab: DW 196,252,126,140,%0000000100100001,0,OverWrtFile,0
DW 260,316,126,140,%0000000100100001,0,OverWrtAll,0
DW 324,380,126,140,%0000000100100001,0,OverSkip,0
DW 388,444,126,140,%0000000100100001,0,OverExit,0
DW 0,180, 0,256,%0000000100100000,0,OverExit,0
DW 460,640, 0,256,%0000000100100000,0,OverExit,0
DW 0,640, 0, 88,%0000000100100000,0,OverExit,0
DW 0,640,144,256,%0000000100100000,0,OverExit,0
DW 0x8001
;[]===============================================================[]
ReNameTab: DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0
DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0
DW 0,208, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 432,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0x8000
;[]===============================================================[]
MakeDIRTab: DW 240,312,123,137,%0000000000000001,0,InputLine.InpLnExtN,0
DW 328,400,123,137,%0000000000000001,0,InputLine.InpLnExtC,0
DW 0,200, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 440,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640, 0, 81,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0,640,143,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0x8000
;[]===============================================================[]
DeleteTab: DW 196,252,118,132,%0000000100100001,0,DelDelete,0
DW 260,316,118,132,%0000000100100001,0,DelAll,0
DW 324,380,118,132,%0000000100100001,0,DelSkip,0
DW 388,444,118,132,%0000000100100001,0,DelExit,0
DW 0,180, 0,256,%0000000100100000,0,DelExit,0
DW 460,640, 0,256,%0000000100100000,0,DelExit,0
DW 0,640, 0, 80,%0000000100100000,0,DelExit,0
DW 0,640,136,256,%0000000100100000,0,DelExit,0
DW 0x8000
;[]===============================================================[]
QuitTab:
DW 240,312,120,134,%0000000000100001,0,QuitConfirmWin.OK,0
DW 328,400,120,134,%0000000000100001,0,QuitConfirmWin.Abort,0
DW 0,208, 0,256,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 432,640, 0,256,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 0,640, 0, 88,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 0,640,138,256,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 0x8000
EmptyTab: DW 0,640, 0,256,%0000000000000000,0,InputLine.InpLnExtC,0
DW 0x8000

870
rez3_fnmark.a80 Normal file
View File

@ -0,0 +1,870 @@
; LAST UPDATE: 12.05.2025 savelij
;[]==========================================================[]
MarkFileR LD A,(IY+PANEL.EFL)
OR (IY+PANEL.EFH)
RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ
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
LD L,(IY+PANEL.FFL)
LD H,(IY+PANEL.FFH)
LD E,(IY+PANEL.CFL)
LD D,(IY+PANEL.CFH)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *16
ADD HL,DE ; *18
SET 6,H
SET 7,H ; | 0xC000
LD E,(HL) ; FileHDR.Flag
POP AF
SETPORT WINSP.CPU3,,0
BIT FileHDR.B_MARK,E
PUSH AF
CALL Z,SelectFile
POP AF
CALL NZ,UnSelectFile
CALL CursDown
CALL PrnFileInfo
LD B,0x07
.L2 PUSH BC
SPMOUSE MOUSEF.READ_STATE
POP BC
BIT 1,A
RET Z
HALT
DJNZ .L2
RET
;[]==========================================================[]
SelectFile: LD IXL,0x01
JR UnSelectFile.L1
UnSelectFile: LD IXL,0x00
.L1
GETPORT WINSP.CPU3
PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L2
LD A,(RAMPAGES.RIGHTPANEL)
.L2
SETPORT WINSP.CPU3,,0
SETPORT WINSP.Y_PORT,0xC0
LD L,(IY+PANEL.FFL)
LD H,(IY+PANEL.FFH)
LD E,(IY+PANEL.CFL)
LD D,(IY+PANEL.CFH)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *16
ADD HL,DE ; *18 - FileHDR.SIZE
SET 6,H
SET 7,H ; | 0xC000
PUSH HL
LD DE,FileHDR.Attr
ADD HL,DE
LD C,(HL) ; FileHDR.Attr (ä« £¨ ®¯¨á â¥«ï FAT ä ©« )
POP HL
BIT DIR.B_Dir,C ; íâ® ¤¨à ?
IF MARK_DIR
CALL NZ,COUNTING_DIR
ELSE
JR NZ,.MrFile1
ENDIF
; íâ® ä ©«
LD B,(HL) ; áâ à®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ä ©« 
LD A,IXL
LD (HL),A ; ­®¢®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ä ©« 
LD DE,WorkBuffer
PUSH BC
LD BC,FileHDR.SIZE
LDIR
IF MARK_DIR
LD HL,COUNTING_DIR.FILES_SIZE
LD DE,WorkBuffer + FileHDR.SizeBytes
LD BC,DWORD
LDIR
ENDIF
POP BC
.MrFile1 POP AF
SETPORT WINSP.CPU3,,0
IF MARK_DIR = 0
BIT DIR.B_Dir,C
RET NZ ; ¢ë室 ¥á«¨ ¤¨à 
ENDIF
LD A,B
CP IXL
RET Z ; ¢ë室 ¥á«¨ áâ à®¥ ¨ ­®¢®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ᮢ¯ «¨
BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
JR NZ,.MarkFull
; ¯à¨ ªà âª®¬ ¯®ª §¥ ä ©«®¢
LD L,(IY+PANEL.CFL)
LD H,(IY+PANEL.CFH)
LD E,L
LD D,H
ADD HL,HL
ADD HL,DE
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD DE,PositTABLeft
JR Z,.L3
LD DE,PositTABRight
.L3 ADD HL,DE
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD C,(HL)
LD B,0x00
EX DE,HL
LD A,IXL
OR A
PUSH AF
LD DE,(COLORP.INVERTPAPER + COLORI.INVERTINK) << 8 | (COLORP.INVERTPAPER + COLORI.INVSELFILES)
JR NZ,.L4
LD DE,(COLORP.INVERTPAPER + COLORI.INVSELFILES) << 8 | (COLORP.INVERTPAPER + COLORI.INVERTINK)
.L4 LD IX,8 << 8 + 48
DEC HL
DEC HL
CALL InvertRectan
POP AF
JR NZ,.MarkExit1
JR .MarkExit2
; ¯à¨ ¯®«­®¬ ¯®ª §¥ ä ©«®¢
.MarkFull LD L,(IY+PANEL.CFL)
LD H,(IY+PANEL.CFH)
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD BC,0x003F
ADD HL,BC
LD C,L
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD HL,6
JR Z,.L5
LD HL,326
.L5 LD A,IXL
OR A
PUSH AF
LD DE,(COLORP.INVERTPAPER + COLORI.INVERTINK) << 8 | (COLORP.INVERTPAPER + COLORI.INVSELFILES)
JR NZ,.L6
LD DE,(COLORP.INVERTPAPER + COLORI.INVSELFILES) << 8 | (COLORP.INVERTPAPER + COLORI.INVERTINK)
.L6 LD IX,8 << 8 + 146
CALL InvertRectan
POP AF
JR Z,.MarkExit2
; ãáâ ­®¢ª  ¢ë¡®à ä ©« 
.MarkExit1 LD IX,WorkBuffer
LD L,(IY + PANEL.MFL)
LD H,(IY + PANEL.MFH)
INC HL
LD (IY + PANEL.MFL),L
LD (IY + PANEL.MFH),H ; ®¡­®¢«¥­¨¥ ª®«¨ç¥á⢠ ¯®¬¥ç¥­­ëå ä ©«®¢
LD L,(IX + FileHDR.SizeBytes)
LD H,(IX + FileHDR.SizeBytes + 1)
LD E,(IY + PANEL.MBL1)
LD D,(IY + PANEL.MBH1)
XOR A ; [ ] fat32
ADD HL,DE
LD (IY + PANEL.MBL1),L
LD (IY + PANEL.MBH1),H ; ®¡­®¢«¥­¨¥ à §¬¥à  ¯®¬¥ç¥­­ëå ä ©«®¢ ¡¨âë 15-0
LD L,(IX + FileHDR.SizeBytes + 2)
LD H,(IX + FileHDR.SizeBytes + 3)
; [ ] fat32
LD E,(IY + PANEL.MBL2)
LD D,(IY + PANEL.MBH2)
ADC HL,DE
; [ ] fat32
ADC A,(IY + PANEL.MBL3)
LD (IY + PANEL.MBL3),A ; ®¡­®¢«¥­¨¥ à §¬¥à  ¯®¬¥ç¥­­ëå ä ©«®¢ ¡¨âë 32-39
LD (IY + PANEL.MBL2),L
LD (IY + PANEL.MBH2),H ; ®¡­®¢«¥­¨¥ à §¬¥à  ¯®¬¥ç¥­­ëå ä ©«®¢ ¡¨âë 31-15
RET
; á­ï⨥ ¢ë¡®à  ä ©« 
.MarkExit2 LD IX,WorkBuffer
LD L,(IY + PANEL.MFL)
LD H,(IY + PANEL.MFH)
DEC HL
LD (IY + PANEL.MFL),L
LD (IY + PANEL.MFH),H
LD L,(IY + PANEL.MBL1)
LD H,(IY + PANEL.MBH1)
LD E,(IX + FileHDR.SizeBytes)
LD D,(IX + FileHDR.SizeBytes + 1)
XOR A
SBC HL,DE
LD (IY + PANEL.MBL1),L
LD (IY + PANEL.MBH1),H
LD L,(IY + PANEL.MBL2)
LD H,(IY + PANEL.MBH2)
LD E,(IX + FileHDR.SizeBytes + 2)
LD D,(IX + FileHDR.SizeBytes + 3)
SBC HL,DE
; [ ] fat32
ADC A,(IY + PANEL.MBL3)
LD (IY + PANEL.MBL3),A
LD (IY + PANEL.MBL2),L
LD (IY + PANEL.MBH2),H
RET
;[]==========================================================[]
UnMarkGroupR: CALL ResInvert
UnMarkGroupRN: LD HL,SetInvert
PUSH HL
SUB A
JR SelectGroup
MarkGroupR: CALL ResInvert
MarkGroupRN: LD HL,SetInvert
PUSH HL
LD A,0x01
SelectGroup: LD (SelMode),A
LD A,(IY+PANEL.EFL)
OR (IY+PANEL.EFH)
RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 208,81,224,62
W_FILL 4,2,216,10,COLORI.BLACK
W_TEXT 82,3,COLORI.WHITE,"Select mask"
W_BUTTON 32,42,72,14
W_TEXT 60,45,COLORP.HIGHGRAY,"Ok"
W_BUTTON 120,42,72,14
W_TEXT 140,45,COLORP.HIGHGRAY,"Cancel"
W_TEXT 10,25,COLORP.HIGHGRAY,"Mark mask:"
W_BORDER 70,22,134,12
W_FILL 72,23,130,10,COLORI.WHITE
W_END
LD IX,SMaskStr
LD HL,SMaskTab
CALL InputLine
WINDOWCLOSE
RET C
LD A,(MaskLen)
OR A
RET Z
LD B,A
LD HL,CrSMask
CorMask LD A,(HL)
CALL CorrBigChar
LD (HL),A
INC HL
DJNZ CorMask
LD HL,CrSMask
LD DE,SelMask
CALL MakeMask
JR C,MarkGNext
LD HL,NORMmask
LD DE,CrSMask
LD BC,MASK_SIZE
LDIR
LD HL,CrSMask
LD DE,SelMask
JP MakeMask
MarkGNext
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
;!FIXIT ¯à®¢¥à¨âì ¤«ï íâ® ®­® ¨«¨ ­¥â SAFE_PORTY
SETPORT WINSP.Y_PORT,0xC0
LD IX,CPU3
LD HL,0xC000
LD DE,SelMask
EX AF,AF' ; [ ] fat32
EXX
LD L,(IY+PANEL.MBL1)
LD H,(IY+PANEL.MBH1)
LD E,(IY+PANEL.MBL2)
LD D,(IY+PANEL.MBH2)
LD A,(IY+PANEL.MBL3) ; [ ] FAT32
LD C,(IY+PANEL.MFL)
LD B,(IY+PANEL.MFH)
EXX
EX AF,AF' ; [ ] fat32
PUSH IY
LD IYL,0x00
SelMode EQU $-1
LD IYH,0x00
Select1 PUSH DE
BIT DIR.B_Dir,(IX + FileHDR.Attr)
JR NZ,Select8
LD A,IYL
CP (HL)
JR Z,Select8
PUSH HL
INC HL
LD B,8
Select2 LD A,(DE)
CP '?'
JR Z,Select3
CP (HL)
JR NZ,Select6
Select3 INC HL
INC DE
DJNZ Select2
INC HL
LD B,03
Select4 LD A,(DE)
CP '?'
JR Z,Select5
CP (HL)
JR NZ,Select6
Select5 INC HL
INC DE
DJNZ Select4
Select6 POP HL
JR NZ,Select8
LD IYH,0x01
LD A,IYL
LD (HL),A
OR A
CALL Z,SUB_SIZE
CALL NZ,ADD_SIZE
Select8: LD DE,FileHDR.SIZE
ADD HL,DE
ADD IX,DE
POP DE
LD A,(IX + FileHDR.Name)
OR A
JR NZ,Select1
LD A,IYH
EX AF,AF'
POP IY
EXX
LD (IY+PANEL.MBL1),L
LD (IY+PANEL.MBH1),H
LD (IY+PANEL.MBL2),E
LD (IY+PANEL.MBH2),D
LD (IY+PANEL.MBL3),A ; [ ] FAT32
LD (IY+PANEL.MFL),C
LD (IY+PANEL.MFH),B
EXX
POP AF
SETPORT WINSP.CPU3,,0
EX AF,AF'
OR A
RET Z
CALL PrintDIR
JP PrnFileInfo
SMaskStr: DEFB 0x0C,0x00,0x00,0x00
MaskLen: DEFB 0x03
DEFW 282,106
DEFW 104
DEFB 0xF0
CrSMask: DEFB "*.*"
DB 10 DUP 0
SelMask: DEFB "???????????"
MakeMask LD BC,0x0902
SMaskLp LD A,(HL)
CP '!'
RET C
CP '\"'
RET Z
CP '*'
JR Z,SMask1
CP '+'
RET Z
CP ','
RET Z
CP '.'
JR Z,SMask2
CP '/'
RET Z
CP ':'
RET Z
CP ';'
RET Z
CP '<'
RET Z
CP '='
RET Z
CP '>'
RET Z
CP '['
RET Z
CP '\\'
RET Z
CP ']'
RET Z
CP '|'
RET Z
CALL CorrBigChar
LD (DE),A
INC HL
INC DE
DJNZ SMaskLp
AND A
RET
SMask1 LD A,'?'
INC HL
DJNZ SMask11
AND A
RET
SMask11 LD (DE),A
INC DE
DJNZ SMask11
INC B
JR SMaskLp
SMask2 LD A,' '
INC HL
DJNZ SMask21
LD B,0x04
DEC C
JR NZ,SMaskLp
AND A
RET
SMask21 LD (DE),A
INC DE
DJNZ SMask21
LD B,0x04
DEC C
JR NZ,SMaskLp
AND A
RET
;[]==========================================================[]
SelectAllR: CALL ResInvert
SelectAllRN: LD HL,SetInvert
PUSH HL
LD A,(IY+PANEL.EFL)
OR (IY+PANEL.EFH)
RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ
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
SETPORT WINSP.Y_PORT,0xC0
LD IX,CPU3
LD BC,FileHDR.SIZE
EX AF,AF' ; [ ] fat32
SUB A
LD L,A
LD H,L
LD E,L
LD D,H
EXX
LD L,A
LD H,L
EXX
EX AF,AF' ; [ ] fat32
.loop: BIT DIR.B_Dir,(IX + FileHDR.Attr) ;!HARDCODE DIRECTORY
JR NZ,.SelAll1
SET FileHDR.B_MARK,(IX + FileHDR.Flag)
LD C,(IX + FileHDR.SizeBytes)
LD B,(IX + FileHDR.SizeBytes + 1)
EX AF,AF' ; [ ] fat32
ADD HL,BC
LD C,(IX + FileHDR.SizeBytes + 2)
LD B,(IX + FileHDR.SizeBytes + 3)
EX DE,HL
ADC HL,BC
EX DE,HL
ADC A,0
EX AF,AF' ; [ ] fat32
EXX
INC HL
EXX
LD BC,FileHDR.SIZE
.SelAll1: ADD IX,BC
LD A,(IX + FileHDR.Name)
OR A
JR NZ,.loop
POP AF
SETPORT WINSP.CPU3,,0
EXX
LD E,(IY+PANEL.MFL)
LD D,(IY+PANEL.MFH)
OR A
SBC HL,DE
RET Z
ADD HL,DE
LD (IY+PANEL.MFL),L
LD (IY+PANEL.MFH),H
EXX
LD (IY+PANEL.MBL1),L
LD (IY+PANEL.MBH1),H
LD (IY+PANEL.MBL2),E
LD (IY+PANEL.MBH2),D
; [ ] FAT32
EX AF,AF'
LD (IY+PANEL.MBL3),A
CALL PrintDIR
JP PrnFileInfo
;[]==========================================================[]
UnSelectAllR: CALL ResInvert
UnSelectAllRN: LD HL,SetInvert
PUSH HL
LD A,(IY+PANEL.EFL)
OR (IY+PANEL.EFH)
RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ
LD A,(IY+PANEL.MFL)
OR (IY+PANEL.MFH)
RET Z
PUSH IY
POP HL
LD BC,PANEL.MFL
ADD HL,BC
LD B,PANEL.FILEMASK - PANEL.MFL
.L2 LD (HL),0
INC HL
DJNZ .L2
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
SETPORT WINSP.Y_PORT,0xC0
LD HL,CPU3
LD BC,FileHDR.SIZE + 1
UnSelA1: RES 0,(HL)
ADD HL,BC
LD A,(HL)
DEC HL
OR A
JR NZ,UnSelA1
POP AF
SETPORT WINSP.CPU3,,0
CALL PrintDIR
JP PrnFileInfo
;[]==========================================================[]
InvertSelectR: CALL ResInvert
InvertSelectRN: LD HL,SetInvert
PUSH HL
LD A,(IY+PANEL.EFL)
OR (IY+PANEL.EFH)
RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
RET NZ
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
SETPORT WINSP.Y_PORT,0xC0
LD IX,0xC000
LD DE,FileHDR.SIZE
LD B,0x00
EX AF,AF' ; [ ] fat32
EXX
LD L,(IY + PANEL.MBL1)
LD H,(IY + PANEL.MBH1)
LD E,(IY + PANEL.MBL2)
LD D,(IY + PANEL.MBH2)
LD A,(IY + PANEL.MBL3) ; [ ] FAT32
LD C,(IY + PANEL.MFL)
LD B,(IY + PANEL.MFH)
EXX
EX AF,AF' ; [ ] fat32
.loop: BIT DIR.B_Dir,(IX + FileHDR.Attr) ;!HARDCODE Dir
JR NZ,.InvSel3
LD B,FileHDR.M_MARK
LD A,(IX + FileHDR.Flag)
XOR B
LD (IX + FileHDR.Flag),A
CALL Z,SUB_SIZE
CALL NZ,ADD_SIZE
.InvSel3: ADD IX,DE
LD A,(IX + FileHDR.Name)
OR A
JR NZ,.loop
POP AF
SETPORT WINSP.CPU3,,0
EX AF,AF' ; [ ] fat32
EXX
LD (IY + PANEL.MBL1),L
LD (IY + PANEL.MBH1),H
LD (IY + PANEL.MBL2),E
LD (IY + PANEL.MBH2),D
LD (IY + PANEL.MBL3),A ; [ ] FAT32
LD (IY + PANEL.MFL),C
LD (IY + PANEL.MFH),B
EXX
LD A,B
OR A
RET Z
CALL PrintDIR
JP PrnFileInfo
ADD_SIZE: EX AF,AF' ; [ ] fat32
EXX
PUSH BC
LD C,(IX + FileHDR.SizeBytes)
LD B,(IX + FileHDR.SizeBytes + 1)
ADD HL,BC
LD C,(IX + FileHDR.SizeBytes + 2)
LD B,(IX + FileHDR.SizeBytes + 3)
EX DE,HL
ADC HL,BC
EX DE,HL
ADC A,0 ; [ ] fat32
POP BC
INC BC
EXX
EX AF,AF' ; [ ] fat32
RET
SUB_SIZE: EX AF,AF' ; [ ] fat32
EXX
PUSH BC
LD C,(IX + FileHDR.SizeBytes)
LD B,(IX + FileHDR.SizeBytes + 1)
OR A
SBC HL,BC
LD C,(IX + FileHDR.SizeBytes + 2)
LD B,(IX + FileHDR.SizeBytes + 3)
EX DE,HL
SBC HL,BC
EX DE,HL
SBC A,0 ; [ ] fat32
POP BC
DEC BC
EXX
EX AF,AF'
RET
IF MARK_DIR
; ¯®¤áç¥â ¢ ¡ ©â å à §¬¥à  ®â¬¥ç¥­­®© ¤¨à¥ªâ®à¨¨
COUNTING_DIR PUSH IX
PUSH IY
PUSH HL
PUSH BC
GETPORT WINSP.CPU3
PUSH AF
PUSH HL
XOR A
LD H,A
LD L,A
LD IXH,A ; ®¡­ã«¥­¨¥ ã஢­ï ¢å®¦¤¥­¨ï ¢ ¤¨àë
LD (.FILES_SIZE),HL
LD (.FILES_SIZE + 2),HL ; ®¡­ã«¥­¨¥ à §¬¥à  ¤¨àë
LD HL,CPU3
LD (.CURR_DIRNAME),HL
; á®åà ­¥­¨¥ ⥪ã饣® ¯ã⨠¤«ï ¢®§¢à â 
SPDSS DSSF.CURDISK
LD HL,WorkBuffer + 0x300 ; á®åà ­¥­ë© ¯ãâì ¤«ï ¢®§¢à â 
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
SPDSS DSSF.CURDIR
POP DE
JR C,.END_COUNT
; ¢å®¤ ¢ ¤¨à¥ªâ®à¨î
LD HL,FileHDR.Name
ADD HL,DE
LD DE,.DIR_NAME
PUSH DE
LD BC,FileHDR.Name_Size
LDIR ; § ¡à «¨ ¨¬ï ¤¨àë ¤«ï ¨§¬¥à¥­¨ï
LD A,(RAMPAGES.FLX)
SETPORT WINSP.CPU3,,0
CALL .ADD_2DOT ; ¢®§¢à â ¢ ¯à¥¤ë¤ãéãî ¤¨àã
POP HL
LD DE,(.CURR_DIRNAME)
LD BC,FileHDR.Name_Size
LDIR ; ¨¬ï ¤¨àë ¤«ï ¢å®¤ 
LD (.CURR_DIRNAME),DE
XOR A
LD (DE),A
CALL .SET_PATH ; ãáâ ­®¢ª  ⥪ã饣® ¯ãâ¨
INC IXH
.CONTINUE CALL .ADD_2DOT
CALL .COUNT_FILES
LD A,IXL
AND A ; ¤¨àë ¥áâì
JR Z,.PREV_DIR ; ¤¨àë ­¥ ­ ©¤¥­ë
CALL .SET_PATH ; ¢å®¤ ¢ ¤¨àã ¨§ ᯨ᪠
INC IXH
JR .CONTINUE
; ¢ë室 ¢ ¯à¥¤ë¤ãéãî ¤¨àã
.PREV_DIR CALL .OUT_DIR
LD A,IXH
AND A
JR Z,.END_COUNT
CALL .GET_NAME
CALL .GET_NAME
LD HL,(.CURR_DIRNAME)
LD DE,-FileHDR.Name_Size
ADD HL,DE
LD A,(HL)
CP '.'
JR Z,.PREV_DIR
CALL .SET_PATH
INC IXH
JR .CONTINUE
; ¢®§¢à â ⥪ã饣® ¯ãâ¨
.END_COUNT POP AF
SETPORT WINSP.CPU3,,0
LD HL,WorkBuffer + 0x300 ; á®åà ­¥­ë© ¯ãâì ¤«ï ¢®§¢à â 
SPDSS DSSF.CHDIR
POP BC
POP HL
POP IY
POP IX
RET
.GET_NAME LD HL,(.CURR_DIRNAME)
LD (HL),0
LD DE,-FileHDR.Name_Size
ADD HL,DE
LD (.CURR_DIRNAME),HL
RET
.OUT_DIR DEC IXH
LD HL,.RET_DIR
JR .SP1
; ¯¥à¥å®¤ ¢ ¤¨àã ¨§ ᯨ᪠
.SET_PATH LD HL,(.CURR_DIRNAME)
LD DE,-FileHDR.Name_Size
ADD HL,DE
LD DE,.DIR_NAME
PUSH DE
LD BC,FFIRST.Name_Size
LDIR
POP HL
.SP1 PUSH IX
SPDSS DSSF.CHDIR
SPDSS DSSF.CURDISK
LD HL,WorkBuffer + 0x200
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
SPDSS DSSF.CURDIR
POP IX
RET
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¤«ï ¢ë室  ¢ ¯à¥¤ë¤ãéãî ¤¨àã
.ADD_2DOT PUSH HL
LD HL,.RET_DIR
LD DE,(.CURR_DIRNAME)
LD BC,FFIRST.Name_Size
LDIR
LD (.CURR_DIRNAME),DE
POP HL
RET
; ¯¥à¥áç¨â뢠¥¬ à §¬¥àë ä ©«®¢ ¢ ⥪ã饩 ¤¨à¥ªâ®à¨¨
; ¨ ¢ë£à¥¡ ¥¬ ¨¬¥­  ¤¨à ¢ â ¡«¨çªã
.COUNT_FILES LD IXL,0 ; ª®«¨ç¥á⢮ ¤¨à ¢ ⥪ã饩 ¤¨à¥
CALL .F_FIRST ; ¨é¥¬ ¯¥à¢ë© ®¯¨á â¥«ì
RET C
.L2 LD DE,FFIRST.Attr
ADD HL,DE
LD A,(HL)
SBC HL,DE
BIT DIR.B_Dir,A
JR Z,.L4
; ¤«ï ¤¨àë ª®¯¨à㥬 ¨¬ï ¢ â ¡«¨çªã
LD DE,FFIRST.Name
ADD HL,DE
LD A,(HL)
CP '.' ; . ¨ .. ¯à®¯ã᪠¥¬
JR Z,.L5
LD DE,(.CURR_DIRNAME)
LD BC,FFIRST.Name_Size
LDIR
LD (.CURR_DIRNAME),DE
INC IXL
JR .L5
; ¤«ï ä ©«  ¤®¡ ¢«ï¥¬ ¤«¨­ã
.L4 LD DE,FFIRST.FileSize
ADD HL,DE
CALL GET_DWORD ; ¢§ïâì à §¬¥à ¨§ ®¯¨á â¥«ï
LD HL,.FILES_SIZE
PUSH HL
CALL BCDEHLP ; ¤®¡ ¢¨«¨ ª ⥪ã饬ã à §¬¥àã
POP HL
CALL SET_DWORD ; ¯®«®¦¨«¨ ®¡à â­®
.L5 CALL .F_NEXT
JR NC,.L2
RET
; ¯®¨áª ¯¥à¢®£® ®¯¨á â¥«ï
.F_FIRST LD A, DIR.M_Archive + \
DIR.M_System + \
DIR.M_Hidden + \
DIR.M_ReadOnly + \
DIR.M_Dir
.FFF1 LD HL,.FILES_MASK
LD DE,WorkBuffer + 0x300
PUSH DE
PUSH IX
SPDSS DSSF.F_FIRST,0
POP IX
POP HL
RET
; ¯®¨áª á«¥¤ãî饣® ®¯¨á â¥«ï
.F_NEXT LD DE,WorkBuffer + 0x300
PUSH DE
PUSH IX
SPDSS DSSF.F_NEXT
POP IX
POP HL
RET
.FILES_SIZE DD 0
.FILES_MASK DZ "*.*"
.RET_DIR DZ ".. "
.DIR_NAME DZ " "
.CURR_DIRNAME DW 0
GetDirSizeR CALL COUNTING_DIR
LD HL,COUNTING_DIR.FILES_SIZE
JP GET_DWORD
ENDIF

219
rez3_fnnext.a80 Normal file
View File

@ -0,0 +1,219 @@
; LAST UPDATE: 11.03.2025 savelij
;[]==========================================================[]
InitExtention: ;[ ] 07/10/23
; LD (InitExt.path),HL
; EX HL,DE
;
LD HL,.ExtName1
LD DE,fn_ext
CALL InitExt
LD HL,.ExtName2
LD DE,fnview_ext
CALL InitExt
LD HL,.ExtName3
LD DE,fnedit_ext
CALL InitExt
RET
.ExtName1: DZ FILENAME.FN_EXT
.ExtName2: DZ FILENAME.FNVIEW_EXT
.ExtName3: DZ FILENAME.FNEDIT_EXT
.PathEnd: DW 0 ; not used
;[]----------------------------------------------------------[]
InitExt: LD (.EXTdata),DE
;[ ] 07/10/23
; .path+1: LD DE,0
; CALL CopyString
; LD HL,FlexDIRECTORY
SPDSS DSSF.OPEN,,1
RET C
LD (ExtHandle),A
LD HL,WorkBuffer
LD DE,WorkBuffer_Size
SPDSS DSSF.READ
RET C
OR A
RET P
LD A,(ExtHandle)
PUSH DE
SPDSS DSSF.CLOSE
POP BC
LD HL,WorkBuffer
LD DE,0x0000
.EXTdata EQU $-2
EXX
LD BC,0x03FE
EXX
.loop: CALL InitExtLine
JR NC,.loop
RET
ExtHandle: DEFB 0x00
InitExtLine: LD (.InExtSv),DE
SUB A
LD (DE),A
INC DE
EXX
DEC BC
LD A,B
OR C
SCF
EXX
RET Z
SUB A
LD (DE),A
INC DE
EXX
DEC BC
LD A,B
OR C
SCF
EXX
RET Z
DEC HL
INC BC
LD IXL,0x04
.L1: LD A,B
OR C
SCF
RET Z
EXX
LD A,B
OR C
SCF
EXX
RET Z
INC HL
DEC BC
LD A,(HL)
CP 0x20
JR C,.L4
CP '`'
JR Z,.L4
CP ':'
JR Z,.L6
CP '*'
JR NZ,.L3
.L2: LD A,'?'
LD (DE),A
INC DE
DEC IXL
LD A,IXL
DEC A
JR Z,.L1
EXX
DEC BC
LD A,B
OR C
SCF
EXX
RET Z
JR .L2
.L3: LD (DE),A
INC DE
EXX
DEC BC
EXX
DEC IXL
JR NZ,.L1
.L4: LD DE,(.InExtSv)
.L5: LD A,B
OR C
SCF
RET Z
LD A,(HL)
INC HL
DEC BC
CP 0x0D
JR NZ,.L5
LD A,B
OR C
SCF
RET Z
INC HL
DEC BC
LD A,B
OR C
RET NZ
SCF
RET
.L6: DEC IXL
JR Z,.L8
.L7: EXX
LD A,B
OR C
SCF
EXX
RET Z
INC DE
EXX
DEC BC
EXX
DEC IXL
JR NZ,.L7
.L8: LD A,B
OR C
SCF
RET Z
EXX
LD A,B
OR C
SCF
EXX
RET Z
INC HL
DEC BC
LD A,(HL)
CP 0x0D
JR Z,.L4
CP 0x09
JR Z,.L8
CP 0x20
JR Z,.L8
JR C,.L4
LD (DE),A
INC DE
EXX
DEC BC
EXX
.L9: LD A,B
OR C
SCF
RET Z
EXX
LD A,B
OR C
SCF
EXX
RET Z
INC HL
DEC BC
LD A,(HL)
CP 0x0D
JR Z,.L10
CP 0x20
JR C,.L4
LD (DE),A
INC DE
EXX
DEC BC
EXX
JR .L9
.L10: SUB A
LD (DE),A
INC DE
PUSH HL
LD HL,0x0000
.InExtSv: EQU $-2
LD (HL),E
INC HL
LD (HL),D
POP HL
JR .L5