2025-05-30 08:35:57 +03:00
2026-01-22 17:36:03 +03:00
; LAST UPDATE: 18.01.2026 savelij
2025-05-30 08:35:57 +03:00
include fn_const.a80
include fn_macros.a80
PHASE BASE_ADDR
START_BLOCK_1
2025-08-14 09:36:20 +03:00
JP MainStartFN ; entry point
2025-05-30 08:35:57 +03:00
2025-08-02 23:49:42 +03:00
JP ClearScreen
JP MakeWindow
JP ReplaceColorRectan
JP PrintTxtLine_IFF
JP PrintTxtLine
JP PrintTxtLineNumsChar
JP PrintPathLeft
JP PrintPathRight
JP PrintPathCentr
JP InputLine
JP InputLine.InputLineExitOk
JP InputLine.InputLineExitCancel
JP DOSError
JP InitScrollBar
JP DrawHScrollBar
JP DrawVScrollBar
JP InitProgressBar
JP DrawProgressBar
2025-05-30 08:35:57 +03:00
2025-07-29 21:58:48 +03:00
DB JUMPS.JUMPSIZE * 5 DUP 0xC9
2025-05-30 08:35:57 +03:00
2025-08-02 23:49:42 +03:00
JP WaitUnpressMouse
JP CheckCoordsMouse
JP CMOSPrintDateTime
2025-08-14 09:36:20 +03:00
DB JUMPS.JUMPSIZE * 1 DUP 0xC9
2025-08-02 23:49:42 +03:00
JP PointerMouseClock
JP PointerMousePointer
2025-05-30 08:35:57 +03:00
DB JUMPS.JUMPSIZE * 4 DUP 0xC9
2025-08-02 23:49:42 +03:00
JP ConvertNumbers_40b
JP MoveBytesInc
JP MoveBytesDec
JP Mul_8X8_16b
JP Mul_16X8_24b
JP Mul_16X16_16b
JP Mul_16X16_32b
JP Mul_32X16_32b
JP Div_16X16_16b_16b
JP Div_24X16_8b_16b
JP Div_32X16_16b_16b
JP Div_32X16_32b_16b
JP ConvertNumbers_32b
JP ConvertNumbers_16b
JP ConvertNumbers_8b
JP atoi_32b
JP atoi_16b
JP Resident
2025-05-30 08:35:57 +03:00
DB 0xC0 - LOW ($) DUP 0xC9
2025-08-02 23:49:42 +03:00
NUM_DEVICES DB 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ <20> <> <EFBFBD> ன<EFBFBD> <E0AEA9> <EFBFBD>
2025-05-30 08:35:57 +03:00
TreeFlag DB 0 ; <20> <> <EFBFBD> <EFBFBD> <20> <> ॢ<EFBFBD>
CMOSFlag DB 0 ; <20> <> <EFBFBD> <EFBFBD> CMOS 0 - <20> <> <EFBFBD>
; 1 - <20> <> <EFBFBD> <EFBFBD>
MouseFlag DB 1 ; <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 0 - <20> <> <EFBFBD>
; 1 - <20> <> <EFBFBD> <EFBFBD>
2025-08-14 09:36:20 +03:00
CMOSPrint: DB 1 ; <20> <> <EFBFBD> <EFBFBD> ࠧ<> <E0A0A7> 襭<EFBFBD> <E8A5AD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ६<EFBFBD> <E0A5AC> <EFBFBD>
; 1 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 饭<EFBFBD> , 0 - ࠧ<> <E0A0A7> 襭<EFBFBD>
2025-05-30 08:35:57 +03:00
RAMPAGES
2025-08-02 23:49:42 +03:00
.FNPAGESID DB 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䨪<EFBFBD> <E4A8AA> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> FN
.FNREZ2 DB 0 ; 0 <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> <20> 㭪<EFBFBD> <E3ADAA> ﬨ FN
.FNFONT DB 0 ; 1 <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ⮢
.FNREZ3 DB 0 ; 2 <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㭪権 FN
2025-05-30 08:35:57 +03:00
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 䥩<EFBFBD>
2025-08-02 23:49:42 +03:00
.BufferID DB 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䨪<EFBFBD> <E4A8AA> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.FLX DB 0 ; 0 <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 㧪<EFBFBD> FLX <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.LEFTPANEL DB 0 ; 1 <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> <> ⠫<EFBFBD> <E2A0AB> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.RIGHTPANEL DB 0 ; 2 <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> <> ⠫<EFBFBD> <E2A0AB> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.BuffPg1 DB 0 ; 3
.BuffPg2 DB 0 ; 4
2025-09-07 22:15:01 +03:00
.BuffPg3 DB 0 ; 5 <20> ᯮ<EFBFBD> <E1AFAE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 騪<E0AEA2> <E9A8AA> 䠩<> <E4A0A9> <EFBFBD> /<2F> <> ४<EFBFBD> <E0A5AA>
.BuffPg4 DB 0 ; 6 <20> ᯮ<EFBFBD> <E1AFAE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <E0AEA2> <EFBFBD> , ࠡ<> <E0A0A1> <EFBFBD> <20> <20> <> ॢ<EFBFBD> <E0A5A2> <20> <> ४<EFBFBD> <E0A5AA>
.BuffPgEnd DB 0xFF ; <20> <> થ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ᯨ᪠ <20> <> ࠭<EFBFBD> <E0A0AD>
2025-08-02 23:49:42 +03:00
.FILES_COUNT DW 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ <20> <> <EFBFBD> <EFBFBD> 祭<EFBFBD> <E7A5AD> <EFBFBD> 䠩<> <E4A0A9> <EFBFBD>
.FILES_BYTES DB 5 DUP 0 ; ࠧ<> <E0A0A7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 祭<EFBFBD> <E7A5AD> <EFBFBD> 䠩<> <E4A0A9> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2025-05-30 08:35:57 +03:00
DB LOW (-$) DUP 0
2025-08-02 23:49:42 +03:00
; 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
; discription of flex navigator file panels
LeftPanel: DB 0x80 ; <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 7 - <20> <> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 0 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
DB 0x00 ; <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0 - <20> <> <EFBFBD> ⪠<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 0 - <20> <> <EFBFBD> <EFBFBD> <E0AEA1> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 1 - <20> <> ॢ<EFBFBD>
; <20> <> <EFBFBD> 2 - 㦠⮥ <20> <> ॢ<EFBFBD>
DB 0x01 ; <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <E0AEA2>
; <20> <> <EFBFBD> 0 - <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 1 - <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ७<EFBFBD> <E0A5AD>
; <20> <> <EFBFBD> 2 - <20> <> ࠧ<> <E0A0A7> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 3 - <20> <> <20> <> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 4 - execute file
; <20> <> <EFBFBD> 5 - file mask
DW 4 ; X <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
DW 0 ; X <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD>
DW 0 ; Y <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD>
DW 0 ; Max <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD>
DW 0 ; ⥪.<2E> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD>
DW 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 祩<EFBFBD> <E7A5A9> BarLeft
DW 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 祩<EFBFBD> <E7A5A9> BarRight
DW 0 ; <20> <> <EFBFBD> -<2D> <> 䠩<> <E4A0A9> <EFBFBD> <20> <> <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD>
DW 0 ; <20> <> 饥 <20> <> <EFBFBD> -<2D> <> 䠩<> <E4A0A9> <EFBFBD>
DW 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <20> <> <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD>
DW 0 ; T<> <54> <EFBFBD> 騩 䠩<> <20> <> <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD>
DW 0 ; <20> <> <EFBFBD> -<2D> <> <20> <> ન<E0AAA8> <E0AEA2> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <E4A0A9> <EFBFBD>
DD 0 ; <20> <> <EFBFBD> -<2D> <> <20> <> ન<E0AAA8> <E0AEA2> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⮢
DB 0
DB "*.*" ; Ma᪠ <20> <> <EFBFBD> 䠩<> <E4A0A9> <EFBFBD>
DB 0x0A DUP 0
DB PANEL.CURR_PATH_Size DUP 0 ; <20> <> <EFBFBD> <EFBFBD> <20> ⥪<> 饩 <20> <> ४<EFBFBD> <E0A5AA> ਨ
RightPanel: DB 0x01 ; <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 7 - <20> <> <EFBFBD> <20> 뤥<EFBFBD> <EBA4A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 0 - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
DB 0x00 ; <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0 - <20> <> <EFBFBD> ⪠<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 0 - <20> <> <EFBFBD> <EFBFBD> <E0AEA1> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 1 - <20> <> ॢ<EFBFBD>
; <20> <> <EFBFBD> 2 - 㦠⮥ <20> <> ॢ<EFBFBD>
DB 0x01 ; <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <E0AEA2>
; <20> <> <EFBFBD> 0 - <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 1 - <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ७<EFBFBD> <E0A5AD>
; <20> <> <EFBFBD> 2 - <20> <> ࠧ<> <E0A0A7> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 3 - <20> <> <20> <> <EFBFBD> <EFBFBD>
; <20> <> <EFBFBD> 4 - execute file
; <20> <> <EFBFBD> 5 - file mask
DW 324 ; X <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
DW 0 ; X <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD>
DW 0 ; Y <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD>
DW 0 ; Max <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD>
DW 0 ; ⥪.<2E> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <E0AEAB> <EFBFBD> <EFBFBD>
DW 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 祩<EFBFBD> <E7A5A9> BarLeft
DW 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 祩<EFBFBD> <E7A5A9> BarRight
DW 0 ; <20> <> <EFBFBD> -<2D> <> 䠩<> <E4A0A9> <EFBFBD> <20> <> <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD>
DW 0 ; <20> <> 饥 <20> <> <EFBFBD> -<2D> <> 䠩<> <E4A0A9> <EFBFBD>
DW 0 ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <20> <> <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD>
DW 0 ; T<> <54> <EFBFBD> 騩 䠩<> <20> <> <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD>
DW 0 ; <20> <> <EFBFBD> -<2D> <> <20> <> ન<E0AAA8> <E0AEA2> <EFBFBD> <EFBFBD> <EFBFBD> 䠩<> <E4A0A9> <EFBFBD>
DD 0 ; <20> <> <EFBFBD> -<2D> <> <20> <> ન<E0AAA8> <E0AEA2> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ⮢
DB 0
DB "*.*" ; Ma᪠ <20> <> <EFBFBD> 䠩<> <E4A0A9> <EFBFBD>
DB 0x0A DUP 0
DB PANEL.CURR_PATH_Size DUP 0 ; <20> <> <EFBFBD> <EFBFBD> <20> ⥪<> 饩 <20> <> ४<EFBFBD> <E0A5AA> ਨ
2025-05-30 08:35:57 +03:00
2025-08-14 09:36:20 +03:00
thanks DZ "\r\nThank you for using Flex Navigator.\r\n"
2025-05-30 08:35:57 +03:00
DOSError EX AF,AF'
GETPORT WINSP.CPU1
PUSH AF
2025-07-25 16:01:19 +03:00
LD A,(RAMPAGES.FNREZ2)
2025-05-30 08:35:57 +03:00
SETPORT WINSP.CPU1,,0
EX AF,AF'
CALL DOSErrorR
EX AF,AF'
POP AF
SETPORT WINSP.CPU1,,0
EX AF,AF'
RET
2025-07-25 16:01:19 +03:00
Resident LD (.ResCall),DE
IN B,(C)
PUSH BC
OUT (C),A
CALL 0x0000
.ResCall EQU $-2
POP BC
OUT (C),B
RET
2025-08-02 23:49:42 +03:00
; (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
2025-08-14 09:36:20 +03:00
; (ADR) + BCDE = (ADR)
HLPBCDE: LD A,(HL)
ADD A,E
LD (HL),A
INC HL
LD A,(HL)
ADC A,D
LD (HL),A
INC HL
LD A,(HL)
ADC A,C
LD (HL),A
INC HL
LD A,(HL)
ADC A,B
LD (HL),A
INC HL
LD A,(HL)
ADC A,0
LD (HL),A
RET
2025-08-02 23:49:42 +03:00
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
2025-09-07 22:15:01 +03:00
GET_HANDLE_ADR LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1)
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
OR H
LD H,A
RET
2025-08-14 09:36:20 +03:00
; <20> 맮<EFBFBD> <20> 㭪樨 <20> <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <EFBFBD>
RESIDENT
; ==============resident 2==============
.CopyFiles: LD DE,CopyFilesR
.FunctResident: LD A,(RAMPAGES.FNREZ2)
LD C,WINSP.CPU1
JP Resident
.ReName: LD DE,ReNameR
jr .FunctResident
.MakeDIR: LD DE,MakeDIRR
jr .FunctResident
.DeleteFiles: LD DE,DeleteFilesR
jr .FunctResident
.Setup: LD DE,SetupR
jr .FunctResident
.QSearch: LD DE,QSearchR
jr .FunctResident
2025-09-07 22:15:01 +03:00
IF MARK_DIR
; <20> <> <EFBFBD> ⠫<EFBFBD> <E2A0AB> ᮤ<> ন<EFBFBD> <E0A6A8> <EFBFBD> <EFBFBD> <20> <> ४<EFBFBD> <E0A5AA> ਨ <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
.CalcDirSize LD DE,CalcDirSizeR
JR .FunctResident
2025-08-14 09:36:20 +03:00
ENDIF
; ==============resident 2==============
; ==============resident 3==============
.MarkFile: LD DE,MarkFileR
.HelpResident: LD A,(RAMPAGES.FNREZ3)
LD C,WINSP.CPU1
JP Resident
.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
.PrintFile: CALL ResInvert
.PrintFileL3
LD HL,SetInvert
PUSH HL
LD DE,PrintFileR
jr .HelpResident
.FileInfo: CALL ResInvert
.FileInfoL2
LD HL,SetInvert
PUSH HL
LD DE,FileInfoR
jr .HelpResident
.Version: LD DE,VersionR
jr .HelpResident
.DiskInfo: CALL ResInvert
.DiskInfoL4:
LD DE,DiskInfoR
jr .HelpResident
.SystemInfo: LD DE,SystemInfoR
jr .HelpResident
2025-09-07 22:15:01 +03:00
.Quit: CALL ResInvert
.QuitL1 LD DE,QuitConfirmWin
CALL .HelpResident
JP C,SetInvert
LD HL,ComExit
EX (SP),HL
RET
2025-08-14 09:36:20 +03:00
; ==============resident 3==============
2025-08-02 23:49:42 +03:00
; <20> <> 室
ComExit CALL ResDrivers
CALL ResVideoMode
LD HL,thanks
SPDSS DSSF.PCHARS
LD A,(RAMPAGES.FNPAGESID)
SPDSS DSSF.FREEMEM
SPDSS DSSF.EXIT,0
2026-01-22 17:36:03 +03:00
include fn_win.a80
include fn_print.a80
include fn_input.a80
include fn_bar.a80
include fn_mouse.a80
include fn_sys.a80
2025-05-30 08:35:57 +03:00
2025-08-02 23:49:42 +03:00
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2025-08-14 09:36:20 +03:00
MainStartFN: DI
2025-05-30 08:35:57 +03:00
LD SP,STACK
2025-08-14 09:36:20 +03:00
ReStartFN:
2025-05-30 08:35:57 +03:00
SETPORT BORDER,0
SETPORT WINSP.Y_PORT,0xC0
CALL InitVideoMode
CALL InitDrivers
CALL InitScreen
CALL ClearDOSline
SUB A
CALL InitPanels
2025-08-02 23:49:42 +03:00
CALL WaitUnpressMouse
2025-08-14 09:36:20 +03:00
MainLoop: LD IX,MAINTAB.FilePanelLeft
2025-05-30 08:35:57 +03:00
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
JR Z,.L1
2025-08-14 09:36:20 +03:00
LD IX,MAINTAB.FilePanelRight
2025-08-02 23:49:42 +03:00
.L1 CALL CheckCoordsMouse
2025-05-30 08:35:57 +03:00
CALL TestKeys
CALL C,DOSline
LD A,(TreeFlag)
OR A
CALL NZ,TestTreeR
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) ; ᪠<> <20> <> <EFBFBD>
INC IX
INC L
SCF
RET Z
DEC L
LD H,(IX+0x00) ; ASCII <20> <> <EFBFBD>
INC IX
LD C,(IX+0x00) ; LOW <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 맮<EFBFBD> <EBA7AE>
INC IX
LD B,(IX+0x00) ; HIGH <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> 맮<EFBFBD> <EBA7AE>
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
START_SORT
2026-01-22 17:36:03 +03:00
include fn_sort.a80
2025-05-30 08:35:57 +03:00
END_SORT
START_TREE
2026-01-22 17:36:03 +03:00
include fn_tree.a80
2025-05-30 08:35:57 +03:00
END_TREE
2026-01-22 17:36:03 +03:00
include fn_panel.a80
include fn_dos.a80
include fn_work.a80
include fn_menu.a80
include fn_init.a80
include fn_dosline.a80
include fn_tab.a80
2025-05-30 08:35:57 +03:00
END_BLOCK_1:
DEPHASE ; BASE_ADDR
2025-08-14 09:36:20 +03:00
; ==============resident 2==============
2025-05-30 08:35:57 +03:00
PHASE 0x4000
START_BLOCK_2
2025-09-07 22:15:01 +03:00
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⮡<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> EXE 䠩<> <E4A0A9>
REZ2_BUFFERS
_INIT_VAR BUF_REZ2.FlexDIRECTORY
_MINUSVAR .OLDLEFTPANEL, 0x100 ; ⥪<> 騩 <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
_MINUSVAR .OLDRIGHTPANEL, 0x100 ; ⥪<> 騩 <20> <> <EFBFBD> <EFBFBD> <20> ࠢ<EFBFBD> <E0A0A2> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
_MINUSVAR .FINDCURRPATH, 0x100 ; <20> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<> 騩 <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 筨<EFBFBD> <E7ADA8>
_MINUSVAR .FINDBUF, 0x100 ; <20> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ᪠
_MINUSVAR .ENDPATHSRC, WORD ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 墮<> <E5A2AE> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 筨<EFBFBD> <E7ADA8>
_MINUSVAR .CURR_DIRNAME, WORD ; ⥪<> 騩 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD>
2026-01-22 17:36:03 +03:00
include rez2_fn_funct.a80
include rez2_fn_search.a80
include rez2_fn_config.a80
include rez2_fn_error.a80
include rez2_fn_tab.a80
2025-05-30 08:35:57 +03:00
END_BLOCK_2:
DEPHASE ; 0x4000
2025-08-14 09:36:20 +03:00
; ==============resident 2==============
2025-05-30 08:35:57 +03:00
2025-08-14 09:36:20 +03:00
; ==============fonts==============
2025-05-30 08:35:57 +03:00
PHASE 0xC000
2025-07-25 16:01:19 +03:00
; MAIN.FNFONT
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:
2025-05-30 08:35:57 +03:00
DEPHASE ; 0xC000
2025-08-14 09:36:20 +03:00
; ==============fonts==============
2025-05-30 08:35:57 +03:00
2025-08-14 09:36:20 +03:00
; ==============resident 3==============
2025-05-30 08:35:57 +03:00
PHASE 0x4000
2025-07-25 16:01:19 +03:00
; MAIN.FNREZ3
2025-05-30 08:35:57 +03:00
START_BLOCK_3
2025-07-25 16:01:19 +03:00
; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ⮡<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> EXE 䠩<> <E4A0A9>
2025-09-07 22:15:01 +03:00
REZ3_BUFFERS
2025-08-14 09:36:20 +03:00
_INIT_VAR 0x8000 ; <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ࠭<EFBFBD> <E0A0AD> <EFBFBD>
_MINUSVAR .DOShistory, 0x200 ;times 0x200 db 0
2026-01-22 17:36:03 +03:00
_MINUSVAR .fnedit_ext, EXT_BUF_SIZE ;times 0x400 db 0
_MINUSVAR .fnview_ext, EXT_BUF_SIZE ;times 0x400 db 0
_MINUSVAR .fn_ext, EXT_BUF_SIZE ;times 0x400 db 0
2025-08-14 09:36:20 +03:00
2026-01-22 17:36:03 +03:00
include rez3_fn_extensions.a80
include rez3_fn_mark.a80
include rez3_fn_misc.a80
include rez3_fn_tab.a80
2025-05-30 08:35:57 +03:00
END_BLOCK_3:
DEPHASE ; 0x4000
2025-08-14 09:36:20 +03:00
; ==============resident 3==============
2025-05-30 08:35:57 +03:00
2025-06-24 21:36:47 +03:00
BLOCK1_SIZE EQU END_BLOCK_1 - START_BLOCK_1 ; <20> ᭮<EFBFBD> <E1ADAE> <EFBFBD> <EFBFBD> <20> <> <EFBFBD>
BLOCK2_SIZE EQU END_BLOCK_2 - START_BLOCK_2 ; १<> <E0A5A7> <EFBFBD> <EFBFBD> <EFBFBD> 2
BLOCK3_SIZE EQU END_BLOCK_3 - START_BLOCK_3 ; १<> <E0A5A7> <EFBFBD> <EFBFBD> <EFBFBD> 3
SORT_SIZE EQU END_SORT - START_SORT ; <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 騪
TREE_SIZE EQU END_TREE - START_TREE ; ࠡ<> <E0A0A1> <EFBFBD> <20> <20> <> ॢ<EFBFBD> <E0A5A2>