прибираемся

This commit is contained in:
Tolik 2025-04-05 01:58:39 +10:00
parent 9c17418f43
commit f3f3ac6df0
48 changed files with 743 additions and 708 deletions

View File

@ -12,7 +12,7 @@ enable_clock:
call get_systime ; ã§­ âì á¨áâ. ¢à¥¬ï
ld de,clock_string ; ¡ãä¥à ç á®¢
ld hl,0301h ; á 0-© áâப¨
in a,(89h)
in a,(PORT_Y)
ld b,a ; á®åà. ¯®àâ
in a,(SLOT0)
ld c,a ; á®åà.¯®àâ
@ -20,7 +20,7 @@ enable_clock:
ld a,50h ; ¢¨¤¥®-áâà ­¨æ 
out (SLOT0),a
ld a,75+81h ; +0 (ᬥé. á«¥¢ )
out (89h),a ; ª®«®­ª 
out (PORT_Y),a ; ª®«®­ª 
; ¢ë¢®¤ ⥪áâ 
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,5 ; ¤«¨­  áâப¨
@ -34,7 +34,7 @@ enable_clock:
; ¢ë¢®¤  âਡã⮢
ld de,clock_attr ; áâப   âਡã⮢
ld a,75+81h ; +0 (ᬥé. á«¥¢ )
out (89h),a
out (PORT_Y),a
inc hl ; ¯¥à¥©â¨ ­   âਡãâë
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,5 ; ¤«¨­  áâப¨
@ -46,7 +46,7 @@ enable_clock:
ld (hl),a
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,b
out (89h),a ; ¢®ááâ. ¯®àâ
out (PORT_Y),a ; ¢®ááâ. ¯®àâ
ld a,c
out (SLOT0),a ; ¢®ááâ. ¯®àâ
ei

View File

@ -10,7 +10,7 @@ PR: push iy
rst 08h
ld hl,work_buffer+33;256
ld c,1Eh
rst 10h
rst ToDSS
;ld hl,work_buffer+256
;xor a
;ld c,a
@ -23,7 +23,7 @@ PR: push iy
;
ld hl,work_buffer+33;256
ld c,5Ch
rst 10h
rst ToDSS
ld a," "
call symb
ld a," "
@ -64,7 +64,7 @@ PR2: push iy
rst 08h
pop hl;
;ld c,5Ch
;rst 10h
;rst ToDSS
;ld a," "
;call symb
;ld a," "

View File

@ -81,7 +81,7 @@ delete_yes1:
ld a,(hl)
ld hl,temp_fname ; ¨¬ï ä ©« /¯ ¯ª¨
ld bc,0116h ; ãáâ.  âਡãâ ä ©« 
rst 10h
rst ToDSS
delete1:
; ᪮¯¨à. ¨¬ï ä ©« /¯ ¯ª¨ ¢ ®¯¨á â¥«ì ¨­ä®-®ª­ 
ld hl,delete_name ; ®âªã¤ 
@ -98,7 +98,7 @@ delete_try:
jr nz,$+4 ; ¤ 
ld c,0Eh ; 㤠«¨âì ä ©«
ld hl,temp_fname ; ¨¬ï ä ©« /¯ ¯ª¨
rst 10h
rst ToDSS
; § ªàëâì ¨­ä®-®ª­®
push af
call CloseWinSimple
@ -178,7 +178,7 @@ del_full_fold_rec:
; 㤠«¨âì ¯ ¯ªã
ld hl,work_buffer ; ªã¤  (¢ ª®­¥æ áâப¨)
ld c,1Ch ; 㤠«¨âì ¯ ¯ªã
rst 10h
rst ToDSS
; § ªàëâì ¨­ä®-®ª­®
call CloseWinSimple
or a
@ -254,13 +254,13 @@ delete_file:
inc hl ; +33 (¨¬ï ä ©« )
ld bc,0116h ; ãáâ.  âਡãâ ä ©« 
push af
rst 10h
rst ToDSS
pop af
delete_file_next:
ld c,0Eh ; 㤠«¨âì ä ©«
delete_file_next1:
ld hl,work_buffer+33 ; ¨¬ï ä ©« 
rst 10h
rst ToDSS
push af
; § ªàëâì ¨­ä®-®ª­®
call CloseWinSimple
@ -278,7 +278,7 @@ delete_folder:
;
ld hl,work_buffer+33
ld c,1Eh ; ã§­ âì ¯ãâì
rst 10h
rst ToDSS
; ¢ë¢®¤ ¨­ä®-®ª­ 
ld hl,dial_delete_current
call WinSimple ; ®âªàëâì ®ª­®

View File

@ -11,7 +11,7 @@ Press_Enter:
push af
ld de,work_buffer ; ªã¤ 
ld bc,0044h ; 11 -> 8.3
rst 10h
rst ToDSS
pop af
and 10h
jp z,Launch_File ; ¢ë¯®«­¨âì ä ©« (launch.asm)
@ -95,7 +95,7 @@ return_to_parent:
ld hl,work_buffer+127;255 ; ®âªã¤ 
ld de,temp_fname ; ªã¤  (launch.asm)
ld bc,0144h
rst 10h
rst ToDSS
; ¯®§¨æ. 㪠§ â¥«ì ­  ¨¬ï ¯ ¯ª¨
call calc_index_name ; ¢ëç¨á«¨âì ¨­¤¥ªá ¨¬¥­¨
call set_pointer ; à áç. ¯®«®¦. 㪠§ â¥«ï/ᯨ᪠

View File

@ -46,7 +46,7 @@ file_viewer:
ret c
ld de,temp_fname ; ªã¤ 
ld bc,0044h ; 11 -> 8.3
rst 10h
rst ToDSS
ret c
;ld (evcomb_stack+1),sp ; á®åà. á⥪
ld a,(page_viewer) ; áâà. ¢ìî¥à 

View File

@ -171,16 +171,16 @@ get_info_data:
; ¯à®ç¨â âì BPB ¤¨áª 
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld c,1 ; open device
rst 18h
rst ToDSS.DRV
jr c,get_inf_data_err
ld a,(disk)
ld de,work_buffer ; ¡ãä¥à
ld c,4 ; get BPB
rst 18h
rst ToDSS.DRV
push af
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld c,2 ; close device
rst 18h
rst ToDSS.DRV
pop af
jr c,get_inf_data_err
; ¡ ©â ä®à¬ â  ­®á¨â¥«ï
@ -202,12 +202,12 @@ get_inf_data_err:
jr nc,get_inf_data1 ; ¬¥âª  ¢ BPB
; floppy, ¬¥âª  - § ¯¨áì ä ©« 
ld c,1 ; ãáâ. ¤¨áª
rst 10h
rst ToDSS
ld hl,scan_mask ; "*.*" ¨¬ï ¯®¨áª  ¬¥âª¨ ⮬ 
ld de,work_buffer+127;255
ld a,8 ;  âਡãâ ¬¥âª¨ ⮬ 
ld bc,0019h ; F_FIRST, ä®à¬ â "FilenameExt"
rst 10h
rst ToDSS
jr c,get_inf_data1 ; ¬¥âª¨ ­¥â
ld hl,work_buffer+127+43 ;+255+43 ®âªã¤  (ª®­¥æ ¬¥âª¨)
jr $+5
@ -220,7 +220,7 @@ get_inf_data1:
; Ž¡ê¥¬ ¤¨áª 
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld c,3 ; ¨­ä  ® ¤¨áª¥
rst 10h
rst ToDSS
jr nc,get_inf_data_ok
xor a
ld l,a
@ -267,7 +267,7 @@ get_inf_data_ok:
call decimal32
; ‚ᥣ® ¯ ¬ïâ¨
ld c,3Ch ; ¨­ä®à¬ æ¨ï ® ¯ ¬ïâ¨
rst 10h
rst ToDSS
push bc
ld ix,info_total_memory ; 0,000,000
call conv_kbytes ; kbytes -> bytes ¨ ¢ë¢®¤ ¢ ¡ãä¥à
@ -369,7 +369,7 @@ conv_kbytes:
;-------------------------------------------------
info_get_date:
ld c,21h ; á¨áâ. ¤ â 
rst 10h
rst ToDSS
push ix ; £®¤
push de ; ¤¥­ì/¬¥áïæ
ld ix,info_date_string ; ¡ãä¥à

View File

@ -84,7 +84,7 @@ print_keybar:
ld de,keybar_norm ; ⥪áâ
print_keybar1:
ld hl,037Dh ; 0301h + (4*31)
in a,(89h)
in a,(PORT_Y)
ld b,a ; á®åà. ¯®àâ
in a,(SLOT0)
ld c,a ; á®åà.¯®àâ
@ -92,7 +92,7 @@ print_keybar1:
ld a,50h ; ¢¨¤¥®-áâà ­¨æ 
out (SLOT0),a
ld a,81h ; +0 (ᬥé. á«¥¢ )
out (89h),a ; ª®«®­ª 
out (PORT_Y),a ; ª®«®­ª 
; ¢ë¢®¤ ⥪áâ 
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,80 ; ¤«¨­  áâப¨
@ -106,7 +106,7 @@ print_keybar1:
; ¢ë¢®¤  âਡã⮢
ld de,keybar_attr ; áâப   âਡã⮢
ld a,81h ; +0 (ᬥé. á«¥¢ )
out (89h),a
out (PORT_Y),a
inc hl ; ¯¥à¥©â¨ ­   âਡãâë
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,80 ; ¤«¨­  áâப¨
@ -118,7 +118,7 @@ print_keybar1:
ld (hl),a
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,b
out (89h),a ; ¢®ááâ. ¯®àâ
out (PORT_Y),a ; ¢®ááâ. ¯®àâ
ld a,c
out (SLOT0),a ; ¢®ááâ. ¯®àâ
ei
@ -144,7 +144,7 @@ change_keybar:
ld de,keybar_shift ; áâப 
keybar__:
ld hl,037Dh ; 0301h + (4*31)
in a,(89h)
in a,(PORT_Y)
ld b,a ; á®åà. ¯®àâ
in a,(SLOT0)
ld c,a ; á®åà.¯®àâ
@ -152,7 +152,7 @@ keybar__:
ld a,50h ; ¢¨¤¥®-áâà ­¨æ 
out (SLOT0),a
ld a,81h ; +0 (ᬥé. á«¥¢ )
out (89h),a ; ª®«®­ª 
out (PORT_Y),a ; ª®«®­ª 
; ¢ë¢®¤ ⥪áâ 
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,80 ; ¤«¨­  áâப¨
@ -164,7 +164,7 @@ keybar__:
ld (hl),a
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,b
out (89h),a ; ¢®ááâ. ¯®àâ
out (PORT_Y),a ; ¢®ááâ. ¯®àâ
ld a,c
out (SLOT0),a ; ¢®ááâ. ¯®àâ
ei

View File

@ -95,9 +95,9 @@ cut_disk:
ld hl,work_buffer ; ®âªã¤ 
ld de,ComLineBuff+5 ; ªã¤ 
ld bc,0145h
rst 10h
rst ToDSS
ld c,1 ; ãáâ. ¤¨áª
rst 10h
rst ToDSS
ret
; ‚뤥«¨âì ¨ ãáâ ­®¢¨âì ¯ãâì
@ -106,10 +106,10 @@ cut_path:
ld de,ComLineBuff+5+2 ; ªã¤ 
push de
ld bc,0245h
rst 10h
rst ToDSS
pop hl
ld c,1Dh ; ãáâ. ¯ãâì
rst 10h
rst ToDSS
ret
; ‚뤥«¨âì ¨¬ï ä ©«  ¨§ áâப¨
@ -117,7 +117,7 @@ cut_filename:
ld hl,work_buffer ; ®âªã¤ 
ld de,temp_fname ; ªã¤ 
ld bc,0345h ; ä®à¬ â "file.ext"
rst 10h
rst ToDSS
ret
@ -142,7 +142,7 @@ Launch_File:
ld hl,work_buffer ; ®âªã¤ 
ld de,temp_fname ; ªã¤ 
ld bc,0445h
rst 10h
rst ToDSS
bit 3,a ; 㪠§ ­ ¤¨áª ?
push af
call nz,cut_disk ; ¢ë¤¥«¨âì ¨ ãáâ. ¤¨áª
@ -265,7 +265,7 @@ new_line:
call $+5
ld a,0Ah
ld c,5Bh ; ¢ë¢®¤ ᨬ¢®«  ­  íªà ­
rst 10h
rst ToDSS
ret
@ -285,7 +285,7 @@ call_shell:
ld (hl),false
; ¢®ááâ. ¤®á-áâà ­¨æã
di
ld a,(port_82)
ld a,(DSS_PAGE)
out (SLOT0),a
ei
; ¢®ááâ. á¨á⥬­ë© íªà ­
@ -298,12 +298,12 @@ call_shell:
rst 08h
; ¢®ááâ. §­ ç¥­¨¥ ¯®àâ 
ld a,(port_89)
out (89h),a
out (PORT_Y),a
; ¢ë¯®«­¨âì ä ©«
ld (stack1+1),sp
ld hl,work_buffer+127;255 ; ¨¬ï ä ©« 
ld bc,0040h
rst 10h
rst ToDSS
; áªàëâì á¨áâ. ¬ëèªã
ld c,2
rst 30h

View File

@ -30,7 +30,7 @@ make_folder:
ld hl,input_line_makedir+5 ; ®âªã¤ 
ld de,temp_fname ; ªã¤  (13 ¡ ©â)
ld bc,0345h
rst 10h
rst ToDSS
push af
push af
or a
@ -55,7 +55,7 @@ try_make_fold:
try_make_folder:
ld hl,temp_fname ; ¨¬ï ¯ ¯ª¨
ld c,1Bh ; á®§¤ âì ¯ ¯ªã
rst 10h
rst ToDSS
jr c,make_fold_err
; ®¡­®¢¨âì ᯨ᮪ ¯ ­¥«¥©
fresh_two_panels: ;<- ®¡à é¥­¨¥ ¨§ delete.asm

View File

@ -232,12 +232,12 @@ copy_file:
; ; ¤®¡ ¢¨âì ¨¬ï ¯ ¯ª¨
; ; de=ªã¤ 
; ld bc,0044h ; 11 -> 8.3
; rst 10h
; rst ToDSS
;__tr1: ;
; ;call PR;
; ld hl,work_buffer
; ld c,1Dh ; ãáâ. ⥪. ¯ãâì
; rst 10h
; rst ToDSS
; ;xor a ; ᪠­¨à. ¯ ¯ª¨
; ;ld (scan_mode),a ; ०¨¬ à ¡®âë ¯à®æ¥¤ãàë
; jp ScanTree ; ᪠­¨à. ¯ ¯ªã

View File

@ -479,9 +479,9 @@ scan_folder_alt:
ex de,hl ; de=ªã¤ 
pop hl ; ®âªã¤ 
ld bc,0044h ; 11 -> 8.3
rst 10h
rst ToDSS
scan_fold1:
ld hl,work_buffer
ld c,1Dh ; ãáâ. ¯ãâì
rst 10h
rst ToDSS
jp ScanTree ; ᪠­¨à. ¯ ¯ªã

View File

@ -86,7 +86,7 @@ read_new_list:
ld (hl),0
dec hl
ld c,1Dh ; ᬥ­  ⥪. ª â «®£ 
rst 10h
rst ToDSS
ret c ; ®è¨¡ª 
read_nlist:
xor a
@ -110,7 +110,7 @@ read_nlist:
read_nlist_loop:
ld de,work_buffer ; ªã¤ 
ld a,37h ; ¢á¥, ªà®¬¥ ¬¥âª¨ ⮬ 
rst 10h
rst ToDSS
ccf
ret nc ; ¡®«ìè¥ ­¥â § ¯¨á¥©
call copy_record ; ᪮¯¨à. § ¯¨áì ¢ ¡ ­ªã ª â «®£ 

View File

@ -25,7 +25,7 @@ rename: call test_show_panels ;
ld hl,temp_fname ; áâ à®¥ ¨¬ï
ld de,input_line_rename+5 ; ­®¢®¥ ¨¬ï
ld c,10h ; ¯¥à¥¨¬¥­. ä ©«
rst 10h
rst ToDSS
jp nc,fresh_two_panels ; ¡¥§ ®è¨¡®ª, ®¡­®¢¨âì ¯ ­¥«¨
;
; ¢ë¢®¤ ®ª­  ®è¨¡ª¨ ¯¥à¥¨¬¥­®¢ ­¨ï
@ -60,7 +60,7 @@ prep_ren_name1:
; hl=®âªã¤ 
ld de,temp_fname ; ªã¤ 
ld bc,0044h ; 11 -> 8.3
rst 10h
rst ToDSS
; ®ç¨áâ¨âì áâàãªâãàã ¡ãä¥à 
ld hl,input_line_rename ; áâàãªâãà  ¡ãä¥à 
call clear_struct_inline

View File

@ -89,13 +89,13 @@ enable_ini_file:
ldir
; ãáâ. ®¤¨­ ª®¢ë¥ ¤¨áª¨ ¢ ¯ ­¥«ïå
ld c,2 ; ¯®«ãç¨âì ­®¬¥à ⥪. ¤¨áª 
rst 10h
rst ToDSS
ld (disk),a ; ­®¬¥à ¤¨áª   ªâ. ¯ ­¥«¨
ld (disk1),a ; ­®¬¥à ¤¨áª  ¯ áá. ¯ ­¥«¨
; ãáâ. ®¤¨­ ª®¢ë¥ ¯ã⨠¢ ¯ ­¥«ïå
ld hl,buff_left ; ¡ãä¥à ¯ã⨠«¥¢®© ¯ ­¥«¨
ld c,1Eh ; ¯®«ãç¨âì ⥪. ¯ãâì
rst 10h
rst ToDSS
ld hl,buff_left ; ¯ãâì «¥¢®© ¯ ­¥«¨
ld de,buff_right ; ¯ãâì ¯à ¢®© ¯ ­¥«¨
jp copy_string ; ᪮¯¨à. áâப㠤® ­ã«ï (á ­ã«¥¬)
@ -201,7 +201,7 @@ read_ini_file:
ld bc,0146h ; ¯®«ãç¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
ld hl,env_name ; ¨¬ï ¯¥à¥¬¥­­®©
ld de,work_buffer ; ¡ãä¥à ¤«ï §­ ç¥­¨ï ¯¥à¥¬¥­­®©
rst 10h
rst ToDSS
jr c,no_ini_string ; ®è¨¡ª 
or a
jr nz,read_ini_file__ ; ¯¥à¥¬¥­­ ï ­ ©¤¥­ 
@ -225,7 +225,7 @@ read_ini_file__:
ld de,work_buffer+127;255 ; ¡ãä¥à
ld bc,0119h
ld a,20h ; " à娢­ë©"
rst 10h
rst ToDSS
pop de ; ª®­¥æ áâப¨ ¯¥à¥¬¥­­®© ®ªà㦥­¨ï
jr nc,found_ini_file ; ä ©« ­ ©¤¥­
no_ini_string:
@ -237,21 +237,21 @@ found_ini_file:
ld hl,work_buffer ; ¯®«­®¥ ¨¬ï ä ©«  (¤¨áª+¯ãâì+¨¬ï)
ld a,1 ; ­  ç⥭¨¥
ld c,11h ; ®âªàëâì ä ©«
rst 10h
rst ToDSS
jr c,no_ini_string ; ®è¨¡ª  ®âªàëâ¨ï
ld (handle_ini_file),a ; á®åà. ¤¥áªà¨¯â®à
; ¯à®ç¨â âì ­ áâனª¨ ¬¥­¥¤¦¥à 
ld hl,work_buffer ; ¡ãä¥à ¯®¤ ¤ ­­ë¥
ld de,size_ini_part1 ; ç¨á«® ç¨â ¥¬ëå ¡ ©â
ld c,13h ; ç⥭¨¥ ä ©« 
rst 10h
rst ToDSS
jr c,read_ini_error
; ¯à®ç¨â âì ¯ã⨠«¥¢®© ¨ ¯à ¢®© ¯ ­¥«¥©
ld hl,buff_left ; ¡ãä¥à ¯®¤ ¤ ­­ë¥
ld de,256+256 ; 512 ç¨á«® ç¨â ¥¬ëå ¡ ©â
ld a,(handle_ini_file) ; ¤¥áªà¨¯â®à
ld c,13h ; ç⥭¨¥ ä ©« 
rst 10h
rst ToDSS
ld a,true
jr nc,read_ini_ok ; ¡¥§ ®è¨¡®ª
read_ini_error:
@ -263,16 +263,16 @@ close_ini_file:
handle_ini_file:
db -1
ld c,12h ; § ªàëâì ä ©«
rst 10h
rst ToDSS
ini_done:
restore_sys_path:
ld a,(save_disk)
ld c,1 ; ãáâ. ¤¨áª
rst 10h
rst ToDSS
ret c
ld hl,save_path
ld c,1Dh ; ãáâ. ª â «®£
rst 10h
rst ToDSS
ret
@ -310,7 +310,7 @@ write_ini_file:
ld bc,0146h ; ¯®«ãç¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
ld hl,env_name ; ¨¬ï ¯¥à¥¬¥­­®©
ld de,work_buffer ; ¡ãä¥à ¤«ï §­ ç¥­¨ï ¯¥à¥¬¥­­®©
rst 10h
rst ToDSS
ret c ; ®è¨¡ª 
or a
jr nz,write_ini_file__ ; ¯¥à¥¬¥­­ ï ­ ©¤¥­ 
@ -331,7 +331,7 @@ write_ini_file__:
ld hl,work_buffer ; ¯®«­®¥ ¨¬ï ä ©«  (¤¨áª+¯ãâì+¨¬ï)
ld a,20h ; " à娢­ë©"
ld c,0Ah ; á®§¤ âì ä ©«
rst 10h
rst ToDSS
jr c,ini_done ; ®è¨¡ª  á®§¤ ­¨ï
ld (handle_ini_file),a ; á®åà. ¤¥áªà¨¯â®à
;
@ -342,21 +342,21 @@ write_ini_file__:
ld de,size_ini_part1 ; 97 ç¨á«® § ¯¨á. ¡ ©â
ld a,(handle_ini_file) ; ¤¥áªà¨¯â®à
ld c,14h ; § ¯¨áì ä ©« 
rst 10h
rst ToDSS
jr c,close_ini_file ; § ªàëâì ä ©«
; § ¯¨á âì ¯ãâì «¥¢®© ¯ ­¥«¨
ld hl,(__buff) ;  ¤à¥á áâப¨ «¥¢®© ¯ ­¥«¨
ld de,256 ; ç¨á«® § ¯¨á. ¡ ©â
ld a,(handle_ini_file) ; ¤¥áªà¨¯â®à
ld c,14h ; § ¯¨áì ä ©« 
rst 10h
rst ToDSS
jr c,close_ini_file ; § ªàëâì ä ©«
; § ¯¨á âì ¯ãâì ¯à ¢®© ¯ ­¥«¨
ld hl,(__buff1) ;  ¤à¥á áâப¨ ¯à ¢®© ¯ ­¥«¨
ld de,256 ; ç¨á«® § ¯¨á. ¡ ©â
ld a,(handle_ini_file) ; ¤¥áªà¨¯â®à
ld c,14h ; § ¯¨áì ä ©« 
rst 10h
rst ToDSS
jp close_ini_file ; § ªàëâì ä ©«
@ -462,7 +462,7 @@ read_mnu_file:
ld bc,0146h ; ¯®«ãç¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
ld hl,env_name ; ¨¬ï ¯¥à¥¬¥­­®©
ld de,work_buffer ; ¡ãä¥à ¤«ï §­ ç¥­¨ï ¯¥à¥¬¥­­®©
rst 10h
rst ToDSS
jr c,no_mnu_string ; ®è¨¡ª 
or a
jr nz,read_mnu_file__ ; ¯¥à¥¬¥­­ ï ­ ©¤¥­ 
@ -486,7 +486,7 @@ read_mnu_file__:
ld de,work_buffer+127;255 ; ¡ãä¥à
ld bc,0119h
ld a,20h ; " à娢­ë©"
rst 10h
rst ToDSS
pop de ; ª®­¥æ áâப¨ ¯¥à¥¬¥­­®© ®ªà㦥­¨ï
jr nc,found_mnu_file ; ä ©« ­ ©¤¥­
no_mnu_string:
@ -498,14 +498,14 @@ found_mnu_file:
ld hl,work_buffer ; ¯®«­®¥ ¨¬ï ä ©«  (¤¨áª+¯ãâì+¨¬ï)
ld a,1 ; ­  ç⥭¨¥
ld c,11h ; ®âªàëâì ä ©«
rst 10h
rst ToDSS
jr c,no_mnu_string ; ®è¨¡ª  ®âªàëâ¨ï
ld (handle_mnu_file),a ; á®åà. ¤¥áªà¨¯â®à
; ¯à®ç¨â âì ä ©«
ld hl,array_read ; 0C000h ¡ãä¥à ¯®¤ ¤ ­­ë¥
ld de,73*52 ; 3796 ¬ ªá. ç¨á«® ç¨â ¥¬ëå ¡ ©â
ld c,13h ; ç⥭¨¥ ä ©« 
rst 10h
rst ToDSS
ld a,true
jr nc,read_mnu_ok ; ¡¥§ ®è¨¡®ª
xor a
@ -518,6 +518,6 @@ read_mnu_ok:
handle_mnu_file:
db -1
ld c,12h ; § ªàëâì ä ©«
rst 10h
rst ToDSS
mnu_done:
jp restore_sys_path ; ¢®ááâ. ⥪. ¯ãâì

View File

@ -66,13 +66,13 @@ warm_entry:
; ãáâ. ⥪áâ. ०¨¬ íªà ­ 
ld a,3 ; 80x32x16 梥⮢
ld bc,0150h ; b=1 íªà ­
rst 10h
rst ToDSS
; á®åà. á¨áâ. íªà ­
ld c,0B2h
ld a,(page_sys_screen) ; áâà. ¡ãä¥à  ®ª­ 
call screen__
ld a,0C0h
out (89h),a ; § ªàëâì ᯥª. íªà ­
out (PORT_Y),a ; § ªàëâì ᯥª. íªà ­
; ¨­¨â. ¤à ©¢¥à ª« ¢ë
xor a
@ -1699,7 +1699,7 @@ string_line: db 1 ;
add hl,hl ; 2+2=4
add hl,de
ld de,string_of_list ;  ¤à¥á áâப¨
in a,(89h)
in a,(PORT_Y)
ld (pnt3__+1),a ; á®åà. ¯®àâ
in a,(SLOT0)
ld (pnt4__+1),a ; á®åà. ¯®àâ
@ -1712,7 +1712,7 @@ string_line: db 1 ;
string_colon: db 0 ; ­®¬¥à ª®«®­ª¨
add a,81h ; +0 (ᬥé. á«¥¢ )
add a,b ; + ­ ç «® ¯ ­¥«¨
out (89h),a
out (PORT_Y),a
ld (pnt1__+1),a
; ¢ë¢®¤ ⥪áâ 
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
@ -1748,12 +1748,12 @@ pnt__: ld a,(string_len) ;
ld b,a
pnt1__: ld c,81h ; á®åà. ­®¬¥à ª®«®­ª¨
pnt2__: ld a,c
out (89h),a
out (PORT_Y),a
ld (hl),e ;  âਡãâ
inc c
djnz pnt2__
pnt3__: ld a,0
out (89h),a ; ¢®ááâ. ¯®àâ
out (PORT_Y),a ; ¢®ááâ. ¯®àâ
pnt4__: ld a,0
out (SLOT0),a ; ¢®ááâ. ¯®àâ
ei
@ -2211,13 +2211,13 @@ set_path_from_activ_panel:
; ãáâ. ¤¨áª ®â  ªâ. ¯ ­¥«¨
ld a,(disk)
ld c,1
rst 10h
rst ToDSS
ld a,-1
ret c
; ãáâ. ¯ãâì ®â  ªâ. ¯ ­¥«¨
ld hl,(__buff)
ld c,1Dh
rst 10h
rst ToDSS
ret nc
ld a,0
ret
@ -2228,13 +2228,13 @@ set_path_from_activ_panel:
set_path_to_activ_panel:
; ãáâ. ¤¨áª ¤«ï  ªâ. ¯ ­¥«¨
ld c,2
rst 10h
rst ToDSS
ret c
ld (disk),a
; ãáâ. ¯ãâì ¤«ï  ªâ. ¯ ­¥«¨
ld hl,(__buff)
ld c,1Eh
rst 10h
rst ToDSS
ret
@ -2295,7 +2295,7 @@ draw_txt_print1:;
add hl,hl ; 1+1=2
add hl,hl ; 2+2=4
add hl,bc
in a,(89h)
in a,(PORT_Y)
ld (tdraw4__+1),a ; á®åà. ¯®àâ
in a,(SLOT0)
ld (tdraw5__+1),a ; á®åà. ¯®àâ
@ -2305,7 +2305,7 @@ draw_txt_print1:;
db 3Eh ; ld a,..
tdraw__: db 0 ; ª®«®­ª  (0..79)
add a,81h ; +0 (ᬥé. á«¥¢ )
out (89h),a
out (PORT_Y),a
ld c,a
; ¢ë¢®¤ ⥪áâ 
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
@ -2323,13 +2323,13 @@ tdraw1__: db 1 ;
ex af,af'
ld b,a ; ¤«¨­  áâப¨
ld a,c
tdraw2__: out (89h),a
tdraw2__: out (PORT_Y),a
tdraw3__: ld (hl),0 ;  âਡãâ
inc a
inc de
djnz tdraw2__
tdraw4__: ld a,0
out (89h),a ; ¢®ááâ. ¯®àâ
out (PORT_Y),a ; ¢®ááâ. ¯®àâ
tdraw5__: ld a,0
out (SLOT0),a ; ¢®ááâ. ¯®àâ
ei
@ -2349,7 +2349,7 @@ draw_half_frame:ld hl,0301h+4 ;
draw_half_frame1:
ld hl,0301h+(4*2) ; á® 2-© áâப¨
ld b,26 ; ç¨á«® áâப
in a,(89h)
in a,(PORT_Y)
ld (fdraw3__+1),a ; á®åà. ¯®àâ
in a,(SLOT0)
ld (fdraw4__+1),a ; á®åà. ¯®àâ
@ -2384,14 +2384,14 @@ fdraw2__: call fdraw_axel
ld de,midline4 ; «¨­¨ï "º º""
call fdraw_axel
fdraw3__: ld a,0
out (89h),a ; ¢®ááâ. ¯®àâ
out (PORT_Y),a ; ¢®ááâ. ¯®àâ
fdraw4__: ld a,0
out (SLOT0),a ; ¢®ááâ. ¯®àâ
ei
ret
fdraw_axel: ld a,c
out (89h),a
out (PORT_Y),a
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,40 ; ¤«¨­  áâப¨
ld b,b ; ¢ëª«.  ªá¥«ì
@ -2406,7 +2406,7 @@ fdraw_axel: ld a,c
push bc
ld b,40 ; ¤«¨­  áâப¨
ld a,c
fdraw0__: out (89h),a
fdraw0__: out (PORT_Y),a
fdraw1__: ld (hl),color_panel ; 1Bh  âਡãâ
inc a
djnz fdraw0__

View File

@ -53,7 +53,7 @@ get_free_space:
; ‚ëç¨á«¨âì ᢮¡. ¬¥áâ® ­  MS-DOS ¤¨áª¥
;----------------------------------------------------
ld c,3 ; ¨­ä  ® ¤¨áª¥
rst 10h
rst ToDSS
jr nc,get_free_ok
ld bc,0
ld e,c

261
CORE/_CORE_.ASM Normal file
View File

@ -0,0 +1,261 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; •í­¤«ë áâà ­¨æ ¬¥­¥¤¦¥à 
id_block: db -1 ; ¤¥áªà¨¯â®à ¢ë¤¥«. ¡«®ª  ¯ ¬ïâ¨
;
page_sys_screen: db -1 ; +0 á¨áâ. íªà ­, +2800h ¤ ­­ë¥ user-menu
page_dial_screen: db -1 ; ¡ãä¥à á®åà. ¤¨ «. ®ª®­ ¨ ¢¥àâ. ¬¥­î
page_left_dir: db -1 ; ᯨ᮪ «¥¢®© ¯ ­¥«¨
page_right_dir: db -1 ; ᯨ᮪ ¯à ¢®© ¯ ­¥«¨
page_manager: db -1 ; ®á­. ª®¤ ¬¥­¥¤¦¥à 
page_module0: db -1 ; ¤à ©¢¥àë ª« ¢ë, ¬ë誨, ¤¨ «. ª®¤ á ®¡à ¡.
page_module1: db -1 ; ®¯¨á â¥«¨ ¯ ­¥«¥©
page_spec: db -1 ; áâà ­¨æ  à §¡®à  ᯥª-ä㭪権
page_viewer: db -1 ; áâà ­¨æ  ¢ìî¥à 
;
;db -1
db 0 ; á⮯-¡ ©â
;
DSS_PAGE: db -1 ; á®åà. ¯®àâ 82h
port_E2: db -1 ; á®åà. ¯®àâ 0E2h
port_89: db -1 ; á®åà. ¯®àâ 89h
;
lastdrive: db 'B'-'A' ; ¯®á«¥¤­¨© ¤¨áª ¢ á¨á⥬¥ (0..25)
;-------------------------------------------------
; ‚ë§®¢ „Ž‘-à¥áâ àâ 
;-------------------------------------------------
int10: PUSH AF
di
ld a,(DSS_PAGE) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
POP AF
rst ToDSS
int__: PUSH AF
di
ld a,(page_module0)
out (SLOT0),a ; ¢®ááâ. áâà. ¤à ©¢¥à®¢ ª« ¢ë, ¬ë誨
ei
POP AF
ret
;-------------------------------------------------
; ‚ë§®¢ RST 18h
;-------------------------------------------------
int18: PUSH AF
di
ld a,(DSS_PAGE) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
POP AF
rst ToDSS.DRV
jr int__
;-------------------------------------------------
; ‚ë§®¢ RST 10h ¨§ ᯥª-áâà ­¨æë
;-------------------------------------------------
alt10: PUSH AF
di
ld a,(DSS_PAGE) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
POP AF
rst ToDSS
alt__: PUSH AF
di
ld a,(page_spec)
out (SLOT0),a ; ¢®ááâ. áâà.
ei
POP AF
ret
;-------------------------------------------------
; ‚ë§®¢ RST 18h ¨§ ᯥª-áâà ­¨æë
;-------------------------------------------------
alt18: PUSH AF
di
ld a,(DSS_PAGE) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
POP AF
rst ToDSS.DRV
jr alt__
;-----------------------------------------------------------------------
INCLUDE 'fview_core.asm' ; ¯à®æ¥¤ãàë ¢ë室  ¨§ £«ï¤¥«ª¨
;-----------------------------------------------------------------------
; à ¡®ç¨© ¡ãä¥à ”Œ
work_buffer: ds 512
ds 80
stack: ; á⥪ ”Œ
begin: ; ã§­ âì boot-¤¨áª á¨á⥬ë
ld bc,0009h
rst ToDSS
add a,"A"
ld (ccp_name),a ; launch.asm
; ¨­¨æ. ­®¬¥à  áâà ­¨æ ¢ áâàãªâãà å ¯ ­¥«¥©
ld a,(page_left_dir)
ld (cash_left_dir),a
ld a,(page_right_dir)
ld (cash_right_dir),a
; ¢ª«. ¢ #4000 áâà. ”Œ
ld a,(page_module1)
out (SLOT1),a
; á®åà. ⥪. ¤¨áª
ld c,2
rst ToDSS
ld (save_disk),a
; á®åà. ⥪ã騩 ¯ãâì
ld hl,save_path
ld c,1Eh
rst ToDSS
include 'shell.asm' ; ä ©«¥à
include 'fillstr.asm' ; § ¯®«­¥­¨¥ áâப¨ ä ©«¥à 
include 'event.asm' ; ç⥭¨¥ ᮡë⨩
include 'mouse.asm' ; ¬ë誠
include 'keybar.asm' ; key-¡ à
include 'clock.asm' ; ç áë ¯ ­¥«¥©
include 'setup.asm' ; ç⥭¨¥/§ ¯¨áì ini-ä ©« , mnu-ä ©«
include 'space.asm' ; ᢮¡. ®¡ê¥¬ ¤¨áª 
include 'hilight.asm' ; ¯®¤á¢¥âª  ä ©«®¢
include 'readdsk.asm' ; ç⥭¨¥ ­®¢®© ¯ ¯ª¨
include 'enter.asm' ; ®¡à ¡®âª  ­ ¦ â¨ï <Enter>
include 'launch.asm' ; § ¯ã᪠䠩«®¢
include 'pos.asm' ; ¯®§¨æ. 㪠§ â¥«ï ¯®á«¥ ᬥ­ë ᯨ᪠
include 'utils.asm' ; ¢á¯®¬. ¯à®æ¥¤ãàë
include 'copy.asm' ; ª®¯¨à®¢ ­¨¥ ä ©«®¢
include 'info.asm' ; info-०¨¬ ¯ ­¥«¨
include 'qview.asm' ; qview-०¨¬ ¯ ­¥«¨
include 'mkdir.asm' ; á®§¤ ­¨¥ ¯ ¯ª¨ (F7)
include 'delete.asm' ; 㤠«¥­¨¥ ä ©« /¯ ¯ª¨ (F8)
include 'rename.asm' ; ¯¥à¥¨¬¥­®¢ ­¨¥ ä ©«  (F6)
;include 'mod2/debug.asm'
; <20>¥¦¨¬ à ¡®âë ¢ìî¥à 
viewer_mode: db 0 ; 0=®¡ëç­ë©, 1=¯ ­¥«ì­ë©
attr_record: db 0 ;  âਡãâ ⥪. § ¯¨á¨ ᯨ᪠ ª â «®£ 
del_confirm: db true ; ä« £ ¯®¤â¢. 㤠«¥­¨ï ä ©«®¢/¯ ¯®ª
flag_del_non_empty:
db true ; ä« £ ¯®¤â¢. 㤠«¥­¨ï ­¥ ¯ãáâëå ¯ ¯®ª
move_home_end: db false ; ä« £ ®âà ¡®âª¨ Home/End ¯à¨ ®âªà. ¯ ­¥«ïå
enable_mnu_file:db false ; ä« £ ­ «¨ç¨ï mnu-ä ©« 
;-------------------------------------------------
; ‘â ­¤ àâ­ë© ¢ë室 ¢ „Ž‘
;-------------------------------------------------
exit: ld a,b
ld (return_code+1),a ; á®åà. ª®¤ ¢®§¢à â 
; ¢®ááâ. „Ž‘-áâà ­¨æã
di
ld a,(DSS_PAGE)
out (SLOT0),a
ei
; ¯®«®¦. á¨áâ. ¬ë誨 ¯® ¬¥áâ­®¬ã ¤à ©¢¥àã
Xcoord+1: ld hl,0 ; ª®®à¤¨­ â  X (0..639)
Ycoord+1: ld de,0 ; ª®®à¤¨­ â  Y (0..255)
ld c,4 ; ãáâ. ¯®«®¦. ¬ë誨
rst 30h
; ãáâ. á¨áâ. ¤¨áª ¨ ¯ãâì  ªâ. ¯ ­¥«¨
call set_path_from_activ_panel
; ¢®ááâ. §­ ç¥­¨¥ ¯®àâ 
ld a,(port_89)
out (PORT_Y),a
; ¢®ááâ. á¨áâ. íªà ­
ld c,0B3h
ld a,(page_sys_screen) ; áâà ­¨æ  ¡ãä¥à 
call screen__
; ¢®ááâ. §­ ç¥­¨¥ ¯®àâ 
ld a,(port_E2)
out (SLOT3),a
; ¢®ááâ. ¯®«®¦. ªãàá®à  á¨áâ. íªà ­ 
sys_cursor_coords:
ld de,0
ld c,84h
rst 08h
; ®á¢®¡. ¢ë¤¥«¥­­ë© ¡«®ª ¯ ¬ïâ¨
ld a,(id_block)
ld c,3Eh
rst ToDSS
; ®ç¨áâ¨âì ¡ãä¥à á¨áâ. ª« ¢ë
ld bc,3135h
rst ToDSS
return_code: ld b,0 ; ª®¤ ¢®§¢à â 
ld c,41h
rst ToDSS
ret
;-----------------------------------------------------------
; ‘®åà ­¨âì/¢®ááâ. ¯®«­ë© á¨á⥬­ë© íªà ­
;-----------------------------------------------------------
; ¢å®¤: C = #B2/#B3 á®åà./¢®ááâ. íªà ­
; A = ­®¬¥à áâà ­¨æë ¡ãä¥à  ®ª­ 
screen__: ld hl,2050h ; ¢ëá®â /è¨à¨­  íªà ­ 
scrn1__: ld ix,0C000h ;  ¤à¥á ¡ãä¥à  ¤«ï ¤ ­­ëå
scrn2__: ld b,a
xor a ; ¨¤¥­â¨ä. £«®¡. ®ª­ 
ld e,a ; X ¯®«®¦.
ld d,a ; Y ¯®«®¦.
di
rst 08h
ei
ret
;-----------------------------------------------------------
; ‘®åà ­¨âì/¢®ááâ. á¨á⥬­ë© íªà ­ ¤® ª®¬. áâப¨
;-----------------------------------------------------------
; ¢å®¤: C = #B2/#B3 á®åà./¢®ááâ. íªà ­
; A = ­®¬¥à áâà ­¨æë ¡ãä¥à  ®ª­  (page_sys_screen)
screen1__: ld hl,1E50h ; ¢ëá®â /è¨à¨­  íªà ­ 
jr scrn1__
;-----------------------------------------------------------
; ‘®åà ­¨âì/¢®ááâ. ¯®«­ë© íªà ­ ¬¥­¥¤¦¥à 
;-----------------------------------------------------------
; in: c=#B2/#B3 á®åà./¢®ááâ. íªà ­
; a=­®¬¥à áâà ­¨æë ¡ãä¥à  ®ª­  (page_sys_screen)
screen2__: ld hl,2050h ; ¢ëá®â /è¨à¨­  íªà ­ 
ld ix,0C000h+1400h ; ­ ç «® íªà ­  ¬¥­¥¤¦¥à 
jr scrn2__
;-----------------------------------------------------------
; <20>¥áâ àâ ¤«ï Œ¥­î ¨ ¤¨ «. ®ª®­
;-----------------------------------------------------------
scrn4__: ld b,a
scrn5__: xor a ; ¨¤¥­â¨ä. £«®¡. ®ª­ 
di
rst 08h
ei
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

389
FM.ASM
View File

@ -1,245 +1,252 @@
; ‡ £àã§ç¨ª ”Œ
include 'shared_includes/constants/Sp2000.inc'
include 'shared_includes/constants/bios_equ.inc'
include 'shared_includes/constants/dss_equ.inc'
include 'version.inc' ; ¢¥àá¨ï ¬¥­¥¤¦¥à 
INCLUDE 'shared_includes/constants/Sp2000.inc'
INCLUDE 'shared_includes/constants/bios_equ.inc'
INCLUDE 'shared_includes/constants/dss_equ.inc'
INCLUDE 'version.inc' ; ¢¥àá¨ï ¬¥­¥¤¦¥à 
; include 'fm.exp' ; ᮤ¥à¦¨â "@label" ¬¥âª¨
org 4100h
db "EXE" ; exe ID
db 0 ; exe ¢¥àá¨ï
dw 512 ; 512, ¬«. ᬥé. ª®¤ 
dw 0 ; áâ. ᬥé. ª®¤ 
dw end_loader - entry ; end-beg, ¯¥à¢¨ç­ë© § £àã§ç¨ª
dw 0,0,0 ; १¥à¢
dw entry ;  ¤à¥á § £à㧪¨ ª®¤ 
dw start ;  ¤à¥á ¯¥à¥¤ ç¨ ã¯à ¢«¥­¨ï
dw start ;  ¤à¥á á⥪ 
ds 490
ORG 0
EXE_HEADER:
.START: DB "EXE" ; exe ID
DB 0 ; exe ¢¥àá¨ï
DWORD EXE_HEADER.SIZE ; ᬥé. ª®¤ 
DW end_loader-entry ; end-beg, ¯¥à¢¨ç­ë© § £àã§ç¨ª
DW 0,0,0 ; १¥à¢
DW entry ;  ¤à¥á § £à㧪¨ ª®¤ 
DW start ;  ¤à¥á ¯¥à¥¤ ç¨ ã¯à ¢«¥­¨ï
DW start ;  ¤à¥á á⥪ 
;
BLOCK 10,' ' ; ‚ëà ¢­¨¢ ­¨¥ ¤«ï ªà á¨¢®£® ®â®¡à ¦¥­¨ï ¢ HEX
BYTE 'The File Manager'
BYTE ' v ',str_version,' '
BYTE 'by Vasil Ivanov '
BYTE '(c) 2005-2007. '
BYTE ' Modified by '
BYTE ' Anatoliy '
BYTE ' Belyanskiy, '
BYTE ' Sprinter Team '
BYTE ' 2025. '
.END: ;
.SIZE EQU .END - .START
entry: db "The File Manager, Version "
db major_version + "0"
db "."
db (minor_version / 10) + "0"
db (minor_version % 10) + "0"
db " Copyright (c) 2005-2007 by Vasil Ivanov."
;
ORG #4100
entry: include "fview/viewer.asm"
tmp_sp_buffer: BLOCK 64 ; ¤«ï á⥪ 
start:
; ®ç¨áâ¨âì ¡ãä¥à ª« ¢ë
ld bc,3135h
rst ToDSS
di
; ‡ £àã§ç¨ª ”Œ
start: ; ®ç¨áâ¨âì ¡ãä¥à ª« ¢ë
LD BC,Dss.ScanKey*256+Dss.K_CLEAR
RST ToDSS
DI
; á®åà. §­ ç¥­¨¥ ¯®à⮢
in a,(SLOT0)
ld (port_82__),a
in a,(SLOT3)
ld (port_E2__),a
in a,(89h)
ld (port_89__),a
IN A,(SLOT0)
LD (DSS_PAGE__),A
IN A,(SLOT3)
LD (port_E2__),A
IN A,(PORT_Y)
LD (port_89__),A
; á®åà. ¤¥áªà¨¯â®à ¬¥­¥¤¦¥à 
ld a,(ix-3)
ld (hFile),a
LD A,(ix-3)
LD (hFile),A
; § ªàëâì ᯥª. íªà ­
ld a,0C0h
out (89h),a
; ¢ë¤¥«¨âì 10 áâà. ¯ ¬ïâ¨
ld bc,0A3Dh
rst ToDSS
jr nc,ok_malloc ; Ok
ld a,(hFile) ; ⥪. ¤¥áªà¨¯â®à
ld c,12h ; § ªàëâì exe-ä ©«
rst ToDSS
ld hl,no_space ; ­¥â ¯ ¬ïâ¨
abort: ei
ld c,5Ch
rst ToDSS
ld bc,0FF41h ; ¢ë室 ¢ „Ž‘
rst ToDSS
ret
ok_malloc: ld (id_block__),a ; åí­¤« ¢ë¤¥«. ¡«®ª  ¯ ¬ïâ¨
LD A,#C0
OUT (PORT_Y),A
; ¢ë¤¥«¨âì 9 áâà. ¯ ¬ïâ¨
LD BC,9*256+Dss.GetMem
RST ToDSS
JR NC,ok_malloc ; Ok
LD A,(hFile) ; ⥪. ¤¥áªà¨¯â®à
LD C,Dss.Close ; § ªàëâì exe-ä ©«
RST ToDSS
LD HL,no_space ; ­¥â ¯ ¬ïâ¨
LD BC,DSS_Error.sys.NOT_ENOUGH_MEMORY*256 + Dss.Exit
abort: EI
PUSH BC
LD C,Dss.PChars
RST ToDSS
POP BC
.loop: RST ToDSS ; ¢ë室 ¢ „Ž‘
DI
HALT
;
ok_malloc: LD (id_block__),A ; åí­¤« ¢ë¤¥«. ¡«®ª  ¯ ¬ïâ¨
; ¯®«ãç¨âì ᯨ᮪ áâà ­¨æ
ld hl,page_sys_screen__
ld c,0C5h
rst 08h
LD HL,page_sys_screen__
LD C,BIOS.GetMemBlkPages
RST ToBIOS
; ã§­ âì ¢¥àá¨î „Ž‘
ld c,0
rst ToDSS
ld hl,013Ch ; 1.60
and a
sbc hl,de
call nc,setup_znak ; =< 1.60 ãáâ. §­ ª®£¥­. 19h/1Ah
LD C,Dss.Version
RST ToDSS
LD HL,1*256 + 71 - 1 ; 1.71
AND A
SBC HL,DE
LD HL,old_dss ; ­¥â ¯ ¬ïâ¨
LD BC,DSS_Error.sys.COMMON_ERROR*256 + Dss.Exit
JR NC,abort ; =< 1.71 - ®è¨¡ª 
; à á¯ ª®¢ âì ¬®¤ã«ì 1
;...
; § £à㧨âì ®á­. ª®¤ ¬¥­¥¤¦¥à 
ld a,(page_manager__) ; à ¡®â ¥â ¢ #8000
out (SLOT3),a
ld hl,0C000h
ld de,len_modul1 ; à §¬¥à ¬®¤ã«ï 1
ld a,(hFile)
ld c,13h
rst ToDSS
jp c,read_error
LD A,(page_manager__) ; à ¡®â ¥â ¢ #8000
OUT (SLOT3),A
LD HL,SLOT3.MEM_ADDR
LD DE,FM_CORE_BLK.Size ; à §¬¥à ¬®¤ã«ï 1
LD A,(hFile)
LD C,Dss.Read
RST ToDSS
JP C,read_error
; à á¯ ª®¢ âì ¬®¤ã«ì 2
;...
; § £à. ¤à ©¢¥àë ª« ¢ë/¬ë誨, ®¡à ¡®â稪¨ ®¡ê¥ªâ®¢ ¨ ¤¨ «. ®ª®­
ld a,(page_module0__) ; à ¡®â ¥â ¢ #0000
out (SLOT3),a
ld hl,0C000h
ld de,len_modul2 ; à §¬¥à ¬®¤ã«ï 2
ld a,(hFile)
ld c,13h
rst ToDSS
jp c,read_error
ld a,(page_spec__)
ld (0C02Ah),a ; á®åà. ᯥª-áâà ­¨æã (vectors.asm)
LD A,(page_module0__) ; à ¡®â ¥â ¢ #0000
OUT (SLOT3),A
LD HL,SLOT3.MEM_ADDR
LD DE,FM_MOD_0_BLK.Size ; à §¬¥à ¬®¤ã«ï 2
LD A,(hFile)
LD C,Dss.Read
RST ToDSS
JP C,read_error
LD A,(page_spec__)
LD (0C02Ah),A ; á®åà. ᯥª-áâà ­¨æã (vectors.asm)
; à á¯ ª®¢ âì ¬®¤ã«ì 3
;...
; § £à㧨âì ®¯¨á â¥«¨ ¯ ­¥«¥©
ld a,(page_module1__)
out (SLOT3),a
ld hl,0C000h
ld de,len_modul3 ; à §¬¥à ¬®¤ã«ï 3
ld a,(hFile)
ld c,13h
rst ToDSS
jp c,read_error
LD A,(page_module1__)
OUT (SLOT3),A
LD HL,SLOT3.MEM_ADDR
LD DE,FM_MOD_1_BLK.Size ; à §¬¥à ¬®¤ã«ï 3
LD A,(hFile)
LD C,Dss.Read
RST ToDSS
JP C,read_error
; à á¯ ª®¢ âì ¬®¤ã«ì 4
;...
; § £à㧨âì ᯥª-ª®¤
ld a,(page_spec__)
out (SLOT3),a
ld hl,0C000h
ld de,len_modul4 ; à §¬¥à ¬®¤ã«ï 4
ld a,(hFile)
ld c,13h
rst ToDSS
jp c,read_error
ld a,(page_module0__)
ld (0C02Ah),a ; á®åà. ä¬-áâà ­¨æã (vect.asm)
LD A,(page_spec__)
OUT (SLOT3),A
LD HL,SLOT3.MEM_ADDR
LD DE,FM_SPEC_BLK.Size ; à §¬¥à ¬®¤ã«ï 4
LD A,(hFile)
LD C,Dss.Read
RST ToDSS
JP C,read_error
LD A,(page_module0__)
LD (VECT.rst28.page+SLOT3.MEM_ADDR),A ; á®åà. ä¬-áâà ­¨æã (vect.asm)
; à á¯ ª®¢ âì ¬®¤ã«ì 5
;...
; § £à㧨âì ¢ìî¥à
ld a,(page_viewer__)
out (SLOT3),a
ld hl,0C000h
ld de,len_modul5 ; à §¬¥à ¢ìî¥à 
ld a,(hFile)
ld c,13h
rst ToDSS
jp c,read_error
; LD A,(page_viewer__)
; OUT (SLOT3),A
; LD HL,SLOT3.MEM_ADDR
; LD DE,FM_FVIEW_BLK.Size ; à §¬¥à ¢ìî¥à 
; LD A,(hFile)
; LD C,Dss.Read
; RST ToDSS
; JP C,read_error
IN A,(SLOT1)
LD (page_viewer__),A
;
; § ªàëâì exe-ä ©« ¬¥­¥¤¦¥à 
hFile+1: ld a,0 ; á®åà. ¤¥áªà¨¯â®à ¬¥­¥¤¦¥à 
ld c,12h
rst ToDSS
hFile+1: LD A,0 ; á®åà. ¤¥áªà¨¯â®à ¬¥­¥¤¦¥à 
LD C,Dss.Close
RST ToDSS
; ¢ª«. ¢ #8000 ®á­. ª®¤ ”Œ
ld a,(page_manager__)
out (SLOT2),a
LD A,(page_manager__)
OUT (SLOT2),A
; ¯¥à¥ª ç âì åí­¤«ë áâà ­¨æ
ld hl,id_block__ ; ®âªã¤ 
ld de,id_block ; ªã¤ 
ld bc,pages_end - id_block__
ldir
LD HL,id_block__ ; ®âªã¤ 
LD DE,id_block ; ªã¤ 
LD BC,pages_end - id_block__
LDIR
;
ld sp,stack ; á⥪ ”Œ
LD SP,stack ; á⥪ ”Œ
; ­¥ ¬¥­ïâì ¯®«®¦. ¬ë誨 ”Œ
ld c,3 ; ã§­ âì áâ âãá ¬ë誨
rst 30h
ld (Xcoord),hl ; ª®®à¤¨­ â  X (0..639)
ld (Ycoord),de ; ª®®à¤¨­ â  Y (0..255)
jp 8000h ; ¯¥à¥©â¨ ­  ¯à®£à ¬¬ã
LD C,Dss.Mouse.ReadState ; ã§­ âì áâ âãá ¬ë誨
RST ToDSS.Mouse
LD (Xcoord),HL ; ª®®à¤¨­ â  X (0..639)
LD (Ycoord),DE ; ª®®à¤¨­ â  Y (0..255)
JP begin ; ¯¥à¥©â¨ ­  ¯à®£à ¬¬ã
; •í­¤«ë áâà ­¨æ ¬¥­¥¤¦¥à 
id_block__: db -1 ; ¤¥áªà¨¯â®à ¢ë¤¥«. ¡«®ª  ¯ ¬ïâ¨
id_block__: DB -1 ; ¤¥áªà¨¯â®à ¢ë¤¥«. ¡«®ª  ¯ ¬ïâ¨
page_sys_screen__: DB -1 ; +#0000 á¨áâ.íªà ­, +#1400 íªà ­ ”Œ
page_dial_screen__: DB -1 ; ¡ãä¥à á®åà. ¤¨ «. ®ª®­ ¨ ¢¥àâ. ¬¥­î
page_left_dir__: DB -1 ; ᯨ᮪ «¥¢®© ¯ ­¥«¨
page_right_dir__: DB -1 ; ᯨ᮪ ¯à ¢®© ¯ ­¥«¨
page_manager__: DB -1 ; ®á­. ª®¤ ¬¥­¥¤¦¥à 
page_module0__: DB -1 ; ¤à ©¢¥àë ª« ¢ë, ¬ë誨, ¤¨ «. ª®¤ á ®¡à ¡.
page_module1__: DB -1 ; ®¯¨á â¥«¨ ¯ ­¥«¥©
page_spec__: DB -1 ; áâà ­¨æ  à §¡®à  ᯥª-ä㭪権
page_viewer__: DB -1 ; áâà ­¨æ  ¢ìî¥à 
;DB -1
DB 0 ; á⮯-¡ ©â
;
page_sys_screen__:
db -1 ; +#0000 á¨áâ.íªà ­, +#1400 íªà ­ ”Œ
page_dial_screen__:
db -1 ; ¡ãä¥à á®åà. ¤¨ «. ®ª®­ ¨ ¢¥àâ. ¬¥­î
page_left_dir__:
db -1 ; ᯨ᮪ «¥¢®© ¯ ­¥«¨
page_right_dir__:
db -1 ; ᯨ᮪ ¯à ¢®© ¯ ­¥«¨
page_manager__:
db -1 ; ®á­. ª®¤ ¬¥­¥¤¦¥à 
page_module0__: db -1 ; ¤à ©¢¥àë ª« ¢ë, ¬ë誨, ¤¨ «. ª®¤ á ®¡à ¡.
page_module1__: db -1 ; ®¯¨á â¥«¨ ¯ ­¥«¥©
page_spec__: db -1 ; áâà ­¨æ  à §¡®à  ᯥª-ä㭪権
page_viewer__: db -1 ; áâà ­¨æ  ¢ìî¥à 
db -1
db 0 ; á⮯-¡ ©â
;
port_82__: db -1 ; á®åà. ¯®àâ 82h
port_E2__: db -1 ; á®åà. ¯®àâ 0E2h
port_89__: db -1 ; á®åà. ¯®àâ 89h
DSS_PAGE__: DB -1 ; á®åà. ¯®àâ 82h
port_E2__: DB -1 ; á®åà. ¯®àâ 0E2h
port_89__: DB -1 ; á®åà. ¯®àâ 89h
pages_end:
; ®è¨¡ª  § £à㧪¨ ¬¥­¥¤¦¥à 
read_error: ld a,(id_block__)
ld c,3Eh ; ®á¢®¡. ¢ë¤¥«. ¡«®ª ¯ ¬ïâ¨
rst ToDSS
ld a,(hFile)
ld c,12h ; § ªàëâì ä ©«
rst ToDSS
ld hl,load_err
jp abort
read_error: LD (.number),A
LD A,(id_block__)
LD C,Dss.FreeMem ; ®á¢®¡. ¢ë¤¥«. ¡«®ª ¯ ¬ïâ¨
RST ToDSS
LD A,(hFile)
LD C,Dss.Close ; § ªàëâì ä ©«
RST ToDSS
LD HL,load_err
.number+1: LD B,0
LD C,Dss.Exit
JP abort
no_space: db "Not enough memory to run program !",0Dh,0Ah,0
load_err: db "Disk loading error !",0Dh,0Ah,0
no_space: DZ "Not enough memory to run FM!\r\n"
load_err: DZ "Disk loading error!\r\n"
old_dss: DZ "FM requires DSS version 1.71 or higher!\r\n"
; <20>®¤£®â®¢¨âì §­ ª®£¥­. ¤«ï á®äâ. ªãàá®à 
setup_znak: ld a,(page_manager__) ; ¢à¥¬. ¡ãä¥à
out (SLOT2),a
; ¯®«ãç¨âì á¨áâ. §­ ª®£¥­.
ld de,8000h ; ¡ãä¥à ¤«ï 2048 ¡ ©â ¤ ­­ëå
push de
ld c,0B8h ; ¯®«ãç¨âì §­ ª®£¥­.
rst 08h
; § ¯®«­¨âì ª®¤®¬ 0FFh 2 ­¨¦­¨¥ «¨­¨¨
ld hl,8000h+(2048-(2*256)) ; ¯®á«¥¤­¨¥ 512 ¡ ©â
ld bc,511
ld a,1Ah ; ­®¬¥à §­ ª®£¥­.
call fill_data_font
pop hl
; § ¯®«­¨âì ®áâ «ì­ë¥ 6 «¨­¨© (¯®«­ë© ¡«®ª)
ld bc,2048-513
ld a,19h ; ­®¬¥à §­ ª®£¥­.
; <20> áâனª  §­ ª®£¥­. ¨ ¥£® ॣ¨áâà æ¨ï
; ¢å®¤: a=­®¬¥à §­ ª®£¥­.
; hl=¤ ­­ë¥
; bc=à §¬¥à ¤ ­­ëå
fill_data_font: ld e,l
ld d,h
ld (hl),-1
inc de
ldir
ld de,8000h ; §­ ª®£¥­.
ld c,0B6h ; ãáâ. §­ ª®£¥­.
rst 08h
ret
; ; <20>®¤£®â®¢¨âì §­ ª®£¥­. ¤«ï á®äâ. ªãàá®à 
; setup_znak: LD A,(page_manager__) ; ¢à¥¬. ¡ãä¥à
; OUT (SLOT2),A
; ; ¯®«ãç¨âì á¨áâ. §­ ª®£¥­.
; LD DE,SLOT2.MEM_ADDR ; ¡ãä¥à ¤«ï 2048 ¡ ©â ¤ ­­ëå
; PUSH DE
; LD C,BIOS.WIN_GET_ZG ; ¯®«ãç¨âì §­ ª®£¥­.
; RST ToBIOS
; ; § ¯®«­¨âì ª®¤®¬ 0FFh 2 ­¨¦­¨¥ «¨­¨¨
; LD HL,SLOT2.MEM_ADDR+(2048-(2*256)) ; ¯®á«¥¤­¨¥ 512 ¡ ©â
; LD BC,511
; LD A,1Ah ; ­®¬¥à §­ ª®£¥­.
; CALL fill_data_font
; POP HL
; ; § ¯®«­¨âì ®áâ «ì­ë¥ 6 «¨­¨© (¯®«­ë© ¡«®ª)
; LD BC,2048-513
; LD A,19h ; ­®¬¥à §­ ª®£¥­.
; ; <20> áâனª  §­ ª®£¥­. ¨ ¥£® ॣ¨áâà æ¨ï
; ; ¢å®¤: a=­®¬¥à §­ ª®£¥­.
; ; hl=¤ ­­ë¥
; ; bc=à §¬¥à ¤ ­­ëå
; fill_data_font: LD E,L
; LD D,H
; LD (HL),-1
; INC DE
; LDIR
; LD DE,SLOT2.MEM_ADDR ; §­ ª®£¥­.
; LD C,BIOS.WIN_SET_ZG ; ãáâ. §­ ª®£¥­.
; RST ToBIOS
; RET
;-------------------------------------------------
; ¤¥¯ ª¥à
;...
; Š®­¥æ § £àã§ç¨ª 
end_loader:
@ -250,4 +257,4 @@ end_loader:
; Š®¤ ¬¥­¥¤¦¥à 
;-------------------------------------------------
; incbin 'Build/fm.bin'
include 'main.asm'
INCLUDE 'main.asm'

View File

@ -128,14 +128,14 @@ hsize__:dw 0 ;
;===========================================================
A837F: ld a,1 ; ­  ç⥭¨¥
ld c,11h ; ®âªàëâì ä ©«
rst 10h
rst ToDSS
ret c
ld (file_handle),a ; ¤¥áªà. ä ©« 
ld hl,0
ld ix,0
ld a,(file_handle) ; ¤¥áªà. ä ©« 
ld bc,0215h ; 㪠§ â¥«ì ­  ª®­¥æ ä ©« 
rst 10h
rst ToDSS
ld (hsize__),hl ; áâ.à §àï¤ à §¬¥à  ä ©« 
ld (lsize__),ix ; ¬«.à §àï¤
call get_mem_file ; à áç. ¨ ¢ë¤¥«. áâà ­¨æë ¯®¤ ä ©«
@ -144,7 +144,7 @@ A837F: ld a,1 ;
close_file:
ld a,(file_handle) ; ¤¥áªà. ä ©« 
ld c,12h ; § ªàëâì ä ©«
rst 10h
rst ToDSS
ret
;
A83B3: call close_file
@ -197,7 +197,7 @@ A83ED: ld hl,0
ld ix,0
ld a,(file_handle) ; ¤¥áªà. ä ©« 
ld bc,0015h ; 㪠§ â¥«ì ­  ­ ç «® ä ©« 
rst 10h
rst ToDSS
ld a,(id_pages) ; ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
ld b,0 ; «®£. ­®¬¥à áâà ­¨æë ¢ ¡«®ª¥
ld c,0C4h ; ¯®«ãç¨âì 䨧. ­®¬¥à áâà ­¨æë ¢ ¡«®ª¥
@ -209,7 +209,7 @@ A8404: push af
ld de,4000h ; ᪮«ìª®
ld a,(file_handle) ; ¤¥áªà.
ld c,13h ; ç¨â âì ä ©«
rst 10h
rst ToDSS
pop bc
ret c ; ®è¨¡ª  ç⥭¨ï
inc a ; a=#FF (¯à®ç¨â ­® ¬¥­ì襥 ç¨á«® ¡ ©â)
@ -337,7 +337,7 @@ main_viewer:
; ®ç¨áâ¨âì ®á­. ®ª­®
ld de,0 ; Y/X ¯®«®¦. ®ª­ 
ld hl,2050h ; Y/X à §¬¥àë
ld a,(color_array+39) ; 1Bh  âਡãâ
ld a,(color_array + 39) ; 1Bh  âਡãâ
ld b,a
ld c,89h ; ®ç¨á⪠ ®ª­ 
rst 08h
@ -353,7 +353,7 @@ main_viewer:
rst 08h
; ®ªà á¨âì ¢¥àå. áâ â. áâபã
ld hl,TA215 ; ¡ãä¥à áâப¨
ld a,(color_array+41) ; 30h  âਡãâ
ld a,(color_array + 41) ; 30h  âਡãâ
ld e,a
loc04: ld b,len_string ; 80 ¤«¨­  áâப¨
ld c,85h ; ¢ë¢¥á⨠áâபã á  âਡã⮬
@ -1389,7 +1389,7 @@ AB593: ld a,(iy+5)
jp z,AB5A0
ld a,(color_array+42) ; 1Eh  âਡãâ
ld e,a
ld a,"" ; "<"
ld a,#1B ; ?
AB5A0: inc hl
push hl
ld bc,0181h ; ¢ë¢¥á⨠1 ᨬ¢®« á  âਡã⮬
@ -1412,7 +1412,7 @@ loc30: cp len_string+1 ; 80+1
jp c,AB5C2
ld a,(color_array+42) ; 1Eh  âਡãâ
ld e,a
ld c,1Ah ; "->"
ld c,#1A ; ?
AB5C2: ld a,c
ld bc,0181h ; ¢ë¢¥á⨠1 ᨬ¢®« á  âਡã⮬
rst 08h

21
FVIEW/Viewer.asm Normal file
View File

@ -0,0 +1,21 @@
;===========================================================
; <09>®¤£à㦠¥¬ë© Œ®¤ã«ì 4. ‚ìî¥à
;===========================================================
; ¯®¤ª«. ­  ¢à¥¬ï ¢ë§®¢  ¢ìî¥à 
;
DISP #4100
FM_FVIEW_BLK.Start EQU $
include "fview.asm" ; ¢ìî¥à
include "msfview.asm" ; ᮡëâ¨ï ¬ë誨
include "setview.asm" ; ­ áâனª  ¢ìî¥à 
include "chfont.asm" ; win-1251, koi8-r ª®¤®¢ë¥ â ¡«¨æë
include "fview.z80" ; ®¯¨á â¥«ì ®ª­  "Reading file..."
FM_FVIEW_BLK:
.End EQU $
.Size EQU .End - .Start
ENT
;
DISPLAY "FVIEW ",/H,FM_FVIEW_BLK.Start," ",/H,FM_FVIEW_BLK.End," ",/A,FM_FVIEW_BLK.Size
;=======================================================================

478
MAIN.ASM
View File

@ -8,8 +8,7 @@
; <20>ਠ᪠­¨à®¢ ­¨¨ ¯ ¯ª¨ (¯à®æ¥¤ãà  ScanTree), ¤«ï ¢à¥¬. ¡ãä¥à  ¢ë¤¥«ï¥âáï
; 1 áâà ­¨æ  ¯ ¬ïâ¨. <20>®á«¥ ®âà ¡®âª¨ ¯à®æ¥¤ãàë, áâà ­¨æ  ®á¢®¡®¦¤ ¥âáï.
;
;
; include 'shared_includes/constants/Sp2000.inc'
EDEPTH equ 36 ; ᫨誮¬ ¡®«ìè ï ¢«®¦. ¯ ¯®ª ¨«¨ >= 1024 ¯ ¯®ª
EUABORT equ 37 ; User abort (®¯¥à æ¨ï ¯à¥à¢ ­  ¯®«ì§®¢ â¥«¥¬)
@ -17,19 +16,24 @@ EUABORT equ 37 ; User abort (
max_len_comline equ 126;254 ; ¬ ªá. ¤«¨­  ª®¬-áâப¨ (¡®«ìè¥ ­¥ ¤¥« âì)
history_size equ 128;256 ; à §¬¥à history-¡ãä¥à 
; €¤à¥á  ᥪ権 ¢à¥¬. ¬ áᨢ  梥⮢ ¢ ¡ãä¥à¥
;tmp_color_list equ work_buffer + 511 - len_color_array ; ­ ç «® ¢à¥¬. ¬ áᨢ 
;color_list2 equ tmp_color_list + col_lst1
;color_list3 equ color_list2 + col_lst2
;color_list4 equ color_list3 + col_lst3
;color_list5 equ color_list4 + col_lst4
;color_list6 equ color_list5 + col_lst5
;color_list7 equ color_list6 + col_lst6
;color_list8 equ color_list7 + col_lst7
;color_list9 equ color_list8 + col_lst8
;color_list10 equ color_list9 + col_lst9
;color_list11 equ color_list10 + col_lst10
tmp_color_list equ work_buffer + 511 - len_color_array ; ­ ç «® ¢à¥¬. ¬ áᨢ 
color_list2 equ tmp_color_list + col_lst1
color_list3 equ color_list2 + col_lst2
color_list4 equ color_list3 + col_lst3
color_list5 equ color_list4 + col_lst4
color_list6 equ color_list5 + col_lst5
color_list7 equ color_list6 + col_lst6
color_list8 equ color_list7 + col_lst7
color_list9 equ color_list8 + col_lst8
color_list10 equ color_list9 + col_lst9
color_list11 equ color_list10 + col_lst10
;len_modul1 equ FM_CORE_BLK.Size ; à §¬¥à ®á­. ª®¤  (#8000)
;len_modul2 equ FM_MOD_0_BLK.Size ; à §¬¥à ¬®¤ã«ï (#0000)
;len_modul3 equ FM_MOD_1_BLK.Size ; à §¬¥à ¬®¤ã«ï (#4000)
;len_modul4 equ FM_SPEC_BLK.Size ; à §¬¥à ᯥª-¬®¤ã«ï (#0000)
;len_modul5 equ FM_FVIEW_BLK.Size ; à §¬¥à ¢ìî¥à  (#4000)
;---- –¢¥â  ¬¥­¥¤¦¥à  ----
@ -97,341 +101,75 @@ color_spec equ 1Ch ; ᯥ
ORG 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; include 'version.inc' ; ¢¥àá¨ï ¬¥­¥¤¦¥à 
; export id_block
; export len_modul1
; export len_modul2
; export len_modul3
; export len_modul4
; export len_modul5
; export stack
; export Xcoord
; export Ycoord
org 8000h
mod0: ; ¬¥âª  ¤«ï ¢ëç¨á«. à §¬¥à 
;////////////////////////////////////////////////////////////////////////
;=======================================================================
; Žá­®¢­®© Œ®¤ã«ì CORE
;=======================================================================
; ¢á¥£¤  ¯®¤ª«î祭
;
; ’®çª  ¢å®¤  ¢ ¬¥­¥¤¦¥à
DISP #8000
FM_CORE_BLK.Start EQU $
include "core/_core_.asm"
FM_CORE_BLK:
.End EQU $
.Size EQU .End - .Start
ENT
;
;////////////////////////////////////////////////////////////////////////
jp begin
; •í­¤«ë áâà ­¨æ ¬¥­¥¤¦¥à 
id_block: db -1 ; ¤¥áªà¨¯â®à ¢ë¤¥«. ¡«®ª  ¯ ¬ïâ¨
;
page_sys_screen:db -1 ; +0 á¨áâ. íªà ­, +2800h ¤ ­­ë¥ user-menu
page_dial_screen:
db -1 ; ¡ãä¥à á®åà. ¤¨ «. ®ª®­ ¨ ¢¥àâ. ¬¥­î
page_left_dir: db -1 ; ᯨ᮪ «¥¢®© ¯ ­¥«¨
page_right_dir: db -1 ; ᯨ᮪ ¯à ¢®© ¯ ­¥«¨
page_manager: db -1 ; ®á­. ª®¤ ¬¥­¥¤¦¥à 
page_module0: db -1 ; ¤à ©¢¥àë ª« ¢ë, ¬ë誨, ¤¨ «. ª®¤ á ®¡à ¡.
page_module1: db -1 ; ®¯¨á â¥«¨ ¯ ­¥«¥©
page_spec: db -1 ; áâà ­¨æ  à §¡®à  ᯥª-ä㭪権
page_viewer: db -1 ; áâà ­¨æ  ¢ìî¥à 
db -1
db 0 ; á⮯-¡ ©â
;
port_82: db -1 ; á®åà. ¯®àâ 82h
port_E2: db -1 ; á®åà. ¯®àâ 0E2h
port_89: db -1 ; á®åà. ¯®àâ 89h
lastdrive: db 'B'-'A' ; ¯®á«¥¤­¨© ¤¨áª ¢ á¨á⥬¥ (0..25)
;-------------------------------------------------
; ‚ë§®¢ „Ž‘-à¥áâ àâ 
;-------------------------------------------------
int10: ex af,af'
di
ld a,(port_82) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
ex af,af'
rst 10h
int__: ex af,af'
di
ld a,(page_module0)
out (SLOT0),a ; ¢®ááâ. áâà. ¤à ©¢¥à®¢ ª« ¢ë, ¬ë誨
ei
ex af,af'
ret
;-------------------------------------------------
; ‚ë§®¢ RST 18h
;-------------------------------------------------
int18: ex af,af'
di
ld a,(port_82) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
ex af,af'
rst 18h
jr int__
;-------------------------------------------------
; ‚ë§®¢ RST 10h ¨§ ᯥª-áâà ­¨æë
;-------------------------------------------------
alt10: ex af,af'
di
ld a,(port_82) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
ex af,af'
rst 10h
alt__: ex af,af'
di
ld a,(page_spec)
out (SLOT0),a ; ¢®ááâ. áâà.
ei
ex af,af'
ret
;-------------------------------------------------
; ‚ë§®¢ RST 18h ¨§ ᯥª-áâà ­¨æë
;-------------------------------------------------
alt18: ex af,af'
di
ld a,(port_82) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
ex af,af'
rst 18h
jr alt__
include 'fview/fview.inc' ; ¯à®æ¥¤ãàë ¢ë室  ¨§ £«ï¤¥«ª¨
DISPLAY "CORE ",/H,FM_CORE_BLK.Start," ",/H,FM_CORE_BLK.End," ",/A,FM_CORE_BLK.Size
;=======================================================================
; à ¡®ç¨© ¡ãä¥à ”Œ
work_buffer: ds 512
ds 80
stack: ; á⥪ ”Œ
begin:
; ã§­ âì boot-¤¨áª á¨á⥬ë
ld bc,0009h
rst 10h
add a,"A"
ld (ccp_name),a ; launch.asm
; ¨­¨æ. ­®¬¥à  áâà ­¨æ ¢ áâàãªâãà å ¯ ­¥«¥©
ld a,(page_left_dir)
ld (cash_left_dir),a
ld a,(page_right_dir)
ld (cash_right_dir),a
; ¢ª«. ¢ #4000 áâà. ”Œ
ld a,(page_module1)
out (SLOT1),a
; á®åà. ⥪. ¤¨áª
ld c,2
rst 10h
ld (save_disk),a
; á®åà. ⥪ã騩 ¯ãâì
ld hl,save_path
ld c,1Eh
rst 10h
include 'shell.asm' ; ä ©«¥à
include 'mod2/fillstr.asm' ; § ¯®«­¥­¨¥ áâப¨ ä ©«¥à 
include 'mod2/event.asm' ; ç⥭¨¥ ᮡë⨩
include 'mod2/mouse.asm' ; ¬ë誠
include 'mod2/keybar.asm' ; key-¡ à
include 'mod2/clock.asm' ; ç áë ¯ ­¥«¥©
include 'mod2/setup.asm' ; ç⥭¨¥/§ ¯¨áì ini-ä ©« , mnu-ä ©«
include 'mod2/space.asm' ; ᢮¡. ®¡ê¥¬ ¤¨áª 
include 'mod2/hilight.asm' ; ¯®¤á¢¥âª  ä ©«®¢
include 'mod2/readdsk.asm' ; ç⥭¨¥ ­®¢®© ¯ ¯ª¨
include 'mod2/enter.asm' ; ®¡à ¡®âª  ­ ¦ â¨ï <Enter>
include 'mod2/launch.asm' ; § ¯ã᪠䠩«®¢
include 'mod2/pos.asm' ; ¯®§¨æ. 㪠§ â¥«ï ¯®á«¥ ᬥ­ë ᯨ᪠
include 'mod2/utils.asm' ; ¢á¯®¬. ¯à®æ¥¤ãàë
include 'mod2/copy.asm' ; ª®¯¨à®¢ ­¨¥ ä ©«®¢
include 'mod2/info.asm' ; info-०¨¬ ¯ ­¥«¨
include 'mod2/qview.asm' ; qview-०¨¬ ¯ ­¥«¨
include 'mod2/mkdir.asm' ; á®§¤ ­¨¥ ¯ ¯ª¨ (F7)
include 'mod2/delete.asm' ; 㤠«¥­¨¥ ä ©« /¯ ¯ª¨ (F8)
include 'mod2/rename.asm' ; ¯¥à¥¨¬¥­®¢ ­¨¥ ä ©«  (F6)
include 'mod2/debug.asm'
; <20>¥¦¨¬ à ¡®âë ¢ìî¥à 
viewer_mode: db 0 ; 0=®¡ëç­ë©, 1=¯ ­¥«ì­ë©
attr_record: db 0 ;  âਡãâ ⥪. § ¯¨á¨ ᯨ᪠ ª â «®£ 
del_confirm: db true ; ä« £ ¯®¤â¢. 㤠«¥­¨ï ä ©«®¢/¯ ¯®ª
flag_del_non_empty:
db true ; ä« £ ¯®¤â¢. 㤠«¥­¨ï ­¥ ¯ãáâëå ¯ ¯®ª
move_home_end: db false ; ä« £ ®âà ¡®âª¨ Home/End ¯à¨ ®âªà. ¯ ­¥«ïå
enable_mnu_file:db false ; ä« £ ­ «¨ç¨ï mnu-ä ©« 
;-------------------------------------------------
; ‘â ­¤ àâ­ë© ¢ë室 ¢ „Ž‘
;-------------------------------------------------
exit: ld a,b
ld (return_code+1),a ; á®åà. ª®¤ ¢®§¢à â 
; ¢®ááâ. „Ž‘-áâà ­¨æã
di
ld a,(port_82)
out (SLOT0),a
ei
; ¯®«®¦. á¨áâ. ¬ë誨 ¯® ¬¥áâ­®¬ã ¤à ©¢¥àã
Xcoord+1: ld hl,0 ; ª®®à¤¨­ â  X (0..639)
Ycoord+1: ld de,0 ; ª®®à¤¨­ â  Y (0..255)
ld c,4 ; ãáâ. ¯®«®¦. ¬ë誨
rst 30h
; ãáâ. á¨áâ. ¤¨áª ¨ ¯ãâì  ªâ. ¯ ­¥«¨
call set_path_from_activ_panel
; ¢®ááâ. §­ ç¥­¨¥ ¯®àâ 
ld a,(port_89)
out (89h),a
; ¢®ááâ. á¨áâ. íªà ­
ld c,0B3h
ld a,(page_sys_screen) ; áâà ­¨æ  ¡ãä¥à 
call screen__
; ¢®ááâ. §­ ç¥­¨¥ ¯®àâ 
ld a,(port_E2)
out (SLOT3),a
; ¢®ááâ. ¯®«®¦. ªãàá®à  á¨áâ. íªà ­ 
sys_cursor_coords:
ld de,0
ld c,84h
rst 08h
; ®á¢®¡. ¢ë¤¥«¥­­ë© ¡«®ª ¯ ¬ïâ¨
ld a,(id_block)
ld c,3Eh
rst 10h
; ®ç¨áâ¨âì ¡ãä¥à á¨áâ. ª« ¢ë
ld bc,3135h
rst 10h
return_code: ld b,0 ; ª®¤ ¢®§¢à â 
ld c,41h
rst 10h
ret
;-----------------------------------------------------------
; ‘®åà ­¨âì/¢®ááâ. ¯®«­ë© á¨á⥬­ë© íªà ­
;-----------------------------------------------------------
; ¢å®¤: C = #B2/#B3 á®åà./¢®ááâ. íªà ­
; A = ­®¬¥à áâà ­¨æë ¡ãä¥à  ®ª­ 
screen__: ld hl,2050h ; ¢ëá®â /è¨à¨­  íªà ­ 
scrn1__: ld ix,0C000h ;  ¤à¥á ¡ãä¥à  ¤«ï ¤ ­­ëå
scrn2__: ld b,a
xor a ; ¨¤¥­â¨ä. £«®¡. ®ª­ 
ld e,a ; X ¯®«®¦.
ld d,a ; Y ¯®«®¦.
di
rst 08h
ei
ret
;-----------------------------------------------------------
; ‘®åà ­¨âì/¢®ááâ. á¨á⥬­ë© íªà ­ ¤® ª®¬. áâப¨
;-----------------------------------------------------------
; ¢å®¤: C = #B2/#B3 á®åà./¢®ááâ. íªà ­
; A = ­®¬¥à áâà ­¨æë ¡ãä¥à  ®ª­  (page_sys_screen)
screen1__: ld hl,1E50h ; ¢ëá®â /è¨à¨­  íªà ­ 
jr scrn1__
;-----------------------------------------------------------
; ‘®åà ­¨âì/¢®ááâ. ¯®«­ë© íªà ­ ¬¥­¥¤¦¥à 
;-----------------------------------------------------------
; in: c=#B2/#B3 á®åà./¢®ááâ. íªà ­
; a=­®¬¥à áâà ­¨æë ¡ãä¥à  ®ª­  (page_sys_screen)
screen2__: ld hl,2050h ; ¢ëá®â /è¨à¨­  íªà ­ 
ld ix,0C000h+1400h ; ­ ç «® íªà ­  ¬¥­¥¤¦¥à 
jr scrn2__
;-----------------------------------------------------------
; <20>¥áâ àâ ¤«ï Œ¥­î ¨ ¤¨ «. ®ª®­
;-----------------------------------------------------------
scrn4__: ld b,a
scrn5__: xor a ; ¨¤¥­â¨ä. £«®¡. ®ª­ 
di
rst 08h
ei
ret
mod1: ; ¬¥âª  ¤«ï ¢ëç¨á«. à §¬¥à 
;===========================================================
; <09>®¤£à㦠¥¬ë© Œ®¤ã«ì 1
;=======================================================================
; <09>®¤£à㦠¥¬ë© Œ®¤ã«ì 0
; „à ©¢¥àë ª« ¢ë, ¬ë誨, ®¡à ¡®â稪 ¤¨ «. ®ª®­, tv-®¡ê¥ªâë
;===========================================================
;=======================================================================
; ¢á¥£¤  ¯®¤ª«î祭 (ªà®¬¥ ¢ë§®¢®¢ rst 10h, rst 18h)
;
DISP 0
phase 0000h
FM_MOD_0_BLK.Start EQU $
include 'mod0/vectors.asm' ; ¢¥ªâ®àë ¯à¥à뢠­¨©
include 'mod0/keybdrv.asm' ; ¤à ©¢¥à ª« ¢ë
include 'mod0/cursor.asm' ; ¯à®£à ¬¬­ë© ªãàá®à
include 'mod0/mousedrv.asm' ; ¤à ©¢¥à ¬ë誨
include 'objs/dialog.asm' ; ®¡à ¡®â稪 ¤¨ «. ®ª®­
include 'objs/button.asm' ; ®¡ê¥ªâ ~Button~
include 'objs/inline.asm' ; ®¡ê¥ªâë ~Input Line~, ~Inp Line~
include 'objs/listbox.asm' ; ®¡ê¥ªâ ~List Box~
include 'objs/radio.asm' ; ®¡ê¥ªâë ~Radio Button~, ~Check Box~
include 'objs/process.asm' ; ®¡ê¥ªâ ~Process Line~
include 'objs/pallete.asm' ; ®¡ê¥ªâ ~Pallete~
include 'objs/dialog1.asm' ; ®¡ê¥ªâë ~Text Line~, ~Horiz. Line~
include 'objs/hmenu.asm' ; Œ¥­î: "Horizontal", "Pull", "Select disk"
include 'objs/umenu.asm' ; ¢ë§®¢ User-Menu
include 'mod0/objs/dialog.asm' ; ®¡à ¡®â稪 ¤¨ «. ®ª®­
include 'mod0/objs/button.asm' ; ®¡ê¥ªâ ~Button~
include 'mod0/objs/inline.asm' ; ®¡ê¥ªâë ~Input Line~, ~Inp Line~
include 'mod0/objs/listbox.asm' ; ®¡ê¥ªâ ~List Box~
include 'mod0/objs/radio.asm' ; ®¡ê¥ªâë ~Radio Button~, ~Check Box~
include 'mod0/objs/process.asm' ; ®¡ê¥ªâ ~Process Line~
include 'mod0/objs/pallete.asm' ; ®¡ê¥ªâ ~Pallete~
include 'mod0/objs/dialog1.asm' ; ®¡ê¥ªâë ~Text Line~, ~Horiz. Line~
include 'mod0/objs/hmenu.asm' ; Œ¥­î: "Horizontal", "Pull", "Select disk"
include 'mod0/objs/umenu.asm' ; ¢ë§®¢ User-Menu
include 'mod0/chdisk.asm' ; ¢ë§®¢ ¬¥­î Select Disk
include 'mod0/listdrv.asm' ; ¨­¨æ. ᯨ᮪ ⨯®¢ ¤¨áª®¢
include 'mod0/usermenu.asm' ; ¯®¤£®â®¢ª  Œ¥­î <20>®«ì§®¢ â¥«ï
FM_MOD_0_BLK:
.End EQU $
.Size EQU .End - .Start
dephase
ENT
;
DISPLAY "MODULE 0 ",/H,FM_MOD_0_BLK.Start," ",/H,FM_MOD_0_BLK.End," ",/A,FM_MOD_0_BLK.Size
;=======================================================================
mod2:
;===========================================================
; <09>®¤£à㦠¥¬ë© Œ®¤ã«ì 2
;===========================================================
; ¯®áâ®ï­­® ¢ª«î祭
phase 4000h
;=======================================================================
; <09>®¤£à㦠¥¬ë© Œ®¤ã«ì 1
;=======================================================================
; ¯®áâ®ï­­® ¢ª«î祭, ªà®¬¥ ¢ë§®¢  ¢ìî¥à 
;
DISP #4000
FM_MOD_1_BLK.Start EQU $
include 'mod1/buffers.asm' ; à ¡. ¡ãä¥àë ®¡ê¥ªâ®¢
include 'mod1/comline.asm' ; ª®¬-áâப 
include 'mod1/width.asm' ; ®£à ­. ¤«¨­ë ¯ã⨠¯ ­¥«¨
@ -461,61 +199,59 @@ mod2:
include 'mod1/mkdir.z80' ; ®¯¨á â¥«ì ®ª­  á®§¤ ­¨ï ¯ ¯ª¨
include 'mod1/delete.z80' ; ®¯¨á â¥«ì ®ª­  㤠«¥­¨¥ ä ©« /¯ ¯ª¨
include 'mod1/rename.z80' ; ®¯¨á â¥«ì ®ª­  ¯¥à¥¨¬¥­. ä ©« 
dephase
FM_MOD_1_BLK:
.End EQU $
.Size EQU .End - .Start
mod3:
ENT
;
DISPLAY "MODULE 1 ",/H,FM_MOD_1_BLK.Start," ",/H,FM_MOD_1_BLK.End," ",/A,FM_MOD_1_BLK.Size
;=======================================================================
;===========================================================
;=======================================================================
; <09>®¤£à㦠¥¬ë© Œ®¤ã«ì 3. ‘¯¥ª-ª®¤
;===========================================================
;=======================================================================
; ¯®¤ª«. ­  ¢à¥¬ï ¢ë§®¢  ᯥª-ä㭪権
;
phase 0000h
DISP 0
include 'spec/vect.asm' ; ¢¥ªâ®àë
include 'spec/funcs.asm' ; ᯥª-ä㭪樨
FM_SPEC_BLK.Start EQU $
include 'spec_fn/vect.asm' ; ¢¥ªâ®àë
include 'spec_fn/funcs.asm' ; ᯥª-ä㭪樨
FM_SPEC_BLK:
.End EQU $
.Size EQU .End - .Start
dephase
mod4:
;===========================================================
; <09>®¤£à㦠¥¬ë© Œ®¤ã«ì 4. ‚ìî¥à
;===========================================================
; ¯®¤ª«. ­  ¢à¥¬ï ¢ë§®¢  ¢ìî¥à 
phase 4000h
include 'fview/fview.asm' ; ¢ìî¥à
include 'fview/msfview.asm' ; ᮡëâ¨ï ¬ë誨
include 'fview/setview.asm' ; ­ áâனª  ¢ìî¥à 
include 'fview/chfont.asm' ; win-1251, koi8-r ª®¤®¢ë¥ â ¡«¨æë
include 'fview/fview.z80' ; ®¯¨á â¥«ì ®ª­  "Reading file..."
dephase
ENT
;
DISPLAY "SPEC_FN ",/H,FM_SPEC_BLK.Start," ",/H,FM_SPEC_BLK.End," ",/A,FM_SPEC_BLK.Size
;=======================================================================
; €¤à¥á  ᥪ権 ¢à¥¬. ¬ áᨢ  梥⮢ ¢ ¡ãä¥à¥
tmp_color_list equ work_buffer + 511 - len_color_array ; ­ ç «® ¢à¥¬. ¬ áᨢ 
color_list2 equ tmp_color_list + col_lst1
color_list3 equ color_list2 + col_lst2
color_list4 equ color_list3 + col_lst3
color_list5 equ color_list4 + col_lst4
color_list6 equ color_list5 + col_lst5
color_list7 equ color_list6 + col_lst6
color_list8 equ color_list7 + col_lst7
color_list9 equ color_list8 + col_lst8
color_list10 equ color_list9 + col_lst9
color_list11 equ color_list10 + col_lst10
; ;===========================================================
; ; <09>®¤£à㦠¥¬ë© Œ®¤ã«ì 4. ‚ìî¥à
; ;===========================================================
; ; ¯®¤ª«. ­  ¢à¥¬ï ¢ë§®¢  ¢ìî¥à 
; ;
; DISP #4000
; FM_FVIEW_BLK.Start EQU $
; include 'fview/fview.asm' ; ¢ìî¥à
; include 'fview/msfview.asm' ; ᮡëâ¨ï ¬ë誨
; include 'fview/setview.asm' ; ­ áâனª  ¢ìî¥à 
; include 'fview/chfont.asm' ; win-1251, koi8-r ª®¤®¢ë¥ â ¡«¨æë
; include 'fview/fview.z80' ; ®¯¨á â¥«ì ®ª­  "Reading file..."
; FM_FVIEW_BLK:
; .End EQU $
; .Size EQU .End - .Start
addr_id_block equ id_block ;  ¤à¥á ï祩ª¨ id_block
len_modul1 equ mod1 - mod0 ; à §¬¥à ®á­. ª®¤  (#8000)
len_modul2 equ mod2 - mod1 ; à §¬¥à ¬®¤ã«ï (#0000)
len_modul3 equ mod3 - mod2 ; à §¬¥à ¬®¤ã«ï (#4000)
len_modul4 equ mod4 - mod3 ; à §¬¥à ᯥª-¬®¤ã«ï (#0000)
len_modul5 equ $ - mod4 ; à §¬¥à ¢ìî¥à  (#4000)
; ENT
; ;
; DISPLAY "FVIEW ",/H,FM_FVIEW_BLK.Start," ",/H,FM_FVIEW_BLK.End," ",/A,FM_FVIEW_BLK.Size
; ;=======================================================================

View File

@ -1,10 +1,14 @@
CursorPos:
dw 1E00h ; Y/X ¯®§¨ז¨ן ×דאב®א  (ם×א ­. ×®®א¤.)
;-----------------------------------------------------------
; Šãàá®à ®¡ê¥ªâ  "Input Line" ¨ ä㭪樨 "Command Line"
;-----------------------------------------------------------
INS_CUR_ZG: EQU #9B ; 19h
CURSOR_ZG: EQU #5B ; 1Ah
NORM_ZG: EQU #1B
;
CursorPos:
dw 1E00h ; Y/X ¯®§¨æ¨ï ªãàá®à  (íªà ­. ª®®à¤.)
;
;
PrnILCr:db 3Eh ; ld a,..
Timer: db 1 ; ¯ ã§  ¬¨£ ­¨ï
dec a
@ -22,15 +26,15 @@ PILCurs:ld de,(CursorPos) ; Y/X
xor a
ld c,0B4h ; ¯®«ãç¨âì ᨬ¢®«
rst 08h
ld bc,1BB5h ; b=§­ ×®£¥­., ב=ב¨¬¢®« ­  ם×א ­
ld bc,NORM_ZG*256 + #B5 ; b=§­ ª®£¥­., á=ᨬ¢®« ­  íªà ­
ld a,(Flag)
or a
jr z,curs__
ld b,1Ah ; ח¥אג 
ld b,CURSOR_ZG ; ç¥àâ 
ld a,(D0642) ; ä« £¨ ª« ¢ë
bit 1,a ; ¡¨â Ins
jr nz,$+4
ld b,19h ; <20>«®×
ld b,INS_CUR_ZG ; ¡«®ª
curs__: xor a ; ­®¬¥à ®ª­ 
rst 08h
ld a,1
@ -57,6 +61,6 @@ CursPos1:
xor a
rst 08h
xor a
ld bc,1BB5h ; ב¨¬¢®« ­  ם×א ­
ld bc,NORM_ZG*256 + #B5 ; ᨬ¢®« ­  íªà ­
rst 08h
ret

View File

@ -5,15 +5,15 @@
init_list_types_drives:
ld a,(disk) ; ¤¨áª  ªâ. ¯ ­¥«¨
ld c,1 ; ãáâ. ¤¨áª
rst 10h
rst ToDSS
jr nc,init_list_types_drv1
; ¨á¯. ­®¬¥à boot-¤¨áª 
ld bc,0009h
rst 10h
rst ToDSS
ld (disk),a
; ã§­ âì ­®¬¥à ¯®á«. ¤¨áª  ¢ á¨á⥬¥
ld c,1 ; ãáâ. ¤¨áª
rst 10h
rst ToDSS
init_list_types_drv1:
ld (lastdrive),a ; ¯®á«¥¤. ¤¨áª ¢ á¨á⥬¥ (0..25)
cp 1+1
@ -29,19 +29,19 @@ make_dlist_loop:
push bc
ld a,c ; ­®¬¥à ¤¨áª 
ld c,1 ; open device
rst 18h
rst ToDSS.DRV
pop bc
jr c,make_dlist_err
push bc
ld a,c
ld de,work_buffer ; ¡ãä¥à
ld c,4 ; get BPB
rst 18h
rst ToDSS.DRV
pop bc
jr c,make_dlist_err
ld a,c ; ­®¬¥à ¤¨áª 
ld c,2 ; close device
rst 18h
rst ToDSS.DRV
pop hl
pop bc
ld a,(work_buffer+21) ; ¡ ©â ä®à¬ â  ­®á¨â¥«ï

View File

@ -161,7 +161,7 @@ RefrMs1:call RestorM
; Restore Screen from Mouse
RestorM:ld de,(TempXY)
in a,(89h)
in a,(PORT_Y)
ld c,a
in a,(0E2h)
ld b,a
@ -178,7 +178,7 @@ RestorM:ld de,(TempXY)
and 80h
or 1
add a,e
out (89h),a
out (PORT_Y),a
inc l
inc l
ld a,(hl)
@ -187,7 +187,7 @@ RestorM:ld de,(TempXY)
ld a,b
out (0E2h),a
ld a,c
out (89h),a
out (PORT_Y),a
ret
; Put Text Mouse Cursor On Screen
@ -204,7 +204,7 @@ MousWrt:ld de,(Xcoord)
and 1Fh
ld d,a
ld (TempXY),de
in a,(89h)
in a,(PORT_Y)
ld c,a
in a,(0E2h)
ld b,a
@ -221,7 +221,7 @@ MousWrt:ld de,(Xcoord)
and 80h
or 1
add a,e
out (89h),a
out (PORT_Y),a
inc l
inc l
ld a,(hl)
@ -231,7 +231,7 @@ MousWrt:ld de,(Xcoord)
ld a,b
out (0E2h),a
ld a,c
out (89h),a
out (PORT_Y),a
ret
; <20>®«ãç¨âì ­®¢ãî ¨­ä®à¬ æ¨î ® ¬ë誥

View File

@ -7,13 +7,13 @@
db -1
; RST 08h. ‚ë§®¢ <20>¨®á 
push af
ld a,0 ; ¢ª«. <20>‡“ <20>¨®á  ¢ 0-¥ ®ª­®
out (7Ch),a
ld a,SYS_PORT.BIOS
out (SYS_PORT.ON),a
pop af
ret
db -1
; RST 10h. ‚ë§®¢ „Ž‘- 
jp int10 ; fm.asm
jp int10 ; Main.asm
db -1
db -1
db -1
@ -36,7 +36,7 @@
; RST 28h. ‚ë§®¢ ᯥª-ª®¤ 
push af
ld a,0 ; á®åà. page_spec
out (82h),a
out (SLOT0),a
pop af
ret
db -1

View File

@ -445,7 +445,7 @@ EvComComb:
jp z,alt_clear_history
; Enter
ld a,(format_mode) ; ⥪. ä®à¬ â ¯ ­¥«¨
and form_info+form_qview ; info, qview
and form_info + form_qview ; info, qview
jr nz,com_comb_ext
ld a,d
cp 28h+80h ; Ctrl+Enter, ¨¬ï/¯ãâì ¢ ª®¬-áâபã

View File

@ -25,7 +25,7 @@ max_depth equ 20+1 ;
ScanTree:
ld (tree_stack),sp
ld bc,3135h ; ®ç¨áâ¨âì ¡ãä¥à á¨áâ. ª« ¢ë
rst 10h
rst ToDSS
ld sp,work_buffer+512 ; á⥪ ¯à®æ¥¤ãàë
in a,(SLOT3)
ld (tree_page),a ; á®åà. ¯®àâ
@ -60,7 +60,7 @@ ScanTree:
tree_loop:
push hl ;  ¤à¥á áâ à®£® í«¥¬¥­â  (¯®á«¥ LoadDIR)
ld c,31h ; ®¯à®á á¨áâ. ª« ¢ë
rst 10h
rst ToDSS
call nz,abort_tree_scan ; ¢ë¢¥á⨠®ª­® "¯à¥àë¢. ®¯¥à æ¨¨"
pop hl
ld a,(depth_tree) ; ­®¬¥à ⥪. ã஢­ï ¢«®¦¥­¨©
@ -82,13 +82,13 @@ tree_depth_ok:
jr z,dirs_end ; ­¥â ¢«®¦¥­¨©, ¢¥à­ãâìáï ¢ ­ ç. ã஢¥­ì
ld (cur_tree_adr+1),hl ; ¨¬ï ¯ ¯ª¨ ⥪. ã஢­ï
ld c,1Dh ; ãáâ. ¯ãâì ­  ¯ ¯ªã ⥪. ã஢­ï
rst 10h
rst ToDSS
call scan_cur_level ; ᪠­¨à. ®¤­®£® ã஢­ï + á⮯ª  í«¥¬.
jr c,tree_loop ; ¥áâì ¯ ¯ª¨
; ¢¥à­ãâìáï ­  ¯à¥¤. ã஢¥­ì
dirs_end:
ld c,31h ; ®¯à®á á¨áâ. ª« ¢ë
rst 10h
rst ToDSS
call nz,abort_tree_scan ; ¢ë¢¥á⨠®ª­® "¯à¥àë¢. ®¯¥à æ¨¨"
pop hl ; ⥪. í«¥¬¥­â ¨§ á⥪ 
ld a,h
@ -109,7 +109,7 @@ dirs_end1:
dirs_end2:
ld hl,parent_level ; ".."
ld c,1Dh ; ãáâ. ¯ãâì
rst 10h
rst ToDSS
dirs_end3:
ld hl,depth_tree ; ­®¬¥à ⥪. ã஢­ï ¢«®¦¥­¨©
dec (hl)
@ -162,7 +162,7 @@ scan_cur_level:
push de
ld a,37h ; ¢á¥, ªà®¬¥ ¬¥âª¨ ⮬ 
ld bc,0119h ; f_first 8.3
rst 10h
rst ToDSS
pop hl
pop ix
jr c,scan_level_exit ; ­¥ ­ ©¤¥­®
@ -173,7 +173,7 @@ scan_level_loop:
ld de,work_buffer ; à ¡. ¡ãä¥à
push de
ld c,1Ah ; f_next
rst 10h
rst ToDSS
pop hl
pop ix
jr nc,scan_level_loop ; ­ § ¤ ¢ 横«
@ -292,7 +292,7 @@ ins_tree_item:
;-------------------------------------------------
abort_tree_scan:
ld bc,3135h ; ®ç¨áâ¨âì ¡ãä¥à á¨áâ. ª« ¢ë
rst 10h
rst ToDSS
ld hl,dial_abort ; ®¯¨á â¥«ì ®ª­ 
call DialogEr
cp evCommand ; ᮡë⨥ "ª®¬ ­¤ "

View File

@ -1,3 +1,4 @@
MODULE VECT
; rst 00h
jp $+3
db -1
@ -7,20 +8,20 @@
db -1
; RST 08h. BIOS calls
push af
ld a,0 ; ¢ª«. <20>‡“ <20>¨®á  ¢ 0-¥ ®ª­®
out (7Ch),a
ld a,SYS_PORT.BIOS
out (SYS_PORT.ON),a
pop af
ret
db 0C9h
; RST 10h. DOS calls
jp alt10 ; fm.asm
jp alt10 ; Main.asm
db -1
db -1
db -1
db -1
db -1
; RST 18h
jp alt18 ; fm.asm
jp alt18 ; Main.asm
db -1
db -1
db -1
@ -35,8 +36,9 @@
db -1
; rst 28h
rst28: push af
.page+1:
ld a,0 ; á®åà. page_module0
out (82h),a
out (SLOT0),a
pop af
jr spec_interrupt
; rst 30h
@ -99,13 +101,15 @@ rst28: push af
; ˆá¯®«ì§®¢ âì ᢮© á⥪.
;-------------------------------------------------
spec_interrupt:
ld (spc_stk+1),sp
ld (.spc_stk),sp
ld sp,spec_stack
call spec_funcs ; ®âà ¡®âª  ä㭪樨
spc_stk:ld sp,0
.spc_stk+1:
ld sp,0
jp rst28 ; ¢ª«. 0-î áâà. ä¬
ds 64
spec_stack: ; á⥪ ¡ ­ª¨
ENDMODULE

View File

@ -1,3 +1,5 @@
; ‚¥àá¨ï ¬¥­¥¤¦¥à 
major_version equ 0 ; áâ. æ¨äà 
minor_version equ 8 ; ¬«. æ¨äà 
minor_version equ 9 ; ¬«. æ¨äà 
DEFINE str_version '0.09'