; SAVE#D:MDUP4.M65 ; ; ;*I. FORMAT A DISK ; FMTDSK .BYTE "Disk to FORMAT:",0 JSR GETDN ; GET DRIVE ; ; NUMBER OR NAME JSR DEFPAR ; LDA # >PAR STA IBUF+$10+1 LDA # DOSSYS JSR DBUF10 LDA #8 ; OPEN OUTPUT = ; ; WRITE DOS.SYS STA IAUX+$10 JSR ANYDEN ; OPEN AND WRITE ; ; DOS.SYS (ANY ; ; DENSITY) JSR CLOS10 PLA STA NMSAV+1 STA DUPSYS+1 ; ; **** WRITE DUP.SYS HERE **** ; LDY #$70 LDA # DUPBASE JSR D2B8A ; LDA # >DUPFNM STA IBUF+$10+1 LDA # DUPEND-1 STA HDBUF+3 LDA # DUPLEN STA HDBUF+5 LDA # DATA+10 STA BUFAD+1 LDA # DUPEND BCS ENUF JSR ERRXIT .BYTE "Not enough " .BYTE "memory!",$9B,0 ; NXTSCT BCS D272E STA (BUFAD),Y LDA #$FE INC BUFAD BNE D272E INC BUFAD+1 D272E INC DATA+5 BNE D2736 INC DATA+6 D2736 RTS ; ENUF LDA PTR BEQ SKRDVT ; IF POS, SKIP ; ; READING VTOC LDA # <360 LDX # >360 STA DAUX STX DAUX+1 LDA # DATA STA DBUF STX DBUF+1 JSR RSEC1 BPL NOERFD JMP CIOER1 NOERFD CLC LDA DATA+1 ADC #12 ; ADD IN THE ; ; BOOT, MAP AND ; ; DIR SECTORS STA DATA+1 BCC CK2BIT ; THEN TAKE CARE ; ; OF SECOND BIT ; ; MAP IF NEEDED INC DATA+2 ; ELSE, BUMP ; ; UPPER BYTE CK2BIT LDA DATA CMP #4 BCC SKRDVT ; IF SINGLE ; ; SECTOR, SKIP ; ; READING SECOND INC DATA+1 CLC LDA DBUF ADC DLEN STA DBUF LDA DBUF+1 ADC DLEN+1 STA DBUF+1 DEC DAUX JSR RSEC1 ; SKRDVT LDA #0 STA DAUX+1 LDA #1 STA DAUX LDA DATA+10 STA CBYTE LDA #8 STA IPTR LDA # >DATA+10 STA VECTOR+1 LDA # DUPEND STA DBUF+1 LDA # DOSSYS JSR DEFBUF LDA #FORMAT STA ICMD+$20 LDA CDES ORA #'0 ; CONVERT DRIVE ; ; # TO ASCII STA DOSSYS+1 JSR CIOCL NOFORM DEC CPYTYP ; THEN, MAKE A ; ; WRITE LDA PTRSAV STA VECTOR LDA PTR STA VECTOR+1 LDA SECTOR STA DAUX LDA SECTOR+1 STA DAUX+1 LDA IPSAV STA IPTR LDA CBSAV STA CBYTE JMP LRS