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

  1. ;ren.asm
  2. ;=========================================
  3. ; Command:  ren d:oldfilename newfilename
  4. ;=========================================
  5.                                   
  6. fnadr       = $00bb               
  7. int00       = $1700               ; set default drive. letter in .a
  8. int01       = $1701               ; get default drive letter into .a
  9. int02       = $1702               ; get default drive (.a) unit (.x)
  10. int12       = $1712               ; move parameter .x to (fnadr),y
  11. int0e       = $170e               ; close all files and exit to READY.
  12. listen      = $ffb1               
  13. second      = $ff93               
  14. ciout       = $ffa8               
  15. unlsn       = $ffae               
  16. primm       = $ff7d               
  17.                                   
  18. star        = $0b00               
  19.             .wor star             
  20.             * = star              
  21.  
  22.             jmp ren
  23.             dw  Date
  24.                       
  25. ren         ldx #<old             ; get newname
  26.             ldy #>old             
  27.             lda #1                
  28.             jsr getit             
  29.             ldx #<new             ; get d:oldname
  30.             ldy #>new             
  31.             lda #2                
  32.             jsr getit             
  33.             jsr int01             ; save default drive
  34.             sta savdef            
  35.             ldx old+1             ; check for d:
  36.             cpx #":"              
  37.             bne ren0              ; not there...use default drive letter
  38.             lda old               
  39.             jsr int00             ; set new default drive letter temporarily
  40. ren0        jsr int02             ; get default drive,unit
  41.             pha                   ; save drive
  42.             txa                   ; device
  43.             jsr listen            ; send r0:newname=oldname
  44.             lda #$6f              
  45.             jsr second            
  46.             lda #"r"              
  47.             jsr ciout             
  48.             pla                   
  49.             jsr ciout             
  50.             lda #":"              
  51.             jsr ciout             
  52.             ldy #0                
  53. ren1        lda new,y             
  54.             beq ren2              
  55.             jsr ciout             
  56.             iny                   
  57.             bne ren1              
  58. ren2        lda #"="              
  59.             jsr ciout             
  60.             lda old+1             
  61.             cmp #":"              
  62.             beq ren3              
  63.             ldy #0                
  64.             .byt $2c              
  65. ren3        ldy #2                
  66. ren4        lda old,y             
  67.             beq ren5              
  68.             jsr ciout             
  69.             iny                   
  70.             bne ren4              
  71. ren5        jsr unlsn             
  72.             lda savdef            ; restore default drive
  73.             jsr int00             
  74.             jmp int0e             ; and exit to READY.
  75.                                   
  76. getit       stx fnadr             
  77.             sty fnadr+1           
  78.             tax                   
  79.             ldy #0                
  80.             jsr int12             
  81.             bcs prterr            ; parameter wasn't there
  82.             cpy #20               
  83.             bcs prterr            ; parameter was too long
  84.             lda #0                ; make it asciiz
  85.             sta (fnadr),y         
  86.             rts                   ; ok return
  87.                                   
  88. prterr      jsr primm             
  89.             .asc 13,"syntax:   ren [d:]oldfilename newfilename",13,0
  90.             jmp int0e             
  91.                                   
  92. savdef      *=*+1                 
  93. old         *=*+20                
  94. new         *=*+20                
  95.                                   
  96.             .end                  
  97.                                   
  98.                                   
  99.