;POKUSY S FORMATOVANIM MFM ;FORMAT;02 ; 05-DEC-91 ; 15:29 ;(C) LZR Soft, 01-AUG-91 .RADIX 16T FD525 EQU 1 PRTCIS EQU 0 MAXFYZ EQU 30T IFT FD525 CMD EQU 80 ELSE CMD EQU 78 ENDC ORG 0DC00 FORMAT JP BEGIN IFT FD525 DRIVER DB 10 ELSE DRIVER DB 01 ENDC ;SEKTORU Z JEDNE STRANY NA STOPE MAXSEC DB 29T MAXTRK DB 81T SKEW DB 6 WAIT DB 8 STATUS DB 0 BEGIN LD HL,XINISC ZNOVU CALL 105C LD A,18 LD (709F),A CALL 0CA3 LD DE,000A CALL 13DD LD HL,STCHR LD BC,0200+'–' CALL 0E55 LD BC,035E CALL 0E55 LD A,(DRIVER) OUT (CMD+4),A LD BC,0000 CEKEJ IN A,(50) RLCA JR C,INTERUP IN A,(CMD) RLCA JR NC,READY DEC BC LD A,B OR C JR NZ,CEKEJ LD HL,XREADY JR NAERR INTERUP LD HL,XABORT NAERR SCF JR NOTRED READY XOR A CALL PRIKAZ IN A,(CMD) BIT 6,A LD HL,XPROTE JR NZ,NAERR CALL PRACUJ NOTRED CALL STOP LD A,0 RET NC PUSH HL LD DE,0D14 CALL 13DD POP HL CALL 105C LD HL,XKONEC CALL 105C CALL 077B KEY CALL 08AC JR C,KEY CP 0D RET Z LD HL,ZAINIT JR ZNOVU STOP PUSH AF LD A,0D0 CALL PRIKAZ LD A,60 CALL PRIKAZ IFT FD525 LD A,(DRIVER) SET 6,A RES 4,A ELSE XOR A ENDC OUT (CMD+4),A POP AF RET PRIKAZ OUT (CMD),A LD B,0A DJNZ $ PRI1 IN A,(CMD) BIT 0,A JP NZ,PRI1 RET GENSKW LD HL,TABLE LD BC,MAXFYZ CALL 860 LD A,(MAXSEC) LD B,A INC A LD C,A LD A,(SKEW) LD D,A LD A,1 LD E,A GEN0 PUSH BC LD HL,TABLE-1 LD B,0 LD C,A ADD HL,BC POP BC GEN1 INC (HL) DEC (HL) JR Z,GEN2 INC HL INC A JR GEN1 GEN2 LD (HL),E ADD A,D CP C JR C,GEN3 SUB MAXFYZ+1 JR NC,GEN4 XOR A GEN4 INC A GEN3 INC E DJNZ GEN0 RET PRACUJ XOR A LD (TRACK),A LD A,(MAXTRK) LD (TRACK+1),A NEXT XOR A LD (SIDE),A CALL GENSKW CALL OBRAZ CALL INFORM CALL WRITE RET C LD HL,SIDE INC (HL) LD HL,TABLE LD A,(MAXSEC) LD B,A LD C,A ZVETSI LD A,(HL) ADD A,C LD (HL),A INC HL DJNZ ZVETSI CALL OBRAZ CALL INFORM CALL WRITE RET C LD HL,TRACK INC (HL) INC HL DEC (HL) RET Z LD A,58 CALL PRIKAZ JR NEXT IFT PRTCIS OBRAZ CALL 10ED LD HL,TABLE ELSE OBRAZ LD HL,TABLE ENDC LD (UKAZAT),HL LD HL,TABLE1 LD DE,BUFFER LD C,1 CALL MALUJ LD A,(MAXSEC) LD B,A LOOP PUSH BC LD HL,TABLE2 LD C,03 CALL MALUJ LD A,(TRACK) LD (DE),A INC DE LD A,(SIDE) LD (DE),A INC DE PUSH HL LD HL,(UKAZAT) LD A,(HL) INC HL LD (UKAZAT),HL POP HL LD (DE),A IFT PRTCIS PUSH HL PUSH DE LD A,(DE) LD D,0 LD E,A CALL 25FD LD A,9 CALL 1083 POP DE POP HL ENDC INC DE LD C,09 CALL MALUJ POP BC DJNZ LOOP LD C,04 MALUJ LD B,(HL) INC HL LD A,(HL) INC HL MAL1 LD (DE),A INC DE DJNZ MAL1 DEC C JR NZ,MALUJ RET IFT PRTCIS INFORM RET ELSE INFORM LD A,(TRACK) CP 80T CALL Z,OVER RRCA PUSH AF LD A,'–' JR NC,INFO1 INC A INFO1 LD HL,(70A8) RST 10 LD A,1F CALL 1083 LD A,(SIDE) LD B,A POP AF BIT 0,B RET Z LD HL,XMOVCU CALL C,105C JP 105C OVER PUSH AF LD A,(SIDE) OR A JR NZ,NEOVER CALL 10ED CALL 10ED CALL 10ED NEOVER POP AF RET ENDC WRITE LD HL,BUFFER LD A,(WAIT) LD B,A LD A,(SIDE) SLA A OR 0F4 LD C,CMD+3 DI OUT (CMD),A DJNZ $ LD D,30 WR0 IN A,(CMD) BIT 1,A JP Z,WR0 OUTI DJNZ WR0 DEC D JR NZ,WR0 JP WR8 WR7 OUTI WR8 IN A,(CMD) AND 0E4 JP NZ,WR9 IN A,(CMD) BIT 1,A JP NZ,WR7 IN A,(CMD) BIT 1,A JP NZ,WR7 IN A,(CMD) BIT 1,A JP NZ,WR7 IN A,(CMD) BIT 1,A JP NZ,WR7 RRCA JP C,WR8 RLCA WR9 LD (STATUS),A EI SCF LD HL,XDLOST BIT 2,A RET NZ LD HL,XFAULT BIT 5,A RET NZ LD HL,XPROTE BIT 6,A RET NZ LD HL,XREADY BIT 7,A RET NZ LD HL,XABORT IN A,(50) RLCA RET XINISC DB 15,13,14 ZAINIT DB 0C,9,1D,'` ` `',17,' FORMATOVANI A INICIALIZACE DISKETY',0B,1E,18,1E,18 DB 9,' `',9,' _ _` ` ` `',17 DB ' STISKNUTI PRERUSI FORMATOVANI',0 XDLOST DB ' DATA LOST',0 XFAULT DB ' WRITE FAULT',0 XPROTE DB 'WRITE PROTECT',0 XREADY DB 'DISC NOT READY',0 XABORT DB 'FORMAT ABORTED',0 XKONEC DB 0B,1E,18,1E,18,9,'_',9,9,1D,1D,1D,'`',17,' UKONCI STISKEM KLAVESY ',0 XMOVCU DB 1E,1E,0,1C,0 XNEWLI DB 17,0D STCHR DB 0C0,0C0,0C0,0C0,0C0,0C0,0C0,0 DB 0D8,0D8,0D8,0D8,0D8,0D8,0D8,0 DB 0,0,0,0,10,28,10,0 DB 0,0,0,0,00,28,10,0 DB 0,0,0,0,00,08,10,0 TABLE1 DB 60T,4E TABLE2 DB 12T,00 DB 03,0F5 DB 01,0FE DB 01,00 DB 01,0F7 DB 22T,04E DB 12T,00 DB 03,0F5 DB 01,0FB DB 80,0E5 DB 01,0F7 DB 24T,04E DB 0FF,04E DB 0FF,04E DB 0FF,04E DB 0FF,04E TRACK DB 0 DB 0 SIDE DB 0 UKAZAT DW 0000 CURSOR DW 0000 TABLE DS MAXFYZ ORG HIGH($)*100+100 BUFFER DS 1C40 ZZZ END 002E