cvm: use Grid in /cvm/forth

Also, fixed broken AT-XY in Grid...
This commit is contained in:
Virgil Dupras 2020-11-14 20:08:18 -05:00
parent 95ab1ad588
commit c939c7e84a
3 changed files with 11 additions and 11 deletions

8
blk.fs
View File

@ -776,7 +776,7 @@ block. Any change made to the previously selected block is
saved beforehand. saved beforehand.
'[' and ']' advances the selected block by "modifier". 't' opens '[' and ']' advances the selected block by "modifier". 't' opens
the previously opened block. the previously opened block.
(cont.) (cont.)
( ----- 123 ) ( ----- 123 )
'h' and 'l' move the cursor by "modifier" characters. 'j' and 'h' and 'l' move the cursor by "modifier" characters. 'j' and
@ -806,7 +806,7 @@ be sure, then press 'E'.
Following keystrokes replace current character and advance Following keystrokes replace current character and advance
cursor. Press return to return to normal mode. cursor. Press return to return to normal mode.
'@' re-reads current block even if it's dirty, thus undoing '@' re-reads current block even if it's dirty, thus undoing
recent changes. recent changes.
( ----- 125 ) ( ----- 125 )
-20 LOAD+ ( B105, block editor ) -20 LOAD+ ( B105, block editor )
@ -855,7 +855,7 @@ CREATE PREVPOS 0 , CREATE PREVBLK 0 , CREATE xoff 0 ,
: $G ACC @ selblk ; : $G ACC @ selblk ;
: $[ BLK> @ acc@ - selblk ; : $[ BLK> @ acc@ - selblk ;
: $] BLK> @ acc@ + selblk ; : $] BLK> @ acc@ + selblk ;
: $t PREVBLK @ selblk ; : $t PREVBLK @ selblk ;
: $I mode! 'I' EMIT IBUF 1 buftype _i contents mode! SPC ; : $I mode! 'I' EMIT IBUF 1 buftype _i contents mode! SPC ;
: $F mode! 'F' EMIT FBUF 2 buftype _F setpos mode! SPC ; : $F mode! 'F' EMIT FBUF 2 buftype _F setpos mode! SPC ;
: $Y Y ; : $Y Y ;
@ -2221,7 +2221,7 @@ Load range: B402-B403
( ----- 402 ) ( ----- 402 )
: XYPOS [ GRID_MEM LITN ] ; : XYPOS [ GRID_MEM LITN ] ;
: _cl* COLS LINES * ; : _cl* COLS LINES * ;
: AT-XY ( x y -- ) LINES * + _cl* MOD XYPOS ! ; : AT-XY ( x y -- ) COLS * + _cl* MOD XYPOS ! ;
'? NEWLN NIP NOT [IF] '? NEWLN NIP NOT [IF]
: NEWLN ( ln -- ) COLS * DUP COLS + SWAP DO 0 I CELL! LOOP ; : NEWLN ( ln -- ) COLS * DUP COLS + SWAP DO 0 I CELL! LOOP ;
[THEN] [THEN]

View File

@ -15,7 +15,7 @@ $(BLKUNPACK): $(BLKPACK)
stage: stage.c $(OBJS) blkfs stage: stage.c $(OBJS) blkfs
$(CC) -DFBIN_PATH=\"`pwd`/stage.bin\" -DBLKFS_PATH=\"`pwd`/blkfs\" stage.c $(OBJS) -o $@ $(CC) -DFBIN_PATH=\"`pwd`/stage.bin\" -DBLKFS_PATH=\"`pwd`/blkfs\" stage.c $(OBJS) -o $@
blkfs: $(BLKPACK) blkfs: ../blk.fs $(BLKPACK)
$(BLKPACK) < ../blk.fs > $@ $(BLKPACK) < ../blk.fs > $@
forth.bin: stage common.fs forth.fs blkfs forth.bin: stage common.fs forth.fs blkfs

View File

@ -1,15 +1,15 @@
: (emit) 0 PC! ;
: COLS 80 ; : LINES 32 ; : COLS 80 ; : LINES 32 ;
: AT-XY 6 PC! ( y ) 5 PC! ( x ) ; : CELL! ( g pos -- )
COLS /MOD 6 PC! ( y ) 5 PC! ( x ) 0x20 + 0 PC! ;
: NEWLN ( ln -- ) DROP 0xa 0 PC! ;
SYSVARS 0x70 + CONSTANT GRID_MEM
402 403 LOADR ( Grid )
390 LOAD ( xcomp core high ) 390 LOAD ( xcomp core high )
(entry) _ (entry) _
( Update LATEST ) ( Update LATEST )
PC ORG @ 8 + ! PC ORG @ 8 + !
," BLK$ " ," BLK$ ' EFS@ BLK@* ! ' EFS! BLK!* ! 0 0 AT-XY " EOT,
," ' EFS@ BLK@* ! "
," ' EFS! BLK!* ! "
EOT,
ORG @ 256 /MOD 2 PC! 2 PC! ORG @ 256 /MOD 2 PC! 2 PC!
H@ 256 /MOD 2 PC! 2 PC! H@ 256 /MOD 2 PC! 2 PC!