.Z80 .RADIX 16 EXT REWRITE,WRITE,WCLOSE START:: LD SP,(6) LD C,019 CALL 5 LD (OLDDSK),A LD C,9 LD DE,MUVOD CALL 5 LD C,1 ;poÃkej si na CALL 5 ; odpovÅÄ a pokud CP 0D ; bylo [CR] JP Z,NAVRAT ; tak konec ;---------------------- vypiÓ dvojteÃku ---------------------- PUSH AF ;jinak za LD C,2 ; ÃÉslo disku LD E,':' ; je jeÓtÅ CALL 5 ; tÒeba vypsat POP AF ; dvojteÃku ;------------------- konverze Ã.disku ------------------------ RES 5,A ;Óikovn× UPCASE SUB 041 ; a pÒevod na Ã.disku PUSH AF CALL SELDSK ; vyber LD C,9 LD DE,MCTU CALL 5 POP AF LD B,00 LD C,A LD DE,034 LD HL,(1) ADD HL,DE ADD HL,BC LD A,(HL) LD (PROTTRK),A LD BC,BUFFER LD DE,0 L0120: LD A,(PROTTRK) RRA AND 1 XOR D CP 1 LD A,0 ADC A,D LD D,A PUSH BC PUSH DE CALL SETDMA LD C,D CALL SETTRK LD C,E CALL SETSEC CALL READ POP DE POP BC LD HL,080 ADD HL,BC LD B,H LD C,L INC E LD A,024 XOR E JR NZ,L0120 LD E,A INC D LD A,4 XOR D JR NZ,L0120 CALL RPROT LD B,0C3 LD A,(BUFFER+0A00) XOR B JP NZ,NOSYST LD A,(BUFFER+2000) XOR B JP NZ,NOSYST LD A,(BUFFER+3600) XOR 3 JP NZ,NOSYST LD A,(OLDDSK) CALL SELDISK LD A,(05D) CP ' ' JR NZ,AA1 LD HL,MDEF LD DE,05D LD BC,8+3 LDIR AA1: LD DE,05C LD HL,BUF2 CALL REWRITE JP C,PLNY LD DE,BUFFER LD BC,04600 AA2: LD A,(DE) INC DE CALL WRITE JP C,PLNY DEC BC LD A,B OR C JR NZ,AA2 CALL WCLOSE JP C,PLNY LD DE,MKON LD C,9 CALL 5 JP NAVRAT ;;;;;;;;;;;;;;;;;;; RPROT: CALL RESTORE LD A,(PROTTRK) RRA OUT (0DD),A LD A,1 LD HL,BUFFER+03600 L026C: PUSH AF CPL OUT (0DA),A LD A,(PROTTRK) RLA RLA AND 8 XOR 07D DI OUT (0D8),A CALL WBUSY CALL RD256 EI JR C,RDERR CALL WNBUSY JR NC,RDERR IN A,(0D8) CPL AND 0BF JR NZ,RDERR POP AF INC A CP 011 JR C,L026C RET RD256: LD B,0 L02DA: IN A,(0D8) RRA RET C RRA JR C,L02DA IN A,(0DB) LD (HL),A INC HL DJNZ L02DA RET RDERR: LD C,9 LD DE,MRDERR CALL 5 JP NAVRAT BIOS: PUSH DE LD DE,(1) LD H,0 ADD HL,DE POP DE JP (HL) CRLF: LD C,9 LD DE,MCRLF CALL 5 JP NAVRAT NOSYST: LD C,9 LD DE,MNOSYST CALL 5 JP NAVRAT PLNY: LD C,9 LD DE,MPLNY CALL 5 JP NAVRAT SELDSK: LD C,A LD L,018 JR BIOS SELDISK: PUSH AF CALL SELDSK POP AF LD C,0E LD E,A JP 5 SETTRK: LD L,01B JR BIOS SETSEC: LD L,01E JR BIOS SETDMA: LD L,021 JP BIOS READ: LD L,024 CALL BIOS AND A RET Z RESTORE: LD A,0F4 OUT (0D8),A CALL WBUSY JR WNBUSY WBUSY: CALL D35 L0304: IN A,(0D8) AND 081 XOR 080 JR NZ,L0304 RET WNBUSY: LD D,096 L030F: DEC DE LD A,D OR E RET Z IN A,(0D8) RRA JR NC,L030F RET D2M2: LD A,032 L031B: CALL D35 DEC A JR NZ,L031B RET D35: EX (SP),HL; 124 T/35 uS EX (SP),HL EX (SP),HL EX (SP),HL EX (SP),HL EX (SP),HL RET MUVOD: DEFB 00D DEFB 00A DEFM "Kop" DEFB "I"+080 DEFM "rka opera" DEFB "C"+080 DEFM "n" DEFB "I"+080 DEFM "ho syst" DEFB "W"+080 DEFM "mu CP/m 2.2.LEC. " DEFB 00D DEFB 00A DEFB "c"+080 DEFM "esk" DEFB "A"+080 DEFM " verze (C) 1991 mZx soft" DEFB 00D DEFB 00A DEFB 00A DEFM 'Zadaj disk so syst',0D7,'mom: $' MCTU: DEFB 0D,0A,"c"+080 DEFM "tu syst" DEFB "W"+080 DEFM "m ....." MCRLF: DEFB 00D DEFB 00A DEFM "$" MNOSYST: DEFB 00D DEFB 00A DEFM "Syst" DEFB "W"+080 DEFM "m nenalzen ! " DEFB 00D DEFB 00A DEFM "$" MPLNY: DEFM 0D,0A,'Disk je pln',0D9,0D,0A,'$' MRDERR: DEFB 00D DEFB 00A DEFM "Chyba na disket" DEFB "E"+080 DEFM " !!!!" DEFB 00D DEFB 00A DEFM "$" MKON: DEFB 00D DEFM "Z" DEFB "A"+080 DEFM "pis ukon" DEFB "C"+080 DEFM "en",0D9,". " DEFB 00D DEFB 00A DEFM "$" MDEF: DEFM 'SYSTEM SYS' PROTTRK: DEFB 0 BUF2: DEFS 0B0 NAVRAT: LD A,(OLDDSK) CALL SELDISK JP 0 OLDDSK: DEFB 0 BUFFER: END