Browse Source

ti/lcd: wrap to next line when overflowing

pull/75/head
Virgil Dupras 4 years ago
parent
commit
6c1b1f2b79
1 changed files with 15 additions and 17 deletions
  1. +15
    -17
      kernel/ti/lcd.asm

+ 15
- 17
kernel/ti/lcd.asm View File

@@ -27,6 +27,8 @@
; Current row being written on. In terms of pixels, not of glyphs. During a
; linefeed, this increases by FNT_HEIGHT+1.
.equ LCD_CURROW LCD_RAMSTART
; Current column
.equ LCD_CURCOL @+1
.equ LCD_RAMEND @+1

; *** Code ***
@@ -34,6 +36,7 @@ lcdInit:
; Initialize variables
xor a
ld (LCD_CURROW), a
ld (LCD_CURCOL), a

; Clear screen
call lcdClrScr
@@ -122,28 +125,23 @@ lcdSendGlyph:

ld a, (LCD_CURROW)
call lcdSetRow

ld b, 7
ld a, (LCD_CURCOL)
call lcdSetCol
; let's increase (and wrap) col now
inc a
ld (LCD_CURCOL), a
cp 16
jr nz, .skip
call lcdLinefeed
.skip:
ld b, FNT_HEIGHT
.loop:
ld a, (hl)
inc hl
call lcdData
djnz .loop

; Now that we've sent our 7 rows of pixels, let's go in "Y-increment"
; mode to let the LCD increase by one column after we've sent our 8th
; line, which is blank (padding).
ld a, LCD_CMD_YINC
call lcdCmd

; send blank line
xor a
call lcdData

; go back in X-increment mode
ld a, LCD_CMD_XINC
call lcdCmd

pop hl
pop bc
pop af
@@ -156,7 +154,7 @@ lcdLinefeed:
add a, FNT_HEIGHT+1
ld (LCD_CURROW), a
xor a
call lcdSetCol
ld (LCD_CURCOL), a
pop af
ret



Loading…
Cancel
Save