]> git.sur5r.net Git - cc65/blobdiff - libsrc/tgi/tgidrv_line.inc
Removed (pretty inconsistently used) tab chars from source code base.
[cc65] / libsrc / tgi / tgidrv_line.inc
index bbcb7c911baeac65b3916e6a9d80191be6d62419..e904b5117b6d323000228ad4846fb9af716dcadb 100644 (file)
 ; X2/Y2 = ptr3/ptr4 using the current drawing color.
 ; Must set an error code: NO
 
-       .proc   LINE
+        .proc   LINE
 
 ; Used for passing parameters to the driver.
 
-X1     :=      ptr1
-Y1     :=      ptr2
-X2     :=      ptr3
-Y2     :=      ptr4
+X1      :=      ptr1
+Y1      :=      ptr2
+X2      :=      ptr3
+Y2      :=      ptr4
 
 ; These ones must be on zpage.
 
-TEMP1  :=      tmp3
-TEMP2  :=      tmp4
-TEMP3  :=      sreg
-TEMP4  :=      sreg+1
-PB     :=      ptr3
-UB     :=      ptr4
-ERR    :=      regsave
-NX     :=      regsave+2
+TEMP1   :=      tmp3
+TEMP2   :=      tmp4
+TEMP3   :=      sreg
+TEMP4   :=      sreg+1
+PB      :=      ptr3
+UB      :=      ptr4
+ERR     :=      regsave
+NX      :=      regsave+2
 
 ; ------------------------------------------------------------------------
 
-       .bss
+        .bss
 
-COUNT: .res    2
-NY:    .res    2
-DX:    .res    1
-DY:    .res    1
-AX:    .res    1
-AY:    .res    1
+COUNT:  .res    2
+NY:     .res    2
+DX:     .res    1
+DY:     .res    1
+AX:     .res    1
+AY:     .res    1
 
 ; ------------------------------------------------------------------------
 
-       .code
-
-       ; nx = abs (x2 - x1)
-       sec
-       lda     X2
-       sbc     X1
-       sta     NX
-       lda     X2+1
-       sbc     X1+1
-       tay
-       lda     NX
-       jsr     abs
-       sta     NX
-       sty     NX+1
-
-       ; ny = abs (y2 - y1)
-       sec
-       lda     Y2
-       sbc     Y1
-       sta     NY
-       lda     Y2+1
-       sbc     Y1+1
-       tay
-       lda     NY
-       jsr     abs
-       sta     NY
-       sty     NY+1
-
-       ; if (x2 >= x1)
-       ldx     #X2
-       lda     X1
-       ldy     X1+1
-       jsr     icmp
-       bcc     :+
-
-       ;    dx = 1
-       lda     #$01
-       bne     :++
-
-       ; else
-       ;    dx = -1
-:      lda     #$FF
-:      sta     DX
-
-       ; if (y2 >= y1)
-       ldx     #Y2
-       lda     Y1
-       ldy     Y1+1
-       jsr     icmp
-       bcc     :+
-
-       ;    dy = 1
-       lda     #$01
-       bne     :++
-
-       ; else
-       ;    dy = -1
-:      lda     #$FF
-:      sta     DY
-
-       ; err = ax = ay = 0
-       lda     #$00
-       sta     ERR
-       sta     ERR+1
-       sta     AX
-       sta     AY
-
-       ; if (nx < ny) {
-       ldx     #NX
-       lda     NY
-       ldy     NY+1
-       jsr     icmp
-       bcs     :+
-
-       ;    nx <-> ny
-       lda     NX
-       ldx     NY
-       sta     NY
-       stx     NX
-       lda     NX+1
-       ldx     NY+1
-       sta     NY+1
-       stx     NX+1
-
-       ;    ax = dx
-       lda     DX
-       sta     AX
-
-       ;    ay = dy
-       lda     DY
-       sta     AY
-
-       ;    dx = dy = 0 }
-       lda     #$00
-       sta     DX
-       sta     DY
-
-       ; ny = - ny
-:      lda     NY
-       ldy     NY+1
-       jsr     neg
-       sta     NY
-       sty     NY+1
-
-       ; for (count = nx; count > 0; --count) {
-       lda     NX
-       ldx     NX+1
-       sta     COUNT
-       stx     COUNT+1
-for:   lda     COUNT           ; count > 0
-       ora     COUNT+1
-       bne     :+
-       rts
-
-       ;    setpixel (X1, Y1)
-:      jsr     SETPIXEL
-
-       ;    pb = err + ny
-       clc
-       lda     ERR
-       adc     NY
-       sta     PB
-       lda     ERR+1
-       adc     NY+1
-       sta     PB+1
-       tax
-
-       ;    ub = pb + nx
-       clc
-       lda     PB
-       adc     NX
-       sta     UB
-       txa
-       adc     NX+1
-       sta     UB+1
-
-       ;    x1 = x1 + dx
-       ldx     #$00
-       lda     DX
-       bpl     :+
-       dex
-:      clc
-       adc     X1
-       sta     X1
-       txa
-       adc     X1+1
-       sta     X1+1
-
-       ;    y1 = y1 + ay
-       ldx     #$00
-       lda     AY
-       bpl     :+
-       dex
-:      clc
-       adc     Y1
-       sta     Y1
-       txa
-       adc     Y1+1
-       sta     Y1+1
-
-       ;    if (abs (pb) < abs (ub)) {
-       lda     PB
-       ldy     PB+1
-       jsr     abs
-       sta     TEMP3
-       sty     TEMP4
-       lda     UB
-       ldy     UB+1
-       jsr     abs
-       ldx     #TEMP3
-       jsr     icmp
-       bpl     :+
-
-       ;       err = pb }
-       lda     PB
-       ldx     PB+1
-       jmp     next
-
-       ;    else { x1 = x1 + ax
-:      ldx     #$00
-       lda     AX
-       bpl     :+
-       dex
-:      clc
-       adc     X1
-       sta     X1
-       txa
-       adc     X1+1
-       sta     X1+1
-
-       ;       y1 = y1 + dy
-       ldx     #$00
-       lda     DY
-       bpl     :+
-       dex
-:      clc
-       adc     Y1
-       sta     Y1
-       txa
-       adc     Y1+1
-       sta     Y1+1
-
-       ;       err = ub }
-       lda     UB
-       ldx     UB+1
-next:  sta     ERR
-       stx     ERR+1
-
-       ; } (--count)
-       lda     COUNT
-       sec
-       sbc     #$01
-       sta     COUNT
-       bcc     :+
-       jmp     for
-:      dec     COUNT+1
-       jmp     for
+        .code
+
+        ; nx = abs (x2 - x1)
+        sec
+        lda     X2
+        sbc     X1
+        sta     NX
+        lda     X2+1
+        sbc     X1+1
+        tay
+        lda     NX
+        jsr     abs
+        sta     NX
+        sty     NX+1
+
+        ; ny = abs (y2 - y1)
+        sec
+        lda     Y2
+        sbc     Y1
+        sta     NY
+        lda     Y2+1
+        sbc     Y1+1
+        tay
+        lda     NY
+        jsr     abs
+        sta     NY
+        sty     NY+1
+
+        ; if (x2 >= x1)
+        ldx     #X2
+        lda     X1
+        ldy     X1+1
+        jsr     icmp
+        bcc     :+
+
+        ;    dx = 1
+        lda     #$01
+        bne     :++
+
+        ; else
+        ;    dx = -1
+:       lda     #$FF
+:       sta     DX
+
+        ; if (y2 >= y1)
+        ldx     #Y2
+        lda     Y1
+        ldy     Y1+1
+        jsr     icmp
+        bcc     :+
+
+        ;    dy = 1
+        lda     #$01
+        bne     :++
+
+        ; else
+        ;    dy = -1
+:       lda     #$FF
+:       sta     DY
+
+        ; err = ax = ay = 0
+        lda     #$00
+        sta     ERR
+        sta     ERR+1
+        sta     AX
+        sta     AY
+
+        ; if (nx < ny) {
+        ldx     #NX
+        lda     NY
+        ldy     NY+1
+        jsr     icmp
+        bcs     :+
+
+        ;    nx <-> ny
+        lda     NX
+        ldx     NY
+        sta     NY
+        stx     NX
+        lda     NX+1
+        ldx     NY+1
+        sta     NY+1
+        stx     NX+1
+
+        ;    ax = dx
+        lda     DX
+        sta     AX
+
+        ;    ay = dy
+        lda     DY
+        sta     AY
+
+        ;    dx = dy = 0 }
+        lda     #$00
+        sta     DX
+        sta     DY
+
+        ; ny = - ny
+:       lda     NY
+        ldy     NY+1
+        jsr     neg
+        sta     NY
+        sty     NY+1
+
+        ; for (count = nx; count > 0; --count) {
+        lda     NX
+        ldx     NX+1
+        sta     COUNT
+        stx     COUNT+1
+for:    lda     COUNT           ; count > 0
+        ora     COUNT+1
+        bne     :+
+        rts
+
+        ;    setpixel (X1, Y1)
+:       jsr     SETPIXEL
+
+        ;    pb = err + ny
+        clc
+        lda     ERR
+        adc     NY
+        sta     PB
+        lda     ERR+1
+        adc     NY+1
+        sta     PB+1
+        tax
+
+        ;    ub = pb + nx
+        clc
+        lda     PB
+        adc     NX
+        sta     UB
+        txa
+        adc     NX+1
+        sta     UB+1
+
+        ;    x1 = x1 + dx
+        ldx     #$00
+        lda     DX
+        bpl     :+
+        dex
+:       clc
+        adc     X1
+        sta     X1
+        txa
+        adc     X1+1
+        sta     X1+1
+
+        ;    y1 = y1 + ay
+        ldx     #$00
+        lda     AY
+        bpl     :+
+        dex
+:       clc
+        adc     Y1
+        sta     Y1
+        txa
+        adc     Y1+1
+        sta     Y1+1
+
+        ;    if (abs (pb) < abs (ub)) {
+        lda     PB
+        ldy     PB+1
+        jsr     abs
+        sta     TEMP3
+        sty     TEMP4
+        lda     UB
+        ldy     UB+1
+        jsr     abs
+        ldx     #TEMP3
+        jsr     icmp
+        bpl     :+
+
+        ;       err = pb }
+        lda     PB
+        ldx     PB+1
+        jmp     next
+
+        ;    else { x1 = x1 + ax
+:       ldx     #$00
+        lda     AX
+        bpl     :+
+        dex
+:       clc
+        adc     X1
+        sta     X1
+        txa
+        adc     X1+1
+        sta     X1+1
+
+        ;       y1 = y1 + dy
+        ldx     #$00
+        lda     DY
+        bpl     :+
+        dex
+:       clc
+        adc     Y1
+        sta     Y1
+        txa
+        adc     Y1+1
+        sta     Y1+1
+
+        ;       err = ub }
+        lda     UB
+        ldx     UB+1
+next:   sta     ERR
+        stx     ERR+1
+
+        ; } (--count)
+        lda     COUNT
+        sec
+        sbc     #$01
+        sta     COUNT
+        bcc     :+
+        jmp     for
+:       dec     COUNT+1
+        jmp     for
 
 
 ; Copies of some runtime routines
 
 abs:
-       ; A/Y := abs (A/Y)
-       cpy     #$00
-       bpl     :+
-       
-       ; A/Y := neg (A/Y)
-neg:   clc
-       eor     #$FF
-       adc     #$01
-       pha
-       tya
-       eor     #$FF
-       adc     #$00
-       tay
-       pla
-:      rts
+        ; A/Y := abs (A/Y)
+        cpy     #$00
+        bpl     :+
+        
+        ; A/Y := neg (A/Y)
+neg:    clc
+        eor     #$FF
+        adc     #$01
+        pha
+        tya
+        eor     #$FF
+        adc     #$00
+        tay
+        pla
+:       rts
 
 icmp:
-       ; Compare A/Y to zp,X
-       sta     TEMP1           ; TEMP1/TEMP2 - arg2
-       sty     TEMP2
-       lda     $00,x
-       pha
-       lda     $01,x
-       tay
-       pla
-       tax
-       tya                     ; X/A - arg1 (a = high)
-
-       sec
-       sbc     TEMP2
-       bne     :++
-       cpx     TEMP1
-       beq     :+
-       adc     #$FF
-       ora     #$01
-:      rts
-:      bvc     :+
-       eor     #$FF
-       ora     #$01
-:      rts
-
-       .endproc
+        ; Compare A/Y to zp,X
+        sta     TEMP1           ; TEMP1/TEMP2 - arg2
+        sty     TEMP2
+        lda     $00,x
+        pha
+        lda     $01,x
+        tay
+        pla
+        tax
+        tya                     ; X/A - arg1 (a = high)
+
+        sec
+        sbc     TEMP2
+        bne     :++
+        cpx     TEMP1
+        beq     :+
+        adc     #$FF
+        ora     #$01
+:       rts
+:       bvc     :+
+        eor     #$FF
+        ora     #$01
+:       rts
+
+        .endproc