; void __fastcall__ chline (unsigned char length);
;
- .export _chlinexy, _chline, chlinedirect
- .import popa, _gotoxy, cputdirect
+ .export _chlinexy, _chline, chlinedirect
+ .import gotoxy, cputdirect
- .include "zeropage.inc"
- .include "apple2.inc"
+ .include "zeropage.inc"
+ .include "apple2.inc"
_chlinexy:
- pha ; Save the length
- jsr popa ; Get y
- jsr _gotoxy ; Call this one, will pop params
- pla ; Restore the length and run into _chline
+ pha ; Save the length
+ jsr gotoxy ; Call this one, will pop params
+ pla ; Restore the length and run into _chline
_chline:
- .ifdef __APPLE2ENH__
- ldx #'S' ; MouseText character
- ldy INVFLG
- cpy #$FF ; Normal character display mode?
- beq chlinedirect
+ .ifdef __APPLE2ENH__
+ ldx #'S' ; MouseText character
+ ldy INVFLG
+ cpy #$FF ; Normal character display mode?
+ beq chlinedirect
.endif
- ldx #'-' | $80 ; Horizontal line, screen code
+ ldx #'-' | $80 ; Horizontal line, screen code
chlinedirect:
- cmp #$00 ; Is the length zero?
- beq done ; Jump if done
- sta tmp1
-: txa ; Screen code
- jsr cputdirect ; Direct output
- dec tmp1
- bne :-
+ stx tmp1
+ cmp #$00 ; Is the length zero?
+ beq done ; Jump if done
+ sta tmp2
+: lda tmp1 ; Screen code
+ jsr cputdirect ; Direct output
+ dec tmp2
+ bne :-
done: rts