]> git.sur5r.net Git - cc65/commitdiff
Declare zero page variables before use. Otherwise they aren't used in zero
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 9 Apr 2006 11:43:03 +0000 (11:43 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 9 Apr 2006 11:43:03 +0000 (11:43 +0000)
page addressing mode, if the assembler has a choice.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3725 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/atari/read.s

index cdddd2b2393e19ce06f20788c544f2640fcebe58..19d33cb66d51c9b07aeb8c5e30911d4a1068bfd8 100644 (file)
@@ -8,43 +8,57 @@
        .import __rwsetup,__do_oserror,__inviocb,__oserror
        .export _read
 
-_read: jsr     __rwsetup       ; do common setup for read and write
-       beq     done            ; if size 0, it's a no-op
-       cpx     #$FF            ; invalid iocb?
-       beq     _inviocb
+_read: jsr     __rwsetup       ; do common setup for read and write
+       beq     done            ; if size 0, it's a no-op
+       cpx     #$FF            ; invalid iocb?
+       beq     _inviocb
 
 .ifdef LINEBUF
        ; E: should be always at IOCB #0
        ; fixme: what happens when user closes and reopens stdin?
-       cpx     #0              ; E: handler (line oriented keyboard input)?
-       beq     do_line
+       cpx     #0              ; E: handler (line oriented keyboard input)?
+       beq     do_line
 .endif
 
-       lda     #GETCHR         ; iocb command code
-       sta     ICCOM,x
-       jsr     CIOV            ; read it
-       bpl     done
-       cpy     #EOFERR         ; eof is treated specially
-       beq     done
-       jmp     __do_oserror    ; update errno
-
-done:  lda     ICBLL,x         ; buf len lo
-       pha                     ; save
-       lda     ICBLH,x         ; get buf len hi
-       tax                     ; to X
-okdone:        lda     #0
-       sta     __oserror       ; clear system dependend error code
-       pla                     ; get buf len lo
+       lda     #GETCHR         ; iocb command code
+       sta     ICCOM,x
+       jsr     CIOV            ; read it
+       bpl     done
+       cpy     #EOFERR         ; eof is treated specially
+       beq     done
+       jmp     __do_oserror    ; update errno
+
+done:  lda     ICBLL,x         ; buf len lo
+       pha                     ; save
+       lda     ICBLH,x         ; get buf len hi
+       tax                     ; to X
+okdone:        lda     #0
+       sta     __oserror       ; clear system dependend error code
+       pla                     ; get buf len lo
        rts
 
 _inviocb:
-       jmp     __inviocb
+       jmp     __inviocb
 
 
 .ifdef LINEBUF
 
 ; line oriented input
 
+       .segment        "EXTZP" : zeropage
+
+index: .res    1               ; index into line buffer
+buflen:        .res    1               ; length of used part of buffer
+cbs:   .res    1               ; current buffer size: buflen - index
+dataptr:.res   2               ; temp pointer to user buffer
+copylen:.res   1               ; temp counter
+
+       .bss
+
+linebuf:.res   LINEBUF         ; the line buffer
+
+        .code
+
 do_line:
        lda     buflen          ; line buffer active?
        bne     use_buf         ; yes, get data from there
@@ -86,7 +100,7 @@ do_line:
 newbuf:
        lda     ICBLL,x         ; get # of bytes read
        sta     buflen
-       lda     #0
+       lda     #0
        sta     index           ; fresh buffer
 
        ; restore user buffer address & length
@@ -129,7 +143,7 @@ icbll_copy:
 
        lda     ICBAL,x         ; buffer address
        sta     dataptr
-       lda     ICBAH,x         ; buffer address
+       lda     ICBAH,x         ; buffer address
        sta     dataptr+1
        lda     ICBLL,x
        sta     copylen
@@ -164,17 +178,5 @@ btsmall:
        sta     ICBLL,x
        bpl     icbll_copy
 
-       .segment        "EXTZP" : zeropage
-
-index: .res    1               ; index into line buffer
-buflen:        .res    1               ; length of used part of buffer
-cbs:   .res    1               ; current buffer size: buflen - index
-dataptr:.res   2               ; temp pointer to user buffer
-copylen:.res   1               ; temp counter
-
-       .bss
-
-linebuf:.res   LINEBUF         ; the line buffer
-
 .endif         ; .ifdef LINEBUF