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

  1. ; vdel.asm
  2. ;----------------------------------------
  3. ; Command:  vdel[/a] file file file ....
  4. ;----------------------------------------
  5. ; /a switch (always) bypasses the questions
  6.  
  7.                                   
  8. pntr        = $00ec               ; cursor column
  9. int04       = $1704               ; get 1st char of parameter
  10. int05       = $1705               ; get next char of parameter
  11. int13       = $1713               ; delete file %x
  12. int0c       = $170c               ; read ds$
  13. int0d       = $170d               ; print ds$ after int0c
  14. int0e       = $170e               ; program terminate
  15. int16       = $1716               ; get 1st matching filename
  16. int17       = $1717               ; get next matching filename
  17. cdv         = $1bf9               ; current device
  18. cdr         = $1bf8               ; current drive
  19. cl          = $1bf7               ; current drive letter
  20. sw1         = $1bfc               ; switch 1
  21. listen      = $ffb1               
  22. second      = $ff93               
  23. ciout       = $ffa8               
  24. unlsn       = $ffae               
  25. chrout      = $ffd2               
  26. getin       = $ffe4               
  27. primm       = $ff7d               
  28.                                   
  29. star        = $0b00               
  30.             .wor star             
  31.             * = star
  32.  
  33.             jmp del
  34.             dw  Date
  35.                                   
  36. del         ldx #1                ; start with %1 and work up
  37.             stx parm              
  38.             stx all               
  39.             jsr crdo              
  40. del0        ldx parm              ; confirm parameter is there
  41.             jsr int04             
  42.             bcs delx              ; parameter wasn't there...exit
  43. del1        jsr int16             ; get list
  44.             bcs del3              ; no matches. try next parameter
  45.             lda cdv               ; device from int16
  46.             sta device            
  47.             lda cdr               ; drive from int16
  48.             sta drive             
  49.             lda cl                ; letter from int16
  50.             sta letter            
  51. del5        jsr yn                ; yes or no?
  52.             bcs del7              ; it was yes
  53.             jsr crdo              
  54.             jmp del6              
  55.  
  56. del7        jsr scrat             ; it was yes
  57. del2        lda sw1
  58.             cmp #"a"
  59.             beq didtab
  60.             ldy #30               ; tab(27)
  61.             jsr tab               
  62. didtab      jsr int0c             ; read ds$
  63.             cmp #1                ; 01, files scratched, .. ..
  64.             beq deleted
  65.             jsr primm
  66.             .asc "Delete failed",13,0
  67.             jmp del6
  68.  
  69. deleted     jsr primm
  70.             .asc "Deleted",13,0
  71. ;            jsr int0d             ; and print it
  72. del6        jsr int17             ; any more matches?
  73.             bcc del5              ; yes
  74. del3        inc parm              
  75.             bne del0              ; next parameter
  76.                                   
  77. delx        jmp int0e             
  78.                                   
  79. spc         lda #" "              
  80.             .byt $2c              
  81. crdo        lda #13               
  82.             jmp chrout            
  83.                                   
  84. yn          lda letter            ; echo filename
  85.             jsr chrout            
  86.             lda #":"              
  87.             jsr chrout            
  88.             ldy #0                
  89. yn0         lda $1b03,y           
  90.             cmp #$a0              
  91.             beq yn1               
  92.             jsr chrout            
  93.             iny                   
  94.             cpy #16               
  95.             bcc yn0               
  96. yn1         ldy #20               
  97.             jsr tab
  98.             lda sw1
  99.             cmp #"a"
  100.             beq always
  101.             jsr primm             
  102.             .asc " (y/n)? ", 0    
  103. yn3         jsr getin             
  104.             cmp #0                
  105.             bne yn5               
  106.             bit all               
  107.             bpl yn5               
  108. always      sec
  109.             rts                   
  110.  
  111. yn5         cmp #"*"              
  112.             bne yn4               
  113.             ldy #$ff              
  114.             sty all               
  115.             jmp yes               
  116.  
  117. yn4         cmp #13               
  118.             bne yn2               
  119.             lda #"n"              
  120. yn2         cmp #"y"              
  121.             beq yes               
  122.             cmp #"n"              
  123.             bne yn3               
  124. no          clc                   
  125.             .byt $24              
  126. yes         sec                   
  127.             php                   
  128.             jsr chrout            
  129.             plp                   
  130.             bcs yes1              
  131.             lda #0                
  132.             sta all               
  133. yes1        rts                   
  134.                                   
  135. scrat       lda device            
  136.             jsr listen            
  137.             lda #$6f              
  138.             jsr second            
  139.             lda #"s"              
  140.             jsr ciout             
  141.             lda drive             
  142.             jsr ciout             
  143.             lda #":"              
  144.             jsr ciout             
  145.             ldy #0                
  146. sc0         lda $1b03,y           
  147.             cmp #$a0              
  148.             beq sc1               
  149.             jsr ciout             
  150.             iny                   
  151.             cpy #16               
  152.             bne sc0               
  153. sc1         jmp unlsn             
  154.                                   
  155. tab         jsr spc               
  156.             cpy pntr              
  157.             bne tab               
  158.             rts                   
  159.                                   
  160. parm        *=*+1                 
  161. drive       *=*+1                 
  162. device      *=*+1                 
  163. letter      *=*+1                 
  164. all         *=*+1                 
  165.                                   
  166.             .end                  
  167.