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

  1. ;*** RMDIR PROGRAM
  2.  
  3. .SEQ ACEHEAD.S
  4. .ORG ACE┴PP┴DDRESS
  5. .OBJ "@0:RMDIR"
  6.  
  7. JMP MAIN
  8. .BYTE ACE╔─1,ACE╔─2,ACE╔─3
  9. .BYTE 64,0  ;** STACK,RESERVED
  10.  
  11. ;*** GLOBAL DECLARATIONS
  12.  
  13. LIBWORK = $60
  14.  
  15. CHR├╥ = $0D
  16. CHR╤UOTE = $22
  17.  
  18. ;******** STANDARD LIBRARY ********
  19. PUTS = *
  20.    LDX #STDOUT
  21. FPUTS = *
  22.    STA ZP+0
  23.    STY ZP+1
  24.    LDY #$FF
  25. -  INY
  26.    LDA (ZP),Y
  27.    BNE -
  28.    TYA
  29.    LDY #0
  30.    JMP WRITE
  31. EPUTS = *
  32.    LDX #STDERR
  33.    JMP FPUTS
  34.  
  35. PUTCHAR = *
  36.    LDX #STDOUT
  37. PUTC = *
  38.    STA PUTC┬UFFER
  39.    LDA #<PUTC┬UFFER
  40.    LDY #>PUTC┬UFFER
  41.    STA ZP+0
  42.    STY ZP+1
  43.    LDA #1
  44.    LDY #0
  45.    JMP WRITE
  46.    PUTC┬UFFER .BUF 1
  47.  
  48. GETCHAR = *
  49.    LDX #STDIN
  50. GETC = *
  51.    LDA #<GETC┬UFFER
  52.    LDY #>GETC┬UFFER
  53.    STA ZP+0
  54.    STY ZP+1
  55.    LDA #1
  56.    LDY #0
  57.    JSR READ
  58.    BEQ +
  59.    LDA GETC┬UFFER
  60.    RTS
  61. +  SEC
  62.    RTS
  63.    GETC┬UFFER .BUF 1
  64.  
  65. GETARG = *
  66.    STY ZP+1
  67.    ASL
  68.    STA ZP+0
  69.    ROL ZP+1
  70.    CLC
  71.    LDA ACE┴RGV+0
  72.    ADC ZP+0
  73.    STA ZP+0
  74.    LDA ACE┴RGV+1
  75.    ADC ZP+1
  76.    STA ZP+1
  77.    LDY #0
  78.    LDA (ZP),Y
  79.    TAX
  80.    INY
  81.    LDA (ZP),Y
  82.    STX ZP
  83.    STA ZP+1
  84.    RTS
  85.  
  86. ;===REMOVE===
  87. ARG = 2
  88. NAME = 4
  89.  
  90. MAIN = *
  91.    ;** CHECK ARGUMENT COUNT
  92.    LDA ACE┴RGC+1
  93.    BNE ENOUGH┴RGS
  94.    LDA ACE┴RGC+0
  95.    CMP #2
  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: RMDIR FLAT─IR╬AME ..."
  105.    .BYTE CHR├╥,0
  106.  
  107. ENOUGH┴RGS = *
  108.    LDA #1
  109.    LDY #0
  110.    STA ARG+0
  111.    STY ARG+1
  112. -  LDA ARG+0
  113.    LDY ARG+1
  114.    JSR GETARG
  115.    LDA ZP+0
  116.    LDY ZP+1
  117.    STA NAME+0
  118.    STY NAME+1
  119.    ORA ZP+1
  120.    BEQ PRG┼XIT
  121.    JSR STOPKEY
  122.    BCS STOPPED
  123.    JSR ECHO
  124.    LDA NAME+0
  125.    LDY NAME+1
  126.    STA ZP+0
  127.    STY ZP+1
  128.    JSR RMDIR
  129.    BCC +
  130.    JSR ERROR
  131. +  INC ARG+0
  132.    BNE +
  133.    INC ARG+1
  134. +  JMP -
  135.  
  136. PRG┼XIT = *
  137.    RTS
  138.  
  139. STOPPED = *
  140.    LDA #<STOPPED═SG
  141.    LDY #>STOPPED═SG
  142.    JMP EPUTS
  143.    STOPPED═SG = *
  144.    .ASC "<STOPPED>"
  145.    .BYTE CHR├╥,0
  146.  
  147. ERROR = *
  148.    LDA #<ERROR═SG1
  149.    LDY #>ERROR═SG1
  150.    JSR EPUTS
  151.    LDA NAME+0
  152.    LDY NAME+1
  153.    JSR EPUTS
  154.    LDA #<ERROR═SG2
  155.    LDY #>ERROR═SG2
  156.    JMP EPUTS
  157.  
  158. ERROR═SG1 = *
  159.    .ASC "┼RROR ATTEMPTING REMOVE DIR "
  160.    .BYTE CHR╤UOTE,0
  161. ERROR═SG2 = *
  162.    .BYTE CHR╤UOTE,CHR├╥,0
  163.  
  164. ECHO = *
  165.    LDA #<ECHO═SG1
  166.    LDY #>ECHO═SG1
  167.    JSR EPUTS
  168.    LDA NAME+0
  169.    LDY NAME+1
  170.    JSR EPUTS
  171.    LDA #<ECHO═SG2
  172.    LDY #>ECHO═SG2
  173.    JMP EPUTS
  174.  
  175. ECHO═SG1 = *
  176.    .ASC "╥EMOVING DIRECTORY "
  177.    .BYTE CHR╤UOTE,0
  178.  
  179. ECHO═SG2 = *
  180.    .BYTE CHR╤UOTE,CHR├╥,0
  181.  
  182. ;===THE END===
  183. END = *
  184.