home *** CD-ROM | disk | FTP | other *** search
- ; vdel.asm
- ;----------------------------------------
- ; Command: vdel[/a] file file file ....
- ;----------------------------------------
- ; /a switch (always) bypasses the questions
-
-
- pntr = $00ec ; cursor column
- int04 = $1704 ; get 1st char of parameter
- int05 = $1705 ; get next char of parameter
- int13 = $1713 ; delete file %x
- int0c = $170c ; read ds$
- int0d = $170d ; print ds$ after int0c
- int0e = $170e ; program terminate
- int16 = $1716 ; get 1st matching filename
- int17 = $1717 ; get next matching filename
- cdv = $1bf9 ; current device
- cdr = $1bf8 ; current drive
- cl = $1bf7 ; current drive letter
- sw1 = $1bfc ; switch 1
- listen = $ffb1
- second = $ff93
- ciout = $ffa8
- unlsn = $ffae
- chrout = $ffd2
- getin = $ffe4
- primm = $ff7d
-
- star = $0b00
- .wor star
- * = star
-
- jmp del
- dw Date
-
- del ldx #1 ; start with %1 and work up
- stx parm
- stx all
- jsr crdo
- del0 ldx parm ; confirm parameter is there
- jsr int04
- bcs delx ; parameter wasn't there...exit
- del1 jsr int16 ; get list
- bcs del3 ; no matches. try next parameter
- lda cdv ; device from int16
- sta device
- lda cdr ; drive from int16
- sta drive
- lda cl ; letter from int16
- sta letter
- del5 jsr yn ; yes or no?
- bcs del7 ; it was yes
- jsr crdo
- jmp del6
-
- del7 jsr scrat ; it was yes
- del2 lda sw1
- cmp #"a"
- beq didtab
- ldy #30 ; tab(27)
- jsr tab
- didtab jsr int0c ; read ds$
- cmp #1 ; 01, files scratched, .. ..
- beq deleted
- jsr primm
- .asc "Delete failed",13,0
- jmp del6
-
- deleted jsr primm
- .asc "Deleted",13,0
- ; jsr int0d ; and print it
- del6 jsr int17 ; any more matches?
- bcc del5 ; yes
- del3 inc parm
- bne del0 ; next parameter
-
- delx jmp int0e
-
- spc lda #" "
- .byt $2c
- crdo lda #13
- jmp chrout
-
- yn lda letter ; echo filename
- jsr chrout
- lda #":"
- jsr chrout
- ldy #0
- yn0 lda $1b03,y
- cmp #$a0
- beq yn1
- jsr chrout
- iny
- cpy #16
- bcc yn0
- yn1 ldy #20
- jsr tab
- lda sw1
- cmp #"a"
- beq always
- jsr primm
- .asc " (y/n)? ", 0
- yn3 jsr getin
- cmp #0
- bne yn5
- bit all
- bpl yn5
- always sec
- rts
-
- yn5 cmp #"*"
- bne yn4
- ldy #$ff
- sty all
- jmp yes
-
- yn4 cmp #13
- bne yn2
- lda #"n"
- yn2 cmp #"y"
- beq yes
- cmp #"n"
- bne yn3
- no clc
- .byt $24
- yes sec
- php
- jsr chrout
- plp
- bcs yes1
- lda #0
- sta all
- yes1 rts
-
- scrat lda device
- jsr listen
- lda #$6f
- jsr second
- lda #"s"
- jsr ciout
- lda drive
- jsr ciout
- lda #":"
- jsr ciout
- ldy #0
- sc0 lda $1b03,y
- cmp #$a0
- beq sc1
- jsr ciout
- iny
- cpy #16
- bne sc0
- sc1 jmp unlsn
-
- tab jsr spc
- cpy pntr
- bne tab
- rts
-
- parm *=*+1
- drive *=*+1
- device *=*+1
- letter *=*+1
- all *=*+1
-
- .end
-