home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
enterprs
/
c128
/
text
/
examples.arc
/
VDEL.A
< prev
next >
Wrap
Text File
|
1989-12-01
|
6KB
|
167 lines
; 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