                 
    CP/M-80,    
     
,        (.,  , Hughes L.E.
System programming under CP/M-80, Reston: Reston, 1983)

   樮 ⥬ CP/M-80 (ࠧࠡ稪 Gary Kildall, ଠ
Digital Research, ᭮  (2.2) ࠧࠡ⠭  1979 )
                樮   ⥬   
ப஢,  稫 ப  ࠭,  ,
   ⬥    ᯥ樠  (.,  ਬ,  Practical
Computing, April 1984),  ᯥ  ᫮   孨᪨
⮨⢠,   뭮筮 ⠭.      뫮,  
1983        ਬ  樮  ⥬  
ப஢   ᫮ ᫥饥:

	58%	CP/M-80
	29%	MS-DOS
	24%	Apple DOS
	12%	p-System
	 2%	CP/M-86
	 2%	Unix
	 2%	Oasis
	 1%	Pick
	 4%	⠫ (iRMX-86, TurboDOS, XENIX, SB-80,
			   MP/M-II, MP/M-86 I DR.)

   ⮨  ⬥,    樮  ⥬ TurboDOS, SB-80,
MP/M-II ᮢ⨬  CP/M-80,  MS-DOS  㫨஢  ࠡ
CP/M-80      ᯥ樠쭮  ணࠬ.      
CP/M-80      稥          讣    
⥬᪮ ᯥ祭.
     饥 ६  裡  १ ⮬ ⢠ 16  32
⮢  ஢  業  殮    ᨮ쭮  
⢥  ᬥ⨫    MS-DOS,  XENIX    UNIX,    
ਬ CP/M-80  (      ண஢    1983-1984
) ࠭   ⮢ ஢, ࠡ
 ⠭ MSX.  


        CP/M-80-2.2  (  Control  Program  for
Microcomputers   -             -)
               
 ,      ,
               8-
 Intel 8080 (    -  58080)
    (Intel  8085,  Zilog  80  ..).   
        
 :
	-    20  (  2.2)
	   ,    0000H;
	-         
	    ;
	-     ,
	   /   ( + ),
	     ASCII (American Standard
	  Code for Information Interchange - 
	      ,  
	      -7  -8). 
                 
         CP/M-80      
 ,   '8080.
                  
    .     
            (..   ),    
               .
   :
*       
   .    
         BIOS'
  (. ).
*    (  ) 
    (  8-  
      1 ), 
        .
*      () ,
         
    .
*         .
  , ,     5,6,7,8,22,28,29.
          ,
          . 
    ,   ,  
        . ,
         
        ,  
   . 
           
         
    ,       .  
           
(      )   ( 
  ).   ,      
           CP/M-80      
8-          
  ( IBM-3740),     
: 1,7,13,19,...  
       ,       , 
 ( CP/M-80     128  ),  
          
       .


        CP/M-80    :

BIOS (Basic Input/Output System) -   /.
	    , :
	-        ;
	-    ,   ;
	-     
	  ;
	- /     ;
	-  (  ) .
	      ,
	  .  -
	   .  BIOS'
	 ,     
	     
	.

BDOS (Basic Disk Operating System) -  
	 .   
	 ,    
	/,     ""
	.     :
	-      ;
	-      
	      ;
	-       ;
	-    ;
	- , , , , 
	    ;
	-  /  
	  ;
	-    / .
	BDOS    / 
	,      BIOS' 
	 BDOS  -  CP/M.
	   ,  
	    ,  
	    BDOS.

CCP (Console Command Processor) -   .
	     
	 .   
	,      
	   :
	-      ;
	- ,    ;
	-  ()  .
	   .  
	  BDOS'OM.  .   
	  .   CCP 
	     BIOS'.


	       CP/M-80
		       .

 :

	MSIZE -     ( CP/M-80-2.2
		 '   20 );
		 MSIZE   
		    MOVCPM.
	BIAS  = ( MSIZE - 20 ) * 1024

     CP/M-80:

	CCP   = 3400H + BIAS
	BDOS  = CCP + 806H
	BIOS  = CCP +1600H


       (    )

A.   ( 0000 - 00FF )

	0000 - 0002	JMP WBOOT (. BIOS)
	0003		I/O byte (. BIOS)
	0004		current User & Disk (. CCP)
			        (uuuudddd)
	0005 - 0007	JMP BDOS 
	0008 - 002F	RST1 - RST5 (  
			,   )
	0030 - 0037	  
			( Digital Research )
	0038 - 003F	RST7 -  
			: DDT, SID  .
	0040 - 004F	    
			   
			  IMSAI FIF .
			   
			    
			BIOS',     
			 - .
	0050 - 005B	  
			( Digital Research )
	005C - 006B	1st SLOT -   ( 
			),   CCP
			   (
			 - . BDOS, FCB-)
	006C - 007B	2nd SLOT -    ( 
			) ...
      ( 005C - 007C )	      
			   FCB- 
			.
	007D - 007F	Random Record Pointer (. BDOS,
			FCB-) -    
			FCB-,   
			005C - 007C,   
			    (. BDOS,
			Write/Read Random). 
	0080 - 00FF	DMA- (   
			)  .

B.    -    0100,
	      
	    .
	    
	  :

	CCP-1	     
		     
		""  -  
		,   RET ( 
		CCP    
		    
		CALL 0100H), ,    
		 ,    
		 .

	BDOS-1	     CCP
		""   ,
		  ,     
		    ("" ),
		..    0 BDOS' 
		  JMP 0000.

	BIOS-1	    
		,    
		  BDOS'.   
		  JMP 0000.

	 1:    
		        CCP  BDOS.
	 2:     
		       - BIOS+3    0001 
		       0002, BDOS -   0006  0007 (.
		       A.). CCP=BDOS-806H.

C. Console Command Processor (CCP) -   
	( CCP - BDOS-1 )

D. Basic Disk Operating System (BDOS) -  
	( BDOS - BIOS-1 )		 

E. Basic Input/Output System (BIOS) -  
	( BIOS - BIOS+BIOSsize)	      /

	:   BIOS' ,   
		      (. ),  
		    ,    BIOS 
		    ,  MSIZE  , 
		        (,  64 k
		     62 k).



			    B I O S
		  (Basic Input/Output System)
		    /

 BIOS':
				ࠬ
  	  	室		室

BIOS+00H:  BOOT	 +++			C=0 (User=0, Disk=0)
	砫쭠 㧪 ⥬; 樠 -
	User & Disk (祩 0004)  I/O byte (祩 0003)

    +03H:  WBOOT +++			C=UserDisk  ଠ
	१㧪 ⥬ (CCP & BDOS)	    (uuuudddd)
	ந 樠 ⥬  , ஬
	祥 0003  0004; ॣ C 㦠  祩 0004

    +06H:  CONST			A=constat
	  ᮫ ()

    +09H:  CONIN			A=ᨬ
	 ᨬ  ᮫

    +0CH:  CONOUT	C=ᨬ
	뢥 ᨬ  ᮫

    +0FH:  LIST		C=ᨬ
	뢥 ᨬ  

    +12H:  PUNCH	C=ᨬ
	뢥 ᨬ  

    +15H:  READER			A=ᨬ
	 ᨬ  뢠⥫  䮫

    +18H:  HOME
	     HOME
	(筮 ⭮ SETTRK  BC=0)

    +1BH:  SELDSK	C=disk#		HL=DPH
	  (믮 楤   ⭮
	ॠ樨 BIOS';   롨 ᪮, ,
	  ᪮,   ଠ ᪠,
	ਬ:
		A - ᪮ 1, ୠ ⭮ ;
		B - ᪮ 2, ୠ ⭮ ;
		C - ᪮ 1,  ⭮ ;
		D - ᪮ 2,  ⭮ )

    +1EH:  SETTRK	BC= ஦
	  ஦ ( 0 - ... )

    +21H:  SETSEC	C=䨧᪨  ᥪ
	  ᥪ ( 筮 稭  , 
	뢠  㣨 砨 - ⠪, ਬ,  
	CP/M-ଠ  ⨤ ᪮  ᥪ
	稭  0   128)

    +24H:  SETDMA	BC=DMA () 
	⠭  אַ 㯠  
	(ᨥ  砥,   易⥫쭮 
	  ० אַ 㯠  ,  
	   ࠧ஬  128 ,  
	  楤 READ  WRITE)

    +27H:  READ				A=dskstat
	 ᥪ   (।⥫쭮  
	।:  ᪠ (᪮),  ஦ 
	ᥪ,   -   ࠬ ࠭,
	⮬  ஢ ୮ 뢠 筮
	᭮ 맢 READ;  뢠  ᥪ 
	   㦭 믮 SETSEC (SETTRK,
	᫨ 㦭 ᬥ ஦), SETDMA, READ)

    +2AH:  WRITE			A=dskstat
	 ᥪ   (믮 筮 READ)

    +2DH:  LISTST			A=lststat
	  饣 ன⢠

    +30H:  SECTRN	BC=.	HL=䨧.
			DE= ⠡ ८ࠧ
	८ࠧ ᪨  ᥪ  䨧᪨


	constat = 0, ᫨ ᨬ     
	    ( ᨬ )
	disk# = 0 (DISK A), 1 (DISK B), ...
	DPH (Disk Parameter Header) = 0, ᫨ ᪠  ⠪
	    ஬ ; ᫨  ,  DPH ।⠢
	    ᮡ   ࠬ஢  ᪠,
	     ᮤঠ ᫥騥 ᫮ ( 2 ):
		-  ⠡ ८ࠧ  ᥪ;
		- 0  \
		- 0    ᯮ BDOS'
		- 0  /
		-    ࠡ  ४ਥ ᪠;
		- DPB (Disk Parameter Block)  , 
		  ஬ ᮤঠ ࠬ ᪠;
		-   ஢ન ४ਨ (
		   ⮣  ।⠢ ᮡ
		  ஫ 㬬   ᪮
		  ᥪ ४ਨ);   ᪠ 
		  ﬨ   ४ BDOS 砥
		   ᪠  ᮢ ஫쭮
		  㬬  ⠢ 䫠    
		   ᪥;
		-     ᪠ (
		   ⮣  ᮮ⢥  
		  ᪥, 祬  砥  ,
		    - ᢮)
	dskstat = 0, ᫨   ᪮ 襫 ᯥ譮
	    ( ⨢ 砥  ᮤঠ  訡 >0)
	lststat = 0, ᫨ 饥 ன⢮  ⮢ 
	    ਥ ᫥饣 ᨬ ( 0, ᫨ ⮢)

	+++ ᫥ 믮 ⬥祭 楤 ࠢ
	    ।  ᮫  (CCP), 
	    ண ॣ C  室 ࠬ஬.

 *  ⠡ ८ࠧ  ᥪ   ࠬ஢  *
 *  ᪠   騬   ᪮, ᫨  ᪨  *
 *		      ଠ		     *

		      Disk Parameter Block
		       

(筮 祭  8" (CP/M Standard) ᪠)
-
SPT  word   26  ⢮ ᪨ ᥪ஢  ஦
		(sectors per track);
BSH  byte    3  ⢮ ,    ᤢ
		ࠧ ᪮ ᥪ, ⮡ 
		ࠧ  (allocation group size) - 
		 砥 1024 
		(block shift factor);
BLM  byte    7  ᪠  = ࠧ  / 128 - 1
		(block mask);
EXM  byte    0  ᪠ ४୮ ; ଠ 
		ᯮ 䠩  ᪥ ࠭ 
		४  (. BDOS),  ⮬ 
		४ୠ   ࠧ  32  
		 ࠭ ଠ  ᯮ
		।  䠩; ᫨ EXM=0, 
		ᨬ ࠧ, 㥬 
		४୮ , ࠢ 16k; ᫨ 1,  32k
		 ..,  ᫥ 뢮 - ᫨ ਬ
		⮢    ᪥, 
		 ࠧ   CP/M = 1k,  
		塠⮢ 樨 - 2k (.  BDOS'
		 ४୮ )
		(extent mask);
DSM  word  242  = ᨬ ࠧ ᪠   ( 
		⥬ ஦) - 1
		(disk maximum);
DRM  word   63  = ᨬ쭮 ᫮ ४ ᥩ - 1
		(directory maximum);
AL0  byte 0C0H      - ⠪ 
		४   ⠭⭮ 8" ᪥ 
		,    묨 砫쭮
		(allocation vector, byte 0);
AL1  byte    0  ன   
		(allocation vector, byte 1);
CKS  word   16  ࠧ ( )  ஢ન ४ਨ =
		ᨬ쭮 ᫮ ४ ᥩ / 4;
		᫨  ॡ ஢ ஫ 㬬
		(ਬ,   ᬥ  -
		஭  ),  CKS 㦭 
		ࠢ 
		(shecksum vector size);
OFF  word    2  ᬥ饭, ஥ BDOS ਡ  ᫥
		᪮  ஦  祭
		䨧᪮ , =  ⥬ ஦,
		 묨 稭 ४ ᪠; ᫨
		  ᮤন ⥬ ஦,  OFF=0
		(track offset).

			    I/O byte
		        /

    / ( 0003)   
     CP/M.
    CP/M    :

   CON:	   (  )
   LST:	   
   PUN:	   ( )
   RDR:	     ( )

                 
  PIP,  STAT,        .     
      
 

   !!!   BIOS   
	 (..   I/O  
	  ;   
	  ,   BIOS  
	   )	  !!!,

         
      I/O
, ,    STAT -

	STAT LST:=LPT:

      / :

	:	7  6  5  4  3  2  1  0
	      Ŀ
I/O byte:      LST  PUN  RDR  CON 
	      


᪮		   䨧᪨ ன⢠
ன⢮  	00	01	02	03

LST	    7, 6	TTY	CRT	LPT	UL1
()

PUN	    5, 4	TTY	PTP	UP1	UP2
()

RDR	    3, 2	TTY	PTR	UR1	UR2
(뢠⥫)

CON	    1, 0	TTY	CRT	BAT	UC1
(᮫)



       :  TTY, CRT  ..  
           ,  
 BIOS.


CON	    1, 0	TTY	CRT	BAT	UC1
(᮫)
=


			     C C P
		  (Console Command Processor)
		    

            
() :

 DIR [[d:]<AFN>]	-     
			   (  
			  );
 ERA [d:]<AFN>		-  ;
 TYPE [d:]<UFN>		-     ;
 REN <NEW>=<OLD>	-   (  
			     [d:]<UFN>);
 SAVE <size> [d:]<UFN>	-      
                           0100H   <size> 
			   (  = 256 );
 USER <>		-    ( 0 
			  15;    
			     0004);
 d:			-    (A - 0, B - 1 
			  ..;   
			      
			  0004);

     d  -  砥    (A, B, C, ...  P -  CP/M-80-2.2
㯭 ᨬ 16 ᪮),  㬮砭 ᯮ  ⥪騩
,   㪠뢠  ᮮ饭 ⥬: A> ; AFN / UFN -
 䠩, ஥  奬 < 䠩>.<७>,   
    /   㯮ॡ  
(ᨬ  '?',  .   BDOS).  䠩  ᮤঠ ᨬ
8 ᨬ, ७ - 3.     CCP   ᮡ ᨬ '*',
   䠩  ७      ᨬ
'?',  ⠪  ࠧ     DIR A:TEST*.*   ⭠
DIR A:TEST????.???
          : .  : * ?  ,
  ,    = _ ; < >  ,
  -.

            , 
CCP        <>.COM ,
    ,          0100H,
       .   ,    
       
    ,    0080H ( 
0080H      ,     
 0081H    00 -  ).  
,  CCP      
          005CH 
006CH.

!!! । 㧪  䠩  ᪠ CCP ஢
    ᮢ 6- 祩 ᨨ 樮 ⥬:
      室  CCP ࠧ  "" USER,
     㣮 - ।⢥ । 砫 BDOS'; ᫨
    㦨 ᮢ,  CCP  室 
    ᥡ  ॢ   "宩 ⠭"  
    :	DI
		HLT	;
    ᫨ ᮢ  CCP  ᢮ ᮡ⢥
    㦨 ணࠬ MOVCPM,   ⢥砥
    ᮮ饭 SYNCHRONIZATION ERROR!  ⠪ 室
     HLT						   !!!

!!!      CCP 
     BDOS #10,    
         (. BDOS)  !!!

		    

          CCP   
  (   'A')  $$$.SUB.   
 ,           ,
    ,        
  ,      
            .      
  $$$.SUB.   $$$.SUB      
  SUBMIT,     .

!!!    ,   
    DIR  TYPE     
     						   !!!

!!!   ctrl-C, ctrl-S i ctrl-P  
     BDOS					   !!!

		     

    CCP    (  ) 
  ,       
(         
).                  CCP,
        CCP+6      ,
   BDOS #10.    
:          ,
            
.    CCP (  BIOS'):

	CCP+0	-     ( 
		  );
	CCP+3	-  .

		           BDOS
     	        (Basic Disk Operation System)
	        

   BDOS      /    .
        ,   ,   ,
           .
       .
            
      ,         
 :

Ŀ
ࠧ  :   1      8           3       1   2    1 
祭:       UN   䠩  ७  EX  0 0  RC 
Ĵ
ࠧ  : 			16		       
祭:      	 ᯮ   ᪥     


UN - (User Number)   (BDOS   
      ,       
     ( BDOS #32));      
       0E5H,    
      (       ,
         ) 
      0E5H    -   ᤥ,
     ਬ,    RECLAIM  ணࠬ POWER;
EX - (Extent number)   16- 
         (  ); ᫨ 
     ४ୠ   ᮢ  祬 16k (.
     BIOS),   EX ᮤন  ᫥ ⮣
     16-⭮ "᪠" 䠩,   RC ᮤন ॠ
     ࠧ  । ⮣ ᫥ "᪠"; ਬ:
     䠩 FILENAME.TXT  ࠧ஬ ஢  24 ,
     ᠭ  ४ਨ  ﬨ  32k, 㤥 
      (   ᪠  ந쭮):

	00 F  I  L  E  N  A  M  E  T  X  T  01 00 00 40
	04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 00 00 00

      ⮬ ਬ ࠧ   ࠢ 2k,  
      - ⭠;
RC - (Record Count)     
      ;

           ,
 DSM (.  BIOS,   )   255,  
      .       
    : 16    
    8   .



               BDOS'     
   FCB- (File Control  Blok)  -
    ,     
   :

Ŀ
ࠧ  :   1      8           3       1   2    1 
祭:       DN   䠩  ७  EX  0 0  RC 
Ĵ
ࠧ  : 			16		       
祭:      	 ᯮ   ᪥     
Ĵ
ࠧ  :   1   3				       
祭:       CR  RN				       


     (  ):

DN - (Drive Number)   () - 0=⥪騩 (..
         BDOS #14;    
     0004,   CCP), 1=A, 2=B  ..;
CR - (Current Record pointer)   
           ;
RN - (Random Record Number)   
           ( 
      BDOS'OM    
        ).

!!!     䠩  ७   '
              .
           21H  5FH 
      :		= _ . : ; < > *			    !!!

     '?'     -      
  ()    .     ,     
          '?',  
 (AFN - Ambiguous File Name).     
    BDOS: #17, #18, #19.  ( 
#17 i #18      : EX (Extent  Number)
 DN (Drive Number)).     (UFN -
Unambiguous  File  Name)         
 BDOS.


		              B D O S
		    

           BDOS        C,
  -    DE  (    
E).             A  HL.
 : CALL 0005.

#㭪樨        	   ࠬ  ᠭ

 0  System Reset ( ) - ⭮ 
    १㧪 JMP 0000;

 1  Console Input (  ) - A=ᨬ  ᮫;
    믮  宬  ᮫,  ⠡ 
    ஡, ॠ  ctrl-P (printer echo) I ctrl-S (screen
    pause);

 2  Console Output (  ) - E=ᨬ  ᮫,
     ⠡  ஡, ॠ  ctrl-P (printer
    echo) I ctrl-S (screen pause);

 3  Reader Input (  ) - A=  뢠⥫;

 4  Punch Output (  ) - E=  ;

 5  List Output (  ) - E=ᨬ  ;

 6  Direct Constrol I/O (  ):
	 :		   :
	E=0FFH		  A=ᨬ  ᮫ ( ᨬ)
	E=0FEH		  A=0 ***	     ( )
	E=ᨬ(<0FEH)   A=0		     (뢮 ᨬ)
    *** ᫨ ⠭ 䫠 Zerro,     ;

 7  Get I/O byte ( I/O ) - A=I/O  (ᮤন
    祩 0003);

 8  Set I/O byte ( I/O ) - E=I/O ;

 9  Print String (    (+)) - DE=
    ப, 뢮 ப  ᨬ $  ᮫, 
    ⠡  ஡, ॠ  ctrl-P (printer echo) 
    ctrl-S (screen pause);

10  Read Console Buffer (   ) - DE=
    , 饣 ᫥ :
	Ŀ
	 BM  BL  ᮡ⢥  ࠧ஬ BM  
	
	BM - ᨬ ࠧ   ;
	BL - ॠ ࠧ (᫮  ᨬ);
     ந室   CR ( LF)   
    ; ᫨   ᨬ = ctrl-C,  ந室
    १㧪 ⥬;     ᪠
    ᫥騥  ।஢:
d	BS	-   蠣  ࠭;
t	DEL	-   蠣  宬;
t	ctrl-R	-     ᫥饩 ப 
		  த ;
d	ctrl-X	- ⬥   ࠭ ப 
		  த ;
t	ctrl-U	- ⬥   室   ப 
		  த ;
d,t	ctrl-E	- 室   ப  த 
		  (᫨   頥   ப);
    , ⬥祭 ᨬ t, ।祭 
    ।஢  砥, ᫨  ⢥ ᮫
    ᯮ ன⢮  ⪮  
    ଠ樨, ਬ ⥫⠩; ᨬ d 砥 ᯫ;

11  Get Console Status (  ) - A= ᮫
    (=0, ᫨ ᮫  ⮢  뤠 ᨬ);

12  Return Version Number (   CP/M (BDOS))
     ᨨ 2.2 H=0, L=22H;

13  Reset Disk System (  ) - ந
     ஢ ஫ 㬬  ४ ᪮, ஬
    ⮣, A=0FFH, ᫨  ⥬ ᪥  䠩 $$$.SUB
    (. CCP,  ०),  00  ⨢ 砥;

14  Select Disk ( ) - E=0( A), 1( B)  ..;
    ᫨  (᪮)  ⠪ ஬  , 
    뤠 訡:
		Bdos Error on X: Select
    ᫨  ,   訡  饭 
    ,  뤠 訡:
		Bdos Error on X: Bad Sector
    (  砥  - A, B, C, ...);
    ⠪  訡 뤠 BDOS'   㣨 ᪮
    : #15 - #23, #33 - #36, #40;

15  Open File ( ) - DE= FCB-; A=0FFH, ᫨
    䠩  , =४୮ , ᫨ ;
    ४  ।⠢ ᮡ ᫮  0  3, ஥
    㪠뢠   ४୮   । ᪮
    ᥪ ४ਨ, ⠭    DMA-,
     㭪樥 #26;

16  Close File ( ) - 믮 筮 Open
    File;

17  Search for First (     ) -
    믮 筮 Open File  ᪫祭 ⮣,  
     䠩,  ७,   DN  EX 
    ⠭ ;

18  Search for Next (   ) - (DE 
     易⥫쭮, .. ࠬ ࠭ ᫥ 믮
    㭪樨 Search for First) 믮 筮 Search for
    First,   ᫥ ४ୠ ,
    㤮⢮ ᫮, ᠭ  FCB-; 
    䠩  ४ਨ 믮  ᫥饩 奬:
	Search for First	-   䠩,
	Search for Next		-  ன 䠩,
	Search for Next		-  ⨩ 䠩,
	     . . .		-  ..,
	Search for Next		- 䠩   -  ᪠;
    !!!  ⨬ 㭪ﬨ  뢠 㣨
	᪮ 㭪樨 BDOS		     !!!
    - ᫨ ᪠   ⠭ ⮫쪮  
    䠩 (७),    䠩  ,
    㤮⢮騬 ᫮ (..  ࢠ ४ୠ
     䠩);
    - ᫨ ᪠ ⠭   EX,   
    ४ୠ  䠩, 㤮⢮饣 ᫮;
    -  ⠭ ᪨   DN  ⠪ ४
      䠩;

19  Delete File ( ) - 믮 筮 Open
    File, ஬ ⮣,   ⠭   
    䠩 (७);

20  Read Sequential (  ()) -
    DE= FCB-, 㤠 ந 뢠; A=0, ᫨
    ᫨   浪,  㦥  䠩;
    ⮬᪨ ६  CR;

21  Write Sequential (  ()) -
    DE= FCB-, 㤠 ந ; A=0,
    ᫨   浪,  㦥  ᪠;
    ⮬᪨ ६  CR;

22  Make File (  ) - DE= FCB-; A=0FFH,
    ᫨ ९ ४ਨ, =४୮ , ᫨  
    浪;

23  Rename File ( ) - 믮 筮
    OPEN FILE  ᪫祭 ⮣,   FCB- । 맮
    ᮧ   䠩:
	<஥>	-   FCB+0 
	<>		-   FCB+16 ( DN ண
			    뢠);

24  Return Log-in Vector (   
     ()) - ᮤন HL ।⠢ ᮡ
    ,   ண, ⠭  1, 砥,
      ᮮ⢥饬  뫮 饭 BDOS; 訩
     ॣ L ᮮ⢥  A, ᫥騩 - B  .D.;
      ந室  맮 㭪樨 #13;

25  Return Current Disk (   ) -
    A=⥪騩  BDOS (. 㭪 #14);

26  Set DMA Address ( DMA ) - DE=DMA-
    (ࠧ  ࠢ  ᪮ ᥪ, .. 128
    );

27  Get ADDR (Alloc.) (    ) -
    HL=    ⥪饣 ᪠ (. BIOS);

28  Write Protect Disk ('    ) -
    ⥪騩  ⠭ 饭   ( ࠡ
    १ BDOS),  ᠬ ᪥    ந室;

29  Get R/O Vector (    ) -
    믮 筮 #24  ᪫祭 ⮣,  ,
    ⠭  1, 砥    
    ᮮ⢥饬 ᪮;

30  Set File Attributes (  ) - DE=
    FCB-; A=0FFH, ᫨ 䠩  , =0, ᫨  
    浪;  FCB-  ७  䠩 । 맮
    㦭  訩   ᮮ⢥ :
	  ७ ᮮ⢥ 䫠 R/O,
	ன  ७ ᮮ⢥ 䫠 SYS,  ..;
    
31  Get ADDR (Disk Parms) (    )
    - HL= DPB- (. BIOS);

32  Set/Get User Code (/  ) -
    ESLI E=0FFH,  A=⠭  짮⥫; 
    ⠭  짮⥫,   ॣ E;

33  Read Random (  ()) - DE=
    FCB- ( RN ), 㤠 ந 뢠;
    A= 訡:
	0 - ଠ쭮 襭,
	1 - ⪠  ᠭ ᥪ,
	3 -  뢠 ⥪ ४ୠ ,
	4 - ⪠   ᠭ ४୮ ,
	6 - ⪠   । ᪠;
     CR  RN  ६!

34  Write Random (  ()) - DE=
    FCB- ( RN ), 㤠 ந ;
    A= 訡:
	0 - ଠ쭮 襭,
	3 -  뢠 ⥪ ४ୠ ,
	5 - ४ ९,
	6 - ⪠ ᪠  । ᪠;
     CR  RN  ६!

35  Compute File Size (  ) - DE=
    FCB- ( RN ), BDOS   뢠  
    RN ࠧ 䠩  ᪨ ᥪ;

36  Set Random Record (    
     ) - DE= FCB- ( RN ), BDOS
     ⥪騩  ᪮ ᥪ  砫 䠩
     뢠    RN;

37  Reset Drive (   ) - DE= 
      (筮 #24),  ஬ ,
    ⠭  1, 뢠   
    ᮮ⢥饬 ᪥ ( 0   ﭨ ᪠);

40  Write Random with Zero-Fill (  ()
          ) -
    믮 筮 Write Random  ᪫祭 ⮣, 
     ࢮ     ⠫ ᥪ ⮣ 
     ﬨ;


(c) ASH 1992
  .
         