Язык программирования Форт


Глава 12. Редакторы Форта - часть 9


Аналогично слово должно перемещать курсор вверх на одну строку. Эти слова могут, вероятно, быть описаны с помощью CONTROL. Ваше оборудование может также позволять замену описания в строке 8 на управляющую последовательность, описанную через CONTROL.

0 ( 20 июля 85 Экранный редактор NS 5 из 10 ) 1 2 ; BCLEAR ( -- ) PAD 1K + 1152 BL FILL ; ( очистка буфера ) 3 : SCLEAR ( -- ) PAD 1K BL FILL SHOWBLK ; ( Очистка экрана ) 4 5 6 : LOADBLK ( -- ) SCR @ BLOCK PAD 1K CMOVE ; ( загрузка блока ) 7 : RESTORE ( -- ) LOADBLK SHOWBLK ; 8 9 : (UPDATE) ( -- ) PAD SCR @ BLOCK 1K CMOVE UPDATE ; ( пометка для спасения ) 10 11 : +BLK ( -- ) SCR @ HIGHBLK @ < IF 1 SCR +! RESTORE THEN ; 12 : -BLK ( -- ) SCR @ LOWBLK @ > IF -1 SCR +! RESTORE THEN ; 13 14 : CLRTOP ( -- r c ) @CURSOR ; 15 : WRITETOP ( r c--) TYPELINE !CURSOR ;

0 ( 20 июля 85 Экранный редактор NS 06 из 10 ) 1 : ?BLK# ( -- ) CLRTOP ." * * * BLOCK#Ж " SCR @ . ( блок# ) 2 PAUSE WRITETOP ; 3 4 : UPDATES ( -- ) (UPDATE) ( пометить блок и показать это ) 5 CLRTOP , " * * * UPDATED Block#: " SCR @ . SPAUSE WRITETOP ; 6 7 : ?CLEAR ( --) CLRTOP ." * * *" X-OUT: (B)uffer, (S)creen ?" 8 KEY DUP 66 = IF DROP BCLEAR 9 ELSE 83 = IF SCLEAR !CURSOR EXIT THEN 10 THEN WRITETOP ; 11 : ?EXIT ( f--) CLRTOP ." * * * EXIT:(S)ave. (Q)uit ?" 12 KEY DUP 83 = 13 IF DROP DROP DROP UPDATE FLUSH 1+ EXIT 14 ELSE 81 = IF DROP DROP EMPTY-BUFFERS 1+ EXIT THEN 15 THEN WRITETOP ;

0 ( 20 июля 85 Экранный редактор NS 07 из 10) 1 : OPENUP ( -- ) ( раздвинуть текст в месте буфера, куда указывает курсор) 2 COL @ 64 < IF CPOS DUP 3 1+ BLEFT ) BL CPOS C! THEN ; 4 5 : OPEN ( -- ) OPENUP TYPELINE ; ( раздвинуть текст в месте, указанном курсором) 6 : TRUNC ( - ) CPOS BLEFT BL FILL ; ( укоротить строку) 7 8 : OVERTYPE ( СИМВ-- ) COL @ 64 < ( заместить символ, на который указывает курсор) 9 IF DUP EMIT CPOS С! COL +! ELSE DROP THEN ; 10 11 : INSERT ( СИМВ-- ) OPENUP OVERTYPE TYPELINE ; ( ввести символ ) 12 : DELETE ( -- ) COL @ 64 < ( стереть символ ) 13 IF CPOS 1+ CPOS BLEFT CMOVE BL LEND C! 14 TYPELINE 15 THEN ;




Начало  Назад  Вперед



Книжный магазин