diff --git a/blk/522 b/blk/522 index 08ea390..bdb2605 100644 --- a/blk/522 +++ b/blk/522 @@ -10,7 +10,7 @@ LOOP ; : CPFNT3x5 0 , 0 , 0 C, ( space char ) - 530 BLK@ BLK( 21 _l 192 + 21 _l 192 + 21 _l ( 63 ) - 531 BLK@ BLK( 21 _l 192 + 10 _l ( 94! ) + 530 BLK@ BLK( 21 _l 320 + 21 _l 320 + 21 _l ( 63 ) + 531 BLK@ BLK( 21 _l 320 + 10 _l ( 94! ) ; diff --git a/blk/557 b/blk/557 index 0e64958..38bc3dd 100644 --- a/blk/557 +++ b/blk/557 @@ -3,10 +3,9 @@ : _data@ LCD_PORT_DATA PC@ LCDWAIT ; : LCDOFF 0x02 ( CMD_DISABLE ) _cmd ; : LCDON 0x03 ( CMD_ENABLE ) _cmd ; -: _col! ( col -- ) - 0x20 ( CMD_COL ) + _cmd ; -: _row! ( row -- ) - 0x80 ( CMD_ROW ) + _cmd ; +: _yinc 0x07 _cmd ; : _xinc 0x05 _cmd ; +: _col! ( col -- ) 0x20 ( CMD_COL ) + _cmd ; +: _row! ( row -- ) 0x80 ( CMD_ROW ) + _cmd ; : LCD$ H@ TI_MEM ! FNTH 2 * 2+ ALLOT LCDON 0x01 ( 8-bit mode ) _cmd diff --git a/blk/558 b/blk/558 index 98af667..cb5fe53 100644 --- a/blk/558 +++ b/blk/558 @@ -1,16 +1,13 @@ -: _glyph> ( a -- ) - LCD_CURY C@ _row! LCD_CURX C@ 8 /MOD _col! ( a coff ) - 0x05 ( XINC ) _cmd _data@ DROP SWAP - FNTH 0 DO ( coff a ) - C@+ 2 PICK 8 -^ LSHIFT - _data@ 8 LSHIFT OR - LCD_BUF I + 2DUP FNTH + C! - SWAP 8 RSHIFT SWAP C! - LOOP 2DROP - LCD_CURY C@ _row! - FNTH 0 DO LCD_BUF I + C@ _data! LOOP - LCD_CURY C@ _row! LCD_CURX C@ 8 / 1+ _col! - FNTH 0 DO LCD_BUF FNTH + I + C@ _data! LOOP - LCD_CURX C@ FNTW + 1+ - DUP [ 96 FNTW - LITN ] > IF DROP 0 THEN - LCD_CURX C! ; +: _clrrows ( n u -- Clears u rows starting at n ) + SWAP _row! + ( u ) 0 DO + _yinc 0 _col! + 11 0 DO 0 _data! LOOP + _xinc 0 _data! + LOOP ; +: _clrln ( n ) FNTH 1+ _clrrows ; +: LCDCLR 0 64 _clrrows ; +( Changes the current line and go back to leftmost column ) +: _lf + LCD_CURY C@ FNTH 1+ + DUP 63 > IF DROP 0 THEN + DUP _clrln LCD_CURY C! 0 LCD_CURX C! ; diff --git a/blk/559 b/blk/559 new file mode 100644 index 0000000..389b924 --- /dev/null +++ b/blk/559 @@ -0,0 +1,16 @@ +: _glyph> ( a -- ) + LCD_CURY C@ _row! LCD_CURX C@ 8 /MOD _col! ( a coff ) + _xinc _data@ DROP SWAP + FNTH 0 DO ( coff a ) + C@+ 2 PICK 8 -^ LSHIFT + _data@ 8 LSHIFT OR + LCD_BUF I + 2DUP FNTH + C! + SWAP 8 RSHIFT SWAP C! + LOOP 2DROP + LCD_CURY C@ _row! + FNTH 0 DO LCD_BUF I + C@ _data! LOOP + LCD_CURY C@ _row! LCD_CURX C@ 8 / 1+ _col! + FNTH 0 DO LCD_BUF FNTH + I + C@ _data! LOOP + LCD_CURX C@ FNTW + 1+ DUP LCD_CURX C! ( x ) + [ 96 FNTW - LITN ] > IF _lf THEN ; + diff --git a/blk/560 b/blk/560 new file mode 100644 index 0000000..fc86c7b --- /dev/null +++ b/blk/560 @@ -0,0 +1,4 @@ +: (emit) + DUP 0xd = IF DROP _lf EXIT THEN + DUP 0x20 0x7e =><= NOT IF DROP EXIT THEN + 0x20 - FNTH * ['] ~FNT + _glyph> ; diff --git a/recipes/ti84/xcomp.fs b/recipes/ti84/xcomp.fs index 1590789..cc73a17 100644 --- a/recipes/ti84/xcomp.fs +++ b/recipes/ti84/xcomp.fs @@ -19,7 +19,8 @@ CURRENT @ XCURRENT ! ( Update LATEST ) PC ORG @ 8 + ! 422 437 XPACKR ( core ) -556 558 XPACKR ( ti ) -," 42 42 PC! LCD$ ' ~FNT 5 + _glyph> 43 43 PC! BYE " +556 560 XPACKR ( ti ) +438 446 XPACKR ( print fmt ) +," : _ LCD$ LIT< Hello (print) LIT< World! (print) BYE ; _ " ORG @ 256 /MOD 2 PC! 2 PC! H@ 256 /MOD 2 PC! 2 PC!