Mercurial > hg > Members > kono > nitros9-code
view level1/cmds/format.asm @ 556:28a203bbd2cc
findstr and signal finished.
author | roug |
---|---|
date | Tue, 22 Oct 2002 19:09:04 +0000 |
parents | b6c34acda06c |
children | 92b575ffa143 |
line wrap: on
line source
******************************************************************** * Format - Disk format program * * $Id$ * * Ed. Comments Who YY/MM/DD * ------------------------------------------------------------------ * 22 From Tandy OS-9 Level Two Vr. 2.00.01 nam Format ttl Disk format program * Disassembled 02/07/17 11:00:13 by Disasm v1.6 (C) 1988 by RML ifp1 use defsfile use rbfdefs endc tylg set Prgrm+Objct atrv set ReEnt+rev rev set $01 edition set $16 mod eom,name,tylg,atrv,start,size SavedU rmb 2 DiskPath rmb 1 CurrTrak rmb 2 u0005 rmb 2 CurrSct rmb 1 u0008 rmb 1 u0009 rmb 1 u000A rmb 2 u000C rmb 2 u000E rmb 2 MFM rmb 1 u0011 rmb 1 T4896 rmb 1 u0013 rmb 1 u0014 rmb 1 NCyls rmb 2 u0017 rmb 1 u0018 rmb 1 Sectors rmb 1 u001A rmb 1 Sectors0 rmb 1 u001C rmb 1 DType rmb 1 u001E rmb 1 u001F rmb 1 u0020 rmb 1 Interlv rmb 1 u0022 rmb 2 u0024 rmb 1 u0025 rmb 1 u0026 rmb 1 u0027 rmb 1 u0028 rmb 1 u0029 rmb 1 u002A rmb 1 u002B rmb 1 u002C rmb 1 u002D rmb 1 u002E rmb 1 u002F rmb 1 u0030 rmb 1 u0031 rmb 1 u0032 rmb 1 u0033 rmb 1 u0034 rmb 1 u0035 rmb 1 u0036 rmb 2 u0038 rmb 2 u003A rmb 2 u003C rmb 1 u003D rmb 2 u003F rmb 2 u0041 rmb 2 u0043 rmb 1 u0044 rmb 1 u0045 rmb 1 DTEntry rmb 2 u0048 rmb 1 STOff rmb 2 u004B rmb 1 u004C rmb 1 u004D rmb 1 u004E rmb 1 u004F rmb 1 u0050 rmb 5 u0055 rmb 15 u0064 rmb 7 u006B rmb 4 u006F rmb 32 u008F rmb 40 u00B7 rmb 14 u00C5 rmb 12 TimePkt rmb 5 u00D6 rmb 18 u00E8 rmb 14 u00F6 rmb 177 u01A7 rmb 2 u01A9 rmb 2 u01AB rmb 12 OptBuf rmb 256 u02B7 rmb 3 u02BA rmb 9924 u297E rmb 451 size equ . name fcs /Format/ fcb edition L0014 fdb $0000 L0016 fdb $0000 L0018 fdb $0000 L001A fdb $80E5 fdb $80E5 fdb $0000 L0020 fdb $0100 fdb $28FF fdb $0600 fdb $01FC fdb $0CFF fdb $0000 fdb $0600 fdb $01FE fdb $0400 fdb $01F7 fdb $0AFF fdb $0600 fdb $01FB fdb $80E5 fdb $80E5 fdb $01F7 fdb $0AFF fdb $0000 fcb $Ff fdb $0043 fdb $0128 L0049 fdb $504E fdb $0C00 fdb $03F6 fdb $01Fc fdb $204E fdb $0000 fdb $0C00 fdb $03F5 fdb $01FE fdb $0400 fdb $01F7 fdb $164E fdb $0C00 fdb $03F5 fdb $01FB fdb $80E5 fdb $80E5 fdb $01F7 fdb $164E fdb $0000 fcb $4E fcb $00 fcb $90 fcb $01 fcb $52 R L0076 fcb $20 fcb $4E N fcb $00 fcb $00 fcb $0C fcb $00 fcb $03 fcb $F5 u fcb $01 fcb $FE fcb $04 fcb $00 fcb $01 fcb $F7 w fcb $16 fcb $4E N fcb $0C fcb $00 fcb $03 fcb $F5 u fcb $01 fcb $FB fcb $80 fcb $E5 e fcb $80 fcb $E5 e fcb $01 fcb $F7 w fcb $18 fcb $4E N fcb $00 fcb $00 fcb $4E N fcb $00 fcb $30 0 fcb $01 fcb $54 T start stu <SavedU bsr ClrWork cleark work area bsr OpenDev get device name and open it bsr L011A lbsr GetDTyp lbsr L03C7 lbsr L052F lbsr L0612 lbsr L0648 lbsr L0843 ldu <DTEntry os9 I$Detach clrb L00BB os9 F$Exit ClrWork leay DiskPath,u pshs y leay >u00B7,u L00C6 clr ,-y cmpy ,s bhi L00C6 puls pc,y OpenDev lda ,x+ cmpa #PDELIM beq L00DA L00D5 ldb #E$BPNam lbra L0961 L00DA os9 F$PrsNam lbcs L0961 lda #PDELIM cmpa ,y beq L00D5 sty <u0022 leay <u004F,u L00ED sta ,y+ lda ,x+ decb bpl L00ED leax <u0050,u lda #C$SPAC sta ,y clra os9 I$Attach lbcs L0961 stu <DTEntry ldu <SavedU lda #PENTIR ldb #C$SPAC std ,y lda #WRITE. leax <u004F,u os9 I$Open bcs L00BB sta <DiskPath rts L011A bsr GetOpts bsr L0183 lbsr L025E rts GetOpts leax >OptBuf,u clrb os9 I$GetStt bcs L00BB ldb PD.SID-PD.OPT,x stb <u0013 stb <u0014 ldb PD.SToff-PD.OPT,x beq L0143 tfr b,a anda #$0F sta <STOff lsrb lsrb lsrb lsrb stb <u004B L0143 ldb PD.DNS-PD.OPT,x pshs b andb #DNS.MFM stb <MFM stb <u0011 ldb ,s lsrb pshs b andb #$01 (PD.DTD) stb <T4896 puls b lsrb andb <u0011 stb <u004C puls b ldb #$01 stb <u004D beq L0169 stb <u004B clr <STOff L0169 ldd PD.CYL-PD.OPT,x std <NCyls ldb PD.TYP-PD.OPT,x stb <DType ldd PD.SCT-PD.OPT,x std <Sectors ldd PD.T0S-PD.OPT,x std <Sectors0 ldb PD.ILV-PD.OPT,x stb <Interlv ldb #$01 stb <u0027 clrb rts L0183 ldx <u0022 L0185 leay >OptTbl,pcr bsr L019C bcs L01A5 pshs b,a ldd $02,y leay d,y puls b,a jsr ,y bcc L0185 lbra L00BB L019C lda ,x+ L019E cmpa ,y bne L01A6 ldb $01,y clra L01A5 rts L01A6 leay $04,y tst ,y bne L019E coma rts OptTbl opt.1 fcc /R/ fcc /Y/ fdb DoReady-opt.1 opt.2 fcc /r/ fcc /Y/ fdb DoReady-opt.2 opt.3 fcc /"/ fcb $00 fdb DoQuote-opt.3 opt.4 fcc /:/ fcb $00 fdb DoColon-opt.4 opt.5 fcc /1/ fcb $01 fdb Do1-opt.5 opt.6 fcc /2/ fcb $02 fdb Do2-opt.6 opt.7 fcc /'/ fcb 0 fdb DoSQuote-opt.7 opt.8 fcc /L/ fcb $01 fdb DoL-opt.8 opt.9 fcc /l/ fcb 01 fdb DoL-opt.9 opt.10 fcc /(/ fcb $00 fdb DoLParen-opt.10 opt.11 fcc /)/ fcb $00 fdb DoRParen-opt.11 opt.12 fcc /,/ fcb $00 fdb DoComa-opt.12 opt.13 fcb C$SPAC fcb 00 fdb DoSpace-opt.13 fcb $00 cmpb <u0011 bgt L01FE cmpb <u004C blt L01FE stb <MFM clrb DoComa DoRParen DoLParen DoSpace rts DoReady stb <u001E rts Do2 Do1 cmpb <u0013 bgt L01FE stb <u0013 clrb rts DoL stb <u004E clrb rts L01FE leax >AbortOp,pcr lbra L06F9 DoQuote leay <u006F,u ldb #C$SPAC L020A koQuote lda ,x+ cmpa #'" beq L0221 sta ,y+ decb bne L020A L0215 ldb ,x+ cmpb #'" beq L0227 cmpb #C$SPAC bcc L0215 bra L0227 L0221 lda #C$SPAC cmpb #C$SPAC beq L022B L0227 leay -$01,y lda ,y L022B adda #$80 sta ,y clrb rts DoSQuote lbsr L092C ldd <u001F std <NCyls rts DoColon lbsr L092C ldd <u001F tsta beq L0243 ldb #$01 L0243 stb <Interlv rts lbsr L092C ldd <u001F tsta beq L0250 ldb #$01 L0250 stb <u0027 negb decb andb <u0027 beq L025C ldb #$01 stb <u0027 L025C clrb L025D rts L025E leax >Title,pcr lbsr L02E2 leay >OptBuf,u ldx PD.T0S-PD.OPT,y tst <MFM beq L0271 ldx PD.SCT-PD.OPT,y L0271 stx <Sectors leax >FmtMsg,pcr ldy #FmtMLen lbsr L02E6 leax <u004F,u tfr x,y L0283 lda ,y+ cmpa #PENTIR bne L0283 pshs y lda #C$CR sta -$01,y lbsr L02E2 puls y lda #PENTIR sta -$01,y lda <u001E bne L02BC tst <DType bpl L02AB leax >HDFmt,pcr ldy #$002A lbsr L02E6 L02AB leax >Query,pcr ldy #QueryLen lbsr L02EC anda #$DF cmpa #'Y bne L02D5 L02BC tst <DType bpl L025D leax >HDFmt,pcr ldy #$0038 lbsr L02EC anda #$DF cmpa #'Y beq L025D clrb lbra L00BB L02D5 clrb cmpa #'N lbeq L00BB bra L02AB L02DE leax >HelpCR,pcr L02E2 ldy #80 L02E6 lda #$01 os9 I$WritLn rts L02EC pshs u,y,x,b,a bsr L02E6 leax ,s ldy #$0001 clra os9 I$Read lbcs L00BB bsr L02DE puls u,y,x,b,a anda #$7F rts GetDTyp leax >L001A,pcr stx <u000A ldb <DType bitb #TYP.HARD+TYP.NSF bne L0323 tst <u004D beq L031B leax >L0076,pcr bra L032D L031B leax >L0020,pcr tst <MFM beq L032D L0323 stx <u000A leax >L0049,pcr tst <u004C beq L032F L032D stx <u000A L032F stx <u000C clra ldb <u0013 tfr d,y clrb ldx <NCyls bsr L0379 exg d,x subd #$0001 bcc L0344 leax -$01,x L0344 exg d,x ldy <Sectors bsr L0379 exg d,x addd <Sectors0 std <u0025 exg d,x adcb #$00 stb <u0024 lda #$08 pshs a ldx <u0025 ldb <u0024 bsr L03C2 lda <u0027 pshs a bsr L03C2 tstb beq L0374 leax >ClustMsg,pcr lbsr L02E2 lbra L05B1 L0374 leas $02,s stx <u0028 rts L0379 lda #$08 L037B clr ,-s deca bne L037B sty ,s stb $02,s stx $03,s L0387 ldd ,s beq L03AA lsra rorb std ,s bcc L039D ldd $03,s addd $06,s std $06,s lda $02,s adca $05,s sta $05,s L039D ldd $03,s lslb rola std $03,s lda $02,s rola sta $02,s bra L0387 L03AA leas $05,s puls pc,x,b L03AE pshs x,b lsr ,s ror $01,s ror $02,s puls x,b exg d,x adcb #$00 adca #$00 exg d,x adcb #$00 L03C2 lsr $02,s bne L03AE rts L03C7 tst <u004E bne L03E4 tst <DType bpl L03E5 leax >Both,pcr ldy #BothLen lbsr L02EC anda #$DF cmpa #'Y beq L03E5 cmpa #'N bne L03C7 L03E4 rts L03E5 lda <DiskPath ldb #SS.Reset os9 I$SetStt lbcs L00BB ldd #$0000 std <CurrTrak inca sta <CurrSct L03F8 clr <u0005 L03FA bsr L045C leax >u00B7,u ldd <CurrTrak addd <u0048 tfr d,u clrb tst <u004D bne L041B tst <MFM beq L041D tst <u004C bne L041B tst <CurrTrak+1 bne L041B tst <u0005 beq L041D L041B orb #$02 L041D tst <T4896 beq L0423 orb #$04 L0423 lda <u0005 beq L0429 orb #$01 L0429 tfr d,y lda <DiskPath ldb #SS.WTrk os9 I$SetStt lbcs L00BB ldu <SavedU ldb <u0005 incb stb <u0005 cmpb <u0013 bcs L03FA ldd <CurrTrak addd #$0001 std <CurrTrak cmpd <NCyls bcs L03F8 rts L044E ldy <u000E L0451 ldd ,y++ beq L046B L0455 stb ,x+ deca bne L0455 bra L0451 L045C lda <DType bita #$C0 beq L046C ldy <u000C leax >u00B7,u bsr L0451 L046B rts L046C ldy <u000C ldb <u001A tst <CurrTrak+1 bne L047E tst <u0005 bne L047E ldy <u000A ldb <u001C L047E sty <u000E stb <u0009 stb <u0018 bsr L04EC leax >u00B7,u bsr L0451 sty <u000E L0490 bsr L044E dec <u0009 bne L0490 lda ,y+ sty <u000E stx <u003D leay >u297E,u sty <u001F tfr a,b L04A6 std ,x++ cmpx <u001F bcs L04A6 ldy <u000E ldd ,y++ std <u003F ldd ,y std <u0041 clr <u0009 leax >u00B7,u ldd <u003F leay >u008F,u L04C3 leax d,x ldd <CurrTrak+1 adda <STOff std ,x ldb <u0009 lda b,y incb stb <u0009 ldb <CurrSct adda <u004B bcs L04E5 std $02,x lda <u0009 cmpa <u0018 bcc L04E4 ldd <u0041 bra L04C3 L04E4 rts L04E5 leax >AbortSct,pcr lbra L06F9 L04EC pshs y,b tfr b,a ldb <CurrTrak+1 cmpb #$01 bhi L0518 leax >u008F,u leay a,x ldb <Interlv bne L0507 L0500 leax >AbortIlv,pcr lbra L06F9 L0507 cmpb <u0018 bhi L0500 nega pshs y,x,b,a clra L050F sta ,x inca cmpa <u0018 bne L051A leas $06,s L0518 puls pc,y,b L051A ldb <Interlv abx cmpx $04,s bcs L0525 ldb ,s leax b,x L0525 cmpx $02,s bne L050F leax $01,x stx $02,s bra L050F L052F lbsr L0898 ldd <u0025 std $01,x ldb <u0024 stb ,x ldd <Sectors std <$11,x stb $03,x lda <u0027 sta $07,x clra ldb <u0028 tst <u0029 beq L054F addd #$0001 L054F addd #$0001 std $09,x clra tst <MFM beq L0561 ora #$02 tst <u004C beq L0561 ora #$08 L0561 ldb <u0013 cmpb #$01 beq L0569 ora #$01 L0569 tst <T4896 beq L056F ora #$04 L056F sta <$10,x ldd <u0028 std $04,x lda #$FF sta $0D,x leax >TimePkt,u os9 F$Time leax >u00D6,u leay <u006F,u tst ,y beq L0594 L058C lda ,y+ sta ,x+ bpl L058C bra L05C7 L0594 leax >DName,pcr ldy #DNameLen lbsr L02E6 leax >u00D6,u ldy #$0021 clra os9 I$ReadLn bcc L05B8 cmpa #E$EOF bne L0594 L05B1 leax >Aborted,pcr lbra L06F9 L05B8 tfr y,d leax d,x clr ,-x decb beq L0594 lda ,-x ora #$80 sta ,x L05C7 leax >TimePkt,u leay <$40,x pshs y ldd #$0000 L05D3 addd ,x++ cmpx ,s bcs L05D3 leas $02,s std >u00C5,u ldd >L0014,pcr std >u01A7,u ldd >L0016,pcr std >u01A9,u ldd >L0018,pcr std >u01AB,u lda <DiskPath ldb #SS.Opt leax >u00F6,u os9 I$GetStt ldb #SS.Reset os9 I$SetStt lbcs L00BB leax >u00B7,u lbra L08A4 L0612 lda <DiskPath os9 I$Close leax <u004F,u lda #READ. os9 I$Open lbcs L06F5 sta <DiskPath leax >u00B7,u ldy #256 os9 I$Read lbcs L06F5 lda <DiskPath os9 I$Close leax <u004F,u lda #UPDAT. os9 I$Open lbcs L06F5 sta <DiskPath rts L0648 lda <DType clr <u0045 bita #$80 beq L0667 L0650 leax >Verify,pcr ldy #VerifyL lbsr L02EC anda #$DF cmpa #$59 beq L0667 cmpa #$4E bne L0650 sta <u0045 L0667 ldd <Sectors0 std <u0017 clra clrb std <u0036 std <CurrTrak std <u0008 std <u0032 stb <u0031 sta <u003C leax >OptBuf,u stx <u0038 lbsr L089C leax >$0100,x stx <u003A clra ldb #$01 std <u0034 lda <u0027 sta <u002B clr <u002A clra ldb <u0028 tst <u0029 beq L069D addd #$0001 L069D addd #$0009 std <u002D lda <u0027 L06A4 lsra bcs L06B5 lsr <u002D ror <u002E bcc L06A4 inc <u002E bne L06A4 inc <u002D bra L06A4 L06B5 ldb <u002E stb <u002F lda <u0027 mul std <u002D subd #$0001 subb <u0028 sbca #$00 tst <u0029 beq L06CC subd #$0001 L06CC stb <u002C L06CE tst <u0045 bne L0700 lda <DiskPath leax >u00B7,u ldy #256 os9 I$Read bcc L0700 os9 F$PErr lbsr L08C8 lda #$FF sta <u002A tst <u0031 bne L0700 ldx <u0032 cmpx <u002D bhi L0700 L06F5 leax >BadSect,pcr L06F9 lbsr L02E2 clrb lbra L00BB L0700 ldd <u0008 addd #$0001 std <u0008 cmpd <u0017 bcs L0745 clr <u0008 clr <u0009 tst <u0045 bne L073A lda #$20 pshs a lda <CurrTrak+1 lbsr L07A7 pshs b,a lda <CurrTrak lbsr L07A7 pshs b tfr s,x ldy #$0004 lbsr L02E6 lda $02,s cmpa #$46 bne L0738 lbsr L02DE L0738 leas $04,s L073A ldd <CurrTrak addd #$0001 std <CurrTrak ldd <Sectors std <u0017 L0745 dec <u002B bne L075B bsr L0784 tst <u002A bne L0755 ldx <u0036 leax $01,x stx <u0036 L0755 clr <u002A lda <u0027 sta <u002B L075B ldb <u0031 ldx <u0032 leax $01,x bne L0764 incb L0764 cmpb <u0024 bcs L076C cmpx <u0025 bcc L0773 L076C stb <u0031 stx <u0032 lbra L06CE L0773 lda #$FF sta <u002A leay >OptBuf,u L077B cmpy <u0038 beq L07BF bsr L0784 bra L077B L0784 ldx <u0038 lda <u002A rora rol ,x+ inc <u003C lda <u003C cmpa #$08 bcs L07A6 clr <u003C stx <u0038 cmpx <u003A bne L07A6 bsr L0803 leax >OptBuf,u stx <u0038 lbsr L089C L07A6 rts L07A7 tfr a,b lsra lsra lsra lsra andb #$0F addd #$3030 cmpa #$39 bls L07B8 adda #$07 L07B8 cmpb #$39 bls L07BE addb #$07 L07BE rts L07BF lbsr L02DE leax >NumGood,pcr ldy #NumGoodLen lbsr L02E6 ldb <u0027 clra ldx <u0036 pshs x,a L07D4 lsrb bcs L07DF lsl $02,s rol $01,s rol ,s bra L07D4 L07DF puls x,a ldb #$0D pshs b tfr d,y tfr x,d tfr b,a bsr L07A7 pshs b,a tfr x,d bsr L07A7 pshs b,a tfr y,d bsr L07A7 pshs b,a tfr s,x lbsr L02E2 leas $07,s rts L0803 pshs y clra ldb #$01 cmpd <u0034 bne L081E leax >OptBuf,u clra ldb <u002F tfr d,y clrb os9 F$AllBit lbcs L06F5 L081E lbsr L08B2 leax >OptBuf,u lbsr L08A4 ldd <u0024 cmpd <u0031 bcs L083A bhi L0837 ldb <u0026 cmpb <u0033 bcc L083A L0837 lbsr L08C8 L083A ldd <u0034 addd #$0001 std <u0034 puls pc,y L0843 bsr L08B2 leax >u02B7,u bsr L089C leax >u02BA,u os9 F$Time leax >u02B7,u lda #$BF sta ,x lda #$02 sta $08,x clra ldb #$40 std $0B,x ldb <u002C decb stb <$14,x ldd <u0034 addd #$0001 std <$11,x bsr L08A4 bsr L0898 ldd #$2EAE std ,x stb <$20,x ldd <u0034 std <$1E,x std <$3E,x bsr L08A4 bsr L0898 ldb <u002C decb L088C decb bne L0890 rts L0890 pshs b bsr L08A4 puls b bra L088C L0898 leax >u00B7,u L089C clra clrb L089E sta d,x decb bne L089E rts L08A4 lda <DiskPath ldy #256 os9 I$Write lbcs L00BB rts L08B2 clra ldb <u0034 tfr d,x lda <u0035 clrb tfr d,u L08BC lda <DiskPath os9 I$Seek ldu <SavedU lbcs L00BB rts L08C8 ldx <u0031 lda <u0033 clrb addd #$0100 tfr d,u bcc L08BC leax $01,x bra L08BC ldd ,y leau >u00B7,u leax >L0920,pcr ldy #$2F20 L08E6 leay >$0100,y subd ,x bcc L08E6 addd ,x++ pshs b,a ldd ,x tfr y,d beq L090E ldy #$2F30 cmpd #$3020 bne L0908 ldy #$2F20 tfr b,a L0908 sta ,u+ puls b,a bra L08E6 L090E sta ,u+ lda #C$CR sta ,u ldu <SavedU leas $02,s leax >u00B7,u lbsr L02E2 rts L0920 fdb $2710,$03e8,$0064,$000a,$0001,$0000 L092C ldd #$0000 L092F bsr L093F bcs L0939 bne L092F std <u001F bne L093E L0939 ldd #$0001 std <u001F L093E rts L093F pshs y,b,a ldb ,x+ subb #$30 cmpb #$0A bcc L095D lda #$00 ldy #$000A L094F addd ,s bcs L095B leay -$01,y bne L094F std ,s andcc #^Zero L095B puls pc,y,b,a L095D orcc #Zero puls pc,y,b,a L0961 lda #$02 os9 F$PErr leax <HelpMsg,pcr ldy #$0154 lda #$02 os9 I$WritLn clrb os9 F$Exit Title fcb C$LF fcc "COLOR COMPUTER FORMATTER" HelpCR fcb C$CR HelpMsg fcc "Use: FORMAT /devname <opts>" fcb C$LF fcc " opts: R - Ready" fcb C$LF fcc " L - Logical format only" fcb C$LF fcc / "disk name"/ fcb C$LF fcc " 1/2 - number of sides" fcb C$LF fcc " 'No. of cylinders' (in decimal)" fcb C$LF fcc " :Interleave value: (in decimal)" fcb C$CR HelpLen equ *-HelpMsg FmtMsg fcc "Formatting drive " FmtMLen equ *-FmtMsg Query fcc "y (yes) or n (no)" fcb C$LF fcc "Ready? " QueryLen equ *-Query AbortIlv fcc "ABORT Interleave value out of range" fcb C$CR AbortSct fcc "ABORT Sector number out of range" fcb C$CR AbortOp fcc "ABORT Option not allowed on Device" fcb C$CR DName fcc "Disk name: " DNameLen equ *-DName fcc "How many Cylinders (Tracks?) : " BadSect fcc "Bad system sector, " Aborted fcc "FORMAT ABORTED" fcb C$CR ClustMsg fcc "Cluster size mismatch" fcb C$CR fcc "Double density? " fcc "Track 0 Double density? " TPIChg fcc "Change from 96tpi to 48tpi? " DSided fcc "Double sided? " NumGood fcc "Number of good sectors: $" NumGoodLen equ *-NumGood HDFmt fcc "WARNING: You are formatting a HARD Disk.." fcb C$LF fcc "Are you sure? " HDFmtLen equ *-HDFmt Both fcc "Both PHYSICAL and LOGICAL format? " BothLen equ *-Both Verify fcc "Physical Verify desired? " VerifyL equ *-Verify emod eom equ * end