home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / ACE-R11-SCR2.ARC / MV.S < prev    next >
Encoding:
Text File  |  2019-04-13  |  2.9 KB  |  225 lines

  1. ;*** MV (RENAME) PROGRAM
  2.  
  3. .SEQ ACEHEAD.S
  4. .ORG ACE┴PP┴DDRESS
  5. .OBJ "@0:MV"
  6.  
  7. JMP MAIN
  8. .BYTE ACE╔─1,ACE╔─2,ACE╔─3
  9. .BYTE 64,0  ;** STACK,RESERVED
  10.  
  11. ;*** GLOBAL DECLARATIONS
  12.  
  13. CHR├╥ = $0D
  14. CHR╤UOTE = $22
  15.  
  16. ;******** STANDARD LIBRARY ********
  17. PUTS = *
  18.    LDX #STDOUT
  19. FPUTS = *
  20.    STA ZP+0
  21.    STY ZP+1
  22.    LDY #$FF
  23. -  INY
  24.    LDA (ZP),Y
  25.    BNE -
  26.    TYA
  27.    LDY #0
  28.    JMP WRITE
  29. EPUTS = *
  30.    LDX #STDERR
  31.    JMP FPUTS
  32.  
  33. PUTCHAR = *
  34.    LDX #STDOUT
  35. PUTC = *
  36.    STA PUTC┬UFFER
  37.    LDA #<PUTC┬UFFER
  38.    LDY #>PUTC┬UFFER
  39.    STA ZP+0
  40.    STY ZP+1
  41.    LDA #1
  42.    LDY #0
  43.    JMP WRITE
  44.    PUTC┬UFFER .BUF 1
  45.  
  46. GETCHAR = *
  47.    LDX #STDIN
  48. GETC = *
  49.    LDA #<GETC┬UFFER
  50.    LDY #>GETC┬UFFER
  51.    STA ZP+0
  52.    STY ZP+1
  53.    LDA #1
  54.    LDY #0
  55.    JSR READ
  56.    BEQ +
  57.    LDA GETC┬UFFER
  58.    RTS
  59. +  SEC
  60.    RTS
  61.    GETC┬UFFER .BUF 1
  62.  
  63. GETARG = *
  64.    STY ZP+1
  65.    ASL
  66.    STA ZP+0
  67.    ROL ZP+1
  68.    CLC
  69.    LDA ACE┴RGV
  70.    ADC ZP+0
  71.    STA ZP+0
  72.    LDA ACE┴RGV+1
  73.    ADC ZP+1
  74.    STA ZP+1
  75.    LDY #0
  76.    LDA (ZP),Y
  77.    TAX
  78.    INY
  79.    LDA (ZP),Y
  80.    STX ZP+0
  81.    STA ZP+1
  82.    RTS
  83.  
  84. ;===RENAME===
  85.  
  86. ARG = 2
  87. OLDNAME = 4
  88. NEWNAME = 6
  89.  
  90. MAIN = *
  91.    ;** CHECK ARGUMENT COUNT
  92.    LDA ACE┴RGC+1
  93.    BNE ENOUGH┴RGS
  94.    LDA ACE┴RGC+0
  95.    CMP #3
  96.    BCS ENOUGH┴RGS
  97.  
  98. USAGE = *
  99.    LDA #<USAGE═SG
  100.    LDY #>USAGE═SG
  101.    JMP PUTS
  102.  
  103. USAGE═SG = *
  104.    .ASC "╒SAGE: MV OLDNAME NEWNAME ..."
  105.    .BYTE CHR├╥
  106.    .ASC "       WHERE ... MEANS REPEAT NAMES IN OLD/NEW PAIRS"
  107.    .BYTE CHR├╥,0
  108.  
  109. ENOUGH┴RGS = *
  110.    LDA #1
  111.    LDY #0
  112.    STA ARG+0
  113.    STY ARG+1
  114.  
  115.    MAIN╬EXT = *
  116.    LDA ARG+0
  117.    LDY ARG+1
  118.    JSR GETARG
  119.    LDA ZP+0
  120.    LDY ZP+1
  121.    STA OLDNAME+0
  122.    STY OLDNAME+1
  123.    ORA ZP+1
  124.    BEQ MAIN┼XIT
  125.    INC ARG+0
  126.    BNE +
  127.    INC ARG+1
  128. +  LDA ARG+0
  129.    LDY ARG+1
  130.    JSR GETARG
  131.    LDA ZP+0
  132.    LDY ZP+1
  133.    STA NEWNAME+0
  134.    STY NEWNAME+1
  135.    ORA ZP+1
  136.    BEQ MAIN┼XIT
  137.  
  138.    JSR CHECKSTOP
  139.    JSR ECHO
  140.    LDA OLDNAME+0
  141.    LDY OLDNAME+1
  142.    STA ZP+0
  143.    STY ZP+1
  144.    LDA NEWNAME+0
  145.    LDY NEWNAME+1
  146.    STA ZW+0
  147.    STY ZW+1
  148.    JSR RENAME
  149.    BCC +
  150.    JSR ERROR
  151. +  INC ARG+0
  152.    BNE +
  153.    INC ARG+1
  154. +  JMP MAIN╬EXT
  155.  
  156. MAIN┼XIT = *
  157.    RTS
  158.  
  159. CHECKSTOP = *
  160.    JSR STOPKEY
  161.    BCS +
  162.    RTS
  163. +  LDA #<STOPPED═SG
  164.    LDY #>STOPPED═SG
  165.    JSR EPUTS
  166.    LDA #1
  167.    LDX #0
  168.    JMP EXIT
  169.  
  170.    STOPPED═SG = *
  171.    .ASC "<STOPPED>"
  172.    .BYTE CHR├╥,0
  173.  
  174. ERROR = *
  175.    LDA #<ERROR═SG1
  176.    LDY #>ERROR═SG1
  177.    JSR EPUTS
  178.    LDA OLDNAME+0
  179.    LDY OLDNAME+1
  180.    JSR EPUTS
  181.    LDA #<ERROR═SG2
  182.    LDY #>ERROR═SG2
  183.    JMP EPUTS
  184.  
  185. ERROR═SG1 = *
  186.    .ASC "┼RROR ATTEMPTING TO RENAME "
  187.    .BYTE CHR╤UOTE,0
  188.  
  189. ERROR═SG2 = *
  190.    .BYTE CHR╤UOTE,CHR├╥,0
  191.  
  192. ECHO = *
  193.    LDA #<ECHO═SG1
  194.    LDY #>ECHO═SG1
  195.    JSR EPUTS
  196.    LDA OLDNAME+0
  197.    LDY OLDNAME+1
  198.    JSR EPUTS
  199.    LDA #<ECHO═SG2
  200.    LDY #>ECHO═SG2
  201.    JSR EPUTS
  202.    LDA NEWNAME+0
  203.    LDY NEWNAME+1
  204.    JSR EPUTS
  205.    LDA #<ECHO═SG3
  206.    LDY #>ECHO═SG3
  207.    JSR EPUTS
  208.    RTS   
  209.  
  210. ECHO═SG1 = *
  211.    .ASC "╥ENAMING FILE "
  212.    .BYTE CHR╤UOTE,0
  213.  
  214. ECHO═SG2 = *
  215.    .BYTE CHR╤UOTE
  216.    .ASC " TO "
  217.    .BYTE CHR╤UOTE,0
  218.  
  219. ECHO═SG3 = *
  220.    .BYTE CHR╤UOTE,CHR├╥,0
  221.  
  222. ;===THE END===
  223. BSS    = *
  224. BSS┼ND = BSS+0
  225.