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



Приложение Д. Ответы к упражнениям - часть 22


Блок 103 [ 103 :0] ( Глава 10. Упражнения 3. 01 из 02 ) ( 1. ) 100 CONSTANT PACFORTH ( 2. ) : GET FIND 2* @ LOAD ; ( В Форт-79 ) : GET1 ' >BODY @ LOAD ; ( В Форт-83 ) ( 3. ) : LOADIT ( адр -- ) DUP @ 0 DO DUP I 2 * + 2 * @ LOAD LOOP DROP ; ( 4. ) : SHOWBLOCKS ( адр -- ) DUP @ 0 DO DUP I 2 * + 2 + @ . LOOP DROP ;

Блок 104 [104 :0] ( Глава 10. Упражнения 3. 02 из 02 ) ( 5.) : ?BLOCKS ( адр -- ) CR DUP @ 0 DO DUP I 2 * + @ SHOWBLOCKS CR LOOP DROP ; ( 6. ) : LOADEM ( адр n -- ) 2 * 2 + @ LOADIT ;

Блок 105 [105 :0] ( Глава 10. Упражнения 4. 01 из 03 ) ( 1. ) : .LINE ( n1 n2 -- ) SWAP BLOCK SWAP 64 * + 64 -TRAILING TYRE ; ( 2.) : NEWINDEX ( n1 n2 -- ) OVER + SWAP DO CR I . I 0 .LINE LOOP ; ( 3.) : NEWLIST ( n -- ) 16 0 DO CR DUP I DUP 2 .R SPACE .LINE LOOP DROP ; ( 4. ) : BLLINE ( n1 n2 -- ) SWAP BLOCK SWAP 64 * + 64 32 FILL UPDATE ; ( 5.) : NEWTL ( n1 n2 -- ) 1+ SWAP DO CR SCR @ I DUP 2 .R SPACE .LINE LOOP ; : NEWLIST1 ( n -- ) SCR ! 0 15 TL ;

Блок 106 [106 :0] ( Глава 10. Упражнения 4. 02 из 03 ) ( 6. ) : CLEAR-BLOCK ( n -- ) BLOCK 1024 32 FILL UPDATE ; ( 7. ) : PP ( n1 n2 -- ) SWAP BLOCK SWAP 64 * + DUP 64 32 FILL 0 WORD 1+ DUP 1- C@ -TRAILING ROT SWAP CMOVE UPDATE ; ( 8. ) : NEWCOPY ( n1 n2 --) SWAP BLOCK SWAP BLOCK 1024 ( 9. ) CMOVE UPDATE ; : ( n1 n2 n3 -- ) 0 DO OVER OVER SWAP I' I - + 1- SWAP I' I - + 1- NEWCOPY LOOP DROP DROP ; ( но I' также не стандартное слово ) ( 11. ) : COPIES ( n1 n2 nЗ -- ) ROT ROT OVER OVER < IF ROT COPIES> ELSE ROT

IF ." Block overflow! " ABORT ELSE STORBLK @ BLOCK SWAP ARRLEN @ * + ARRLEN @ CMOVE UPDATE THEN ; ( 2.) CREATE ARRAY 1 , 2 , 3 , 4 , 5 , CREATE 2ARRAY 6 , 7 , 8 , 9 , 0 : PUTARRAYS ( адр1 адр2 n -- ) DUP 1+ 20 * 1024 >

IF ." Block overflow! " ABORT ELSE 20 * >R SWAP STORBLK @ BLOCK R@ + 10 CMOVE STORBLK @ BLOCK R> + 10 + 10 CMOVER UPDATE THEN ;

Блок 109 [ 109 :0] ( Глава 10. Упражнения 5. 02 из 05 ) ( 3.) 700 CONSTANT PATBLOCK ( Измените это, если нужно : PD ( n1 n2 n3 n4 -- ) DUP 1+ 2 * 1024 >




Содержание  Назад  Вперед