home *** CD-ROM | disk | FTP | other *** search
- ;ren.asm
- ;=========================================
- ; Command: ren d:oldfilename newfilename
- ;=========================================
-
- fnadr = $00bb
- int00 = $1700 ; set default drive. letter in .a
- int01 = $1701 ; get default drive letter into .a
- int02 = $1702 ; get default drive (.a) unit (.x)
- int12 = $1712 ; move parameter .x to (fnadr),y
- int0e = $170e ; close all files and exit to READY.
- listen = $ffb1
- second = $ff93
- ciout = $ffa8
- unlsn = $ffae
- primm = $ff7d
-
- star = $0b00
- .wor star
- * = star
-
- jmp ren
- dw Date
-
- ren ldx #<old ; get newname
- ldy #>old
- lda #1
- jsr getit
- ldx #<new ; get d:oldname
- ldy #>new
- lda #2
- jsr getit
- jsr int01 ; save default drive
- sta savdef
- ldx old+1 ; check for d:
- cpx #":"
- bne ren0 ; not there...use default drive letter
- lda old
- jsr int00 ; set new default drive letter temporarily
- ren0 jsr int02 ; get default drive,unit
- pha ; save drive
- txa ; device
- jsr listen ; send r0:newname=oldname
- lda #$6f
- jsr second
- lda #"r"
- jsr ciout
- pla
- jsr ciout
- lda #":"
- jsr ciout
- ldy #0
- ren1 lda new,y
- beq ren2
- jsr ciout
- iny
- bne ren1
- ren2 lda #"="
- jsr ciout
- lda old+1
- cmp #":"
- beq ren3
- ldy #0
- .byt $2c
- ren3 ldy #2
- ren4 lda old,y
- beq ren5
- jsr ciout
- iny
- bne ren4
- ren5 jsr unlsn
- lda savdef ; restore default drive
- jsr int00
- jmp int0e ; and exit to READY.
-
- getit stx fnadr
- sty fnadr+1
- tax
- ldy #0
- jsr int12
- bcs prterr ; parameter wasn't there
- cpy #20
- bcs prterr ; parameter was too long
- lda #0 ; make it asciiz
- sta (fnadr),y
- rts ; ok return
-
- prterr jsr primm
- .asc 13,"syntax: ren [d:]oldfilename newfilename",13,0
- jmp int0e
-
- savdef *=*+1
- old *=*+20
- new *=*+20
-
- .end
-
-
-