Estex-DSS/DOS/DOS.ASM
2023-10-13 23:24:31 +10:00

7528 lines
144 KiB
NASM
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; <20>®á«¥¤­ïï । ªæ¨ï: 9.03.2007
;
; ¬¥âª¨ ## - ­¥ ïá­ë¥ ¬¥áâ  (§ ª®¬¬¥­â à¨­®)
; ¬¥âª¨ @@ - § ¬¥­  ®à¨£. ª®¤ 
;
; ¡ãä¥à D2E7C ¨«¨ T0400 â ª¦¥ ¨á¯. ¤«ï ¢¢®¤ /¢ë¢®¤  ä ©«®¢ëå ®¯¥à æ¨© ?
; <09>ਬ¥ç ­¨ï ¯® „Ž‘-ã
;
; ‚ëà ¢­¨¢ ­¨¥ ª®¤  ­  £à ­¨æã ¯à®¨á室¨â ¢ ¤¢ãå ¬¥áâ å: 0100h ¨ 0900h
; (¥áâì ­¥¬­®£® «¨è­¥£® ¬¥áâ ).
;
;
; „®¡ ¢«¥­¨ï:
; ~~~~~~~~~~~
; <20>®ï¢¨« áì ­®¢ ï äã­ªæ¨ï #08 DSS_RESCAN (<28>¥à¥áª ­¨à®¢ âì ¤¥¢ ©áë á¨á⥬ë).
;
; ”ã­ªæ¨ï #00 (¢¥àá¨ï „Ž‘) ¤®¯®«­. ¢®§¢à é ¥â ¢ BC ­®¬¥à ¡¨«¤  (0..999).
;
; „®¡ ¢«¥­ ª®¤ ®¡á«ã¦¨¢ ­¨ï ªãàá®à  (­  ¯à¥à뢠­¨ïå) ¨ ॣ¨áâà æ¨ï ¢ á¨á⥬¥
; §­ ª®£¥­¥à â®à®¢ ªãàá®à  á ­®¬¥à ¬¨ 1Ah/19h (ç¥àâ /¡«®ª). ”ã­ªæ¨ï #32 ¤®à -
; ¡®â ­  ¯®¤ ­®¢ë© ªãàá®à,   â ª¦¥ ­¥ ¢ë¢®¤¨â ascii-ª®¤ #00 (®â ªãàá. ª« ¢¨è
; ¨ â.¤.). <20>¥à¥ª«î祭¨¥ ä®à¬ë ªãàá®à  ª« ¢¨è¥© "Ins".
;
; ä㭪樨 #5F (ᨬ¢®« ­  ¯à¨­â¥à) ¤®¡ ¢«¥­® ®âá«¥¦¨¢ ­¨¥ ¡ ©â  á®áâ®ï­¨ï
; ¯à¨­â¥à  (7..3 ¡¨âë). <20>ਠ®è¨¡ª¥, äã­ªæ¨ï ¢®§¢à é ¥â ¡ ©â á®áâ®ï­¨ï,   ­¥
; ¯¥ç â ¥¬ë© ᨬ¢®«, ª ª ¢ ä¨à¬¥­­®© ¢¥àᨨ.
;
; ;„®¡ ¢«¥­  äã­ªæ¨ï #0C (tmp_filename)
;
;
;
; ˆá¯à ¢«¥­¨ï:
; ~~~~~~~~~~~~
; 1) ®â«¨ç¨¨ ®â ®à¨£¨­ « , ä㭪樨 0Ah/0Bh (Create file/New create file)
; ¯¥à¥¤ á®§¤ ­¨¥¬ ä ©«  ¯à®¢¥àïîâ ­  ¯¥à¥¯®«­¥­¨¥ â ¡«¨æã ᢮¡®¤­ëå
; ¤¥áªà¨¯â®à®¢.
; 2) “¡à ­® ä¨à¬¥­­®¥ ®£à ­¨ç¥­¨¥ ¬ ªá. ¤«¨­ë áâப¨ ¯¥à¥¬¥­­®© ®ªà㦥­¨ï
; ¢ 32 ᨬ¢®«  ¨ ­¥ª®àà¥ªâ­ ï ®âà ¡®âª  ä㭪樨 #46 (¢ ª®¬ ­¤ å "path",
; "set"). ’¥¯¥àì ¬ ªá. ¤«¨­  áâப¨ 255 ᨬ¢®«®¢.
;
; 3) ˆá¯à ¢«¥­  ä¨à¬¥­­ ï ®è¨¡ª , ¯à¨ ª®â®à®© ¯à®¨á室¨«® § ¢¨á ­¨¥
; á¨á⥬ë (­¥¯à¥¤áª §ã¥¬®¥ ¯®¢¥¤¥­¨¥) ¯à¨ ¯à¥¢ë襭¨¨ ¬ ªá. ç¨á« 
; ®âªàëâëå ¤¥áªà¨¯â®à®¢ (ä㭪樨 search_handle, release_handle).
;
; 4) ˆá¯à ¢«¥­  ä¨à¬¥­­ ï ®è¨¡ª , ¨§-§  ª®â®à®© ¢ ®¯¥à æ¨ïå á ä ©« ¬¨ ­¥
; ®âá«¥¦¨¢ «áï  âਡãâ "á¨á⥬­ë©".
;
; 5) ˆá¯à ¢«¥­® ­¥ ®âá«¥¦¨¢ ­¨¥  âਡãâ  ä ©«  "r/o" ¢ ä㭪樨 #0E (㤠«¥­¨¥
; ä ©« ).
;
; 6) <20>®ä¨ªá¥­ £«îª ¢ë¢®¤  ᯨ᪠ ä ©«®¢, ¥á«¨ ç¨á«® ä ©«®¢ ¢ ᯨ᪥
; ¯à¥¢ëè «® 509. ‘¥©ç á ᯨ᮪ ¢ë¢®¤¨âáï ª®à४⭮ ¨ ¬®¦¥â ᮤ¥à¦ âì
; ¬ ªá. 510 ä ©«®¢. …᫨ ç¨á«® ä ©«®¢ ¢ ª â «®£¥ ¯à¥¢ëè ¥â 510, â® ¢ë¤ ¥âáï
; ª®¤ ®è¨¡ª¨ 35 "᫨誮¬ ¬­®£® ä ©«®¢" (¤«ï ᯨ᪠ ª â «®£®¢ ¢ë¤ ¥âáï
; ª®¤ ®è¨¡ª¨ 7 "ª â «®£ ­¥ ­ ©¤¥­").
;
; 7) <20>®ä¨ªá¥­ £«îª "PrintScreen", ¢ë¤ ¢ ¢è¨© ᪥­-ª®¤ #C7 ª« ¢¨è¨ ¨
; ãáâ ­ ¢«¨¢ ¢è¨© ¡¨â LShift-a. ‚¥àá¨ï „Ž‘ áâ «  1.61.9.
;
;
;
; „Ž‘ ¢ë¤¥«ï¥âáï ¡«®ª ¨§ 3 ¡ ­®ª (äã­ª. Init_DOS), ¨á¯®«ì§ã¥¬ëå ¢ ª ç¥á⢥
; ¡ ­®ª à áè¨à¥­¨ï.
; ˆá¯. «®£. ­®¬¥à®¢ ¡ ­®ª:
; 0 - ªíè ᯨ᪠ ª â «®£ 
; 1 - ªíè FAT
; 2 - path-¯¥à¥¬¥­­ ï (§ ¯ã᪠䠩« ) ¨ ¤à. ¯¥à¥¬¥­­ë¥ ®ªà㦥­¨ï,   â ª¦¥
; á®åà ­¥­¨¥ ⥪áâ. íªà ­  ¯à¨ ¯¥à¥ª«î祭¨¨ ¢ £à ä. ०¨¬
; ;3 - áâà ­¨æ  áâàãªâãàë tsr-®¡à ¡®â稪®¢ (¬®ï)
;
;
;
;
;
include "dos.inc"
org 0000h
;RST 00h
L0000: jp Func_41 ; § £«ã誠 (§ ¢¥àè¨âì ¯à®£à ¬¬ã)
D0003: db -1 ; D0=ᨣ­ « ¯¥à¥¯®«­. ¡ãä¥à  ª« ¢ë, D1=ᨣ­ « ¯¥à¥ª«. ­   «ìâ.à áª« ¤ªã
db -1
db -1
db -1
db -1
;RST 08h, ‚ë§®¢ ä㭪権 <20>¨®á 
push af
ld a,0 ; ¢ª«. <20>‡“ <20>¨®á  ¢ 0-¥ ®ª­®
out (7Ch),a
pop af
ret
db -1
;RST 10h
jp A006C ; ¢¥ªâ®à „Ž‘- 
db -1
db -1
db -1
db -1
db -1
;RST 18h
jp drv_devices ; ¢¥ªâ®à ¤¨áª®¢ëå ãáâனáâ¢
db -1
db -1
db -1
db -1
db -1
;RST 20h, ᢮¡®¤­ë©
jp empty__ ; § £«ã誠
db -1
db -1
db -1
db -1
db -1
;RST 28h, ᢮¡®¤­ë©
jp empty__ ; § £«ã誠
db -1
db -1
db -1
db -1
db -1
;RST 30h
jp MOUSE_vector ; ¢¥ªâ®à ¬ë誨
db -1
db -1
db -1
db -1
db -1
;RST 38h
jp $+3
push af
ex af,af'
push af
push bc
push de
push hl
exx
push bc
push de
push hl
push ix
push iy
call keyb_scan ; ®¡à ¡®â稪 ª« ¢¨ âãàë
ld c,80h ; ®¡à ¡®â稪  ¯¯ à â­. ¯à¥àë¢. ¬ë誨
rst 30h
call cursor_interrupt ; ¢¥ªâ®à ®¡á«ã¦. ªãàá®à 
pop iy
pop ix
pop hl
pop de
pop bc
exx
pop hl
pop de
pop bc
pop af
ex af,af'
pop af
ei
reti
db -1 ;,-1,-1,-1 ; ­  £à ­¨æã 0064h
;0064h
retn
db 0 ; 0066h (®â ­¥¬ áª. ¯à¥à뢠­¨ï ¢ IM0)
db 0
db 0
jp $-5
;-------------------------------------------------
; „Ž‘-®¢ë© ¢¥ªâ®à
;-------------------------------------------------
A006C: push hl
ld l,c ; ­®¬¥à ª®¬ ­¤ë
ld h,T0200 / 256 ; 0200h..02FFh ¬ áᨢ ¬«.¡ ©â®¢  ¤à¥á®¢
ld c,(hl) ; § £à. ¬«.¡ ©â  ¤à¥á 
inc h ; 0300h..03FFh ¬ áᨢ áâ.¡ ©â®¢  ¤à¥á®¢
ld h,(hl) ; § £à. áâ.¡ ©â  ¤à¥á 
ld l,c ; £®â®¢ë©  ¤à¥á
ex (sp),hl ; ¢ á⥪ ¨
ret ; ¯¥à¥©â¨ ­  ­¥£®
; ‚¥ªâ®à ®¡á«ã¦¨¢ ­¨ï ªãàá®à 
cursor_interrupt:
ld a,(curs_inv_flag)
or a
ret z
;di ;¯®áâ ¢¨«
db 3Eh ; ld a,..
curs_timer:
db 1 ; ¯ ã§  ¬¨£ ­¨ï
dec a
call z,cursor
ld (curs_timer),a
ret
; <20> ç «® boot-ᥪâ®à 
T0076: ds 3 ; 3 ¡ ©â , ª®¤ ¯¥à¥å®¤  ­  § £àã§ç¨ª
; 8 ¡ ©â, OEM ID
db "DSS_"
db major_version + "0"
db "."
db (minor_version / 10) + "0"
db (minor_version % 10) + "0"
; BPB, 17 ¡ ©â
D0081: dw 512 ;+11 ; ¡ ©â®¢ ­  ᥪâ®à
D0083: db 2 ;+13 ; ᥪâ®à®¢ ­  ª« áâ¥à
dw 1 ;+14 ; § à¥§¥à¢. ᥪâ®à®¢
D0086: db 2 ;+16 ; ç¨á«® ª®¯¨© FAT-®¢
dw 112 ;+17 ; § ¯¨á¥© ¢ ª®à­¥
dw 1440 ;+19 ; # ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥
db 0F0h ;+21 ; ¡ ©â ä®à¬ â 
D008C: dw 2 ;+22 ; # ᥪâ®à®¢ ­  FAT
dw 9 ;+24 ; ᥪâ®à®¢ ­  áâ®à®­ã
D0090: dw 2 ;+26 ; ª®«-¢® áâ®à®­ ¤¨áª 
; extended boot-record
dw 0,0 ;+28,+30 ; áªàëâëå ᥪâ®à®¢
dw 0,0 ;+32,+34 ; ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥
dw 80h ;+36 ; 0x00 䨧. ­®¬¥à ¤¨áª 
db 29h ;+38 ; ᨣ­ âãà  à áè. boot-§ ¯¨á¨
dw 0,0 ;+39,+41 ; á¥à¨©­ë© ­®¬¥à ¤¨áª 
db "NO NAME "
T00AC: db "FAT16 "
;-----------------------------------------------------------
; <20> áâனª  §­ ª®£¥­¥à â®à  ªãàá®à  ç¥àâ®çª®©
;-----------------------------------------------------------
setup_znak:
in a,(0C2h)
push af ; á®åà. ¯®àâ
ld a,(list_dos_pages+2) ; 2-© «®£. ­®¬¥à áâà ­¨æë à áè. „Ž‘
out (0C2h),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; ; ­®¬¥à §­ ª®£¥­. "¡«®ª"
call fill_data_font
pop af
out (0C2h),a ; ¢®ááâ. ¯®àâ
ret
; <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
;ds 100h - $ ; ¢ë஢­¨âì ­  £à ­¨æã #0100
L0100 equ $+100h AND 0FF00h
ds L0100 - $
;0100h. Œ áᨢ ᯨ᪠ ¢ë¤¥«. áâà ­¨æ
list_pages:
ds 256
; Œ« ¤è¨¥ à §àï¤ë  ¤à¥á®¢ ä㭪権
T0200: db Init_DOS%256, Func_01%256, Func_02%256, Func_03%256 ; 00..03
db empty__%256, empty__%256, empty__%256, empty__%256 ; 04..07
db Func_08%256, Func_09%256, Func_0A%256, Func_0B%256 ; 08..0B
db Func_0C%256, empty__%256, Func_0E%256, empty__%256 ; 0C..0F
db Func_10%256, Func_11%256, Func_12%256, Func_13%256 ; 10..13
db Func_14%256, Func_15%256, Func_16%256, Func_17%256 ; 14..17
db Func_18%256, Func_19%256, Func_1A%256, Func_1B%256 ; 18..1B
db Func_1C%256, Func_1D%256, Func_1E%256, empty__%256 ; 1C..1F
db empty__%256, Func_21%256, Func_22%256, empty__%256 ; 20..23
db empty__%256, empty__%256, empty__%256, empty__%256 ; 24..27
db empty__%256, empty__%256, empty__%256, empty__%256 ; 28..2B
db empty__%256, empty__%256, empty__%256, empty__%256 ; 2C..2F
db Func_30%256, Func_31%256, Func_32%256, Func_33%256 ; 30..33
db empty__%256, Func_35%256, Func_36%256, Func_37%256 ; 34..37
db Func_38%256, Func_39%256, Func_3A%256, Func_3B%256 ; 38..3B
db Func_3C%256, Func_3D%256, Func_3E%256, Func_3F%256 ; 3C..3F
db Func_40%256, Func_41%256, Func_42%256, Func_43%256 ; 40..43
db Func_44%256, Func_45%256, Func_46%256, Func_47%256 ; 44..47
db empty__%256, empty__%256, empty__%256, empty__%256 ; 48..4B
db empty__%256, empty__%256, empty__%256, empty__%256 ; 4C..4F
db Func_50%256, Func_51%256, Func_52%256, Func_53%256 ; 50..53
db Func_54%256, Func_55%256, Func_56%256, Func_57%256 ; 54..57
db Func_58%256, Func_59%256, Func_5A%256, Func_5B%256 ; 58..5B
db Func_5C%256, empty__%256, empty__%256, Func_5F%256 ; 5C..5F
db empty__%256, empty__%256, empty__%256, empty__%256 ; 60..63
db empty__%256, empty__%256, empty__%256, empty__%256 ; 64..67
db A0000%256, A0000%256, A0000%256, A0000%256 ; 68..6B
db A0000%256, A0000%256, A0000%256, A0000%256 ; 6C..6F
db A0000%256, A0000%256, A0000%256, A0000%256 ; 70..73
db A0000%256, A0000%256, A0000%256, A0000%256 ; 74..77
db A0000%256, A0000%256, A0000%256, A0000%256 ; 78..7B
db A0000%256, A0000%256, A0000%256, A0000%256 ; 7C..7F
db A0000%256, A0000%256, A0000%256, A0000%256 ; 80..83
db A0000%256, A0000%256, A0000%256, A0000%256 ; 84..87
db A0000%256, A0000%256, A0000%256, A0000%256 ; 88..8B
db A0000%256, A0000%256, A0000%256, A0000%256 ; 8C..8F
db A0000%256, A0000%256, A0000%256, A0000%256 ; 90..93
db A0000%256, A0000%256, A0000%256, A0000%256 ; 94..97
db A0000%256, A0000%256, A0000%256, A0000%256 ; 98..9B
db A0000%256, A0000%256, A0000%256, A0000%256 ; 9C..9F
db A0000%256, A0000%256, A0000%256, A0000%256 ; A0..A3
db A0000%256, A0000%256, A0000%256, A0000%256 ; A4..A7
db A0000%256, A0000%256, A0000%256, A0000%256 ; A8..AB
db A0000%256, A0000%256, A0000%256, A0000%256 ; AC..AF
db A0000%256, A0000%256, A0000%256, A0000%256 ; B0..B3
db A0000%256, A0000%256, A0000%256, A0000%256 ; B4..B7
db A0000%256, A0000%256, A0000%256, A0000%256 ; B8..BB
db A0000%256, A0000%256, A0000%256, A0000%256 ; BC..BF
db A0000%256, A0000%256, A0000%256, A0000%256 ; C0..C3
db A0000%256, A0000%256, A0000%256, A0000%256 ; C4..C7
db A0000%256, A0000%256, A0000%256, A0000%256 ; C8..CB
db A0000%256, A0000%256, A0000%256, A0000%256 ; CC..CF
db A0000%256, A0000%256, A0000%256, A0000%256 ; D0..D3
db A0000%256, A0000%256, A0000%256, A0000%256 ; D4..D7
db A0000%256, A0000%256, A0000%256, A0000%256 ; D8..DB
db A0000%256, A0000%256, A0000%256, A0000%256 ; DC..DF
db A0000%256, A0000%256, A0000%256, A0000%256 ; E0..E3
db A0000%256, A0000%256, A0000%256, A0000%256 ; E4..E7
db A0000%256, A0000%256, A0000%256, A0000%256 ; E8..EB
db A0000%256, A0000%256, A0000%256, A0000%256 ; EC..EF
db empty__%256, empty__%256, empty__%256, empty__%256 ; F0..F3
db empty__%256, empty__%256, empty__%256, empty__%256 ; F4..F7
db empty__%256, empty__%256, empty__%256, empty__%256 ; F8..FB
db empty__%256, empty__%256, empty__%256, empty__%256 ; FC..FF
;0300h. ‘â à訥 à §àï¤ë  ¤à¥á®¢ ä㭪権
db Init_DOS/256, Func_01/256, Func_02/256, Func_03/256 ; 00..03
db empty__/256, empty__/256, empty__/256, empty__/256 ; 04..07
db Func_08/256, Func_09/256, Func_0A/256, Func_0B/256 ; 08..0B
db Func_0C/256, empty__/256, Func_0E/256, empty__/256 ; 0C..0F
db Func_10/256, Func_11/256, Func_12/256, Func_13/256 ; 10..13
db Func_14/256, Func_15/256, Func_16/256, Func_17/256 ; 14..17
db Func_18/256, Func_19/256, Func_1A/256, Func_1B/256 ; 18..1B
db Func_1C/256, Func_1D/256, Func_1E/256, empty__/256 ; 1C..1F
db empty__/256, Func_21/256, Func_22/256, empty__/256 ; 20..23
db empty__/256, empty__/256, empty__/256, empty__/256 ; 24..27
db empty__/256, empty__/256, empty__/256, empty__/256 ; 28..2B
db empty__/256, empty__/256, empty__/256, empty__/256 ; 2C..2F
db Func_30/256, Func_31/256, Func_32/256, Func_33/256 ; 30..33
db empty__/256, Func_35/256, Func_36/256, Func_37/256 ; 34..37
db Func_38/256, Func_39/256, Func_3A/256, Func_3B/256 ; 38..3B
db Func_3C/256, Func_3D/256, Func_3E/256, Func_3F/256 ; 3C..3F
db Func_40/256, Func_41/256, Func_42/256, Func_43/256 ; 40..43
db Func_44/256, Func_45/256, Func_46/256, Func_47/256 ; 44..47
db empty__/256, empty__/256, empty__/256, empty__/256 ; 48..4B
db empty__/256, empty__/256, empty__/256, empty__/256 ; 4C..4F
db Func_50/256, Func_51/256, Func_52/256, Func_53/256 ; 50..53
db Func_54/256, Func_55/256, Func_56/256, Func_57/256 ; 54..57
db Func_58/256, Func_59/256, Func_5A/256, Func_5B/256 ; 58..5B
db Func_5C/256, empty__/256, empty__/256, Func_5F/256 ; 5C..5F
db empty__/256, empty__/256, empty__/256, empty__/256 ; 60..63
db empty__/256, empty__/256, empty__/256, empty__/256 ; 64..67
db A0000/256, A0000/256, A0000/256, A0000/256 ; 68..6B
db A0000/256, A0000/256, A0000/256, A0000/256 ; 6C..6F
db A0000/256, A0000/256, A0000/256, A0000/256 ; 70..73
db A0000/256, A0000/256, A0000/256, A0000/256 ; 74..77
db A0000/256, A0000/256, A0000/256, A0000/256 ; 78..7B
db A0000/256, A0000/256, A0000/256, A0000/256 ; 7C..7F
db A0000/256, A0000/256, A0000/256, A0000/256 ; 80..83
db A0000/256, A0000/256, A0000/256, A0000/256 ; 84..87
db A0000/256, A0000/256, A0000/256, A0000/256 ; 88..8B
db A0000/256, A0000/256, A0000/256, A0000/256 ; 8C..8F
db A0000/256, A0000/256, A0000/256, A0000/256 ; 90..93
db A0000/256, A0000/256, A0000/256, A0000/256 ; 94..97
db A0000/256, A0000/256, A0000/256, A0000/256 ; 98..9B
db A0000/256, A0000/256, A0000/256, A0000/256 ; 9C..9F
db A0000/256, A0000/256, A0000/256, A0000/256 ; A0..A3
db A0000/256, A0000/256, A0000/256, A0000/256 ; A4..A7
db A0000/256, A0000/256, A0000/256, A0000/256 ; A8..AB
db A0000/256, A0000/256, A0000/256, A0000/256 ; AC..AF
db A0000/256, A0000/256, A0000/256, A0000/256 ; B0..B3
db A0000/256, A0000/256, A0000/256, A0000/256 ; B4..B7
db A0000/256, A0000/256, A0000/256, A0000/256 ; B8..BB
db A0000/256, A0000/256, A0000/256, A0000/256 ; BC..BF
db A0000/256, A0000/256, A0000/256, A0000/256 ; C0..C3
db A0000/256, A0000/256, A0000/256, A0000/256 ; C4..C7
db A0000/256, A0000/256, A0000/256, A0000/256 ; C8..CB
db A0000/256, A0000/256, A0000/256, A0000/256 ; CC..CF
db A0000/256, A0000/256, A0000/256, A0000/256 ; D0..D3
db A0000/256, A0000/256, A0000/256, A0000/256 ; D4..D7
db A0000/256, A0000/256, A0000/256, A0000/256 ; D8..DB
db A0000/256, A0000/256, A0000/256, A0000/256 ; DC..DF
db A0000/256, A0000/256, A0000/256, A0000/256 ; E0..E3
db A0000/256, A0000/256, A0000/256, A0000/256 ; E4..E7
db A0000/256, A0000/256, A0000/256, A0000/256 ; E8..EB
db A0000/256, A0000/256, A0000/256, A0000/256 ; EC..EF
db empty__/256, empty__/256, empty__/256, empty__/256 ; F0..F3
db empty__/256, empty__/256, empty__/256, empty__/256 ; F4..F7
db empty__/256, empty__/256, empty__/256, empty__/256 ; F8..FB
db empty__/256, empty__/256, empty__/256, empty__/256 ; FC..FF
; ¡ãä¥à 512 ¡ ©â
T0400: db ". ",10h,0,0,0,0 ; ⥪. ª â «®£
ds 16
db ".. ",10h,0,0,0,0 ; த¨â. ª â «®£
ds 16
ds 448
;T0600. ‚ë஢­¨âì ­  £à ­¨æã xx00h
include "keyb.asm" ; ¢ª«îç ¥â "init_DOS"
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #56. Žç¨áâ¨âì ®ª­®.
;
; ¢å®¤: D - áâப  «¥¢®£® ¢¥àå­¥£® 㣫  ®ª­ 
; E - á⮫¡¥æ «¥¢®£® ¢¥àå­¥£® 㣫  ®ª­ 
; H - ¢ëá®â  ®ª­ 
; L - è¨à¨­  ®ª­ 
; A - ᨬ¢®« § ¯®«­¨â¥«ì
; B -  âਡãâ § ¯®«­¨â¥«ì
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_56:ld c,8Dh ; ®ç¨á⪠ íªà ­  㪠§. ᨬ¢®«®¬
rst 08h
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #5C. ‚뢮¤ áâப¨ ­  íªà ­.
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  áâபã ᨬ¢®«®¢
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_5C:ld a,(hl)
inc hl
or a
ret z
call Func_5B ; ¢ë¢®¤ "a" ­  íªà ­
jr Func_5C
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #5B. ‚뢮¤ ᨬ¢®«  ­  íªà ­ ¢ ⥪. ¯®§¨æ¨¨.
;
; ¢å®¤: A - ᨬ¢®«
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_5B:
cp " "
jr nc,A0DFC
cp 0Dh ; ¢ ­ ç «® áâப¨
jr z,A0E20
cp 0Ah ; ­  á«¥¤. áâபã
jr z,A0E28
cp 9 ; Tab
jr z,A0E0F
cp 8 ; Backspace
jr z,A0E03
A0DFC: push hl
ld bc,0182h ; ¢ë¢¥á⨠®¤¨­ ᨬ¢®« ¡¥§  âਡãâ 
rst 08h
pop hl
ret
; Backspace
A0E03: ld c,8Eh ; ã§­ âì ¯®«®¦. ªãàá®à 
rst 08h
xor a
cp e
jp z,Func_52 ; ãáâ. ¯®«®¦. ªãàá®à 
dec e
jp Func_52 ; ãáâ. ¯®«®¦. ªãàá®à 
; Tab
A0E0F: ld c,8Eh ; ã§­ âì ¯®«®¦. ªãàá®à 
rst 08h
ld a,e
and 0F8h
add a,8
ld e,a ; X ¯®«®¦. ªãàá®à 
jp Func_52 ; ãáâ. ¯®«®¦. ªãàá®à 
; 0Dh - ¢ ­ ç «® áâப¨
A0E20: ld c,8Eh ; ã§­ âì ¯®«®¦. ªãàá®à 
rst 08h
ld e,0
jp Func_52 ; ãáâ. ¯®«®¦. ªãàá®à 
; 0Ah - ­  á«¥¤. áâபã
A0E28: ld c,8Eh ; ã§­ âì ¯®«®¦. ªãàá®à 
rst 08h
ld a,d
cp 31
jr nc,A0E35
inc d
jp Func_52 ; ãáâ. ¯®«®¦. ªãàá®à 
;
A0E35: push hl
push de
ld bc,018Ah ; áªà®««¨­£ ¢¢¥àå
ld de,0020h ; ­ ç./ç¨á«® áâப
ei
halt
di
rst 08h
ld de,1F00h ; Y/X ¯®«®¦. ­¨¦­¥© áâப¨
call Func_52 ; ãáâ. ¯®«®¦. ªãàá®à 
ld a," " ; ᨬ¢®«
ld bc,5082h ; ¢ë¢¥á⨠80 ᨬ¢.
rst 08h
ei
pop de
call Func_52 ; ãáâ. ¯®«®¦. ªãàá®à 
pop hl
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #52. “áâ ­®¢¨âì ¯®«®¦¥­¨¥ ªãàá®à .
;
; ¢å®¤: D - áâப  ªãàá®à 
; E - ª®«®­ª  ªãàá®à 
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_52:ld c,84h ; ãáâ. ¯®«®¦. ªãàá®à 
rst 08h
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #53. “§­ âì ¯®«®¦¥­¨¥ ªãàá®à .
;
; ¢å®¤: ­¥â
; ¢ë室: D - áâப  ªãàá®à 
; E - ª®«®­ª  ªãàá®à 
;/////////////////////////////////////////////////////////////////////
Func_53:ld c,8Eh ; ã§­ âì ¯®«®¦. ªãàá®à 
rst 08h
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #57. <20>à®ç¨â âì ᨬ¢®« á íªà ­ .
;
; ¢å®¤: D - áâப 
; E - ª®«®­ª 
; ¢ë室: A - ᨬ¢®«
; B -  âਡãâ
;/////////////////////////////////////////////////////////////////////
Func_57:xor a
ld c,0B4h
rst 08h
ld a,l
ld b,h
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #58. ‚뢥á⨠ᨬ¢®« ­  íªà ­.
; “¯à ¢«ïî騥 ᨬ¢®«ë ¢ë¢®¤ïâáï ª ª ®¡ëç­ë¥ ᨬ¢®«ë.
;
; ¢å®¤: D - áâப 
; E - ª®«®­ª 
; A - ᨬ¢®«
; B -  âਡãâ
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_58:ld c,a
push bc
push de
ld c,0B4h ; ᨬ¢®« á íªà ­ 
xor a
rst 08h
pop de
pop hl
ld c,0B5h ; ᨬ¢®« ­  íªà ­
xor a
rst 08h
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #59. ‘®åà ­¨âì ®ª­® íªà ­ .
;
; ¢å®¤: D - áâப 
; E - ª®«®­ª  «¥¢®£® ¢¥àå­¥£® 㣫  ®ª­ 
; H - ¢ëá®â  ®ª­ 
; L - è¨à¨­  ®ª­ 
; B - áâà ­¨æ  ¡ãä¥à 
; IX -  ¤à¥á ¡ãä¥à 
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_59:ld a,r ; ¢® ä« £ P/V á®áâ. âਣ£¥à  à §à¥è. ¯à¥à뢠­¨©
push af
xor a
di
ld c,0B2h
rst 08h
pop af ; ¢®ááâ. ä« £
scf
ccf
ret po ; ¯à¥à뢠­¨ï à §à¥è¥­ë
ei
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #5A. ‚®ááâ ­®¢¨âì ®ª­® íªà ­ .
;
; ¢å®¤: D - áâப 
; E - ª®«®­ª  «¥¢®£® ¢¥àå­¥£® 㣫  ®ª­ 
; H - ¢ëá®â  ®ª­ 
; L - è¨à¨­  ®ª­ 
; B - áâà ­¨æ  ¡ãä¥à 
; IX -  ¤à¥á ¡ãä¥à 
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_5A:ld a,r ; ¢® ä« £ P/V á®áâ. âਣ£¥à  à §à¥è. ¯à¥à뢠­¨©
push af
xor a
di
ld c,0B3h
rst 08h
pop af
scf
ccf
ret po ; ¯à¥à뢠­¨ï à §à¥è¥­ë
ei
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #55. ‘ªà®««¨­£ íªà ­ .
;
; ¢å®¤: D - áâப  «¥¢®£® ¢¥àå­¥£® 㣫  ®ª­ 
; E - ª®«®­ª  «¥¢®£® ¢¥àå­¥£® 㣫  ®ª­ 
; H - ¢ëá®â  ®ª­ 
; L - è¨à¨­  ®ª­ 
; B = 1 - ¯à®ªàã⪠ ¢¢¥àå
; B = 2 - ¯à®ªàã⪠ ¢­¨§
; A = 0 - ®ç¨é âì áâபã
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_55: djnz A0EBA
ld b,a
ld c,h
push bc
push de
push hl
LD XH,D
LD XL,E
inc d
dec h
xor a
ld c,0B7h ; ¯¥à¥¬¥é. ®ª­ 
di
rst 08h
ei
pop hl
pop de
pop bc
xor a
cp b
ret nz ; ­¥ ®ç¨é âì áâபã
ld a,d
add a,h
dec a
ld d,a
A0EAA: push de
call Func_52 ; ãáâ. ¯®«®¦. ªãàá®à 
ld a," "
ld b,l
ld c,82h
rst 08h
pop de
call Func_52 ; ãáâ. ¯®«®¦. ªãàá®à 
and a
ret
;
A0EBA: djnz A0EE0
ld b,a
ld c,l
push de
push bc
db 0DDh
ld h,d
db 0DDh
ld l,e
db 0DDh
inc h
dec h
xor a
ld c,0B7h
di
rst 08h
ei
pop hl
pop de
xor a
cp b
jr z,A0EAA ; ®ç¨áâ¨âì áâபã
ret
;
A0EE0: ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #54. ‚ë¡à âì  ªâ¨¢­ãî áâà ­¨æã íªà ­ .
;
; ¢å®¤: B - áâà ­¨æ  íªà ­  0/1
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_54:push bc
ld a,(mode_screen) ; ⥪. ०¨¬ íªà ­ 
bit 7,a
jr nz,A0EF0
ld c,a
call A0F04
A0EF0: pop bc
ld a,b
and 1
out (0C9h),a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #51. <20>®«ãç¨âì ⥪ã騩 ०¨¬ íªà ­ .
;
; ¢å®¤: ­¥â
; ¢ë室: A - ⥪ã騩 ०¨¬ íªà ­ 
; B - áâà ­¨æ  íªà ­  0/1
;/////////////////////////////////////////////////////////////////////
Func_51:in a,(0C9h) ; áâà ­¨æ  íªà ­  0/1
ld b,a
ld a,(mode_screen) ; ⥪. ०¨¬ íªà ­ 
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #50. ‚ë¡®à ०¨¬  íªà ­ .
;
; ¢å®¤: A - ०¨¬ íªà ­ 
; 02h - ⥪áâ®¢ë© 40x32x16 梥⮢
; 03h - ⥪áâ®¢ë© 80x32x16 梥⮢
; 81h - £à ä¨ç¥áª¨© 320x256x256 梥⮢
; 82h - £à ä¨ç¥áª¨© 640x256x16 梥⮢
; B - áâà ­¨æ  íªà ­  0/1
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_50:bit 7,a
ld c,a
jr nz,A0F27 ; ãáâ. £à ä. ०¨¬ë
A0F04: ld ix,A1080 ; â®çª  ¢ë室  (¢®ááâ. íªà ­ £à ä. ०¨¬ )
push ix
ex af,af'
ld a,(mode_screen) ; ⥪. ०¨¬ íªà ­ 
ld (A1081+1),a
ex af,af'
inc a ; a=0
dec a
jr z,A0F21
dec a ; a=1
jr z,A0F21
dec a ; a=2
jr z,A0F3F
dec a ; a=3
jr z,A0F67
A0F21: pop ix ; ¢®ááâ. ¡ « ­á á⥪  (§ ®¤­® ix)
ld a,EERR48 ; ª®¤ "®è¨¡ª  48"
scf
ret
; “áâ ­®¢ª  £à ä. ०¨¬®¢
A0F27: call A1042 ; á®åà. íªà ­ ⥪áâ. ०¨¬ 
and 7Fh
jp z,A0F8F ; a=80h
dec a ; a=81h
jp z,A0F93
dec a ; a=82h
jp z,A0FBA
dec a ; a=83h
jp z,A0FE1
ld a,EERR48 ; ª®¤ "®è¨¡ª  48"
scf
ret
; “áâ. ⥪áâ. ०¨¬ 40x32.
A0F3F: push bc
; ⥪á⮢®¥, 8 â®ç¥ª/§­ ª®¬¥áâ®, #0B - ­®¬¥à §­ ª®£¥­.
ld hl,T101A ; ®¯¨á â¥«ì ®ª­  (8 ¡ ©â)
ld a,b
rlca
rlca
rlca
rlca
or b
and 11h
xor 10h
ld e,a ; ä« £¨ ®ª­ 
call open_window
pop bc
ld a,c
ld (mode_screen),a ; ⥪. ०¨¬ íªà ­ 
ld a,b
and 1
out (0C9h),a
ld a,(mode_screen) ; ⥪. ०¨¬ íªà ­ 
ld c,81h
rst 30h
ld a,0C0h
out (89h),a
xor a
ret
; “áâ. ⥪áâ. ०¨¬ 80x32.
A0F67: push bc
; ⥪á⮢®¥, 16 â®ç¥ª/§­ ª®¬¥áâ®, #0B - ­®¬¥à §­ ª®£¥­.
ld hl,T1012 ; ®¯¨á â¥«ì ®ª­  (8 ¡ ©â)
ld a,b
rlca
rlca
rlca
rlca
or b
and 11h
xor 10h
ld e,a ; ä« £¨ ®ª­ 
call open_window
pop bc
ld a,c
ld (mode_screen),a ; ⥪. ०¨¬ íªà ­ 
ld a,b
and 1
out (0C9h),a
ld a,(mode_screen) ; ⥪. ०¨¬ íªà ­ 
ld c,81h ; ०¨¬ íªà ­  ¤«ï ¬ë誨
rst 30h
ld a,0C0h ; § ªà. ᯥª-íªà ­
out (89h),a
xor a
ret
;
A0F8F: ld a,EERR48 ; ª®¤ "®è¨¡ª  48"
scf
ret
;
A0F93: push bc
; £à ä¨ç¥áª®¥, 8 â®ç¥ª/§­ ª®¬¥áâ®, 0-© íªà ­
ld hl,T102A ; ®¯¨á â¥«ì ®ª­  (8 ¡ ©â)
ld e,11h ; ä« £¨ ®ª­ 
call open_window
; £à ä¨ç¥áª®¥, 8 â®ç¥ª/§­ ª®¬¥áâ®, 1-© íªà ­
ld hl,T103A ; ®¯¨á â¥«ì ®ª­  (8 ¡ ©â)
ld e,0 ; ä« £¨ ®ª­ 
call open_window
pop bc
ld a,c
ld (mode_screen),a ; ⥪. ०¨¬ íªà ­ 
ld a,b
and 1
out (0C9h),a
ld a,(mode_screen) ; ⥪. ०¨¬ íªà ­ 
ld c,81h
rst 30h
ld a,0C0h
out (89h),a
xor a
ret
A0FBA: push bc
; £à ä¨ç¥áª®¥, 16 â®ç¥ª/§­ ª®¬¥áâ®, 0-© íªà ­
ld hl,T1022 ; ®¯¨á â¥«ì ®ª­  (8 ¡ ©â)
ld e,11h ; ä« £¨ ®ª­ 
call open_window
; £à ä¨ç¥áª®¥, 16 â®ç¥ª/§­ ª®¬¥áâ®, 1-© íªà ­
ld hl,T1032 ; ®¯¨á â¥«ì ®ª­  (8 ¡ ©â)
ld e,0 ; ä« £¨ ®ª­ 
call open_window
pop bc
ld a,c
ld (mode_screen),a ; ⥪. ०¨¬ íªà ­ 
ld a,b
and 1
out (0C9h),a
ld a,(mode_screen) ; ⥪. ०¨¬ íªà ­ 
ld c,81h
rst 30h
ld a,0C0h
out (89h),a
xor a
ret
A0FE1: ld a,EERR48 ; ª®¤ "®è¨¡ª  48"
scf
ret
; ⥪. ०¨¬ íªà ­ 
mode_screen:
db 3 ; 80x32x16 ⥪á⮢ë©
;-------------------------------------------------
; Žâªàëâì ®ª­®
; ¢å®¤: hl=®¯¨á â¥«ì ®ª­ 
; e=ä« £¨ ®ª­ 
;-------------------------------------------------
open_window:
push de
ld de,LFEE0 ; ªã¤ 
ld bc,32 ; à §¬¥à ®¯¨á â¥«ï (8..31 § à¥§.)
call A1001 ; ᪮¯¨à. ®¯¨á â¥«ì ¢ á¨áâ. áâà ­¨æã
pop de
ld ix,LFEE0 ; ®¯¨á â¥«ì ®ª­  (8 ¡ ©â)
ld c,0B0h ; ®âªà. ®ª­®
rst 08h
ld a,0C0h ; § ªà. ᯥª-íªà ­
out (89h),a
xor a
ret
;-----------------------------------------------------
; ‘ª®¯¨à®¢ âì ®¯¨á â¥«ì ®ª­  ¢ á¨áâ. áâà ­¨æã <20>¨®á 
; ¢å®¤: hl=®âªã¤ 
; de=ªã¤ 
; bc=᪮«ìª®
;-----------------------------------------------------
A1001: ld a,r ; ¢® ä« £ P/V á®áâ. âਣ£¥à  à §à¥è. ¯à¥à뢠­¨©
in a,(0E2h)
ex af,af' ; á®åà. ä« £
ld a,0FEh ; áâà ­¨æ  ¯¥à¥¬¥­­ëå <20>¨®á 
out (0E2h),a
ldir
ex af,af' ; ¢®ááâ. ä« £
out (0E2h),a
ret po ; ¯à¥à뢠­¨ï à §à¥è¥­ë
ei
ret
;-----------------------------------------------------------
; Œ áᨢ ®¯¨á â¥«¥© ®ª®­
;
; ä« £¨ ®ª­ :
; bit4 = 1/0 - text/graf ०¨¬
; bit5 = 1/0 - 8/16 â®ç¥ª ¢ §­ ª®¬¥áâ¥
; graf_mode bit3..0 - ­¥ ¨á¯.
; bit7..6 - ­®¬¥à ¯ «¨âàë (­®¬¥à íªà ­ )
; text_mode bit7..6, 3..0 - ­®¬¥à §­ ª®£¥­¥à â®à 
; ¨áª«î祭¨¥: bit7..6="11" -> ¡®à¤¥à
;-----------------------------------------------------------
; 80x32. ⥪á⮢®¥, 16 â®ç¥ª/§­ ª®¬¥áâ®, #0B - ­®¬¥à §­ ª®£¥­.
T1012: db 40 ;+0 X à §¬¥à ®ª­  ¢ §­ ª®¬¥áâ å
db 32 ;+1 Y à §¬¥à ®ª­  ¢ §­ ª®¬¥áâ å
db 0 ;+2 X ¯®«®¦. ®ª­  ­  íªà ­¥
db 0 ;+3 Y ¯®«®¦. ®ª­  ­  íªà ­¥
db 00011011b ;+4 ०¨¬ §­ ª®¬¥áâ 
db 0 ;+5 ¤®¯. ०¨¬ §­ ª®¬¥áâ  (bit0=1 ᯥª.  ¤à¥á æ¨ï íªà ­ )
db 0 ;+6 X ¯®«®¦. ¢ ¯®«¥ £à ä¨ª¨ (¢ §­ ª®¬¥áâ å)
db 0 ;+7 Y ¯®«®¦. ¢ ¯®«¥ £à ä¨ª¨ (¢ §­ ª®¬¥áâ å)
; 40x32. ⥪á⮢®¥, 8 â®ç¥ª/§­ ª®¬¥áâ®, #0B - ­®¬¥à §­ ª®£¥­.
T101A: db 40,32 ; X/Y £ ¡ à¨âë
db 0,0
db 00111011b ;+4 5,4, bit3..0 ­®¬¥à §­ ª®£¥­.
db 0,0,0
; £à ä¨ç¥áª®¥, 16 â®ç¥ª/§­ ª®¬¥áâ®, 0-© íªà ­
T1022: db 40,32 ; X/Y £ ¡ à¨âë (¢ §­ ª®¬¥áâ å)
db 0,0
db 00000000b ;+4
db 0,0,0
; £à ä¨ç¥áª®¥, 8 â®ç¥ª/§­ ª®¬¥áâ®, 0-© íªà ­
T102A: db 40,32 ; X/Y £ ¡ à¨âë (¢ §­ ª®¬¥áâ å)
db 0,0
db 00100000b ;+4 5-© ¡¨â
db 0,0,0
; £à ä¨ç¥áª®¥, 16 â®ç¥ª/§­ ª®¬¥áâ®, 1-© íªà ­
T1032: db 40,32 ; X/Y £ ¡ à¨âë (¢ §­ ª®¬¥áâ å)
db 0,0
db 01000000b ;+4 6-© ¡¨â
db 0
db 40 ;+6 X ¯®«®¦. ¢ ¯®«¥ £à ä¨ª¨ (¢ §­ ª®¬¥áâ å)
db 0
; £à ä¨ç¥áª®¥, 8 â®ç¥ª/§­ ª®¬¥áâ®, 1-© íªà ­
T103A: db 40,32 ; X/Y £ ¡ à¨âë (¢ §­ ª®¬¥áâ å)
db 0,0
db 01100000b ;+4 6,5 ¡¨âë
db 0
db 40 ;+6 X ¯®«®¦. ¢ ¯®«¥ £à ä¨ª¨ (¢ §­ ª®¬¥áâ å)
db 0
;--------------------------------------------------
; ‘®åà ­¨âì íªà ­ ⥪áâ. ०¨¬ .
; „«ï ¡ãä¥à  íªà ­  ¨á¯. 2-ï ¡ ­ª  à áè¨à¥­¨ï „Ž‘.
;--------------------------------------------------
A1042: push af
ld a,(mode_screen) ; ⥪. ०¨¬ íªà ­ 
bit 7,a
jr nz,A107E ; £à ä. ०¨¬
sub 2
jr c,A107E ; ¬¥­ìè¥ 02h
push bc
push de
push hl
push ix
push af
ld c,8Eh ; ã§­ âì ¯®«®¦. ªãàá®à 
rst 08h
ld (A10A0+1),de
pop af ; ०¨¬ íªà ­ 
ld ix,LC000 ; ¡ãä¥à
ld de,0000h ; Y/X ¯®«®¦.
ld hl,2050h ; Y/X à §¬¥à (32x80)
or a
jr nz,$+4 ; 80x32 ⥪áâ. ०¨¬
ld l,40 ; X à §¬¥à
ld (A1090+1),hl
ld a,(list_dos_pages+2) ; ­®¬¥à ¡ ­ª¨ à áè¨à¥­¨ï „Ž‘
ld b,a
xor a
ld c,0B2h ; á íªà ­  ¢ ¡ãä¥à
di
rst 08h
ei
pop ix
pop hl
pop de
pop bc
A107E: pop af
ret
;-------------------------------------------------
; ‚®ááâ ­®¢¨âì íªà ­ £à ä. ०¨¬ .
; <20>ãä¥à íªà ­  ¢® 2-© ¡ ­ª¥ à áè¨à¥­¨ï „Ž‘.
;-------------------------------------------------
A1080: push af
A1081: ld a,0 ; ⥪. ०¨¬ íªà ­ 
rlca ; 4 â ªâ 
jr nc,A10AB ; ⥪á⮢ë©
push bc
push de
push hl
push ix
ld ix,LC000 ; ¡ãä¥à
ld de,0000h ; Y/X ¯®«®¦.
A1090: ld hl,2050h ; Y/X à §¬¥à (32x80 ¨«¨ 32x40)
ld a,(list_dos_pages+2) ; ­®¬¥à ¡ ­ª¨ à áè¨à¥­¨ï „Ž‘
ld b,a
xor a
ld c,0B3h ; ¨§ ¡ãä¥à  ­  íªà ­
di
rst 08h
ei
A10A0: ld de,0 ; Y/X ¯®«®¦.
ld c,84h ; ãáâ. ªãàá®à
rst 08h
pop ix
pop hl
pop de
pop bc
A10AB: pop af
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #5F. ‚뢮¤ ᨬ¢®«  ­  ¯à¨­â¥à ¡¥§ ®¦¨¤ ­¨ï.
;
; ˆ­â¥à¯à¥â æ¨ï ¡ ©â  á®áâ®ï­¨ï ¯à¨­â¥à :
; 0..2 - ­¥ ¨á¯®«ì§ãîâáï, ®¡ëç­® ãáâ. ¢ "1"
; 3 - ®è¨¡ª  ¯à¨­â¥à  - ¥áâì/­¥â (1/0)
; 4 - ¯à¨­â¥à ¯®¤ª«î祭/­¥ ¯®¤ª«î祭 (1/0)
; 5 - ¡ã¬ £¨ ­¥â/¥áâì (1/0)
; 6 - ¯à¨­â¥à £®â®¢/¢ë¢®¤¨â ®ç¥à¥¤­®© ᨬ¢®« (1/0)
; 7 - ¯à¨­â¥à ᢮¡®¤¥­/§ ­ïâ (1/0)
;
; ¢å®¤: A - ᨬ¢®«
; ¢ë室: B - ᨬ¢®«
; CF - ®è¨¡ª , A=¡ ©â á®áâ®ï­¨ï (¡¨âë 7..3)
;/////////////////////////////////////////////////////////////////////
Func_5F:ld b,a
ld a,r ; ¢® ä« £ P/V á®áâ. âਣ£¥à  à §à¥è. ¯à¥à뢠­¨©
ld a,b
di
push af ; á®åà. ä« £
xor a
out (1Bh),a
ld a,10h
out (1Bh),a
xor a
out (1Bh),a
in a,(1Bh) ; ¯®àâ á®áâ®ï­¨ï ¯à¨­â¥à 
ld c,a;
bit 5,a ; 0/1 ¥áâì/­¥â ¡ã¬ £ 
jr nz,A10CC ; ­¥â ¡ã¬ £¨
and 11011000b;
jr z,A10CC; ; ®è¨¡. á¨âã æ¨ï
ld a,b
out (1Ch),a ; ᨬ¢®« ¢ ¯à¨­â¥à
pop af ; ¢®ááâ. ä« £
scf
ccf ; á¡à. CF
ret po ; ¯à¥à뢠­¨ï à §à¥è¥­ë
ei
ret
;
A10CC: pop af
ld a,c; ; ¡ ©â á®áâ®ï­¨ï
scf ; ãáâ. CF
ret po ; ¯à¥à뢠­¨ï à §à¥è¥­ë
ei
ret
; ˆ­¨æ. ¯®à⮢
A10D1: di
ld a,0CFh
ld bc,001Fh ; ¯®àâ
out (c),a
ld a,63h
out (c),a
ld a,0C0h
out (1Eh),a
ld a,0Fh
out (1Dh),a
ld a,0
out (19h),a
ld a,0
out (19h),a
ld a,5
out (19h),a
ld a,62h
out (19h),a
ret
; “áâ ­®¢¨âì ­ ç «ì­ë© ª« áâ¥à ¤«ï ç⥭¨ï
A10F6: ld hl,1
ld (A10FD+1),hl
ret
A10FD: ld hl,1
A1100: inc hl ; ­®¬¥à ª« áâ¥à 
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
cp 0Ah
scf
ret z ; ®è¨¡ª  ?
ld a,d
or e
jr nz,A1100
ld (A10FD+1),hl
xor a
ret
A1111: push hl
call A10FD
pop de
ret c
push hl
push hl
ex de,hl ; hl=­®¬¥à ª« áâ¥à 
A111A: call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
ex de,hl
jr nc,A111A ; ­¥ ª®­¥æ 楯®çª¨
ex de,hl
pop de ; ­®¬¥à ª« áâ¥à 
call A11C4 ; § ¯¨á âì ¢ ª¥è FAT-  ­®¬¥à ª« áâ¥à 
pop hl
ld de,(D150E) ; ­®¬¥à ª« áâ¥à 
call A11C4 ; § ¯¨á âì ¢ ª¥è FAT-  ­®¬¥à ª« áâ¥à 
call A128B ; ¯®¤ª«. ¡ ­ªã ª¥è  FAT ¨ § ¯¨á âì ¥£® ­  ¤¨áª
and a
ret
;-----------------------------------------------------------
; <20>à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
; ¢å®¤: hl=­®¬¥à ª« áâ¥à 
; ¢ë室: hl=­®¬¥à ª« áâ¥à 
; de=­®¬¥à á«¥¤. ª« áâ¥à 
; CF - ª®­¥æ 楯®çª¨
;-----------------------------------------------------------
A1132: ex de,hl
ld hl,(D12FF)
and a
sbc hl,de
ex de,hl
ld a,0Ah
ret c
exx
ld a,1 ; «®£. ­®¬¥à ¤®á-¡ ­ª¨ (ªíè FAT- )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
exx
push hl
push af ; áâ à ï ¡ ­ª  ¯®àâ 
ld a,(D150B)
cp "2" ; fat12
jr z,A1177
; fat16, ¯à®áâ® ç¨â âì á«¥¤. ­®¬¥à
ld a,h
ld b,a
and 0Fh
ld h,a
ld a,b
rrca
rrca
rrca
rrca
and 0Fh
add hl,hl
ld bc,(D12FD)
cp c
call nz,A125B ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT- 
ld de,LC000 ; ­ ç «® ª¥è  FAT- 
add hl,de ; ­  ï祩ªã FAT
ld e,(hl) ; ¯à®ç¨â âì ­®¬¥à ª« áâ¥à 
inc hl
ld d,(hl)
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
ld hl,0FFEFh
;and a ;@@
xor a;
sbc hl,de ; ¯à®¢¥àª  ­  á«ã¦. ª« áâ¥àë
pop hl
;ld a,0
ret
; fat12
A1177: ld d,h
ld e,l
add hl,hl
add hl,de
rr h ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
rr l
push af ; á®åà. ä« £
ld a,h
ld b,a
and 1Fh
ld h,a
ld a,b
rlca
rlca
rlca
and 7
ld bc,(D12FD)
cp c
call nz,A125B ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT- 
ld de,LC000 ; ­ ç «® ª¥è  FAT- 
add hl,de ; ­  ï祩ªã FAT
pop af ; ¢®ááâ. ä« £
ld e,(hl)
inc hl
ld d,(hl)
jr c,A11A3 ; ­®¬¥à ­¥ ç¥â­ë©
ld a,d
and 0Fh
ld d,a
jr A11B7
;
A11A3: ld a,e
and 0F0h
ld e,a
rr d ; ¢¯à ¢® ­  4 ¡¨âa
rr e
rr d
rr e
rr d
rr e
rr d
rr e
A11B7: pop af ; ¢®ááâ. ¯®àâ
out (0E2h),a
ld hl,0FEFh
;and a
xor a;
sbc hl,de ; ¯à®¢¥àª  ­  á«ã¦. ª« áâ¥àë
pop hl
;ld a,0
ret
;-----------------------------------------------------------
; ‡ ¯¨á âì ¢ ª¥è FAT-  ­®¬¥à ª« áâ¥à 
; ¢å®¤: de=­®¬¥à ª« áâ¥à 
; hl=­®¬¥à ¯¥à¢®£® ª« áâ¥à  ?
; ¢ë室: ;hl=­®¬¥à á«¥¤. ª« áâ¥à  ?
; de=­®¬¥à ª« áâ¥à 
;-----------------------------------------------------------
A11C4: push de
ex de,hl
ld hl,(D12FF)
and a
sbc hl,de
ex de,hl
pop de
ld a,0Ah
ret c
exx
ld a,1 ; «®£. ­®¬¥à ¤®á-¡ ­ª¨ (ªíè FAT- )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
exx
push hl
push af ; áâ à ï ¡ ­ª  ¯®àâ 
ld a,1
ld (D12FE),a
ld a,(D150B)
cp "2" ; fat12
jr z,A120B
; fat16, ¯à®áâ® á®åà. ­®¬¥à
push de
ld a,h
ld b,a
and 0Fh
ld h,a
ld a,b
rrca
rrca
rrca
rrca
and 0Fh
add hl,hl
ld bc,(D12FD)
cp c
call nz,A125B ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT- 
ld de,LC000 ; ª¥è FAT
add hl,de ; ­  ï祩ªã FAT
pop de
ld (hl),e ; á®åà. ¢ ª¥è¥ FAT- 
inc hl ; ­®¬¥à ª« áâ¥à 
ld (hl),d ;
pop af ; ¢®ááâ. ¯®àâ
pop hl
out (0E2h),a
xor a
ret
; fat12
A120B: push de
ld d,h
ld e,l
add hl,hl
add hl,de
rr h
rr l
push af ; á®åà. ä« £
ld a,h
ld b,a
and 1Fh
ld h,a
ld a,b
rlca
rlca
rlca
and 7
ld bc,(D12FD)
cp c
call nz,A125B ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT- 
ld de,LC000 ; ª¥è FAT
add hl,de
pop af
pop de
jr c,A123E ; ­®¬¥à ­¥ ç¥â­ë©
ld (hl),e
inc hl
ld a,(hl)
and 0F0h
or d
ld (hl),a
pop af ; ¢®ááâ. ¯®àâ
pop hl
out (0E2h),a
and a
ret
;
A123E: sla e ; ¢«¥¢® ­  4 ¡¨âa
rl d
rl e
rl d
rl e
rl d
rl e
rl d
ld a,(hl)
and 0Fh
or e
ld (hl),a ; á®åà. ¢ ª¥è¥ FAT- 
inc hl ; ­®¬¥à ª« áâ¥à 
ld (hl),d ;
pop af ; ¢®ááâ. ¯®àâ
pop hl
out (0E2h),a
and a
ret
; <20>à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT- 
; ¢å®¤: a=.. ?
A125B: push hl
push af
ld a,(D12FE)
or a
call nz,A129A ; § ¯¨áì ª¥è  (¢á¥£® ?) FAT-  ­  ¤¨áª
pop af
ld l,a
ld h,0
ld (D12FD),hl
add hl,hl ;1+1=2
add hl,hl ;2+2=4
add hl,hl ;4+4=8
add hl,hl ;8+8=16
ld de,(D14FC)
add hl,de
ex de,hl
ld ix,0
add ix,de ; ­®¬¥à «®£. ᥪâ®à 
ld hl,0 ; áâ. à §àï¤
ld de,LC000 ; ªã¤  (ª¥è FAT)
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld b,16 ; ç¨á«® ᥪâ®à®¢
ld c,5 ; ç⥭¨¥ ᥪâ®à®¢
rst 18h
pop hl
ret
; <20>®¤ª«îç¨âì ¡ ­ªã ª¥è  FAT ¨ § ¯¨á âì ¥£® ­  ¤¨áª
A128B: exx
ld a,1 ; «®£. ­®¬¥à ¤®á-¡ ­ª¨ (ªíè FAT- )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
exx
push af ; áâ à ï ¡ ­ª  ¯®àâ 
call A129A ; § ¯¨áì ª¥è  (¢á¥£® ?) FAT-  ­  ¤¨áª
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
ret
; ‡ ¯¨áì ª¥è  (¢á¥£® ?) FAT-  ­  ¤¨áª
A129A: ld hl,(D12FD)
ld h,0
ld (D12FD),hl
add hl,hl ;1+1=2
add hl,hl ;2+2=4
add hl,hl ;4+4=8
add hl,hl ;8+8=16
push hl
ld b,h
ld c,l
ld de,16
add hl,de
ld de,(D008C) ; ᥪâ®à®¢ ­  FAT
ld a,16 ; ç¨á«® ᥪâ®à®¢
and a
sbc hl,de
jr c,A12C3
ex de,hl
ld hl,16
sbc hl,de
jr c,A12FA
ld a,l
A12C3: ld h,b
ld l,c
ld de,(D14FC)
add hl,de
ex de,hl
ld ix,0
add ix,de ; ­®¬¥à «®£. ᥪâ®à 
ld hl,0 ; áâ. à §àï¤
ld de,LC000 ; ®âªã¤  (ª¥è FAT)
ld b,a ; ç¨á«® ᥪâ®à®¢
ld c,6 ; § ¯¨áì ᥪâ®à®¢
ld a,(disk) ; ­®¬¥à ¤¨áª 
push bc
rst 18h
pop bc ; b=ç¨á«® ᥪâ®à®¢
pop hl
ld de,(D14FE)
add hl,de
ex de,hl
ld ix,0
add ix,de ; ­®¬¥à «®£. ᥪâ®à 
ld de,LC000 ; ®âªã¤  (ª¥è FAT)
ld hl,0 ; áâ. à §àï¤
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld c,6 ; § ¯¨áì ᥪâ®à®¢
rst 18h
ret
;
A12FA: pop hl
scf
ret
D12FD: db 0
D12FE: db 0
D12FF: dw 0FF0h ; ¬ ªá. ç¨á«® ª« áâ¥à®¢ FAT12 (¡¥§ á«ã¦.)
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #00. ‚¥àá¨ï „Ž‘.
; ‚®§¢à é ¥â ­®¬¥à ¢¥àᨨ ¤¨áª®¢®© á¨á⥬ë.
; ¢å®¤: ­¥â
; ¢ë室: DE=­®¬¥à ¢¥àᨨ/¬®¤¨ä¨ª æ¨¨
; BC=­®¬¥à ¡¨«¤  (0..999)
;/////////////////////////////////////////////////////////////////////
Func_00:xor a
ld de,(major_version SHL 8) + minor_version ; 1.61 ¢¥àá¨ï „Ž‘
ld bc,build_version ; ­®¬¥à ¡¨«¤ 
ld h,a
ld l,a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #01. ‘¬¥­  ⥪ã饣® ¤¨áª .
;
; ¢å®¤: A - ­®¬¥à ¤¨áª  (0=A,1=B,..)
; ¢ë室: A - ¬ ªá. ­®¬¥à ¤¨áª , ¥á«¨ CF=0
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_01:push af ; ­®¬¥à ¤¥¢ ©á 
ld c,1 ; ®âªàëâì ¤¥¢ ©á
rst 18h
pop bc
jr c,A1323 ; ®è¨¡ª 
ld a,b
ld (disk),a ; ­®¬¥à ⥪. ¤¨áª 
call A1370
ret c
ld a,(last_drive) ; ­®¬¥à ¯®á«¥¤. ¤¨áª 
and a
ret
;
A1323: cp EINVDRV ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ãáâனá⢠"
scf
ret z
ld a,ENORDY ; ª®¤ "­¥â £®â®¢­®áâ¨"
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #02. <20>®¬¥à ⥪ã饣® ¤¨áª .
;
; ¢å®¤: ­¥â
; ¢ë室: A - ­®¬¥à ¤¨áª  (0=A,1=B,..)
;/////////////////////////////////////////////////////////////////////
Func_02:ld a,(disk)
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #03. ˆ­ä®à¬ æ¨ï ® ¤¨áª¥.
; ‚®§¢à é ¥â ¨­ä®à¬ æ¨î ®¡ ®¡é¥¬ ¨ ᢮¡®¤­®¬ ¯à®áâà ­á⢥ ¤¨áª®¢®£®
; ãáâனá⢠.
;
; ¢å®¤: A - ­®¬¥à ¤¨áª  (0=A,1=B,..0FFh-⥪ã騩)
; ¢ë室: A - à §¬¥à ª« áâ¥à  ¢ ᥪâ®à å, ¥á«¨ CF=0
; HL - ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢
; DE - ᢮¡®¤­ëå ª« áâ¥à®¢
; BC - à §¬¥à ᥪâ®à  ¢ ¡ ©â å
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_03:inc a
jr z,A1338
dec a
call Func_01 ; ᬥ­  ⥪ã饣® ¤¨áª 
ret c
A1338: ld hl,2 ; ­®¬¥à ª« áâ¥à 
ld bc,0
A133E: push bc
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
pop bc
cp 0Ah
jr z,A1353 ; ®è¨¡ª  ?
xor a
cp e
jr nz,A134F
cp d
jr nz,A134F
inc bc
A134F: inc hl
jr A133E
;
A1353: ld d,b ; ᢮¡®¤­ëå ª« áâ¥à®¢
ld e,c
ld hl,(D12FF) ; ®¡é¥¥ ª®«-¢® ª« áâ¥à®¢
dec hl
ld bc,(D0081) ; ¡ ©â®¢ ­  ᥪâ®à (512)
ld a,(D0083) ; ᥪâ®à®¢ ­  ª« áâ¥à
and a
ret
; <20>®¬¥à ¯®á«¥¤­¥£® ¤¨áª  ¢ á¨á⥬¥
last_drive:
db 2 ; "B" ¤¨áª
; ᯨ᮪ ¤¨áª®¢ëå ãáâனá⢠?
ds 5
; ­¥â ®¡à é¥­¨ï
L1368: ld a,(disk) ; ­®¬¥à ¤¨áª 
ld c,3 ; ¯à®¢¥àª  ᬥ­ë ­®á¨â¥«ï ¢ ¤¥¢ ©á¥
rst 18h ; ¢á¥£¤  ¢ë¤ ¥â "¬¥­ï«áï"
or a
ret z ; ­¥ ¬¥­ï«áï
;
A1370: ld c,0E2h
in b,(c)
push bc
in a,(82h)
out (0E2h),a
ld de,LC400 ; ¡ãä¥à
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld c,4 ; ¯à®ç¨â âì BPB
rst 18h
pop bc
out (c),b ; ¢®ááâ. ¯®àâ
jp c,A14F0 ; ®è¨¡ª  (­¥â £®â®¢­®áâ¨)
push iy
ld de,0AA55h ; ᨣ­ âãà 
ld hl,(T0400+510)
and a
sbc hl,de
jp nz,A14EA ; ®è¨¡ª  "­¥ ¨§¢¥áâ­ë© ä®à¬ â"
ld hl,T0400 ; ®âªã¤ 
ld de,T0076 ; ªã¤ 
ld bc,62
ldir
ld iy,T0076 ; áâàãªâãà  boot-ᥪâ®à 
ld a,(iy+21)
cp 0F0h ; ¡ ©â ä®à¬ â 
jp c,A14EA
ld hl,0
ld e,(iy+14) ; de=§ à¥§¥à¢. ᥪâ®à®¢
ld d,(iy+15)
add hl,de
ld (D14FC),hl
ld (D14FC),hl
ld (D14FE),hl
ld e,(iy+22) ; de=ç¨á«® ᥪâ®à®¢ ­  FAT
ld d,(iy+23)
ld a,(D0086) ; ç¨á«® ª®¯¨© FAT-®¢
cp 1
jr z,A13D2
dec a
add hl,de
ld (D14FE),hl
A13D2: add hl,de
dec a
jr nz,A13D2
ld (D1502),hl
ld c,(iy+11) ; bc=¡ ©â®¢ ­  ᥪâ®à
ld b,(iy+12)
rl c
rl b
rl c
rl b
rl c
rl b
ld c,b
ld b,0
ld a,c
ld (D1504),a
ld e,(iy+17) ; de=§ ¯¨á¥© ¢ ª®à­¥
ld d,(iy+18)
ex de,hl
dec hl
xor a
A13FB: inc a
jp z,A14EA
sbc hl,bc
jr nc,A13FB
ex de,hl
ld c,a
ld b,0
ld (D1505),a
add hl,bc
ld (D1506),hl
ld c,(iy+11) ; bc=¡ ©â®¢ ­  ᥪâ®à
ld b,(iy+12)
ld hl,0
ld a,(D0083) ; ç¨á«® ᥪâ®à®¢ ­  ª« áâ¥à
A141A: add hl,bc
dec a
jr nz,A141A
ld (D1508),hl ; à §¬¥à ¡«®ª  "ᥪâ®à®¢ ­  ª« áâ¥à"
ex de,hl
ld hl,4000h-1 ; ª®­áâ ­â 
xor a
A1426: inc a
jp z,A14EA
sbc hl,de
jr nc,A1426
ld (D150A),a
ld hl,T00AC ; "FAT16 "
ld de,T14F4 ; "FAT"
ld b,3
A1439: ld a,(de)
cp (hl)
jp nz,A14D1
inc hl
inc de
djnz A1439
A1442: ld a,(hl)
inc hl
cp " "
jr z,A1442
cp "1"
jp nz,A14EA
ld a,(hl)
cp "6"
ld hl,0FFFFh ; ï祩ª  FAT16
jr z,A145D
cp "2"
jp nz,A14EA
ld hl,0FFFh ; ï祩ª  FAT12
A145D: ld (D150B),a ; "2"/"6" fat12/fat13
ld (D150E),hl
ld hl,0
ld c,(iy+24) ; bc=ᥪâ®à®¢ ­  áâ®à®­ã
ld b,(iy+25)
ld a,(D0090) ; ª®«-¢® áâ®à®­ ¤¨áª 
A146F: add hl,bc
dec a
jr nz,A146F
ld (D150C),hl
ld de,(D1506)
ld l,(iy+19) ; hl=¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥
ld h,(iy+20)
ld a,h
or l
jr nz,A149B
; extended boot-record
ld l,(iy+32) ; hl=¬«.à §àï¤ ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥
ld h,(iy+33) ;
ld c,(iy+34) ; bc=áâ.à §àï¤
ld b,(iy+35) ;
sbc hl,de
jr nc,A14A1
dec bc
jr A14A1
;
A149B: sbc hl,de
ld bc,0
A14A1: ld a,(D0083) ; ᥪâ®à®¢ ­  ª« áâ¥à
scf
A14A5: rra
jr c,A14B3
rr b
rr c
rr h
rr l
jr A14A5
;
A14B3: inc hl
ld (D12FF),hl
pop iy ; iy=áâàãªâãà  ¤¥áªà.
ld hl,0
ld (D12FD),hl
ld a,1 ; «®£. ­®¬¥à ¤®á-¡ ­ª¨ (ªíè FAT- )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
xor a
call A125B ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT- 
pop af
out (0E2h),a
call A10F6 ; ãáâ. ­ ç «ì­ë© ª« áâ¥à ¤«ï ç⥭¨ï
xor a
ret
;
A14D1: ld a,(iy+15h)
cp 0F0h ; ä®à¬ â 720kB ¤¨áª¥âë
jr c,A14EA
cp 0F8h ; ¡ ©â-¤¥áªà¨¯â®à ¢¨­â 
ld a,"6"
ld hl,0FFFFh ; ï祩ª  FAT16
jr z,A145D
ld a,"2"
ld hl,0FFFh ; ï祩ª  FAT12
jp A145D
;
A14EA: pop iy
ld a,EINVMED ; ª®¤ "­¥ ¨§¢¥áâ­ë© ä®à¬ â"
scf
ret
;
A14F0: ld a,ENORDY ; ª®¤ "­¥â £®â®¢­®áâ¨"
scf
ret
T14F4: db "FAT"
;
db 0
db 0
db 0
db 0
disk: db 1 ; ­®¬¥à ¤¨áª  „Ž‘
D14FC: dw 0
D14FE: dw 0
D1500: dw 0
D1502: dw 0
D1504: db 0
D1505: db 0
D1506: dw 0
D1508: dw 0 ; à §¬¥à ¡«®ª  "ᥪâ®à®¢ ­  ª« áâ¥à"
D150A: db 0
D150B: db 0 ; "6"/"2" fat16/fat12
D150C: dw 0
D150E: dw 0FFFFh ; 0FFFFh/0FFFh fat16/fat12
; <20>ãä¥à ⥪ã饣® ¯ã⨠(ª â «®£ ) á¨á⥬ë
T1510: db '\'
ds 256
; <<< Œ áᨢ áâàãªâãà ¤¥áªà¨¯â®à®¢, 44*10=440 ¡ ©â >>>
;
; ‘âàãªâãà  ¤¥áªà¨¯â®à  ⥪. ª â «®£ 
handle: db ". " ;+0 ¨¬ï ä ©«  (+0=0 - ¤¥áªà. ᢮¡®¤¥­)
db " " ;+8 à áè. ä ©« 
db 10h ;+11  âਡãâ
ds 10 ;+12 १¥à¢
dw 0 ;+22 ¢à¥¬ï
dw 0 ;+24 ¤ â 
dw 0 ;+26 ­®¬¥à ¯¥à¢®£® ª« áâ¥à 
dw 0,0 ;+28 à §¬¥à ä ©« 
dw 0 ;+32 ¬«.à §àï¤ ãª § â¥«ï ä ©« 
dw 0 ;+34 áâ.à §àï¤
dw 0 ;+36 ­®¬¥à ¯¥à¢®£® ª« áâ¥à  ª â «®£  (¨§ +26)
dw 0 ;+38 ¨­¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£  (¨á¯. #11 äã­ª.)
db 0 ;+40 ­®¬¥à ¤¨áª  (drive or current)
db 0 ;+41 ०¨¬ ¤®áâ㯠 ª ä ©«ã (r,w,r/w). 7-© ¡¨â - ¯à¨§­ ª ¨§¬¥­¥­¨ï ä ©« 
db 0 ;+42 ã஢¥­ì ⥪. ¯à®£à ¬¬ë (§ ¤ ç  (¢« ¤¥«¥æ))
db 0 ;+43 १¥à¢
size_struc_handle equ $-handle ; à §¬¥à áâàãªâãàë (44 ¡ ©â )
; 9 ä ©«®¢ëå áâàãªâãà
ds size_struc_handle * max_handles ; 44*9=396
;-------------------------------------------------
; <20>®¨áª ¤¥áªà¨¯â®à  ä ©« .
; ¢å®¤: a=­®¬¥à ¤¥áªà.
; ¢ë室: iy= ¤à¥á áâàãªâãàë ¤¥áªà.
; CF - ­¥â ¤¥áªà¨¯â®à 
;-------------------------------------------------
search_handle:
inc a
cp max_handles+1 ; § ¯à¥¤. ç¨á«® ¤¥áªà¨¯â®à®¢
jr nc,A17E3
push de
ld iy,handle - size_struc_handle ; ¬ áᨢ ¤¥áªà. - 44
ld de,size_struc_handle ; 44 à §¬¥à áâàãªâãàë ¤¥áªà¨¯â®à 
add iy,de
dec a
jr nz,$-3 ; ¨é¥¬ ­ã¦­ë© ¤¥áªà.
pop de
ld a,(iy+0) ; ­®¬¥à ⥪. ¤¥áªà.
or a
ld a,EZERO ; ª®¤ "Ok"
ret nz ; ¤¥áªà. § ­ïâ
A17E3: ld a,EINVHND ; ª®¤ "­¥ áãé¥áâ¢ãî騩 ¤¥áªà¨¯â®à"
scf
ret
;-----------------------------------------------------------
; Žá¢®¡®¦¤¥­¨¥ ¤¥áªà¨¯â®à  ä ©« .
; ¢å®¤: a=­®¬¥à ¤¥áªà¨¯â®à 
; ¢ë室: CF - ¯à¨ ®è¨¡ª¥ "­¥ áãé¥áâ¢ãî騩 ¤¥áªà¨¯â®à"
;-----------------------------------------------------------
release_handle:
inc a
cp max_handles+1 ; § ¯à¥¤. ç¨á«® ¤¥áªà¨¯â®à®¢
jr nc,A17E3
push de
ld iy,handle - size_struc_handle ; ¬ áᨢ ¤¥áªà. - 44
ld de,size_struc_handle ; 44 à §¬¥à áâàãªâãàë ¤¥áªà¨¯â®à 
add iy,de
dec a
jr nz,$-3 ; ¨é¥¬ ­ã¦­ë© ¤¥áªà¨¯â®à
pop de
ld a,(iy+0) ; ¨¬ï ä ©«  ¢ ¤¥áªà¨¯â®à¥
or a ; áâàãªâãà  á¢®¡®¤­  ?
ld a,EINVHND ; ª®¤ "­¥ áãé¥áâ¢ãî騩 ¤¥áªà¨¯â®à"
exx
scf
ret z ; ¤ 
xor a
ld (iy+0),a ; ®á¢®¡. ⥪. ¤¥áªà¨¯â®à
ret
;-------------------------------------------------
; <20>®¨áª ᢮¡®¤­®£® ¤¥áªà¨¯â®à .
; ¢å®¤: ­¥â
; ¢ë室: c=­®¬¥à ¤¥áªà¨¯â®à 
; CF - ­¥â ᢮¡. ¤¥áªà¨¯â®à 
;-------------------------------------------------
search_free_handle:
ld b,max_handles+1 ; 10 ¬ ªá.ç¨á«® ¤¥áªà¨¯â®à®¢+1
ld c,-1 ; áç¥â稪 ­®¬¥à  ¤¥áªà.
ld iy,handle - size_struc_handle ; ¬ áᨢ ¤¥áªà. - 44
ld de,size_struc_handle ; 44 à §¬¥à áâàãªâãàë ¤¥áªà¨¯â®à 
A1815: add iy,de
inc c ; 0..9
ld a,(iy+0)
or a ; ⥪. áâàãªâãà  ¤¥áªà¨¯â®à  ᢮¡®¤­  ?
ret z ; ¤ 
djnz A1815 ; ­  á«¥¤. áâàãªâãàã
ld a,EMFILE ; ª®¤ "᫨誮¬ ¬­®£® ®âªà. ä ©«®¢"
scf
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #15. <20>¥à¥¬¥é¥­¨¥ 㪠§ â¥«ï ¢ ä ©«¥.
;
; ¢å®¤: A - ¤¥áªà¨¯â®à ä ©« 
; HL:IX - ᬥ饭¨¥ 㪠§ â¥«ï ¢ ä ©«¥
; B - ᯮᮡ ¯¥à¥¬¥é¥­¨ï
; B=0 ®â ­ ç «  ä ©« 
; B=1 ®â ⥪ã饣® §­ ç¥­¨ï 㪠§ â¥«ï
; B=2 ®â ª®­æ  ä ©« 
; ¢ë室: HL:IX - ­®¢®¥ §­ ç¥­¨¥ 㪠§ â¥«ï
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_15:call search_handle ; ¯®¨áª ¤¥áªà. ä ©« 
ret c ; ­¥ ­ ©¤¥­
inc b
dec b
jr z,A1835 ; ®â ­ ç « 
dec b
jr z,A184B ; ®â ⥪. ¯®«®¦.
dec b
jr z,A183D ; ®â ª®­æ 
empty__:ld a,EINVFNC ; ª®¤ "­¥ ¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
; Žâ ­ ç «  ä ©« 
A1835: ld bc,0 ; ¤«ï ¬«. à §à鸞
ld e,c ; ¤«ï áâ. à §à鸞
ld d,c
jr A1857
; Žâ ª®­æ  ä ©« 
A183D: ld c,(iy+1Ch) ; iy=¤¥áªà. ä ©« 
ld b,(iy+1Dh)
ld e,(iy+1Eh)
ld d,(iy+1Fh)
jr A1857
; Žâ ⥪. ¯®«®¦¥­¨ï
A184B: ld c,(iy+20h)
ld b,(iy+21h)
ld e,(iy+22h)
ld d,(iy+23h)
A1857: add ix,bc ; ¬«. à §àï¤
adc hl,de ; áâ. à §àï¤
db 0DDh
ld d,h
db 0DDh
ld e,l
ld (iy+20h),e
ld (iy+21h),d
ld (iy+22h),l
ld (iy+23h),h
xor a
ret
A186D: ld l,(iy+1Ch)
ld h,(iy+1Dh)
ld e,(iy+20h)
ld d,(iy+21h)
and a
sbc hl,de
ld l,(iy+1Eh)
ld h,(iy+1Fh)
ld e,(iy+22h)
ld d,(iy+23h)
sbc hl,de
ret
A188B: pop bc
pop de
and a
ret
;
A188F: pop bc
pop de
scf ; ®è¨¡ª 
ret
;
A1893: push bc
ld (D1CFB),ix
ld a,(D0083) ; ᥪâ®à®¢ ­  ª« áâ¥à
ld c,a
ld b,0
call A1CD9
db 0DDh
ld b,h
db 0DDh
ld c,l
push hl
ld l,(iy+26) ; ­®¬¥à ¯¥à¢®£® ª« áâ¥à  (¨§ ¤¥áªà.)
ld h,(iy+27) ;
ld a,h
or l
jr nz,A18BB
jr A188B ; ä ©« ­ã«¥¢®© ¤«¨­ë
;
A18B2: push bc
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
pop bc
jr c,A188B ; ª®­¥æ 楯®çª¨
ex de,hl ; hl=­®¬¥à á«¥¤. ª« áâ¥à 
dec bc
A18BB: ld a,b
or c
jr nz,A18B2 ; ¯à®ç¨â âì á«¥¤. ᥪâ®à (ª« áâ¥à)
pop de
pop bc
ld a,(D0083) ; ᥪâ®à®¢ ­  ª« áâ¥à
sub e
ld c,a
cp b
jr c,A18CA
ld c,b
A18CA: ld a,b
sub c
ld b,a
push hl
push bc
push de
call A1CB8
pop de
add ix,de
jr nc,$+3
inc hl
ld de,(D1CFB) ; ¡ãä¥à
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld b,c ; ç¨á«® ᥪâ®à®¢
ld c,5 ; ç⥭¨¥ ᥪâ®à®¢
rst 18h
jr c,A188F ; ®è¨¡ª 
pop bc
ld hl,(D1CFB)
ld de,(D0081) ; ¡ ©â®¢ ­  ᥪâ®à (512)
A18EF: add hl,de
dec c
jr nz,A18EF
ld (D1CFB),hl
pop de
ld a,b
or a
ret z
A18FA: ld hl,D0083 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld a,b
sub (hl)
ld b,a
ld c,(hl)
jr nc,A1909
ld b,0
add a,(hl)
ld c,a
or a
ret z
A1909: ex de,hl ; hl=­®¬¥à ª« áâ¥à 
push bc
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
pop bc
jr c,A1938 ; ª®­¥æ 楯®çª¨
ex de,hl ; hl=­®¬¥à á«¥¤. ª« áâ¥à 
push hl
push bc
call A1CB8
ld de,(D1CFB) ; ªã¤ 
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld b,c ; ç¨á«® ᥪâ®à®¢
ld c,5 ; ç⥭¨¥ ᥪâ®à®¢
rst 18h
jp c,A188F ; ®è¨¡ª 
pop bc
ld hl,(D1CFB)
ld de,(D0081) ; ¡ ©â®¢ ­  ᥪâ®à (512)
A192E: add hl,de
dec c
jr nz,A192E
ld (D1CFB),hl
pop de
jr A18FA
;
A1938: and a
ret
A193A: pop bc
A193B: pop bc
pop de
scf
ret
;
A193F: push bc
ld (D1CFB),ix
ld a,(D0083) ; ᥪâ®à®¢ ­  ª« áâ¥à
ld c,a
ld b,0
call A1CD9
db 0DDh
ld b,h
db 0DDh
ld c,l
push hl
ld l,(iy+1Ah) ; hl=­®¬¥à ¯¥à¢®£® ª« áâ¥à 
ld h,(iy+1Bh) ;
ld a,h
or l
jr nz,A198A
push bc
call A10FD
jr c,A193A
ld (iy+1Ah),l ; hl=­®¬¥à ¯¥à¢®£® ª« áâ¥à 
ld (iy+1Bh),h ;
ld de,(D150E) ; ­®¬¥à ª« áâ¥à 
call A11C4 ; § ¯¨á âì ¢ ª¥è FAT-  ­®¬¥à ª« áâ¥à 
push hl
call A128B ; ¯®¤ª«. ¡ ­ªã ª¥è  FAT ¨ § ¯¨á âì ¥£® ­  ¤¨áª
pop hl
pop bc
jr A198A
;
A1977: push bc
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
jr nc,A1987 ; ­¥ ª®­¥æ 楯®çª¨
push hl ; ­®¬¥à ª« áâ¥à  (­¥ á«¥¤ãî饣®)
call A1111
pop hl
jr c,A193A
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
A1987: pop bc
ex de,hl ; hl=­®¬¥à á«¥¤. ª« áâ¥à 
dec bc
A198A: ld a,b
or c
jr nz,A1977
pop de
pop bc
ld a,(D0083) ; ᥪâ®à®¢ ­  ª« áâ¥à
sub e
ld c,a
cp b
jr c,$+3
ld c,b
ld a,b
sub c
ld b,a
push hl
push bc
push de
call A1CB8
pop de
add ix,de
jr nc,$+3
inc hl
ld de,(D1CFB) ; ¡ãä¥à
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld b,c ; ç¨á«® ᥪâ®à®¢
ld c,6 ; § ¯¨áì ᥪâ®à®¢
rst 18h
jp c,A193B ; ®è¨¡ª 
pop bc
ld hl,(D1CFB)
ld de,(D0081) ; ¡ ©â®¢ ­  ᥪâ®à (512)
add hl,de
dec c
jr nz,$-2
ld (D1CFB),hl
pop de
ld a,b
or a
ret z
A19C9: ld hl,D0083 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld a,b
sub (hl)
ld b,a
ld c,(hl)
jr nc,A19D8
ld b,0
add a,(hl)
ld c,a
or a
ret z
A19D8: ex de,hl
push bc
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
jr nc,A19E9 ; ­¥ ª®­¥æ 楯®çª¨
push hl ; ­®¬¥à ª« áâ¥à  (­¥ á«¥¤ãî饣®)
call A1111
pop hl
jr c,A1A10 ; ­¥â ¬¥áâ  ­  ¤¨áª¥
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
A19E9: pop bc
ex de,hl ; hl=­®¬¥à á«¥¤. ª« áâ¥à 
push hl
push bc
call A1CB8
ld de,(D1CFB) ; ¡ãä¥à
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld b,c ; ç¨á«® ᥪâ®à®¢
ld c,6 ; § ¯¨áì ᥪâ®à®¢
rst 18h
jp c,A193B ; ®è¨¡ª 
pop bc
ld hl,(D1CFB)
ld de,(D0081) ; ¡ ©â®¢ ­  ᥪâ®à (512)
add hl,de
dec c
jr nz,$-2
ld (D1CFB),hl
pop de
jr A19C9
;
A1A10: pop bc
ld a,ENOSPACE ; ª®¤ "­¥â ¬¥áâ  ­  ¤¨áª¥"
scf
ret
A1A15: xor a
ld (D1CFA),a
ld l,(iy+20h)
ld h,(iy+21h)
add hl,de
exx
ld e,a
ld d,a
ld l,(iy+22h)
ld h,(iy+23h)
adc hl,de
exx
ld c,(iy+1Ch)
ld b,(iy+1Dh)
and a
sbc hl,bc
exx
ld c,(iy+1Eh)
ld b,(iy+1Fh)
sbc hl,bc
exx
ret c
ex de,hl
sbc hl,de
ex de,hl
ld a,-1
ld (D1CFA),a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #13. —⥭¨¥ ¨§ ä ©« .
;
; ¢å®¤: A - ¤¥áªà¨¯â®à ä ©«  (0-© = ç⥭¨¥ ᯨ᪠ ¤¨áª )
; HL - ¡ãä¥à
; DE - ª®«-¢® ç¨â ¥¬ëå ¡ ©â
; ¢ë室: DE - ॠ«ì­®¥ ª®«-¢® ¯à®ç¨â ­­ëå ¡ ©â
; ¥á«¨ CF=0:
; A=0 ¯à®ç¨â ­ë ¢á¥ ¡ ©âë
; A=0FFh ¯à®ç¨â ­® ¬¥­ì襥 ç¨á«® ¡ ©â
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_13:ld (D1D01),hl
ld (D1D03),hl
call search_handle ; ¯®¨áª ¤¥áªà. ä ©« 
ret c ; ­¥ ­ ©¤¥­
call A1A15
ld a,d
or e
jp z,A1B02
push de
ld a,(iy+40) ; ­®¬¥à ¤¨áª  ¨§ ¤¥áªà.
call A2147
jp c,A1B57
ld c,(iy+32) ; ¬«.à §àï¤ ãª § â¥«ï ä ©« 
ld a,(iy+33) ;
ld e,a
and 1
ld b,a
ld d,(iy+34) ; áâ.à §àï¤
ld l,(iy+35) ;
ld h,0
or a
rr l
rr d
rr e
ld a,b
or c
jp nz,A1B07
A1A85: pop bc
push bc
srl b
jr z,A1ABA
ld (D1CFD),hl
ld (D1CFF),de
ld ix,(D1D01)
call A1893
jp c,A1B57
ld de,(D1D01)
ld hl,(D1CFB)
and a
sbc hl,de
ld c,h
ld b,0
add hl,de
ld (D1D01),hl
srl c
ld hl,(D1CFF)
add hl,bc
ex de,hl
ld hl,(D1CFD)
ld c,b
adc hl,bc
A1ABA: pop bc
ld a,b
and 1
ld b,a
or c
jr z,A1AEA
push bc
ld ix,LC400
ld b,1
in a,(0E2h)
push af
in a,(82h)
out (0E2h),a
call A1893
pop bc
ld c,0E2h ; ¯®àâ
out (c),b ; ¢®ááâ. ¯®àâ
jp c,A1B57
ld hl,T0400 ; ®âªã¤ 
ld de,(D1D01)
pop bc
ldir
ld (D1D01),de
A1AEA: ld hl,(D1D03)
ld de,(D1D01)
ex de,hl
and a
sbc hl,de
push hl
ex de,hl
db 0DDh
ld h,d
db 0DDh
ld l,e
ld hl,0
call A184B
pop de
A1B02: ld a,(D1CFA)
or a
ret
;
A1B07: push bc
push hl
push de
ld ix,LC400
ld b,1
in a,(0E2h)
push af
in a,(82h)
out (0E2h),a
call A1893
pop bc
ld c,0E2h
out (c),b ; ¢®ááâ. ¯®àâ
pop hl
jr c,A1B55
ld bc,1 ;T0001
add hl,bc
ex de,hl
pop hl
ld c,b
adc hl,bc
exx
pop de
ld hl,512 ;T0200 ?
and a
sbc hl,de
ld b,h
ld c,l
pop hl
and a
sbc hl,bc
jr nc,A1B42
add hl,bc
ld b,h
ld c,l
ld hl,0
A1B42: push hl
ld hl,T0400 ; ®âªã¤ 
add hl,de
ld de,(D1D01) ; ªã¤ 
ldir
ld (D1D01),de
exx
jp A1A85
;
A1B55: pop hl
pop hl
A1B57: pop bc
scf
ret
;
A1B5A: pop hl
A1B5B: pop hl
A1B5C: pop bc
scf
ret
;
A1B5F: pop de
ld a,EROFILE ; ª®¤ "ä ©« r/o"
scf
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #14. ‡ ¯¨áì ¢ ä ©«.
;
; ¢å®¤: A - ¤¥áªà¨¯â®à ä ©«  (0-© = § ¯¨áì ᯨ᪠ ¤¨áª )
; HL - ¡ãä¥à ¤ ­­ëå
; DE - ª®«-¢® § ¯¨á뢠¥¬ëå ¡ ©â
; ¢ë室: DE - ॠ«ì­®¥ ª®«-¢® § ¯¨á ­­ëå ¡ ©â
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_14:ld (D1D01),hl
ld (D1D03),hl
push de
call search_handle ; ¯®¨áª ¤¥áªà. ä ©« 
jr c,A1B5C ; ­¥ ­ ©¤¥­
ld a,(iy+41) ; ०¨¬ ¤®áâ㯠 ª ä ©«ã (r,w,r/w)
and 1 ; ­  ç⥭¨¥
jr nz,A1B5F ; § ¯¨áì ­¥ ¢®§¬®¦­  (ä ©« r/o)
set 7,(iy+41) ; ãáâ. ¯à¨§­ ª ¨§¬¥­¥­¨ï ä ©« 
set 5,(iy+11) ; ¡¨â " à娢­ë©" ¢ ï祩ª¥  âਡãâ 
ld a,(iy+40) ; ­®¬¥à ¤¨áª 
call A2147
jr c,A1B5C
ld c,(iy+32)
ld a,(iy+33)
ld e,a
and 1
ld b,a
ld d,(iy+34)
ld l,(iy+35)
ld h,0
or a
rr l
rr d
rr e
ld a,b
or c
jp nz,A1C4E
A1BA7: pop bc
push bc
srl b
jr z,A1BD1
push hl
push de
push bc
ld ix,(D1D01)
call A193F
pop bc
jp c,A1B5A
ld c,b
ld hl,(D1D01)
ld de,512 ; à §¬¥à ᥪâ®à 
add hl,de
djnz $-1
ld (D1D01),hl
pop hl
add hl,bc
ex de,hl
pop hl
ld c,b
adc hl,bc
A1BD1: pop bc
ld a,b
and 1
ld b,a
or c
jr z,A1C19
push hl
push de
push bc
ld ix,LC400
ld b,1
in a,(0E2h)
push af
in a,(82h)
out (0E2h),a
call A1893
pop bc
ld c,0E2h
out (c),b ; ¢®ááâ. ¯®àâ
ld de,T0400 ; ªã¤ 
ld hl,(D1D01) ; ®âªã¤ 
pop bc
jp c,A1B5B
ldir
ld (D1D01),hl
pop de
pop hl
ld ix,LC400
ld b,1
in a,(0E2h)
push af
in a,(82h)
out (0E2h),a
call A193F
pop bc
ld c,0E2h
out (c),b ; ¢®ááâ. ¯®àâ
ret c
A1C19: ld de,(D1D03)
ld hl,(D1D01)
and a
sbc hl,de
push hl
ex de,hl
db 0DDh
ld h,d
db 0DDh
ld l,e
ld hl,0
call A184B
call A186D
pop de
ret nc
ld l,(iy+20h)
ld h,(iy+21h)
ld c,(iy+22h)
ld b,(iy+23h)
ld (iy+1Ch),l
ld (iy+1Dh),h
ld (iy+1Eh),c
ld (iy+1Fh),b
and a
ret
;
A1C4E: push bc
push hl
push de
ld ix,LC400
ld b,1
in a,(0E2h)
push af
in a,(82h)
out (0E2h),a
call A1893
pop bc
ld c,0E2h
out (c),b ; ¢®ááâ. ¯®àâ
pop de
pop hl
exx
pop de
jp c,A1B5C
ld hl,512 ;T0200
and a
sbc hl,de
ld b,h
ld c,l
pop hl
and a
sbc hl,bc
jr nc,A1C81
add hl,bc
ld b,h
ld c,l
ld hl,0
A1C81: push hl
ld hl,T0400 ; ªã¤ 
add hl,de
ld de,(D1D01) ; ®âªã¤ 
ex de,hl
ldir
ld (D1D01),hl
exx
push hl
push de
ld ix,LC400
ld b,1
in a,(0E2h)
push af
in a,(82h)
out (0E2h),a
call A193F
pop bc
ld c,0E2h
out (c),b ; ¢®ááâ. ¯®àâ
pop hl
jp c,A1B5B
ld bc,1 ;T0001
add hl,bc
ex de,hl
pop hl
ld c,b
adc hl,bc
jp A1BA7
A1CB8: dec hl
dec hl
ex de,hl
ld a,(D0083) ; ᥪâ®à®¢ ­  ª« áâ¥à
ld b,a
ld hl,0
ld ix,0
A1CC6: add ix,de
jr nc,$+3
inc hl
djnz A1CC6
ld de,(D1506)
add ix,de
ld e,b
ld d,b
adc hl,de
ret
A1CD9: db 0DDh
ld h,d
db 0DDh
ld l,e
ex de,hl
ld hl,0
ld a,32
A1CE3: add ix,ix
ex de,hl
adc hl,hl
ex de,hl
adc hl,hl
sbc hl,bc
jr nc,A1CF4
add hl,bc
dec a
jr nz,A1CE3
ret
;
A1CF4: inc ix
dec a
jr nz,A1CE3
ret
D1CFA: db 0
D1CFB: dw 0
D1CFD: dw 0
D1CFF: dw 0
D1D01: dw 0
D1D03: dw 0
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #16. <20>®«ã祭¨¥/¨§¬¥­¥­¨¥  âਡãâ  ä ©« .
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ä ©« 
; B - ०¨¬ ¤®áâ㯠:
; B=0 ¯®«ãç¨âì  âਡãâ
; B=1 ãáâ ­®¢¨âì  âਡãâ
; A -  âਡãâ ä ©« 
; ¢ë室: A -  âਡãâ ä ©« , ¥á«¨ CF=0
; ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_16:inc b
dec b
jr z,A1D12 ; b=0
dec b
jr z,A1D24 ; b=1
ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
; <20>®«ãç¨âì  âਡãâ ä ©« 
A1D12: xor a ;  âਡãâ § ¯¨á¨
call A1E5F
ret c
ld b,(iy+11) ;  âਡãâ § ¯¨á¨ ¨§ ¤¥áªà.
push bc
call Func_12 ; § ªàëâì ä ©«
pop bc
ret c
ld a,b
and a
ret
; ˆ§¬¥­¨âì  âਡãâ ä ©« 
A1D24: push af
xor a ;  âਡãâ § ¯¨á¨
call A1E5F
pop bc
ret c
set 7,(iy+41) ; ãáâ. ¯à¨§­ ª ¨§¬¥­¥­¨ï ä ©« 
res 3,b ; ¡¨â "¬¥âª  ⮬ "
ld (iy+11),b ; ï祩ª   âਡã⮢ § ¯¨á¨
push bc
call Func_12 ; § ªàëâì ä ©«
pop bc
ret c
ld a,b
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #0A. ‘®§¤ ­¨¥ ä ©« .
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ä ©« 
; A -  âਡãâ ä ©« 
; ¢ë室: A - ¤¥áªà¨¯â®à ä ©« , ¥á«¨ CF=0
; ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_0A:and 11100111b ; ¬ áª , áªàëâì ¡¨âë dir/label
ld (D1F3A),a ; à ¡. ï祩ª 
ld (file_name+1),hl ; ¨¬ï ä ©« 
push hl
call search_free_handle ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à 
pop hl
ret c ; ­¥ ­ ©¤¥­
call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c ; ­¥¤®¯. ¨¬ï
call search_rec_file ; ¯®¨áª § ¯¨á¨ ä ©«  ¢ ᯨ᪥ ¤¨áª 
call nc,mark_delete ; ­ ©¤¥­, ¯®¬¥â¨âì § ¯¨áì ª ª "㤠«¥­­ ï"
jr A1D7B
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #0B. ‘®§¤ ­¨¥ ­®¢®£® ä ©« .
; <20>஢¥àï¥â, áãé¥áâ¢ã¥â «¨ ä ©« á â ª¨¬ ¦¥ ¨¬¥­¥¬.
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ä ©« 
; A -  âਡãâ ä ©« 
; ¢ë室: A - ¤¥áªà¨¯â®à ä ©« , ¥á«¨ CF=0
; ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_0B:and 11100111b ; ¬ áª , áªàëâì ¡¨âë dir/label
ld (D1F3A),a ; à ¡. ï祩ª 
ld (file_name+1),hl ; ¨¬ï ä ©« 
push hl
call search_free_handle ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à 
pop hl
ret c ; ­¥ ­ ©¤¥­
call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c ; ­¥¤®¯. ¨¬ï
call search_rec_file ; ¯®¨áª § ¯¨á¨ ä ©«  ¢ ᯨ᪥ ¤¨áª 
ld a,EEXIST ; ª®¤ "ä ©« áãé¥áâ¢ã¥â"
ccf
ret c ; ­ ©¤¥­
; á®§¤ âì ¢ ¡ãä¥à¥ ­®¢ãî § ¯¨áì
A1D7B: ld hl,T2364
ld de,T1F3B
ld bc,11
ldir
ex de,hl
ld a,(D1F3A) ; à ¡. ï祩ª  (§¤¥áì  âਡãâ § ¯¨á¨)
ld (hl),a ;+11 ¢ § ¯¨á¨
inc hl
ld bc,0A00h ; b=10 ¡ ©â १¥à¢ 
ld (hl),c
inc hl
djnz $-2
push hl
call Func_21 ; ã§­ âì ⥪. ¤ âã ¨ ¢à¥¬ï
call A2599 ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
pop hl
ld (hl),e ;+22 ¢à¥¬ï
inc hl
ld (hl),d
inc hl
ld (hl),c ;+24 ¤ â 
inc hl
ld (hl),b
inc hl
ld bc,0600h ; 6 ï祥ª, ü ª« áâ¥à  ¨ à §¬¥à ä ©« 
ld (hl),c
inc hl
djnz $-2
call A1F5B ; ᪮¯¨à. ­®¢ãî § ¯¨áì ¢ ᯨ᮪ ¤¨áª  (ª â «®£ )
call flush_cash_dir ; á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
; ®âªàëâì á®§¤ ­­ë© ä ©«
file_name:
ld hl,0 ;  ¤à¥á ¨¬¥­¨ ä ©« 
xor a ; ­  ç⥭¨¥/§ ¯¨áì
jp Func_11 ; ®âªàëâì ä ©«
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #0C. ‘®§¤ ­¨¥ ä ©«  á ã­¨ª «ì­ë¬ ¨¬¥­¥¬.
; ª®­æ¥ áâப¨ ¯ã⨠¤®«¦­® ¡ëâì ª ª ¬¨­¨¬ã¬ 12 ¡ ©â,
; ­  à §¬¥é¥­¨¥ á®§¤ ­­®£® ¨¬¥­¨ ä ©« . ‘ ¬  áâப  ¤®«¦­ 
; § ª ­ç¨¢ âìáï ­ã«¥¬.
; …᫨ á®§¤ ­­ë© ä ©« 㦥 áãé¥áâ¢ã¥â, ®­ ®¡­ã«ï¥âáï ¨ ®âªàë-
; ¢ ¥âáï ­  ç⥭¨¥/§ ¯¨áì.
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  áâப㠯ã⨠(¨/¨«¨ á ¤¨áª®¬).
; A -  âਡãâ ä ©« 
; ¢ë室: A - ¤¥áªà¨¯â®à ä ©« , ¥á«¨ CF=0
; ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_0C:jp empty__ ; ª®¤ "­¥ ¢¥à­ë© ­®¬¥à ä㭪樨"
;push af
;push hl
; á®§¤ âì ã­¨ª. ¨¬ï
;call Func_21 ; ã§­ âì ⥪. ¤ âã ¨ ¢à¥¬ï
;call A2599 ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
;; bc=¤ â , de=¢à¥¬ï
;ld hl,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
;ld a,b
;call byte2dec
;ld a,c
;call byte2dec
;ld a,d
;call byte2dec
;ld a,e
;call byte2dec
;pop hl
;push hl
;; ¯¥à¥©â¨ ­  ª®­¥æ áâப¨
;xor a
;ld bc,256
;cpir
;dec hl
;ex de,hl
;; ¤®¡ ¢¨âì ¨¬ï ä ©«  ¢ ª®­¥æ áâப¨
;ld hl,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
;ld bc,8 ; ¨¬ï
;ldir
;ex de,hl
;ld (hl),"."
;inc hl
;ld a,"$" ; à áè. ä ©« 
;ld (hl),a
;inc hl
;ld (hl),a
;inc hl
;ld (hl),a
;inc hl
;ld (hl),0
;pop hl ; ¨¬ï ä ©« 
;pop af ;  âਡãâ
;; á®§¤ âì ä ©«
;jp Func_0A
; –¨äàã ¢ hex-ä®à¬ â¥ ¢ ¡ãä¥à.
; ¢å®¤: hl=¡ãä¥à
; a=æ¨äà 
;byte2dec:
;push af
;rra
;rra
;rra
;rra
;call $+4
;pop af
;and 0Fh
;add a,90h
;daa
;adc a,40h
;daa
;ld (hl),a
;inc hl
;ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #0E. “¤ «¥­¨¥ ä ©« .
; ” ©«ë "r/o" ­¥«ì§ï áâ¥à¥âì ¤ ­­®© ä㭪樥©.
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ä ©« 
; A -  âਡãâ ä ©« 
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_0E:bit 0,a
scf
ld a,EROFILE ; ª®¤ "ä ©« r/o"
ret nz
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
ld hl,T2364
ld bc,11
ld a,"?"
cpir
ld a,EINVFNAM ; ª®¤ "­¥¢¥à­®¥ ¨¬ï"
scf
ret z
call A228F ; ¯à®ç¨â âì ᯨ᮪ ª â «®£ 
call search_rec_file ; ¯®¨áª § ¯¨á¨ ä ©«  ¢ ᯨ᪥ ¤¨áª 
ret c ; ­¥ ­ ©¤¥­
; ¯®¬¥â¨âì § ¯¨áì ª ª "㤠«¥­­ ï"
mark_delete:
xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
ld (ix+0),0E5h ; ¯à¨§­ ª 㤠«¥­¨ï ä ©« 
ld e,(ix+26) ; ü ¯¥à¢®£® ª« áâ¥à 
ld d,(ix+27)
out (0E2h),a ; ¢®ááâ. ¯®àâ
ld a,e
or d
jp z,flush_cash_dir ; á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
A1DEA: ex de,hl ; hl=­®¬¥à ª« áâ¥à 
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
push de ; ­®¬¥à á«¥¤. ª« áâ¥à 
push af
ld de,0 ; ­®¬¥à ª« áâ¥à 
call A11C4 ; § ¯¨á âì ¢ ª¥è FAT-  ­®¬¥à ª« áâ¥à 
pop af
pop de
jr nc,A1DEA ; ­¥ ª®­¥æ 楯®çª¨
call A128B ; ¯®¤ª«. ¡ ­ªã ª¥è  FAT ¨ § ¯¨á âì ¥£® ­  ¤¨áª
jp flush_cash_dir ; á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #10. <20>¥à¥¨¬¥­®¢ ­¨¥ ä ©« .
; ƒ«®¡ «ì­ë¥ ᨬ¢®«ë * ¨ ? ¢ ¨¬¥­ å ä ©«®¢ ­¥ ¤®¯ã᪠îâáï.
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  áâ à®¥ ¨¬ï ä ©« 
; DE - 㪠§ â¥«ì ­  ­®¢®¥ ¨¬ï ä ©« 
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_10:push de
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
pop de
ret c
ld hl,T2364
ld bc,11
ld a,"?"
cpir
ld a,EINVFNAM ; ª®¤ "­¥¢¥à­®¥ ¨¬ï"
scf
ret z
push de
call A228F ; ¯à®ç¨â âì ᯨ᮪ ª â «®£ 
ld a,33h ;  âਡãâ "arch + dir + r/o + hidden"
call search_record ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª 
pop hl ; 8.3 ¨¬ï
ret c
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
ld hl,T2364
ld bc,11
ld a,"?"
cpir
ld a,EINVFNAM ; ª®¤ "­¥¢¥à­®¥ ¨¬ï"
scf
ret z
push ix ;  ¤à. § ¯¨á¨ ¯¥à¥¨¬¥­. ä ©« 
ld a,33h ;  âਡãâ "arch + dir + r/o + hidden"
call search_record ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª 
pop ix
ld a,EEXIST ; ª®¤ "ä ©« áãé¥áâ¢ã¥â"
ccf
ret c
xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
ld hl,T2364
db 0DDh
ld d,h
db 0DDh
ld e,l
ld bc,11
ldir
out (0E2h),a ; ¢®ááâ. ¯®àâ
jp flush_cash_dir ; á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
A1E5F: ld (D1F3A),a ; à ¡. ï祩ª  (§¤¥áì  âਡãâ § ¯¨á¨)
call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
ld a,37h ;  âਡãâ "¢á¥, ªà®¬¥ ¬¥âª¨ ⮬ "
call search_record ; ¯®¨áª § ¯¨á¨ ¢ ªíè¥ á¯¨áª  ª â «®£ 
jr nc,A1E8D ; ­  ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à 
; § ¯¨áì ­¥ ­ ©¤¥­ 
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #11. Žâªàë⨥ ä ©« .
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ä ©« 
; A - ०¨¬ ¤®áâ㯠:
; A=0 ç⥭¨¥/§ ¯¨áì
; A=1 ç⥭¨¥
; A=2 § ¯¨áì
; ¢ë室: A - ¤¥áªà¨¯â®à ä ©« , ¥á«¨ CF=0
; ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_11:ld (D1F3A),a ; à ¡. ï祩ª 
call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
A1E89: call search_rec_file ; ¯®¨áª § ¯¨á¨ ä ©«  ¢ ᯨ᪥ ¤¨áª 
ret c ; ­¥ ­ ©¤¥­
A1E8D: call search_free_handle ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à 
ret c ; ­¥ ­ ©¤¥­
; § ¯®«­¨âì áâàãªâãàã ¤¥áªà¨¯â®à 
ld a,c ; ­®¬¥à ᢮¡. ¤¥áªà¨¯â®à 
ex af,af'
exx
ld (iy+38),e ; de=¨­¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£  (¨á¯. #11 äã­ª.)
ld (iy+39),d
exx
db 0FDh ; ld de,iy
ld d,h
db 0FDh
ld e,l
ld hl,T1F3B ; 32 ¡ ©â 
ld bc,32
ldir ; § ¯®«­¨âì ¤¥áªà¨¯â®à
ld a,(D1F3A) ; ०¨¬ ¤®áâ㯠 ª ä ©«ã (à ¡. ï祩ª )
ld (iy+41),a
ld a,(D2E70) ; ã஢¥­ì ⥪ã饩 ¯à®£à ¬¬ë (¢« ¤¥«¥æ)
ld (iy+42),a
xor a
ld (iy+32),a
ld (iy+33),a
ld (iy+34),a
ld (iy+35),a
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld (iy+40),a
ld hl,handle+26 ; ï祩ª  ü ¯¥à¢®£® ª« áâ¥à 
ld e,(hl)
inc hl
ld d,(hl)
ld (iy+36),e ; ü ¯¥à¢®£® ª« áâ¥à 
ld (iy+37),d
ex af,af'
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #12. ‡ ªàë⨥ ä ©« .
;
; ¢å®¤: A - ¤¥áªà¨¯â®à ä ©« 
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;
;/////////////////////////////////////////////////////////////////////
Func_12:ld (D1F3A),a ; ¤¥áªà. (à ¡. ï祩ª )
call search_handle ; ¯®¨áª ¤¥áªà. ä ©« 
ret c ; ­¥ ­ ©¤¥­
ld a,(D2E70) ; ã஢¥­ì ⥪ã饩 ¯à®£à ¬¬ë
cp (iy+42) ; ã஢¥­ì ¨§ ¤¥áªà¨¯â®à 
ld a,EACCES ; ª®¤ "à¥áãàá ­¥ ¤®áâ㯥­"
scf
ret nz
bit 7,(iy+41) ; ä« £ ¨§¬¥­¥­¨ï ä ©« 
jr z,A1F31 ; ®á¢®¡. ¤¥áªà. ä ©« 
; ä ©« ¨§¬¥­ï«áï
ld d,(iy+36)
ld e,(iy+37)
push de
xor a ; ­®¬¥à ¤¥áªà.
call search_handle ; ¯®¨áª ¤¥áªà. ä ©« 
pop de
ld (iy+36),d
ld (iy+37),e
call A228F ; ¯à®ç¨â âì ᯨ᮪ ª â «®£ 
ld a,(D1F3A) ; ¤¥áªà¨¯â®à (à ¡. ï祩ª )
call search_handle ; ¯®¨áª ¤¥áªà. ä ©« 
ld hl,LC000
ld de,32
ld c,(iy+38) ; bc=¨­¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£ 
ld b,(iy+39)
jr A1F17
;
A1F15: add hl,de
dec bc
A1F17: ld a,b
or c
jr nz,A1F15
db 0FDh
ld d,h
db 0FDh
ld e,l
ex de,hl
push hl
xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
pop hl
ld bc,32
ldir
out (0E2h),a ; ¢®ááâ. ¯®àâ
call flush_cash_dir ; á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
A1F31: ld a,(D1F3A) ; ¤¥áªà. (à ¡. ï祩ª )
jp release_handle ; ®á¢®¡. ¤¥áªà. ä ©« 
D1F3A: db 0 ; à ¡. ï祩ª  (०¨¬ ¯®¨áª /¤®áâ㯠/..)
; 32 ¡ ©â . <20>ãä¥à § ¯¨á¨ ä ©« /ª â «®£ 
T1F3B: ds 11
D1F46: db 0 ;+11 ï祩ª   âਡã⮢ ä ©« 
ds 14
D1F55: dw 0
ds 4
;-----------------------------------------------------------
; ‘ª®¯¨à®¢ âì ­®¢ãî § ¯¨áì ¢ ªíè ᯨ᪠ ª â «®£ 
;-----------------------------------------------------------
A1F5B: xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
ld ix,LC000 ; ­ ç «® ᯨ᪠ ¤¨áª 
exx
ld de,0 ; á¡à. ¨­¤¥ªá § ¯¨á¨ (¨á¯. #11 äã­ª.)
exx
A1F6A: ld a,(ix+0)
or a ; ª®­¥æ ᯨ᪠
jr z,A1F82
cp 0E5h ; ¯à¨§­ ª 㤠«. § ¯¨á¨
jr z,A1F82
ld bc,32
add ix,bc ; ­  á«¥¤. § ¯¨áì
jr nc,A1F6A
; §  £à ­¨æ¥© 0FFFFh
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
ld a,EROOT ; ª®¤ "¯¥à¥¯®«­¥­¨¥ root-ª â «®£ "
scf
ret
; ᪮¯¨à. ­®¢ãî § ¯¨áì ¢ ᯨ᮪ ¤¨áª 
A1F82: db 0DDh
ld d,h ; de=ªã¤ 
db 0DDh
ld e,l
ld hl,T1F3B ; ®âªã¤  32 ¡ ©â  (­®¢ ï § ¯¨áì)
ld bc,32
ldir ; ᪮¯¨à. ­®¢ãî § ¯¨áì ¢ ᯨ᮪ ¤¨áª 
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
ld hl,LC000 ; ­ ç «® ᯨ᪠ ¤¨áª 
ld bc,(size_cash_directory)
dec bc
add hl,bc
and a
sbc hl,de
ret nc
ld hl,(size_cash_directory)
ld bc,(D1508) ; à §¬¥à ¡«®ª  "ᥪâ®à®¢ ­  ª« áâ¥à"
add hl,bc
ld (size_cash_directory),hl
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #44. <20>८¡à §®¢ âì ¨¬ï ä ©«  (11 -> 8.3 ¨ ®¡à â­®).
;
; ¢å®¤: B=0, ¯à¥®¡à §®¢ âì ¨§ 11 ᨬ¢®«ì­®£® ä®à¬ â  ¢ ä®à¬ â „Ž‘
; HL - 11 ᨬ¢®«®¢ ¨¬¥­¨ ä ©« 
; DE - ¡ãä¥à ¤«ï ¨¬¥­¨ ¢ ä®à¬ â¥ „Ž‘ (13 ¡ ©â)
; B=1, ¯à¥®¡à §®¢ âì ¨§ ä®à¬ â  „Ž‘ ¢ 11 ᨬ¢®«ì­ë© ä®à¬ â
; HL - ¨¬ï ä ©«  ¢ ä®à¬ â¥ „Ž‘
; DE - 11 ᨬ¢®«®¢ ¨¬¥­¨ ä ©« 
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_44:inc b
dec b ; b=0
jr z,A1FB8 ; ¯à¥®¡à. ¨¬ï 11 -> 8.3 ä®à¬ â
dec b ; b=1
jp z,A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
;-------------------------------------------------
; <20>८¡à §®¢ âì ¨¬ï 11 -> 8.3 ä®à¬ â
;
; ¢å®¤: hl=®âªã¤ 
; de=ªã¤ 
;-------------------------------------------------
A1FB8: ld bc,08FFh ; b=áç¥â稪
A1FBB: ld a,(hl)
cp " "
jr nz,A1FC5
inc hl
djnz $-1
jr A1FC9
;
A1FC5: ldi
djnz A1FBB
A1FC9: ld a,(hl)
cp " "
ld a,"."
jr nz,A1FD2
ld a,0
A1FD2: ld (de),a
inc de
ret z
ld b,3
A1FD7: ld a,(hl)
cp " "
ret z
ldi
xor a
ld (de),a
djnz A1FD7
ret
D1FE2: dw 0 ;  ¤à¥á à ¡. ¡ãä¥à  (f_first, f_next)
D1FE4: dw 0 ;  ¤à¥á á«¥¤. § ¯¨á¨ (f_first, f_next)
D1FE6: db false ; ä« £ ®âà ¡®âª¨ "f_first"
D1FE7: db false ; ä« £ 8.3 ¨«¨ 11 ä®à¬ â  ¨¬¥­¨ (f_first, f_next)
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #19. <20>®¨áª ¯¥à¢®£® ᮢ¯ ¤ î饣® ä ©« .
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ä ©« 
; DE - à ¡®ç¨© ¡ãä¥à 44 ¡ ©â , ¥á«¨ B=0, ¨­ ç¥ 46 ¡ ©â ;256 ¡ ©â
; A -  âਡãâë, ¨á¯®«ì§ã¥¬ë¥ ¯à¨ ¯®¨áª¥
; B=0 - ¨¬ï ­ ©¤¥­­®£® ä ©«  ¢ ä®à¬ â¥ 11 ¡ ©â "FilenameExt"
; B=1 - ¨¬ï ­ ©¤¥­­®£® ä ©«  ¢ ä®à¬ â¥ DOS "filename.ext",0
; ¢ë室: de'= ¨­¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£  (¨á¯. #11 äã­ª.)
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;
; ä®à¬ â à ¡. ¡ãä¥à :
; +00 8 db "FILE????" ; è ¡«®­ ¨¬¥­¨
; +08 3 db "???" ; è ¡«®­ à áè¨à¥­¨ï
; +11 1 db 20h ;  âਡãâë ¤«ï ¯®¨áª 
; +12 10 ds 10 ; § à¥§¥à¢¨à®¢ ­®
; +22 2 dw 0000h ; ¢à¥¬ï á®§¤ ­¨ï ä ©« 
; +24 2 dw 0000h ; ¤ â  á®§¤ ­¨ï ä ©« 
; +26 2 dw 0000h ; ­®¬¥à ¯¥à¢®£® ª« áâ¥à 
; +28 4 dw 0000h ; ¬«.à §àï¤ à §¬¥à ä ©«  ¢ ¡ ©â å
; dw 0000h ; áâ.à §àï¤
; +32 1 db 20h ;  âਡãâ ­ ©¤¥­­®£® ä ©« 
; +33 11 db "FILENAMEEXT" ; ¨¬ï ­ ©¤¥­­®£® ä ©«  (ª®¯¨ï ¨§ ª â «®£ )
;/////////////////////////////////////////////////////////////////////
Func_19:ld (D1F3A),a ;  âਡãâ ¯®¨áª 
ld (D1FE2),de ;  ¤à¥á à ¡. ¡ãä¥à 
ld a,b
ld (D1FE7),a ; ä« £ 8.3 ¨«¨ 11 ä®à¬ â  ¨¬¥­¨
push hl ; ¨¬ï ä ©« 
call A228F ; ¯à®ç¨â âì ᯨ᮪ ª â «®£  (â ª¦¥ 㪠§. ¢ áâப¥)
pop hl
call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
ld a,(D1F3A) ; à ¡. ï祩ª  (§¤¥áì  âਡãâ § ¯¨á¨)
call search_record ; ¯®¨áª § ¯¨á¨ ¢ ᯨ᪥ ¤¨áª 
ret c ; § ¯¨áì ­¥ ­ ©¤¥­ /᫨誮¬ ¬­®£® ä ©«®¢
ld hl,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
ld de,(D1FE2) ;  ¤à¥á à ¡. ¡ãä¥à 
ld bc,11
ldir ; ¯¥à¥ª ç âì "???????.."
ld a,(D1F3A) ; à ¡. ï祩ª  (§¤¥áì  âਡãâ § ¯¨á¨)
ld (de),a ;+11 à ¡. ¡ãä¥à ä㭪樨
A201D: inc de
ld bc,32
add ix,bc
ld (D1FE4),ix ;; á«¥¤. § ¯¨áì
ld hl,T1F3B+12 ; ᬥé. ¢ § ¯¨á¨
ld bc,20
ldir
ld a,(T1F3B+11) ; ï祩ª   âਡã⮢ ä ©« 
ld (de),a ;+32 ¢ à ¡. ¡ãä¥à¥ ä㭪樨
inc de
ld hl,T1F3B ; ­ ©¤¥­­ ï § ¯¨áì ä ©« /ª â «®£ 
ld a,(D1FE7) ; ä« £ 8.3 ¨«¨ 11 ä®à¬ â  ¨¬¥­¨
or a
jr nz,A2049 ; 11 -> 8.3
; ᪮¯¨à. ¨¬ï ­ ©¤. ä ©«  (ä®à¬ â 11)
ld bc,11
ldir
A2042: ld a,true
ld (D1FE6),a ; ä« £ ®âà ¡®âª¨ "F_FIRST"
xor a
ret
; ¯à¥®¡à. 11 -> 8.3 ä®à¬ â
A2049: call A1FB8
jr A2042
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #1A. <20>®¨áª á«¥¤ãî饣® ᮢ¯ ¤ î饣® ä ©« .
;
; ¢å®¤: de = 㪠§ â¥«ì ­  à ¡®ç¨© ¡ãä¥à
; ¢ë室: de'= ¨­¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£  (¨á¯. #11 äã­ª.)
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_1A:ld a,(D1FE6) ; ä« £ ®âà ¡®âª¨ "F_FIRST"
or a
ld a,EUNOPER ; ª®¤ "­¥¢®§¬®¦­ ï ®¯¥à æ¨ï"
scf
ret z
ld (D1FE2),de ;  ¤à¥á à ¡. ¡ãä¥à 
ld hl,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
ex de,hl
ld bc,11
ldir
xor a
ld (D1FE6),a ; á¡à. ä« £ ®âà ¡®âª¨ "f_first"
ld a,(hl) ; ï祩ª   âਡã⮢ § ¯¨á¨
push hl
call A207B ; ­ ©â¨ á«¥¤. § ¯¨áì
pop de
ret c ; ­¥ ­ ©¤¥­  ¨«¨ ᫨誮¬ ¬­®£® ä ©«®¢
jr A201D ; ᪮¯¨à. ®áâ «ì­ë¥ 20 ¡ ©â § ¯¨á¨
; ¯®¨áª á«¥¤. § ¯¨á¨
A207B: ex af,af' ; á®åà.  âਡãâë § ¯¨á¨
xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
ex af,af' ; ¢®ááâ.  âਡãâë § ¯¨á¨
cpl
ld c,a
exx
ld de,0 ; á¡à. ¨­¤¥ªá § ¯¨á¨ (¨á¯. #11 äã­ª.)
exx
ld ix,(D1FE4) ;;  ¤à¥á á«¥¤. § ¯¨á¨
db 0DDh
ld a,h
db 0DDh
or l
jr z,search_record_too_many ; ¢ë諨 §  £à ­¨æã 0FFFFh
jr search_record_loop ; ­  横« ¯®¨áª  § ¯¨á¨
;-------------------------------------------------
; <20>®¨áª § ¯¨á¨ ª â «®£  ¢ ᯨ᪥ ª â «®£ 
;
; ¢å®¤: a= âਡãâ § ¯¨á¨
; ¢ë室: de'=¨­¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£ 
; CF - ª â «®£ ­¥ ­ ©¤¥­
;-------------------------------------------------
search_rec_dir:
ld a,10h ;  âਡãâ "dir"
call search_record
ret nc
ld a,ENOPATH ; ª®¤ "­¥¢¥à­ë© ¯ãâì"
ret
;-------------------------------------------------
; <20>®¨áª § ¯¨á¨ ä ©«  ¢ ᯨ᪥ ª â «®£ .
;
; ¢å®¤: a= âਡãâ § ¯¨á¨
; ¢ë室: ix= ¤à¥á ­ ©¤¥­­®© § ¯¨á¨
; de'=¨­¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£  (¤«ï #11 äã­ª.)
; CF - ¯à¨ ®è¨¡ª¥, A=ª®¤ ®è¨¡ª¨
;-------------------------------------------------
search_rec_file:
ld a,27h ;  âਡãâ "¢á¥, ªà®¬¥ ¯ ¯ª¨ ¨ ¬¥âª¨ ⮬ "
search_record:
ex af,af' ; á®åà.  âਡãâ § ¯¨á¨
xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
ex af,af' ; ¢®ááâ.  âਡãâ § ¯¨á¨
cpl
ld c,a
ld ix,LC000 ; ªíè ᯨ᪠ ª â «®£  ¤¨áª 
exx
ld de,0 ; á¡à. ¨­¤¥ªá § ¯¨á¨ (¨á¯. #11 äã­ª.)
exx
; 横« ¯®¨áª  § ¯¨á¨
search_record_loop:
ld a,(ix+0)
or a
jr z,search_record_not_found
cp 0E5h ; ª®¤ 㤠«. § ¯¨á¨
jp z,search_record_next
ld a,(ix+11) ;  âਡãâ § ¯¨á¨
and c ; ¨áª®¬ë©  âਡãâ ?
jp nz,search_record_next ; ­¥â
ld hl,T2364 ; £®â®¢®¥ ¨¬ï ä ©«  (11 ᨬ¢. ä®à¬ â)
db 0DDh
ld d,h
db 0DDh
ld e,l
ld b,11
ex de,hl
A20C9: ld a,(de)
cp "?"
jr z,A20D1
cp (hl)
jp nz,search_record_next
A20D1: inc hl
inc de
djnz A20C9
db 0DDh
ld d,h
db 0DDh
ld e,l
ld hl,T1F3B ; 32 ¡ãä¥à § ¯¨á¨
ex de,hl
ld bc,32
ldir ; ᪮¯¨à. ­ ©¤¥­­ãî § ¯¨áì ¢ ¡ãä¥à
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
and a
ret
;
search_record_next:
exx
inc de ; ++¨­¤¥ªá § ¯¨á¨ (¨á¯. #11 äã­ª.)
exx
ld de,32
add ix,de ; ­  á«¥¤. § ¯¨áì
jp nc,search_record_loop
; ¢ë室 §  £à ­¨æã 0FFFFh
search_record_too_many:
ld e,ETMFILE ; ª®¤ "᫨誮¬ ¬­®£® ä ©«®¢"
jr $+4
search_record_not_found:
ld e,ENOFILE ; ª®¤ "ä ©« ­¥ ®¡­ à㦥­"
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
ld a,e ; ª®¤ ®è¨¡ª¨
scf
ret
;-------------------------------------------------
; ’¥áâ ­  ¤®¯ãá⨬®¥ ¨¬ï ¨ ­ áâநâìáï ­  ¤¨áª.
; ¢å®¤: hl=áâப  ¨¬¥­¨
;-------------------------------------------------
A20F8: ld de,D213A ; ªã¤ 
ld bc,0DFFh ; b=áç¥â稪
A20FE: ld a,(hl)
inc hl
cp '\'
jr z,A2114
cp ":"
jr z,A2122
ld (de),a
inc de
cp " "+1
ccf
ret nc
djnz A20FE
ld a,EINVFNAM ; ª®¤ "­¥¢¥à­®¥ ¨¬ï"
scf
ret
;
A2114: ld a,0
ld (de),a
push hl
ld hl,D213A
call A2164
pop hl
jr nc,A20F8
ret
;
A2122: ld a,(D213A) ; ¡ãª¢  ¤¨áª 
cp "a"
jr c,A212F
cp "z"+1
jr nc,A212F
sub 20h
A212F: sub "A"
push hl
call A2147
pop hl
jr nc,A20F8
ret
; <20>ãä¥à ¨¬¥­¨ 8.3 ä®à¬ â 
D213A: db " ",0 ; 12 ¯à®¡¥«®¢
A2147: push af ; ­®¬¥à ¤¥¢ ©á 
ld c,1 ; ®âªàëâì ¤¥¢ ©á
rst 18h
pop bc
jr c,A215C ; ®è¨¡ª 
ld a,b
ld (disk),a ; ­®¬¥à ¤¨áª 
call A1370
ret c
ld a,(last_drive) ; ­®¬¥à ¯®á«. ¤¨áª 
and a
ret
;
A215C: cp EINVDRV ; ª®¤ "bad drive number"
scf
ret z
ld a,ENORDY ; ª®¤ "­¥â £®â®¢­®áâ¨"
scf
ret
A2164: xor a ; ­®¬¥à ¤¥áªà.
call search_handle ; ¯®¨áª ¤¥áªà. ä ©« 
ld a,(hl) ; 8.3 ¨¬ï
or a
jr nz,A2183
A216D: ld de,0
ld (iy+26),e
ld (iy+27),d
call A228F ; ¯à®ç¨â âì ᯨ᮪ ª â «®£ 
ld hl,T1510 ; ¡ãä¥à ⥪. ¯ã⨠(ª â «®£ ) á¨á⥬ë
ld (hl),'\'
inc hl
ld (hl),0
and a
ret
;
A2183: cp "."
jr nz,A21AF
ld a,(iy+26)
or (iy+27)
jr nz,A2195
inc hl
ld a,(hl)
or a
dec hl
jr z,A216D
A2195: exx
ld hl,T2364
ld de,T2364+1
ld bc,10
ld (hl)," "
ldir
exx
ld de,T2364
A21A7: ldi
ld a,(hl)
or a
jr nz,A21A7
jr A21B6
;
A21AF: ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
A21B6: call A21DC
ret c
ld (iy+26),e
ld (iy+27),d
ld de,L4000
ld (iy+28),e
ld (iy+29),d
call A228F ; ¯à®ç¨â âì ᯨ᮪ ª â «®£ 
and a
ret
A21CE: ld bc,32
add ix,bc ; ­  á«¥¤. § ¯¨áì
jr nc,A21E6
; ¯à¥¢ë襭¨¥ £à ­¨æë #FFFF
A21D5: pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
ld a,ENOPATH ; ª®¤ "­¥¢¥à­ë© ¯ãâì"
scf
ret
;
A21DC: xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
ld ix,LC000 ; ª¥è ᯨ᪠ ª â «®£ 
A21E6: ld a,(ix+0)
or a
jr z,A21D5 ; ᯨ᮪ ¯ãá⮩
cp 0E5h
jr z,A21CE ; ä ©« 㤠«¥­
ld a,(ix+11) ; ï祩ª   âਡã⮢
and 10h ; ª â «®£ ?
jr z,A21CE ; ­¥â, ­  á«¥¤. § ¯¨áì
; ª â «®£
ld hl,T2364
db 0DDh
ld d,h
db 0DDh
ld e,l
ex de,hl
ld b,11
A2201: ld a,(de)
cp "?"
jr z,A2209
cp (hl)
jr nz,A21CE ; ­  á«¥¤. § ¯¨áì
A2209: inc hl
inc de
djnz A2201
ld a,(ix+0)
cp "."
jr nz,A2245
ld a,(ix+1)
cp "."
jr nz,A223A
; த¨â. ª â «®£
ld hl,T1510 ; ¡ãä¥à ⥪. ¯ã⨠(ª â «®£ ) á¨á⥬ë
ld d,h
ld e,l
ld bc,256
xor a
cpir
ld bc,256
ld a,'\'
cpdr
inc hl
and a
ex de,hl
sbc hl,de
ex de,hl
jr nz,A2238
inc hl
A2238: ld (hl),0
A223A: ld e,(ix+26)
ld d,(ix+27)
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
and a
ret
;
A2245: db 0DDh
ld e,l
db 0DDh
ld d,h
ld hl,T1510 ; ¡ãä¥à ⥪. ¯ã⨠(ª â «®£ ) á¨á⥬ë
ld bc,255
xor a
cpir
dec hl
dec hl
ld a,'\'
cp (hl)
inc hl
jr z,$+4
ld (hl),a
inc hl
ld bc,0820h ; b=áç¥â稪, c=¯à®¡¥«
A225F: ld a,(de)
inc de
cp c
jr z,A2266
ld (hl),a
inc hl
A2266: djnz A225F
ld a,(de)
inc de
cp c
jr z,A227F
ld (hl),"."
inc hl
ld (hl),a
inc hl
ld a,(de)
inc de
cp c
jr z,A227F
ld (hl),a
inc hl
ld a,(de)
cp c
jr z,A227F
ld (hl),a
inc hl
A227F: ;ld (hl),'\' ; ; ª®­æ®¢ª  ¯ãâ¨
;inc hl;
ld (hl),0
jr A223A
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #1E. ˆ­ä®à¬ æ¨ï ® ⥪ã饬 ª â «®£¥.
;
; ¢å®¤: HL - ¡ãä¥à ¢ ¯ ¬ï⨠256 ¡ ©â
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_1E:ex de,hl ; de=ªã¤ 
ld hl,T1510 ; ®âªã¤  ; CurrentDirectory
ld a,(hl)
or a
ldi
jr nz,$-4
ret
;-------------------------------------------------
; <20>à®ç¨â âì ᯨ᮪ ª â «®£ 
;-------------------------------------------------
A228F: xor a
ld l,a
ld h,a
push hl
pop ix
ld b,a ; ®â ­ ç «  ä ©« 
call Func_15 ; ¯¥à¥¬¥é¥­¨¥ 㪠§ â¥«ï ¢ ä ©«¥
xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
; ®ç¨áâ¨âì ª¥è ª â «®£ 
/* ld hl,LC000 ;@@
ld de,LC000+1
ld bc,4000h-1
ld (hl),l
ldir ; 21 * #3FFF = 344.043
*/ ld (.stack),sp ; á®åà. á⥪
ld de,0 ; ¡ ©âë § ¯®«­¥­¨ï
ld bc,400h / 2
ld sp,0000h ; ®âªã¤  (¢­¨§)
.loop: push de
push de
push de
push de
push de
push de
push de
push de
push de
push de
push de
push de
push de
push de
push de
push de
dec bc
ld a,c
or b
jp nz,.loop
db 31h ; ld sp,..
.stack: dw 0
;
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld (iy+40),a ; á®åà. ¢ ¤¥áªà¨¯â®à
ld d,(iy+26) ; de=­®¬¥à ¯¥à¢®£® ª« áâ¥à 
ld e,(iy+27)
ld a,d
or e
jr z,A22D2 ; root ??
ld hl,LC000 ; ªã¤ 
ld de,4000h ; ᪮«ìª®
xor a ; ¤¥áªà¨¯â®à
call Func_13 ; ç⥭¨¥ ¨§ ä ©« 
ld (size_cash_directory),de ; ç¨á«® ¯à®ç¨â. ¡ ©â®¢
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
and a
ret
;
A22D2: ld hl,(D1500) ; áâ. à §àï¤
ld ix,(D1502) ; ­®¬¥à «®£. ᥪâ®à 
ld a,(D1505)
ld b,32 ; à §¬¥à root-ª â «®£ 
sub b
jr nc,A22E3
add a,b
ld b,a ; ç¨á«® ᥪâ®à®¢
A22E3: ld a,(disk) ; ­®¬¥à ¤¨áª 
ld c,5 ; ç⥭¨¥ ᥪâ®à®¢
ld de,LC000 ; ¡ãä¥à
rst 18h
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
and a
ret
;-------------------------------------------------
; ‘¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª.
; ¢å®¤: iy=áâàãªâãà  ¤¥áªà¨¯â®à 
;-------------------------------------------------
flush_cash_dir:
xor a
ld l,a
ld h,a
push hl ; áâ. à §àï¤
pop ix ; ¬«. à §àï¤
ld b,a ; ®â ­ ç «  ä ©« 
call Func_15 ; ¯¥à¥¬¥é¥­¨¥ 㪠§ â¥«ï ¢ ä ©«¥
xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld (iy+40),a ; á®åà. ¢ ¤¥áªà¨¯â®à¥
ld d,(iy+26) ; de=­®¬¥à ¯¥à¢®£® ª« áâ¥à 
ld e,(iy+27)
ld a,d
or e
jr z,A2325 ; root ??
ld hl,LC000 ; ®âªã¤ 
ld de,(size_cash_directory) ; ᪮«ìª®
xor a ; ¤¥áªà.
call Func_14 ; § ¯¨áì ¢ ä ©«
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
and a
ret
;
A2325: ld hl,(D1500) ; áâ. à §àï¤
ld ix,(D1502) ; «®£. ­®¬¥à ᥪâ®à 
ld a,(D1505)
ld b,32 ; ¬ ªá. ç¨á«® ᥪâ®à®¢ ?
sub b
jr nc,$+4
add a,b
ld b,a ; ç¨á«® ᥪâ®à®¢
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld c,6 ; § ¯¨áì ᥪâ®à®¢
ld de,LC000 ; ¡ãä¥à
rst 18h
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
and a
ret
size_cash_directory:
dw 0 ; à §¬¥à ᯨ᪠ ª â «®£ 
;-----------------------------------------------------------
; <20>®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘ ¢ 3-¥ ®ª­®
;
; ¢å®¤: a=«®£. ­®¬¥à ¡ ­ª¨ (0..2, ¢ ¤ ­­®© ¢¥àᨨ „Ž‘)
; ¢ë室: a=áâ à ï ¡ ­ª  ¯®àâ 
;-----------------------------------------------------------
set_dos_page:
ld c,a
ld b,0
ld hl,list_dos_pages ; 16 ¡ ©â, ­®¬¥à  ¡ ­®ª à áè¨à¥­¨ï „Ž‘
add hl,bc
in a,(0E2h) ; á®åà. ¯®àâ
ld c,0E2h ; ¯®àâ
outi ; ®¤¨­ ¡ ©â (hl) -> ¯®àâ (bc)
ret
; Œ áᨢ «®£. ­®¬¥à®¢ ¡ ­®ª à áè¨à¥­¨ï „Ž‘. 16 ¡ ©â.
list_dos_pages:
db -1
db -1
db -1
db -1
db -1
db -1
db -1
db -1
db -1
db -1
db -1
db -1
db -1
db -1
db -1
db -1
; <20>ãä¥à 11 ᨬ¢. ¨¬¥­¨ (¯¥à¢ë¥ 11 ¡ ©â)
T2364: ds 8 ; ¨¬ï ä ©« 
T236C: ds 3 ; à áè.
;
ds 21 ; 11+21=32
;-------------------------------------------------
; <20>८¡à §®¢ âì ¨¬ï 8.3 -> 11 ä®à¬ â
; ¢å®¤: hl = 8.3 ¨¬ï
; de = ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
; ¯à¨ ®è¨¡ª¥ CF - ­¥¤®¯. ¨¬ï
;-------------------------------------------------
A2384: push hl
push de
ld h,d
ld l,e
inc de
ld (hl)," "
ld bc,10
ldir
pop de
pop hl
ld a,(hl)
cp "."
scf
jr z,A239A
cp " "+1
A239A: ld a,EINVFNAM ; ª®¤ "­¥¢¥à­®¥ ¨¬ï"
ret c
ld bc,0902h ; b=áç¥â稪
A23A0: ld a,(hl)
cp " "+1
ccf
ret nc
cp '"'
jr z,A23E9 ; ®è¨¡ª 
cp "*"
jr z,A23ED
cp "+"
jr z,A23E9 ; ®è¨¡ª 
cp ","
jr z,A23E9 ; ®è¨¡ª 
cp "."
jr z,A23FE
cp "/"
jr z,A23E9 ; ®è¨¡ª 
cp ":"
jr z,A23E9 ; ®è¨¡ª 
cp ";"
jr z,A23E9 ; ®è¨¡ª 
cp "<"
jr z,A23E9
cp "="
jr z,A23E9
cp ">"
jr z,A23E9
cp "["
jr z,A23E9
cp '\'
jr z,A23E9
cp "]"
jr z,A23E9
cp "|"
jr z,A23E9
call upper ; a..z -> A..Z
ld (de),a
inc hl
inc de
djnz A23A0
A23E9: ld a,EINVFNAM ; ª®¤ "­¥¢¥à­®¥ ¨¬ï"
scf
ret
;
A23ED: ld a,"?"
inc hl
djnz A23F6
jr A23E9
;
A23F6: ld (de),a
inc de
djnz A23F6
ld b,1
jr A23A0
A23FE: ld a," "
inc hl
djnz A240D
A2403: ld b,4
dec c
jr nz,A23A0
jr A23E9 ; ª®¤ "­¥¢¥à­®¥ ¨¬ï"
;
A240D: ld (de),a
inc de
djnz A240D
jr A2403
; a..z -> A..Z
upper: cp "a"
ret c
cp "z"+1
jr nc,A2425
sub 20h
ret
;
A2425: cp " " ; àãá᪠ï
ret c
cp "¯"+1
jr nc,A2430
sub 20h
ret
;
A2430: cp "à" ; àãá᪠ï
ret c
cp "ð"
jr nc,A243B
sub 50h
ret
;
A243B: cp "ñ"
ret nz
dec a ; ñ -> ð
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #21. ’¥ªãé ï ¤ â  ¨ ¢à¥¬ï.
;
; ¢å®¤: ­¥â
; ¢ë室: D - ¤¥­ì
; E - ¬¥áïæ
; IX - £®¤
; H - ç á
; L - ¬¨­ãâë
; B - ᥪ㭤ë
; C - ¤¥­ì ­¥¤¥«¨
;/////////////////////////////////////////////////////////////////////
Func_21:ld c,0F5h
rst 08h
jp c,A24D0
ld d,7 ; ­®¬¥à ॣ¨áâà 
call A24BB ; ç⥭¨¥ ॣ¨áâ஢ CMOS
push af
ld d,8
call A24BB
pop de
ld e,a
push de
ld d,4
call A24BB
push af
ld d,2
call A24BB
pop de
ld e,a
push de
ld d,0
call A24BB
push af
ld d,6
ld c,0F6h
rst 08h
pop de
ld e,a
push de
ld d,9
call A24BB
push af
ld d,32h
ld c,0F6h
rst 08h
db 0DDh
ld h,a
pop af
cp 80 ;50h
push af
jr c,A248B
ld a,19h
db 0DDh
cp h
jr z,A249A
jr A2491
;
A248B: ld a,20h
db 0DDh
cp h
jr z,A249A
A2491: push af
ld d,32h
ld c,0F7h
rst 08h
pop af
db 0DDh
ld h,a
A249A: pop af
db 0DDh
ld l,a
db 0DDh
ld a,h
call A24BE
ld l,a
ld h,0
ld c,l
ld b,h
db 0DDh
ld h,b
add hl,hl
add hl,hl
add hl,bc
add hl,hl
ld b,h
ld c,l
add hl,hl
add hl,hl
add hl,bc
add hl,hl
ex de,hl
add ix,de
pop bc
pop hl
pop de
and a
ret
; —⥭¨¥ ॣ¨áâ஢ CMOS
; ¢å®¤: d=­®¬¥à ॣ¨áâà 
A24BB: ld c,0F6h
rst 08h
A24BE: ld e,a
rrca
rrca
rrca
rrca
and 0Fh
ld d,a
add a,a
add a,a
add a,d
add a,a
ld d,a
ld a,e
and 0Fh
add a,d
ret
A24D0: ld de,(D255D)
ld hl,(D255F)
ld bc,(D2561)
ld ix,(D2563)
and a
ret
A24E1: ld c,0
ld (D255D),de
ld (D255F),hl
ld (D2561),bc
ld (D2563),ix
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #22. “áâ ­®¢¨âì ⥪ãéãî ¤ âã ¨ ¢à¥¬ï.
;
; ¢å®¤: D - ¤¥­ì
; E - ¬¥áïæ
; IX - £®¤
; H - ç á
; L - ¬¨­ãâë
; B - ᥪ㭤ë
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_22:push ix
push bc
push hl
push de
ld c,0F5h
rst 08h
jr c,A24E1
pop af
push af
ld d,7 ; ­®¬¥à ॣ¨áâà 
call A2544 ; § ¯¨áì ॣ¨áâ஢ CMOS
pop bc
ld a,c
ld d,8
call A2544
pop af
push af
ld d,4
call A2544
pop bc
ld a,c
ld d,2
call A2544
pop af
push af
ld d,0
call A2544
pop bc
ld a,c
ld d,6
ld c,0F7h
rst 08h
pop hl
xor a
ld de,100
A252E: inc a
sbc hl,de
jr nc,A252E
add hl,de
dec a
push hl
ld d,32h
call A2544
pop bc
ld a,c
ld d,9
call A2544
and a
ret
; ‡ ¯¨áì ॣ¨áâ஢ CMOS
; ¢å®¤: d=­®¬¥à ॣ¨áâà 
A2544: call A254B
ld c,0F7h
rst 08h
ret
;
A254B: ld bc,0AFFh ; ª®­áâ ­â 
A254E: inc c
sub b
jr nc,A254E
add a,b
ld b,a
ld a,c
rlca
rlca
rlca
rlca
and 0F0h
or b
ret
; „ â  ¯®-㬮«ç ­¨î
D255D: dw 0101h ; ¤¥­ì:¬¥áïæ
D255F: dw 0000h ; ç áë:¬¨­ãâë
D2561: dw 0001h ; 00h=ᥪ㭤ë
D2563: dw 2005 ; £®¤
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #17. ˆ­ä®à¬ æ¨ï ® ¤ â¥ ¨ ¢à¥¬¥­¨ ä ©« .
;
; ¢å®¤: A - ¤¥áªà¨¯â®à ä ©« 
; ¢ë室: D - ¤¥­ì
; E - ¬¥áïæ
; IX - £®¤
; H - ç á
; L - ¬¨­ãâë
; B - ᥪ㭤ë
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_17:call search_handle ; ¯®¨áª ¤¥áªà. ä ©« 
ret c ; ­¥ ­ ©¤¥­
; ¢à¥¬ï/¤ âã ¨§ áâàãªâãàë ¤¥áªà.
ld e,(iy+22) ; ¢à¥¬ï
ld d,(iy+23) ;
ld c,(iy+24) ; ¤ â 
ld b,(iy+25) ;
call A25C3 ; à áª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #18. ˆ§¬¥­¥­¨¥ ¤ âë ¨ ¢à¥¬¥­¨ ä ©« .
;
; ¢å®¤: A - ¤¥áªà¨¯â®à ä ©« 
; D - ¤¥­ì
; E - ¬¥áïæ
; IX - £®¤
; H - ç á
; L - ¬¨­ãâë
; B - ᥪ㭤ë
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_18:push af
call A2599 ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
pop af ; ¤¥áªà¨¯â®à
push de
push bc
call search_handle ; ¯®¨áª ¤¥áªà. ä ©« 
pop bc
pop de
ret c ; ­¥ ­ ©¤¥­
; ¢à¥¬ï/¤ âã ¢ áâàãªâãàã ¤¥áªà.
ld (iy+22),e ; ¢à¥¬ï
ld (iy+23),d ;
ld (iy+24),c ; ¤ â 
ld (iy+25),b ;
set 7,(iy+41) ; ãáâ. ¯à¨§­ ª ¨§¬¥­¥­¨ï ä ©« 
and a
ret
;-------------------------------------------------
; ‡ ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
; ¢å®¤: de - ¤¥­ì/¬¥áïæ
; hl - ç áë/¬¨­ãâë
; b - ᥪ㭤ë
; ix - £®¤
; ¢ë室: de - ¢à¥¬ï
; bc - ¬¥áïæ/¤¥­ì
; ix - £®¤
;-------------------------------------------------
A2599: ld a,l
rlca
rlca
sla a
rl h
sla a
rl h
sla a
rl h
srl b
or b
ld l,a
ld bc,-1980
add ix,bc
ld a,e
rlca
rlca
rlca
rlca
and 0F0h
db 0DDh
ld b,l
sla a
rl b
or d
ld c,a
ex de,hl
and a
ret
;-------------------------------------------------
; <20> áª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
; ¢å®¤: de - ¢à¥¬ï
; bc - ¬¥áïæ/¤¥­ì
; ix - £®¤
; ¢ë室: de - ¤¥­ì/¬¥áïæ
; hl - ç áë/¬¨­ãâë
; b - ᥪ㭤ë
; ix - £®¤
;-------------------------------------------------
A25C3: ex de,hl
ld a,c
and 1Fh
ld d,a
srl b
rr c
ld a,c
rrca
rrca
rrca
rrca
and 0Fh
ld e,a
ld c,b
ld b,0
ld ix,1980
add ix,bc
ld a,l
and 1Fh
add a,a
ld b,a
srl h
rr l
srl h
rr l
srl h
rr l
srl l
srl l
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #1D. ‘¬¥­  ⥪ã饣® ª â «®£ .
; Œ¥­ï¥â ⥪ã騩 ª â «®£ ¨ ⥪ã騩 ¤¨áª, ¥á«¨ ®­ 㪠§ ­ ¢ ä ©«®¢®©
; ᯥæ¨ä¨ª æ¨¨. …᫨ ¯ãâì ­ ç¨­ ¥âáï á "\" - íâ® ®§­ ç ¥â ¯ãâì ®â
; ª®à­¥¢®£® ª â «®£ , ¨­ ç¥ ®â ⥪ã饣®.
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ª â «®£ 
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_1D:call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A
ld a,(hl)
or a
call nz,A2164
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #1B. ‘®§¤ ­¨¥ ª â «®£ .
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ª â «®£ 
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_1B:call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
call A228F ; ¯à®ç¨â âì ᯨ᮪ ª â «®£ 
call search_rec_dir ; ¯®¨áª § ¯¨á¨ ª â «®£  ¢ ᯨ᪥ ¤¨áª 
ld a,EEXISDIR ; ª®¤ "ª â «®£ áãé¥áâ¢ã¥â"
ccf
ret c ; ª â «®£ ­ ©¤¥­
call A10FD
ret c
push hl
ld de,(D150E) ; ­®¬¥à ª« áâ¥à 
call A11C4 ; § ¯¨á âì ¢ ª¥è FAT-  ­®¬¥à ª« áâ¥à 
call A128B ; ¯®¤ª«. ¡ ­ªã ª¥è  FAT ¨ § ¯¨á âì ¥£® ­  ¤¨áª
ld hl,T2364
ld de,T1F3B
ld bc,11
ldir
ex de,hl
ld a,10h ;  âਡãâ § ¯¨á¨ ª â «®£ 
ld (hl),a
inc hl
ld bc,0A00h ; b=áç¥â稪
ld (hl),c
inc hl
djnz $-2
push hl
call Func_21 ; ã§­ âì ⥪. ¤ âã ¨ ¢à¥¬ï
call A2599 ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
pop hl
ld (hl),e ; de=¢à¥¬ï
inc hl
ld (hl),d
inc hl
ld (hl),c ; ¤¥­ì
inc hl
ld (hl),b ; ¬¥áïæ
inc hl
pop de
push de
ld (hl),e
inc hl
ld (hl),d
inc hl
ld bc,0400h ; b=áç¥â稪
ld (hl),c
inc hl
djnz $-2
call A1F5B ; ᪮¯¨à. ­®¢ãî § ¯¨áì ¢ ᯨ᮪ ¤¨áª  (ª â «®£ )
call flush_cash_dir ; á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
ld hl,T0400 ; ¡ãä¥à
ld (hl),"." ; § ¯¨áì ⥪. ª â «®£ 
ld bc,0A20h ; b=áç¥â稪, c=¯à®¡¥«
inc hl
ld (hl),c
djnz $-2
inc hl
ld de,T1F3B+11 ; ï祩ª   âਡã⮢ ä ©« 
ex de,hl
ld bc,21
ldir
ex de,hl
ld (hl),"." ; § ¯¨áì த¨â. ª â «®£ 
inc hl
ld (hl),"."
ld bc,0920h ; b=áç¥â稪, c=¯à®¡¥«
inc hl
ld (hl),c
djnz $-2
inc hl
push hl
xor a ; «®£. ­®¬¥à áâà. (ªíè ᯨ᪠ ª â «®£ )
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
pop hl
push af ; áâ à ï ¡ ­ª  ¯®àâ 
ld a,(LC000)
cp "."
ld de,LC000+11 ;  âਡãâë § ¯¨á¨
jr z,A26A9
ld ix,T1F3B
xor a
ld (ix+26),a
ld (ix+27),a
ld de,T1F3B+11 ; ï祩ª   âਡã⮢ ä ©« 
A26A9: ex de,hl
ld bc,21
ldir
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
ex de,hl
ld d,h
ld e,l
inc de
ld (hl),0
ld bc,447
ldir
pop hl
call A1CB8
ld a,(D0083) ; ᥪâ®à®¢ ­  ª« áâ¥à
A26C4: push af
push hl ; áâ. à §àï¤
push ix ; ­®¬¥à «®£. ᥪâ®à 
in a,(0E2h)
push af
in a,(82h)
out (0E2h),a
ld de,LC400 ; ¡ãä¥à
ld b,1 ; ç¨á«® ᥪâ®à®¢
ld a,(disk) ; ­®¬¥à ¤¨áª 
ld c,6 ; § ¯¨áì ᥪâ®à®¢
rst 18h
pop af
out (0E2h),a
ld hl,T0400 ; ®âªã¤ 
ld de,T0400+1 ; ªã¤ 
ld bc,512-1
ld (hl),0
ldir
pop ix
pop hl
inc ix
db 0DDh
ld a,h
db 0DDh
or l
jr nz,$+3
inc hl
pop af
dec a
jr nz,A26C4
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #1C. “¤ «¥­¨¥ ª â «®£ .
; Œ®¦­® 㤠«¨âì ⮫쪮 ¯ãá⮩ ª â «®£.
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ª â «®£ 
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_1C:call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
ld hl,T2364
ld bc,11
ld a,"?"
cpir
ld a,EINVFNAM ; ª®¤ "­¥¢¥à­®¥ ¨¬ï"
scf
ret z
call A228F ; ¯à®ç¨â âì ᯨ᮪ ª â «®£ 
call search_rec_dir ; ¯®¨áª § ¯¨á¨ ª â «®£  ¢ ᯨ᪥ ¤¨áª 
ret c ; ­¥ ­ ©¤¥­
ld hl,(D1F55)
push ix
A2724: push hl
call A1CB8
ld a,(D0083) ; ᥪâ®à®¢ ­  ª« áâ¥à
A272B: push af
push hl ; áâ. à §àï¤
push ix ; ­®¬¥à «®£. ᥪâ®à 
in a,(0E2h)
push af
in a,(82h)
out (0E2h),a
ld de,LC400 ; ¡ãä¥à
ld bc,0105h ; ç⥭¨¥ ®¤­®£® ᥪâ®à 
ld a,(disk) ; ­®¬¥à ¤¨áª 
rst 18h
pop af
out (0E2h),a
ld b,16
ld hl,T0400
A2748: ld a,(hl)
or a
jr z,A2783
cp "."
jr z,A2761
cp 0E5h ; ¡ ©â 㤠«¥­¨ï ä ©« 
jr z,A2761
ld de,11 ; ᬥé. ¤® ¡ ©â   âਡã⮢
add hl,de
ld a,(hl)
sbc hl,de
;bit 3,a ;@@ ¡¨â "¬¥âª  ⮬ "
and 00001000b ; 7 ⠪⮢
jr z,A278A
A2761: ld de,32
add hl,de
djnz A2748
pop ix
pop hl
inc ix
db 0DDh
ld a,h
db 0DDh
or l
jr nz,$+3
inc hl
pop af
dec a
jr nz,A272B
pop hl ; ­®¬¥à ª« áâ¥à 
call A1132 ; ¯à®ç¨â âì ¨§ ª¥è  FAT-  ­®¬¥à á«¥¤. ª« áâ¥à 
ex de,hl ; hl=­®¬¥à á«¥¤. ª« áâ¥à 
jr nc,A2724 ; ­¥ ª®­¥æ 楯®çª¨
A277E: pop ix
jp mark_delete ; ¯®¬¥â¨âì § ¯¨áì ª ª "㤠«¥­­ ï"
;
A2783: pop ix
pop hl
pop af
pop hl
jr A277E
;
A278A: pop ix
pop hl
pop af
pop hl
pop ix
ld a,ENOEMPTY ; ª®¤ "ª â «®£ ­¥ ¯ãáâ"
scf
ret
D2795: dw 0
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #47. <20>®«ã祭¨¥ ¨­ä®à¬ æ¨¨ ¯à¨«®¦¥­¨ï.
;
; ¢å®¤: HL - ¡ãä¥à ¤ ­­ëå
; B - ­®¬¥à ¯®¤ä㭪樨:
; B=0 - ¯®«ã祭¨¥ ¯ à ¬¥â஢ ª®¬ ­¤­®© áâப¨
; B=1 - ¯®«ã祭¨¥ ¯®«­®£® ¯ã⨠ª ª â «®£ã ¯à®£à ¬¬ë
; B=2 - ¯®«ã祭¨¥ ¯®«­®£® ¯ã⨠¨ ¨¬¥­¨ ä ©«  ¯à®£à ¬¬ë
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_47: inc b
djnz A27A8
ex de,hl
xor a
ld (de),a
ld hl,(D2795)
ld c,(hl)
inc c
ret z
inc hl
ldir
and a
ret
; <20>®«ã祭¨¥ ¯ à ¬¥â஢ ª®¬ ­¤­®© áâப¨
A27A8: djnz A27CF
ex de,hl
ld hl,(D2795)
ld c,(hl)
inc hl
add hl,bc
inc hl
inc hl
push hl
ld bc,256
xor a
cpir
ld a,'\'
cpdr
inc hl
inc hl
pop bc
and a
sbc hl,bc
ld a,b
ld b,h
ld h,a
ld a,c
ld c,l
ld l,a
ldir
xor a
ld (de),a
ret
; <20>®«ã祭¨¥ ¯®«­®£® ¯ã⨠ª ª â «®£ã ¯à®£à ¬¬ë
A27CF: djnz A27E1
ex de,hl
ld hl,(D2795)
ld c,(hl)
inc hl
add hl,bc
inc hl
inc hl
A27DA: ld a,(hl)
ldi
or a
jr nz,A27DA
ret
;
A27E1: ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #45. <20> §¡®à ª®¬ ­¤­®© áâப¨.
;
; ¢å®¤: HL - 㪠§ â¥«ì ª®¬ ­¤­®© áâப¨
; DE - 㪠§ â¥«ì ­  ¡ãä¥à ¯®«ì§®¢ â¥«ï
; B - ­®¬¥à ¯®¤ä㭪樨:
; 0 - <20> §®¡à âì áâபã
; 1 - ‚뤥«¨âì ¨¬ï ¤¨áª 
; 2 - ‚뤥«¨âì ¤¨à¥ªâ®à¨î
; 3 - ‚뤥«¨âì ¨¬ï ä ©« 
; 4 - ‚뤥«¨âì à áè¨à¥­¨¥ ä ©« 
; 5 - ‚뤥«¨âì ¨¬ï ¤¨áª , ¯ãâì ª ä ©«ã, ¨¬ï ä ©«  ¨ à áè. ä ©« 
; 6 - ‡ à¥§¥à¢¨à®¢ ­®
; 7 - ‚뤥«¨âì ¯ à ¬¥âà ª®¬ ­¤­®© áâப¨
; 8 - <20>८¡à §®¢ âì ¨§ 11 ᨬ¢®«ì­®£® ä®à¬ â  ¢ ä®à¬ â „Ž‘
; 9 - <20>८¡à §®¢ âì ¨§ ä®à¬ â  „Ž‘ ¢ 11 ᨬ¢®«ì­ë© ä®à¬ â
; ¢ë室: ­¥â
;/////////////////////////////////////////////////////////////////////
Func_45:exx
ld hl,T0400
ld (D2947),hl
ld hl,T2952
ld (D2943),hl
ld hl,T295F
ld (D2945),hl
ld hl,T2949
ld (D2941),hl
exx
inc b
dec b
jr z,A2857 ; à §®¡à âì áâபã
dec b
jr z,A2825 ; ¢ë¤¥«¨âì ¨¬ï ¤¨áª 
dec b
jr z,A2845 ; ¢ë¤¥«¨âì ¤¨à¥ªâ®à¨î
dec b
jr z,A284B ; ¢ë¤¥«¨âì ¨¬ï ä ©« 
dec b
jr z,A2851 ; ¢ë¤¥«¨âì à áè¨à¥­¨¥ ä ©« 
dec b
jr z,A2859 ; ¢ë¤¥«¨âì ¤¨áª, ¯ãâì, ä ©« ¨ à áè.
dec b ; § à¥§¥à¢¨à®¢ ­®
jr z,A2821
dec b
jp z,Func_43 ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
dec b
jp z,A1FB8 ; ¯à¥®¡à. ¨¬ï 11 -> 8.3 ä®à¬ â
dec b
jp z,A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
A2821: ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
; ‚뤥«¨âì ¨¬ï ¤¨áª 
A2825: ld (D2941),de
call A287C
ret c
ld de,(D2941)
ld a,(de)
dec a
cp -1
ret z
cp "@"
jr c,A2841
cp "Z"
jr nc,A2841
sub "A"-1
ret
;
A2841: ld a,EINVDRV ; ª®¤ "­¥ ¢¥à­ë© ­®¬¥à ãáâனá⢠"
scf
ret
; ‚뤥«¨âì ¤¨à¥ªâ®à¨î
A2845: ld (D2947),de
jr A287C
; ‚뤥«¨âì ¨¬ï ä ©« 
A284B: ld (D2943),de ; ªã¤ 
jr A287C
; ‚뤥«¨âì à áè¨à¥­¨¥ ä ©« 
A2851: ld (D2945),de
jr A287C
; <20> §®¡à âì áâபã
A2857: jr A287C
; ‚뤥«¨âì ¤¨áª, ¯ãâì, ä ©« ¨ à áè.
A2859: ex de,hl
ld c,(hl)
inc hl
ld b,(hl)
inc hl
ld (D2941),bc
ld c,(hl)
inc hl
ld b,(hl)
inc hl
ld (D2947),bc
ld c,(hl)
inc hl
ld b,(hl)
inc hl
ld (D2943),bc
ld c,(hl)
inc hl
ld b,(hl)
ld (D2945),bc
ex de,hl
jr A287C
A287C: ex af,af'
exx
xor a
ld hl,(D2947)
ld (hl),a
ld hl,(D2943) ;  ¤à¥á ¡ãä¥à  ¯®¤ ¨¬ï ä ©« 
ld (hl),a
ld hl,(D2945)
ld (hl),a
ld hl,(D2941)
ld (hl),a
exx
ex af,af'
A2891: ld de,T2934
ld bc,0D01h ; áç¥â稪¨
A2897: ld a,(hl)
call upper ; a..z -> A..Z
ld (de),a
inc hl
inc de
inc c ; ++áç¥â稪
cp '\'
jr z,A2916
cp ":"
jr z,A2900
cp " "+1
jr c,A28BF
cp "?"
jr z,A28B9
cp "*"
jr z,A28B9
A28B3: djnz A2897
ld a,EINVFNAM ; ª®¤ "­¥¢¥à­®¥ ¨¬ï"
scf
ret
;
A28B9: ex af,af'
set 7,a
ex af,af'
jr A28B3
;
A28BF: ld a,2
cp c
jr z,A28FD
push hl
ld hl,T2934
ld de,(D2943) ;  ¤à¥á ¡ãä¥à  ¯®¤ ¨¬ï ä ©« 
ld b,0
dec c
dec c
ld a,c
ldir
ld c,a
xor a
ld (de),a
ld hl,(D2943) ;  ¤à¥á ¡ãä¥à  ¯®¤ ¨¬ï ä ©« 
ld a,"."
cpir
jr nz,A28F8
ld c,3
ld de,(D2945)
A28E5: ld a,(hl)
or a
jr nz,A28EC
ld a," "
dec hl
A28EC: ld (de),a
inc hl
inc de
dec c
jr nz,A28E5
xor a
ld (de),a
ex af,af'
set 1,a ; 㪠§ ­® à áè. ä ©« 
ex af,af'
A28F8: ex af,af'
set 0,a ; 㪠§ ­® ¨¬ï ä ©« 
ex af,af'
pop hl
A28FD: ex af,af'
and a
ret
A2900: xor a
ld (de),a
push hl
ld hl,T2934
ld de,(D2941)
ld b,0
ldir
pop hl
ex af,af'
set 3,a ; 㪠§ ­® ¨¬ï ¤¨áª 
ex af,af'
jp A2891
A2916: xor a
ld (de),a
push hl
push bc
ld hl,(D2947)
ld bc,255
cpir
dec hl
ex de,hl
ld hl,T2934 ; 12 ¯à®¡¥«®¢
pop bc
ld b,0
ldir
pop hl
ex af,af'
set 2,a ; 㪠§ ­ ¯ãâì ä ©« 
ex af,af'
jp A2891
T2934: db " ",0 ; 12 ¯à®¡¥«®¢
D2941: dw T2949
D2943: dw T2952
D2945: dw T295F
D2947: dw T0400 ; 512 ¡ ©â, ".", ".." § ¯¨á¨
T2949: ds 9
T2952: db " ",0 ; 9 ¯à®¡¥«®¢
T295F: db " ",0
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #43. ‚뤥«¨âì ¯ à ¬¥âà ª®¬ ­¤­®© áâப¨.
;
; ¢å®¤: HL - 㪠§ â¥«ì ª®¬ ­¤­®© áâப¨
; DE - ¡ãä¥à ¤«ï ¢ë¤¥«. ¯ à ¬¥âà 
; ¢ë室: HL - 㪠§ â¥«ì ­  á«¥¤. ¯ à ¬¥âà ª®¬-áâப¨
; CF=0 - ª®­¥æ áâப¨ ­¥ ¤®á⨣­ãâ (¥áâì ¤à㣨¥ ¯ à ¬¥âàë)
; CF=1 - ª®­¥æ áâப¨ (¢ ¡ãä¥à ¯¥à¥­¥áñ­ ¯®á«¥¤­¨© ¯ à ¬¥âà ¨«¨ ­®«ì)
;/////////////////////////////////////////////////////////////////////
Func_43:xor a
ld (de),a
A2965: ld a,(hl)
inc hl
cp " "
ret c
jr z,A2965
A296C: ld (de),a
ld a,(hl)
inc hl
inc de
cp " "+1
jr nc,A296C
cp " "
ld a,0
ld (de),a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #3C. ˆ­ä®à¬ æ¨ï ® ¯ ¬ïâ¨.
;
; ¢å®¤: ­¥â
; ¢ë室: HL - ®¡é¥¥ ª®«-¢® áâà ­¨æ
; BC - ª®«-¢® ᢮¡. áâà ­¨æ
;/////////////////////////////////////////////////////////////////////
Func_3C:ld c,0C0h
rst 08h
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #3D. ‚뤥«¥­¨¥ ¡«®ª  ¯ ¬ïâ¨.
;
; ¢å®¤: B - à §¬¥à ¡«®ª  ¢ áâà ­¨æ å ¯® 16kB
; ¢ë室: A - ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨, ¥á«¨ CF=0
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_3D:ld c,0C2h
rst 08h
ld e,a
ld a,ENOMEM ; ª®¤ "­¥ 墠⠥⠯ ¬ïâ¨"
ret c
ld d,0
ld hl,list_pages ; ¬ áᨢ ᯨ᪠ ¢ë¤¥«. áâà ­¨æ
add hl,de
ld a,(D2E70) ; ã஢¥­ì ⥪ã饩 ¯à®£à ¬¬ë
ld (hl),a
ld a,e
and a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #3E. Žá¢®¡®¦¤¥­¨¥ ¡«®ª  ¯ ¬ïâ¨.
;
; ¢å®¤: A - ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_3E:ld e,a
ld d,0
ld hl,list_pages ; ¬ áᨢ ᯨ᪠ ¢ë¤¥«. áâà ­¨æ
add hl,de
ld a,(D2E70) ; ã஢¥­ì ⥪ã饩 ¯à®£à ¬¬ë
cp (hl)
ld a,EINVMEM ; ª®¤ "­¥ áãé¥áâ¢ãî騩 ¡«®ª ¯ ¬ïâ¨"
scf
ret nz
push de
ld a,e
ld c,0C3h
rst 08h
pop de
ld a,EINVMEM ; ª®¤ "­¥ áãé¥áâ¢ãî騩 ¡«®ª ¯ ¬ïâ¨"
ret c
ld hl,list_pages ; ¬ áᨢ ᯨ᪠ ¢ë¤¥«. áâà ­¨æ
add hl,de
xor a
ld (hl),a
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #3F. ˆ§¬¥­¥­¨¥ ¡«®ª  ¯ ¬ïâ¨.
;
; ¢å®¤: A - ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
; B - ­®¢ë© à §¬¥à ¡«®ª 
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_3F:ld e,a
ld d,0
ld hl,list_pages ; ¬ áᨢ ᯨ᪠ ¢ë¤¥«. áâà ­¨æ
add hl,de
ld a,(D2E70) ; ã஢¥­ì ⥪ã饩 ¯à®£à ¬¬ë
cp (hl)
ld a,EINVMEM ; ª®¤ "­¥ áãé¥áâ¢ãî騩 ¡«®ª ¯ ¬ïâ¨"
scf
ret nz
ld d,b
push de
ld a,e
call A29EE
pop de
ld a,EINVMEM ; ª®¤ "­¥ áãé¥áâ¢ãî騩 ¡«®ª ¯ ¬ïâ¨"
ret c
ld a,b
cp d
ret z
jr c,A29DB
ld b,d
ld a,e
ld c,9Dh
rst 08h
ld a,b
ld c,0C3h
rst 08h
xor a
ret
;
A29DB: ld a,d
sub b
ld b,a
ld c,e
push bc
ld c,0C2h
rst 08h
pop bc
ld b,a
ld a,ENOMEM ; ª®¤ "­¥¤®áâ â®ç­® ¯ ¬ïâ¨"
ret c
ld a,c
ld c,9Eh
rst 08h
xor a
ret
A29EE: ld b,-1
ld c,a
A29F1: inc b
push bc
ld a,c
ld c,0C4h
rst 08h
pop bc
jr nc,A29F1
or a
scf
ret z
xor a
ret
A29FF: ld hl,list_pages ; ¬ áᨢ ᯨ᪠ ¢ë¤¥«. áâà ­¨æ
ld bc,256
A2A05: ld a,(D2E70) ; ã஢¥­ì ⥪ã饩 ¯à®£à ¬¬ë
cpir
ret nz
push hl
push bc
dec hl
and a
ld de,256
sbc hl,de
ld a,l
call Func_3E ; ®á¢®¡. ¡«®ª ¯ ¬ïâ¨
pop bc
pop hl
jr A2A05
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #38. <20>®¤ª«î祭¨¥ áâà ­¨æë ¯ ¬ïâ¨.
;
; ¢å®¤: A - ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
; B - ­®¬¥à áâà ­¨æë ¢ ¡«®ª¥ (0,1,2,..)
; H - ¡¨âë 6 ¨ 7 § ¤ îâ ­®¬¥à ®ª­ , ¢ ª®â®à®¥ ¡ã¤¥â ¯®¤ª«. áâà ­¨æ 
; ¢ë室: A - ­®¬¥à áâà ­¨æë, ¥á«¨ CF=0
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_38:bit 7,h
jr z,Func_39 ; ¢ 1-¥
bit 6,h
jr z,Func_3A ; ¢® 2-¥
jr Func_3B ; ¢ 3-¥
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #39. <20>®¤ª«î祭¨¥ áâà ­¨æë ¯ ¬ï⨠¢ ¯¥à¢®¥ ®ª­®.
;
; ¢å®¤: A - ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
; B - ­®¬¥à áâà ­¨æë ¢ ¡«®ª¥ (0,1,2,..)
; ¢ë室: A - ­®¬¥à áâà ­¨æë, ¥á«¨ CF=0
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_39:ld c,0C4h
ex de,hl
rst 08h
ex de,hl
ret c
ld c,0A2h
in b,(c)
out (c),a
ld a,b
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #3A. <20>®¤ª«î祭¨¥ áâà ­¨æë ¯ ¬ï⨠¢® ¢â®à®¥ ®ª­®.
;
; ¢å®¤: A - ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
; B - ­®¬¥à áâà ­¨æë ¢ ¡«®ª¥ (0,1,2,..)
; ¢ë室: A - ­®¬¥à áâà ­¨æë, ¥á«¨ CF=0
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_3A:ld c,0C4h
ex de,hl
rst 08h
ex de,hl
ret c
ld c,0C2h ; ¯®àâ
in b,(c)
out (c),a
ld a,b
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #3B. <20>®¤ª«î祭¨¥ áâà ­¨æë ¯ ¬ï⨠¢ âà¥âì¥ ®ª­®.
;
; ¢å®¤: A - ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
; B - ­®¬¥à áâà ­¨æë ¢ ¡«®ª¥ (0,1,2,..)
; ¢ë室: A - ­®¬¥à áâà ­¨æë, ¥á«¨ CF=0
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_3B:ld c,0C4h
ex de,hl
rst 08h
ex de,hl
ret c
ld c,0E2h
in b,(c)
out (c),a
ld a,b
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #40. ‚믮«­¨âì ä ©«.
;
; ¢å®¤: HL - 㪠§ â¥«ì ­  ¨¬ï ä ©« 
; B=0 - § £à㧨âì ¨ ¢ë¯®«­¨âì ¯à®£à ¬¬ã
; ¢ë室: A - ª®¤ § ¢¥à襭¨ï, ¥á«¨ CF=0
; ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_40: inc b
dec b
jp z,A2AFE
dec b
jp z,A2B09
ld a,EINVFNC ; ª®¤ "­¥ ¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
A2A5D: ld a,(hl)
inc hl
cp '\'
ret z
cp "/"
ret z
cp " "+1
jr nc,A2A5D
ret
A2A6A: ld a,2 ; «®£. ­®¬¥à áâà. (path, ¯¥à¥¬. ®ªàã¦.)
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
call Func_02 ; ¯®«ãç¨âì ­®¬¥à ⥪. ¤¨áª 
add a,"A"
ld hl,LFD00
ld (hl),a
inc hl
ld a,":"
ld (hl),a
inc hl
call Func_1E ; ¨­ä  ® ⥪. ª â «®£¥
call A2AC1
ld hl,LFC80
A2A87: ld e,(hl)
inc hl
ld d,(hl)
inc hl
bit 1,(hl)
inc hl
push hl
push bc
ex de,hl
call z,A2AB8
call Func_1D ; ᬥ­  ⥪ã饣® ª â «®£ 
jr c,A2AAC
ld hl,D2E7C ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
jr c,A2AAC
call A2CB6 ; áà ¢­¨âì/¤®¡ ¢¨âì à áè. á "EXE" (¥á«¨ § ¤ ­®)
jr c,A2AAC ; ­¥ ᮢ¯ ¤ ¥â
call search_rec_file ; ¯®¨áª § ¯¨á¨ ä ©«  ¢ ᯨ᪥ ¤¨áª 
A2AAC: pop bc
pop hl
jr nc,A2AB3 ; § ¯¨áì ­ ©¤¥­ 
djnz A2A87
scf
A2AB3: pop bc
ld a,b
out (0E2h),a ; ¢®ááâ. ¯®àâ
ret
A2AB8: push hl
ld hl,LFD00
call Func_1D ; ᬥ­  ⥪ã饣® ª â «®£ 
pop hl
ret
A2AC1: ld hl,LFC7F
ld de,LFDFF
ld b,0
A2AC9: ld (hl),c
inc hl
xor a
ld (de),a
ld c,a
inc de
ld (hl),e
inc hl
ld (hl),d
inc hl
inc b
A2AD4: ld a,(de)
cp '\'
jr nz,A2ADB
set 1,c
A2ADB: ld a,(de)
cp ";"
jr z,A2AC9
inc de
cp ":"
jr z,A2AD4
or a
jr nz,A2ADB
ld (hl),c
inc hl
ld (hl),a
inc hl
ld (hl),a
ret
T2AEE: db "PATH=",0 ; ¨¬ï ¯¥à¥¬. ®ªà㦥­¨ï
; ++ã஢­ï ⥪ã饩 ¯à®£à ¬¬ë
A2AF4: ld hl,D2E70
inc (hl)
ret
; --ã஢­ï ⥪ã饩 ¯à®£à ¬¬ë
A2AF9: ld hl,D2E70
dec (hl)
ret
;------------------------------------------------------------------------
; ‡ £à㧨âì ¨ ¢ë¯®«­¨âì ¯à®£à ¬¬ã.
; äã­ª. 40h, B=0.
;
; 1) Žâªà뢠¥â exe-ä ©« ­  ç⥭¨¥;
; 2) ‘ç¨â뢠¥â ¢ à ¡®çãî ®¡« áâì ¯à¥ä¨ªá exe-ä ©« ;
; 3) ‚뤥«ï¥â ¡«®ª ¯ ¬ïâ¨, âà¥¡ã¥¬ë© ¤«ï § £à㧪¨ ¢á¥£® ä ©«  ¨«¨ ¯¥à¢¨ç­®£®
; § £àã§ç¨ª , ¥á«¨ ¥£® à §¬¥à ­¥ à ¢¥­ ­ã«î;
; 4) ‘®åà ­ï¥â á⥪;
; 5) <20>®¤ª«îç ¥â áâà ­¨æë ¨§ ¢ë¤¥«¥­­®£® ¡«®ª ;
; 6) ‘âந⠯à¥ä¨ªá § ¯ã᪠ ¯à®£à ¬¬ë ¨ ãáâ ­ ¢«¨¢ ¥â ­  ­¥£® ॣ¨áâà IX;
; 7) ‘ç¨â뢠¥â ä ©« ¯®  ¤à¥áã 㪠§ ­­®¬ã ¢ ᬥ饭¨¨ 16 (€¤à¥á à á¯®«®¦¥­¨ï
; ª®¤  ¢ ¯ ¬ïâ¨);
; 8) ‡ ªà뢠¥â exe-ä ©«, ¥á«¨ íâ® ­¥ ¯¥à¢¨ç­ë© § £àã§ç¨ª;
; 9) “áâ ­ ¢«¨¢ ¥â á⥪ à ¢­ë¬ §­ ç¥­¨î ¨§ ᬥ饭¨ï 20 (€¤à¥á à á¯. á⥪ );
; 10) <20>¥à¥¤ ¥â ã¯à ¢«¥­¨¥ ¯®  ¤à¥áã 㪠§ ­­®¬ã ¢ ᬥ饭¨¨ 18 (€¤à¥á § ¯ã᪠);
;
; <20>à¥ä¨ªá § ¯ã᪠ ä ©« :
;
; -03 1 db ? ; „¥áªà¨¯â®à ä ©« , ¥á«¨ exe-ä ©« á ¯¥à¢¨ç­ë¬ § £àã§ç¨ª®¬
; -02 1 db ? ; ˆ¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
; -01 1 db ? ; “஢¥­ì ⥪ã饩 ¯à®£à ¬¬ë
; +00 1 db ? ; „«¨­  ª®¬-áâப¨
; +01 127 ds ? ; <20> à ¬¥âàë ª®¬-áâப¨, § ª ­ç¨¢ ¥âáï ­ã«¥¬
;------------------------------------------------------------------------
A2AFE: ld (D2E78),hl
call A2A5D
ld hl,(D2E78)
jr c,A2B32
; B=1.
A2B09: ld (D2E78),hl
ld a,1
ld (D1F3A),a ; à ¡. ï祩ª 
call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
call A2CB6 ; áà ¢­¨âì/¤®¡ ¢¨âì à áè. á "EXE" (¥á«¨ § ¤ ­®)
ld a,ENOFILE ; ª®¤ "ä ©« ­¥ ­ ©¤¥­"
ret c
call A2AF4
call A1E89
jr nc,A2B75
jr A2AF9
;
A2B32: ld a,1
ld (D1F3A),a ; à ¡. ï祩ª 
call A20F8 ; â¥áâ ­  ¤®¯ãáâ. ¨¬ï ¨ ­ áâà. ­  ¤¨áª
ret c
ld hl,D213A ; 8.3 ¨¬ï
ld de,T2364 ; ¡ãä¥à ¨¬¥­¨ 11 ᨬ¢. ä®à¬ â 
call A2384 ; ¯à¥®¡à. ¨¬ï 8.3 -> 11 ä®à¬ â
ret c
call A2CB6 ; áà ¢­¨âì/¤®¡ ¢¨âì à áè. á "EXE" (¥á«¨ § ¤ ­®)
ld a,ENOFILE ; ª®¤ "ä ©« ­¥ ­ ©¤¥­"
ret c
call A2AF4
call A1E89
jr nc,A2B75
call A2AF9
ld hl,T2AEE ; ¨¬ï ¯¥à¥¬. ®ªà㦥­¨ï "PATH="
ld de,LFE00 ; ªã¤ 
ld b,1 ; ¯®«ãç¨âì ¯¥à¥¬. ®ªà㦥­¨ï
call Func_46 ; äã­ªæ¨ï á¨áâ. ®ªà㦥­¨ï
ld hl,(D2E78)
ld de,D2E7C
A2B67: ld a,(hl)
ldi
or a
jr nz,A2B67
call A2A6A
ld hl,(D2E78)
jr A2B09
;
A2B75: ld (D2E76),a ; á®åà. ¤¥áªà. ä ©« 
ld hl,D2E7C ; ¡ãä¥à
ld de,128 ; ç¨á«® ç¨â. ¡ ©â
ld a,(D2E76) ; ¤¥áªà. ä ©« 
call Func_13 ; ç⥭¨¥ ¨§ ä ©« 
jp c,A2CD7
ld ix,D2E7C
ld hl,(D2E7C)
ld de,"XE" ; ᨣ­ âãà 
sbc hl,de
ld a,EINVEXE ; ª®¤ "­¥¯à ¢¨«ì­ë© EXE-ä ©«"
scf
jp nz,A2CD7
ld a,(ix+3)
or a
ld a,ENSUPEXE ; ª®¤ "­¥ ¯®¤¤¥à¦. ¢¥àá¨ï EXE-ä ©« "
scf
jp nz,A2CD7
ld de,(D2E84)
ld a,e
or d
jp nz,A2CE4
ld l,a
ld h,a
push hl
pop ix
ld b,2 ; ®â ª®­æ  ä ©« 
ld a,(D2E76) ; ¤¥áªà. ä ©« 
call Func_15 ; ¯¥à¥¬¥é¥­¨¥ 㪠§ â¥«ï ¢ ä ©«¥
ld de,(D2E8C)
ld a,d
and 3Fh
ld d,a
add ix,de
ld de,0
adc hl,de
ld a,xh
sla a
rl l
rl h
sla a
rl l
rl h
or xl
jr z,1F
inc hl
1: ld a,h
or a
jp nz,A2CD5
ld b,l
call Func_3D ; ¢ë¤¥«¨âì ¡«®ª ¯ ¬ïâ¨
jp c,A2CD5
ld (D2E77),a ; ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
exx
pop de
ld hl,0
add hl,sp
ld sp,(D2E7A)
push hl
push de
in a,(0E2h)
ld d,a
in a,(0C2h)
ld e,a
in a,(0A2h)
push de
push af
ld (D2E7A),sp
ld sp,hl
exx
ld a,(D2E77) ; ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
ld de,T2E71
ld bc,00C4h
rst 08h
ld (de),a
inc de
ld a,(D2E77) ; ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
ld bc,01C4h
rst 08h
ld (de),a
inc de
ld a,(D2E77) ; ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
ld bc,02C4h
rst 08h
ld (de),a
inc de
ld a,(D2E77) ; ¨¤¥­â¨ä. ¡«®ª  ¯ ¬ïâ¨
ld bc,03C4h
rst 08h
ld (de),a
ld hl,(D2E78)
ld de,T0400+1
call A2E52
ld a,128 ;80h
sub b
ld (T0400),a
ld sp,T307A
ld a,0FFh ; ­®¬¥à áâà.
out (0A2h),a
out (0C2h),a
out (0E2h),a
ld hl,(D2E8C)
ld de,T2E71
ld a,h
and 0C0h
cp 40h ; 40(00)h
jr z,A2C5E
cp 80h ; 80(00)h
jr z,A2C62
cp 0C0h ; 0C0(00)h
jr z,A2C66
A2C5E: ld a,(de)
out (0A2h),a
inc de
A2C62: ld a,(de)
out (0C2h),a
inc de
A2C66: ld a,(de)
out (0E2h),a
call A2DE9
ld hl,(D2E82)
ld ix,(D2E80)
ld b,0 ; ®â ­ ç «  ä ©« 
ld a,(D2E76) ; ¤¥áªà. ä ©« 
call Func_15 ; ¯¥à¥¬¥é¥­¨¥ 㪠§ â¥«ï ¢ ä ©«¥
ld sp,L403F
ld de,(D2E8C)
xor a
ld l,a
ld h,a
sbc hl,de
ex de,hl ; de=ç¨á«® ç¨â. ¡ ©â
ld hl,(D2E8C) ; ¡ãä¥à
ld a,(D2E76) ; ¤¥áªà. ä ©« 
call Func_13 ; ç⥭¨¥ ¨§ ä ©« 
ld a,(D2E76) ; ¤¥áªà. ä ©« 
call Func_12 ; § ªàëâì ä ©«
ld sp,(D2E90)
ld hl,(D2E8C)
ld de,128 ;T0080
and a
sbc hl,de
ex de,hl
db 0DDh
ld h,d
db 0DDh
ld l,e
ld hl,(D2E8E)
ld de,A2CB3 ;  ¤à¥á ¯/¯ "§ ¢¥àè¨âì ¯à®æ¥áá"
push de
push hl
ret
;
A2CB3: jp Func_41 ; § ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá)
;-------------------------------------------------
; …᫨ à áè. ä ©«  ­¥ § ¤ ­®, § ¤ âì "exe".
; …᫨ à áè. ä ©«  § ¤ ­®, áà ¢­¨âì ¥£® á "exe".
;-------------------------------------------------
A2CB6: ld hl,T2E6D ; "EXE"
ld de,T236C
ld b,3
ld a,(de)
cp " "
jr nz,A2CCB ; § ¤ ­® à áè.
ldi
ldi
ldi
xor a
ret
;
; áà ¢­¨âì à áè. á "EXE"
A2CCB: ld a,(de)
cp (hl)
scf
ret nz ; ­¥ ᮢ¯ ¤ ¥â
inc hl
inc de
djnz A2CCB
xor a ; Ok
ret
A2CD5: ld a,1Eh
A2CD7: push af
ld a,(D2E76) ; ¤¥áªà. ä ©« 
call Func_12 ; § ªàëâì ä ©«
ld hl,D2E70
dec (hl) ; --ã஢­ï ⥪ã饩 ¯à®£à ¬¬ë
pop af
ret
A2CE4: ex de,hl
ld de,(D2E8C)
ld a,d
and 3Fh
ld d,a
adc hl,de
xor a
sla h
rla
sla h
rla
ld b,a
ld a,h
or l
jr z,A2CFC
inc b
A2CFC: call Func_3D ; ¢ë¤¥«¨âì ¡«®ª ¯ ¬ïâ¨
jr c,A2CD5
ld (D2E77),a ; ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
exx
pop de
ld hl,0
add hl,sp
ld sp,(D2E7A)
push hl
push de
in a,(0E2h)
ld d,a
in a,(0C2h)
ld e,a
in a,(0A2h)
push de
push af
ld (D2E7A),sp
ld sp,hl
exx
ld de,T2E71
ld bc,00C4h
ld a,(D2E77) ; ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
rst 08h
ld (de),a
inc de
ld bc,01C4h
ld a,(D2E77) ; ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
rst 08h
ld (de),a
inc de
ld bc,02C4h
ld a,(D2E77) ; ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
rst 08h
ld (de),a
inc de
ld bc,03C4h
ld a,(D2E77) ; ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
rst 08h
ld (de),a
ld hl,(D2E78)
ld de,T0400+1
call A2E52
ld a,80h
sub b
ld (T0400),a
ld sp,T307A
ld a,0FFh ; ­®¬¥à áâà.
out (0A2h),a
out (0C2h),a
out (0E2h),a
ld hl,(D2E8C)
ld de,T2E71
ld a,h
and 0C0h
cp 40h ; 40(00)h
jr z,A2D76
cp 80h
jr z,A2D7A
cp 0C0h
jr z,A2D7E
A2D76: ld a,(de)
out (0A2h),a
inc de
A2D7A: ld a,(de)
out (0C2h),a
inc de
A2D7E: ld a,(de)
out (0E2h),a
call A2DE9
ld hl,(D2E82)
ld ix,(D2E80)
ld b,0 ; ®â ­ ç «  ä ©« 
ld a,(D2E76) ; ¤¥áªà. ä ©« 
call Func_15 ; ¯¥à¥¬¥é¥­¨¥ 㪠§ â¥«ï ¢ ä ©«¥
ld sp,L403F
ld hl,(D2E8C) ; ¡ãä¥à
ld de,(D2E84) ; ç¨á«® ç¨â. ¡ ©â
ld a,(D2E76) ; ¤¥áªà. ä ©« 
call Func_13 ; ç⥭¨¥ ¨§ ä ©« 
ld sp,(D2E90)
ld hl,(D2E8C)
ld de,128
and a
sbc hl,de
ex de,hl
ld xh,d
ld xl,e
ld hl,(D2E8E)
ld de,A2CB3 ; ¤®á-§ £«ã誠
push de
push hl
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #41. ‡ ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá).
;
; ¢å®¤: B - ª®¤ § ¢¥à襭¨ï
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;
; ‚ë室 ¨§ EXE-ä ©« :
;
; 1) Žá¢®¡®¦¤ îâáï ¢á¥ ¡«®ª¨ ¯ ¬ï⨠ª®â®àë¥ ¢ë¤¥«ï« áì ¤ ­­®¬ã ¯à¨«®¦¥­¨î.
; 2) ‚®ááâ ­ ¢«¨¢ îâáï áâà ­¨æë ª®â®àë¥ ¡ë«¨ ¯®¤ª«îç¥­ë ¤® § ¯ã᪠ EXE-ä ©« .
; 3) ‚ᯮ¬¨­ ¥âáï á⥪.
; 4) ॣ¨áâà A ¯®¬¥é ¥âáï ª®¤ ¢®§¢à â  ¨ ¢ë¯®«­ï¥âáï RET.
;
;/////////////////////////////////////////////////////////////////////
Func_41: ld a,b
ld (return_code),a ; ª®¤ § ¢¥à襭¨ï ¯à®£à ¬¬ë
call A29FF
ld hl,D2E70
dec (hl) ; --ã஢­ï ⥪ã饩 ¯à®£à ¬¬ë
ld sp,(D2E7A)
pop af
pop hl
out (0A2h),a
ld a,l
out (0C2h),a
ld a,h
out (0E2h),a
pop de
pop hl
ld (D2E7A),sp
ld sp,hl
ex de,hl
ld a,(return_code) ; ª®¤ § ¢¥à襭¨ï ¯à®£à ¬¬ë
and a
jp (hl)
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #42. <20>®«ãç¨âì ª®¤ § ¢¥à襭¨ï ¯à®£à ¬¬ë.
;
; ¢å®¤: ­¥â
; ¢ë室: A - ª®¤ § ¢¥à襭¨ï
;/////////////////////////////////////////////////////////////////////
Func_42:ld a,(return_code)
and a
ret
A2DE9: ld hl,(D2E8C)
dec h
ld d,h
ld e,l
inc de
ld bc,00FFh
ld (hl),b
ldir
ex de,hl
dec h
ld de,128 ;T0080
add hl,de
ex de,hl
db 0DDh
ld h,d
db 0DDh
ld l,e
ld hl,T0400 ; ®âªã¤ 
ld c,(hl)
inc c
ldir
ex de,hl
ld (hl),b
ld a,(D2E70) ; ã஢¥­ì ⥪ã饩 ¯à®£à ¬¬ë
ld (ix-1),a ; ¢ ¯à¥ä¨ªá exe-ä ©« 
ld a,(D2E77) ; ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
ld (ix-2),a ; ¢ ¯à¥ä¨ªá exe-ä ©« 
ld a,(D2E76) ; ¤¥áªà. ä ©« 
ld (ix-3),a ; ¢ ¯à¥ä¨ªá exe-ä ©« 
inc hl
ld (hl),b
inc hl
call Func_02 ; ¯®«ãç¨âì ­®¬¥à ⥪. ¤¨áª 
add a,"A"
ld (hl),a
inc hl
ld a,":"
ld (hl),a
inc hl
push hl
call Func_1E ; ¨­ä  ® ⥪. ª â «®£¥
pop hl
xor a
ld bc,256
cpir
dec hl
dec hl
ld a,'\'
cp (hl)
inc hl
jr z,A2E3F
ld (hl),a
inc hl
A2E3F: ex de,hl
ld hl,D213A
A2E43: ld a,(hl)
ldi
cp " "+1
jr nc,A2E43
dec de
xor a
ld (de),a
ld (D2795),ix
ret
A2E52: ld bc,8021h
A2E55: ld a,(hl)
cp c
jr c,A2E61
inc hl
djnz A2E55
xor a
ld (de),a
ld b,80h
ret
A2E61: ld bc,8020h
A2E64: ld a,(hl)
ld (de),a
inc hl
inc de
cp c
ret c
djnz A2E64
ret
T2E6D: db "EXE"
D2E70: db 1 ; ã஢¥­ì ⥪ã饩 ¯à®£à ¬¬ë
T2E71: db 0
db 0
db 0
db 0
return_code:
db 0 ; ª®¤ § ¢¥à襭¨ï ¯à®£à ¬¬ë (¯à®æ¥áá )
D2E76: db 0 ; ¤¥áªà. ä ©« 
D2E77: db 0 ; ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
D2E78: dw 0
D2E7A: dw L317B ;  ¤à¥á á⥪ 
; 512 ¡ ©â. exe-§ £®«®¢®ª, ¯®á«¥ à ¡. ¡ãä¥à
D2E7C: db "EXE"
db 0 ; exe ¢¥àá¨ï
D2E80: dw 0 ; 512, ¬«. ᬥé. ª®¤ 
D2E82: dw 0 ; áâ. ᬥé. ª®¤ 
D2E84: dw 0 ; end-beg, ¯¥à¢¨ç­ë© § £àã§ç¨ª
dw 0,0,0 ; १¥à¢
D2E8C: dw 0 ;  ¤à¥á § £à㧪¨ ª®¤ 
D2E8E: dw L0000 ;  ¤à¥á ¯¥à¥¤ ç¨ ã¯à ¢«¥­¨ï
D2E90: ds 490
T307A: ds 257
L317B: db 0 ; ­ ç «® á⥪ 
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #46. ‘¨á⥬­®¥ ®ªà㦥­¨¥.
;
; ¢å®¤: B - ­®¬¥à ¯®¤ä㭪樨:
; B=0, ¯®«ã祭¨¥ á¨á⥬­®£® ®ªà㦥­¨ï
; HL - ¡ãä¥à
; B=1, ¯®«ãç¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
; HL - ¨¬ï ¯¥à¥¬¥­­®©
; DE - ¡ãä¥à ¤«ï §­ ç¥­¨ï ¯¥à¥¬¥­­®©
; B=2, ãáâ ­®¢¨âì/㤠«¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
; HL - ¨¬ï ¯¥à¥¬¥­­®© ¨ §­ ç¥­¨¥, à §¤¥«¥­­ë¥ ᨬ¢®«®¬ "="
; â.¥. <20><EFBFBD>…Œ…<C592><E280A6>€Ÿ=‡<>€—…<E28094>ˆ
; ª®­æ¥ áâப¨ ¤®«¦¥­ áâ®ïâì ­ã«ì.
; ¢ë室: A - á®áâ®ï­¨¥, ¥á«¨ CF=0
; DE - 㪠§ë¢ ¥â ­  ª®­¥æ ¡ãä¥à  (⮫쪮 ¤«ï B=1)
; A=0FFh - ¯¥à¥¬¥­­ ï ®¡­ à㦥­ 
; A=0 - ¯¥à¥¬¥­­ ï ­¥ ®¡­ à㦥­ 
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_46: inc b
jr z,A318E ; B=#FF
dec b
jr z,A31B2 ; B=0. ¯®«ãç¨âì á¨áâ. ®ªà㦥­¨¥
dec b
jr z,A31DB ; B=1. ¯®«ãç¨âì ¯¥à¥¬. ®ªà㦥­¨ï
dec b
jr z,A31FD ; B=2. ãáâ ­®¢¨âì/㤠«¨âì ¯¥à¥¬. ®ªà㦥­¨ï
ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
;-------------------------------------------------
; ˆ­¨æ¨ «¨§ æ¨ï ¡ãä¥à  ¯¥à¥¬¥­­ëå ®ªà㦥­¨ï
;-------------------------------------------------
A318E: ld a,2 ; «®£. ­®¬¥à áâà. (path, ¯¥à¥¬. ®ªàã¦.)
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
ld de,LE400 ; ­ ç «® ¡ãä¥à  ¯¥à¥¬¥­­ëå ®ªà㦥­¨ï
xor a
ld (de),a
inc de
ld hl,DEFAULT_ENV
ld bc,1
ldir
ld (de),a
ex de,hl
ld de,LE400 ; ­ ç «® ¡ãä¥à  ¯¥à¥¬¥­­ëå ®ªà㦥­¨ï
and a
sbc hl,de
ld (D3296),hl
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
and a
ret
;-------------------------------------------------
; <20>®«ãç¨âì á¨áâ. ®ªà㦥­¨¥
;-------------------------------------------------
A31B2: push hl
ld a,2 ; «®£. ­®¬¥à áâà. (path, ¯¥à¥¬. ®ªàã¦.)
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
ld h,a ; áâ à ï ¡ ­ª  ¯®àâ 
ld c,0E2h
in l,(c)
exx
ld hl,LE400 ; ­ ç «® ¡ãä¥à  ¯¥à¥¬¥­­ëå ®ªà㦥­¨ï
inc hl
pop de
ld bc,(D3296)
exx
A31C8: out (c),l
exx
ld a,(hl)
exx
out (c),h ; ¢®ááâ. ¯®àâ
exx
ld (de),a
inc hl
inc de
dec bc
ld a,b
or c
exx
jr nz,A31C8
xor a
ret
;-------------------------------------------------
; <20>®«ãç¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
;-------------------------------------------------
A31DB: push de
call A325F ; ᪮¯¨à. áâப㠯¥à¥¬. ®ªàã¦. ¢ ¡ãä¥àë
ld a,2 ; «®£. ­®¬¥à áâà. (path, ¯¥à¥¬. ®ªàã¦.)
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
ex af,af' ; áâ à ï ¡ ­ª  ¯®àâ 
call A323D ; ­ ©â¨ ª®­¥æ ¢á¥å ¯¥à¥¬¥­­ëå ?
pop de
ld a,0
ld (de),a
jr nc,A31F7
A31EE: ld a,(hl)
ldi
or a
jr nz,A31EE
dec de
ld a,-1
A31F7: ex af,af'
out (0E2h),a ; ¢®ááâ. ¯®àâ
ex af,af'
and a
ret
;-------------------------------------------------
; “áâ ­®¢¨âì/“¤ «¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
;
; ¢å®¤: hl=¨¬ï ¯¥à¥¬. ¨ §­ ç¥­¨¥, à §¤¥«. ᨬ¢®«®¬ "="
;-------------------------------------------------
A31FD: ; ¢ D2E7C "EXE"
; ¢ T0400 ᮤ¥à¦¨¬®¥ system.bat
call A325F ; ᪮¯¨à. áâப㠯¥à¥¬. ®ªàã¦. ¢ ¡ãä¥àë
ld a,2 ; «®£. ­®¬¥à áâà. (path, ¯¥à¥¬. ®ªàã¦.)
call set_dos_page ; ¯®¤ª«îç¨âì ¡ ­ªã à áè¨à¥­¨ï „Ž‘
push af ; áâ à ï ¡ ­ª  ¯®àâ 
call A323D ; ­ ©â¨ ª®­¥æ ¢á¥å ¯¥à¥¬¥­­ëå ?
jr nc,A3214
xor a
cpir
ld a,b
or c
jr z,A3214
ldir
A3214: ld a,(T0400)
or a
jr z,A322D
ld hl,D2E7C ; 512 ¡ ©â, ¡ãä¥à
A321D: ld a,(hl)
ldi
cp "=" ; ᨬ¢®« à §¤¥«¥­¨ï
jr nz,A321D
ld hl,T0400 ; ®âªã¤ 
A3227: ld a,(hl)
ldi
or a
jr nz,A3227
A322D: xor a
ld (de),a
ld hl,LE400 ; ­ ç «® ¡ãä¥à  ¯¥à¥¬¥­­ëå ®ªà㦥­¨ï
ex de,hl
sbc hl,de
ld (D3296),hl
pop af
out (0E2h),a ; ¢®ááâ. ¯®àâ
and a
ret
; ­ ©â¨ ª®­¥æ ¢á¥å ¯¥à¥¬¥­­ëå ?
A323D: ld hl,LE400 ; ­ ç «® ¡ãä¥à  ¯¥à¥¬¥­­ëå ®ªà㦥­¨ï
ld bc,(D3296)
push hl
A3245: pop de
ld de,D2E7C ; 512 ¡ ©â ¡ãä¥à
xor a
cpir
push hl
A324D: ld a,(hl)
or a
jr z,A325D
ld a,(de)
cp (hl)
inc hl
inc de
dec bc
jr nz,A3245
cp "=" ; ᨬ¢®« à §¤¥«¥­¨ï
jr nz,A324D
scf
A325D: pop de
ret
;-----------------------------------------------------------
; ‘ª®¯¨à®¢ âì áâப㠯¥à¥¬¥­­®© ®ªà㦥­¨ï ¢ ¡ãä¥àë
; (¨¬ï ¨ §­ ç¥­¨¥ ¢ à §­ë¥ ¡ãä¥àë)
; ¢å®¤: hl=¨¬ï ¯¥à¥¬. ¨ §­ ç¥­¨¥, à §¤¥«. ᨬ¢®«®¬ "="
;-----------------------------------------------------------
A325F: ld b,maxlen_env_string ; 255 ¬ ªá. ¤«¨­  áâப¨ (¨¬ï+§­ ç.)
ld de,D2E7C ; ªã¤ 
xor a
ld (de),a
ld (T0400),a
; ᪮¯¨à. ¢ "D2E7C" ¨¬ï ¯¥à¥¬¥­­®©
A3269: ld a,(hl)
inc hl
cp "=" ; ᨬ¢®« à §¤¥«¥­¨ï
jr z,A3283 ; ª®­¥æ ¨¬¥­¨
or a
jr z,A327B ; ª®­¥æ áâப¨
call upper ; a..z -> A..Z
ld (de),a
inc de
djnz A3269
jr A3294 ; ᫨誮¬ ¤«¨­­ ï áâப 
; §­ ç¥­¨¥ ­¥ § ¤ ­®
A327B: ld a,"=" ; ᨬ¢®« à §¤¥«¥­¨ï
ld (de),a
inc de
xor a
ld (de),a
inc de
ret
A3283: ld (de),a ; á®åà. "="
inc de
xor a
ld (de),a ; ¢ ª®­¥æ ¨¬¥­¨ ¯¥à¥¬.
; ᪮¯¨à. ¢ "T0400" §­ ç¥­¨¥ ¯¥à¥¬¥­­®© (áâப㠯ã⥩)
ld de,T0400 ; 512 ¡ ©â, ¡ãä¥à
ld (de),a
ld c,255 ; ç⮡ë "ldi" ­¥ ¯®à⨫  "b"
A328D: ld a,(hl)
ldi
or a
ret z ; ª®­¥æ áâப¨ §­ ç. ¯¥à¥¬¥­­®©
djnz A328D
A3294: ld a,b
ld (de),a ; ®¡à¥§ âì ᫨誮¬ ¤«¨­­ãî áâபã
inc de
scf
ret
D3296: dw 1
DEFAULT_ENV: db 0
include "mouse.asm" ; ª®¤ ¬ë誨
db " " ; 12
ds 20
db "FILENAME.EXT",0
;-------------------------------------------------
; RST 18h. ‚¥ªâ®à ¤¨áª®¢ëå ãáâனáâ¢
; ¢å®¤: a=­®¬¥à ãáâனá⢠ (0-25)
;-------------------------------------------------
drv_devices:
push hl
push bc ; á®åà. bc
ld c,a
add a,a ;1+1=2
add a,c ;2+1=3
ld c,a
ld b,0
ld hl,A38FC ; â ¡«¨æ  ¯¥à¥å®¤®¢
add hl,bc
ld a,(hl)
inc a
jr z,A38F4 ; ¡ë«® a=0FFh
dec a
inc hl
ld c,(hl) ; § £à.  ¤à¥á ®¡à ¡®â稪 
inc hl ;
ld h,(hl) ;
ld l,c
pop bc ; ¢®ááâ. bc
ex (sp),hl ;  ¤à¥á ¢ á⥪
ret ; ¯¥à¥©â¨ ­  ­¥£®
;
A38F4: pop bc
pop hl
ld a,EINVDRV ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ãáâனá⢠"
scf
ret
A38FA: dw A38FC
; ’ ¡«¨æ   ¤à¥á®¢ ®¡à ¡®â稪®¢ ¤¥¢ ©á®¢. 26 í«¥¬¥­â®¢ (¤¨áª¨ A..Z ?).
A38FC: db -1 ;00
dw -1
db -1 ;01
dw -1
db -1 ;02
dw -1
db -1 ;03
dw -1
db -1 ;04
dw -1
db -1 ;05
dw -1
db -1 ;06
dw -1
db -1 ;07
dw -1
db -1 ;08
dw -1
db -1 ;09
dw -1
db -1 ;10
dw -1
db -1 ;11
dw -1
db -1 ;12
dw -1
db -1 ;13
dw -1
db -1 ;14
dw -1
db -1 ;15
dw -1
db -1 ;16
dw -1
db -1 ;17
dw -1
db -1 ;18
dw -1
db -1 ;19
dw -1
db -1 ;20
dw -1
db -1 ;21
dw -1
db -1 ;22
dw -1
db -1 ;23
dw -1
db -1 ;24
dw -1
db -1 ;25
dw -1
db -1 ; ª®­¥æ
;-----------------------------------------------------------
; <20>à®áª ­¨à®¢ âì á¨á⥬㠭  FDD/HDD ¤¥¢ ©áë ¨ RAM-¤¨áª¨
;-----------------------------------------------------------
scan_all_devices:
xor a
ld (last_drive),a ; á¡à. ï祩ªã
ld hl,A38FC
ld (A38FA),hl ; ¢®ááâ. ï祩ªã
; FDD ¤¥¢ ©áë
ld c,a ; c="open device"
call A3D7A ; ã§­ âì ç¨á«® FDD-¤¥¢ ©á®¢
ld de,A3D7A ;  ¤à¥á ®¡à ¡®â稪  ⥪. ¤¥¢ ©á 
call A397B ; ¨­¨æ. â ¡«¨æã ¯¥à¥å®¤®¢
; HDD ¤¥¢ ©áë
xor a
ld c,a ; c="open device"
call A39CC ; ã§­ âì ç¨á«® HDD-¤¥¢ ©á®¢
ld de,A39CC ;  ¤à¥á ®¡à ¡®â稪  ⥪. ¤¥¢ ©á 
call A397B ; ¨­¨æ. â ¡«¨æã ¯¥à¥å®¤®¢
; RAM-¤¨áª¨
xor a
ld c,a ; c="open device"
call A3E5E ; ã§­ âì ç¨á«® RAM-¤¨áª®¢
ld de,A3E5E ;  ¤à¥á ®¡à ¡®â稪  ⥪. ¤¥¢ ©á 
call A397B ; ¨­¨æ. â ¡«¨æã ¯¥à¥å®¤®¢
xor a
ret
; ˆ­¨æ¨¨à®¢ âì â ¡«¨æã ¯¥à¥å®¤®¢ ¤¥¢ ©á .
; ¢å®¤: de= ¤à¥á ®¡à ¡®â稪  ¤¥¢ ©á 
; a=ç¨á«® ¤¥¢ ©á®¢ (0=­¥â)
A397B: ld c,a
ld hl,last_drive ; ï祩ª  ­®¬¥à  ¯®á«. ¤¨áª 
add a,(hl)
ld (hl),a
ld a,c
ld c,0 ; á¡à.
or a
ret z ; ­¥â ¤¥¢ ©á®¢
ld hl,(A38FA) ; ⥪. ¯®«®¦. ¢ â ¡«¨æ¥
A3989: ld (hl),c ; ¨­¤¥ªá ?
inc hl
ld (hl),e ; de= ¤à¥á ®¡à ¡®â稪 
inc hl
ld (hl),d
inc hl
inc c ; ++¨­¤¥ªá ?
dec a
jr nz,A3989
ld (A38FA),hl ; á®åà. ­®¢®¥ ¯®«®¦. ¢ â ¡«¨æ¥
dec a
ld (hl),a ; a=0FFh
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #08 (DSS_RESCAN). <20>¥à¥áª ­¨à®¢ âì ¤¥¢ ©áë á¨á⥬ë.
;
; ¢å®¤: ­¥â
; ¢ë室: A - ­®¬¥à ¯®á«¥¤­¥£® «®£. ¤¨áª  ¢ á¨á⥬¥
;/////////////////////////////////////////////////////////////////////
Func_08:di
call scan_all_devices ; ¯¥à¥áª ­. ¢á¥ ¤¥¢ ©áë
ld a,(last_drive)
ei
ret
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #09. <20>®¬¥à á¨á⥬­®£® ¤¨áª .
; ‚®§¢à é ¥â ­®¬¥à ¤¨áª , c ª®â®à®£® § £à㦥­  á¨á⥬ .
;
; ¢å®¤: B = 0 (01h - ¨á¯. boot-§ £àã§ç¨ª á¨á⥬ë)
; ¢ë室: A - ­®¬¥à á¨á⥬­®£® ¤¨áª  (0=A,1=B,..)
;/////////////////////////////////////////////////////////////////////
Func_09: inc b
dec b
jr z,A39A5
dec b
jr z,A39AA ; á ª ª®£® ¤¨áª  § £à. á¨á⥬  (¤«ï § £àã§ç¨ª )
ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
;
A39A5: db 3Eh ; ld a,..
boot_disk:
db -1 ; ­®¬¥à ¤¨áª , á ª®â®à®£® § £à㦠« áì á¨á⥬ 
and a
ret
; ‘®®¡é¨âì DSS á ª ª®£® ¤¨áª  § £à㦠¥âáï á¨á⥬ .
; ˆá¯. § £àã§ç¨ª á¨áâ¥¬ë ¤«ï ¨­¨æ. ï祩ª¨ "boot_disk".
A39AA: ld b,a
ld c,0
A39AD: push bc
ld a,c
ld bc,0008h ; ¯®«ãç¨âì £¥®¬¥âà¨î ¤¨áª 
ld de,55AAh ; ᨣ­ âãà 
rst 18h
pop bc
jr c,A39C3 ; ®è¨¡ª 
ex af,af'
cp b
jr nz,A39C3
ld a,c
ld (boot_disk),a ; ¨­¨æ. ï祩ªã
and a
ret
;
A39C3: inc c ; ++­®¬¥à boot-¤¨áª 
ld a,(last_drive) ; ­®¬¥à ¯®á«. ¤¨áª  á¨á⥬ë
cp c
jr nz,A39AD
scf
ret
;-------------------------------------------------
; Ž¡à ¡®â稪 HDD (rst 18h)
;-------------------------------------------------
A39CC: inc c
dec c ; c=0
jr z,A3A01
dec c ; c=1 open
jp z,A3BD1
dec c ; c=2 close
jp z,A3BD3
dec c ; c=3 media check (ᬥ­  ­®á¨â¥«ï)
jp z,A3BD5
dec c ; c=4 get BPB
jp z,A3BD9
dec c ; c=5 input (ç⥭¨¥ ᥪâ®à®¢)
jp z,A3C27
dec c ; c=6 output (§ ¯¨áì ᥪâ®à®¢)
jp z,A3C1C
dec c ; c=7
jp z,A3BCD
dec c ; c=8 ã§­ âì £¥®¬¥âà¨î ¤¨áª 
jp z,A3B34
dec c ; c=9
jr z,A39FD
dec c ; c=10
jp z,A3C06
dec c ; c=11
jp z,A3C11
A39FD: ld a,1 ; ª®¤ "bad command"
scf
ret
; c=0
A3A01: push iy
ld hl,T3A4C ; â ¡«¨æ  «®£.¤¨áª®¢ (16*12)
ld (D3D78),hl ;  ¤à¥á áâàãªâãàë ⥪. «®£. ¤¨áª 
ld ix,L4000 ; ¡ãä¥à ¯®¤ ᯨ᮪ (5 ¡ ©â)
ld c,5Fh ; ᯨ᮪ ¤¨áª®¢ëå ãáâனáâ¢
rst 08h
xor a
ld b,(ix+2) ; ª®«-¢® HDD ãáâனáâ¢
cp b
jr z,A3A25 ; ­¥â ¢¨­â®¢
;
ld c,80h ; ¬ áâ¥à ­  ¯¥à¢®¬ ª ­ «¥
A3A19: push bc
ld a,c
ld (D3D6F),a ; ­®¬¥à ¤¥¢ ©á  (80h/81h ¬ áâ¥à/á«¥©¢)
call A3C9A ; ã§­ âì «®£. ¤¨áª¨ ¢¨­â  ¨ á®§¤ âì ¨å â ¡«¨æë
pop bc
inc c ; á«¥©¢ ­  ¯¥à¢®¬ ª ­ «¥
djnz A3A19
;
A3A25: pop iy
ld hl,(D3D78) ;  ¤à¥á áâàãªâãàë ⥪. «®£. ¤¨áª 
ld de,T3A4C ; â ¡«¨æ  «®£.¤¨áª®¢ (16*12)
xor a ; áç¥â稪 «®£. ¤¨áª®¢
sbc hl,de
ret z ; áâàãªâãà  ¯¥à¢®£® «®£. ¤¨áª 
ld de,16 ; à §¬¥à áâàãªâãàë «®£. ¤¨áª 
inc a
sbc hl,de
jr nz,$-3 ; ¯¥à¥©â¨ ­  áâàãªâãàã ¯¥à¢®£® «®£. ¤¨áª 
and a ; a=ª®«-¢® «®£.¤¨áª®¢
ret
; ­¥â ®¡à é¥­¨ï
;L3A3B: ld a,0FFh
;inc hl
;cp (hl)
;ret nz
;inc hl
;cp (hl)
;ret nz
;inc hl
;cp (hl)
;ret nz
;inc hl
;cp (hl)
;ret nz
;inc hl
;cp (hl)
;ret
; ’ ¡«¨æ  «®£. ¤¨áª®¢ „Ž‘- 
;
; +0 - ­®¬¥à ¤¥¢ ©á  (80h,...)
; +1,+2,+3,+4 -  ¡á. ­®¬¥à ­ ç. ᥪâ®à  «®£. ¤¨áª 
; +5,+6,+7,+8 - à §¬¥à «®£. ¤¨áª  (ç¨á«® ᥪâ®à®¢)
;
;
T3A4C: ds 16*12 ; 192 C..N
; ¢å®¤: a=0..11 (¨­¤¥ªá)
; ¢ë室: ix,hl -  ¡á. ­®¬¥à ­ ç. ᥪâ®à 
; a - ­®¬¥à ¤¥¢ ©á  (80h,...)
A3B0C: push de
push bc
push hl
ld l,a
ld h,0
add hl,hl ;1+1=2
add hl,hl ;2+2=4
add hl,hl ;4+4=8
add hl,hl ;8+8=16
ex de,hl
ld iy,T3A4C ; â ¡«¨æ  «®£.¤¨áª®¢ (16*12)
add iy,de
ld c,(iy+1) ;  ¡á®«îâ­ë© ­®¬¥à
ld b,(iy+2) ; ­ ç «ì­®£® ᥪâ®à 
ld e,(iy+3) ; à §¤¥« 
ld d,(iy+4) ;
pop hl
add ix,bc
adc hl,de
ld a,(iy+0) ; ⨯ ¤¥¢ ©á  (80h,...)
pop bc
pop de
ret
;c=8. “§­ âì £¥®¬¥âà¨î ¤¨áª  (CHS)
A3B34: bit 7,b
jr nz,A3B49
inc b
dec b ; b=0
jr z,A3B6F
dec b ; b=1
jr z,A3B5C
dec b ; b=2
jr z,A3B60
ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
;
A3B49: res 7,b
inc b
dec b
jr z,A3B65
dec b
jr z,A3B67
dec b
jr z,A3B6B
ld a,1 ; ª®¤ "bad command"
scf
ret
;
A3B5C: ld a,0Bh ; ª®¤ "failure"
scf
ret
;
A3B60: ld b,l
jp A3C32
;
A3B65: and a
ret
;
A3B67: ld a,0Bh ; ª®¤ "failure"
scf
ret
;
A3B6B: ld a,0Bh ; ª®¤ "failure"
scf
ret
;c=8. “§­ âì £¥®¬¥âà¨î ¤¨áª  (CHS)
;b=0.
; ¢å®¤: a - ¨­¤¥ªá (0..11)
A3B6F: ex de,hl
ld bc,55AAh ; ᨣ­ âãà  à §¤¥« 
and a
sbc hl,bc
ld l,a ; ¨­¤¥ªá à §¤¥« 
ld a,0Bh ; ª®¤ "failure"
scf
ret nz
push iy
ld h,0
add hl,hl ; *16
add hl,hl
add hl,hl
add hl,hl
ld b,h
ld c,l
ld iy,T3A4C ; â ¡«¨æ  «®£.¤¨áª®¢ (16*12)
add iy,bc
ld e,(iy+5) ; à §¬¥à à §¤¥«  (ç¨á«® ᥪâ®à®¢)
ld d,(iy+6) ;
ld l,(iy+7) ; áâ. à §àï¤
ld h,(iy+8) ;
ld a,(iy+0) ; ⨯ ¤¥¢ ©á  (80h,...)
ld c,a
ld iy,LC1C0 ; LC000+01BEh+2 ??
and 0Fh
jr z,A3BA7 ;
ld iy,LC1C8 ; LC000+01BEh+0Ah ??
A3BA7: in a,(0E2h)
push af
ld a,0FEh ; ­®¬¥à áâà.
out (0E2h),a
ld a,(iy+0)
exx
ld l,(iy+3) ;
ld h,(iy+4) ;
ld e,(iy+2) ;
ld d,0
ld b,d
ld c,(iy+1) ;
exx
ex af,af'
pop af
out (0E2h),a
ld a,c
ex af,af'
pop iy
and a
ret
A3BCD: ld a,1 ; ª®¤ "bad command"
and a
ret
A3BD1: xor a
ret
A3BD3: xor a
ret
A3BD5: ld a,-1
and a
ret
A3BD9: push iy
push de
ld l,a
ld h,0
add hl,hl ; *16
add hl,hl
add hl,hl
add hl,hl
ld b,h
ld c,l
ld iy,T3A4C ; â ¡«¨æ  «®£.¤¨áª®¢ (16*12)
add iy,bc
ld e,(iy+1) ; ¬«. à §àï¤ ­®¬¥à  ᥪâ®à 
ld d,(iy+2)
ld l,(iy+3) ; áâ. à §àï¤
ld h,(iy+4)
db 0DDh
ld l,e
db 0DDh
ld h,d
ld a,(iy+0) ; ⨯ ¤¥¢ ©á  (80h,...)
pop de ; ¡ãä¥à
pop iy
ld bc,0155h ; ¯à®ç¨â âì ®¤¨­ ᥪâ®à
rst 08h
ret
A3C06: push iy
call A3B0C ; ¯®«ãç¨âì  ¡á. ­®¬¥à ­ ç. ᥪâ®à 
ld c,52h ; ç⥭¨¥ ᥪâ®à®¢ ¢ § ¤. ¡«®ª ¯ ¬ïâ¨
rst 08h
pop iy
ret
A3C11: push iy
call A3B0C ; ¯®«ãç¨âì  ¡á. ­®¬¥à ­ ç. ᥪâ®à 
ld c,53h ; ?
rst 08h
pop iy
ret
A3C1C: push iy
call A3B0C ; ¯®«ãç¨âì  ¡á. ­®¬¥à ­ ç. ᥪâ®à 
ld c,56h ; § ¯¨á âì "b" ᥪâ®à®¢
rst 08h
pop iy
ret
A3C27: push iy
call A3B0C ; ¯®«ãç¨âì  ¡á. ­®¬¥à ­ ç. ᥪâ®à 
ld c,55h ; ¯à®ç¨â âì "b" ᥪâ®à®¢
rst 08h
pop iy
ret
A3C32: push iy
call A3B0C ; ¯®«ãç¨âì  ¡á. ­®¬¥à ­ ç. ᥪâ®à 
ld c,54h ; ¯à®¢¥àª  ᥪâ®à®¢ (­¥ à ¡®â ¥â?)
rst 08h
pop iy
ret
; ­  «®£. ¤¨áª à §¤¥« 
A3C3D: ld e,(iy+8) ;  ¡á®«îâ­ë© («®£.) ­®¬¥à
ld d,(iy+9) ; ­ ç «ì­®£® ᥪâ®à 
ld l,(iy+10) ; à §¤¥« 
ld h,(iy+11) ;
ld ix,(D3D70) ; ¬«.à §àï¤
add ix,de
ld de,(D3D72) ; áâ.à §àï¤
adc hl,de
db 0DDh
ld d,h
db 0DDh
ld e,l
ld ix,(D3D78) ;  ¤à¥á áâàãªâãàë ⥪. «®£. ¤¨áª 
ld (ix+1),e
ld (ix+2),d
ld (ix+3),l
ld (ix+4),h
;
ld e,(iy+12) ; à §¬¥à à §¤¥«  (ç¨á«® ᥪâ®à®¢)
ld d,(iy+13) ;
ld l,(iy+14) ; áâ. à §àï¤
ld h,(iy+15) ;
ld (ix+5),e
ld (ix+6),d
ld (ix+7),l
ld (ix+8),h
ld a,(D3D6F) ; ­®¬¥à ¤¥¢ ©á  (80h/81h ¬ áâ¥à/á«¥©¢)
ld (ix+0),a
ld de,16 ; à §¬¥à â ¡«¨æë «®£.¤¨áª  ?
add ix,de
ld (D3D78),ix ;  ¤à¥á áâàãªâãàë á«¥¤. «®£. ¤¨áª 
A3C90: ld de,16 ; à §¬¥à à §¤¥« 
add iy,de
pop bc
djnz A3CD3 ; ¯à®¢¥à¨âì á«¥¤. à §¤¥«
and a ; ª®­¥æ à §¤¥«®¢ ¢ MBR
ret
;----------------------------------------------------
; “§­ âì «®£. ¤¨áª¨ ¢¨­â  ¨ á®§¤ âì ¨å â ¡«¨æë
;----------------------------------------------------
A3C9A: in a,(0E2h) ; á®åà. áâà.
push af
ld a,0FFh ; ­®¬¥à áâà.
out (0E2h),a
call A3CA8
pop af
out (0E2h),a ; ¢®ááâ. áâà.
ret
A3CA8: ld ix,0
ld de,0
ld (D3D74),de
ld (D3D76),ix
; 横«
A3CB7: ld (D3D70),de ; ¬«.à §àï¤ ­®¬¥à  ᥪâ®à 
ld (D3D72),ix ; áâ.à §àï¤
call read_one_sector ; ¯à®ç¨â âì ®¤¨­ ᥪâ®à (MBR, 0-© ᥪâ®à)
ld hl,(LC000+510) ; ª®­¥æ ᥪâ®à 
ld de,0AA55h ; ᨣ­ âãà  â ¡«¨æë à §¤¥«®¢
and a
sbc hl,de
jr nz,A3D1A ; ­¥ §­ ª®¬ë© à §¤¥«, ¢ë©â¨
ld iy,LC000+01BEh ; ­  ®¯¨á â¥«ì 1-£® à §¤¥« 
ld b,4 ; ¬ ªá. ç¨á«® à §¤¥«®¢ ¢¨­â 
A3CD3: push bc
; â¥áâ ­  à áè. à §¤¥«
ld a,(iy+4) ; ¡ ©â-¨¤¥­â¨ä. à §¤¥« 
cp 5 ; "<22> áè¨à¥­­ë©" 0-2ƒ¡ (MS-DOS 3.3)
jr nz,A3CFE
; ­  á«¥¤. à §¤¥«
A3CDB: push iy
ld de,(D3D70) ; ¬«.à §àï¤ ­®¬¥à  ᥪâ®à 
ld ix,(D3D72) ; áâ.à §àï¤
push de
push ix
call next_partition ; ­  á«¥¤. à §¤¥«
pop ix
pop de
ld (D3D70),de ; ¬«.à §àï¤ ­®¬¥à  ᥪâ®à 
ld (D3D72),ix ; áâ.à §àï¤
call read_one_sector ; ¯à®ç¨â âì ®¤¨­ ᥪâ®à
pop iy
jr A3C90
;
; â¥áâ ­  à áè. à §¤¥«
A3CFE: cp 0Fh ; "<22> áè¨à¥­­ë©" 0-2ƒ¡ (Win95)
jr z,A3CDB ; ­  á«¥¤. à §¤¥«
; â¥áâ ­  ®á­. à §¤¥«
cp 0Eh ; "Žá­®¢­®©" 32Œ¡-2ƒ¡ FAT16 (Win95)
jp z,A3C3D ; ­  «®£. ¤¨áª à §¤¥« 
cp 6 ; "Žá­®¢­®©" 32Œ¡-2ƒ¡ FAT16 (MS-DOS 4.0)
jp z,A3C3D
cp 4 ; "Žá­®¢­®©" 16Œ¡-32Œ¡ FAT16 (MS-DOS 3.0)
jp z,A3C3D
cp 1 ; "Žá­®¢­®©" 0Œ¡-15Œ¡ FAT12 (MS-DOS 2.0)
jp z,A3C3D
call test_others; ; ¯®áâ ¢¨«
jr z,A3CDB; ; ­  á«¥¤. à §¤¥«
pop bc
or a
ret z ; ª®­¥æ à §¤¥«®¢
A3D1A: scf ; ­¥ §­ ª®¬ë© à §¤¥«
ret
; ¯¥à¥©â¨ ­  á«¥¤. à §¤¥«
next_partition:
ld hl,(D3D74)
ld de,(D3D76)
ld a,l
or h
or e
or d
ld e,(iy+8) ;  ¡á®«îâ­ë© («®£.) ­®¬¥à
ld d,(iy+9) ; ­ ç «ì­®£® ᥪâ®à 
ld l,(iy+10) ; à §¤¥« 
ld h,(iy+11) ;
jr nz,A3D44
ld (D3D74),de
ld (D3D76),hl
ld ix,(D3D76)
jp A3CB7
;
A3D44: ld ix,(D3D74) ; ¬«. à §àï¤
add ix,de
push ix
ld de,(D3D76) ; áâ. à §àï¤
adc hl,de
push hl
pop ix
pop de
jp A3CB7
; â¥áâ ­  ¤à㣨¥ ⨯ë à §¤¥«®¢
; ¢å®¤: a - ⨯ à §¤¥« 
; ¢ë室: Z - ­  á«¥¤. à §¤¥«
test_others:
cp 0Bh ; "Žá­®¢­®©" 512Œ¡-2¡ FAT32 (OSR2)
ret z
cp 7 ; NTFS
ret z
cp 82h ; Linux swap
ret z
cp 83h ; Linux
ret z
cp 0EBh ; BeOS
ret
;-------------------------------------------------
; —⥭¨¥ ®¤­®£® ᥪâ®à  ¢ ¡ãä¥à 0C000h
;-------------------------------------------------
read_one_sector:
push iy
ld ix,(D3D70) ; ¬«.à §àï¤ ­®¬¥à  ᥪâ®à 
ld hl,(D3D72) ; áâ.à §àï¤
ld de,LC000 ; ¡ãä¥à
ld bc,0155h ; ¯à®ç¨â âì ®¤¨­ ᥪâ®à
ld a,(D3D6F) ; ­®¬¥à ¤¥¢ ©á  (80h/81h ¬ áâ¥à/á«¥©¢)
rst 08h
pop iy
ret
D3D6F: db 0 ; ­®¬¥à ¤¥¢ ©á  (80h/81h ¬ áâ¥à/á«¥©¢)
;
D3D70: dw 0 ; ¬«.à §àï¤ ­®¬¥à  ᥪâ®à 
D3D72: dw 0 ; áâ.à §àï¤
D3D74: dw 0
D3D76: dw 0
;
D3D78: dw T3A4C ;  ¤à¥á áâàãªâãàë ⥪. «®£. ¤¨áª 
;-------------------------------------------------
; Ž¡à ¡®â稪 FDD (rst 18h)
;-------------------------------------------------
A3D7A: inc c
dec c ; c=0
jr z,A3DA7
dec c ; c=1
jr z,A3DAB
dec c ; c=2
jr z,A3DAF
dec c ; c=3
jr z,A3DB1
dec c ; c=4
jr z,A3DB5
dec c ; c=5
jr z,A3DDB
dec c ; c=6
jr z,A3DDF
dec c ; c=7
jp z,A3E5A
dec c ; c=8
jr z,A3DE3
ld a,EINVFNC ; ª®¤ "­¥¢¥à­ë© ­®¬¥à ä㭪樨"
scf
ret
; c=0
A3DA7: ld a,2
and a
ret
; c=1
A3DAB: ld c,51h ; á¡à. ª®­â஫«¥à ¨ ­ áâà. ­  ¤¨áª
rst 08h
ret
; c=2
A3DAF: xor a
ret
; c=3
A3DB1: ld a,-1
and a
ret
; c=4
A3DB5: ld ix,0 ; ¬«. à §àï¤ ­®¬¥à  ᥪâ®à 
ld hl,0 ; áâ. à §àï¤
push de
push af
ld bc,0155h ; ¯à®ç¨â âì ®¤¨­ ᥪâ®à
rst 08h
pop de
pop hl
ret c
ld bc,24
add hl,bc
ld e,(hl)
push de
ld a,d
ld c,58h ; ¯®«ãç¨âì ¯ à ¬. ­®á¨â¥«ï
rst 08h
ld a,h
pop hl
push hl
ld h,a
pop af
ld c,59h ; ãáâ. ¯ à ¬. ­®á¨â¥«ï
rst 08h
xor a
ret
; c=5
A3DDB: ld c,55h ; ç⥭¨¥ á ¤¥¢ ©á 
rst 08h
ret
; c=6
A3DDF: ld c,56h ; § ¯¨áì ­  ¤¥¢ ©á
rst 08h
ret
; c=8
A3DE3: bit 7,b
jr nz,A3DF0
inc b
dec b
jr z,A3DFB
ld a,1 ; ª®¤ "bad command"
scf
ret
;
A3DF0: res 7,b
inc b
dec b
jr z,A3E41
ld a,1 ; ª®¤ "bad command"
scf
ret
;
A3DFB: ex de,hl
ld bc,55AAh ; ᨣ­ âãà 
and a
sbc hl,bc
ld l,a
ld a,0Bh ; ª®¤ "failur"
scf
ret nz
ld a,l
and 0Fh
push af
ld c,58h ; ¯®«ãç¨âì ¯ à ¬. ­®á¨â¥«ï
rst 08h
jr c,A3E3C
push hl
push de
ld a,h
ld h,0
add hl,hl
dec a
jr nz,$-2
ld b,h
ld c,l
ex af,af'
xor a
ld l,a
ld h,a
A3E20: ex af,af'
add hl,bc
adc a,0
dec de
ex af,af'
ld a,d
or e
jr nz,A3E20
ex af,af'
ld e,a
ex de,hl
exx
pop de
pop hl
pop af
ex af,af'
ld a,b
ld c,l
ld b,0
ld l,h
ld h,b
ex de,hl
exx
and a
ret
;
A3E3C: pop af
ld a,2 ; ª®¤ "bad drive number"
scf
ret
;
A3E41: push af
exx
ex de,hl
ld h,l
ld l,c
pop af
and 0Fh
push af
push hl
push de
ld c,58h ; ¯®«ãç¨âì ¯ à ¬. ­®á¨â¥«ï
rst 08h
pop de
pop hl
jr c,A3E3C
pop af
ld c,59h ; ãáâ. ¯ à ¬. ­®á¨â¥«ï
rst 08h
ret c
and a
ret
; c=7
A3E5A: ld a,1
and a
ret
;-------------------------------------------------
; Ž¡à ¡®â稪 RAM-¤¨áª®¢
;-------------------------------------------------
A3E5E: inc c
dec c ; c=0
jp z,A3EF5
dec c ; c=1
jr z,A3E7F
dec c ; c=2
jr z,A3E81
dec c ; c=3
jr z,A3E83
dec c ; c=4
jr z,A3E87
dec c ; c=5
jr z,A3E93
dec c ; c=6
jr z,A3EC4
ld a,1 ; ª®¤ "bad command"
scf
ret
; c=1
A3E7F: xor a
ret
; c=2
A3E81: xor a
ret
; c=3
A3E83: ld a,-1
and a
ret
; c=4
A3E87: ld ix,0
ld hl,0
ld b,1
; c=5
A3E93: push bc
push ix
push hl
push bc
call A3F35
pop bc
ld ix,512 ; à §¬¥à ᥪâ®à  ?
A3EA0: push bc
push ix
call A3F71
pop ix
pop bc
djnz A3EA0
pop hl
pop ix
pop bc
xor a
cp b
ld c,b
ld b,a
jr z,A3EBC
add ix,bc
ld c,b
adc hl,bc
xor a
ret
;
A3EBC: inc b
add ix,bc
ld b,c
adc hl,bc
xor a
ret
; c=6
A3EC4: push bc
push ix
push hl
push bc
call A3F35
pop bc
ld ix,512 ; à §¬¥à ᥪâ®à  ?
A3ED1: push bc
push ix
call A3FAD
pop ix
pop bc
djnz A3ED1
pop hl
pop ix
pop bc
xor a
cp b
ld c,b
ld b,a
jr z,A3EED
add ix,bc
ld c,b
adc hl,bc
xor a
ret
;
A3EED: inc b
add ix,bc
ld b,c
adc hl,bc
xor a
ret
; c=0. <20>à®áª ­¨à®¢ âì ç¨á«® RAM-¤¨áª®¢.
A3EF5: ;ld hl,0200h ; ##
; ld a,80h
;A3EFA: srl a ; / 2 (¬«.¡¨â ¢ CF)
; rr h ; 横«. ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
; jr nc,A3EFA
; ¢ë室: h=0, a=20h
ld a,20h ; ¯®áâ ¢¨«
ld (D3F70),a
ld de,T3F25 ; â ¡«¨æ  ­®¬¥à®¢ (0..15) RAM-¤¨áª®¢
ld bc,00CEh ; ¯®«ãç¨âì id ¡«®ª , ­ §­ ç. ­  RAM-¤¨áª
A3F09: push bc
ld a,b ; ­®¬¥à RAM-¤¨áª  0..15
rst 08h
or a
jr z,A3F11 ; ¡«®ª ­¥ ­ §­ ç¥­
ld (de),a ; id ¡«®ª  ¢ â ¡«¨æã
inc de
A3F11: pop bc
inc b ; ++­®¬¥à ram-¤¨áª 
ld a,15+1 ; ¬ ªá. ­®¬¥à + 1
cp b
jr nz,A3F09
; ¢ë室 §  ¯à¥¤¥«ë 0..15 ¤¨ ¯ §®­  (­¥â ᢮¡. ram-¤¨áª®¢)
ld hl,T3F25 ; â ¡«¨æ  ­®¬¥à®¢ (0..15) RAM-¤¨áª®¢
ex de,hl
and a
sbc hl,de
ld a,l ; ç¨á«® RAM-¤¨áª®¢ (0=­¥â)
;ld hl,T3FEB; ; ­ã¦¥­ ?
and a
ret
; ’ ¡«¨æ  ­®¬¥à®¢ (0..15) RAM-¤¨áª®¢
T3F25: db -1,-1,-1,-1,-1,-1,-1,-1
db -1,-1,-1,-1,-1,-1,-1,-1
A3F35: ld bc,T3F25
add a,c
ld c,a
ld a,0
adc a,b
ld b,a
ld a,(bc)
ex af,af'
db 0DDh
ld b,h
db 0DDh
ld c,l
ld a,(D3F70)
A3F47: rrca ; 横«. ᤢ¨£ ¢¯à ¢® (¬«.à §àï¤ ¢ CF)
jr c,A3F54
rr h
rr l
rr b
rr c
jr A3F47
;
A3F54: ld b,c ; «®£. ­®¬¥à áâà ­¨æë
ld c,0C4h ; ¯®«ãç¨âì 䨧. ­®¬¥à áâà ­¨æë ¡«®ª 
ex af,af'
rst 08h
ex af,af'
ld a,(D3F70)
ld c,a
dec c
db 0DDh
ld a,l
and c
inc a
ld hl,LC000
ld bc,512
sbc hl,bc
add hl,bc
dec a
jr nz,$-2
ret
D3F70: db 0
A3F71: ld a,d
cp 0A0h
ld c,0E2h
set 6,h
jr c,A3F7E
ld c,0A2h
res 7,h
A3F7E: in a,(c)
ex af,af'
di
out (c),a
db 0DDh
ld b,h
db 0DDh
ld h,c
db 0DDh
ld c,l
ldir
ex af,af'
db 0DDh
ld c,h
out (c),a
ld a,h
and 7Fh
ei
ret nz
ld c,0E2h
in b,(c)
ld a,0FEh
out (c),a
ex af,af'
db 0DDh
ld h,0C2h
db 0DDh
ld l,a
ld a,(ix+0)
ex af,af'
out (c),b
ld h,0C0h
ret
A3FAD: ld a,d
cp 0A0h
ld c,0E2h
set 6,h ; 00->40h
jr c,A3FBA
ld c,0A2h
res 7,h
A3FBA: in a,(c)
ex af,af'
di
out (c),a
db 0DDh
ld b,h
db 0DDh
ld h,c
db 0DDh
ld c,l
ex de,hl
ldir
ex de,hl
ex af,af'
db 0DDh
ld c,h
out (c),a
ld a,h
and 7Fh
ei
ret nz
ld c,0E2h
in b,(c) ; á®åà. ¯®àâ
ld a,0FEh ; ­®¬¥à áâà.
out (c),a
ex af,af'
db 0DDh
ld h,0C2h
db 0DDh
ld l,a
ld a,(ix+0)
ex af,af'
out (c),b ; ¢®ááâ. ¯®àâ
ld h,0C0h
ret
include "cursor.asm"
; ¢å®¤: de=᪥­-ª®¤/ascii-ª®¤ (d - á¡à. 7-© ¡¨â)
;
;TSR: ld a,b
; and 00110000b ; ¡¨âë Ctrl+Alt
; cp 00110000b ; 30h
; jp nz,A06DD ; á®åà. de,bc ¢ ª®«ìæ. ¡ãä¥à¥ ª« ¢ë
; ; de=᪥­-ª®¤/ascii-ª®¤
; ; ®ç¨áâ¨âì ¡ãä¥à ª« ¢¨ âãàë
; ld a,(D0641)
; ld (D0640),a
; ret;
; ;
; res 7,d
; ld a,d
; ld e,a
; ld d,0 ; de=¨­¤¥ªá ᪥­-ª®¤  (hot-ª« ¢¨è¨)
; ; ¢ª«. áâà. á â ¡«¨æ¥©
; ld a,3 ; «®£. ­®¬¥à ¤®á-¡ ­ª¨
; call set_dos_page ; ¯®¤ª«. ¤®á-¡ ­ªã ¢ 0C000h
; ld (tsr2+1),a ; áâ à ï ¡ ­ª  0E2h ¯®àâ 
; ;
; ld hl,0C000h
; add hl,de ;  ¤à¥á í«¥¬¥­â  ®¡à ¡. hot-ª« ¢¨è¨
; ld a,(hl)
; or a
; jr z,tsr1 ; ®¡à ¡. ­¥ ®¯à¥¤¥«¥­
; ld (tsr2+1),a ; áâà. ®¡à ¡®â稪 
; inc hl
; ld a,(hl) ;  ¤à¥á ®¡à ¡®â稪  hot-ª« ¢¨è¨
; inc hl
; ld h,(hl)
; ld l,a
; ld (tsr4+1),hl ;  ¤à¥á ®¡à ¡®â稪 
; jr tsr3
; ;
;tsr1:
;tsr2: ld a,-1
; out (0E2h),a ; ¢®ááâ. ¯®àâ
; ret
; ;
;tsr3: call tsr1 ; ¢ª«. áâà ­¨æã ®¡à ¡®â稪 
;tsr4: jp 0 ; ¯¥à¥©â¨ ­  ®¡à ¡®â稪
; à ¡. ¡ãä¥à, ¨á¯. 16 ¡ ©â (¯/¯ à ¬-¤¨áª®¢)
;T3FEB: db 0