home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c128 / text / examples.arc / ASSIGN.A next >
Encoding:
Text File  |  1989-12-01  |  2.6 KB  |  72 lines

  1. ;assign.asm
  2. ;================================================
  3. ; Command:   assign drive-letter [to] unit,drive
  4. ;================================================
  5.                                   
  6. int00       = $1700               
  7. int01       = $1701               
  8. int04       = $1704               
  9. int05       = $1705               
  10. int06       = $1706               
  11. int0e       = $170e               
  12. int11       = $1711               
  13. primm       = $ff7d               
  14.                                   
  15. star        = $0b00               
  16.             .wor star             
  17.             * = star              
  18.  
  19.             jmp assign
  20.             dw  Date
  21.                       
  22. assign      ldx #1                ;1st get parameter number one
  23.             jsr int04             
  24.             bcs syntax            
  25.             jmp a0                
  26.                                   
  27. syntax      jsr primm             
  28.             .asc 13,"Syntax:  assign letter [to] unit,drive",13
  29.             .asc 13,"Purpose: defines a disk device letter",13,0
  30.             jmp int0e             
  31.                                   
  32. a0          sta letter            
  33.             jsr int05             
  34.             bcc syntax            
  35.             inx                   
  36.             jsr int04             
  37.             cmp #"t"              
  38.             bne a1                
  39.             inx                   
  40. a1          stx parm              
  41.             jsr int11             ;get unit
  42.             cmp #0                
  43.             beq a2                
  44. invld       jsr primm             
  45.             .asc 13,"invalid drive or device?", 0
  46.             jmp int0e             
  47.                                   
  48. a2          stx unit              
  49.             ldx parm              
  50.             inx                   
  51.             jsr int11             
  52.             cmp #0                
  53.             bne invld             
  54.             txa                   
  55.             cmp #10               
  56.             bcs invld             
  57.             ora #$30              
  58.             tay                   
  59.             ldx unit              
  60.             lda letter            
  61.             jsr int06             
  62.             bcs invld             
  63.             jsr int01             
  64.             jsr int00             
  65.             jmp int0e             
  66.                                   
  67. unit        *=*+1                 
  68. parm        *=*+1                 
  69. letter      *=*+1                 
  70.                                   
  71.             .end                  
  72.