Introduced internal gotoxy that pops both parameters.

About all CONIO functions offering a <...>xy variant call
  popa
  _gotoxy

By providing an internal gotoxy variant that starts with a popa all those CONIO function can be shortened by 3 bytes. As soon as program calls more than one CONIO function this means an overall code size reduction.
This commit is contained in:
Oliver Schmidt
2016-06-05 14:58:38 +02:00
parent d670998814
commit 13482984ca
50 changed files with 120 additions and 152 deletions

View File

@@ -6,13 +6,12 @@
;
.export _cclearxy, _cclear
.import popa, _gotoxy, cputdirect
.import gotoxy, cputdirect
.importzp tmp1
_cclearxy:
pha ; Save the length
jsr popa ; Get y
jsr _gotoxy ; Call this one, will pop params
jsr gotoxy ; Call this one, will pop params
pla ; Restore the length and run into _cclear
_cclear:
@@ -24,7 +23,3 @@ L1: lda #$20 ; Blank - screen code
dec tmp1
bne L1
L9: rts

View File

@@ -6,13 +6,12 @@
;
.export _chlinexy, _chline
.import popa, _gotoxy, cputdirect
.import gotoxy, cputdirect
.importzp tmp1, chlinechar
_chlinexy:
pha ; Save the length
jsr popa ; Get y
jsr _gotoxy ; Call this one, will pop params
jsr gotoxy ; Call this one, will pop params
pla ; Restore the length
_chline:
@@ -24,7 +23,3 @@ L1: lda #chlinechar ; Horizontal line, screen code
dec tmp1
bne L1
L9: rts

View File

@@ -6,13 +6,12 @@
;
.export _cvlinexy, _cvline
.import popa, _gotoxy, putchar, newline
.import gotoxy, putchar, newline
.importzp tmp1, cvlinechar
_cvlinexy:
pha ; Save the length
jsr popa ; Get y
jsr _gotoxy ; Call this one, will pop params
jsr gotoxy ; Call this one, will pop params
pla ; Restore the length and run into _cvline
_cvline:
@@ -25,6 +24,3 @@ L1: lda #cvlinechar ; Vertical bar
dec tmp1
bne L1
L9: rts

View File

@@ -4,10 +4,13 @@
; void gotoxy (unsigned char x, unsigned char y);
;
.export _gotoxy
.export gotoxy, _gotoxy
.import popa, plot
.importzp CURS_X, CURS_Y
gotoxy:
jsr popa ; Get Y
_gotoxy:
sta CURS_Y ; Set Y
jsr popa ; Get X