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

  1. ;rsave.asm
  2. ;==============================================
  3. ; Command: Copy RAM resident command to floppy
  4. ;==============================================
  5.                                   
  6. poker       = $0016               
  7. index1      = $0024               
  8. parm        = $0026               
  9. int04       = $1704               
  10. int05       = $1705               
  11. int08       = $1708               
  12. int09       = $1709               
  13. int0c       = $170c               
  14. int0d       = $170d               
  15. int0e       = $170e               
  16. int13       = $1713               
  17. int21       = $1721               
  18. primm       = $ff7d               
  19. chrout      = $ffd2               
  20. rdmax       = $1bf1               
  21. rdadr       = $1bf5               
  22. rdbnk       = $1bf3               
  23. tx          = $1bfe               
  24. sw1         = $1bfc               
  25. getcfg      = $ff6b               
  26. chkout      = $ffc9               
  27. clrchn      = $ffcc               
  28. close       = $ffc3               
  29.                                   
  30. star        = $0b00               
  31.             .wor star             
  32.             * = star              
  33.  
  34.             jmp rsave
  35.             dw  Date
  36.                  
  37. rsave       lda #13
  38.             jsr chrout            
  39.             bit tx                
  40.             bvs rdon              
  41.             jsr primm             
  42.             .asc 13,"RAM disk isn't enabled.",13,0
  43.             lda #2                ;return errorlevel 2
  44.             jmp int0e             
  45.                                   
  46. rdon        ldx #1                ;start with %1 and work up
  47.             stx parm              
  48. rm0         ldx parm              
  49.             jsr int04             ;confirm that parameter exists
  50.             bcc rm1               ;ok. go on its there
  51.             cpx #1                ;1st parameter?
  52.             bne rmx               ;no then ok
  53. rms         jsr primm             
  54.             .asc 13,"Syntax:  rsave d:command1 d:command2 ....",13
  55.             .asc 13,"Purpose: Copy resident command to disk",13,0
  56.             lda #1                
  57.             .byt $2c              
  58. rmx         lda #0                
  59.             jmp int0e             ;all done
  60.                                   
  61. rm1         ldy #6                ;locate %x in the RAM disk
  62.             jsr int21             
  63.             php                   ;save found flag
  64.             ldy #0                
  65.             ldx parm              
  66.             jsr int04             
  67. rm2         jsr chrout            ;echo filename
  68.             iny                   
  69.             jsr int05             
  70.             bcc rm2               
  71. rm3         lda #" "              ;tab(16)
  72.             jsr chrout            
  73.             iny                   
  74.             cpy #18               
  75.             bne rm3               
  76.             plp                   ;was it found?
  77.             bcc rm4               ;yes. copy to floppy
  78.             jsr primm             
  79.             .asc "Not found.",13,0
  80. rmnx        inc parm              
  81.             jmp rm0               
  82.                                   
  83. rm4         ldx parm              ;scratch it first
  84.             jsr int13             
  85.             ldy $1b7f             ;offset to CR saved by int21
  86.             lda $1b63,y           ;is it seq?
  87.             bpl prgfil            ;no prg
  88.             lda #"s"              
  89.             .byt $2c              
  90. prgfil      lda #"p"              
  91.             ldx parm              
  92.             jsr int09             ;open %1 for write
  93.             stx svla              ;save la
  94.             bcs rmerr             ;error opening the file...exit
  95.             jsr chkout            
  96.             bcs rmerr             
  97.             ldy #10               ;setup RAMdisk fetch
  98.             jsr int21             
  99. rm5         ldy #11               ;fetch from RAM disk
  100.             jsr int21             
  101.             php                   
  102.             jsr chrout            
  103.             plp                   
  104.             bcc rm5               
  105.             jsr clrchn            
  106.             lda svla              
  107.             jsr close             
  108.             jsr primm             
  109.             .asc "Saved.",13,0
  110.             jmp rmnx              
  111.                                   
  112. rmerr       jsr primm             
  113.             .asc "Disk or parameter error",13,0
  114.             lda svla              
  115.             jsr close             
  116.             jmp rmnx              
  117.                                   
  118.                                   
  119. svd         *=*+1                 ;save default drive
  120. svla        *=*+1                 ;save la
  121.                                   
  122.             .end                  
  123.