[an error occurred while processing this directive]
( Программа для демонстрации возможностей BForth ( Данная программа реализует просмотр текстовых файлов ( на любом устройстве АГАТ( которое зарегистрировалось ) ( Кнопки: ESC- выход из любого меню ( В основном режиме: "."- смена логического устройства ( ENTER- просмотр выбранного файла ( Написана 10.94 Hex 0 Variable Aborted : Aborted? Aborted ` False Aborted ! ; : Aborted! True Aborted ! ; ( Блок работы для смены устройства------------------------ : SetBrdPlace Dup 2* 2 ` + WinX ` + 3 - 1 WinY @ + Over 2+ Over 2+ ; : LMenu Dup 1 = IfNot 1- Then False ; : RMenu Dup 0 ` = IfNot 1+ Then False ; : EscMenu Drop 0 True ; RightKey LeftKey EscapeKey EnterKey 4 NCase MenuSw True EscMenu LMenu RMenu False : ShowMenu ( Покажем меню для устройств PushState Coff Dup 2* 2+ ¤" Устройства" Dup c` 3 + Rot Max 0 ! ( Длина рамки WinWidth ` 0 ` - 2/ ( Координата по X рамки WinDepth ` 4 - 2/ ( По Y Over 0 ` + Over 4 + Window ( Объявим окно GetWindow 1 Border WinWidth ` Over c` - 2/ 0 GotoXY Outs ( Выведем название рамки 0 ! ( Число устройств в 0 WinWidth ` 0 ` 2* - 2/ 1+ Dup 2 ! 2 GotoXY 0 ` 1 Do ( Цикл по всем устройствам i &c0 + Out Space Loop 1 ( Текущее устройство ( В 2 координата по X для 1 устройства Begin SetBrdPlace 0 Border Get >r SetBrdPlace 3 Border r> MenuSW Until PopState ; : SetReqDev ( Установим логическое УСТРОЙСТВО по номеру 2 0 c! &40 + 1 c! &3a 2 c! 0 2 Latest Pfind ( Найдем слово или нет If Drop ( Удалим длину слова Cfa ( Выдадим адрес на исполнение Exec True Else False Then ; : ChangeDrive ( Сменим активное логическое УСТРОЙСТВО QLogDev ` ( Число УСТРОЙСТВ на стек ShowMenu ( Покажем меню SetReqDev ( Установим требуемое устройство ; ( Блок работы с файловой структурой--------------------- &11 ¤Variable MyFileName : BcUp Dup Bank5 = IfNot 2- &20 0 Do 1- Dup c` &20 < If leave Then Loop UpKey Out Then False ; : BcDown Dup Count + 2+ Dup c` If DownKey Out Else Drop Then False ; : BcEnter Dup >r Dup Count 1+ + c` If Beep Else 1 Text64 Screen Drop MyFileName ¤! 2 setmem MyFileName Bank5 ReadFile ." Просмотр файла:" MyFileName OutS cr ." ---------------------------------------------------" GetWindow 2Swap 2+ 2Swap Window Bank5 Begin Dup Dup WinDepth ` 1- SkipStr Dup >r Over - Type ." Nажмите любую клавишу" Get EscapeKey = If Lev True Else i r> c` 0= ToBegStr WinWidth ` 1- spaces ToBegStr Then Until Drop SwapsPar ShowScreen 1 setmem Then sp! r> False ; : FillEndStr PushState Dup Outs &10 Over c` - Spaces PopState ; : SetInverseLine Inverse FillEndStr ; : SetNormalLine Normal FillEndStr ; 0 Variable AllFiles &81 Constant BcId : ShowCatalog 0 AllFiles ! Home bank5 1 5 OutD Coff Bank5 WinDepth ` 1- 0 Do Dup c` If Count 2Dup Type 2+ + AllFiles 1+! Else Leave Then i i' = IfNot Cr Then Loop Drop 0 0 GotoXY ; : BcChDrive 1 Text32 Screen Drop ChangeDrive SwapsPar ShowScreen If Drop ShowCatalog Bank5 Then False ; &82 UpKey DownKey EnterKey EscapeKey 5 NCase BcKeys True BcEnter BcDown BcUp BcChDrive False : TypeFiles BcId SetId 2 alloc IfNot ." Нет памяти для программы" get Else 1 setmem 0 Text32 Screen Drop ." BForth TextViewer" cr ." --------------------" GetWindow 2Swap 2+ 2Swap Window ¤" *.*" ShowCatalog Bank5 Begin SetInverseLine Get >r SetNormalLine r> BcKeys Until Then Free ; TypeFiles[an error occurred while processing this directive]