the diskcmd.s module.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3939
b7a2c559-68d2-44c3-8de9-
860c34a00d81
-; Ullrich von Bassewitz, 17.11.2002
+; Ullrich von Bassewitz, 2002-11-17, 2009-02-22
;
; Handle disk command channels
;
;
; Handle disk command channels
;
.export closecmdchannel
.export readdiskerror
.export writediskcmd
.export closecmdchannel
.export readdiskerror
.export writediskcmd
.import SETLFS, SETNAM, OPEN, CLOSE, BSOUT, BASIN
.import CHKIN, CKOUT, CLRCH
.import SETLFS, SETNAM, OPEN, CLOSE, BSOUT, BASIN
.import CHKIN, CKOUT, CLRCH
+ .import fncmd, fnlen, fnunit
.importzp tmp1, ptr1
.include "cbm.inc"
.importzp tmp1, ptr1
.include "cbm.inc"
+;--------------------------------------------------------------------------
+; writefndiskcmd: Write the contents of fncmd to the command channel of the
+; drive in fnunit. Returns an error code in A, flags are set according to
+; the contents of A.
+
+writefndiskcmd:
+ lda #<fncmd
+ sta ptr1
+ lda #>fncmd
+ sta ptr1+1
+
+ ldx fnlen
+ inx ; Account for command char in fncmd
+ txa ; Length of name into A
+ ldx fnunit ; Unit
+
+; Run directly into writediskcmd
+
+; jmp writediskcmd
+
;--------------------------------------------------------------------------
; writediskcmd: Gets pointer to data in ptr1, length in A. Writes all data
; to the command channel of the given drive. Returns an error code in A,
;--------------------------------------------------------------------------
; writediskcmd: Gets pointer to data in ptr1, length in A. Writes all data
; to the command channel of the given drive. Returns an error code in A,
;--------------------------------------------------------------------------
; Data
;--------------------------------------------------------------------------
; Data
-; Ullrich von Bassewitz, 16.11.2002
+; Ullrich von Bassewitz, 2002-11-16, 2009-02-22
;
; Scratch a file on disk
;
.export scratch
;
; Scratch a file on disk
;
.export scratch
- .import opencmdchannel, closecmdchannel, writediskcmd
- .import fnunit, fnlen, fncmd
- .importzp ptr1
+ .import opencmdchannel, closecmdchannel, writefndiskcmd
+ .import fnunit, fncmd
lda #'s' ; Scratch command
sta fncmd
lda #'s' ; Scratch command
sta fncmd
-
- lda #<fncmd
- sta ptr1
- lda #>fncmd
- sta ptr1+1
-
- ldx fnlen
- inx ; Account for "S"
- txa ; Length of name into A
- ldx fnunit ; Unit
- jsr writediskcmd