home *** CD-ROM | disk | FTP | other *** search
- ;rsave.asm
- ;==============================================
- ; Command: Copy RAM resident command to floppy
- ;==============================================
-
- poker = $0016
- index1 = $0024
- parm = $0026
- int04 = $1704
- int05 = $1705
- int08 = $1708
- int09 = $1709
- int0c = $170c
- int0d = $170d
- int0e = $170e
- int13 = $1713
- int21 = $1721
- primm = $ff7d
- chrout = $ffd2
- rdmax = $1bf1
- rdadr = $1bf5
- rdbnk = $1bf3
- tx = $1bfe
- sw1 = $1bfc
- getcfg = $ff6b
- chkout = $ffc9
- clrchn = $ffcc
- close = $ffc3
-
- star = $0b00
- .wor star
- * = star
-
- jmp rsave
- dw Date
-
- rsave lda #13
- jsr chrout
- bit tx
- bvs rdon
- jsr primm
- .asc 13,"RAM disk isn't enabled.",13,0
- lda #2 ;return errorlevel 2
- jmp int0e
-
- rdon ldx #1 ;start with %1 and work up
- stx parm
- rm0 ldx parm
- jsr int04 ;confirm that parameter exists
- bcc rm1 ;ok. go on its there
- cpx #1 ;1st parameter?
- bne rmx ;no then ok
- rms jsr primm
- .asc 13,"Syntax: rsave d:command1 d:command2 ....",13
- .asc 13,"Purpose: Copy resident command to disk",13,0
- lda #1
- .byt $2c
- rmx lda #0
- jmp int0e ;all done
-
- rm1 ldy #6 ;locate %x in the RAM disk
- jsr int21
- php ;save found flag
- ldy #0
- ldx parm
- jsr int04
- rm2 jsr chrout ;echo filename
- iny
- jsr int05
- bcc rm2
- rm3 lda #" " ;tab(16)
- jsr chrout
- iny
- cpy #18
- bne rm3
- plp ;was it found?
- bcc rm4 ;yes. copy to floppy
- jsr primm
- .asc "Not found.",13,0
- rmnx inc parm
- jmp rm0
-
- rm4 ldx parm ;scratch it first
- jsr int13
- ldy $1b7f ;offset to CR saved by int21
- lda $1b63,y ;is it seq?
- bpl prgfil ;no prg
- lda #"s"
- .byt $2c
- prgfil lda #"p"
- ldx parm
- jsr int09 ;open %1 for write
- stx svla ;save la
- bcs rmerr ;error opening the file...exit
- jsr chkout
- bcs rmerr
- ldy #10 ;setup RAMdisk fetch
- jsr int21
- rm5 ldy #11 ;fetch from RAM disk
- jsr int21
- php
- jsr chrout
- plp
- bcc rm5
- jsr clrchn
- lda svla
- jsr close
- jsr primm
- .asc "Saved.",13,0
- jmp rmnx
-
- rmerr jsr primm
- .asc "Disk or parameter error",13,0
- lda svla
- jsr close
- jmp rmnx
-
-
- svd *=*+1 ;save default drive
- svla *=*+1 ;save la
-
- .end
-