System information
 ;* *
 ;* THE WRITE ENTRY POINT TAKES THE PLACE OF *
 ;* THE PREVIOUS BIOS DEFINTION FOR WRITE. *
 ;* *
 ;*****************************************************
 WRITE:
  ;WRITE THE SELECTED CP/M SECTOR
 004B AF XRA A ;0 TO ACCUMULATOR
 004C 327301  STA READOP ;NOT A READ OPERATION
 004F 79  MOV A,C ;WRITE TYPE IN C
 0050 327401  STA WRTYPE
 0053 FE02  CPI WRUAL ;WRITE UNALLOCATED?
 0055 C26F00  JNZ CHKUNA ;CHECK FOR UNALLOC
 ;
 ; WRITE TO UNALLOCATED, SET PARAMETERS
 0058 3E10  MVI A,BLKSIZ/128 ;NEXT UNALLOC RECS
 005A 326C01  STA UNACNT
 005D 3A6101  LDA SEKDSK ;DISK TO SEEK
 0060 326D01  STA UNADSK ;UNADSK = SEKDSK
 0063 2A6201  LHLD SEKTRK
 0066 226E01  SHLD UNATRK ;UNATRK = SECTRK
 0069 3A6401  LDA SEKSEC
 006C 327001  STA UNASEC ;UNASEC = SEKSEC
 ;
 CHKUNA:
  ;CHECK FOR WRITE TO UNALLOCATED SECTOR
 006F 3A6C01  LDA UNACNT ;ANY UNALLOC REMAIN?
 0072 B7  ORA A
 0073 CAAE00  JZ ALLOC ;SKIP IF NOT
 ;
 ; MORE UNALLOCATED RECORDS REMAIN
 0076 3D  DCR A ;UNACNT = UNACNT-1
 0077 326C01  STA UNACNT
 007A 3A6101  LDA SEKDSK ;SAME DISK?
 007D 216D01  LXI H,UNADSK
 0080 BE  CMP M ;SEKDSK = UNADSK?
 0081 C2AE00  JNZ ALLOC ;SKIP IF NOT
 ;
 ; DISKS ARE THE SAME
 0084 216E01  LXI H,UNATRK
 0087 CD5301  CALL SEKTRKCMP ;SEKTRK = UNATRK?
 008A C2AE00  JNZ ALLOC ;SKIP IF NOT
 ;
 ; TRACKS ARE THE SAME
 008D 3A6401  LDA SEKSEC ;SAME SECTOR?
Appendix G : Blocking and Deblocking Algorithms CP/M Operating System Manual
G-4










