diff --git a/blk/126 b/blk/126 index d7a8efd..f0cd00c 100644 --- a/blk/126 +++ b/blk/126 @@ -2,6 +2,7 @@ CREATE CMD 2 C, '$' C, 0 C, CREATE PREVPOS 0 , CREATE PREVBLK 0 , : MIN ( n n - n ) 2DUP > IF SWAP THEN DROP ; : MAX ( n n - n ) 2DUP < IF SWAP THEN DROP ; +: large? COLS 67 > ; : col- 67 COLS MIN -^ ; : acc@ ACC @ 1 MAX ; : num ACC @ SWAP _pdacc IF ACC ! ELSE DROP THEN ; : nspcs ( n -- , spit n space ) 0 DO SPC LOOP ; @@ -12,3 +13,4 @@ CREATE PREVPOS 0 , CREATE PREVBLK 0 , SPC EDPOS @ 64 /MOD . ',' EMIT . SPC BLKDTY @ IF '*' EMIT THEN 10 nspcs ; : nums 17 1 DO 2 I + aty I . SPC SPC LOOP ; +: mode! ( c -- ) 4 col- 0 AT-XY ; diff --git a/blk/127 b/blk/127 index 651d174..7123515 100644 --- a/blk/127 +++ b/blk/127 @@ -1,16 +1,16 @@ -: contents 16 0 DO 3 I 3 + AT-XY - 64 I * BLK( + DUP 64 + SWAP DO +: contents 16 0 DO large? IF 3 ELSE 0 THEN I 3 + AT-XY + 64 I * BLK( + DUP 3 col- + SWAP DO I C@ 0x20 MAX EMIT LOOP LOOP - 3 16 gutter ; + large? IF 3 16 gutter THEN ; : selblk BLK> @ PREVBLK ! BLK@ contents ; -: mode! ( c -- ) 63 0 AT-XY ; : pos! ( newpos -- ) EDPOS @ PREVPOS ! DUP 0< IF DROP 0 THEN 1023 MIN EDPOS ! ; : setpos ( -- ) EDPOS @ 64 /MOD - 3 + ( header ) SWAP 3 + ( gutter ) SWAP AT-XY ; + 3 + ( header ) SWAP large? IF 3 + ( gutter ) THEN + SWAP AT-XY ; : cmv ( n -- , char movement ) acc@ * EDPOS @ + pos! ; : buftype ( buf ln -- ) 3 OVER AT-XY KEY DUP EMIT DUP 0x20 < IF 2DROP DROP EXIT THEN - ( buf ln c ) 63 nspcs SWAP 4 SWAP AT-XY ( buf c ) SWAP C!+ - IN( _zbuf (rdln) IN( SWAP 63 MOVE ; + ( buf ln c ) 4 col- nspcs SWAP 4 SWAP AT-XY ( buf c ) + SWAP C!+ IN( _zbuf (rdln) IN( SWAP 63 MOVE ; diff --git a/blk/131 b/blk/131 index 3c68705..06150c5 100644 --- a/blk/131 +++ b/blk/131 @@ -4,10 +4,11 @@ DUP CMD 2+ C! CMD FIND IF EXECUTE ELSE DROP THEN 0 ACC ! UPPER 'Q' = ; : bufp ( buf -- ) - DUP 64 + SWAP DO I C@ 0x20 MAX EMIT LOOP ; + DUP 3 col- + SWAP DO I C@ 0x20 MAX EMIT LOOP ; : bufs 1 aty ." I: " IBUF bufp - 2 aty ." F: " FBUF bufp 0 3 gutter ; + 2 aty ." F: " FBUF bufp + large? IF 0 3 gutter THEN ; : VE clrscr 0 ACC ! 0 PREVPOS ! nums contents BEGIN status bufs setpos KEY handle UNTIL